キャラクター用にどんどん複雑な Animation ブループリントを作っていくと、他の Animation ブループリント内の Animation ブループリントの一部を再利用したくなることがあるでしょう。 ノードのネットワークを再作成する代わりに、そのネットワークを分割して独自の Animation ブループリントにして、Sub Anim Instance を使って必要に応じてその Animation ブループリントにアクセスすることができます。
この操作ガイドでは、プレイ可能なキャラクターに影響を与えるロジックを持つ Animation ブループリントを作成し、テンプレートの Animation ブループリント内のSub Anim Instance を使ってそのロジックを呼び出す方法を説明します。
このガイドでは、スターターコンテンツ を有効にした状態で Blueprint Third Person テンプレートを使用します。
ステップ
-
「Content/Mannequin/Animations」 フォルダで、ThirdPerson_AnimBP 上で 右クリック して、複製 し、 AltAnimBP と名前を付けます。
この AltAnimBP は、ThirdPerson_AnimBP から呼び出される Sub Anim Instance として使用されます。
Sub Anim Instance として使用する Animation ブループリントを作成する場合、それを組み込みたい Animmation ブループリントで使用されている Skeleton アセットと同じものを使用しなければなりません。 この例では、テンプレートの Animation ブループリントを複製しますが、 Animation ブループリントをゼロから作成する場合、スケルトンを選択する必要があります。
-
AltAnimBP の AnimGraph で、右クリック し、Sub-Graph Input ノードを追加します。
これで Sub Anim Instance で In Pose が作成されて、外部ポーズ データをこの Animation ブループリントに渡すことができます。
-
再度 右クリック して、FABRIK スケルタル コントロール ノードを追加します。
この例では、IK を使ってゲームプレイ中に走るキャラクターの腕を上げます。
- [Details (詳細)] パネルで以下の設定を FABRIK ノードに割り当てます。
-
(As Pin) Effector Transform のチェックを外します。
- Location を 100, 0, 200 に設定します。
- Tip Bone を index_01_l に設定します。
- Root Bone を clavicale_l に設定します。
-
-
グラフ内で FABRIK ノードをコピーし [Details] パネルで以下の変更を加えます。
- Location を -100, 0, 200 に設定します。
- Tip Bone を index_01_r に設定します。
- Root Bone を clavicale_r に設定します。
これにより、左右両方のアームが確実に影響を受けるようになります。
-
FABRIK ノードの Alpha ピン上で 右クリック し、Effect Alpha という名前で 変数化 します。
-
以下のようにノードのネットワークを再作成します (Local to Component と Component to Local のノードが自動的に作成されます)。
Animation ブループリントを コンパイル すると、プレビュー ウィンドウ内のキャラクターが腕を上げます。
-
コンテンツ ブラウザ の Content/Mannequin/Animations で、ThirdPerson_AnimBP を開きます。
-
AnimGraph で、右クリック し、Sub Anim Instance ノードを追加します。
これは作成した Animation ブループリントにアクセスするために使用するノードです。
-
Sub Anim Instance ノードの [Details] パネルで、Instance Class を AltAnimBP に設定します。
-
EffectAlpha の隣にある Expose チェックボックスをクリックしてこのプロパティを公開します。
プロパティをエクスポーズすることで、親の Animation ブループリントからのデータでこうしたプロパティを更新することができます。
-
[MyBlueprint] パネルから Speed 変数をクリックしてそれを 600 で割ってから、それを Effect Alpha に代入します。
ここではキャラクターの移動速度をある値で割って、適用するスケルタル コントロール量の間でブレンドします。
- コンパイル し、エディタで再生 します。
最終結果
以下では、キャラクターの速度が増すにつれて、指定された量で割り、それを使用して Sub Anim Instance ネットワーク内で適用されるスケルタル コントロールの量を操作します。 この例では、Sub-Graph 入力ノードを使って、結果のポーズ データを決定しますが、独自のステートマシンやロジックで Animation ブループリントを作成して、結果のポーズ データを生成することもできます。