逆キネマティクス

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

逆キネマティクス (IK) は、コンピューターアニメーションでキャラクターを効率的に動かし、リアルに環境と相互作用させるための一般的な技術です。キャラクターのリアルな動きを作成するプロセスは、多くの反復とさまざまな関節の微調整が必要になることが多いです。IK では、1つのオブジェクトをポーズ付けたり調整したりして、複数のキャラクターパーツをポーズ付けたりアニメーション化したりできます。

このアニメーション技術は、次の例に解決策を提供できます:

関連する手を自動調整しながら、手首、肘、肩などのキャラクターの手をつかんでポーズをとります。
異なる表面や坂でキャラクターの足がリアルに相互作用するようにします。
単一のターゲットオブジェクトを捕まえて移動して、キャラクターとプロップとのリアルなインタラクションを迅速に作成します。

IK制御

アニメーションエディタ外でキャラクターリグに IK を手続き的に追加するには、IKControl を使用できます。スタジオでは、R15、Rthro、カスタムインポートされたスキン付きキャラクターなど、すべてのキャラクターに IK をプログラマティックに適用でき、エクスペリエンスでリアルな動作と相互作用を作成できます。

IKControl を追加するときは、予期せぬ自然でないアニメーション結果を避けるために、必要なプロパティ を正しく設定します。すべてのアニメーションと同様、IKコントロールをテストして、望みの動作を達成できるようにします。

必須のプロパティ

キャラクターの IKControl または Humanoid または AnimationController に を追加するときは、IK を有効にするために次の必須プロパティを設定する必要があります:

性質説明
TypeIK コントロールの振る舞いタイプを指定します。Enum.IKControlType には、振る舞いオプションのリストがあります。一般的な振る舞いタイプは Position または Transform です。
EndEffectorキャラクターのリグで、BasePart または Bone が、Target に向かって追跡する。たとえば、 左手 の骨を EndEffector に設定して、ドアノブオブジェクトを Target としてリーチできます。
TargetEndEffector に到達するか、指し向けるオブジェクト。世界位置を持つオブジェクトであれば、Target である可能性があります。
ChainRootBaseParts または Bones に影響を与える IKControl のチェーンを定義する と の間のすべての接続部品は、定義された振る舞いタイプを使用して影響を受けます。たとえば、キャラクターの 左手 が に設定されている場合、 を 左上腕 に設定して、全体の左腕に IK を適用できます。IK を肘の下のパーツにのみ適用するには、ChainRoot左下腕 に設定します。

IKコントロールをテスト

エクスプローラーを介してプログラマティックに追加したり編集したりできますIKControl。プレイテスト中に IKControl を追加して変更して、さまざまなプロパティがキャラクターの動作にどのように影響するかを迅速にチェックできます。

ターゲットとして IKControl を使用して、素早く Attachment をテストするには:

  1. ツールバーの テスト タブで、 プレイ を選択して、プレイテストを開始します。

  2. In the エクスプローラー , navigate to ワークスペース → your user's Model .この Model インスタンスは、現在の Roblox アカウントとして名前づけられます。

  3. キャラクターモデルの の横にある HumanoidRootPart アイコンをクリックし、 添付ファイル を追加します。

  4. Select the 添付ファイル and use the 移動ツール to position the object in front of your character in the viewport.

  5. エクスプローラー ウィンドウ で、キャラクターの の横にある Humanoid の横にある IKControl を選択し、追加します。

  6. Select the IKControlプロパティ パネルに次のプロパティ値を設定します:

    1. タイプ : ドロップダウンから Transform を選択。
    2. エンドエフェクタ : エクスプローラでモデルの 左手 MeshPart を選択します。
    3. ターゲット : エクスプローラーで新しく作成された 添付ファイル オブジェクトを選択します。
    4. チェーンルート : エクスプローラーでモデルの 左上腕 を選択します。

    IKControl プロパティ
    >

    エクスプローラーパネル - キャラクターモデル
    >

    キャラクターの左腕がターゲットに到達する必要があります AttachmentAttachment または IKControl プロパティを移動したり編集したりして、異なる結果を得ることができます。

制限を追加

Constraints を使用して、ジョイントがターゲットに到達するとどのように移動できるかを制限できます。制限は、エルボーや膝のような関節が自然に曲がるか、特定の方向に回転するように機械的な関節を確保することができます。

自然でないエルボー屈曲
>

正しくエルボーを曲げる
>

IKControl を使用してキャラクターに制限を追加するには、IKControl と制限が次の条件を満たさなければなりません:

次の指示は、キャラクターの肘の回転を制限するために HingeConstraint を追加し、手首に BallSocketConstraint を追加して回転角度を制限するプロセスを説明します。

エルボー

Roblox R15 キャラクターは、すでに関節に付属物を含んでおり、エルボー制約を適用するために使用できます。エルボーの場合、LeftUpperArm と LeftLowerArm の両方が LeftElbowRigAttachment を含んでいます。制約を追加するとともに、各パーツの LeftElbowRigAttachment に追加の子付属物を追加して、エルボーが回転できる軸を指定する必要があります。

HingeConstraint と子供の添付ファイルを追加するには:

  1. エクスプローラで、モデルの 左下腕 を見つけ、 ⊕ ボタン をクリックします。

  2. 名前 **** で LeftElbowConstraint を追加します。

  3. エクスプローラで、 LeftUpperArm.LeftElbowRigAttachment に移動し、添付ファイルを追加します:

    1. クリックする ⊕ ボタン で、名前 **** の LeftElbowConstraintAttachment0 を追加します。

    2. ビューポートで添付ファイルを選択し、 回転ツール を使用して添付ファイルを回転させ、黄色い 主軸 がエルボーの予想回転軸になるようにします。

    3. 左肘制限.附属0 プロパティをこの新しい添付ファイルに設定します。

  4. エクスプローラで、モデルの LeftLowerArm.LeftElbowRigAttachment に移動し、添付ファイルを追加します:

    1. クリックして ⊕ ボタン と、名前 **** の LeftElbowConstraintAttachment1 を追加します。
    2. LeftUpperArm.LeftElbowConstraint.Attachment1 プロパティをこの新しい添付ファイルに設定します。
    3. LeftElbowConstraintAttachment0.CFrameOrientation プロパティをコピーし、 LeftElbowConstraint.Attachment1.CFrameOrientation 値として貼り付けます。

IKControl をテストして、エルボーがヒンジアクスに関連するのみ回転することを確認します:

リスト

エルボー制限があっても、IKControl はまだ手首で現実的でないポーズを生成できます。

指先が特定の方向に不自然に曲がる

これを改善するには、BallSocketConstraint を追加して、手首の回転を制限できます。これは、エルボーに HingeConstraint を追加するプロセスと似ていますが、この制約の LimitsEnabled プロパティを使用して、手首の動作範囲をさらに制御できます。

腕に BallSocketConstraint を追加するには:

  1. エクスプローラで、モデルの 左手 を見つけて、 ⊕ ボタン をクリックします。
    1. 名前 ボールソケット制約 を持つ LeftWristConstraint を追加します。
  2. モデルの LeftLowerArm.LeftWristRigAttachment を見つけて、添付ファイルを追加します:
    1. クリックして ⊕ ボタン と、名前 **** の LeftWristConstraintAttachment0 を追加します。
    2. ビューポートで、添付ファイルを選択し、 回転ツール を使用して添付ファイルを回転させ、モデルの指先に黄色いプライマリアクスが向かうようにします。
    3. 左腕制限.附属0 プロパティを新しい LeftWristConstraintAttachment0 に設定します。
  3. モデルの LeftHand.LeftWristRigAttachment を見つけて添付し、添付を追加します:
    1. クリックして ⊕ ボタン と、名前 **** の LeftWristConstraintAttachment1 を追加します。
    2. LeftWristConstraintAttachment0.CFrameOrientation プロパティをコピーして貼り付け、 LeftWristConstraintAttachment1.CFrameOrientation プロパティとして貼り付けます。
    3. 左腕の制限。附属物1 プロパティをこの新しい 左腕の制限。附属物1 に設定します。
  4. エクスプローラで、 左腕の制約 を選択します。
  5. プロパティエディタで、フォロー中のものを設定します:
    1. 制限を有効にする を有効にします。
    2. セット 上角80 に。これは、制約の軸がどれほど回転できるか、および 80 度は、手首がどれほど曲がることができるかを約します。
  6. キャラクターによって、コーンが指している方向を微調整したい場合があります。これを行うには、 回転ツール を使用して、制約の 添付ファイル0 を回転させます。 左腕の制限 を選択すると、腕の動作範囲を視覚化する緑のコーンが表示されます。

制約が設定された状態で、キャラクターの前に手を指し、腕がより現実的に回転して曲がるようにテストします。