IKControl
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
IKControl instansları, Inverse Kinematics (IK) kullanarak prosedürsel animasyon pozları oluşturur. Karakterlerin çevrelerine gerçekçi bir şekilde cevap vermenizi sağlar.
Örneğin, bir karakterin elini kapı kolu üzerine yerleştirebilirsiniz, ve karakter, pozisyonundan bağımsız olarak bunu yapar. IKControls, deneyiminizin daha gerçekçi ve iyileştirilmiş bir hissiyatını verirken oyununuz için daha az animasyon yapmanız gerektiğini sağlar.
IKControls must be a child of a Humanoid or AnimationController with an 0> Class.Animator
Bir karakter oluşturmak için IKControls'ı kullanabilirsiniz:
- Kafasını ve gövdesini döndürerek dünyadaki bir ilgi noktasına bak.
- Hareketli araziye yanıt vermek için ayaklarınızı değiştirin. Ayaklarınızı ve ayağınızı ayarlayın, böylece kayalarla ve eğilimlerle arazide yerleştirin.
- Bir silah tutun ve ellerini oyun içinde her silah için animasyon oluşturmak zorunda kalmadan kuşanın üstünde yerleştirin.
- Dünyanın herhangi bir noktasına nişanlanın, böylece silahınızın işaretini düzgün olarak hedefinize yönlendirin. Özellikle üçüncü kişi nişancılar için özellikle faydalı.
- Elini bir arabanın direksiyonuna yerleştir ve döndüğünde takip et.
- Daha da fazlası!
IKControl will overwrite the animation for all the parts between the ChainRoot and the Class
Kod Örnekleri
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
Özet
Özellikler
Karakterinizi hareket ettirmeyi son derece ilgilendiğiniz son kısım. Örneğin, üst kol. Aşılmalıdır EndEffector ve karakterinizde bir BasePart veya bir Bone olmalıdır.
Kontrolü kapalıveya kapatır.Varsayılan olarak doğrudur.
Ulaşmak için ilgileniyorsunuz Target . Örneğin, karakterinizin eli. Bir ChainRoot veya bir BasePart olmalıdır.
Yerini değiştirmek için yerel alanındaki EndEffector üzerine ekstra bir ofset uygulanır.
Class.IKControl.Target|Target üzerine uygulanan ekstra bir ofset, EndEffector hareketinin nerede değiştirileceğini değiştirmek için.
Serinin kıvrımını belirleyen opzional bir istanza. Elbise veya dizinin kıvrımını belirtmek için bu kullanılabilir.
Kontrollerin çözülmesi sırasını belirtir. Yüksek değerler daha yüksek önceliğe sahiptir.
Class.IKControl.EndEffector|EndEffector ın Target ulaşması için ortalama kaç saniye gerektiğini belirtir.
Nesne, EndEffector ile ulaştığı veya işaret ettiği nesne. Bu, dünyanın herhangi bir yerinde bulunan bir şey olabilir, örneğin BasePart, Attachment, 2>Class.Bone2> veya 5>Class
Çözücünün bu kontrolü nasıl karşıladığını belirtir.
IK kontrol hedefinin ağırlığını belirtir. [0, 1] menzili içinde olmalıdır.
Yöntemler
Özellikler
Enabled
Bu özellik, IK kontrolünü açık veya kapalı bırakmanızı sağlar. Standart olarak açık. Enabled değerinde, IK kontrolü kapalıdır ve alt yapı solucu tarafından çözülmez.
EndEffectorOffset
E
Alternatif olarak, bir bağlantıyı EndEffector olarak ayarlayarak, parçaların bağlandığı yerleri değil, etkili olarak Target yerlerine hareket ettirebilirsiniz, aynı sonucu elde ederek aynı sonuçelde edebilirsiniz.
Ayrıca EndEffectorOffset kullanarak EndEffector ın hangi ekseninde olacağını modifiye etmek için kullanabilirsiniz. Target kullanırken
Priority
Bir karakterde birden fazla kontrol aktifse, alt sistemin onları çözme sırası, nihai oluşturulan pozunun oluşturulmasına etkileyen sırayı değiştirir. Bu değeri değiştirerek, kontrollerin önceki sonucunu üststeğe çözmesini sağlayabilirsiniz. Yüksek değerler
SmoothTime
Bu değer, EndEffector 'in hedefe ulaşması için ortalama kaç saniye gerektiğini belirtir. Davranış, kritik olmayan bir yayınlayı
Class.IKControl.Type|Type 'i değiştirerek kontrolün davranışını değiştirebilirsiniz. Bu seçenekler mevcut:
- Transform: bir 6-DoF sınırıdır. EndEffector``Datatype.CFrame ile Target arasındaki hizayı ayarlar.
- Pozisyon: EndEffector pozisyonunu Target ile aynı hale getirir.
- Döndürme: EndEffector döndürmeyi Target ile aynı yapar.
- LookAt: tüm zinciri hareket ettirir veya yönlendirir veya merkez noktasına dünya EndEffector noktasına bir eksen yapar (varsayılan olarak ileri eksenidir).
Weight
Bu özellik kullanılarak verilen kontrolün karakterin pozasını nasıl etkilediğini kontrol edebilirsiniz. Değerler [0, 1] aralığında olmalıdır. 0, hiçbir etkiyi ifade eder ve 1, IK kontrolünün tam anlamını ifade eder. Bu değer dışındaki değerler, gecikmiş hareketi önlemek için özelleştirilmiş b
Ağırlık, End-Effector ve IK hedefi arasındaki çevirim faktörünü belirler. Ağırlığı 0 olarak ayarlamak, SmoothTime gibi diğer faktörleri de dahil olmak üzere, pozisyonu değiştirebilir. IK'yı gerçekten devre dışı bırakmak için, Enabled özelliğini doğru