Animator

Tampilkan yang Tidak Digunakan Lagi

*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

Properti

EvaluationThrottled

Hanya Baca
Tidak Direplikasi
Tidak Dapat Dijelajahi
Tulis Paralel

PreferLodEnabled

Baca Paralel

RootMotion

Hanya Baca
Tidak Direplikasi
Tidak Dapat Dijelajahi
Tulis Paralel

RootMotionWeight

Hanya Baca
Tidak Direplikasi
Tidak Dapat Dijelajahi
Tulis Paralel

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

motors: Variant
Nilai Default: ""

Memberikan nilai

()

GetPlayingAnimationTracks

Kembalikan daftar yang saat ini bermain AnimationTracks .


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

animation: Animation

The Animation untuk digunakan.

Nilai Default: ""

Memberikan nilai

RegisterEvaluationParallelCallback

()

Parameter

callback: function
Nilai Default: ""

Memberikan nilai

()

StepAnimations

()
Keamanan Plugin

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

deltaTime: number

Jumlah waktu dalam animasi pemutaran detik harus ditingkatkan.

Nilai Default: ""

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.

Preview Animation in Studio

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.

Parameter

animationTrack: AnimationTrack