Impara
Classe motore
AnimationTrack
Non costruibile

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.



Riferimento API
Proprietà
Animation
Sola Lettura
Non Replicato
Lettura Parallela
Capacità: Animation
AnimationTrack.Animation:Animation
Campioni di codice
Ascolta Nuove Animazioni
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
animator.AnimationPlayed:Connect(function(animationTrack)
local animationName = animationTrack.Animation.Name
print("Animazione in riproduzione " .. animationName)
end)

IsPlaying
Sola Lettura
Non Replicato
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.IsPlaying:boolean
Campioni di codice
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
Sola Lettura
Non Replicato
Lettura Parallela
Capacità: Animation
AnimationTrack.Length:number
Campioni di codice
Riproduzione di un'Animazione per una Durata Specifica
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
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.Looped:boolean
Campioni di codice
Ciclo di Animazione
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()
Riproduci AnimationTrack per un numero di cicli
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("ciclo: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- è importante disconnettere le connessioni quando non sono più necessarie
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
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.Priority:Enum.AnimationPriority

Speed
Sola Lettura
Non Replicato
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.Speed:number
Campioni di codice
Velocità di Animazione
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 velocità normale, l'animazione verrà riprodotta per", normalSpeedTime, "secondi")
print("A velocità 3x, l'animazione verrà riprodotta per", fastSpeedTime, "secondi")
Riproduzione di un'Animazione per una Durata Specifica
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
Non Replicato
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.TimePosition:number
Campioni di codice
Fermare l'animazione nella posizione
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Riproduci l'animazione se non è in riproduzione
animationTrack:Play()
end
-- Imposta la velocità a 0 per fermare l'animazione
animationTrack:AdjustSpeed(0)
-- Salta alla TimePosition desiderata
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Riproduci l'animazione se non è in riproduzione
animationTrack:Play()
end
-- Imposta la velocità a 0 per fermare l'animazione
animationTrack:AdjustSpeed(0)
-- Salta alla TimePosition desiderata
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)
fineAnimationAtPercent(animationTrack, 50)

WeightCurrent
Sola Lettura
Non Replicato
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.WeightCurrent:number
Campioni di codice
PesoAttuale e PesoObiettivo
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) -- tempo di attesa arbitrario per consentire al personaggio di mettersi in posizione
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("arrivato")
done = true
end
end

WeightTarget
Sola Lettura
Non Replicato
Lettura Parallela
Capacità: Animation
Accesso alla simulazione
AnimationTrack.WeightTarget:number
Campioni di codice
PesoAttuale e PesoObiettivo
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) -- tempo di attesa arbitrario per consentire al personaggio di mettersi in posizione
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("arrivato")
done = true
end
end

Metodi
AdjustSpeed
Capacità: Animation
Accesso alla simulazione
AnimationTrack:AdjustSpeed(speed:number):()
Parametri
speed:number
Valore predefinito: 1
Restituzioni
()
Campioni di codice
Riproduzione di un'Animazione per una Durata Specifica
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)
Velocità di Animazione
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 velocità normale, l'animazione verrà riprodotta per", normalSpeedTime, "secondi")
print("A velocità 3x, l'animazione verrà riprodotta per", fastSpeedTime, "secondi")

AdjustWeight
Capacità: Animation
Accesso alla simulazione
AnimationTrack:AdjustWeight(
weight:number, fadeTime:number
):()
Parametri
weight:number
Valore predefinito: 1
fadeTime:number
Valore predefinito: 0.100000001
Restituzioni
()
Campioni di codice
Cambiamento del peso di 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("Tempo impiegato per cambiare il 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
Capacità: Animation
AnimationTrack:GetMarkerReachedSignal(name:string):RBXScriptSignal
Parametri
name:string
Restituzioni
Campioni di codice
Ascoltando i Marker di Keyframe
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Crea una nuova istanza di "Animation"
local kickAnimation = Instance.new("Animation")
-- Imposta il suo "AnimationId" sull'ID dell'asset di animazione corrispondente
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Carica l'animazione sull'umanoide
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Riproduci la traccia dell'animazione
kickAnimationTrack:Play()
-- Se un evento nominato è stato definito per l'animazione, collegalo a "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

GetParameter
Capacità: Animation
Accesso alla simulazione
AnimationTrack:GetParameter(key:string):Variant
Parametri
key:string
Restituzioni
Variant

GetParameterDefaults
Capacità: Animation
AnimationTrack:GetParameterDefaults():Dictionary
Restituzioni

GetTargetInstance
Capacità: Animation
AnimationTrack:GetTargetInstance(name:string):Instance?
Parametri
name:string
Restituzioni

GetTargetNames
Capacità: Animation
AnimationTrack:GetTargetNames():{any}
Restituzioni

GetTimeOfKeyframe
Capacità: Animation
AnimationTrack:GetTimeOfKeyframe(keyframeName:string):number
Parametri
keyframeName:string
Restituzioni
Campioni di codice
Salta al Keyframe
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
Capacità: Animation
Accesso alla simulazione
AnimationTrack:Play(
fadeTime:number, weight:number, speed:number
):()
Parametri
fadeTime:number
Valore predefinito: 0.100000001
weight:number
Valore predefinito: 1
speed:number
Valore predefinito: 1
Restituzioni
()
Campioni di codice
Riproduzione di un'Animazione per una Durata Specifica
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)
Fermare l'animazione nella posizione
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Riproduci l'animazione se non è in riproduzione
animationTrack:Play()
end
-- Imposta la velocità a 0 per fermare l'animazione
animationTrack:AdjustSpeed(0)
-- Salta alla TimePosition desiderata
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Riproduci l'animazione se non è in riproduzione
animationTrack:Play()
end
-- Imposta la velocità a 0 per fermare l'animazione
animationTrack:AdjustSpeed(0)
-- Salta alla TimePosition desiderata
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)
fineAnimationAtPercent(animationTrack, 50)

SetParameter
Capacità: Animation
Accesso alla simulazione
AnimationTrack:SetParameter(
key:string, value:Variant
):()
Parametri
key:string
value:Variant
Restituzioni
()

SetTargetInstance
Capacità: Animation
AnimationTrack:SetTargetInstance(
name:string, target:Instance?
):()
Parametri
name:string
target:Instance?
Restituzioni
()

Stop
Capacità: Animation
Accesso alla simulazione
AnimationTrack:Stop(fadeTime:number):()
Parametri
fadeTime:number
Valore predefinito: 0.100000001
Restituzioni
()
Campioni di codice
Interruzione dell'AnimationTrack
local function fadeOut(animationTrack, fadeTime)
animationTrack:Stop(fadeTime)
local startTime = tick()
while animationTrack.WeightCurrent > 0 do
task.wait()
end
local timeTaken = tick() - startTime
print("Tempo impiegato per ripristinare il peso: " .. 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)

Eventi
DidLoop
Capacità: Animation
AnimationTrack.DidLoop():RBXScriptSignal
Campioni di codice
Riproduci AnimationTrack per un numero di cicli
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("ciclo: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- è importante disconnettere le connessioni quando non sono più necessarie
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
Capacità: Animation
AnimationTrack.Ended():RBXScriptSignal
Campioni di codice
Animazione Traccia Terminata
local InsertService = game:GetService("InsertService")
local Players = game:GetService("Players")
-- Crea un modello NPC da animare.
local npcModel = Players:CreateHumanoidModelFromUserIdAsync(129687796)
npcModel.Name = "JoeNPC"
npcModel.Parent = workspace
npcModel:MoveTo(Vector3.new(0, 15, 4))
local humanoid = npcModel:WaitForChild("Humanoid")
-- Carica un'animazione.
local animationModel = InsertService:LoadAsset(2510238627)
local animation = animationModel:FindFirstChildWhichIsA("Animation", true)
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
-- Collega all'evento Stopped. Questo si attiva quando l'animazione si ferma di
-- propria iniziativa, o quando chiamiamo esplicitamente Stop.
animationTrack.Stopped:Connect(function()
print("Animazione fermata")
end)
-- Collega all'evento Ended. Questo si attiva quando l'animazione è completamente
-- finita di influenzare il mondo. In questo caso si attiverà 3 secondi
-- dopo che chiamiamo animationTrack:Stop perché passiamo un fadeOut di 3
-- secondi.
animationTrack.Ended:Connect(function()
print("Animazione finita")
animationTrack:Destroy()
end)
-- Esegui, lascialo un po' giocare, poi fermalo.
print("Chiamando Play")
animationTrack:Play()
task.wait(10)
print("Chiamando Stop")
animationTrack:Stop(3)

KeyframeReached
Obsoleto

Stopped
Capacità: Animation
AnimationTrack.Stopped():RBXScriptSignal
Campioni di codice
Animazione Interrotta
local function yieldPlayAnimation(animationTrack, fadeTime, weight, speed)
animationTrack:Play(fadeTime, weight, speed)
animationTrack.Stopped:Wait()
print("L'animazione è stata interrotta")
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, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.