IKControl

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.

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

IKControl setup

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

  • Baca Paralel

    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.

  • Baca Paralel

    Mengubah kontrol on dan mati. Benar secara default.

  • Baca Paralel

    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.

  • Baca Paralel

    Sebuah kompensasi tambahan diterapkan di atas Target untuk mengubah di mana gerakan EndEffector bergerak.

  • Baca Paralel

    Instansi op션 yang menentukan arah bungkuk rantai. Anda dapat menggunakan ini untuk menentukan arah bungkuk lengan atau lutut.

  • Baca Paralel

    Meng指定控制 dibaca dalam urutan tertentu.Nilai yang lebih tinggi memiliki prioritas yang lebih tinggi.

  • Baca Paralel

    Menguraikan rata-rata jumlah detik yang dibutuhkan untuk EndEffector untuk mulus mencapai Target .

  • Baca Paralel

    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.

  • Baca Paralel

    Mengukur berat target kontrol IK. Harus berada dalam rentang [0, 1].

Properti

ChainRoot

Baca Paralel

Dengan menentukan ChainRoot dan Class.IKControl.EndEffector|End

Enabled

Baca Paralel

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.

EndEffector

Baca Paralel

The EndEffector

EndEffectorOffset

Baca Paralel

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</

Offset

Baca Paralel

Offset adalah tambahan CFrame yang diterapkan

Baca Paralel

The Pole is an optional Class

Priority

Baca Paralel

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

Baca Paralel

Nilai ini menentukan jumlah rata-rata detik yang dibutuhkan untuk EndEffector mencapai Target . Perilaku ini ad

Target

Baca Paralel

Class.IKControl.Target|Target me

Baca Paralel

Dengan mengubah Type, Anda dapat mengubah perilaku kontrol. Ini adalah opsi yang tersedia:

Weight

Baca Paralel

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.

Metode

GetChainCount


Memberikan nilai

GetChainLength


Memberikan nilai

GetNodeLocalCFrame

Parameter

index: number

Memberikan nilai

GetNodeWorldCFrame

Parameter

index: number

Memberikan nilai

GetRawFinalTarget


Memberikan nilai

GetSmoothedFinalTarget


Memberikan nilai

Acara