モデル:【オリジナル3Dモデル】ドラゴニュート・シェンナ
ボディアニメーション:Control Rig Mannequinサンプル からIKRigにベイクして編集
フェイシャルアニメーション:MorphRigによる手付け

概要

ControlRigとシーケンサーを利用し、姿勢や表情のアニメーションを作成します。

Rigを複数利用する場合、特別なセットアップが必要です。ページ後半を参照ください。

下準備

前述の解説よりIKRigMorphRig を作成ください。

サンプルマップ VRM4U_ControlRig も参考にどうぞ。


ポーズ・アニメーションの設定

ポーズ、アニメーションを作成する

IKRigをコンテンツブラウザからレベルに配置します。自動的にシーケンサー編集モードになります。他の手順でも構いません。

コントローラを操作するとキャラクタが動きます。アニメーションを作成する場合は、シーケンサーにキーを追加します。

 

既存アニメーションを編集する

既存アニメーションを、ControlRigの動きにベイクし、再編集することができます。(RigにはBackwardSolveを設定済です)

アプローチは2つあります。

概要 詳細
(オススメ)
加算アニメで調整する
toleranceを小さめにベイクし、additiveセクションを追加。オフセットを入れて制御する
初期設定で調整する 初期設定でベイクし、コントローラを制御する。細かい動きが再現されない
アニメーションをセットしてtoleranceを小さめにベイク
additiveセクションを追加 additive側にキーを打つと既存アニメを調整できる

手首のねじれ補正を調整する

初期状態で軽く補正が入っています。好みに応じて調整ください。

手首ねじれ補正コントローラ 補正ON(初期0.3) 補正OFF(0.0)

表情の設定

IKRigとMorphRigを併用する場合は、後述のセットアップも合わせて参照ください。

WBP_MorphTargetを右クリックから実行し、MoprhTarget制御UIを起動します。

 
Morph制御UIが起動します

表情:操作手順

  1. MorphRigをレベルに配置し、シーケンサーの編集モードに入る
  2. 制御UIより、操作対象のモデルをTargetActorに設定する
  3. MorphTargetを制御しキーを打つ。
TargetActorより対象のモデルを選択する
シーケンサーより対象のTrackを選択し、「AddKey」ボタン or 「K」キー

表情:細かい機能紹介

  • ショートカットキー
    • k キー追加
    • i パラメータ初期化
  • Morph名フィルタ
    • 上部のテキスト入力欄でMorph名をサーチできます
  • 不要キーの省略
    • 差分がtolerance以下の場合、キー追加をスキップします
  • 長いMorph名の省略
    • Morph名の先頭を省略します。TargetActorのRemoveStringに一致したものが対象です
  • エラー検知
    • エラー時はボタンの色が変わります。シーケンサーより対象のTrackを選択して再度キーを追加してください。
ボタンが赤い時はエラー。シーケンサーより対象のTrackを選択する

表情:細かい仕組み(中身を知りたい方向け)

複製スクリプトによって、ControlRigにMorphTarget数ぶんのControlを追加しています。それらの値をカーブ値に渡しています。

あとはシーケンサーでControlの値を変更すれば、MorphTargetへ反映されます。お手軽です。

この仕組みはVRMに依存していないため、どのようなSkeletalMeshにも適用できます。FBXインポートしたものにも使えます。


複数のRigを同時に利用する

標準的な作業手順では問題が出ます! Rigを複数利用する場合は十分ご確認ください。正しくセットアップしたものは サンプルマップ VRM4U_ControlRig で確認できます。

以下の図のような手順でRigを複数設定します。

     

正しい構成

以下の画像のようにセットアップされていれば問題ありません。

Rigの登録場所に注意!!
正しい構成
-SkeltalMeshActor
  -SkeletalMeshComponent0   <- 「+Track」をクリックして追加
    -IK_Rig           <- OK.  ここがIKRig
  -Morph_Rig          <- OK.  ここがMorphRig

問題ある構成

標準的な作業手順では、以下のような構成になりやすいです。

問題ある構成
-SkeltalMeshActor
  -SkeletalMeshComponent0
    -Morph_Rig       <- NG.  MorphRigとIKRigが逆
  -IK_Rig            <- NG. 

この構成、一見正しく動作しますが、IKRigを選択した時にシーケンサのフォーカスが移動しません! キーを打つ手間が大変かかります。

修正には 以下のように操作します。

IKRigを2つ登録して、キーを選択、移動先のrigにコピーする

キーを移動後、元のIKRigを削除し 改めてMorphRigを追加すれば完了です。


シーケンサー操作時に揺れ骨が動くようにする

PostProcessAnimBlueprintを利用します。

以下のようなAnimBPを作成し、SkeletalMeshのPostProcessAnimBlueprintにセットすれば完了です。

作成するAnimBP SkeletalMeshにセット。プレビューに表示が増える

さらにRigを追加する (VRM4U独自Rig)

髪や衣服を揺れ骨として扱いたい場合、この設定は不要です。

ここまでの設定で、基本的な骨(HumanoidBone)とフェイシャルアニメーションを設定できました。 続いて、他の骨(髪の毛や衣服)を制御するRigを追加します。

サンプルマップ VRM4U_FKRig を参照ください。

  • 必要なもの 2つ
    • 操作対象モデルから生成したAnimBP (サンプルでは ABP_VRoidFKRig)
    • BP_FKRigGenerator を継承したBP (サンプルでは BP_FKRigGenerator_for_Sample)

AnimBP(対象モデルから生成したもの) の設定

VrmModifyBoneListノードをつなぎ、BoneTransを変数にします。 AnimBPをPostProcessAnimBPとして設定します。

ノード、変数の追加 PostProcessAnimBPとして設定

BP_FKRigGenerator(を継承したもの) の設定

AddKeyOverrideをOverrideします。前述のAnimBPにキャスト、図のようにつなぎます

 

Rigで操作する

対象モデルとBP_FKRigGenerator(を継承したもの)をレベルに配置します。 TargetActorに対象のモデルを指定します。

ボタン1 Generate Rigを押すとRigが生成されます。回転操作すると骨が動きます。

 
モデル:QuQu着物 2021

FKRigの雑多な解説

  • 体骨はControlRig、他骨はFKRigで操作する想定です。ただ、SkipHumanoidBoneをOFFにすれば全ての骨を操作できます。
  • AnimBPには必要に応じて、揺れ骨やアニメーションの設定を追加ください。

見た目のセットアップを忘れずに!

MToonAttachActorを配置してTargetをセットしてください。輪郭線やセルフシャドウが有効化されます。 詳しくは前章の解説を参照ください



補助骨が動くようにする(上級者向け)

補助骨用のControlRigをセットアップし、PostProcessAnimBlueprint にセットすれば完了です。

モデルに補助骨が設定されていると効果的です。無い場合は親骨を指定しても構いません。また前段のねじれ補正はOFFにしてください。

手順は以下です。

  • CR_HelperBoneを複製し、Import Hierarchy で対象のモデルを指定
  • パラメータを書き換える
    • 動かしたい補助骨とその連動元、ブレンド率などを設定
  • AnimBPにセット
モデルを指定 パラメータセットアップ AnimBP設定

動作確認にはControlRigやSkeletonのプレビューを利用ください。

補助骨設定 あり 補助骨設定 なし

マテリアルパラメータのアニメーションを適用する(上級者向け)

サンプルマップVRM4U_BlendShapeGroup.umapを参照ください。

BP_BlendShapeGroupController から設定可能です。VRMのBlendShapeGroupで指定したMorphとMaterialListが適用されます。

マテリアルパラメータ指定