Pelajari
Kelas Engine
AnimationTrack
Tidak Dapat Dibuat

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.



Referensi API
Properti
Animation
Hanya Baca
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
AnimationTrack.Animation:Animation
Contoh Kode
Dengarkan Animasi Baru
local humanoid = script.Parent:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
animator.AnimationPlayed:Connect(function(animationTrack)
local animationName = animationTrack.Animation.Name
print("Animasi sedang dimainkan " .. animationName)
end)

IsPlaying
Hanya Baca
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.IsPlaying:boolean
Contoh Kode
AnimationTrack SedangDimainkan
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
Hanya Baca
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
AnimationTrack.Length:number
Contoh Kode
Memainkan Animasi untuk Durasi Tertentu
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
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.Looped:boolean
Contoh Kode
Pengulangan Animasi
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()
Putar AnimationTrack untuk Beberapa Putaran
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("loop: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- penting untuk memutuskan koneksi saat tidak lagi dibutuhkan
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
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.Priority:Enum.AnimationPriority

Speed
Hanya Baca
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.Speed:number
Contoh Kode
Kecepatan Animasi
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("Dengan kecepatan normal, animasi akan diputar selama", normalSpeedTime, "detik")
print("Dengan kecepatan 3x, animasi akan diputar selama", fastSpeedTime, "detik")
Memainkan Animasi untuk Durasi Tertentu
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
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.TimePosition:number
Contoh Kode
Bekukan Animasi di Posisi
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Putar animasi jika tidak sedang diputar
animationTrack:Play()
end
-- Atur kecepatan menjadi 0 untuk membekukan animasi
animationTrack:AdjustSpeed(0)
-- Lompat ke TimePosition yang diinginkan
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Putar animasi jika tidak sedang diputar
animationTrack:Play()
end
-- Atur kecepatan menjadi 0 untuk membekukan animasi
animationTrack:AdjustSpeed(0)
-- Lompat ke TimePosition yang diinginkan
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
Hanya Baca
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.WeightCurrent:number
Contoh Kode
WeightCurrent dan 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) -- waktu tunggu sewenang-wenang untuk memungkinkan karakter jatuh ke tempatnya
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("sampai di sana")
done = true
end
end

WeightTarget
Hanya Baca
Tidak Direplikasi
Baca Paralel
Kemampuan: Animation
Akses Simulasi
AnimationTrack.WeightTarget:number
Contoh Kode
WeightCurrent dan 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) -- waktu tunggu sewenang-wenang untuk memungkinkan karakter jatuh ke tempatnya
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("sampai di sana")
done = true
end
end

Metode
AdjustSpeed
Kemampuan: Animation
Akses Simulasi
AnimationTrack:AdjustSpeed(speed:number):()
Parameter
speed:number
Nilai Default: 1
Memberikan nilai
()
Contoh Kode
Memainkan Animasi untuk Durasi Tertentu
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)
Kecepatan Animasi
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("Dengan kecepatan normal, animasi akan diputar selama", normalSpeedTime, "detik")
print("Dengan kecepatan 3x, animasi akan diputar selama", fastSpeedTime, "detik")

AdjustWeight
Kemampuan: Animation
Akses Simulasi
AnimationTrack:AdjustWeight(
weight:number, fadeTime:number
):()
Parameter
weight:number
Nilai Default: 1
fadeTime:number
Nilai Default: 0.100000001
Memberikan nilai
()
Contoh Kode
Perubahan Berat 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("Waktu yang dibutuhkan untuk mengubah berat " .. 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
Kemampuan: Animation
AnimationTrack:GetMarkerReachedSignal(name:string):RBXScriptSignal
Parameter
name:string
Memberikan nilai
Contoh Kode
Mendengarkan Penanda Keyframe
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.Character:Wait()
local humanoid = character:WaitForChild("Humanoid")
-- Buat instance "Animation" baru
local kickAnimation = Instance.new("Animation")
-- Atur "AnimationId"-nya ke ID aset animasi yang sesuai
kickAnimation.AnimationId = "rbxassetid://2515090838"
-- Muat animasi ke dalam humanoid
local kickAnimationTrack = humanoid:LoadAnimation(kickAnimation)
-- Putar track animasi
kickAnimationTrack:Play()
-- Jika sebuah event bernama telah didefinisikan untuk animasi, hubungkan ke "GetMarkerReachedSignal()"
kickAnimationTrack:GetMarkerReachedSignal("KickEnd"):Connect(function(paramString)
print(paramString)
end)

GetParameter
Kemampuan: Animation
Akses Simulasi
AnimationTrack:GetParameter(key:string):Variant
Parameter
key:string
Memberikan nilai
Variant

GetParameterDefaults
Kemampuan: Animation
AnimationTrack:GetParameterDefaults():Dictionary
Memberikan nilai

GetTargetInstance
Kemampuan: Animation
AnimationTrack:GetTargetInstance(name:string):Instance?
Parameter
name:string
Memberikan nilai

GetTargetNames
Kemampuan: Animation
AnimationTrack:GetTargetNames():{any}
Memberikan nilai

GetTimeOfKeyframe
Kemampuan: Animation
AnimationTrack:GetTimeOfKeyframe(keyframeName:string):number
Parameter
keyframeName:string
Memberikan nilai
Contoh Kode
Lompat ke Kunci Frame
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 = "Tes"
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
Kemampuan: Animation
Akses Simulasi
AnimationTrack:Play(
fadeTime:number, weight:number, speed:number
):()
Parameter
fadeTime:number
Nilai Default: 0.100000001
weight:number
Nilai Default: 1
speed:number
Nilai Default: 1
Memberikan nilai
()
Contoh Kode
Memainkan Animasi untuk Durasi Tertentu
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)
Bekukan Animasi di Posisi
function freezeAnimationAtTime(animationTrack, timePosition)
if not animationTrack.IsPlaying then
-- Putar animasi jika tidak sedang diputar
animationTrack:Play()
end
-- Atur kecepatan menjadi 0 untuk membekukan animasi
animationTrack:AdjustSpeed(0)
-- Lompat ke TimePosition yang diinginkan
animationTrack.TimePosition = timePosition
end
function freezeAnimationAtPercent(animationTrack, percentagePosition)
if not animationTrack.IsPlaying then
-- Putar animasi jika tidak sedang diputar
animationTrack:Play()
end
-- Atur kecepatan menjadi 0 untuk membekukan animasi
animationTrack:AdjustSpeed(0)
-- Lompat ke TimePosition yang diinginkan
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
Kemampuan: Animation
Akses Simulasi
AnimationTrack:SetParameter(
key:string, value:Variant
):()
Parameter
key:string
value:Variant
Memberikan nilai
()

SetTargetInstance
Kemampuan: Animation
AnimationTrack:SetTargetInstance(
name:string, target:Instance?
):()
Parameter
name:string
target:Instance?
Memberikan nilai
()

Stop
Kemampuan: Animation
Akses Simulasi
AnimationTrack:Stop(fadeTime:number):()
Parameter
fadeTime:number
Nilai Default: 0.100000001
Memberikan nilai
()
Contoh Kode
AnimasiTrack Henti
local function fadeOut(animationTrack, fadeTime)
animationTrack:Stop(fadeTime)
local startTime = tick()
while animationTrack.WeightCurrent > 0 do
task.wait()
end
local timeTaken = tick() - startTime
print("Waktu yang dibutuhkan untuk bobot direset: " .. 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)

Acara
DidLoop
Kemampuan: Animation
AnimationTrack.DidLoop():RBXScriptSignal
Contoh Kode
Putar AnimationTrack untuk Beberapa Putaran
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("loop: ", numberOfLoops)
if numberOfLoops >= number then
animationTrack:Stop()
connection:Disconnect() -- penting untuk memutuskan koneksi saat tidak lagi dibutuhkan
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
Kemampuan: Animation
AnimationTrack.Ended():RBXScriptSignal
Contoh Kode
Animasi Berakhir
local InsertService = game:GetService("InsertService")
local Players = game:GetService("Players")
-- Buat model NPC untuk dianimasi.
local npcModel = Players:CreateHumanoidModelFromUserIdAsync(129687796)
npcModel.Name = "JoeNPC"
npcModel.Parent = workspace
npcModel:MoveTo(Vector3.new(0, 15, 4))
local humanoid = npcModel:WaitForChild("Humanoid")
-- Muat animasi.
local animationModel = InsertService:LoadAsset(2510238627)
local animation = animationModel:FindFirstChildWhichIsA("Animation", true)
local animator = humanoid:WaitForChild("Animator")
local animationTrack = animator:LoadAnimation(animation)
-- Sambungkan ke acara Stopped. Ini dipicu ketika animasi berhenti
-- dengan sendirinya, atau kita secara eksplisit memanggil Stop.
animationTrack.Stopped:Connect(function()
print("Animasi dihentikan")
end)
-- Sambungkan ke acara Ended. Ini dipicu ketika animasi sepenuhnya
-- selesai mempengaruhi dunia. Dalam hal ini, itu akan dipicu 3 detik
-- setelah kita memanggil animationTrack:Stop karena kita melewatkan 3
-- detik fadeOut.
animationTrack.Ended:Connect(function()
print("Animasi berakhir")
animationTrack:Destroy()
end)
-- Jalankan, beri sedikit waktu untuk dimainkan, lalu hentikan.
print("Memanggil Play")
animationTrack:Play()
task.wait(10)
print("Memanggil Stop")
animationTrack:Stop(3)

KeyframeReached
Tidak digunakan lagi

Stopped
Kemampuan: Animation
AnimationTrack.Stopped():RBXScriptSignal
Contoh Kode
AnimationTrack Dihentikan
local function yieldPlayAnimation(animationTrack, fadeTime, weight, speed)
animationTrack:Play(fadeTime, weight, speed)
animationTrack.Stopped:Wait()
print("Animasi telah dihentikan")
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, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.