BetterModel
Visão geral
A extensão BetterModel conecta o plugin BetterModel ao TypeWriter. Você desenha um modelo e suas animações no Blockbench, instala-o no BetterModel e depois o usa no TypeWriter como uma entidade: uma definition diz qual modelo usar, uma instance o coloca no mundo, e toda a mecânica habitual de entidades do TypeWriter (audiences, activities, interações, falantes de diálogo) funciona sobre ele.
Os modelos são renderizados com pacotes, por jogador, então cada jogador pode ver um estado diferente do mesmo NPC: outros bones exibidos, outro brilho, outros equipamentos. A extensão também adiciona actions para tocar e parar animações, entries de cinematic para animar modelos e membros do jogador, e uma câmera que viaja em um bone de um modelo animado.
Recursos
- Entidades de modelo — uma definition e uma instance transformam qualquer modelo do BetterModel em um NPC com suporte a audience, activity e interação.
- Animações automáticas — animações de repouso, caminhada, deslocamento lateral, pulo, voo, ataque, dano e interação são tocadas a partir do estado da entidade, com nomes que você pode alterar.
- Actions de animação — toque ou pare uma animação em um modelo colocado a partir de qualquer trigger.
- Controle de bones por jogador — mostre ou oculte bones e defina brilho, cor, brilho de encantamento e luminosidade conforme criteria.
- Hitboxes personalizadas — áreas de clique ligadas a bones com Hitbox, ou automáticas a partir de bones
hitboxdo modelo. - Substituição de bones — troque um bone por um de outro modelo com Attachment ou Passenger.
- Animações do jogador — toque animações de membros do jogador do BetterModel no jogador com uma action ou em uma cinematic.
- Cinematics — conduza um modelo a partir de uma gravação com a entity cinematic e filme-o com a bone camera.
- Indicador de interação — os modelos com nome exibem um indicador de interação ou de diálogo acima do nome, controlado por objectives de interação e entries de interação.
Instalação
- Instale o BetterModel no servidor e confirme que ele carrega seus modelos. A bone camera exige o BetterModel 2.1.0 ou posterior; a extensão é compilada contra o BetterModel 3.3.0.
- Instale as extensões oficiais do TypeWriter Quest, Basic, Entity e RoadNetwork (a extensão é compilada contra as quatro).
- Obtenha o BetterModel nas lojas (veja os botões acima) e coloque o JAR em
plugins/Typewriter/extensions/. - Reinicie o servidor. O log mostra
[BetterModelExtension] BetterModel detected: initializing. Se o BetterModel estiver ausente, mostraBetterModel plugin not found; extension disabled. - Coloque seus modelos no BetterModel e gere o resource pack dele conforme a documentação do BetterModel. Os jogadores precisam ter aceitado o resource pack para ver os modelos.
Primeiros passos
Coloque um NPC animado que acena quando você clica nele:
- No painel web do TypeWriter, abra uma página static e adicione uma BetterModel Definition. Defina
modelIdcom o nome do seu modelo no BetterModel, ativenamede definadisplayName. - Em
defaultAnimationSettings, verifique seidle,walkeinteractcorrespondem aos nomes das animações do seu modelo (os padrões sãoidle,walkeinteract). - Abra uma página de manifest e adicione uma BetterModel Instance, defina
definitioncom a que você acabou de criar e capturespawnLocationcom a ferramenta de posição. - Opcionalmente, adicione Bone Visibility em
datada definition para ocultar um bone (por exemplo, um chapéu) dos jogadores que não correspondem a um criteria. - Adicione um entity interact event e uma action Play Entity Animation. Defina
entitycom a instance eanimationcom o nome de uma animação personalizada. - Clique em Publish e clique no NPC no jogo.
O NPC só pode ser clicado onde tem uma hitbox de interação. Nomeie um bone como hitbox no Blockbench ou adicione uma entry Hitbox. Sem nenhuma das duas, é usada uma única caixa que cobre o modelo inteiro.
Como funciona
A definition guarda o que é compartilhado (modelo, nomes de animações, hitboxes, dados). A instance guarda a posição, dados extras e uma activity. As entries de dados da instance são aplicadas depois das da definition, então uma instance pode sobrescrever sua definition.
Configuração
A extensão não tem arquivo de configuração. Os modelos, os membros e o resource pack são gerenciados pelo BetterModel.
Duas pastas do BetterModel são usadas pelo nome: as entidades usam modelos registrados pelo BetterModel, e as actions e cinematics de jogador leem modelos de membros do jogador da pasta players do BetterModel (por exemplo, steve, alex).
Entries
15 entradas, geradas a partir do código-fonte da extensão.
Ações3
- 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
Dados de entidade6
- 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
Solução de problemas
O NPC está invisível. Procure no log por Model '...' not found. O modelId deve corresponder a um modelo carregado pelo BetterModel. Quando não corresponde, a extensão tenta um modelo chamado steve e, se ele também estiver ausente, não invoca nada. Verifique também se o jogador aceitou o resource pack.
O NPC aparece, mas não pode ser clicado. A hitbox de interação vem de um bone cujo nome contém hitbox ou hit_box, ou de entries Hitbox. Se o modelo não tem nenhum dos dois, uma caixa que cobre o modelo é criada, com altura de pelo menos 1,8 bloco. Ajuste hitboxYOffset em defaultAnimationSettings se as caixas flutuarem na altura errada (padrão -1.6).
Uma animação não faz nada. Os nomes das animações são os do modelo do Blockbench, com a grafia exata. Para o Play Player Animation, o modelId deve ser um modelo de membros da pasta players do BetterModel, não um modelo comum.
Equipamento, fogo ou outros dados vanilla não têm efeito. Um modelo não tem metadados de entidade vanilla. O log imprime um aviso único como '...' has no BetterModel equivalent and is ignored. Os equipamentos da mão principal, da mão secundária e do capacete precisam de bones marcados com ri, li e ph no Blockbench (caso contrário, o log diz que o modelo não tem bone para esse slot); os slots de armadura não são suportados. A escala 3D não uniforme usa apenas o valor X.
A bone camera não se move. Ela permanece onde estava enquanto o modelo não está visível para o jogador ou o bone não é encontrado. Verifique boneName (sem diferenciar maiúsculas de minúsculas) e se entityCinematic ou instance está definido; a entity cinematic prevalece quando ambos estão.
O modelo sumiu após uma troca de mundo ou uma reconexão. A extensão recarrega os modelos após a entrada, o respawn, o teleporte e o carregamento do resource pack, com pequenos atrasos (até 5 segundos). Se um modelo continuar ausente, reconecte-se; os modelos de cinematic são removidos na troca de mundo e quando o jogador sai.
Extensões relacionadas
- Text Display Dialogue — diálogo flutuante acima dos NPCs de modelo.