Animator
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Kelas utama yang bertanggung jawab untuk pemutaran dan replikasi Animations .Semua replikasi bermain AnimationTracks di tangani melalui kejadianAnimator.
Lihat juga Editor Animasi dan Menggunakan Animasi untuk mempelajari cara membuat dan menambahkan animasi pra-dibuat atau khusus ke game Anda.
Rangkuman
Properti
Metode
Menghitung kecepatan relatif antara bagian dan menerapkannya ke Motor6D.Part1 .Perhitungan dan penugasan kecepatan relatif ini terjadi dalam urutan yang disediakan.
Kembalikan daftar yang saat ini bermain AnimationTracks .
Memuat Animation pada Animator , mengembalikan AnimationTrack .
Meningkatkan AnimationTrack.TimePosition dari semua bermain AnimationTracks yang dimuat ke Animator , menerapkan offset ke model yang terkait dengan Animator .Untuk digunakan di bilah perintah atau oleh plugin saja.
Acara
Memicu ketika Animator mulai memainkan AnimationTrack.
Properti
Metode
ApplyJointVelocities
Mengingat set saat ini dari AnimationTracks bermain, dan waktu dan kecepatan bermain mereka saat ini, hitung kecepatan relatif antara bagian dan terapkan ke Motor6D.Part1 (bagian yang Animator menganggap bagian "anak").Perhitungan dan penugasan kecepatan relatif ini terjadi dalam urutan yang disediakan.
Metode ini tidak berlaku kecepatan untuk persamaan yang diberikan jika kedua bagian dari persamaan adalah saat ini bagian dari montase yang sama, misalnya, jika mereka masih terhubung secara langsung atau tidak langsung oleh Motors atau Welds.
Metode ini tidak menonaktifkan atau menghapus sambungan untuk Anda.Anda harus menonaktifkan atau menghapus sambungan kaku dari kumpulan sebelum memanggil metode ini.
Yang diberikan Motor6Ds tidak diperlukan untuk menjadi keturunan dari DataModel .Menghapus persambungan dari DataModel sebelum memanggil metode ini didukung.
Parameter
Memberikan nilai
LoadAnimation
Fungsi ini memuat yang diberikan Animation pada ini Animator , mengembalikan AnimationTrack yang dapat dimainkan.Ketika dipanggil pada Animator dalam model yang klien memiliki kepemilikan jaringan, misalnya karakter pemain lokal atau dari BasePart:SetNetworkOwner() , fungsi ini juga memuat animasi untuk server juga.
Perhatikan bahwa Animator harus berada di Workspace sebelum melakukan panggilan ke LoadAnimation() atau kalau tidak akan tidak dapat mengambil layanan AnimationClipProvider dan membuang kesalahan.
Anda harus menggunakan fungsi ini secara langsung alih-alih fungsi serupa bernama Humanoid:LoadAnimation() dan AnimationController:LoadAnimation() yang disebutkan.Ini adalah proxy deprecated dari fungsi ini yang juga membuat Animator jika tidak ada; ini dapat menyebabkan masalah replikasi jika tidak berhati-hati.
Memuat Animasi di Klien atau Server
Agar AnimationTracks dapat direplikasi dengan benar, penting untuk mengetahui kapan harus dimuat di klien atau di server:
Jika sebuah adalah keturunan dari sebuah atau di klien pemain, animasi dimulai pada klien pemain akan disalin ke server dan klien lainnya.
Jika Animator adalah bukan keturunan karakter pemain, animasinya harus dimuat dan dimulai di server untuk direplikasi
Objek Animator harus dibuat awalnya di server dan direplikasikan ke klien agar replikasi animasi berfungsi sama semua.Jika Animator dibuat secara lokal, maka AnimationTracks dimuat dengan itu Animator tidak akan direplikasi.
Parameter
Memberikan nilai
StepAnimations
Meningkatkan AnimationTrack.TimePosition dari semua bermain AnimationTracks yang dimuat ke Animator , menerapkan offset ke model yang terkait dengan Animator .Untuk digunakan di bilah perintah atau oleh plugin saja.
Parameter deltaTime menentukan jumlah detik untuk meningkatkan kemajuan animasi.Biasanya fungsi ini akan dipanggil dalam loop untuk melihat panjang animasi (lihat contoh).
Perhatikan bahwa setelah animasi berhenti bermain, persambungan model akan perlu direset secara manual ke posisi aslinya (lihat contoh).
Fungsi ini digunakan untuk meniru pemutaran Animations ketika permainan tidak berjalan.Ini memungkinkan animasi diprediksi tanpa konsekuensi dari menjalankan game, seperti eksekusi skrip.Jika fungsi dipanggil saat permainan sedang berjalan, atau oleh Scripts atau LocalScripts, itu akan mengembalikan kesalahan.
Pengembang yang merancang editor animasi khusus mereka sendiri disarankan untuk menggunakan fungsi ini untuk melihat pratinjau animasi, karena itulah metode yang digunakan plugin Editor Animasi Roblox resmi.
Parameter
Jumlah waktu dalam animasi pemutaran detik harus ditingkatkan.
Memberikan nilai
Contoh Kode
This code sample includes a function that can be used to preview an Animation on a Model in Roblox Studio, without needing to run the game. It utilizes the Animator.StepAnimations function, which is the same method the official Roblox Animation Editor uses.
local RunService = game:GetService("RunService")
local function studioPreviewAnimation(model, animation)
-- find the AnimationController and Animator
local animationController = model:FindFirstChildOfClass("Humanoid")
or model:FindFirstChildOfClass("AnimationController")
local animator = animationController and animationController:FindFirstChildOfClass("Animator")
if not animationController or not animator then
return
end
-- load the Animation to create an AnimationTrack
local track = animationController:LoadAnimation(animation)
track:Play()
-- preview the animation
local startTime = tick()
while (tick() - startTime) < track.Length do
local step = RunService.Heartbeat:wait()
animator:StepAnimations(step)
end
-- stop the animation
track:Stop(0)
animator:StepAnimations(0)
-- reset the joints
for _, descendant in pairs(model:GetDescendants()) do
if descendant:IsA("Motor6D") then
local joint = descendant
joint.CurrentAngle = 0
joint.Transform = CFrame.new()
end
end
end
local character = script.Parent
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://507765644"
studioPreviewAnimation(character, animation)
Acara
AnimationPlayed
Memicu semua panggilan AnimationTrack:Play() untuk AnimationTracks yang dibuat dan dimiliki oleh Animator.