フェイシャルキャプチャ、ハンドトラッキング
モデル:ヴィクトリア・ルービン |
VRM4Uがサポートするキャプチャ機能
以下の3タイプの機能があります。状況に応じて、適宜改変して利用ください。
タイプ | 必要なデバイス | 解説 |
---|---|---|
フェイシャルキャプチャ | iPhone iPad |
VRMのBlendShapeClipで動かします BPでカーブ設定、AnimBPで骨制御 |
パーフェクトシンク | iPhone iPad |
ARKitのBlendShapeLocationで動かします AnimBPでカーブ設定、ControlRigで骨制御 |
ハンドドラッキング | OculusQuest | 手/指をキャプチャします AnimBPで骨制御 |
iPhone/iPadは LiveLinkFace対応のものが必要です。VRM4UのキャプチャシステムはUE4.26以降で動作します。
OculusQuestは OculusLinkでPCに接続して利用します。
フェイシャルキャプチャ
LiveLinkFaceでキャプチャした表情を、キャラクタに適用します。VRMBlendShapeClipの設定を利用するため、表情パターンがやや少ないです。
ここで紹介するのは、VRM4Uのフォトモードやランタイムリターゲットと連動した使い方です。 UEでの標準的な使い方はドキュメントを参照するか、後述のパーフェクトシンクを参考にしてください。
以下のサンプルマップを参照してください。UE4.26以降でのみコンテンツブラウザに表示されます。
Maps/latest/VRM4U_LiveLinkFace
端末にてLiveLinkFaceを起動し顔を認識させます。 うまく設定されていれば、以下のように端末が認識されます。 iPhone/iPadによって表示される項目は異なります。
BP_LiveLinkFace
に端末の名前をセットします。
認識されていない場合はリストに表示されません。後述の確認事項を参照ください。
表情を変更するターゲットは、BP_VrmModelActorかSkeletalMeshActorを選択可能です。 前者は表情と頭の向きが動作します。後者は頭は動かず、別途AnimationBPを組む必要があります。
PlayInで動きます。
キャラクタの差し替えやアニメーションの併用が可能です。BP_VrmModelActor
より設定ください。
認識されない場合は設定を確認ください
- エディタの設定
- プラグイン
LiveLink
,ARKit
,AppleARKitFaceSupport
を有効にする
- プラグイン
- 端末の設定
- PCと同じネットワークにつながっているか確認する
- LiveLinkFaceより
設定 > livelink > ターゲット
にエディタ起動しているPCのIPアドレスを記入する - 例えば「192.168.1.—:11111」など。(—には実際のPCのアドレスから数値を入れてください)
任意の表情を割り当てる
BP_LiveLinkFaceをコピーして、カスタマイズして利用ください。
- VRoidモデル
- ある程度それなりに動作します。
- その他フルスクラッチのモデル
- VRMのBlendShapeGroupに登録された表情のみ動きます。
- 任意の表情を利用したい場合はノードを改変してください。(ノードは未整理です…
パーフェクトシンク(カスタムする場合は上級者向け)
LiveLinkFaceでキャプチャした表情を、キャラクタに適用します。ARKitのパラメータを全て利用します。パーフェクトシンクに対応したモデルが必要です。
モデル:QuQuオリジナルアバター “U” |
2つの利用方法があります。それぞれ以下のような特徴があります。
実装例は前述のサンプルマップ VRM4U_LiveLinkFace
に配置しています。
- 簡易的な方法
- セットアップが簡単
- MorphTargetの名前によっては 動かない場合がある
- 目線が動かない
- Editorでは動かない。Play状態で確認する
- フル機能使う方法
- セットアップが手間
- 全てのパラメータを利用できる
- Editorで動く
簡易的な方法
前述の BP_LiveLinkFace
より、Use ARKit Morph Curve Name
ONにすれば完了です。
上手く動かない場合は、後述のフル機能向けのセットアップが必要です。
フル機能使う方法
個別にBlueprintを作成します。
手順は以下です。/VRM4U/Util/Actor/latest にあるサンプルを参考に、2つのアセットを作成します。ノードをコピペして、要所を変更します。
工程が前後しますが、AnimBPを先に組むのをオススメします。アニメーションを確認しながら進められます。
- AnimBPを作成する
- 目的:ARKitパラメータをMorphTargetに適用し、ControlRigに接続する
- サンプル:ABP_VRoidPostProcess
- ControlRigを作成する
- 目的:頭の向きや視線を変更する。骨のアニメーションを制御する
- サンプル:CR_VRoidSimple_PostProcess
- SkeletalMesh の PostProcessAnimBlueprint を変更する。SkeletalMeshComponent の UpdataAnimationInEditorをONにする
- 目的:PlayIn/プレビューどちらでも動作できるようにする
赤丸で示した箇所について、設定忘れに注意ください。
AnimBPの作成 | ControlRigの作成 |
---|---|
PostProcessAnimBlueprintの設定 |
---|
仕組みの解説
- AnimBlueprintでやっていること
- LiveLinkFaceからパラメータ(カーブパラメータ)を受け取る
- POSE_face_ アセットを利用して、カーブ名をMorphTarget名にマッピングする(MorphTarget名がARKitと一致している場合は不要)
- カーブパラメータをControlRigに渡す
- 揺れ骨を設定する
- ControlRigでやっていること
- カーブパラメータを参照し、骨アニメーションさせる (首の向きと視線。視線がMorphTargetで動作する場合は不要)
ハンドトラッキング(上級者向け)
OculusQuestで認識した手と指を、キャラクタに適用します。
UE4.26以降で動作します。VRM4Uのビルド環境が必要です。
VRM4UのビルドについてはEXE化のページを参照ください。こちらのページです
VRM4Uのハンドトラッキングを有効化する
VRM4U.Build.cs
にて、bUseQuestTracking = true;
を設定し、プラグインをビルドしてください。
ハンドトラッキングする
以下のサンプルマップを利用ください。VRPreview
で頭と手・指が動きます。
Maps/VRM4U_Tracking
フェイシャルキャプチャを記録する(上級者向け)
前述のパーフェクトシンク向けのようにAnimBPを作成し、エディタ上でプレビュー可能(PlayInせずにキャプチャが動く状態)にすればOKです。 記録にはTake Recorderを利用します。詳しくは以下の解説を参照ください。
https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/