Pular para o conteúdo

Conjuntos de Animação

Visão Geral

Conjuntos de animação são grupos nomeados de clipes de animação definidos dentro de arquivos de modelo de servidor. O motor utiliza esses conjuntos nomeados para reproduzir a animação correta para um determinado estado da entidade (parado, andando, atacando, morrendo, etc.). Cada conjunto contém um ou mais objetos AnimationEntry; quando existem múltiplas entradas, o motor seleciona uma aleatoriamente, proporcionando variedade visual. Conjuntos de animação suportam escalonamento de velocidade de reprodução, mesclagem por crossfade, controle de loop e gatilhos de eventos sonoros por clipe.

Os conjuntos de animação ficam dentro do campo AnimationSets de uma definição de modelo de servidor. Esta página foca no esquema do conjunto de animação em si. Para o formato completo do arquivo de modelo, veja Modelos de Servidor.

Localização dos Arquivos

Os conjuntos de animação são incorporados em arquivos JSON de modelo de servidor:

Assets/Server/Models/
Beast/
Bear_Grizzly.json (contém AnimationSets)
Bear_Polar.json
Cactee.json
Critter/
Flying_Beast/
Human/
Player.json
Mannequin.json
Intelligent/
Livestock/
Pets/
Projectiles/

Esquema

AnimationSet

CampoTipoObrigatórioPadrãoDescrição
AnimationsAnimationEntry[]SimUm ou mais clipes de animação neste conjunto. Quando existem múltiplas entradas, o motor seleciona uma aleatoriamente a cada reprodução.

AnimationEntry

CampoTipoObrigatórioPadrãoDescrição
AnimationstringSimCaminho para o arquivo de animação .blockyanim, relativo à raiz dos assets Common.
SpeednumberNão1Multiplicador de velocidade de reprodução. Valores abaixo de 1 desaceleram a animação; valores acima de 1 a aceleram.
BlendingDurationnumberNão0Tempo em segundos para fazer crossfade da animação anterior para esta. Produz transições mais suaves ao custo de uma breve sobreposição.
LoopingbooleanNãotrueSe a animação repete continuamente. Defina como false para animações de disparo único, como morte ou ataque.
SoundEventIdstringNãoEvento sonoro disparado cada vez que esta animação é reproduzida ou entra em loop (ex.: sons de passos ou rugidos).

Nomes Padrão de Conjuntos

O motor espera conjuntos nomeados específicos para os estados principais da entidade. Conjuntos personalizados podem ser adicionados para comportamentos controlados por script ou IA.

NomePropósito
IdleParado, sem entrada
Walk / WalkBackwardAndando para frente ou para trás
RunCorrendo / sprintando
Crouch / CrouchWalk / CrouchWalkBackwardEstados de movimento agachado
Jump / JumpWalk / JumpRunVariantes de pulo por velocidade de movimento
FallCaindo pelo ar
Swim / SwimIdle / SwimFast / SwimBackwardEstados de natação
Fly / FlyIdle / FlyFast / FlyBackwardEstados de voo
Hurt / DeathReação a dano e morte
AlertedAnimação de alerta de agressão
Sleep / Laydown / WakeCiclo de descanso
SpawnAnimação de surgimento da entidade
Roar / Search / EatAnimações ambientais de comportamento

Exemplo

Múltiplas variantes de animação com mesclagem (de Assets/Server/Models/Human/Mannequin.json):

{
"AnimationSets": {
"Hurt": {
"Animations": [
{
"Animation": "Characters/Animations/Damage/Default/Hurt.blockyanim",
"BlendingDuration": 0.1,
"Looping": false
},
{
"Animation": "Characters/Animations/Damage/Default/Hurt2.blockyanim",
"BlendingDuration": 0.1,
"Looping": false
}
]
}
}
}

Clipe único com evento sonoro (de Assets/Server/Models/Beast/Bear_Grizzly.json):

{
"AnimationSets": {
"Run": {
"Animations": [
{
"Animation": "NPC/Beast/Bear_Grizzly/Animations/Default/Run.blockyanim",
"SoundEventId": "SFX_Bear_Grizzly_Run",
"Speed": 1
}
]
},
"Death": {
"Animations": [
{
"Animation": "NPC/Beast/Bear_Grizzly/Animations/Damage/Death.blockyanim",
"Looping": false,
"SoundEventId": "SFX_Bear_Grizzly_Death"
}
]
}
}
}

Páginas Relacionadas