Saltearse al contenido

Animaciones Virtuales de Paquetes y Keyframes

CraftingEngine integra un motor de animación visual de última generación desarrollado sobre las Display Entities de Minecraft 1.20+ (ItemDisplay, BlockDisplay) y transmitido enteramente mediante paquetes de red sintéticos con PacketEvents 2.14.0.


1. Características Arquitectónicas

  • Cero Entidades Físicas: No se generan entidades de Bukkit en los chunks del mundo. Los elementos visuales existen estrictamente en la memoria del cliente, previniendo lag, sobrecarga de chunks y bugs de entidades huérfanas.
  • Interpolación y Curvas de Easing: Interpolación nativa del cliente combinada con las 30 curvas estándar de Robert Penner (Linear, Quad, Cubic, Quart, Sine, Expo, Circ, Back, Elastic, Bounce).
  • Fórmulas Matemáticas AST: Permite animar rotaciones, trayectorias orbitales y oscilaciones mediante fórmulas continuas (sin, cos, lerp, clamp).
  • Pivotes de Rotación 3D: Rota herramientas u objetos alrededor de puntos de pivote arbitrarios (ej. girar un martillo desde la base de su mango en lugar de su centro geométrico).

2. Configuración de Presets (presets/animations/*.yml)

id: "blacksmith_hammer_strike"
duration: 40 # Duración del ciclo en ticks (40 ticks = 2.0s)
loop_mode: "LOOP" # LOOP | ONCE | HOLD | PING_PONG
actors:
- id: "hammer"
role: "TOOL"
display_type: "ITEM"
item_transform: "THIRDPERSON_RIGHTHAND"
billboard: "FIXED"
pivot: [0.0, -0.45, 0.0] # Pivote en la base del mango
# Línea de tiempo de keyframes
keyframes:
- tick: 0
translation: [0.0, 0.8, 0.0]
rotation: [-45.0, 0.0, 0.0]
easing: "EASE_OUT_QUAD"
- tick: 15
translation: [0.0, 0.05, 0.0]
rotation: [15.0, 0.0, 0.0]
easing: "EASE_IN_BOUNCE"
- tick: 40
translation: [0.0, 0.8, 0.0]
rotation: [-45.0, 0.0, 0.0]
easing: "EASE_IN_OUT_CUBIC"
# Señales y eventos audio-visuales en ticks exactos
cues:
- tick: 15
sound: "block.anvil.use"
particles:
type: "CRIT"
count: 8
offset: [0.1, 0.1, 0.1]

3. Órbitas Multi-Actor y Distribución de Ingredientes

CraftingEngine puede distribuir múltiples ítems en formaciones geométricas 3D:

actors:
- id: "orbiting_crystals"
role: "INPUT_RESOURCES"
display_type: "ITEM"
layout:
type: "CIRCLE"
radius: 1.2
height_offset: 0.5
procedural:
rotation_y: "time * 4.5"
translation_y: "0.5 + sin(time * 0.1) * 0.15"

Tipos de Disposición:

  • CIRCLE: Distribuye los ingredientes a lo largo de una circunferencia horizontal.
  • GRID: Alinea los ítems en una matriz plana sobre la estación.
  • VERTICAL_STACK: Apila los ingredientes verticalmente en columna.

4. Previsualización y Depuración en Vivo

Los administradores pueden comprobar y depurar animaciones en tiempo real:

Ventana de terminal
/cfe animation preview <id_preset> # Muestra la animación en el bloque objetivo
/cfe reload animations # Recarga todos los presets desde disco

Siguientes Pasos