Aprender
Clase de motor
AnimationTrack
No creable

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



Referencia API
Propiedades
Animation
Solo lectura
No replicado
Leer paralelo
Capacidades: Animation
AnimationTrack.Animation:Animation
Muestras de código
Escuchar Nuevas Animaciones
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
animator.AnimationPlayed:Connect(function(animationTrack)
local animationName = animationTrack.Animation.Name
print("Animación reproduciéndose " .. animationName)
end)

IsPlaying
Solo lectura
No replicado
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.IsPlaying:boolean
Muestras de código
AnimaciónTrack EstáReproduciendo
local function playOrAdjust(animationTrack, fadeTime, weight, speed)
if not animationTrack.IsPlaying then
animationTrack:Play(fadeTime, weight, speed)
else
animationTrack:AdjustSpeed(speed)
animationTrack:AdjustWeight(weight, fadeTime)
end
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playOrAdjust(animationTrack, 1, 0.6, 1)

Length
Solo lectura
No replicado
Leer paralelo
Capacidades: Animation
AnimationTrack.Length:number
Muestras de código
Jugando Animación durante una Duración Específica
local function playAnimationForDuration(animationTrack, duration)
local speed = animationTrack.Length / duration
animationTrack:Play()
animationTrack:AdjustSpeed(speed)
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765000"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playAnimationForDuration(animationTrack, 3)

Looped
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.Looped:boolean
Muestras de código
Bucle de Animación
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
while not localPlayer.Character do
task.wait()
end
local character = localPlayer.Character
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507770453"
local animationTrack = animator:LoadAnimation(animation)
animationTrack.Looped = false
task.wait(3)
animationTrack:Play()
task.wait(4)
animationTrack.Looped = true
animationTrack:Play()
Reproducir AnimationTrack durante un Número de Repeticiones
local function playForNumberLoops(animationTrack, number)
animationTrack.Looped = true
animationTrack:Play()
local numberOfLoops = 0
local connection = nil
connection = animationTrack.DidLoop:Connect(function()
numberOfLoops = numberOfLoops + 1
print("repetición: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- es importante desconectar las conexiones cuando ya no son necesarias
end
end)
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playForNumberLoops(animationTrack, 5)

Priority
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.Priority:Enum.AnimationPriority

Speed
Solo lectura
No replicado
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.Speed:number
Muestras de código
Velocidad de Animación
local ContentProvider = game:GetService("ContentProvider")
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
while not localPlayer.Character do
task.wait()
end
local character = localPlayer.Character
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507770453"
ContentProvider:PreloadAsync({ animation })
local animationTrack = animator:LoadAnimation(animation)
local normalSpeedTime = animationTrack.Length / animationTrack.Speed
animationTrack:AdjustSpeed(3)
local fastSpeedTime = animationTrack.Length / animationTrack.Speed
print("A velocidad normal, la animación se reproducirá durante", normalSpeedTime, "segundos")
print("A velocidad 3x, la animación se reproducirá durante", fastSpeedTime, "segundos")
Jugando Animación durante una Duración Específica
local function playAnimationForDuration(animationTrack, duration)
local speed = animationTrack.Length / duration
animationTrack:Play()
animationTrack:AdjustSpeed(speed)
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765000"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playAnimationForDuration(animationTrack, 3)

TimePosition
No replicado
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.TimePosition:number
Muestras de código
Congelar Animación en la Posición
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Reproduce la animación si no se está reproduciendo
animationTrack:Play()
end
-- Establece la velocidad en 0 para congelar la animación
animationTrack:AdjustSpeed(0)
-- Salta a la TimePosition deseada
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Reproduce la animación si no se está reproduciendo
animationTrack:Play()
end
-- Establece la velocidad en 0 para congelar la animación
animationTrack:AdjustSpeed(0)
-- Salta a la TimePosition deseada
animationTrack.TimePosition = (percentagePosition / 100) * animationTrack.Length
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
freezeAnimationAtTime(animationTrack, 0.5)
freezeAnimationAtPercent(animationTrack, 50)

WeightCurrent
Solo lectura
No replicado
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.WeightCurrent:number
Muestras de código
PesoActual y PesoObjetivo
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
while not localPlayer.Character do
task.wait()
end
local character = localPlayer.Character
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animation1 = Instance.new("Animation")
animation1.AnimationId = "rbxassetid://507770453"
local animation2 = Instance.new("Animation")
animation2.AnimationId = "rbxassetid://507771019"
task.wait(3) -- tiempo de espera arbitrario para permitir que el personaje se coloque en su sitio
local animationTrack1 = animator:LoadAnimation(animation1)
local animationTrack2 = animator:LoadAnimation(animation2)
animationTrack1.Priority = Enum.AnimationPriority.Movement
animationTrack2.Priority = Enum.AnimationPriority.Action
animationTrack1:Play(0.1, 5, 1)
animationTrack2:Play(10, 3, 1)
local done = false
while not done and task.wait(0.1) do
if math.abs(animationTrack2.WeightCurrent - animationTrack2.WeightTarget) < 0.001 then
print("llegamos allí")
done = true
end
end

WeightTarget
Solo lectura
No replicado
Leer paralelo
Capacidades: Animation
Acceso a la simulación
AnimationTrack.WeightTarget:number
Muestras de código
PesoActual y PesoObjetivo
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
while not localPlayer.Character do
task.wait()
end
local character = localPlayer.Character
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animation1 = Instance.new("Animation")
animation1.AnimationId = "rbxassetid://507770453"
local animation2 = Instance.new("Animation")
animation2.AnimationId = "rbxassetid://507771019"
task.wait(3) -- tiempo de espera arbitrario para permitir que el personaje se coloque en su sitio
local animationTrack1 = animator:LoadAnimation(animation1)
local animationTrack2 = animator:LoadAnimation(animation2)
animationTrack1.Priority = Enum.AnimationPriority.Movement
animationTrack2.Priority = Enum.AnimationPriority.Action
animationTrack1:Play(0.1, 5, 1)
animationTrack2:Play(10, 3, 1)
local done = false
while not done and task.wait(0.1) do
if math.abs(animationTrack2.WeightCurrent - animationTrack2.WeightTarget) < 0.001 then
print("llegamos allí")
done = true
end
end

Métodos
AdjustSpeed
Capacidades: Animation
Acceso a la simulación
AnimationTrack:AdjustSpeed(speed:number):()
Parámetros
speed:number
Valor predeterminado: 1
Devuelve
()
Muestras de código
Jugando Animación durante una Duración Específica
local function playAnimationForDuration(animationTrack, duration)
local speed = animationTrack.Length / duration
animationTrack:Play()
animationTrack:AdjustSpeed(speed)
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765000"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playAnimationForDuration(animationTrack, 3)
Velocidad de Animación
local ContentProvider = game:GetService("ContentProvider")
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
while not localPlayer.Character do
task.wait()
end
local character = localPlayer.Character
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507770453"
ContentProvider:PreloadAsync({ animation })
local animationTrack = animator:LoadAnimation(animation)
local normalSpeedTime = animationTrack.Length / animationTrack.Speed
animationTrack:AdjustSpeed(3)
local fastSpeedTime = animationTrack.Length / animationTrack.Speed
print("A velocidad normal, la animación se reproducirá durante", normalSpeedTime, "segundos")
print("A velocidad 3x, la animación se reproducirá durante", fastSpeedTime, "segundos")

AdjustWeight
Capacidades: Animation
Acceso a la simulación
AnimationTrack:AdjustWeight(
weight:number, fadeTime:number
):()
Parámetros
weight:number
Valor predeterminado: 1
fadeTime:number
Valor predeterminado: 0.100000001
Devuelve
()
Muestras de código
Cambio de peso de AnimationTrack
local function changeWeight(animationTrack, weight, fadeTime)
animationTrack:AdjustWeight(weight, fadeTime)
local startTime = tick()
while math.abs(animationTrack.WeightCurrent - weight) > 0.001 do
task.wait()
end
print("Tiempo tomado para cambiar el peso " .. tostring(tick() - startTime))
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
changeWeight(animationTrack, 0.6, 1)

GetMarkerReachedSignal
Capacidades: Animation
AnimationTrack:GetMarkerReachedSignal(name:string):RBXScriptSignal
Parámetros
name:string
Muestras de código
Escuchando marcadores de fotogramas clave
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Crear nueva instancia de "Animation"
local kickAnimation = Instance.new("Animation")
-- Establecer su "AnimationId" al ID de activo de animación correspondiente
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Cargar animación en el humanoide
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Reproducir la pista de animación
kickAnimationTrack:Play()
-- Si se definió un evento nombrado para la animación, conectarlo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

GetParameter
Capacidades: Animation
Acceso a la simulación
AnimationTrack:GetParameter(key:string):Variant
Parámetros
key:string
Devuelve
Variant

GetParameterDefaults
Capacidades: Animation
AnimationTrack:GetParameterDefaults():Dictionary
Devuelve

GetTargetInstance
Capacidades: Animation
AnimationTrack:GetTargetInstance(name:string):Instance?
Parámetros
name:string
Devuelve

GetTargetNames
Capacidades: Animation
AnimationTrack:GetTargetNames():{any}
Devuelve

GetTimeOfKeyframe
Capacidades: Animation
AnimationTrack:GetTimeOfKeyframe(keyframeName:string):number
Parámetros
keyframeName:string
Devuelve
Muestras de código
Saltar a clave
local function jumpToKeyframe(animationTrack, keyframeName)
local timePosition = animationTrack:GetTimeOfKeyframe(keyframeName)
if not animationTrack.IsPlaying then
animationTrack:Play()
end
animationTrack.TimePosition = timePosition
end
local ANIMATION_ID = 0
local KEYFRAME_NAME = "Prueba"
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://" .. ANIMATION_ID
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
jumpToKeyframe(animationTrack, KEYFRAME_NAME)

Play
Capacidades: Animation
Acceso a la simulación
AnimationTrack:Play(
fadeTime:number, weight:number, speed:number
):()
Parámetros
fadeTime:number
Valor predeterminado: 0.100000001
weight:number
Valor predeterminado: 1
speed:number
Valor predeterminado: 1
Devuelve
()
Muestras de código
Jugando Animación durante una Duración Específica
local function playAnimationForDuration(animationTrack, duration)
local speed = animationTrack.Length / duration
animationTrack:Play()
animationTrack:AdjustSpeed(speed)
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765000"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playAnimationForDuration(animationTrack, 3)
Congelar Animación en la Posición
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Reproduce la animación si no se está reproduciendo
animationTrack:Play()
end
-- Establece la velocidad en 0 para congelar la animación
animationTrack:AdjustSpeed(0)
-- Salta a la TimePosition deseada
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Reproduce la animación si no se está reproduciendo
animationTrack:Play()
end
-- Establece la velocidad en 0 para congelar la animación
animationTrack:AdjustSpeed(0)
-- Salta a la TimePosition deseada
animationTrack.TimePosition = (percentagePosition / 100) * animationTrack.Length
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
freezeAnimationAtTime(animationTrack, 0.5)
freezeAnimationAtPercent(animationTrack, 50)

SetParameter
Capacidades: Animation
Acceso a la simulación
AnimationTrack:SetParameter(
key:string, value:Variant
):()
Parámetros
key:string
value:Variant
Devuelve
()

SetTargetInstance
Capacidades: Animation
AnimationTrack:SetTargetInstance(
name:string, target:Instance?
):()
Parámetros
name:string
target:Instance?
Devuelve
()

Stop
Capacidades: Animation
Acceso a la simulación
AnimationTrack:Stop(fadeTime:number):()
Parámetros
fadeTime:number
Valor predeterminado: 0.100000001
Devuelve
()
Muestras de código
AnimaciónDetener
local function fadeOut(animationTrack, fadeTime)
animationTrack:Stop(fadeTime)
local startTime = tick()
while animationTrack.WeightCurrent > 0 do
task.wait()
end
local timeTaken = tick() - startTime
print("Tiempo tomado para que el peso se reinicie: " .. tostring(timeTaken))
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
animationTrack:Play()
fadeOut(animationTrack, 1)

Eventos
DidLoop
Capacidades: Animation
AnimationTrack.DidLoop():RBXScriptSignal
Muestras de código
Reproducir AnimationTrack durante un Número de Repeticiones
local function playForNumberLoops(animationTrack, number)
animationTrack.Looped = true
animationTrack:Play()
local numberOfLoops = 0
local connection = nil
connection = animationTrack.DidLoop:Connect(function()
numberOfLoops = numberOfLoops + 1
print("repetición: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- es importante desconectar las conexiones cuando ya no son necesarias
end
end)
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
playForNumberLoops(animationTrack, 5)

Ended
Capacidades: Animation
AnimationTrack.Ended():RBXScriptSignal
Muestras de código
Trazado de Animación Terminado
local InsertService = game:GetService("InsertService")
local Players = game:GetService("Players")
-- Crea un modelo NPC para animar.
local npcModel = Players:CreateHumanoidModelFromUserIdAsync(129687796)
npcModel.Name = "JoeNPC"
npcModel.Parent = workspace
npcModel:MoveTo(Vector3.new(0, 15, 4))
local humanoid = npcModel:WaitForChild("Humanoid")
-- Carga una animación.
local animationModel = InsertService:LoadAsset(2510238627)
local animation = animationModel:FindFirstChildWhichIsA("Animation", true)
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
-- Conéctate al evento Stopped. Esto se dispara cuando la animación se detiene por
-- su propia voluntad, o llamamos explícitamente a Stop.
animationTrack.Stopped:Connect(function()
print("Animación detenida")
end)
-- Conéctate al evento Ended. Esto se dispara cuando la animación ha
-- terminado de afectar completamente el mundo. En este caso, se disparará 3 segundos
-- después de que llamemos a animationTrack:Stop porque pasamos un desvanecimiento de 3
-- segundos.
animationTrack.Ended:Connect(function()
print("Animación finalizada")
animationTrack:Destroy()
end)
-- Ejecuta, dale un poco de tiempo para reproducir, luego detén.
print("Llamando a Play")
animationTrack:Play()
task.wait(10)
print("Llamando a Stop")
animationTrack:Stop(3)

KeyframeReached
Obsoleto

Stopped
Capacidades: Animation
AnimationTrack.Stopped():RBXScriptSignal
Muestras de código
Pista de Animación Detenida
local function yieldPlayAnimation(animationTrack, fadeTime, weight, speed)
animationTrack:Play(fadeTime, weight, speed)
animationTrack.Stopped:Wait()
print("La animación se ha detenido")
end
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
yieldPlayAnimation(animationTrack, 1, 0.6, 1)

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.