Usar animaciones

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Una vez que hayas creado una animación, necesitas usar scripts para incluirlos en tu experienciaPuedes o bien reproducir animaciones manualmente desde scripts o reemplazar las animaciones predeterminadas para los personajes del jugador.

Reproducir animaciones desde scripts

En algunos casos, tendrás que reproducir una animación directamente desde dentro de un script, como cuando un usuario presiona una determinada tecla o recoge un objetoespecial.

Humanoides

Para reproducir una animación en un modelo que contenga un objeto Humanoid , como los personajes jugables típicos, sigue este patrón básico:

  1. Asegúrese de que el elemento del jugador local contenga un objeto .
  2. Crea una nueva instancia Animation con el propio AnimationId.
  3. Carga la animación a través de Animator:LoadAnimation() para crear un AnimationTrack.
  4. Reproduce la pista con AnimationTrack:Play() .

Por ejemplo, la siguiente LocalScript , cuando se coloca en StarterPlayerScripts , carga una animación de "explusar" en el personaje del jugador y la reproduce.El script también utiliza el método para detectar cuando ocurre un evento de animación específico .

LocalScript - Reproducir animación personalizada en el personaje del jugador

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
-- Asegúrate de que el humanoide del personaje contenga un objeto "Animador"
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
-- Crea una nueva instancia de "Animación" y asigna un ID de elemento de animación
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Carga la animación en el animador
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Reproducir la pista de animación
kickAnimationTrack:Play()
-- Si un evento llamado se definió para la animaciones, conéctalo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

No humanoides

Para reproducir animaciones en rigs que no contienen no contienen un Humanoid , debe crear un AnimationController con un hijo Animator .Por ejemplo, la siguiente Script (se supone que es un hijo directo del rig) carga una animación de "explusar" y la reproduce.

Script - Reproducir animación personalizada en el modelo de personaje

local rig = script.Parent
-- Crea una nueva instancia de "Animación" y asigna un ID de elemento de animación
local kickAnimation = Instance.new("Animation")
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Crear un nuevo "Controlador de animación" y "Animador"
local animationController = Instance.new("AnimationController")
animationController.Parent = rig
local animator = Instance.new("Animator")
animator.Parent = animationController
-- Carga la animación en el animador
local kickAnimationTrack = animator:LoadAnimation(kickAnimation)
-- Reproducir la pista de animación
kickAnimationTrack:Play()
-- Si un evento llamado se definió para la animaciones, conéctalo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

Reemplazar las animaciones predeterminadas

Por defecto, los personajes de jugadores de Roblox incluyen animaciones comunes como correr, escalar, nadar y saltar.Puedes reemplazar estas animaciones predeterminadas con animaciones del catálogo o con tus propias animaciones personalizadas.

  1. Obtenga el ID de activo de la nueva animación como sigue:

  2. En la ventana Explorador, agregue un nuevo Script a ServerScriptService .

    1. Pase el mouse sobre Servicio de script de servidor y haga clic en el botón ⊕.
    2. Desde el menú contextual, insira un script .
  3. En el nuevo script, pega el siguiente código:

    Script - Reemplazar las animaciones de personajes predeterminadas

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Obtener animador en humanoide
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Detener todas las pistas de animación
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    --animateScript.ejecutar.RunAnim.AnimationId = "rbxassetid://"
    --animateScript.caminata.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.salto.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.inactividad.Animación1.AnimaciónId = "rbxassetid://"
    --animateScript.inactividad.Animación2.AnimaciónId = "rbxassetid://"
    --animateScript.caída.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.nado.Swim.AnimaciónId = "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 línea que se refiera a una animación de personaje predeterminada , descomiéntala y pega la ID de reemplazo después de .Por ejemplo, para cambiar la animación predeterminada de ejecución a la variante Ninja Run:

    Script - Reemplazar las animaciones de personajes predeterminadas

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    -- Obtener animador en humanoide
    local humanoid = character:WaitForChild("Humanoid")
    local animator = humanoid:WaitForChild("Animator")
    -- Detener todas las pistas de animación
    for _, playingTrack in animator:GetPlayingAnimationTracks() do
    playingTrack:Stop(0)
    end
    local animateScript = character:WaitForChild("Animate")
    animateScript.run.RunAnim.AnimationId = "rbxassetid://656118852"
    --animateScript.caminata.WalkAnim.AnimationId = "rbxassetid://"
    --animateScript.salto.JumpAnim.AnimationId = "rbxassetid://"
    --animateScript.inactividad.Animación1.AnimaciónId = "rbxassetid://"
    --animateScript.inactividad.Animación2.AnimaciónId = "rbxassetid://"
    --animateScript.caída.FallAnim.AnimationId = "rbxassetid://"
    --animateScript.nado.Swim.AnimaciónId = "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)

Establecer pesos de animación

Puedes usar múltiples animaciones para la misma acción.Por ejemplo, hay dos idle variaciones en la muestra de código para reemplazar las animaciones predeterminadas .

Cuando existen múltiples animaciones para un estado de personaje, el Animate script elige aleatoriamente cuál jugar, pero puedes influir en el resultado al establecer el valor de la animación Weight bajo la siguiente fórmula:

  • peso de animación / peso total de todas las animaciones de estado En el siguiente ejemplo, idle.Animation1 jugará ⅓ del tiempo que el personaje está inactividad, mientras que idle.Animation2 jugará ⅔ del tiempo.
Script - Reemplazar las animaciones de personajes predeterminadas

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

Referencias de animación

Animaciones de personajes predeterminadas

La siguiente tabla contiene todas las animaciones de personajes predeterminadas que puedes reemplazar con animaciones de catálogo o tus propias animaciones personalizadas>.Tenga en cuenta que Inactivo tiene dos variaciones que puede pesar para jugar más o menos con frecuencia.

Acción de acciónReferencia de script de animación
Ejorar animateScript.run.RunAnim.AnimationId
Caminar animateScript.walk.WalkAnim.AnimationId
Saltar animateScript.jump.JumpAnim.AnimationId
Inactivo

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

Caída animateScript.fall.FallAnim.AnimationId
Nadar

animateScript.swim.Swim.AnimationId

Nadar (inactivo)

animateScript.swimidle.SwimIdle.AnimationId

Escalar animateScript.climb.ClimbAnim.AnimationId

Al usar paquetes de animaciones de avatar para reemplazar las animaciones predeterminadas, use las siguientes referencias para los respectivos ID de activos.Por ejemplo, si quieres aplicar la animación Salto ninja, usa >.Tenga en cuenta que Inactivo tiene múltiples variaciones.

Astronauta
Ejecutar 891636393
Caminar 891636393
Saltar 891627522
Inactivo 891621366, 891633237, 1047759695
Nadar 891617961
Nadar (Inactivo) 891663592
Nadar (Inactivo) 891609353
Burbujoso
Ejecutar 910025107
Caminar 910034870
Saltar 910016857
Inactivo 910004836, 910009958, 1018536639
Nadar 910001910
Nadar (Inactivo) 910030921
Nadar (Inactivo) 910030921
De dibujos animados
Ejecutar 742638842
Caminar 742640026
Saltar 742637942
Inactivo 742637544, 742638445, 885477856
Nadar 742637151
Nadar (Inactivo) 742639220
Nadar (Inactivo) 742639812
Anciano
Ejecutar 845386501
Caminar 845403856
Saltar 845398858
Inactivo 845397899, 845400520, 901160519
Nadar 845396048
Nadar (Inactivo) 845401742
Nadar (Inactivo) 845392038
Caballero
Ejecutar 657564596
Caminar 657552124
Saltar 658409194
Inactivo 657595757, 657568135, 885499184
Nadar 657600338
Nadar (Inactivo) 657557095
Nadar (Inactivo) 657560781
Levitación
Ejecutar 616010382
Caminar 616013216
Saltar 616008936
Inactivo 616006778, 616008087, 886862142
Nadar 616005863
Nadar (Inactivo) 616012453
Nadar (Inactivo) 616003713
Mago
Ejecutar 707861613
Caminar 707897309
Saltar 707853694
Inactivo 707742142, 707855907, 885508740
Nadar 707829716
Nadar (Inactivo) 707894699
Nadar (Inactivo) 707826056
Ninja
Ejecutar 656118852
Caminar 656121766
Saltar 656117878
Inactivo 656117400, 656118341, 886742569
Nadar 656115606
Nadar (Inactivo) 656121397
Nadar (Inactivo) 656119721
Nadar (Inactivo) 656121397
Pirata
Ejecutar 750783738
Caminar 750785693
Saltar 750782230
Inactivo 750781874, 750782770, 885515365
Nadar 750780242, 750782770, 885515365
Nadar (Inactivo) 750785176
Nadar (Inactivo) 750784579
Nadar (Inactivo) 750779899
Robot
Ejecutar 616091570
Caminar 616095330
Saltar 616090535
Inactivo 616088211, 616089559, 885531463
Nadar 616087089
Nadar (Inactivo) 616094091
Nadar (Inactivo) 616086039
Rthro
Ejecutar 2510198475
Caminar 2510202577
Saltar 2510197830
Inactivo 2510197257, 2510196951, 3711062489
Nadar 2510195892
Nadar (Inactivo) 2510201162
Nadar (Inactivo) 2510192778
Estiloso
Ejecutar 616140816
Caminar 616146177
Saltar 616139451
Inactivo 616136790, 616138447, 886888594
Nadar 616134815
Nadar (Inactivo) 616144772
Nadar (Inactivo) 616133594
Superhéroe
Ejecutar 616117076
Caminar 616122287
Saltar 616115533
Inactivo 616111295, 616113536, 885535855
Nadar 616108001, 616113536, 885535855
Nadar (Inactivo) 616120861
Nadar (Inactivo) 616104706
Juguete
Ejecutar 782842708
Caminar 782843345
Saltar 782847020
Inactivo 782841498, 782845736, 980952228
Nadar 782846423
Nadar (Inactivo) 782845186
Nadar (Inactivo) 782843869
Vampiro
Ejecutar 1083462077
Caminar 1083473930
Saltar 1083455352
Inactivo 1083445855, 1083450166, 1088037547
Nadar 1083443587
Nadar (Inactivo) 1083467779
Nadar (Inactivo) 1083467779
Hombre lobo
Ejecutar 1083216690
Caminar 1083178339
Saltar 1083218792
Inactivo 1083195517, 1083214717, 1099492820
Nadar 1083189019
Nadar (Inactivo) 1083222527
Nadar (Inactivo) 1083225406
Zombi
Ejecutar 616163682
Caminar 616168032
Saltar 616161997
Inactivo 616158929, 616160636, 885545458
Nadar 616157476
Nadar (Inactivo) 616165109
Nadar (Inactivo) 616166655