Uma vez que você tenha criado uma animação, você precisa usar scripts para incluí-las em seu jogo. Você pode tocar animações manualmente a partir de scripts ou substituir animações padrão para personagens dos jogadores.
Tocar animações a partir de scripts
Em alguns casos, você precisará tocar uma animação diretamente de dentro de um script, como quando um usuário pressiona uma tecla específica ou pega um item especial.
Humanoides
Para tocar uma animação em um rig contendo um objeto Humanoid, como personagens jogáveis típicos, siga este padrão básico:
- Crie uma nova instância de Animation com o AnimationId adequado.
- Carregue a animação via Animator:LoadAnimation() para criar uma AnimationTrack.
- Toque a faixa com AnimationTrack:Play().
Por exemplo, o seguinte LocalScript, quando colocado em StarterPlayerScripts, carrega uma animação de "chute" no personagem do jogador e a toca. O script também utiliza o método GetMarkerReachedSignal() para detectar quando um evento de animação específico ocorre.
LocalScript - Tocar 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 humanoide do personagem contenha um objeto "Animator"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Crie uma nova instância de "Animation" e atribua um ID de ativo de animação
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Carregue a animação no animador
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Se um evento nomeado foi definido para a animação, conecte-o a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Tocar a faixa de animação
kickAnimationTrack:Play()
Não-humanóides
Para tocar animações em rigs que não contêm um Humanoid, você deve criar um AnimationController com um Animator filho. Por exemplo, o seguinte Script (assumido como um filho direto do rig) carrega uma animação de "chute" e a toca.
Script - Tocar Animação Personalizada no Rig do Personagem
local rig = script.Parent
-- Crie uma nova instância de "Animation" e atribua um ID de ativo de animação
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Crie um novo "AnimationController" e "Animator"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Carregue a animação no animador
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Se um evento nomeado foi definido para a animação, conecte-o a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)
task.wait(4)
-- Tocar a faixa de animação
kickAnimationTrack:Play()
Substituir animações padrão
Por padrão, os personagens dos jogadores no Roblox incluem animações comuns como correr, escalar, nadar e pular. Você pode substituir essas animações padrão por animações do catálogo ou por suas próprias animações personalizadas.
Obtenha o ID do ativo da nova animação da seguinte forma:
- Para uma animação personalizada criada com o Animation Editor, siga as instruções de exportação.
- Copie um ID apropriado da referência de animação do catálogo abaixo. Por exemplo, para substituir a animação de correr padrão pela variante Ninja Run, use 656118852.
No novo script, cole o seguinte código:
Script - Substituir Animações Padrão do Personagemlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obter animador no humanoidelocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Parar todas as faixas de animaçãofor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")--animateScript.run.RunAnim.AnimationId = "rbxassetid://"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)Para cada linha que faz referência a uma animação de personagem padrão, descomente-a e cole o ID de substituição após rbxassetid://. Por exemplo, para mudar a animação de correr padrão para a variante Ninja Run:
Script - Substituir Animações Padrão do Personagemlocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obter animador no humanoidelocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Parar todas as faixas de animaçãofor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal animateScript = character:WaitForChild("Animate")animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"--animateScript.walk.WalkAnim.AnimationId = "rbxassetid://"--animateScript.jump.JumpAnim.AnimationId = "rbxassetid://"--animateScript.idle.Animation1.AnimationId = "rbxassetid://"--animateScript.idle.Animation2.AnimationId = "rbxassetid://"--animateScript.fall.FallAnim.AnimationId = "rbxassetid://"--animateScript.swim.Swim.AnimationId = "rbxassetid://"--animateScript.swimidle.SwimIdle.AnimationId = "rbxassetid://"--animateScript.climb.ClimbAnim.AnimationId = "rbxassetid://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
Definir pesos de animação
Você pode usar várias animações para a mesma ação. Por exemplo, existem duas variações de idle no exemplo de código para substituir animações padrão.
Quando várias animações existem para um estado do personagem, o script Animate escolhe aleatoriamente qual tocar, 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 exemplo a seguir, idle.Animation1 será tocada ⅓ do tempo que o personagem estiver parado, enquanto idle.Animation2 será tocada ⅔ do tempo.
Script - Substituir Animações Padrão do PersonagemanimateScript.idle.Animation1.AnimationId = "rbxassetid://656117400"animateScript.idle.Animation2.AnimationId = "rbxassetid://656118341"animateScript.idle.Animation1.Weight.Value = 5animateScript.idle.Animation2.Weight.Value = 10
Referências de animação
Animações padrão do personagem
A tabela a seguir contém todas as animações padrão do personagem que você pode substituir por animações do catálogo ou por suas próprias animações personalizadas. Note que Idle tem duas variações que você pode pesar para tocar com mais ou menos frequência.
| Ação do personagem | Referência do script Animate |
| Correr | animateScript.run.RunAnim.AnimationId |
| Andar | animateScript.walk.WalkAnim.AnimationId |
| Pular | animateScript.jump.JumpAnim.AnimationId |
| Parado | animateScript.idle.Animation1.AnimationId |
| Cair | animateScript.fall.FallAnim.AnimationId |
| Nadar | animateScript.swim.Swim.AnimationId |
| Nadar (Parado) | animateScript.swimidle.SwimIdle.AnimationId |
| Escalar | animateScript.climb.ClimbAnim.AnimationId |
Animações do catálogo
Ao usar pacotes de animação de avatar para substituir animações padrão, use as seguintes referências para os respectivos IDs de ativos. Por exemplo, se você deseja aplicar a animação Ninja Jump, use 656117878. Note que Idle tem várias variações.
| Astronauta | Correr 891636393 Andar 891636393 Pular 891627522 Parado 891621366, 891633237, 1047759695 Cair 891617961 Nadar 891639666 Nadar (Parado) 891663592 Escalar 891609353 |
| Bubbly | Correr 910025107 Andar 910034870 Pular 910016857 Parado 910004836, 910009958, 1018536639 Cair 910001910 Nadar 910028158 Nadar (Parado) 910030921 Escalar 909997997 |
| Cartoon | Correr 742638842 Andar 742640026 Pular 742637942 Parado 742637544, 742638445, 885477856 Cair 742637151 Nadar 742639220 Nadar (Parado) 742639812 Escalar 742636889 |
| Idoso | Correr 845386501 Andar 845403856 Pular 845398858 Parado 845397899, 845400520, 901160519 Cair 845396048 Nadar 845401742 Nadar (Parado) 845403127 Escalar 845392038 |
| Cavaleiro | Correr 657564596 Andar 657552124 Pular 658409194 Parado 657595757, 657568135, 885499184 Cair 657600338 Nadar 657560551 Nadar (Parado) 657557095 Escalar 658360781 |
| Levitação | Correr 616010382 Andar 616013216 Pular 616008936 Parado 616006778, 616008087, 886862142 Cair 616005863 Nadar 616011509 Nadar (Parado) 616012453 Escalar 616003713 |
| Mago | Correr 707861613 Andar 707897309 Pular 707853694 Parado 707742142, 707855907, 885508740 Cair 707829716 Nadar 707876443 Nadar (Parado) 707894699 Escalar 707826056 |
| Ninja | Correr 656118852 Andar 656121766 Pular 656117878 Parado 656117400, 656118341, 886742569 Cair 656115606 Nadar 656119721 Nadar (Parado) 656121397 Escalar 656114359 |
| Pirata | Correr 750783738 Andar 750785693 Pular 750782230 Parado 750781874, 750782770, 885515365 Cair 750780242 Nadar 750784579 Nadar (Parado) 750785176 Escalar 750779899 |
| Robô | Correr 616091570 Andar 616095330 Pular 616090535 Parado 616088211, 616089559, 885531463 Cair 616087089 Nadar 616092998 Nadar (Parado) 616094091 Escalar 616086039 |
| Rthro | Correr 2510198475 Andar 2510202577 Pular 2510197830 Parado 2510197257, 2510196951, 3711062489 Cair 2510195892 Nadar 2510199791 Nadar (Parado) 2510201162 Escalar 2510192778 |
| Estiloso | Correr 616140816 Andar 616146177 Pular 616139451 Parado 616136790, 616138447, 886888594 Cair 616134815 Nadar 616143378 Nadar (Parado) 616144772 Escalar 616133594 |
| Super-herói | Correr 616117076 Andar 616122287 Pular 616115533 Parado 616111295, 616113536, 885535855 Cair 616108001 Nadar 616119360 Nadar (Parado) 616120861 Escalar 616104706 |
| Brinquedo | Correr 782842708 Andar 782843345 Pular 782847020 Parado 782841498, 782845736, 980952228 Cair 782846423 Nadar 782844582 Nadar (Parado) 782845186 Escalar 782843869 |
| Vampiro | Correr 1083462077 Andar 1083473930 Pular 1083455352 Parado 1083445855, 1083450166, 1088037547 Cair 1083443587 Nadar 1083464683 Nadar (Parado) 1083467779 Escalar 1083439238 |
| Lobisomem | Correr 1083216690 Andar 1083178339 Pular 1083218792 Parado 1083195517, 1083214717, 1099492820 Cair 1083189019 Nadar 1083222527 Nadar (Parado) 1083225406 Escalar 1083182000 |
| Zumbi | Correr 616163682 Andar 616168032 Pular 616161997 Parado 616158929, 616160636, 885545458 Cair 616157476 Nadar 616165109 Nadar (Parado) 616166655 Escalar 616156119 |