CCDIK

IK チェーンを設定して制御するための CCDIK スケルタル コントロール ノードにアクセスし、このノードを使用する方法について説明します。

CCDIK (Cyclic Coordinate Descent Inverse Kinematics) アニメーション ブループリント ノードは、一連のボーンを エフェクタ位置 (Effector Location) に駆動する軽量の IK ソルバです。FABRIK ノードと似ているものの、CCDIK には角度コンストレイントを定義する機能があり、影響を受けるボーンの回転に制限を加える場合に便利です。

ccdik animation blueprint node

次の画像では、AnimGraph で CCDIK ノードが選択されており、その エフェクタ位置 (Effector Location) はビューポート ウィンドウのデバッグ ムーブメント ツールによって操作されています。

ccdik animation blueprint node

Effector Location が変更されると、選択したボーン チェーン (赤色 のデバッグ ラインでハイライト表示) は、チップ ボーンエフェクタの位置 に一致させるよう移動します。Effector Location に動的ベクター変数を使用して、回転コンストレイントを適用することで、このノードを使って スケルタル メッシュ に動的な調整を加え、ゲーム ワールド内でのキャラクターとオブジェクトのインタラクションの基礎を構築できます。

Alpha (アルファ) 値またはそのピンを使用すると、生成された出力ポーズにおける解決されたモーションの程度を制御できます。値が 1 の場合は生成された出力ポーズが完全に使用され、値が 0 の場合はソース ポーズが出力されます。

設定

このサンプル ワークフローでは、CCDIK ノードを使用してキャラクターの指を動的に調整し、ゲーム ワールド内で指でボタンを押すようにします。

CCDIK ノードは コンポーネント空間 内で機能するため、このノードをキャラクターのアニメーション ブループリント内に実装するには、空間の変換 を行う必要があります。

CCDIK ノードを アニメーション ブループリント に追加したら、AnimGraph でそのノードを選択してその [Details (詳細)] パネルを開きます。

[Details] パネルで、チェーンの末端のボーンとなる チップ ボーン と、ローカル ルート ボーンへの調整の基礎となる ルート ボーン を選択します。この例では、[Tip Bone] が人差し指 (index_03_l) に、Root Bone が鎖骨 (clavical_l) に設定されています。

ccdik node details pannel select tip and root bone in the solver section

Effector Location ベクター変数をレベル内で計算するために、Effector Location SpaceWorld Space に設定します。

ccdik node details pannel effector location space property

回転制限を有効にするには、Enable Rotation Limit プロパティをオンにして、Rotation Limit Per Joints プロパティ セクションを調整します。Index には、ローカル ルート ボーン から チップ ボーン の間の スケルトン に含まれるそれぞれのジョイントごとにデータが入力されます。これらの回転を調整して、不要なジオメトリのオーバーラップや、キャラクターのジョイントの過度な伸縮を回避できます。

ccdik node details pannel rotation limit properties

CCDIK ノードにより、Effector Location の位置と一致するよう、チップ ボーンルート ボーン と回転のコンストレイントに従って調整され、これによってキャラクターはあらゆる角度や高さからボタンと動的にやり取りできるようになります。

ccdik node button demo

プロパティのリファレンス

ccdik node details pannel

CCDIK ノードのプロパティについては以下で参照できます。

プロパティ

説明

Effector Location

このプロパティは、デフォルトで AnimGraph 内のノードにピンとして表示されます。このプロパティの値は、解決時に、選択した チップ ボーン を調整する先となるターゲット ポイントです。

Effector Location Space

Effector Location によって使用される参照の空間フレームです。

Effector Target

Effector Location SpaceBone に設定されている場合に、ターゲットとするボーンをこのプロパティで定義できます。

Tip Bone

Effector Location に合わせるために調整するボーンを スケルタル メッシュ から選択します。

Root Bone

チェーンを完結して、チェーンのモーションをローカル ルート ポイントに固定するためのボーンを スケルタル メッシュ から選択します。

Precision

Effector Location に一致させるための Tip Bone の調整に対する許容レベルを設定できます。デフォルトは 1 の値で、ほとんどのプロジェクトで最適に機能しますが、この値を増減して精度を調整することができます。

Max Iterations

このプロパティでは、ノードで実行可能な解決イテレーションの最大数を設定できます。値を高く設定するとパフォーマンスが下がりますが、より精度の高い値で計算が行われます。値を低く設定するとプロジェクトのパフォーマンスが上がりますが、精度はそれほど高くなりません。デフォルト値の 10 はほとんどのプロジェクトに適した値です。

Start from Tail

有効にすると、チェーンのデバッグ描画が チップ ボーン から始まり、ルート ボーン で終了します。

Enable Rotation Limit

有効にすると、Rotation Limit Per Joints プロパティの [Index] の値に基づいて、それぞれのジョイントの回転がノードによって制限されます。

Rotation Limit Per Joints

ここでは、チェーンの チップ ボーンルート ボーン との間にある各ジョイントの回転制限を定義できます。開始点の インデックスチップ ボーン に直接接続されているジョイントに適用され、そこからチェーンに沿って、ルート ボーン に隣接するジョイントに到達するまでそれぞれのインデックスが適用されます。

ボタン ブループリントのリファレンス

次は、ボタン デモの作成に使用したボタン ブループリント、キャラクター ブループリント、キャラクターのアニメーション ブループリントのリファレンスです。

ボタン アクタ ブループリント | キャラクター ブループリント | キャラクター アニメーション ブループリント

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル