Editor de Gráficos de Animação

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O Editor de Gráficos de Animação é uma ferramenta visual baseada em nós que capacita artistas técnicos e animadores a construir lógica de animação complexa diretamente dentro do Roblox Studio. Ao fornecer uma interface simplificada para criar comportamentos como árvores de mistura, remove a dependência tradicional de scripts manuais para o movimento de personagens.

Este sistema funciona em conjunto com seu fluxo de trabalho de animação existente:

  • Editor de Animação: Continue usando o Editor de Animação como sua ferramenta principal para criar clipes individuais e ajustar quadros-chave e curvas.
  • Editor de Gráficos de Animação: Use esta ferramenta para pegar esses clipes e organizá-los em uma árvore lógica para impulsionar comportamentos de jogo sofisticados.

Projetado para melhorar a colaboração, o gráfico visual permite que os desenvolvedores inspecionem, depurem e entendam rapidamente a lógica criada pelos animadores. Enquanto os artistas se concentram em refinar o movimento interativo, os desenvolvedores ainda podem acessar os nós do gráfico de animação programaticamente para controle direto sobre animações e estados misturados.

Construir um gráfico


Para começar a construir lógica para um personagem animável, acesse o editor de Gráficos de Animação através da aba Avatar na faixa de opções do Studio. Os seguintes passos demonstram como inicializar um rig e construir uma rede de nós básica usando animações padrão de caminhada e aceno.

Para uma análise mais profunda de aplicações práticas, você pode explorar o Arquivo de Referência de Gráficos de Animação, que contém exemplos de implementação tanto fundamentais quanto complexos.

Para criar seu próprio gráfico de animação, semelhante ao exemplo básico fornecido na referência, use os seguintes passos:

  1. No Studio, adicione um rig animável navegando até a aba Avatar e selecionando PersonagemMeu Avatar.

    Botão de personagem destacado na barra de ferramentas do Studio.
  2. Abra o Editor de Gráficos de Animação navegando até Editor de Gráficos na aba Avatar.

    Editor de Gráficos de Animação indicado na barra de ferramentas do Studio.
  3. Selecione o rig animável na viewport 3D e selecione Criar Gráfico.

  4. No Editor de Gráficos, clique com o botão direito e selecione Clip.

    Lista de nós em um menu de clique com o botão direito
  5. No novo nó Clip, defina o ID da Animação.

    1. Selecione o dropdown ID da Animação.

    2. Para enviar um ID de ativo de animação específico, clique em Importar.

      Indicado um campo no módulo de importação de animação para adicionar ID da Animação
    3. No campo ID da Animação, adicione a animação padrão de Caminhada: 507777826.

    4. Selecione Importar.

  6. Adicione outro nó de clip repetindo os passos 4-5 usando a animação padrão de Aceno: 507770239.

    Dois nós de clip com um ID de Animação populado
  7. No Editor de Gráficos, clique com o botão direito e selecione Adicionar.

    Adicionar nó
  8. Conecte os nós Clip ao nó Adicionar arrastando o conector de saída superior direito para a porta apropriada:

    1. Conecte o nó Clip com a animação de Caminhada à porta Base.
    2. Conecte o nó Clip com a animação de Aceno à porta Adicional.
    Ambos os nós de clip conectados ao nó de adicionar
  9. Do nó Adicionar, conecte o conector de saída superior direito à porta de saída do Gráfico Pose.

    Todos os nós conectados a um nó de saída final
  10. OPCIONAL
    Atribua um parâmetro à sua variável Speed.

    1. Clique e arraste a porta verde de Velocidade para uma área vazia. Um novo nó de parâmetro é exibido.

      Clique e arraste o conector da porta de Velocidade do nó Clip.
    2. No canto superior esquerdo do editor de gráficos, use o painel de parâmetros para modificar rapidamente os parâmetros em seus nós. Você também pode acessar isso programaticamente.

      Painel de parâmetros, nó de parâmetro e nó de clip mostrando valores compartilhados.
  11. Teste a animação pressionando o botão de play.

    Ícone do botão de play para visualizar animações
  12. Tente testar vários pesos, velocidades, modos de reprodução e outras animações. Para mais informações sobre nós individuais, veja a referência de nós.

Integração de API

Criar e implantar um Gráfico de Animação segue o pipeline padrão de animação do Roblox. Após selecionar um rig no Editor de Gráficos de Animação, um novo ativo AnimationGraphDefinition é criado. Este ativo serve como o contêiner para seus nós, conexões e parâmetros. Uma vez que sua lógica esteja finalizada, você publica o gráfico para receber um ID de Ativo padrão.

Em seus scripts, você interage com esses gráficos carregando-os em um Animator como faria com uma animação tradicional. Para impulsionar a lógica interna do gráfico, use AnimationTrack:SetParameter() para passar valores em tempo real — como velocidade de movimento ou booleanos de estado — diretamente para as variáveis do gráfico.

local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://123456789" -- Seu ID de Gráfico Publicado
local animationTrack = animator:LoadAnimation(animation)
animationTrack:Play()
-- Atualizações dinâmicas de parâmetros via RunService
game:GetService("RunService").Stepped:Connect(function(_, dt)
local currentSpeed = humanoidRootPart.AssemblyLinearVelocity.Magnitude
animationTrack:SetParameter("humanoidSpeed", currentSpeed)
end)

Referência de Nós

Cada nó de gráfico de animação serve como uma porta lógica ou fonte de dados que processa dados de animação antes de chegar ao rig do personagem. Esta seção fornece uma análise técnica dos blocos funcionais dentro do Editor de Gráficos de Animação. Todos os nós atualmente produzem uma pose de animação.

Cada seção de nó inclui:

  • Definição – Um resumo do propósito e papel do nó dentro do gráfico.
  • Entradas – Os fluxos de dados que entram no nó. Múltiplas entradas são representadas como Input1, Input2, ..., InputN.
  • Propriedades de entrada – Configurações ligadas diretamente a uma entrada específica (uma entrada Idle atribuída a uma Posição de 0.5 em um nó Blend1D).
  • Dados de Evento – Eventos emitidos ou consumidos pelo nó para acionar a lógica interna do gráfico ou scripts Luau externos. Esse comportamento pode mudar ao longo do desenvolvimento beta.

Regras de evento global

Para todos os nós e transições, as seguintes regras se aplicam por padrão:

  • Eventos se propagam para cima a partir de seu nó de origem através do gráfico. Cada evento carrega um peso representando a influência de sua origem na mistura final. Se o peso atingir zero em algum ponto, o evento é silenciado.
  • Nós sem lógica de evento personalizada passam todos os eventos inalterados; nós que misturam ou selecionam entre entradas podem escalar o peso ou bloquear eventos de entradas não primárias (veja a seção de Evento por nó).
  • Eventos de marcador que atingem o topo do gráfico podem ser observados via AnimationTrack:GetMarkerReachedSignal().

Clip

Nó Clip

Uma referência a um ativo AnimationClip. Este serve como um nó folha no gráfico, gerando os dados brutos de animação que alimentam outros nós para mistura, seleção ou modificação.

Entradas
  • Nenhuma
Propriedades
PropriedadeTipoDescrição
AnimationIdStringO ativo de animação a ser reproduzido (por exemplo, rbxassetid://12345).
PlayModeEnum.AnimationNodePlayMode

Define o comportamento do clip uma vez que atinge o final de sua duração.

  • Loop (padrão): Reinicia automaticamente do início uma vez que o clip termina.
  • PingPong: Reproduz do início ao fim, e então imediatamente toca em reverso do fim ao início.
  • OnceAndHold: Reproduz uma vez e mantém a pose final ao completar.
  • OnceAndReset: Reproduz uma vez e retorna à pose inicial ao completar.
ReverseBooleanControla a direção da reprodução.
SpeedNumberUm multiplicador para a taxa de reprodução. 0.0 pausa o gráfico, 1.0 é a velocidade normal, e 2.0 é o dobro da velocidade.
TrimBooleanAlterna se a duração do clip deve ser truncada.
TrimStartNumberO timestamp absoluto (em segundos) onde a reprodução deve começar.
TrimEndNumberO timestamp absoluto (em segundos) onde a reprodução deve terminar.
Dados de Evento
  • Manipulação de Evento: Nenhuma. Este é um nó folha sem filhos.
  • Emissão de Evento: Lê marcadores personalizados embutidos no clip de animação (por exemplo, "Passo", "Golpe de Arma") e os emite como eventos nomeados no quadro preciso em que ocorrem. Se o clip for truncado, apenas marcadores dentro do intervalo definido [TrimStart, TrimEnd] (inclusivo) são emitidos.

Select

Nó Select

Seleciona entre qualquer número de entradas via a propriedade Selection. Sempre que a seleção atual muda, isso aciona uma nova transição.

Entradas
  • Input1...InputN
Propriedades
PropriedadeTipoDescrição
SelectionStringO ID único da entrada a ser selecionada, correspondendo ao nome da conexão de entrada (por exemplo, "Caminhar").
Dados de Evento
  • Manipulação de Evento: Eventos da entrada atualmente selecionada passam através com seu peso inalterado.
  • Emissão de Evento: Passa por todos os eventos da entrada atualmente selecionada apenas. Durante uma transição, a emissão de eventos segue regras de evento global.

PrioritySelect

Nó Priority Select

Avalia uma lista de entradas conectadas de cima para baixo e reproduz a primeira cuja condição avalia como verdadeira. Isso permite a seleção hierárquica de animação com base em lógica específica. Sempre que a seleção atual muda, isso aciona uma nova transição.

Entradas
  • Input1...InputN
    • Trigger (Boolean): Uma condição lógica que deve ser verdadeira para que esta entrada seja ativada. Nas versões atuais, isso está ligado a um parâmetro booleano.
    • TransitionOverrideInterruptible (Enum.AnimationNodeInterruptible): Define a regra para quando esta animação ativa pode ser interrompida por uma entrada de maior prioridade. Substitui a configuração DefaultInterruptible no nível do nó.
      • Always (padrão): A entrada pode ser interrompida a qualquer momento por uma condição de maior prioridade.
      • Finished: A animação atual deve completar sua reprodução antes que uma entrada de maior prioridade possa assumir.
      • Trigger: A entrada só é interrompível quando o InterruptibleTrigger está definido como verdadeiro.
    • InterruptibleTrigger (Boolean): Disponível apenas se TransitionOverrideInterruptible estiver definido como Trigger. A entrada pode ser interrompida quando esta expressão específica é verdadeira.
Propriedades
PropriedadeTipoDescrição
DefaultInterruptibleEnum.AnimationNodeInterruptibleA regra de interrupção básica aplicada a todas as entradas. Cada entrada pode substituir isso com sua própria propriedade de entrada TransitionOverrideInterruptible.
Dados de Evento
  • Manipulação de Evento: Eventos da entrada atualmente selecionada passam através com seu peso inalterado.
  • Emissão de Evento: Passa por todos os eventos da entrada atualmente selecionada apenas. Durante uma transição, a emissão de eventos segue regras de evento global.

Sequence

Nó Sequence

Ativa entradas conectadas em uma ordem sequencial específica com base em condições de espera definidas. Sempre que a seleção atual muda, isso aciona uma nova transição.

Entradas
  • Input1...InputN
    • TransitionOverrideWaitFor (Enum.AnimationNodeWaitFor): Especifica a condição que deve ser atendida antes que a sequência avance para a próxima entrada. Substitui a configuração DefaultWaitFor no nível do nó.
      • Finished (padrão): Avança para a próxima entrada quando a entrada atual completa um ciclo. O comportamento de avanço depende da entrada conectada:
        • Clip de reprodução única: Avança quando o clip termina.
        • Clip em loop: Avança após um loop completo.
        • Sequência com loops infinitos: Avança após um ciclo completo através de todas as entradas.
        • Sequência com loops finitos: Avança após todos os loops serem completados.
      • Trigger: Ativa a próxima entrada quando uma expressão lógica personalizada avalia como verdadeira.
    • WaitForTrigger (Boolean): Disponível apenas quando TransitionOverrideWaitFor está definido como Trigger.
Propriedades
PropriedadeTipoDescrição
LoopCountNumberO número de vezes que deve passar por toda a sequência. Um valor de 0 (padrão) indica um loop infinito. Uma vez que a contagem é alcançada, o nó respeita a configuração de loop ou hold da entrada final.
DefaultWaitForEnum.AnimationNodeWaitForA condição de espera básica aplicada a todas as entradas. Cada entrada pode substituir isso com sua própria propriedade de entrada TransitionOverrideWaitFor.
Dados de Evento
  • Manipulação de Evento: Eventos da entrada atualmente ativa passam através com seu peso inalterado.
  • Emissão de Evento: Passa por todos os eventos da entrada atualmente ativa na sequência apenas. Durante uma transição, a emissão de eventos segue regras de evento global.

RandomSequence

Nó Random Sequence

Seleciona e reproduz uma de suas entradas conectadas aleatoriamente. Quando a animação atualmente selecionada é concluída, o nó escolhe aleatoriamente outra entrada para reproduzir. Atribua a cada entrada um peso específico para influenciar a probabilidade de ser escolhida. Sempre que a seleção atual muda, isso aciona uma nova transição.

Entradas
  • Input1...InputN
    • Weight (Number): Determina a probabilidade desta entrada ser selecionada; pesos mais altos aumentam a chance de seleção.
Propriedades
PropriedadeTipoDescrição
PlayCountNumberO número de entradas que o nó irá reproduzir antes de parar. Uma vez alcançado, o nó respeita a configuração de loop ou hold da entrada final. O padrão é 0 para infinito.
SeedNumberUm valor usado para inicializar o Gerador de Números Aleatórios (RNG), garantindo que a sequência permaneça consistente entre diferentes clientes. O padrão é -1 para Seed aleatório.
Dados de Evento
  • Manipulação de Evento: Eventos da entrada atualmente ativa passam através com seu peso inalterado.
  • Emissão de Evento: Passa por todos os eventos da entrada atualmente ativa na sequência apenas. Durante uma transição, a emissão de eventos segue regras de evento global.

Over

Nó Over

Sobrepõe a pose Over à pose Base. Quando combinado com um nó de Máscara, articulações mascaradas na pose Over revelam completamente a pose Base, criando um efeito de sobreposição transparente.

Entradas
  • Base: A camada de fundo ou inferior, tipicamente uma animação de corpo inteiro como locomoção ou um estado ocioso.
  • Over: A camada de primeiro plano ou superior a ser aplicada sobre a base, como um gesto de mão ou animação de uso de ferramenta.
Propriedades
PropriedadeTipoDescrição
WeightNumberO peso de mistura usado para atenuar a pose Over. O padrão é 1.0 (substituição total) e não é limitado.
Dados de Evento
  • Manipulação de Evento:
    • O nó escuta eventos de ambas as entradas Base e Over.
  • Emissão de Evento:
    • Eventos Base: Todos os eventos da entrada Base são passados sem modificação.
    • Eventos Over: Eventos da entrada Over são escalados pela propriedade Weight.
      • Com Weight 0.5, eventos Over se propagam com metade do peso.
      • Com Weight 0, eles são silenciados.

Add

Nó Add

Adiciona a pose Adicional à pose Base, atenuada por um Peso específico (não limitado).

Entradas
  • Base: A pose de animação primária.
  • Additive: A pose a ser sobreposta à base.
Propriedades
PropriedadeTipoDescrição
WeightNumberDetermina a força da pose aditiva aplicada à base.
Dados de Evento
  • Manipulação de Evento: O nó escuta eventos de ambas as entradas Base e Additive.
  • Emissão de Evento: Todos os eventos de ambas as entradas Base e Additive são passados sem modificação.

Subtract

Nó Subtract

Converte uma animação em uma pose aditiva subtraindo uma pose base relativa da pose alvo (AWeight×BA - \text{Weight} \times B). O Peso escala a pose B antes da subtração (não limitado).

Entradas
  • A: A pose de animação alvo.
  • B: A pose base relativa a ser subtraída.
Propriedades
PropriedadeTipoDescrição
WeightNumberEscala a pose B antes de ser subtraída de A. Com 1.0 (padrão), B é totalmente subtraída; com 0.0, nenhuma subtração ocorre.
Dados de Evento
  • Manipulação de Evento: O nó escuta eventos de ambas Input A e Input B.
  • Emissão de Evento: Todos os eventos de ambas Input A e Input B são passados sem modificação.

Blend1D

Nó Blend1D

Interpolação linear entre as duas poses de animação mais próximas à posição de entrada atual em um único eixo.

Entradas
  • Input1...InputN
    • Position (Number): A coordenada específica para cada entrada subsequente no eixo de mistura.
Propriedades
PropriedadeTipoDescrição
PositionNumberO valor ativo atual no eixo de mistura usado para amostrar as animações. Se Position estiver fora do intervalo de posições de entrada definidas, o nó extrapola usando as duas entradas mais próximas.
PhaseSyncEnum.AnimationNodePhaseSync

Configura se o tempo das entradas filhas deve ser sincronizado.

  • Sincronizado (padrão): Sincronização normalizada. O nó calcula uma "duração virtual" com base na média ponderada das entradas ativas. O passo de tempo de cada nó de entrada é ajustado para que todas as crianças converjam para a mesma fase, mantendo animações de diferentes comprimentos em sincronia.
  • Não Sincronizado: Mistura padrão onde os clipes avançam independentemente em suas próprias taxas de reprodução.
Dados de Evento
  • Manipulação de Evento: O nó escuta eventos de todos os nós filhos atualmente ativos.
  • Emissão de Evento: Apenas eventos da entrada ativa de maior peso se propagam, escalados pelo seu peso de mistura. Eventos da entrada secundária são silenciados.

Blend2D

Nó Blend2D

Mistura múltiplas poses de animação com base em dois parâmetros de entrada dentro de um espaço de coordenadas 2D. Isso generaliza o nó Blend1D para lidar com cenários complexos, como mistura com base na direção e velocidade de movimento simultaneamente.

Entradas
  • Input1...InputN
    • X (Number): A coordenada X para cada entrada subsequente.
    • Y (Number): A coordenada Y para cada entrada subsequente.
Propriedades
PropriedadeTipoDescrição
InputModeEnum.AnimationNodeBlend2DInputMode

Define o sistema de coordenadas usado para avaliar o espaço de mistura:

  • Cartesiano (padrão): Usa coordenadas de grade 2D padrão. X e Y representam a posição atual dentro do espaço de mistura.
  • Polar: Usa valores angulares e de magnitude. X representa a direção em radianos, enquanto Y representa a magnitude ou força do movimento. A direção é ponderada mais pesadamente do que a magnitude, então entradas em ângulos semelhantes, mas com magnitudes diferentes, se misturam mais suavemente do que entradas em ângulos diferentes.
XNumberA coordenada X atual (Cartesiana) ou Direção em radianos (Polar).
YNumberA coordenada Y atual (Cartesiana) ou Magnitude (Polar).
PhaseSyncEnum.AnimationNodePhaseSync

Configura se o tempo das entradas filhas deve ser sincronizado.

  • Sincronizado (padrão): Sincronização normalizada. O nó calcula uma "duração virtual" com base na média ponderada das entradas ativas. O passo de tempo de cada nó de entrada é ajustado para que todas as crianças converjam para a mesma fase, mantendo animações de diferentes comprimentos em sincronia.
  • Não Sincronizado: Mistura padrão onde os clipes avançam independentemente em suas próprias taxas de reprodução.
Dados de Evento
  • Manipulação de Evento: O nó escuta eventos de todos os nós filhos atualmente ativos.
  • Emissão de Evento: Apenas eventos da entrada ativa de maior peso se propagam, escalados pelo seu peso de mistura. Eventos da entrada secundária são silenciados.

Mask

Nó Mask

Aplica uma máscara predefinida à Pose de entrada. Uma máscara é definida por um peso por objeto (por exemplo, articulação) na hierarquia do rig, permitindo controle preciso ou "desfoque" da animação.

Entradas
  • Pose: A pose de animação a ser mascarada.
Propriedades
PropriedadeTipoDescrição
MaskObjectValue

Um ObjectValue (criado como um filho direto da definição de nó de animação Mask) que define os pesos da máscara. Pode funcionar de duas maneiras:

  • Diretamente: O ObjectValue em si contém atributos mapeando nomes de objetos do rig para valores de peso específicos.
  • Por Referência: O ObjectValue referencia outra Instance que contém os atributos de mapeamento. Isso permite máscaras compartilhadas entre diferentes nós no gráfico.

Ao criar uma máscara, você pode escolher um esquema de rig (HumanoidRigDescription ou Picker) para preencher a hierarquia.

  • HumanoidRigDescription: Padroniza a máscara para personagens humanoides.
  • Picker: Permite ao usuário selecionar qualquer rig específico no espaço de trabalho para preencher a hierarquia da máscara.
InvertBooleanQuando verdadeiro, aplica valores de peso como 1 - peso. Isso permite reutilizar uma máscara inversamente sem criar um novo ativo.
Dados de Evento
  • Manipulação de Evento: O nó escuta todos os eventos da entrada Pose.
  • Emissão de Evento: Todos os eventos da entrada Pose são passados sem modificação.

Speed

Nó Speed

Modifica a taxa de reprodução de uma pose de animação de entrada.

Entradas
  • Pose: A pose de animação ou subgráfico cuja velocidade de reprodução será modificada.
Propriedades
PropriedadeTipoDescrição
SpeedNumberUm multiplicador aplicado ao delta de tempo (dtdt). 0.0 pausa o gráfico, 1.0 é a velocidade normal, e 2.0 é o dobro da velocidade.
Dados de Evento
  • Manipulação de Evento: O nó escuta eventos da entrada Pose.
  • Emissão de Evento: Todos os eventos da entrada Pose são passados sem modificação. Note que, enquanto a velocidade de reprodução visual muda, o tempo dos eventos emitidos (como marcadores) será escalado de acordo com a taxa de reprodução modificada.

GraphOutput

Nó GraphOutput

Representa a pose final avaliada do gráfico. Este nó é automaticamente incluído em todos os novos gráficos no Editor de Gráficos de Animação. Sua presença garante que o gráfico seja sempre válido e produza consistentemente uma pose de animação.

Entradas
  • Pose: Os dados de animação processados finais a serem aplicados ao rig.
Propriedades
  • Nenhuma
Dados de Evento
  • Manipulação de Evento: O nó escuta todos os eventos passados pela entrada conectada final.
  • Emissão de Evento: Este nó serve como o ponto de saída para o pipeline de animação e não emite sinais de volta para o gráfico.

Transições

Vários nós no Gráfico de Animação (como Select, Priority Select, Sequence e Random Sequence) gerenciam como as animações se misturam ao alternar entre entradas ativas. Para evitar redundância na referência de nós, esses comportamentos são definidos por grupos de propriedades de transição padronizadas.

Transição padrão

Transição Padrão

O comportamento de mistura básico aplicado ao nó sempre que ele muda para uma nova entrada ativa.

Sobrescrever transição

Propriedades de link específicas de entrada que substituem a transição padrão. Estas são aplicadas quando o nó transita para essa entrada específica.

Replicação

Os parâmetros do gráfico de animação e o estado interno do nó se replicam automaticamente. O modo de replicação é determinado por Workspace.AuthorityMode no momento em que o script Animate é criado:

Exemplos de Scripts Animate

Para gerar scripts de exemplo para impulsionar um gráfico de animação para um rig, use Graph -> Create Animate script no Editor de Gráficos de Animação. Isso produz uma hierarquia de script colocada sob StarterCharacterScripts (para personagens de jogadores) ou diretamente no rig (para NPCs):

Animate (ModuleScript)
├── RunClient (LocalScript)
└── RunServer (Script, RunContext = Legacy)

O Animate ModuleScript contém a lógica de carregamento do gráfico. Os scripts RunClient e RunServer o invocam no contexto apropriado. Quais scripts são incluídos depende do caso de uso:

Caso de UsoScripts IncluídosComportamento
NPC (qualquer modo)RunServerO servidor carrega e reproduz o gráfico. O estado se replica automaticamente para todos os clientes.
Jogador + Enum.AuthorityMode.ServerRunServer + RunClientO servidor controla o gráfico de forma autoritária. O cliente proprietário ativa Enum.PredictionMode para previsão local baseada em rollback.
Jogador + Enum.AuthorityMode.AutomaticRunClientO cliente proprietário carrega e reproduz o gráfico. Parâmetros se replicam automaticamente para o servidor e outros clientes.

Os seguintes atributos são armazenados no script Animate e configuram seu comportamento:

AtributoTipoDescrição
GraphNameStringNome do ativo do gráfico de animação.
CharacterNameStringNome do rig que o gráfico visa.
SourceAssetIdStringO ID de Ativo publicado do gráfico. Usado em tempo de execução em jogos publicados.
IsServerAuthorityBooleanSe o script foi criado com Workspace.AuthorityMode definido como Server. Determina a estratégia de replicação.
PreviewInStudioBooleanQuando verdadeiro (padrão), o teste de jogo no Studio carrega o gráfico não publicado localmente para que você possa iterar sem publicar. Defina como falso para testar o ativo publicado no Studio. Note que isso atualmente não é suportado em Enum.AuthorityMode.Server.

Replicação de parâmetros em modo automático

Quando Workspace.AuthorityMode é Automático:

  • O cliente proprietário controla os gráficos do personagem do jogador; o servidor controla os gráficos de NPC.
  • Parâmetros definidos via AnimationTrack:SetParameter() são replicados automaticamente para outros pares. Múltiplas chamadas SetParameter dentro de um único quadro são coalescidas (último escritor vence).
  • Nenhuma script adicional é necessária para o transporte de parâmetros — o motor lida com a replicação internamente.
  • Outros clientes veem atualizações de parâmetros com um pequeno atraso (um intervalo de envio mais latência de rede).

Autoridade do servidor

Quando Workspace.AuthorityMode é Servidor:

  • O servidor é autoritário para todos os gráficos — ele executa a simulação e replica o estado completo do gráfico.
  • O que é replicado: Tanto parâmetros quanto estado interno do nó, incluindo tempo decorrido, seleções atuais, progresso de transição, contagens de loop e sementes de RNG. Isso garante que todos os clientes vejam um comportamento de animação idêntico.
  • Personagens de jogadores: O servidor controla o gráfico. O script RunClient do cliente proprietário ativa automaticamente Enum.PredictionMode no Animator, para que o jogador local veja animação suave e prevista que se reconcilia com o servidor em caso de discrepância.
  • NPCs: O servidor controla o gráfico exclusivamente; os clientes observam o estado replicado sem simulação local.

Impulsionando parâmetros

Use AnimationTrack:SetParameter() de cada script que executa o gráfico:

  • NPC (qualquer modo): Chame SetParameter de RunServer (ou qualquer Script do servidor com acesso ao AnimationTrack).
  • Personagem do jogador em Enum.AuthorityMode.Server: Chame SetParameter de ambos RunServer e RunClient. O servidor precisa de parâmetros para controlar a simulação autoritária, e o cliente proprietário precisa dos mesmos parâmetros para controlar sua previsão local.
  • Personagem do jogador em Enum.AuthorityMode.Automatic: Chame SetParameter de RunClient (ou qualquer LocalScript do cliente com acesso ao AnimationTrack).

O script Animate gerado inclui um bloco SetParameter comentado como ponto de partida. Descomente e modifique-o para impulsionar parâmetros a partir do estado do jogo (velocidade de movimento, estado do humanoide, direção de entrada, etc.).

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.