Ters Kinematik (IK), karakterlerin çevreleriyle gerçekçi bir şekilde hareket etmelerini ve etkileşimde bulunmalarını sağlamak için bilgisayar animasyonunda yaygın bir tekniktir. Bir karakter için gerçekçi hareket oluşturma süreci, genellikle çeşitli eklemlerin birçok yineleme ve küçük ayarlamalarını gerektirir. IK ile tek bir nesneyi ayarlayarak veya konumlandırarak birden fazla karakter parçasını pozlandırabilir ve animasyonlayabilirsiniz.
Bu animasyon tekniği aşağıdaki örneklere çözümler sunabilir:
IKControl
Karakter riginize prosedürel olarak IK eklemek için IKControl kullanabilirsiniz, Animasyon Editörü dışındayken. Studio, tüm karakterlere, R15, Rthro ve özel içe aktarılan derili karakterler gibi, gerçekçi hareket ve etkileşimler oluşturmak için programatik olarak IK uygulamanıza olanak tanır.
Bir IKControl eklerken, beklenmedik ve doğal olmayan animasyon sonuçlarını önlemek için gerekli özellikleri doğru bir şekilde ayarlayın. Tüm animasyonlarda olduğu gibi, istediğiniz davranışı elde ettiğinizden emin olmak için IKControl'lerinizi test edin.
Gerekli özellikler
Bir IKControl'ü karakterinizin Humanoid veya AnimationController'ına eklerken, IK'yi etkinleştirmek için aşağıdaki gereksinimleri karşılayan özellikleri ayarlamalısınız:
| Özellik | Açıklama |
|---|---|
| Type | IK kontrolünün davranış türünü belirtir. Davranış seçenekleri listesi için Enum.IKControlType'e bakın. Yaygın davranış türleri Pozisyon veya Dönüşüm'dür. |
| EndEffector | Karakter riginizde Target'a doğru izlenen bir BasePart veya Bone. Örneğin, bir kapı kolu nesnesine ulaşmak için bir Sol El kemiğini EndEffector olarak belirleyebilirsiniz. |
| Target | EndEffector'ın ulaştığı veya işaret ettiği nesne. Target, dünya konumuna sahip herhangi bir nesne olabilir. |
| ChainRoot | IKControl'ün etkilediği BaseParts veya Bones zincirini tanımlar. ChainRoot ile EndEffector arasındaki tüm bağlantılı parçalar, tanımlanan davranış türü kullanılarak IKControl tarafından etkilenir. Örneğin, karakterinizin Sol El'i Target olarak ayarlandığında, ChainRoot'u Sol Üst Kol olarak ayarlayarak tüm sol kol üzerinde IK uygulayabilirsiniz. Sadece dirsek altındaki parçalara IK uygulamak istiyorsanız, ChainRoot'u Sol Alt Kol olarak ayarlayın. |
IKControl'leri Test Et
IKControl'ü programatik olarak veya doğrudan Explorer üzerinden ekleyebilir ve düzenleyebilirsiniz. Daha hızlı bir şekilde çeşitli özelliklerin karakter hareketlerini nasıl etkilediğini kontrol etmek için bir Oyun testi sırasında IKControl üzerinde değişiklik yapabilirsiniz.
Attachment kullanarak IKControl'ünüzü hızlıca test etmek için:
Studio'nun mezzanine'inden, bir oyun testi başlatın.
Karakter modelinizin HumanoidRootPart'ının yanındaki ⊕ simgesine tıklayın ve bir Attachment ekleyin.

Attachment'i seçin ve nesneyi görünüm alanında karakterinizin önüne yerleştirmek için Taşı aracını kullanın.

Explorer penceresinde, karakterinizin Humanoid'inin yanındaki ⊕ simgesine tıklayın ve bir IKControl ekleyin.

IKControl'ü seçin ve Özellikler penceresinde aşağıdaki özellik değerlerini ayarlayın:
- Tip: Dropdown'dan Dönüşüm'ü seçin.
- Hedef: Explorer'da yeni oluşturulan Attachment nesnesini seçin.

IKControl Özellikleri 
Explorer - Karakter Modeli Artık karakterinizin sol kolu hedef Attachment'a uzanmalıdır. Farklı sonuçlar elde etmek için Attachment'i taşımak veya IKControl özelliklerini düzenlemekle deney yapabilirsiniz.
Kısıtlamalar Ekleyin
Hedefine ulaşırken eklemlerin nasıl hareket edebileceğini kısıtlamak için Constraints kullanabilirsiniz. Kısıtlamalar, dirsek ve diz gibi eklemlerin doğal bir şekilde bükülmesini veya mekanik eklemlerin belirli bir yönde dönmesini sağlamak için kullanılabilir.


Karakterinize IKControl kullanarak kısıtlamalar eklemek için IKControl'nuz ve kısıtlamanız aşağıdaki koşulları karşılamalıdır:
- Kısıtlamanın Attachment0/Attachment1 özelliklerinde yer alan bağlantılar, Motor6D Part0/Part1 ile aynı parçalara bağlıdır.
- Attachment0/Attachment1'in göreceli konumları, Motor6D C0/C1 CFrames'lerinin karşılık gelen konumlarına eşit olmalıdır.
- Kısıtlama ve IKControl aynı ana Model'a sahip olmalıdır.
Aşağıdaki talimatlar, bir karakterin dirseğini döndürmeyi kısıtlamak için bir HingeConstraint ekleme ve bileği döndürmeyi sınırlamak için bir BallSocketConstraint ekleme sürecini açıklar.
Dirsek
Roblox R15 karakterleri, eklemelerinde kullanabileceğiniz bağlantıları zaten içerir. Dirsek için, hem Sol Üst Kol hem de Sol Alt Kol, LeftElbowRigAttachment içerir. Bir kısıtlama eklemenin yanı sıra, dirseğin hangi eksende döneceğini belirtmek için her parçanın LeftElbowRigAttachment'ına ek yedek bağlantılar eklemeniz gerekir.
HingeConstraint ve alt bağlantıları eklemek için:
Explorer'da modelinizin Sol Alt Kol'unu bulun ve ⊕ butonuna tıklayın.
LeftElbowConstraint adında bir HingeConstraint ekleyin.
Explorer'da, Sol Üst Kol'un LeftElbowRigAttachment'ını bulun ve bir bağlantı ekleyin:
⊕ butonuna tıklayın ve LeftElbowConstraintAttachment0 adında bir Attachment ekleyin.
Görünüm alanında bağlantıyı seçin ve bağlı nesneyi sarı PrimaryAxis'ın dirsek beklediğiniz dönüş ekseni olacak şekilde döndürmek için Döndürme aracını kullanın.

LeftElbowConstraint.Attachment0 özelliğini bu yeni bağlantıya ayarlayın.
Explorer'da modelinin Sol Alt Kol.LeftElbowRigAttachment'ını bulun ve bir bağlantı ekleyin:
- ⊕ butonuna tıklayın ve LeftElbowConstraintAttachment1 adında bir Attachment ekleyin.
- Left Üst Kol'un LeftElbowConstraint.Attachment1 özelliğini bu yeni bağlantıya ayarlayın.
- LeftElbowConstraintAttachment0.CFrameOrientation özelliğini kopyalayın ve LeftElbowConstraint.Attachment1.CFrameOrientation değeri olarak yapıştırın.

Dirseğin yalnızca menteşe ekseni etrafında döndüğünü doğrulamak için IKControl'ünüzü test edin:
Bilekler
Dirsek kısıtlaması olmasına rağmen, IKControl, bileklerde hala gerçekçi olmayan pozlar üretebilir.

Bunu, bileğin döndürülmesini sınırlamak için bir BallSocketConstraint ekleyerek geliştirebilirsiniz. Bu, dirseğe bir HingeConstraint ekleme sürecine benzer, ancak bu kısıtlamada bileğin hareket aralığını daha fazla kontrol etmek için LimitsEnabled özelliğini kullanabilirsiniz.
Bilek için bir BallSocketConstraint eklemek için:
- Explorer'da modelinizin Sol El'ini bulun ve ⊕ butonuna tıklayın.
- LeftWristConstraint adında bir BallSocketConstraint ekleyin.
- Modelinizin Sol Alt Kol.LeftWristRigAttachment'ını bulun ve bir bağlantı ekleyin:
- ⊕ butonuna tıklayın ve LeftWristConstraintAttachment0 adında bir Attachment ekleyin.
- Görünüm alanında bağlantıyı seçin ve bağlı nesneyi sarı PrimaryAxis'ın modelin parmak uçlarına doğru işaret etmesi için döndürmek için Döndürme aracını kullanın.

- LeftWristConstraint.Attachment0 özelliğini yeni LeftWristConstraintAttachment0'a ayarlayın.
- Modelinizin Sol El.LeftWristRigAttachment'ını bulun ve bir bağlantı ekleyin:
- ⊕ butonuna tıklayın ve LeftWristConstraintAttachment1 adında bir Attachment ekleyin.
- LeftWristConstraintAttachment0.CFrameOrientation özelliğini kopyalayın ve LeftWristConstraintAttachment1.CFrameOrientation özelliği olarak yapıştırın.
- LeftWristConstraint.Attachment1 özelliğini bu yeni LeftWristConstraintAttachment1'e ayarlayın.
- Explorer'da LeftWristConstraint'ı seçin.
- Özellikler penceresinde, aşağıdakileri ayarlayın:
- LimitsEnabled'i etkinleştirin.
- Üst Açı'yı 80 olarak ayarlayın. Bu, kısıtlamanın dönüş ekseninin ne kadar dönebilmesini kontrol eder ve 80 derece, bileğin ne kadar bükülmesi gerektiğine yaklaşık bir değerdir.
- Karakterinize göre, koni yönünü ayarını düzeltmek isteyebilirsiniz. Bunu, kısıtlamanın Attachment0'ını döndürmek için Döndürme aracını kullanarak yapabilirsiniz.
LeftWristConstraint'ı seçtiğinizde, bileğin hareket aralığını görselleştiren bir yeşil koni görünür.

Kısıtlama ayarlandıktan sonra, IKControl'ü test edin ve el karakterin önünde aşağı bakarken bileğin daha gerçekçi bir şekilde döndüğünü ve büküldüğünü görmelisiniz.