モーションキャプチャ(VMC Protocol)を受け取る
モデル:VRoidStudio プリセット組み合わせ |
概要
外部アプリからモーションキャプチャデータを受け取り、モデルにアニメーションを適用します。
この機能はタフな動作チェックを行っていません。 うまく動作しない場合は、はるくさん開発のVMC4UEの利用もご検討ください。
Virtual Motion Capture Protocol(以下VMC Protocol)の紹介はこちらからどうぞ
下準備&動作
動作にはEpic公式のOSCプラグイン
が必要です。有効化し、エディタを再起動ください。
サンプルマップ VRM4U_VMC
を参照ください。
動作させる方法が3通りあります。
- 方法その1.(オススメ)
- BP_VrmReceiverにポート番号を指定、ServerListenボタンを押す。エディタモードのままアニメーションします。
- 方法その2.
- EUW_VMC を利用し、ServerListenボタンを押す。内部的には方法その1と同じ。
- 方法その3.
- BP_VrmReceiverにポート番号を指定、PlayInする。
BP_VrmReceiverから起動 | EUW_VMCから起動 |
---|---|
EUW_VMC 解説
EUW_VMC
を右クリックより起動します。
正しく受信できた場合は、図のようにWidgetにログが表示されます。
全ての受信データを確認したい場合は、Widgetより RawData
をOnにしてください。
Widgetにポート番号が表示されない場合は、OSCプラグインを有効化してください。
EUB_VMCTick について警告が出る場合は、EUB_VMCTickをレベル上に配置ください。
AnimBPの解説
動かす対象モデルでAnimBPを作成し、アニムグラフにVrmModifyBoneListノードを追加します。
ノードには、以下の2つのデータをセットします。
- VRM4U_AnimationSubsystemのデータ。受信した骨情報です。
- インポート時に生成されたMetaデータ。モデルのHumanoid骨名リストです。
詳細解説(UEの操作に慣れてる人向け)
OSCの受信データを見る (ブレンドシェイプ、トラッカー)
サンプルマップのAnimBPを参照ください。 VRM4U_AnimationSubsystem内にある、受信データから検索します。
- ブレンドシェイプを見たい場合
- 文字列
/VMC/Ext/Blend/Val:Blink
などで見つかります。
- 文字列
- トラッカーを見たい場合
- 文字列
/VMC/Ext/Tra/Pos:LeftHand
などで見つかります。
- 文字列
その他の受信データの詳細は、Widgetより RawData
をOnにして確認ください
マップ上で直接プレビューする仕組み
OSCサーバのEditorTick
を有効化しています。
これはEditorUtilityからのみアクセス可能なので、EUB_VMCTick というActorを経由しています。
また、SkeletalMeshのUpdate Animation in Editor
をONにしています。
揺れ骨を適用する
揺れ骨を適用する場合は、AnimBlueprintにVRMSpringBone
ノードも追加ください。
揺れ骨の解説はこちら
複数の外部アプリからのデータ受信
レベルに各種Receiverをを複数配置し、ポート番号を設定ください。それぞれデータが受信されます。
データの参照には、VRM4U_AnimationSubsystem
へのアクセス時に、「ポート番号指定」または「通し番号指定」を利用してください。