IKControl
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
IKControl instans meng生成程序动画姿势使用 Inverse Kinematics (IK)。它们允许您让角色 menanggapi secara realistis ke lingkungan mereka。
Misalnya, Anda dapat membuat karakter menempatkan tangannya di pegang pintu dengan tepat, dan karakter akan melakukannya secara terpisah dari posisinya. IKControls menyediakan keuntungan memerlukan pembuatan animasi yang lebih sedikit untuk game Anda sambil memberikan pengalaman yang lebih realistis dan bersih.
IKControls harus menjadi anak dari seorang Humanoid atau AnimationController dengan an
Anda dapat menggunakan IKControls untuk membuat karakter:
- Putar kepalanya dan torso untuk melihat poin yang menarik di dunia.
- Atur posisi kakinya untuk menanggapi terreno dinamis. Sesuaikan kaki dan kakinya untuk menempatkannya sesuai dengan tempatnya di terreno dengan batu dan jalanan.
- Pegang senjata dan letakkan tangannya dengan benar di pegang tanpa perlu membuat animasi untuk setiap senjata dalam game.
- Tujuan pada titik di dunia, sehingga ujung senjata benar-benar pada apa yang ingin Anda tembak. Sangat berguna dalam penembak pada ketiga orang.
- Tempatkan tangannya di kemudi mobil dan ikuti saat itu berputar.
- Jauh lebih!
IKControl akan mengubah animasi untuk semua bagian di antara ChainRoot dan <
Contoh Kode
local character = script.Parent.Character
local humanoid = character.Humanoid
local root = character.HumanoidRootPart
-- Create a new attachment to use as the IKControl.Target
local target = Instance.new("Attachment")
target.CFrame = CFrame.new(-1, 0, -1)
target.Parent = root
local ikControl = Instance.new("IKControl")
ikControl.Type = Enum.IKControlType.Position
ikControl.EndEffector = character.LeftHand
ikControl.ChainRoot = character.LeftUpperArm
ikControl.Target = target
ikControl.Parent = humanoid
Rangkuman
Properti
Bagian terakhir yang Anda tertarik untuk pindah karakter Anda. Misalnya, lengan atas. Harus menjadi leluhur dari EndEffector dan menjadi BasePart atau Bone di karakter Anda.
Mengubah kontrol on dan mati. Benar secara default.
Bagian yang Anda tertarik untuk pindah untuk mencapai Target . Misalnya, tangan karakter Anda. Harus menjadi turun dari ChainRoot dan menjadi BasePart atau 1> Class.Bone1> di karakter Anda.
Sebuah kompensasi tambahan diterapkan di atas ruang lokal EndEffector untuk mengubah di mana ia bergerak.
Sebuah kompensasi tambahan diterapkan di atas Target untuk mengubah di mana gerakan EndEffector bergerak.
Instansi op션 yang menentukan arah bungkuk rantai. Anda dapat menggunakan ini untuk menentukan arah bungkuk lengan atau lutut.
Meng指定控制 dibaca dalam urutan tertentu.Nilai yang lebih tinggi memiliki prioritas yang lebih tinggi.
Menguraikan rata-rata jumlah detik yang dibutuhkan untuk EndEffector untuk mulus mencapai Target .
Objek yang dihasilkan oleh EndEffector dapat mencakup posisi di dunia, seperti BasePart, Attachment, 1> Class.Bone1>, atau 4> Class.Motor6D4>.
Menguraikan cara solver memenuhi kontrol ini.
Mengukur berat target kontrol IK. Harus berada dalam rentang [0, 1].
Metode
Properti
Enabled
Properti ini memungkinkan Anda untuk mengaktifkan dan menonaktifkan kontrol IK. Ini adalah pada dasar. Saat Enabled , kontrol IK tidak aktif dan tidak dipecahkan oleh solver yang mendasar.
EndEffectorOffset
Offset akhir pengg
Alternatifnya, Anda dapat menggunakan Aksesori dengan menetapkan Aksesori sebagai EndEffector , yang pindah ke Target alih-alih bagian yang terpasang, secara efektif mendapatkan hasil yang sama.
Anda juga dapat menggunakan EndEffectorOffset untuk mengubah sumbu mana dari EndEffector yang harus menunjuk ke Target saat menggunakan 2>LookAt</
Priority
Ketika beberapa kontrol aktif pada karakter, urutan di mana mereka dipecahkan oleh sistem pemungkas pendahulu menentukan posisi akhir yang dihasilkan. Dengan mengubah nilai ini, Anda menentukan urutan di mana kontrol dipenuhi. nilai yang lebih tinggi memiliki prioritas yang lebih tinggi, dan kontrol prioritas lebih tinggi
SmoothTime
Nilai ini menentukan jumlah rata-rata detik yang dibutuhkan untuk EndEffector mencapai Target . Perilaku ini ad
Dengan mengubah Type, Anda dapat mengubah perilaku kontrol. Ini adalah opsi yang tersedia:
- Transformasi: itu adalah batas 6-DoF penuh. Mengatur EndEffector``Datatype.CFrame ke yang dari Target .
- Posisi: menyesuaikan posisi EndEffector ke posisi Target .
- Rotasi: mengatur rotasi EndEffector ke rotasi Target .
- Lihat: bergerak dan atau menyiapkan seluruh rantai untuk membuat sumbu (oleh default, sumbu depan) di EndEffector poin pada posisi di dunia yang ditentukan oleh Target .
Weight
Anda dapat mengontrol seberapa banyak kontrol yang diberikan mempengaruhi posisi karakter dengan menggunakan property ini.Nilai harus berada dalam rentang [0, 1] . 0 berarti tanpa efek, dan 1 berarti efek penuh dari kontrol IK.Nilai di luar rentang ini diotomatisasi.Menyamarkan secara halus nilai ini memungkinkan Anda untuk menggabungkan atau menggabungkan kontrol
Berat menentukan faktor intervensi antara End-Effector dan target IK. Mengatur berat ke 0 tidak menonaktifkan IK Control karena faktor lain, termasuk SmoothTime smoothing factor dan Pole, masih dapat mengubah posisi. Untuk benar-benar menonaktifkan IK Control, atur property Enabled ke false.