IKControl

Artık kullanılmayanları göster

*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

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

Özet

Özellikler

  • Paralel oku

    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.

  • Paralel oku

    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.

  • Paralel oku

    Class.IKControl.Target|Target üzerine uygulanan ekstra bir ofset, EndEffector hareketinin nerede değiştirileceğini değiştirmek için.

  • Paralel oku

    Serinin kıvrımını belirleyen opzional bir istanza. Elbise veya dizinin kıvrımını belirtmek için bu kullanılabilir.

  • Paralel oku

    Kontrollerin çözülmesi sırasını belirtir. Yüksek değerler daha yüksek önceliğe sahiptir.

  • Paralel oku

    Class.IKControl.EndEffector|EndEffector ın Target ulaşması için ortalama kaç saniye gerektiğini belirtir.

  • Paralel oku

    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.

  • Paralel oku

    IK kontrol hedefinin ağırlığını belirtir. [0, 1] menzili içinde olmalıdır.

Özellikler

ChainRoot

Paralel oku

Bir ChainRoot ve bir EndEffector ile bir kı

Enabled

Paralel oku

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.

EndEffector

Paralel oku

Class.IKControl.EndEffector|EndEffector

EndEffectorOffset

Paralel oku

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

Offset

Paralel oku

Sıfır sıfır Datatype

Paralel oku

Class.IKControl.Pole|Pole bir

Priority

Paralel oku

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

Paralel oku

Bu değer, EndEffector 'in hedefe ulaşması için ortalama kaç saniye gerektiğini belirtir. Davranış, kritik olmayan bir yayınlayı

Target

Paralel oku

The Target

Paralel oku

Class.IKControl.Type|Type 'i değiştirerek kontrolün davranışını değiştirebilirsiniz. Bu seçenekler mevcut:

Weight

Paralel oku

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

Yöntemler

GetChainCount


Dönüşler

GetChainLength


Dönüşler

GetNodeLocalCFrame

Parametreler

index: number

Dönüşler

GetNodeWorldCFrame

Parametreler

index: number

Dönüşler

GetRawFinalTarget


Dönüşler

GetSmoothedFinalTarget


Dönüşler

Etkinlikler