IKControl

Veraltete anzeigen

*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

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

Zusammenfassung

Eigenschaften

  • Parallel lesen

    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.

  • Parallel lesen

    Schaltet die Steuerung ein und aus. Standardmäßig wahr.

  • Parallel lesen

    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.

  • Parallel lesen

    Ein zusätzlicher Offset wird auf dem Target angewendet, um zu ändern, wo sich der EndEffector bewegt.

  • Parallel lesen

    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.

  • Parallel lesen

    Gibt die Reihenfolge an, in der Steuerelemente gelöst werden. Höhere Werte haben eine höhere Priorität.

  • Parallel lesen

    Gibt die durchschnittliche Anzahl der Sekunden an, die für den EndEffector benötigt werden, um den Target reibungslos zu erreichen.

  • Parallel lesen

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

  • Parallel lesen

    Gibt an, wie der Solver diese Kontrolle erfüllt.

  • Parallel lesen

    Gibt die Gewichtung des IK-Steuerelements an. Sie sollte in der [0, 1]-Reichweite sein.

Eigenschaften

ChainRoot

Parallel lesen

Durch Spezifizierung eines ChainRoot und eines Class.IKControl.End

Enabled

Parallel lesen

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.

EndEffector

Parallel lesen

Der EndEffector beschreibt die let

EndEffectorOffset

Parallel lesen

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.

Offset

Parallel lesen

Der Offset ist ein zusätzliches Datatype

Parallel lesen

Die Pole ist eine optionale Instance, die

Priority

Parallel lesen

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

Parallel lesen

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

Target

Parallel lesen

Das Target stellt einen

Parallel lesen

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

Parallel lesen

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.

Methoden

GetChainCount


Rückgaben

GetChainLength


Rückgaben

GetNodeLocalCFrame

Parameter

index: number

Rückgaben

GetNodeWorldCFrame

Parameter

index: number

Rückgaben

GetRawFinalTarget


Rückgaben

GetSmoothedFinalTarget


Rückgaben

Ereignisse