Usando Animações

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

Uma vez que você tenha criado uma animação, você precisa usar scripts para incluí-la em sua experiência. Você pode either jogar animações manualmente dos scripts ou substituir animações padrão para personagens do jogador.

Jogando Animações de Scripts

Em alguns casos, você precisará jogar uma animação diretamente do dentro de um script, como quando um usuário pressiona uma certa tecla ou coleta um item especial.

Humanóides

Para jogar uma animação em um modelo que contém um ObjetoHumanoid, como personagens jogáveis típicos, siga esse padrão básico:

  1. Certifique-se de que o Humanoid do jogador local contém um ObjetoAnimator.
  2. Crie uma nova instância Animation com o AnimationId adequado.
  3. Carregar a animação via Animator:LoadAnimation() para criar um AnimationTrack .
  4. Jogue a música com AnimationTrack:Play() .

Por exemplo, o seguinte LocalScript, quando colocado em StarterPlayerScripts, carrega uma animação de "expulsar" no personagem do jogador e aplica-a. O script também utiliza o método Class.AnimationTrack:GetMarkerReachedSignal()|GetMarkerReachedSignal() para detectar quando um evento de animação específico ocorre.

LocalScript - Jogue Animação Personalizada no Personagem do Jogador

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Certifique-se de que o humanóide do personagem contém um Objeto"Animador"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Criar uma nova instância "Animação" e atribuir um ID de ativo de animação
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Carregar a animação no animador
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jogue a pista de animação
kickAnimationTrack:Play()
-- Se um evento nomeado for definido para a animações, conecte-o ao "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Não-Humanóides

Para jogar animações em modelos que não contêm um Class.Humanoid, você deve criar um Humanoid com um filho AnimationController . Por exemplo, o seguinte 2> Class.Script2> (assumido ser um filho direto do rig / plataforma / equipamento) carrega uma animação de "expulsar" e aplica-a.

Script - Jogue Animação Personalizada no Personagem Rig

local rig = script.Parent
-- Criar uma nova instância "Animação" e atribuir um ID de ativo de animação
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Criar um novo "AnimationController" e "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Carregar a animação no animador
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Jogue a pista de animação
kickAnimationTrack:Play()
-- Se um evento nomeado for definido para a animações, conecte-o ao "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Substituindo Animações Padrão

Por padrão, os personagens de jogador do Roblox incluem animações comuns, como correr, escalar, nadar e pular. Você pode substituir essas animações padrão com animações do catálogo ou com suas próprias animações Customizadas.

  1. Obtenha o ID do recurso da nova animação da seguinte forma:

    • Para uma animação personalizada construída com o Editor de Animação, siga as instruções de exportação.
    • Copie um ID adequado da referência de animação do catálogo abaixo. Por exemplo, para substituir a animação de execução padrão com a variante Ninja Run, use 656118852.
  2. Na janela Explorer, adicione um novo Script à ServerScriptService .

    1. Passe o mouse sobre ServerScriptService e clique no botão ⊕.
    2. Do menu contextual, insira um Script .
  3. No novo script, cole o seguinte código:

    Script - Substituir Animações de Personagem Padrão

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Obter o animador no humanóide
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Pare todas as faixas de animação
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    --animateScript.executar.RunAnim.AnimationId = "rbxassetid://"
    --animateScript.andar.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.pular.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.inativo.Animation1.AnimationId = "rbxassetid://"
    --animateScript.inativo.Animation2.AnimationId = "rbxassetid://"
    --animateScript.queda.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.nadar.Swim.AnimationId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.escalada.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  4. Para cada linha que referencia uma animação de personagem padrão</animação de personagem padrão], não comente-a e cole o ID de substituição depois de rbxassetid://. Por exemplo, para alterar a animação de execução padrão para a variante rbxassetid://:

    Script - Substituir Animações de Personagem Padrão

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Obter o animador no humanóide
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Pare todas as faixas de animação
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"
    --animateScript.andar.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.pular.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.inativo.Animation1.AnimationId = "rbxassetid://"
    --animateScript.inativo.Animation2.AnimationId = "rbxassetid://"
    --animateScript.queda.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.nadar.Swim.AnimationId = "rbxassetid://"
    --animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"
    --animateScript.escalada.ClimbAnim.AnimationId = "rbxassetid://"
    end
    local function onPlayerAdded(player)
    player.CharacterAppearanceLoaded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

Configurando Pesos de Animação

Você pode usar várias animações para a mesma ação. Por exemplo, há duas variações de idle no código de exemplo para substituir animações padrão .

Quando múltiplas animações existem para um estado de personagem, o script Animate escolhe aleatoriamente qual delas jogar, mas você pode influenciar o resultado definindo o valor de Weight da animação sob a seguinte fórmula:

  • peso da animação / peso total de todas as animações de estado No seguinte exemplo, idle.Animation1 vai jogar ⅓ do tempo que o personagem está inativo, enquanto idle.Animation2 vai jogar ⅔ do tempo.
Script - Substituir Animações de Personagem Padrão

animateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"
animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"
animateScript.idle.Animation1.Weight.Value = 5
animateScript.idle.Animation2.Weight.Value = 10

Referências de Animação

Animações de Personagem Padrão

A tabela a seguir contém todas as animações de personagens padrão que você pode substituir com animações de catálogo ou suas próprias animações definidas. Observe que Idle tem duas variações que você pode 2>pesar2> para jogar mais ou menos frequentemente.

Ação de PersonagemReferência de Script de Animação
Corra animateScript.run.RunAnim.AnimationId
Caminhar animateScript.walk.WalkAnim.AnimationId
Saltar animateScript.jump.JumpAnim.AnimationId
Inativo

animateScript.idle.Animation1.AnimationId``animateScript.idle.Animation2.AnimationId

Cair animateScript.fall.FallAnim.AnimationId
Nadar

animateScript.swim.Swim.AnimationId

Nadar (Inactivo)

animateScript.swimidle.SwimIdle.AnimationId

Escalar animateScript.climb.ClimbAnim.AnimationId

Ao usar conjuntos de animação de avatar para substituir animações padrão, use as seguintes referências para os IDs de recursos respectivos. Por exemplo, se você quiser aplicar a animação Ninja Jump, use 656117878. Observe que 1>Idle1> possui várias variações.

Astronauta

Correr 891636393 Caminhar 891636393

Bubbly

Correr 910025107 Caminhar 91003487

Desenho Animado >

Correr 742638842> Caminhar 742638445

Velho >

Correr 845386501 Caminhar 845403856

Cavaleiro >

Correr 657564596 Caminhar 657552124

Levitação

Correr 616010382 Caminhar 616013216

Mago >

Correr 70786

Ninja >

Correr 656118852> Caminhar 656121766>

Pirata

Correr 750783738 Caminhar 750785693

Robô >

Correr 616091570 Caminhar 616095330

Rthro >

Correr 2510198475 Caminhar 2510

Elegante >

Correr 616140816 Caminhar 616146177>

Super-herói >

Correr 616117076 Caminhar 616122287

Brinquedo

Correr 782842708 Caminhar 782843345

Vampiro >

Correr 1083462077 Caminhar 1083

Lobisomem

Correr 1083216690 Caminhar 1083

Zumbi >

Correr 616163682 Caminhar 616168032