Inverse Kinematik

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Inverse Kinematik (IK) ist eine gängige Technik in der Computeranimation, um Charaktere effizient zu bewegen und realistisch mit ihrer Umgebung zu interagieren. Der Prozess, eine realistische Bewegung für einen Charakter zu erstellen, erfordert oft viele Iterationen und kleine Anpassungen der verschiedenen Gelenke. Mit IK können Sie mehrere Teile eines Charakters posieren und animieren, indem Sie ein einzelnes Objekt posieren oder anpassen.

Diese Animationstechnik kann Lösungen für die folgenden Beispiele bieten:

Greifen und posieren Sie die Hand eines Charakters, während automatisch die dazugehörigen Gliedmaßen wie Handgelenk, Ellbogen und Schulter angepasst werden.
Lassen Sie die Füße eines Charakters realistisch auf verschiedenen Oberflächen und Steigungen interagieren.
Greifen und bewegen Sie ein einzelnes Zielobjekt, um schnell realistische Interaktionen mit Ihrem Charakter und Requisiten zu erstellen.

IKControl

Sie können eine IKControl verwenden, um prozedural IK zu Ihren Charakter-Rigs außerhalb des Animationseditors hinzuzufügen. Studio ermöglicht es Ihnen, IK programmgesteuert auf alle Charaktere anzuwenden, um realistische Bewegungen und Interaktionen in Ihrem Spiel zu erstellen.

Beim Hinzufügen einer IKControl müssen Sie die erforderlichen Eigenschaften korrekt einstellen, um unerwartete und unnatürliche Animationsergebnisse zu vermeiden. Wie bei allen Animationen sollten Sie Ihre IKControls testen, um sicherzustellen, dass Sie das gewünschte Verhalten erreichen.

Erforderliche Eigenschaften

Beim Hinzufügen einer IKControl zu dem Humanoid oder AnimationController Ihres Charakters müssen Sie die folgenden erforderlichen Eigenschaften festlegen, um IK zu aktivieren:

EigenschaftBeschreibung
TypeGibt den Verhaltenstyp der IK-Steuerung an. Siehe Enum.IKControlType für die Liste der Verhaltensoptionen. Häufige Verhaltenstypen sind Position oder Transform.
EndEffectorEin BasePart oder Bone in Ihrem Charakter-Rig, das auf das Target zielt. Zum Beispiel können Sie einen LeftHand-Knochen als EndEffector festlegen, um ein Türknaufobjekt zu erreichen, das als Target festgelegt ist.
TargetDas Objekt, das der EndEffector erreicht oder auf das es zeigt. Ein Target kann jedes Objekt mit einer Weltposition sein.
ChainRootDefiniert die Kette von BaseParts oder Bones, die die IKControl beeinflusst. Alle verbundenen Teile zwischen dem ChainRoot und dem EndEffector werden von der IKControl unter Verwendung des definierten Verhaltenstyps beeinflusst.

Zum Beispiel, wenn die LeftHand Ihres Charakters als Target festgelegt ist, können Sie IK auf den gesamten linken Arm anwenden, indem Sie ChainRoot auf den LeftUpperArm festlegen. Um IK nur auf die Teile unterhalb des Ellenbogens anzuwenden, setzen Sie ChainRoot auf den LeftLowerArm.

Testen von IKControls

Sie können IKControl programmgesteuert 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 Ihre IKControl schnell zu testen, indem Sie eine Attachment als Ziel verwenden:

  1. Starten Sie einen Spieltest aus der Mezzanine von Studio.

  2. Navigieren Sie im Explorer-Fenster zu Workspace → das Model Ihres Benutzers. Diese Model-Instanz ist nach Ihrem aktuellen Roblox-Konto benannt.

  3. Klicken Sie auf das -Symbol neben dem HumanoidRootPart Ihres Charaktermodells und fügen Sie eine Attachment hinzu.

  4. Wählen Sie die Attachment aus und verwenden Sie das Bewege-Werkzeug, um das Objekt vor Ihrem Charakter im Viewport zu positionieren.

  5. Wählen Sie im Explorer-Fenster das -Symbol neben dem Humanoid Ihres Charakters und fügen Sie eine IKControl hinzu.

  6. Wählen Sie die IKControl aus und setzen Sie die folgenden Eigenschaftswerte im Eigenschaften-Fenster:

    1. Type: Wählen Sie Transform aus dem Dropdown-Menü.
    2. EndEffector: Wählen Sie das LeftHand MeshPart Ihres Modells im Explorer aus.
    3. Target: Wählen Sie das neu erstellte Attachment-Objekt im Explorer aus.
    4. ChainRoot: Wählen Sie das LeftUpperArm MeshPart Ihres Modells im Explorer aus.
    IKControl Eigenschaften
    Explorer - Charaktermodell

    Der linke Arm Ihres Charakters sollte nun nach dem Ziel Attachment greifen. Sie können experimentieren, indem Sie die Attachment bewegen oder die Eigenschaften der IKControl bearbeiten, um unterschiedliche Ergebnisse zu erzielen.

Einschränkungen hinzufügen

Sie können Constraints verwenden, um einzuschränken, wie Gelenke sich bewegen können, wenn sie ihr Ziel erreichen. Einschränkungen können sicherstellen, dass Gelenke wie Ellenbogen und Knie natürlich beugen oder dass mechanische Gelenke in einer bestimmten Ausrichtung rotieren.

Ellenbogen beugt sich unnatürlich
Ellenbogen beugt sich korrekt

Um Einschränkungen zu Ihrem Charakter mit IKControl hinzuzufügen, müssen Ihre IKControl und die Einschränkung die folgenden Bedingungen erfüllen:

Die folgenden Anweisungen beschreiben den Prozess, eine HingeConstraint hinzuzufügen, um die Rotation des Ellenbogens eines Charakters einzuschränken, und eine BallSocketConstraint zum Handgelenk hinzuzufügen, um den Rotationswinkel zu begrenzen.

Ellenbogen

Charaktere mit R15-Rigs enthalten bereits Anhänge in ihren Gelenken, die Sie verwenden können, um die Ellenbogenbeschränkung anzuwenden. Für den Ellenbogen enthalten sowohl der LeftUpperArm als auch der LeftLowerArm eine LeftElbowRigAttachment. Neben dem Hinzufügen einer Einschränkung müssen Sie auch zusätzliche Kind-Anhänge zu jedem Teil's LeftElbowRigAttachment hinzufügen, um anzugeben, um welche Achse sich der Ellenbogen drehen kann.

Um die HingeConstraint und die Kind-Anhänge hinzuzufügen:

  1. Suchen Sie im Explorer-Fenster das LeftLowerArm Ihres Modells und klicken Sie auf die ⊕-Schaltfläche.

  2. Fügen Sie eine HingeConstraint mit dem Namen LeftElbowConstraint hinzu.

  3. Navigieren Sie im Explorer-Fenster zu der LeftUpperArm.LeftElbowRigAttachment und fügen Sie einen Anhang hinzu:

    1. Klicken Sie auf die ⊕-Schaltfläche, um einen Attachment mit dem Namen LeftElbowConstraintAttachment0 hinzuzufügen.

    2. Wählen Sie im Viewport den Anhang aus und verwenden Sie das Drehwerkzeug, um den Anhang so zu drehen, dass die gelbe PrimaryAxis die Achse der erwarteten Rotation Ihres Ellenbogens ist.

    3. Setzen Sie die LeftElbowConstraint.Attachment0-Eigenschaft auf diesen neuen Anhang.

  4. Navigieren Sie im Explorer-Fenster zu dem LeftLowerArm.LeftElbowRigAttachment Ihres Modells und fügen Sie einen Anhang hinzu:

    1. Klicken Sie auf die ⊕-Schaltfläche und fügen Sie einen Attachment mit dem Namen LeftElbowConstraintAttachment1 hinzu.
    2. Setzen Sie die LeftUpperArm.LeftElbowConstraint.Attachment1-Eigenschaft auf diesen neuen Anhang.
    3. Kopieren Sie die LeftElbowConstraintAttachment0.CFrameOrientation-Eigenschaft und fügen Sie sie als LeftElbowConstraint.Attachment1.CFrameOrientation-Wert ein.

Testen Sie Ihre IKControl, um zu überprüfen, ob sich der Ellenbogen nur um seine Scharnierachse dreht:

Handgelenke

Selbst mit der Ellenbogenbeschränkung kann die IKControl immer noch unrealistische Posen mit den Handgelenken erzeugen.

Das Handgelenk beugt sich unnatürlich in bestimmten Ausrichtungen

Sie können dies verbessern, indem Sie eine BallSocketConstraint hinzufügen, um die Rotation des Handgelenks zu begrenzen. Während dies dem Prozess zum Hinzufügen einer HingeConstraint zum Ellenbogen ähnlich ist, können Sie die LimitsEnabled-Eigenschaft auf dieser Einschränkung verwenden, um den Bewegungsbereich des Handgelenks weiter zu steuern.

Um eine BallSocketConstraint für das Handgelenk hinzuzufügen:

  1. Suchen Sie im Explorer-Fenster das LeftHand Ihres Modells und klicken Sie auf die ⊕-Schaltfläche.
    1. Fügen Sie eine BallSocketConstraint mit dem Namen LeftWristConstraint hinzu.
  2. Suchen Sie den LeftLowerArm.LeftWristRigAttachment Ihres Modells und fügen Sie einen Anhang hinzu:
    1. Klicken Sie auf die ⊕-Schaltfläche und fügen Sie einen Attachment mit dem Namen LeftWristConstraintAttachment0 hinzu.
    2. Wählen Sie im Viewport den Anhang aus und verwenden Sie das Drehwerkzeug, um den Anhang so zu drehen, dass die gelbe PrimaryAxis auf die Fingerspitzen des Modells zeigt.
    3. Setzen Sie die LeftWristConstraint.Attachment0-Eigenschaft auf den neuen LeftWristConstraintAttachment0.
  3. Suchen Sie den LeftHand.LeftWristRigAttachment Ihres Modells und fügen Sie einen Anhang hinzu:
    1. Klicken Sie auf die ⊕-Schaltfläche und fügen Sie einen Attachment mit dem Namen LeftWristConstraintAttachment1 hinzu.
    2. Kopieren Sie die LeftWristConstraintAttachment0.CFrameOrientation-Eigenschaft und fügen Sie sie als LeftWristConstraintAttachment1.CFrameOrientation-Eigenschaft ein.
    3. Setzen Sie die LeftWristConstraint.Attachment1-Eigenschaft auf diesen neuen LeftWristConstraintAttachment1.
  4. Wählen Sie im Explorer-Fenster die LeftWristConstraint aus.
  5. Setzen Sie im Eigenschaften-Fenster Folgendes:
    1. Aktivieren Sie LimitsEnabled.
    2. Setzen Sie UpperAngle auf 80. Dies steuert, wie viel sich die Achse der Einschränkung drehen kann, und 80 Grad ist ungefähr, wie viel das Handgelenk sich beugen sollte.
  6. Je nach Charakter möchten Sie möglicherweise die Richtung anpassen, in die der Kegel zeigt. Sie können dies tun, indem Sie das Drehwerkzeug verwenden, um die Attachment0 der Einschränkung zu drehen.

Wenn Sie die LeftWristConstraint auswählen, erscheint ein grüner Kegel, der den Bewegungsbereich des Handgelenks visualisiert.

Mit der eingerichteten Einschränkung testen Sie die IKControl, indem Sie die Hand nach unten vor dem Charakter zeigen lassen, und das Handgelenk sollte realistischer rotieren und sich beugen.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.