IKControl
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
IKControl Instanzen generieren prozedurale Animations-Posen mit Inversem Kameramodus (IK). Sie ermöglichen es Ihnen, Charaktere realistisch auf ihre Umgebung zu reagieren.
Zum Beispiel können Sie einem Charakter genau einen Türgriff auf die Hand machen, und der Charakter wird dies unabhängig von seiner Position tun. IKControls bieten den Vorteil, dass Sie für Ihr Spiel weniger Animationen erstellen müssen, während Ihr Erlebnis ein realistischeres und polierbares Gefühl bietet.
IKControls muss ein Kind eines Humanoid oder AnimationController mit einem 0> Class.Anim
Du kannst IKControls verwenden, um einen Charakter zu erstellen:
- Drehen Sie seinen Kopf und seinen Torso, um einen Blick auf ein interessantes Objekt in der Welt zu erhalten.
- Modifizieren Sie seine Fußpositionen, um auf dynamisches Geländezu reagieren. Anpassen Sie seine Beine und seine Füße, um sie entsprechend auf dem Terrain mit Steinen und Steigung zu platzieren.
- Halten Sie eine Waffe und platzieren Sie ihre Hände an der richtigen Stelle des Griffes, ohne Animationen für jede Waffe im Spiel zu erstellen.
- Zielen Sie auf einen Punkt in der Welt, damit der Tipp des Waffenpunkts genau auf das zielen, was Sie schießen möchten. Besonders nützlich in Drittpersonenschützen.
- Lege seine Hände an das Steuerrad eines Autos und folge ihm, wenn es dreht.
- Viel mehr!
IKControl wird die Animation für alle Teile zwischen dem ChainRoot und dem Class.IK
Code-Beispiele
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
Zusammenfassung
Eigenschaften
Der letzte Teil, den Sie sich interessieren, um Ihren Charakter zu verschieben. Zum Beispiel, der obere Arm. Muss ein Vorgänger von EndEffector und sein ein BasePart oder ein Bone in Ihrem Charakter.
Schaltet die Steuerung ein und aus. Standardmäßig wahr.
Der Teil, den du in Bewegung bringen möchtest, um auf den Target zu gelangen. Zum Beispiel, die Hand deines Charakters. Muss ein Nachkommen von ChainRoot und sein ein BasePart oder ein 1> Class.Bone1> in deinem Charakter.
Ein zusätzlicher Offset wird auf dem EndEffector in seinem lokalen Speicher angewendet, um zu ändern, wo es sich bewegt.
Ein zusätzlicher Offset wird auf dem Target angewendet, um zu ändern, wo sich der EndEffector bewegt.
Eine optionale Instanz, die bestimmt, in welche Richtung sich die Kette beugt. Du kannst dies verwenden, um zu bestimmen, in welche Richtung ein Ellenbogen oder ein Knie beugt.
Gibt die Reihenfolge an, in der Steuerelemente gelöst werden. Höhere Werte haben eine höhere Priorität.
Gibt die durchschnittliche Anzahl der Sekunden an, die für den EndEffector benötigt werden, um den Target reibungslos zu erreichen.
Das Objekt, das der EndEffector erreicht oder anvisiert. Es kann alles sein, was eine Position in der Welt hat, wie z. B. BasePart , Attachment , 1> Class.Bone1> oder 4> Class.Motor6D4>.
Gibt an, wie der Solver diese Kontrolle erfüllt.
Gibt die Gewichtung des IK-Steuerelements an. Sie sollte in der [0, 1]-Reichweite sein.
Methoden
Eigenschaften
Enabled
Dieses Eigenschaftstool ermöglicht es Ihnen, die IK-Steuerung ein- und auszuschalten. Standardmäßig ist es aktiviert. Wenn Enabled falsch ist, ist die IK-Steuerung ausgeschaltet und nicht durch den zugrunde liegenden Berechnergelöst.
EndEffectorOffset
Der End-Effektor-Versatz ist ein zusätzliches CFrame , das auf dem oberen Teil des Target produziert, der das endg
Alternativ kannst du Zubehör verwenden, indem du ein Zubehör als EndEffector einstellst, was es zu dem Target bewegt, anstatt der Teile, an die es angehängt ist, effektiv das gleiche Ergebnis zu erzielen.
Sie können auch EndEffectorOffset verwenden, um zu modifizieren, auf welche Achse des EndEffector zeigt, wenn Sie Target als 2>Class.IKControl.Type|Type2> verwenden.
Priority
Wenn mehrere Steuerelemente auf einem Charakter aktiv sind, beeinflusst die Reihenfolge, in der sie von dem zugrunde liegenden System gelöst werden, die endgültige generierte Pose. Indem Sie diesen Wert ändern, bestimmen Sie die Ordnung, in der Steuerelemente erfüllt werden. Höhere Werte haben eine höhere Priorität und höhere Prioritätssteuerelemente werden später ausgeführt, da ihr Ergebnis das
SmoothTime
Dieser Wert gibt die durchschnittliche Anzahl der Sekunden an, die für das EndEffector benötigt werden, um das Target zu erreichen. Das Verhalten ist das eines k
Durch Ändern des Type kannst du das Verhalten der Steuerung ändern. Dies sind die verfügbaren Optionen:
- Transformieren: es ist eine vollständige Beschränkung. Aligns das EndEffector``Datatype.CFrame mit dem von der Target .
- Position: Alignet die Position des EndEffector auf die Position des Target.
- Rotation: stellt die EndEffectorRotation auf diejenige des Target ein.
- LookAt: bewegt und orientiert die gesamte Kette, um eine Achse (Standardmäßig ist die vorwärts Ausrichtung) auf der EndEffector Punkt an einer Position in der Welt angegeben von Target .
Weight
Sie können steuern, wie viel eine bestimmte Steuerung auf den Charakter-Pose beeinflusst, indem Sie diese Eigenschaftenverwenden. Werte sollten im [0, 1] Bereich sein. 0 bedeutet keinen Effekt und 1 bedeutet den vollständigen Effekt der IK-Steuerung. Werte außerhalb dieses Bereichs sind gekürzt. Glättende Wert, um diesen Wert zu mischen, um zu vermeiden, dass sich der Bewegung scharf. Es ist 1 standardmäßig.
Das Gewicht bestimmt den Interpolation-Faktor zwischen dem End-Effektor und dem IK-Ziel. Wenn Sie das Gewicht auf 0 setzen, deaktiviert die IK-Steuerung nicht, da andere Faktoren, einschließlich des SmoothTime-Smoothing-Faktors und des Pole, die Pose immer noch ändern können. Um die IK-Steuerung wirklich zu deaktivieren, verwenden Sie die Eigenschaft Enabled auf falsch.