Kinematics Terbalik (IK) adalah teknik umum dalam animasi komputer untuk membuat karakter bergerak dan berinteraksi secara realistis dengan lingkungan mereka. Proses pembuatan gerakan realistis untuk karakter sering memerlukan banyak iterasi dan penyesuaian kecil dari berbagai jenjung. Dengan IK, Anda dapat mengambil dan menge Animasi beberapa bagian karakter dengan posisi atau menyesuaikan satu
Teknik animasi ini dapat memberikan solusi ke beberapa contoh berikut:
IK Kontrol
Anda dapat menggunakan IKControl untuk menambahkan IK secara prosedural ke rig karakter Anda di luar Editor Animasi. Studio memungkinkan Anda untuk menerapkan secara prosedural IK ke semua karakter, seperti R15, Rthro, dan karakter yang diimpor secara khusus, untuk menghasilkan gerakan dan interaksi yang realistis dalam pengalaman Anda.
Saat menambahkan IKControl, atur Class.IKControls dengan benar untuk menghindari hasil animasi yang tidak diinginkan dan tidak alami. Seperti dengan semua animasi, tes IKControls Anda untuk memastikan bahwa Anda mencapai perilaku yang diinginkan.
Persyaratan Properti
Saat menambahkan IKControl ke karakter Anda, Humanoid atau AnimationController, Anda harus menetapkan propperti berikut yang diperlukan untuk mengaktifkan IK:
Properti | Deskripsi |
---|---|
Type | Menguraikan jenis perilaku dari kontrol IK. Lihat Enum.IKControlType untuk daftar opsi perilaku. Jenis perilaku umum adalah Position atau Transform. |
EndEffector | A BasePart atau Bone di karakter Anda yang melacak ke arah Target . Misalnya, Anda dapat menetapkan tulang 1> Kaki Kiri1> sebagai < |
Target | Objek yang dihasilkan oleh EndEffector mencapai atau menunjuk ke. Sebuah Target dapat menjadi objek apa pun dengan posisi dunia. |
ChainRoot | Mendefinisikan rantai dari Class.Base |
Menguji IKControls
Anda dapat menambahkan dan mengedit program IKControl secara programatis atau langsung melalui Explorer. Anda bahkan dapat menambahkan dan membuat perubahan pada IKControl selama tes Play untuk memeriksa dengan cepat bagaimana berbagai sifat mempengaruhi gerakan karakter.
Untuk dengan cepat menguji IKControl Anda menggunakan Attachment sebagai target:
Di tab Pengujian, pilih Bermain untuk memulai tes Bermain.
Di Explorer, navigasikan ke Ruang kerja → Class.Model pengguna Anda. Instansi Model ini bernama sebagai akun Roblox Anda saat ini.
Klik ikon ⊕ di samping model karakter Anda dan tambahkan HumanoidRootPart .
Pilih Penyangga dan gunakan alat Pindahkan untuk menempatkan objek di depan karakter Anda di viewport.
Di jendela Explorer , pilih ikon ⊕ di samping karakter Anda's Humanoid dan tambahkan anggota 1>IKControl1>.
Pilih IKControl dan tetapkan nilai property berikut di panel Property :
- Ketik : Pilih Transform dari dropdown.
- Target : Pilih objek Attachment yang baru dibuat di Explorer.
Lengan kiri karakter Anda sekarang harus mencapai target Attachment . Anda dapat bereksperimen dengan menggerakkan Attachment atau mengedit IKControl properti untuk mencapai hasil yang berbeda.
Menambahkan Batasan
Anda dapat menggunakan Constraints untuk mengbatasi cara koneksi dapat bergerak ketika mencapai targetnya. Kondisi dapat memastikan koneksi seperti lengan dan lutut bergerak secara alami, atau membuat koneksi mekanik berputar dalam orientasi tertentu.
Untuk menambahkan kendala ke karakter Anda menggunakan IKControl , kondisi IKControl dan kendala Anda harus memenuhi kondisi berikut:
- Aksesori yang disebutkan dalam kondisi Attachment0 / Attachment1 ke properti Motor6D1> Class.Motor6D.Part0|Part01> / 4> Class.Motor6D.
- Posisi relatif dari Attachment0 / Attachment1 harus sama dengan posisi yang sesuai dari Motor6D1> Class.Motor6D.C0|C01> / 4> Class.Motor6D.C
- Konstruksi dan IKControl berbagi orang tua yang sama Model .
Instruksi berikut menjelaskan proses menambahkan HingeConstraint untuk menghindari persyaratan rotasi lengan karakter dan menambahkan BallSocketConstraint ke pergelangan untuk menghindari sudut rotasi.
Lutut
Karakter Roblox R15 sudah termasuk lampiran di juntanya yang dapat Anda gunakan untuk menerapkan batasan lengan. Untuk lengan, kedua LeftElbowRigAttachment
Untuk menambahkan HingeConstraint dan aksesori anak:
Di Explorer, temukan LeftLowerArm model Anda dan klik tombol ⊕ .
Tambahkan HingeConstraint dengan nama LeftElbowConstraint .
Di Explorer, navigasikan ke LeftUpperArm.LeftElbowRigRotationAttachment dan tambahkan aksesori:
Klik tombol ⊕ untuk menambahkan Attach dengan nama LeftElbowConstraintAttachment0 .
Di viewport, pilih lampiran dan gunakan alat Rotate tool untuk memutar lampiran sehingga kuning Primär轴 adalah axis dari lengan Anda yang diharapkan rotasi.
Tetapkan LeftElbowConstraint.Attachment0 property ke aksesori baru ini.
Di Explorer, navigasikan ke LeftLowerArm.LeftElbowRigRotation tambahkan aksesori:
- Klik tombol ⊕ dan tambahkan Attribution dengan nama LeftElbowConstraintAttachment1.
- Tetapkan LeftUpperArm.LeftElbowConstraint.Attachment1 kepada penghubung ini.
- Kopi kepemilikan LeftElbowConstraintAttachment0.CFrameOrientation property dan tempastikan kepemilikan LeftElbowConstraint.附1.CFrameOrientation value.
Uji IKControl Anda untuk mengevaluasi lengan hanya berputar tentang sumbu pivotnya:
Pergelangan
Bahkan dengan kendali lengan, IKControl masih dapat menghasilkan posisi yang tidak realistis dengan pergelangan tangan.
Anda dapat meningkatkan ini dengan menambahkan BallSocketConstraint untuk membatasi rotasi pergelangan. Sementara ini mirip dengan proses untuk menambahkan HingeConstraint ke lengan, Anda dapat menggunakan property LimitsEnabled di konstruksi ini
Untuk menambahkan BallSocketConstraint untuk pergelangan kaki:
- Di Explorer, temukan LeftHand model Anda dan klik tombol ⊕ .
- Tambahkan BallSocketConstraint dengan nama LeftWristConstraint .
- Temukan LeftLowerArm.LeftWristRigRotationAttach model Anda dan tambahkan aksesori:
- Klik tombol ⊕ dan tambahkan Aksesori dengan nama LeftWristConstraintAttachment0.
- Di viewport, pilih lampiran dan gunakan alat Putar untuk memutar lampiran sehingga poin utama kuning mengarah ke jari tangan model.
- Tetapkan LeftWristConstraint.Attachment0 property ke LeftWristConstraintAttachment0 baru.
- Temukan LeftHand.LeftWristRigRotationAttach model Anda dan tambahkan aksesori:
- Klik tombol ⊕ dan tambahkan Aksesori dengan nama LeftWristConstraintAttachment1.
- Kopi ke property LeftWristConstraintAttachment0.CFrameOrientation dan tempaste sebagai property LeftWristConstraintAttachment1.CFrameOrientation .
- Tetapkan LeftWristConstraint.Attachment1 property ke LeftWristConstraintAttachment1 baru ini.
- Di Explorer, pilih LeftWristConstraint .
- Di Editor Propinsi, atur mengikuti:
- Aktifkan Membatasi Waktu .
- Tetapkan Sudut Atas untuk 80 . Ini mengontrol seberapa banyak sumbu kendisi dapat berputar, dan 80 derajat setara dengan seberapa banyak lengan pergelangan dapat dibungkuk.
- Tergantung pada karakter Anda, Anda mungkin ingin menyesuaikan arah yang ditunjuk oleh koneksi. Anda dapat melakukan ini dengan menggunakan alat Rotate tool untuk meng rotasi Attachment0.
Saat memilih LeftWristConstraint , kotak hijau muncul yang menunjukkan rentang gerakan lengan.
Dengan kondisi dibuat, tes IKControl dengan tangan menunjuk ke bawah di depan karakter dan pergelangan harus berputar dan berbungkuk lebih realistis.