Meer informatie
Engine-klasse
AnimationTrack
Niet maakbaar

*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.



API-referentie
Eigenschappen
Animation
Alleen-lezen
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
AnimationTrack.Animation:Animation
Codevoorbeelden
Luister naar Nieuwe Animaties
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
animator.AnimationPlayed:Connect(function(animationTrack)
local animationName = animationTrack.Animation.Name
print("Animatie speelt " .. animationName)
end)

IsPlaying
Alleen-lezen
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.IsPlaying:boolean
Codevoorbeelden
AnimationTrack IsPlaying
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
Alleen-lezen
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
AnimationTrack.Length:number
Codevoorbeelden
Animatie Afspelen voor een Bepaalde Duur
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
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.Looped:boolean
Codevoorbeelden
Animatie Looping
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()
Speel AnimationTrack voor een Aantal Lussen
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("lus: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- het is belangrijk om verbindingen te verbreken wanneer ze niet langer nodig zijn
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
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.Priority:Enum.AnimationPriority

Speed
Alleen-lezen
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.Speed:number
Codevoorbeelden
Animatiesnelheid
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("Bij normale snelheid zal de animatie spelen voor", normalSpeedTime, "seconden")
print("Bij 3x snelheid zal de animatie spelen voor", fastSpeedTime, "seconden")
Animatie Afspelen voor een Bepaalde Duur
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
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.TimePosition:number
Codevoorbeelden
Bevries Animatie op Positie
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Speel de animatie af als deze niet speelt
animationTrack:Play()
end
-- Stel de snelheid in op 0 om de animatie te bevriezen
animationTrack:AdjustSpeed(0)
-- Spring naar de gewenste TimePosition
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Speel de animatie af als deze niet speelt
animationTrack:Play()
end
-- Stel de snelheid in op 0 om de animatie te bevriezen
animationTrack:AdjustSpeed(0)
-- Spring naar de gewenste TimePosition
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
Alleen-lezen
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.WeightCurrent:number
Codevoorbeelden
WeightCurrent en WeightTarget
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) -- willekeurige wachttijd om de karakter in positie te laten vallen
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("bereikt")
done = true
end
end

WeightTarget
Alleen-lezen
Niet gerepliceerd
Parallel lezen
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack.WeightTarget:number
Codevoorbeelden
WeightCurrent en WeightTarget
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) -- willekeurige wachttijd om de karakter in positie te laten vallen
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("bereikt")
done = true
end
end

Methoden
AdjustSpeed
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack:AdjustSpeed(speed:number):()
Parameters
speed:number
Standaardwaarde: 1
Teruggaves
()
Codevoorbeelden
Animatie Afspelen voor een Bepaalde Duur
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)
Animatiesnelheid
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("Bij normale snelheid zal de animatie spelen voor", normalSpeedTime, "seconden")
print("Bij 3x snelheid zal de animatie spelen voor", fastSpeedTime, "seconden")

AdjustWeight
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack:AdjustWeight(
weight:number, fadeTime:number
):()
Parameters
weight:number
Standaardwaarde: 1
fadeTime:number
Standaardwaarde: 0.100000001
Teruggaves
()
Codevoorbeelden
AnimatieTrack Gewicht Veranderen
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("Tijd genomen om gewicht te veranderen " .. 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
Mogelijkheden: Animation
AnimationTrack:GetMarkerReachedSignal(name:string):RBXScriptSignal
Parameters
name:string
Teruggaves
Codevoorbeelden
Luisteren naar Keyframe Markers
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Maak een nieuwe "Animation" instantie aan
local kickAnimation = Instance.new("Animation")
-- Stel de "AnimationId" in op de bijbehorende animatie asset ID
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Laad animatie op de humanoïde
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Speel animatie track af
kickAnimationTrack:Play()
-- Als er een benoemde gebeurtenis was gedefinieerd voor de animatie, verbind deze met "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

GetParameter
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack:GetParameter(key:string):Variant
Parameters
key:string
Teruggaves
Variant

GetParameterDefaults
Mogelijkheden: Animation
AnimationTrack:GetParameterDefaults():Dictionary
Teruggaves

GetTimeOfKeyframe
Mogelijkheden: Animation
AnimationTrack:GetTimeOfKeyframe(keyframeName:string):number
Parameters
keyframeName:string
Teruggaves
Codevoorbeelden
Spring Naar Sleutelpositie
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 = "Test"
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
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack:Play(
fadeTime:number, weight:number, speed:number
):()
Parameters
fadeTime:number
Standaardwaarde: 0.100000001
weight:number
Standaardwaarde: 1
speed:number
Standaardwaarde: 1
Teruggaves
()
Codevoorbeelden
Animatie Afspelen voor een Bepaalde Duur
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)
Bevries Animatie op Positie
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Speel de animatie af als deze niet speelt
animationTrack:Play()
end
-- Stel de snelheid in op 0 om de animatie te bevriezen
animationTrack:AdjustSpeed(0)
-- Spring naar de gewenste TimePosition
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Speel de animatie af als deze niet speelt
animationTrack:Play()
end
-- Stel de snelheid in op 0 om de animatie te bevriezen
animationTrack:AdjustSpeed(0)
-- Spring naar de gewenste TimePosition
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
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack:SetParameter(
key:string, value:Variant
):()
Parameters
key:string
value:Variant
Teruggaves
()

Stop
Mogelijkheden: Animation
Toegang tot simulatie
AnimationTrack:Stop(fadeTime:number):()
Parameters
fadeTime:number
Standaardwaarde: 0.100000001
Teruggaves
()
Codevoorbeelden
AnimatieTrack Stop
local function fadeOut(animationTrack, fadeTime)
animationTrack:Stop(fadeTime)
local startTime = tick()
while animationTrack.WeightCurrent > 0 do
task.wait()
end
local timeTaken = tick() - startTime
print("Tijd genomen voor gewicht om te resetten: " .. 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)

Evenementen
DidLoop
Mogelijkheden: Animation
AnimationTrack.DidLoop():RBXScriptSignal
Codevoorbeelden
Speel AnimationTrack voor een Aantal Lussen
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("lus: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- het is belangrijk om verbindingen te verbreken wanneer ze niet langer nodig zijn
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
Mogelijkheden: Animation
AnimationTrack.Ended():RBXScriptSignal
Codevoorbeelden
Animatietrack Beëindigd
local InsertService = game:GetService("InsertService")
local Players = game:GetService("Players")
-- Maak een NPC-model om te animeren.
local npcModel = Players:CreateHumanoidModelFromUserIdAsync(129687796)
npcModel.Name = "JoeNPC"
npcModel.Parent = workspace
npcModel:MoveTo(Vector3.new(0, 15, 4))
local humanoid = npcModel:WaitForChild("Humanoid")
-- Laad een animatie.
local animationModel = InsertService:LoadAsset(2510238627)
local animation = animationModel:FindFirstChildWhichIsA("Animation", true)
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
-- Verbind met Stopped-evenement. Dit wordt geactiveerd wanneer de animatie stopt of
-- uit zichzelf, of wanneer we expliciet Stop aanroepen.
animationTrack.Stopped:Connect(function()
print("Animatie gestopt")
end)
-- Verbind met Ended-evenement. Dit wordt geactiveerd wanneer de animatie volledig
-- is afgelopen met het beïnvloeden van de wereld. In dit geval wordt het 3 seconden
-- na het aanroepen van animationTrack:Stop geactiveerd omdat we een 3
-- seconden fadeOut doorgeven.
animationTrack.Ended:Connect(function()
print("Animatie beëindigd")
animationTrack:Destroy()
end)
-- Voer uit, geef het even de tijd om af te spelen, en stop dan.
print("Aanroepen van Play")
animationTrack:Play()
task.wait(10)
print("Aanroepen van Stop")
animationTrack:Stop(3)

KeyframeReached
Verouderd

Stopped
Mogelijkheden: Animation
AnimationTrack.Stopped():RBXScriptSignal
Codevoorbeelden
Animatietrack Gestopt
local function yieldPlayAnimation(animationTrack, fadeTime, weight, speed)
animationTrack:Play(fadeTime, weight, speed)
animationTrack.Stopped:Wait()
print("Animatie is gestopt")
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, het Roblox-logo en Powering Imagination behoren tot onze geregistreerde en niet-geregistreerde handelsmerken in de VS en andere landen.