Plugin de Blockbench
Animorph incluye un plugin para Blockbench que simplifica la creación de modelos y emotes, y te permite enviar cambios al servidor en tiempo real sin guardar ni copiar archivos manualmente.
Instalación
- En Blockbench, abrí File → Plugins → Load Plugin from URL.
- Pegá el siguiente link y confirmá:
https://raw.githubusercontent.com/feeldev12/animorph-blockbench/refs/heads/main/animorph-tools.js Funcionalidades
- Loop Start — Marcador visual en el timeline para definir desde dónde loopeará la animación en GeckoLib.
- Mesh Support — Exporta e importa meshes en formato
poly_meshcompatible con Bedrock y GeckoLib. - Text Display — Crea y configura cubos de texto 3D directamente desde Blockbench, sin editar el JSON a mano.
- Layers de modelo — Importa modelos externos como capas editables con sus propias animaciones.
- Layers de textura — Importa una textura como overlay encima del modelo base para previsualizarla.
- Primera persona — Vista de cámara en primera persona para previsualizar las animaciones de brazos.
- Exportar configuración — Dialogs para generar el
.ymldel modelo y de emotes sin salir de Blockbench. - Sincronización en vivo — Conectate al servidor y enviá cambios en tiempo real mientras editás.
Loop Start
GeckoLib soporta la propiedad loop_start para que una animación no repita
desde el principio sino desde un punto específico. El plugin agrega un
marcador arrastrable en el timeline para definir ese punto visualmente.
Para usarlo: click derecho sobre la animación en el panel de animaciones → Properties. El campo Loop Start Time aparece solo cuando el modo de loop está en loop. Una vez definido, el marcador aparece en el timeline y podés arrastrarlo directamente.
- Se exporta automáticamente al guardar como
.animation.json. - Compatible con Undo/Redo.
Mesh Support
Habilita el uso de meshes (mallas) en formatos Bedrock y GeckoLib.
Al exportar el modelo, las meshes se convierten al formato poly_mesh
que Minecraft puede leer. Al importar, el proceso es inverso.
Opciones de exportación
Se configuran en File → Preferences → Settings → Animorph.
| Opción | Descripción |
|---|---|
| Normalize Mesh UVs | Normaliza las UVs al rango 0–1. Activalo si el modelo se ve mal en el juego. |
| Skip Mesh Normals | Omite el cálculo de normales (más rápido, pero puede verse plano con cierta iluminación). |
| Force Multi-Textures | Permite usar más de una textura en formatos Bedrock. |
Text Display (cubos de texto)
Creá un cubo de texto desde Add Element → Text Display en el outliner. Para editar uno existente, hacé click derecho sobre el cubo → Edit Text Display.
| Propiedad | Descripción |
|---|---|
| Content | Texto a mostrar. Puede ser fijo o un placeholder como {name}. |
| Color | Color del texto, con soporte de transparencia. |
| Background | Color de fondo (opcional). |
| Alignment | Alineación: izquierda, centro o derecha. |
| Padding | Espaciado interno. |
Layers de modelo
Importá un archivo .bbmodel o .geo.json como una
capa de modelo independiente dentro de tu proyecto.
A diferencia de simplemente abrir otro archivo, la capa vive dentro del
proyecto actual y puede tener sus propias animaciones.
Cómo importar
- En el menú Tools → Import Layer.
- Seleccioná el
.bbmodelo.geo.jsondel modelo layer. - La capa aparece en el panel Collections con su propio grupo de huesos.
Edición
Los huesos y cubos de un layer de modelo son editables. Podés moverlos, escalarlos, agregar cubos y animarlos exactamente igual que el modelo principal. El layer tiene su propio archivo fuente separado.
Para guardar los cambios en el archivo fuente usá el botón Save Layer que aparece en el panel Collections, o Ctrl+S con la capa seleccionada.
Animaciones
Podés crear animaciones que muevan los huesos del layer. Estas animaciones
corresponden al .animation.json del layer, que en el servidor es el archivo
declarado bajo animation: en el .yml del modelo layer.
Para exportar la animación de un layer usá Export Layer Animations desde el menú contextual del Collection.
Visibilidad y exportación
- Toggle de visibilidad por capa desde el panel Collections.
- Las capas no se incluyen al exportar el modelo principal — cada layer tiene su propio
.geo.json. - Podés recargar una capa desde su archivo fuente con Reload Layer.
.yml debe tener
is_layer: true. Ver Layers en Modelos.
Layers de textura
Importá una textura PNG (o extraela de un .bbmodel / .geo.json)
para verla como overlay encima del modelo sin reemplazar la textura base.
El plugin crea clones de todos los cubos del modelo base con una leve expansión
y les aplica la textura importada.
Cómo importar
- En el panel Collections, hacé clic en Import Texture Layer (ícono de textura).
- Seleccioná un archivo
.png,.bbmodelo.geo.json. - El overlay aparece como una nueva entrada en Collections con el prefijo
TL:.
Controles
| Acción | Descripción |
|---|---|
| Toggle Visibility | Muestra u oculta el overlay sin eliminarlo. |
| Solo (ícono de diana) | Oculta los cubos base para ver solo la textura del layer. Útil para ajustar UVs de overlays. |
| Reload | Recarga la textura desde el archivo fuente original. |
| Delete | Elimina el overlay y sus cubos clonados. |
Primera persona
El plugin agrega una vista de cámara en primera persona dentro de Blockbench para previsualizar las animaciones de brazos exactamente como se verán en Minecraft.
Cómo activarla
Menú View → First Person View. Al activarla:
- La cámara se fija al nivel de los ojos del modelo (lee la posición del hueso
head). - El FOV se establece en 70, igual que Minecraft.
- Todo el modelo se oculta excepto los brazos:
left_arm,right_arm,left_hand,right_hand,left_sleeve,right_sleevey sus hijos. - La rotación de la cámara se bloquea mirando hacia adelante.
Activá una animación de brazos (fp.arm_right.hold, fp.arms.swing, etc.) y vas a ver exactamente cómo quedará in-game.
Nombres de animación para primera persona
Las animaciones de brazos en primera persona usan el prefijo fp..
Creá estas animaciones en tu .animation.json con los nombres exactos
y registrá los controladores en fp_animation_controllers en el .yml del modelo.
Ver referencia completa en Nombres de animación.
head, la cámara usa la posición
por defecto (altura de ojos estándar). Podés ajustar la posición del hueso
head para mover el punto de vista.
Exportar configuración
El plugin incluye dos dialogs para generar los archivos .yml del servidor
sin salir de Blockbench.
Model Config (.yml)
Tools → Model Config abre un panel donde configurás todo lo del
modelo: nombre, archivo de animación, primera persona, controllers, textos,
equipamiento y layers. Al presionar Export .yml genera el archivo
listo para poner en plugins/Animorph/models/.
El botón Detect en la sección Layers detecta automáticamente los layers de modelo y textura que tengas cargados en el proyecto y los agrega a la config.
Emote Config (.yml)
Desde el panel de animaciones, click derecho sobre el archivo de animación
(el nombre del .animation.json) → Emote Config.
Podés configurar propiedades para todo el archivo o para una animación individual:
- Global — propiedades que aplican a todas las animaciones del archivo (freeze, stop on death/hurt).
- Por animación — seleccioná una animación específica para configurar sus
controller_exceptionsylayer_emotesindividualmente.
Al guardar genera el .yml del emote listo para poner en plugins/Animorph/animations/.
Sincronización en vivo
El plugin puede conectarse al servidor para enviar los archivos (modelo, animación y textura) directamente desde Blockbench. Los cambios se guardan en el servidor y se recargan en el juego sin reiniciar.
Cómo conectar
- En el servidor, ejecutá
/animorph socket <jugador> connect. - En Blockbench, abrí Tools → Remote Sync Settings.
- Configurá el host (por defecto
localhost) y el puerto (por defecto8765). - Hacé clic en Connect.
Una vez conectado, podés activar Auto-sync on changes para que los cambios se envíen solos cada vez que editás el modelo. También podés usar Sync Now para enviar todo manualmente de una sola vez.
Dónde se guardan los archivos
Los archivos se guardan automáticamente en la carpeta del servidor según su tipo.
La ruta se configura desde el plugin antes de conectar. Por ejemplo, si usás la ruta
entity/player:
plugins/Animorph/
├── models/entity/player.geo.json
├── animations/entity/player.animation.json
└── textures/entity/player.png
Podés organizar los archivos en subcarpetas como quieras:
entity/mobs/zombie, custom/npcs/villager, etc.
config/animorph/ en lugar de plugins/Animorph/.
El resto de la estructura es idéntica.
Permisos
Para guardar archivos desde Blockbench, el jugador necesita permisos en el servidor.
Los permisos se basan en la primera carpeta de la ruta configurada.
Por ejemplo, si la ruta es entity/player, la carpeta de permiso es entity.
| Permiso | Qué permite |
|---|---|
animorph.blockbench.save.entity | Guardar archivos nuevos en la carpeta entity. |
animorph.blockbench.save.* | Guardar archivos nuevos en cualquier carpeta. |
animorph.blockbench.overwrite.entity | Sobreescribir archivos existentes en la carpeta entity. |
animorph.blockbench.overwrite.* | Sobreescribir archivos existentes en cualquier carpeta. |
Historial de cambios
Cada vez que alguien guarda un archivo desde Blockbench, queda registrado en
blockbench-saves.log. Así podés ver quién modificó qué y cuándo.
[2026-03-27 14:30:15] Steve created model 'models/entity/player.geo.json'
[2026-03-27 14:30:16] Steve created animation 'animations/entity/player.animation.json'
[2026-03-27 14:30:16] Steve created texture 'textures/entity/player.png'
[2026-03-27 14:45:02] Steve overwritten model 'models/entity/player.geo.json' Ubicación del archivo:
- Bukkit/Paper:
plugins/Animorph/blockbench-saves.log - Fabric:
config/animorph/blockbench-saves.log