BetterModel
Descripción general
BetterModel conecta el plugin BetterModel con TypeWriter. Diseñas un modelo y sus animaciones en Blockbench, lo instalas en BetterModel y luego lo usas en TypeWriter como una entidad: una definición indica qué modelo usar, una instancia lo coloca en el mundo, y la maquinaria habitual de entidades de TypeWriter (audiencias, actividades, interacciones, hablantes de diálogo) funciona sobre él.
Los modelos se renderizan con paquetes, por jugador, de modo que cada jugador puede ver un estado distinto del mismo NPC: otros huesos visibles, otro brillo, otro equipamiento. La extensión añade además acciones para reproducir y detener animaciones, entradas de cinemática para animar modelos y extremidades del jugador, y una cámara que viaja sobre un hueso de un modelo animado.
Características
- Entidades de modelo — una definición y una instancia convierten cualquier modelo de BetterModel en un NPC con soporte de audiencia, actividad e interacción.
- Animaciones automáticas — las animaciones de reposo, caminar, desplazamiento lateral, salto, vuelo, ataque, daño e interacción se reproducen según el estado de la entidad, con nombres que puedes cambiar.
- Acciones de animación — reproduce o detén una animación en un modelo colocado desde cualquier trigger.
- Control de huesos por jugador — muestra u oculta huesos y establece brillo, tinte, destello de encantamiento y luminosidad según criterios.
- Hitboxes personalizadas — áreas de clic ligadas a huesos con Hitbox, o automáticas a partir de los huesos
hitboxdel modelo. - Sustitución de huesos — intercambia un hueso por uno de otro modelo con Attachment o Passenger.
- Animaciones de jugador — reproduce animaciones de extremidades de jugador de BetterModel sobre el jugador con una acción o en una cinemática.
- Cinemáticas — maneja un modelo a partir de una grabación con la cinemática de entidad y fílmalo con la cámara de hueso.
- Indicador de interacción — los modelos con nombre muestran un indicador de interacción o de diálogo sobre su nombre, controlado por objetivos de interacción y entradas de interacción.
Instalación
- Instala BetterModel en el servidor y asegúrate de que carga tus modelos. La cámara de hueso necesita BetterModel 2.1.0 o posterior; la extensión está compilada contra BetterModel 3.3.0.
- Instala las extensiones oficiales de TypeWriter Quest, Basic, Entity y RoadNetwork (la extensión está compilada contra las cuatro).
- Obtén BetterModel en las tiendas (consulta los botones de arriba) y coloca el JAR en
plugins/Typewriter/extensions/. - Reinicia el servidor. El registro muestra
[BetterModelExtension] BetterModel detected: initializing. Si falta BetterModel, muestraBetterModel plugin not found; extension disabled. - Coloca tus modelos en BetterModel y genera su paquete de recursos como indica la documentación de BetterModel. Los jugadores deben haber aceptado el paquete de recursos para ver los modelos.
Primeros pasos
Coloca un NPC animado que salude cuando le hagas clic:
- En el panel web de TypeWriter, abre una página static y añade una BetterModel Definition. Establece
modelIdcon el nombre de tu modelo en BetterModel, activanamedy establecedisplayName. - En
defaultAnimationSettings, comprueba queidle,walkeinteractcoinciden con los nombres de animación de tu modelo (los valores por defecto sonidle,walkeinteract). - Abre una página de manifest y añade una BetterModel Instance, establece
definitioncon la que acabas de crear y capturaspawnLocationcon la herramienta de posición. - Opcionalmente, añade Bone Visibility en el
datade la definición para ocultar un hueso (por ejemplo, un sombrero) a los jugadores que no cumplan un criterio. - Añade un entity interact event y una acción Play Entity Animation. Establece
entitycon la instancia yanimationcon el nombre de una animación personalizada. - Publish y haz clic en el NPC en el juego.
Solo se puede hacer clic en el NPC donde tiene una hitbox de interacción. Llama hitbox a un hueso en Blockbench, o añade una entrada Hitbox. Sin ninguna de las dos, se usa una única caja que cubre todo el modelo.
Cómo funciona
La definición contiene lo que se comparte (modelo, nombres de animaciones, hitboxes, datos). La instancia contiene la posición, datos adicionales y una activity. Las entradas de datos de la instancia se aplican después de las de la definición, de modo que una instancia puede sobrescribir su definición.
Configuración
La extensión no tiene archivo de configuración. Los modelos, las extremidades y el paquete de recursos los gestiona BetterModel.
Se usan por nombre dos carpetas de BetterModel: las entidades usan modelos registrados por BetterModel, y las acciones y cinemáticas de jugador leen los modelos de extremidades de jugador de la carpeta players de BetterModel (por ejemplo steve, alex).
Entradas
15 entradas, generadas a partir del código fuente de la extensión.
Acciones3
- Play Bettermodel AnimationPlay an animation on a BetterModel entity
- Play Player AnimationPlay a player animation from BetterModel players folder
- Stop Bettermodel AnimationStop an animation on a BetterModel entity
Cinemáticas4
- Bettermodel Animation CinematicPlay a BetterModel model animation during a cinematic
- Bettermodel Bone Camera CinematicAttach the cinematic camera to a bone of a BetterModel
- Bettermodel Entity CinematicUse an animated BetterModel entity in a cinematic
- Player Animation CinematicPlay a player animation during a cinematic
Entidades2
- Bettermodel DefinitionA BetterModel entity definition
- Bettermodel InstanceAn instance of a BetterModel entity
Datos de entidad6
- Bettermodel AttachmentReplace a bone of a BetterModel with one from another model
- Bettermodel Bone AppearancePer-bone glow, tint, glint and brightness
- Bettermodel Bone VisibilityControl bone visibility with criteria
- Bettermodel Hitbox DataConfigure hitbox on a specific bone
- Bettermodel Indicator ConfigConfigure the interaction indicator for a BetterModel entity
- Bettermodel PassengerAttach a passenger entity to a BetterModel bone
Solución de problemas
El NPC es invisible. Busca en el registro Model '...' not found. El modelId debe coincidir con un modelo cargado por BetterModel. Cuando no coincide, la extensión prueba un modelo llamado steve y, si tampoco existe, no invoca nada. Comprueba también que el jugador aceptó el paquete de recursos.
El NPC aparece pero no se puede hacer clic en él. La hitbox de interacción proviene de un hueso cuyo nombre contiene hitbox o hit_box, o de entradas Hitbox. Si el modelo no tiene ninguna de las dos, se crea una caja que cubre el modelo, y su altura es de al menos 1,8 bloques. Ajusta hitboxYOffset en defaultAnimationSettings si las cajas flotan a una altura incorrecta (por defecto -1.6).
Una animación no hace nada. Los nombres de animación son los del modelo de Blockbench, con la ortografía exacta. Para Play Player Animation, el modelId debe ser un modelo de extremidades de la carpeta players de BetterModel, no un modelo normal.
El equipamiento, el fuego u otros datos de vanilla no tienen efecto. Un modelo no tiene metadatos de entidad de vanilla. El registro imprime una advertencia única como '...' has no BetterModel equivalent and is ignored. El equipamiento de mano principal, mano secundaria y casco necesita huesos etiquetados ri, li y ph en Blockbench (de lo contrario, el registro dice que el modelo no tiene hueso para esa ranura); las ranuras de armadura no están soportadas. La escala 3D no uniforme usa solo el valor X.
La cámara de hueso no se mueve. Se queda donde estaba mientras el modelo no es visible para el jugador o no se encuentra el hueso. Comprueba boneName (sin distinguir mayúsculas de minúsculas) y que entityCinematic o instance estén establecidos; la cinemática de entidad prevalece cuando están ambos.
El modelo desaparece tras un cambio de mundo o una reconexión. La extensión vuelve a cargar los modelos tras la conexión, la reaparición, el teletransporte y la carga del paquete de recursos con retardos cortos (hasta 5 segundos). Si un modelo sigue faltando, vuelve a conectarte; los modelos de cinemática se eliminan al cambiar de mundo y cuando el jugador se desconecta.
Extensiones relacionadas
- Text Display Dialogue — diálogo flotante sobre NPC de modelo.