Umkehrkinematik (IK) ist eine gängige Technik in der Computer-Animation, um Charaktere effizient mit ihrem Umgebung zu bewegen und mit ihrem Umgebung zu interagieren. Der Prozess der Erstellung eines realistischen Bewegung für einen Charakter erfordert oft viele Iterationen und kleine Anpassungen der verschiedenen Gelenke. Mit IK können Sie mehrere Charaktereile durch das Posieren oder Anpassen eines einzelnen Objekts positionieren und animieren.
Diese Animations技ik kann Lösungen für die folgenden Beispiele bieten:
IK-Steuerung
Sie können ein IKControl verwenden, um IK procedurally add IK zu deinen Charakter-Rigs außerhalb des Animation-Editors. Studio ermöglicht es Ihnen, IK für alle Charaktere, wie R15, Rthro und importierte benutzerdefinierte Skin-Charaktere, zu programmieren, um realistische Bewegungen und Interaktionen in Ihrem Erlebnis zu erstellen.
Wenn Sie ein IKControl hinzufügen, stellen Sie die erforderlichen Eigenschaften Class.IKControl korrekt ein, um unerwartete und unnatürliche Animationsergebnisse zu vermeiden. Wie bei allen Animationen testen Sie IKControls, um sicherzustellen, dass Sie das gewünschte Verhalten erreichen.
Benötigte Eigenschaften
Wenn du einen IKControl zu deinem Charakter hinzufügst, müssen du die folgenden erforderlichen Eigenschaften festlegen, um IK zu aktivieren:
Eigenschaft | Beschreibung |
---|---|
Type | Gibt den Verhaltens тип der IK-Steuerung an. Siehe Enum.IKControlType für die Liste der Verhaltensoptionen. Common Verhaltens Arten sind Position oder Transform. |
EndEffector | Ein BasePart oder Bone in deinem Charakter-Rig, das sich auf den Target bezieht. Zum Beispiel kannst du einen 1> linken Knochen1> als 4> |
Target | Das Objekt, das der EndEffector erreicht oder zeigt. Ein Target kann ein beliebiges Objekt mit einer Weltposition sein. |
ChainRoot | Definiert die Chain of BaseParts or Bones that the IKControl affects. Alle verbundenen Teile zwischen dem |
Testen von IKControls
Sie können IKControl programmatorisch oder direkt über den Explorer hinzufügen und bearbeiten. Sie können sogar IKControl während eines Spieltests hinzufügen und Änderungen vornehmen, um schnell zu überprüfen, wie verschiedene Eigenschaften die Bewegungen eines Charakters beeinflussen.
Um dein IKControl schnell mit einem Attachment als Ziel zu testen:
In der Test-Registerkarte wählen Sie Spielen , um den Spieltest zu starten.
Klicken Sie auf das ⊕ -Symbol neben Ihrem Modell's HumanoidRootPart und fügen Sie einen Anhang hinzu .
Wähle die Anbautaste und verwende das Werkzeug Verschieben, um das Objekt vor deinem Charakter im Ansichtsfenster zu platzieren.
In dem Explorer-Fenster , wählen Sie das ⊕ -Symbol neben dem Charakter Ihres Humanoid und fügen Sie ein 1>IKControl1> hinzu.
Wählen Sie die IKControl und setzen Sie die folgenden Eigenschaftswerte im Property Panel ein:
- Typ: : Wählen Sie Transform aus dem Dropdown.
- Ziel : Wählen Sie das neu erstellte Anbaut-Objekt im Explorer.
Der linke Arm deines Charakters sollte jetzt für das Ziel Attachment reichen. Du kannst mit dem Verschieben des Attachment oder der Bearbeitung der IKControl-Eigenschaften verschiedene Ergebnisse erzielen.
约束添加
Sie können Constraints verwenden, um einzuschränken, wie sich die Gelenke bewegen können, wenn sie ihr Ziel erreicht. Einschränkungen können Gelenke wie die Ellen und Knie natürlich beugen, oder die mechanischen Gelenke in einer bestimmten Ausrichtung drehen.
Um Einschränkungen für deinen Charakter mit IKControl hinzuzufügen, müssen dein IKControl und deine Einschränkung die folgenden Bedingungen erfüllen:
- Die in der Beschränkung verwendeten Anhänge verweisen auf die gleichen Teile wie die in der Attachment0 / Attachment1 Eigenschaften der Motor6D1> Class.Limit11> / 4> Class.Limit24> .
- Die relativen Positionen von Attachment0 / Attachment1 müssen entsprechend den Positionen des entsprechenden Motor6D1> Class.Motor6D.C0|C01> / 4> Class.Motor6D.C1|
- Die Konsole und der IKControl teilen sich dieselbe親 Model .
Die folgenden Anweisungen beschreiben den Prozess, der sich auf das Hinzufügen eines HingeConstraint zum Einrichten der Rotation eines Charakters-Ellen und des Hinzufügens eines BallSocketConstraint zum Handgelenk, um den Rotationsbereich zu begrenzen.
Ellenbogen
Roblox R15-Charaktere enthalten bereits Anhänge an ihren Gelenken, die Sie verwenden können, um die Beschränkunganzuwenden. Für den Ellenbogen enthalten sowohl der LeftUpperArm als auch der LeftLowerArm einen LeftElbowRigAttachment. Wenn Sie einen Beschränkunghinzufügen, müssen Sie auch zusätzliche Kinderelemente zu jedem Teil hinzufügen, um zu bestimmen, auf
Um die HingeConstraint und Kinderrückhaltesysteme hinzuzufügen:
In dem Explorer, finden Sie Ihr Modell's LeftLowerArm und klicken Sie auf die ⊕ Schaltfläche .
Fügen Sie einen HingeConstraint mit dem Namen LeftElbowConstraint hinzu.
In dem Explorer, navigieren Sie zu dem LeftUpperArm.LeftElbowRigRotationAttached und fügen Sie ein Anhang:
Klicken Sie auf die Schaltfläche ⊕ button , um ein Attachment mit dem Namen LeftElbowConstraintAttachment0 hinzuzufügen.
In der Ansichtsfensterwählen Sie die Verbindung und verwenden Sie das Drehen-Werkzeug , um die Verbindung zu drehen, damit die gelbe Primärachse die Achse Ihrer Ellenbeuge ist.
Setzen Sie die LeftElbowConstraint.Attachment0 Eigenschaft auf dieses neue Anhang.
In dem Explorer, navigieren Sie zu Ihrem Modell's LeftLowerArm.LeftElbowRig add anattachment:
- Klicken Sie auf die Schaltfläche ⊕ button und fügen Sie einen Anhang mit dem Namen LeftElbowConstraintAttachment1 hinzu.
- Setzen Sie die LeftUpperArm.LeftElbowConstraint.Attachment1 Eigenschaft an dieses neue Anhang.
- Kopiere die LeftElbowConstraintAttachment0.CFrameRotation Eigenschaft und füge sie als LeftElbowConstraint.附1.CFrameAlignment Wert ein.
Testen Sie IKControl, um zu überprüfen, ob der Ellenknochen nur um seine Gelenkhachse dreht:
Handgelenke
Selbst mit dem Beschränkungkann der IKControl immer noch unrealistische Posen mit den Handgelenken produzieren.
Sie können dies verbessern, indem Sie ein BallSocketConstraint hinzufügen, um die Rotation des Handgelenks zu begrenzen. Während dies dem Prozess ähnelt, den für den Ansatz eines HingeConstraint an den Ellenbeinen verwendet wird, können Sie die Eigenschaft LimitsEnabled auf diesem Constraint verwenden,
Um ein BallSocketConstraint für den Arm zu fügen:
- In dem Explorer, finden Sie Ihr Modell's LeftHand und klicken Sie auf die ⊕ Schaltfläche .
- Fügen Sie einen BallSocketConstraint mit dem Namen LeftWristConstraint hinzu.
- Suchen Sie das LeftLowerArm.LeftWristRigAttribut Ihres Modells und fügen Sie ein Anhang:
- Klicken Sie auf die Schaltfläche ⊕ button und fügen Sie einen Anhang mit dem Namen LeftWristConstraintAttachment0 hinzu.
- In der Ansichtsfensterwählen Sie das Zubehör aus und verwenden Sie das Drehen-Werkzeug , um das Zubehör so zu drehen, dass die gelben Primärachsen auf die Finger der Modellzeigen.
- Setzen Sie die LeftWristConstraint.Attachment0 Eigenschaft auf das neue LeftWristConstraintAttachment0.
- Suchen Sie das LeftHand.LeftWristRigAttribution Ihres Modells und fügen Sie ein Anhang:
- Klicken Sie auf die Schaltfläche ⊕ button und fügen Sie einen Anhang mit dem Namen LeftWristConstraintAttachment1 hinzu.
- Kopiere die LeftWristConstraintAttachment0.CFrameOrientation Eigenschaft und füge sie als LeftWristConstraintAttachment1.CFrameOrientation Eigenschaftenein.
- Setzen Sie die LeftWristConstraint.Attachment1 Eigenschaft auf diesen neuen LeftWristConstraintAttachment1 .
- In dem Explorer, wählen Sie den LeftWristConstraint .
- In dem Eigenschaften-Editor, setzen Sie gefolgte Profile:
- Aktiviere LimitsEnabled .
- Setzen Sie OberAngle auf 80 . Dies kontrolliert, wie viel die Beschränkungse Achse drehen kann, und 80 Grad ist etwa so viel, wie der Wrist beugen kann.
- Abhängig von Ihrem Charakter möchten Sie vielleicht die Richtung, in die der Cone zeigt, anpassen. Sie können dies tun, indem Sie das Drehen-Werkzeug verwenden, um die Beschränkung Anbauten0 zu drehen.
Wenn Sie die LeftWristConstraint auswählen, erscheint ein grüner Cone, der die Bewegungsreichweite des Wrists anzeigt.
Mit dem Constraint-Set up, testen Sie die IKControl mit der Hand, die vor dem Charakter zeigt, und der Wrist sollte sich drehen und biegen, realistischer.