Pular para o conteúdo
AstraDOCS

Animator

Astra 0.2.3-preview.20261007Conferido em fonteReferência revisada · 07 out. 2026

Máquina de estados: parâmetros, transições, misturas e camadas

Família: Animação · Grupo: Máquina de estados · Identificador: astra.animation.animator · Payload: 1

Escolhe e mistura clipes por uma máquina de estados. Use para repouso, andar, correr e salto de um modelo que já tem animações importadas.

Selecione a raiz do modelo → adicione Animator em Animação → Máquina de estados. Remova Animação legada do mesmo objeto. No cartão, toque Abrir grafo do Animator; em Play, o grafo mostra estado e parâmetros somente para leitura.

Hierarquia → selecione o objeto → Inspector → Adicionar componente → Animação / Máquina de estados → Animator.

O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é Astra.Components.Animator.

A tabela automática abaixo cobre o cartão básico; não cobre as coleções do grafo. Abra-o para configurar:

Área Caminho e uso
Parâmetros Coluna esquerda → + Float/Int/Bool/Gatilho; toque nome e padrão. O tipo deve corresponder ao setter C#.
Estados + Estado → seleção → lado direito: Clipe/Mistura 1D/Mistura 2D, clipes reais, limiares ou posições X/Y. Padrão escolhe a entrada.
Transições Transição → origem ou Qualquer estado → destino; configure duração, tempo de saída e condições. Sem condição correta, o parâmetro sozinho não muda o estado.
Camadas + camada → peso e máscara de subárvore. Camadas são de substituição, sem adição.
Eventos Estado → + evento → tempo normalizado 0–1 e marca numérica entregue ao script. Não é um nome de método arbitrário.

Limites autorais: 32 parâmetros, 4 camadas, 24 estados e 48 transições por camada, 8 clipes por estado, 4 condições por transição e 8 eventos por estado. Nomes até 63 caracteres. Salve a cena; o grafo pertence ao componente, não a um controller asset separado. Undo/Redo vale para a autoria.

Guia relacionado: Grafo, código e evidências

Crie Float Velocidade e um estado Mistura 1D. Atribua clipes reais de repouso/andar/correr nos limiares 0 / 1 / 2, escolha Velocidade como parâmetro e marque esse estado como Padrão. Em um Behavior, Object.Animator().SetFloat(“Velocidade”, 1.5f) seleciona a mistura; o Animator não mede a velocidade do corpo por conta própria.

Nenhuma regra adicional declarada no schema deste componente.

  • Animação: Animator e Animação escreveriam a mesma pose; use um dos dois neste objeto
Operação Contrato
Adicionar/remover em Play ponto seguro
Alterar propriedades em Play ponto seguro
Múltiplas instâncias Não
Versão do payload 1

Alterações em ponto seguro são aplicadas entre passos da simulação. Um componente exigido por outro não pode ser removido enquanto a dependência existir. Salvar a cena autoral e modificar o mundo de Play são operações distintas; veja Play e cena autoral.

Valores abaixo são resolvidos pelo descritor de um componente recém-criado. Campos por slot dependem dos recursos atribuídos. Um campo sem padrão significa que o descritor não fornece um valor independente de contexto.

Propriedade Tipo / unidade Padrão Domínio
Velocidade
speed
número · × 1 -10 … 10
Ativo
enabled
booleano verdadeiro verdadeiro | falso
Ignorar escala de tempo
unscaled_time
booleano falso verdadeiro | falso
Raiz animada
target
referência Este objeto qualquer objeto

Velocidade · speed

Onde: Inspector → Animator → Animator → Velocidade.

Uso e efeito: Multiplica o tempo de todos os estados

Valor: 1 · Tipo: número · Unidade: × · Domínio: -10 … 10.

Aceita tween numérico via contrato de propriedade. Translação, rotação e escala; pesos de morph não; sem mistura entre clipes Capacidade necessária: animation.clip; veja estado do renderer.

Ativo · enabled

Onde: Inspector → Animator → Animator → Ativo.

Uso e efeito: Desligado congela a pose atual; parâmetros e estados são preservados

Valor: verdadeiro · Tipo: booleano · Domínio: verdadeiro | falso.

Translação, rotação e escala; pesos de morph não; sem mistura entre clipes Capacidade necessária: animation.clip; veja estado do renderer.

Ignorar escala de tempo · unscaled_time

Onde: Inspector → Animator → Animator → Ignorar escala de tempo.

Uso e efeito: Anima em tempo real mesmo com o jogo pausado por escala (menus, cutscenes)

Valor: falso · Tipo: booleano · Domínio: verdadeiro | falso.

Translação, rotação e escala; pesos de morph não; sem mistura entre clipes Capacidade necessária: animation.clip; veja estado do renderer.

Raiz animada · target

Onde: Inspector → Animator → Animator → Raiz animada.

Uso e efeito: Objeto cuja hierarquia os clipes animam (o modelo importado)

Valor: Este objeto · Tipo: referência · Domínio: qualquer objeto.

Translação, rotação e escala; pesos de morph não; sem mistura entre clipes Capacidade necessária: animation.clip; veja estado do renderer.

Animação e deformação. Clipe, misturas 1D/2D, camadas de substituição, condições, eventos e grafo estão na 0.2.3. Pendentes: root motion, sub-máquinas, interrupção e camadas aditivas; sem data prometida.

Os campos acima pertencem ao contrato existente; novas funções dependem do fechamento da família. Não há datas individuais prometidas para cada propriedade.

  1. Crie Animator pelo fluxo indicado e resolva as dependências.
  2. Altere uma propriedade por vez e observe o efeito esperado na cena.
  3. Salve, reabra e confira os valores autorais.
  4. Entre em Play e verifique o comportamento com os recursos reais do projeto.
  5. Pare o Play e confira a cena autoral.

Este é um roteiro de conferência; não representa um teste executado nesta publicação.

A tabela cobre os tipos de propriedade disponíveis no descritor de reflexão. Não presume persistência de campos transitórios, equivalência com outras engines ou suporte em todos os aparelhos. Recursos, coleções e operações podem exigir APIs específicas.

Referência de arquitetura registrada pela engine: documentação oficial. Essa referência não representa paridade funcional.

Os IDs abaixo são operações nativas do componente existente. Não são novos botões de autoria. Use a fachada C# correspondente para nomes e assinaturas; Conexão de evento oferece as ações compatíveis no seletor. Confira o componente e o mundo vivos antes de chamar.

Operação / ID Uso e efeito Argumentos Retorno
Em transição · in_transition Verdadeiro enquanto a camada base mistura dois estados Nenhum booleano

Assinaturas da fachada Animator

No Behavior, a fachada permite inscrever um receptor usando o owner vivo; a inscrição pertence ao lifecycle daquela execução. Uma Conexão de evento precisa de emissor, evento, receptor e ação: adicionar a conexão não define a regra do jogo.

Evento / ID Quando ocorre Dados enviados
Entrou no estado · state_entered Emitido quando um estado começa (no início da transição para ele) Camada: inteiro; Estado: inteiro
Evento do estado · state_event Emitido quando o tempo do estado passa por um evento marcado nele Camada: inteiro; Estado: inteiro; Marca: inteiro