ControlRigでポーズ・フェイシャルを制御する
モデル:【オリジナル3Dモデル】ドラゴニュート・シェンナ |
ボディアニメーション:Control Rig Mannequinサンプル からIKRigにベイクして編集 |
フェイシャルアニメーション:MorphRigによる手付け |
概要
ControlRigとシーケンサーを利用し、姿勢や表情のアニメーションを作成します。
Rigを複数利用する場合、特別なセットアップが必要です。ページ後半を参照ください。
下準備
前述の解説より、IKRig
とMorphRig
を作成ください。
サンプルマップ 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が起動します |
---|
表情:操作手順
- MorphRigをレベルに配置し、シーケンサーの編集モードに入る
- 制御UIより、操作対象のモデルをTargetActorに設定する
- 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が適用されます。
マテリアルパラメータ指定 |
---|