「VRChat(Steam版)でフルボディトラッキングしたいけど、機材が高すぎて手が出ないよ!」
そんなあなたに、無料ソフトを組み合わせて、Webカメラ1つでフルボディトラッキングを試す方法をお伝えします。
先にお伝えしてきますが、トラッキングデバイスを使用したときほどのトラッキング精度はありません。
また、「カメラで認識」→「仮想トラッカーに転送」という流れで行うため、動作に多少のラグが発生します。
ラグのため、動画利用は厳しいですが、写真用にポーズを取るくらいには使えると思います。
実際にWebカメラ1つでフルトラを試した動画
(頭・両手・腰・両ひざ・両足の8点トラッキング)
なお、今回の記事は 「Webカメラ1つでフルボディトラッキング」ネタの第2弾です。
もし興味がありましたら、第1弾の記事もご覧いただければと思います。
必要な機材、ソフトウェア
必要な機材は次の通りです。
- VRゴーグル
- ハイスペックのパソコン
- Webカメラ(全身を映す必要があるので、画角広めのカメラを推奨)
私の環境は次の通りです。
【VRゴーグル】Meta Quest 1(VDでパソコンに接続)
【パソコン】CPU:Intel Core i7 8700 / メモリ:16GB / グラフィックボード:RTX2060
【Webカメラ】ロジクール C922n
【部屋の広さ】Webカメラと立ち位置まで約2m
続いて必要なソフトウェア、全て無料で配布されています。
- TDPT -Three D Pose Tracker-(以下「TDPT」)
- Webカメラだけでフルボディトラッキングが可能な神ソフトです!
- ダウンロードにはpixivのアカウントが必要です
- 本記事では「v0.5.1」を使用
- バーチャルモーショントラッカー
- StermVRへ仮想トラッカーを追加する神ソフトです!
- 本記事では「vmt_015」を使用
- TDPToVR
- TDPTで作成されるアバターのボーン情報を受け取って、仮想トラッカーに転送する神ソフトです!
- ダウンロードにはpixivのアカウントが必要です
- 本記事では「v2021_1122β」を使用
TDPTとSteamVRの連携
まず「TDPT」、「バーチャルモーショントラッカー」、「TDPToVR」を設定し、SteamVRに仮想トラッカーとして表示されるところまで準備します。
TDPT
ダウンロードしたzipファイルを解凍し、「ThreeDPoseTracker.exe」を実行します。
起動すると次のような画面が表示されます。
次の通り、設定を変更します。
- 上部メニュー右のほうにある「Configuration」をクリック
- 「Other」タブを選択
- 「Send VMC Protcol」にチェックを入れる
- 送信ポートを「38900」(TDPToVR の指定ポート)に変更
- 「OK」をクリックして設定画面を閉じる
続いて、左上の「Source Device」から使用するWebカメラを選択します。
選択したら、Webカメラに全身が映る位置へ移動して、身体を動かしてみましょう。
この時点で「アバターの動きがおかしくないか」を確認してください。
なお、TDPTでのアバターは「動きが正しく認識されているか」の確認にしか使いませんので、VRChatで使用するアバターと異なっていてもOKです。
服装と背景に注意
TDPTの説明によると、姿勢を正しく認識させるには、次の条件がよいとのことです。
- カメラには一人で中心近くに映る
- 全身を映す
- 背景はシンプルにする
- 服装もシンプルにする
(背景色と異なる色のズボンとTシャツで体形がはっきりわかる服装が良い)
バーチャルモーショントラッカー
ダウンロードした「VirtualMotionTrackerSetup_0.15.exe」を使い、バーチャルモーショントラッカー(以下「VMT」)をインストールしましょう。
VMTのインストールが完了したら、VMTを起動する前にSteamVRを起動しておきます。
SteamVRホームはオフに!
この先、何度かSteamVRを再起動することになります。
起動のたびにSteamVRホームを呼び出すことになりますので、一時的にでも無効化しておくことをオススメします。
また、仮想トラッカーの位置調整をする際にも、SteamVRホームがジャマになりますので、やはり無効化しておくことをオススメします。
SteamVRホームも無効化手順は次の通りです。
- SteamVRの設定画面を開く
(VR内の「歯車」マークでも、パソコン側のSteamVRの「三」マークからでもOK) - 詳細設定を「表示」に切り替える
- SteamVRホームを「オフ」にする
起動すると、次のような画面が表示されます。
「Install」をクリックしてしばらく待ちます。
正常にインストールできれば、次のようなポップアップが返ってくるので、「OK」を押します。
ポップアップに従い、「SteamVRを再起動」します。
またVMTも一度右上の「×」で閉じて、もう一度起動します。
インストールに成功していれば、VMTの下部に「1:Room Matrix has not been set.」という警告メッセージが表示されます。
「RoomSetup」タブに移動し、「Set Room Matrix」ボタンを押します。
「Set RoomMatrix Done.」という表示が返ってくるので、「OK」を押します。
VMTの下部に「0:OK」というメッセージが表示が出ていればVMTの準備は完了です。
TDPToVR
ダウンロードしたzipファイルを解凍し、「TDPToVR.exe」を実行します。
起動すると、次のような画面が表示されます。
次の順番で操作し、TDPTとTDPToVRを連携させます。
- 左上の「Start Recive」をクリック
- 右上の「None」を「Pose processing time」に変更する
- StatusMessage に Root-Pos [OK] と出ていることを確認する
続いて次の順番で操作し、SteamVRに仮想トラッカーを表示させます。
(この先のTDPToVRの操作は、SteamVRメニューバーの左の方にある「デスクトップ」から行うと、VRゴーグルを着けたり外したりせずに済みます)
- SteamVR上のSteamVRメニューバーより、「Recenter」をクリックし、原点を自分に合わせる
- TDPToVRの右上を「Offset」に変更
- 「Height」に自分の身長(m)を入力
- 「Calibrate」を押す
上記操作の後、次の2点を確認してください。
- TDPToVR上の10個のキューブが、自分の姿勢に合わせて動くこと
- SteamVR上に仮想トラッカーのキューブが3個出現していること
(変な場所に出ていることもあるので、よく探してください!)
それぞれのキューブが確認できれば、TDPTとSteamVRの連携は完了です。
仮想トラッカーの調整
SteamVR上の3個の仮想トラッカーを調整して、腰・右足・左足の動きに連動するようにします。
仮想トラッカーの番号の割り当て
TDPToVRで設定されているトラッカー番号と、SteamVRで設定されている仮想トラッカーの割り当てが合致しているか確認しましょう。
先にTDPToVR上で、身体のどこの部位が何番のトラッカーになっているかを確認します。
TDPToVRの右上を「Virtual Motion Tracker」に変更します。
表示されている番号が、その部位の仮想トラッカー番号になります。
例えば下図の場合、腰(Hip)が「仮想トラッカー10番」、左足が「11番」、右足が「12番」に割り当てられていることになります。
上図の通り、ひざやひじを追加して、10点トラッキングを行うことも可能です。
調整に慣れてきたら、仮想トラッカーを増やしてみるとよいでしょう。
続いてVR上で、何番の仮想トラッカーがどこの部位に割り当てられているかを確認します。
次の順番で操作して、トラッカーの管理画面を開きます。
- VR上のSteamVRメニューバーから「設定」をクリック
- 左のメニューより「コントローラ」をクリック
- 中央のメニューより「トラッカーの管理」をクリック
「/device/vmt/VMT_xx」と表記されているトラッカーが、バーチャルモーショントラッカーで表示されている仮想トラッカーです。
先ほどTDPToVRで確認した番号に従い、次の通りに設定をします。
- /device/vmt/VMT_10 → トラッカーの役割:腰
- /device/vmt/VMT_11 → トラッカーの役割:左足
- /device/vmt/VMT_12 → トラッカーの役割:右足
仮想トラッカーの位置調整
SteamVR上の3個の仮想トラッカーを、自分の腰・右足・左足の位置に合うよう動かします。
TDPToVRの右上を「Offset」に変更します。
Offset X(左右)・Y(上下)・Z(前後) の値を変更して、SteamVR上で仮想トラッカーがよく見える位置に来るよう動かします。
(もし、この段階で仮想トラッカーが自分の腰・右足・左足に合っているようであれば、動かす必要はありません)
「↑」「↓」を使うと、値を 0.1ずつ変更することが出来ます。
(下にある「Step 0.01」をクリックすれば 0.01ずつ変更できます)
仮想トラッカーがよく見える位置に来たら、このタイミングで仮想トラッカーの向きが合っているかを確認しましょう。
右足か左足を前後に動かして、トラッカーが同じ方向に動くか確認してください。
もし前後が逆に動くようであれば、TDPToVRの「Rotation」から仮想トラッカーを180度近く回転させ、正しい動きになるよう調整してください。
(SteamVR上の仮想トラッカーを見失わないようにご注意してください)
同様に右足か左足を左右に動かして、トラッカーが同じ方向に動くか確認してください。
もし左右が逆に動くようであれば、TDPTの「Configuration」を開き、「Images」タブの「Mirror Mode」のチェックを反転させます。
仮想トラッカーの動きが、自分の動きと同じように動くようになったことを確認します。
仮想トラッカーの動きに問題がなくなったなら、引き続きOffset X・Y・Z の値を変更して、VR上で仮想トラッカーが自分の腰・右足・左足の位置に合うよう動かします。
この時、基本的には「腰のトラッカーが腰の位置に合うこと」を基準に調整をします。
コントローラーを腰の前に構え、腰の仮想トラッカーが重なるように調整すると分かりやすいです。
もし腰の仮想トラッカーの位置が高すぎたり低すぎたりした場合は、TDPToVRの右上を「Offset Y」や「Height」の値を変更して調整してください。
どちらを変更するかは、足の仮想トラッカーの位置で判断します。
腰の仮想トラッカーと足の仮想トラッカーの位置が、身体の腰と足の距離感とちょうど合っているようであれば「Offset Y」を変更します。
身体の腰と足の距離感とズレている場合は、「Height」を変更します。
VRChat内でキャリブレートする
仮想トラッカーの調整が終わったら、VRChatを起動して、VRChat内でアバターとトラッカーの位置を調整します。
メニューを開いて、「Calibrate FBT」を選択します。
(FBT……フルボディトラッキング)
目の前にアバターがTポーズで現れ、仮想トラッカーが白い球で表示されます。
腰・両足を示す白い球が、アバターとちょうどいい位置に重なるよう、TDPToVRで最終調整します。
調整が完了したらVRCに戻り、仮想コントローラとアバターの両手が重なるところで、両コントローラのトリガーを引くとキャリブレート完了です。
上図は8点(+両ひざ)でトラッキングしてます!
下の方に見えてる白い球は、足ではなく両ひざの仮想トラッキングです!
キャリブレートが完了したら、アバターの動きに問題が無いか確認しましょう。
頭と両手のコントローラと、仮想トラッキングで動きにタイムラグが発生しますが、仕様です。
アバターの動きに問題がなければ、仮想トラッカーによるフルボディトラッキング化作業は完了です!
好きなワールドに遊びに行きましょう!
もし身体を動かすとアバターがネジれたりするようであれば、以下の点を確認してみてください。
- SteamVRのトラッカー登録と、TDPToVRのトラッカー割当てが誤ってないか?
- 仮想トラッカーの前後や左右が間違ってないか?
フルボディトラッキングはやっぱり楽しい!
「TDPT」と「バーチャルモーショントラッカー」と「TDPToVR」を組み合わせて、Webカメラ1台でフルボディトラッキング環境を作成する方法を解説しました!
すでに高性能なパソコンを持っているのであれば、もっとも安価にフルトラ環境を作成する方法かと思います!
Webカメラ1台でフルトラ環境が作成できるとは、すごい時代になったものです。
それを実現できるソフトを作った方々、そしてそれを無料でダウンロードできる状態で公開いただいていることには、感謝しかありません。
導入でも話しましたが、今回の方法にはラグという欠点があります。
なので動画目的での使用はかなり苦しいところがありますが、いろんなポーズで写真を撮ることには十分使えるかと思います!
また、すでにトラッカーを使った6点フルトラをされている方なら、仮想トラッカーを2つ追加して8点フルトラにする……なんて使い方も出来るかと思います。
どんな方法にせよ「ラグ」が発生してしまいますので、「ラグ」のない環境が欲しくなったときが、いよいよ「VIVEトラッカー」なり、「mocopi」なりを購入するときです!
ASMR音声は「耳で楽しむVR」(無料作品もあります)
\ バイノーラル録音のASMRで存在を感じよう♪ /
『ぼっち・ざ・ろっく』後藤ひとり 役 青山吉能さん出演のASMR。
自分だけに話しかけてくれる吐息に耳がゾクゾクします。