はじめに
この記事ははるべえ様(@ruyo_h)が公開しているVRM4Uプラグインを使用してモーションキャプチャーをUE内で使用する記事です。
モーションキャプチャー VMC Protocolを受け取るの記事をやってみた内容になります。
ちょっとまえまでいろんなプラグインを入れたりUnityを経由しないといけなかったVMCを使用したモーションキャプチャーがめちゃめちゃ簡単になりました。みんなやろうず
またXR Animatorのちょっとした使い方解説になります。
いつもありがとうございます。VRM4Uフォーエバーラブ
環境
・UE5.3
・VRM4U_5_3_20240617
・XR-Animator_v0.18.0_windows
こういうことができるのの導入方法です
VRM4Uを導入する
VRM4UのGitページを開き、Releasesから2024年5月6日以降のものを使用するUeのバージョンに合わせてダウンロードしてください。
VRM4Uを導入したいプロジェクトのフォルダをエクスプローラーで開きます。
Uprjectが格納されているのとおなじフォルダにPluginという名前のフォルダを開き、解凍したVRM4Uを入れてください。
↓Fly_Gameという名前のプロジェクトに格納するとき
プロジェクトを開くとプラグインにVRM4Uが追加されているはずです
VRMモデルを追加する
VRMをインポートするとこのようなポップアップが出るので、好みに合わせて設定しインポートします。
AnimationBPを作成する
インポートしたVRMモデルにアニメーションBPを作成し、次のようなノードをつなげます。
UE側の準備はこれで完了です。
XR Animatorを使う
XR AnimatorはWebカメラや動画からの画像認識でモーションキャプチャーを行い、VMCプロトコルでモーションを送信できるアプリです。同じような事ができるアプリは他にTDPTなどがあります。
[XR Animator]
(https://booth.pm/ja/items/4513654)はBoothからダウンロードできます。
開くとバックが透明なアプリが開きます。
もしUnityちゃんではなくオリジナルのVRMを使用したい場合、このページでVRMをアプリに直接ドラッグ&ドロップしてください。
Startを押すと、こんな感じの画面が開きます。
Motion Captureを設定
Theモーションキャプチャーといった感じのイラストを押して開きます。
どこをキャプチャするか選ぶことができます。
1.顔のみ
2.体のみ
3.体と手
4.顔と体
5.全身(顔+手+体)最新版
6.全身(顔+手+体)レガシー
7.オプション(LegIK)など
8.キャンセル
1~5のどれかを選んでおけばひとまず動くので用途に合ったものを選んでください。
メディアソースを設定
1.Yes (ソースを使う)
2.Yes (ソースを反転して使う)
3.No (キャンセル)
4.オプション(ソースの画質のリミッターなどの設定)
1か2のどちらかを選んでください。
Yesを選ぶとソース選択に進みます。
・自分のつなげているウェブカメラ
・ローカルメディア(動画)を使用
・キャンセル
もし動画をメディアソースとして使用したい場合、動画を直接ドラッグ&ドロップしてください。
左上に表示が出たらインポートできているので、Local Media Fileから動画をソースに選ぶことができます。
Poseを選ぶ
全身をトラッキングする場合設定しなくても問題ありませんが、上半身だけ使用するときなどは変更する必要があります。
1.立ちモーション(全身)
2.立ちモーション(上半身のみ)
3.スタンバイ(足を開く?)(上半身のみ)
4.ハッピーアイドル(リズム取ってるような動きをする)(上半身のみ)
5.I字バランス(手と上半身の一部のみ)
6.足組み座り(上半身のみ)
7.体育座り(上半身のみ)
8.片膝立て座り(上半身のみ)
9.足組み座り2(上半身のみ)
用途に応じて選んでください。
VMCを動かす
VMCと書かれたボタンを選択します。
portは特に理由がなければ設定せず問題ありません。
ポートはアニメーションBPのPortの数字と一致している必要があります。
1.VMC-ProtocolをクリックしてONにするとVMCの送信が開始されます。
UEに戻るとキャラクターが連動して動いているはずです。
これであなたもUEでVtuber!
アニメーションを保存する
TakeRecorderを使用することで大抵の動きは録画することができます。
ウィンドウ→シネマスティックからTake Recorderを選びます。
タブが開くので今回はAnimationBPを再生しているSkeletalMeshをソースに追加します。
シミュレートなどを行った状態で左上の赤い録画ボタンを押すと、3秒後から撮影が始まります。
いい感じに撮影して停止すると、Cinematics→Take→日付の中に撮影したデータがシーケンサー形式で保存されています。
SkeletalMeshでアニメーションを行った場合、Animation形式で保存されます。
UE内でモーションキャプチャーからアニメーションが撮影できました!
グリーンバックとかで撮影すればOBSなんかで合成もできます。やったね