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:
/cfe animation preview <id_preset> # Muestra la animación en el bloque objetivo/cfe reload animations # Recarga todos los presets desde discoSiguientes Pasos
- Displays y Hologramas - Combina animaciones con textos flotantes de progreso.
- Etapas y Transiciones - Vincula presets de animación a etapas de recetas.