モデル: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へのアクセス時に、「ポート番号指定」または「通し番号指定」を利用してください。