Kinematika Terbalik

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

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:

Sambil otomatis menyesuaikan anggota tubuh terkait, seperti pergelangan tangan, lengan, dan bahu.
Buat kaki karakter berinteraksi secara realistis di berbagai permukaan dan sloped.
Mereka dan pegang objek target tunggal untuk membuat interaksi yang realistis dengan karakter dan prop Anda.

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:

PropertiDeskripsi
TypeMenguraikan jenis perilaku dari kontrol IK. Lihat Enum.IKControlType untuk daftar opsi perilaku. Jenis perilaku umum adalah Position atau Transform.
EndEffectorA BasePart atau Bone di karakter Anda yang melacak ke arah Target . Misalnya, Anda dapat menetapkan tulang 1> Kaki Kiri1> sebagai <
TargetObjek yang dihasilkan oleh EndEffector mencapai atau menunjuk ke. Sebuah Target dapat menjadi objek apa pun dengan posisi dunia.
ChainRootMendefinisikan 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:

  1. Di tab Pengujian, pilih Bermain untuk memulai tes Bermain.

  2. Di Explorer, navigasikan ke Ruang kerja → Class.Model pengguna Anda. Instansi Model ini bernama sebagai akun Roblox Anda saat ini.

  3. Klik ikon di samping model karakter Anda dan tambahkan HumanoidRootPart .

  4. Pilih Penyangga dan gunakan alat Pindahkan untuk menempatkan objek di depan karakter Anda di viewport.

  5. Di jendela Explorer , pilih ikon di samping karakter Anda's Humanoid dan tambahkan anggota 1>IKControl1>.

  6. Pilih IKControl dan tetapkan nilai property berikut di panel Property :

    1. Ketik : Pilih Transform dari dropdown.
    2. AkhirEfektor : Pilih TanganKiri MeshPart di Explorer.
    3. Target : Pilih objek Attachment yang baru dibuat di Explorer.
    4. ChainRoot : Pilih LeftUpperArm MeshPart di Explorer.
    IKControl Properties.
    Panel Penjelajah - Model Karakter

    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.

Pergi miring alami tidak mungkin)
Menggulung lengan dengan benar

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:

  1. Di Explorer, temukan LeftLowerArm model Anda dan klik tombol .

  2. Tambahkan HingeConstraint dengan nama LeftElbowConstraint .

  3. Di Explorer, navigasikan ke LeftUpperArm.LeftElbowRigRotationAttachment dan tambahkan aksesori:

    1. Klik tombol untuk menambahkan Attach dengan nama LeftElbowConstraintAttachment0 .

    2. Di viewport, pilih lampiran dan gunakan alat Rotate tool untuk memutar lampiran sehingga kuning Primär轴 adalah axis dari lengan Anda yang diharapkan rotasi.

    3. Tetapkan LeftElbowConstraint.Attachment0 property ke aksesori baru ini.

  4. Di Explorer, navigasikan ke LeftLowerArm.LeftElbowRigRotation tambahkan aksesori:

    1. Klik tombol dan tambahkan Attribution dengan nama LeftElbowConstraintAttachment1.
    2. Tetapkan LeftUpperArm.LeftElbowConstraint.Attachment1 kepada penghubung ini.
    3. 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.

Pergelangan tangan membungkuk tidak alami pada orientasi tertentu.

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:

  1. Di Explorer, temukan LeftHand model Anda dan klik tombol .
    1. Tambahkan BallSocketConstraint dengan nama LeftWristConstraint .
  2. Temukan LeftLowerArm.LeftWristRigRotationAttach model Anda dan tambahkan aksesori:
    1. Klik tombol dan tambahkan Aksesori dengan nama LeftWristConstraintAttachment0.
    2. Di viewport, pilih lampiran dan gunakan alat Putar untuk memutar lampiran sehingga poin utama kuning mengarah ke jari tangan model.
    3. Tetapkan LeftWristConstraint.Attachment0 property ke LeftWristConstraintAttachment0 baru.
  3. Temukan LeftHand.LeftWristRigRotationAttach model Anda dan tambahkan aksesori:
    1. Klik tombol dan tambahkan Aksesori dengan nama LeftWristConstraintAttachment1.
    2. Kopi ke property LeftWristConstraintAttachment0.CFrameOrientation dan tempaste sebagai property LeftWristConstraintAttachment1.CFrameOrientation .
    3. Tetapkan LeftWristConstraint.Attachment1 property ke LeftWristConstraintAttachment1 baru ini.
  4. Di Explorer, pilih LeftWristConstraint .
  5. Di Editor Propinsi, atur mengikuti:
    1. Aktifkan Membatasi Waktu .
    2. Tetapkan Sudut Atas untuk 80 . Ini mengontrol seberapa banyak sumbu kendisi dapat berputar, dan 80 derajat setara dengan seberapa banyak lengan pergelangan dapat dibungkuk.
  6. 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.