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:
- Asegúrese de que el elemento del jugador local contenga un objeto .
- Crea una nueva instancia Animation con el propio AnimationId.
- Carga la animación a través de Animator:LoadAnimation() para crear un AnimationTrack.
- 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.
Obtenga el ID de activo de la nueva animación como sigue:
- Para una animación personalizada construida con el Editor de animaciones, sigue las instrucciones de exportación.
- Copia una ID adecuada de la referencia de animación del catálogo a continuación.Por ejemplo, para reemplazar la animación de ejecución predeterminada con la variante Ninja Run, use 656118852.
En la ventana Explorador, agregue un nuevo Script a ServerScriptService .
- Pase el mouse sobre Servicio de script de servidor y haga clic en el botón ⊕.
- Desde el menú contextual, insira un script .
En el nuevo script, pega el siguiente código:
Script - Reemplazar las animaciones de personajes predeterminadaslocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obtener animador en humanoidelocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Detener todas las pistas de animaciónfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal 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://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)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 predeterminadaslocal Players = game:GetService("Players")local function onCharacterAdded(character)-- Obtener animador en humanoidelocal humanoid = character:WaitForChild("Humanoid")local animator = humanoid:WaitForChild("Animator")-- Detener todas las pistas de animaciónfor _, playingTrack in animator:GetPlayingAnimationTracks() doplayingTrack:Stop(0)endlocal 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://"endlocal function onPlayerAdded(player)player.CharacterAppearanceLoaded:Connect(onCharacterAdded)endPlayers.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 = 5animateScript.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ón | Referencia 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 |
Animaciones de catálogo
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 |