|
|
モデル:VRoidStudio プリセット組み合わせ |
概要
外部アプリからモーションキャプチャデータを受け取り、モデルにアニメーションを適用します。
Virtual Motion Capture Protocol(以下VMC Protocol)の紹介はこちらからどうぞ
使い方
対象のSkeletonよりAnimationBlueprintを作成し、VrmVMCノードを繋いでください。完了です。
AnimBPでVrmVMCノードをつなぐ |
|
補足
別PCやスマートフォンからのVMCを受信したい場合、VrmVMCノードに対象のIPアドレスを指定ください。
モデルが崩れてしまう場合、以下を確認ください。
- 送信元がVRM0を利用している場合、VrmVMCノードのIgnoreLocalRotation をONに変更する
- 送受信どちらも同じVRMモデルを利用する
以下は古い情報です
## ~~下準備&動作~~
動作にはEpic公式の`OSCプラグイン`が必要です。有効化し、エディタを再起動ください。
||
|-|
|[![](/VRM4U/assets/images/small/08a_plugin.png)](../assets/images/small/08a_plugin.png)|
サンプルマップ `VRM4U_VMC` を参照ください。
動作させる方法が3通りあります。
- 方法その1.(オススメ)
- BP_VrmReceiverにポート番号を指定、ServerListenボタンを押す。エディタモードのままアニメーションします。
- 方法その2.
- EUW_VMC を利用し、ServerListenボタンを押す。内部的には方法その1と同じ。
- 方法その3.
- BP_VrmReceiverにポート番号を指定、PlayInする。
|BP_VrmReceiverから起動|EUW_VMCから起動|
|-|-|
|[![](/VRM4U/assets/images/small/08a_server.png)](../assets/images/small/08a_server.png)|[![](/VRM4U/assets/images/small/08a_wbp.png)](../assets/images/small/08a_wbp.png)|
### ~~EUW_VMC 解説~~
`EUW_VMC` を右クリックより起動します。
正しく受信できた場合は、図のようにWidgetにログが表示されます。
全ての受信データを確認したい場合は、Widgetより `RawData` をOnにしてください。
|||
|-|-|
|[![](/VRM4U/assets/images/small/08a_wbp3.png)](../assets/images/small/08a_wbp3.png)|[![](/VRM4U/assets/images/small/08a_wbp2.png)](../assets/images/small/08a_wbp2.png)|
Widgetにポート番号が表示されない場合は、OSCプラグインを有効化してください。
{: .notice--info}
EUB_VMCTick について警告が出る場合は、EUB_VMCTickをレベル上に配置ください。
{: .notice--info}
### ~~AnimBPの解説~~
動かす対象モデルでAnimBPを作成し、アニムグラフにVrmModifyBoneListノードを追加します。
ノードには、以下の2つのデータをセットします。
- VRM4U_AnimationSubsystemのデータ。受信した骨情報です。
- インポート時に生成されたMetaデータ。モデルのHumanoid骨名リストです。
||
|-|
|[![](/VRM4U/assets/images/small/08a_node.png)](../assets/images/small/08a_node.png)|
----
## ~~詳細解説(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`ノードも追加ください。
[揺れ骨の解説はこちら](../01_animation/)
### ~~複数の外部アプリからのデータ受信~~
レベルに各種Receiverをを複数配置し、ポート番号を設定ください。それぞれデータが受信されます。
データの参照には、`VRM4U_AnimationSubsystem`へのアクセス時に、「ポート番号指定」または「通し番号指定」を利用してください。