見出し画像

スマホとトラッカーでmocopiみたいにフルトラする方法

今回は安価にかつ既に持っている機材でフルトラできないか考えてみました。余ったスマホとVRトラッカー、Leapmortionを組み合わせフルトラッキングを行う方法を紹介したいと思います。

主に3Dで活動するVtuberに向けての記事となっておりVRSNSでは使えない為ご注意ください。VseeFace、Vroom、Unity、UE5などでのモーションキャプチャーを目的としています。

実際にセットアップを行うと動画のようにモーションキャプチャーを行うことができます。


注意事項
※各トラッカーの初期セットアップ、LeapMortionやWebカメラモーションキャプチャ、iFacialMocap、MeowFace初期セットアップは各自で行ってください。

※トラッカーを新たに追加する為次回VR機器で遊ぶ際に干渉する場合があります。対処方法も記載しておりますのでよく読んでセットアップしてください。

必要な機材

  • 頭用 
    ARcore/ARkitに対応したスマートフォン

  • 下半身用 
    VRトラッカー 最低5点 
    (ハリトラ、Unimotion、Xinトラッカー、SlimeVR、Joycon、スマホでも代用可)

  • 腕用 
    LeapMortion又はWebカメラモーションキャプチャ
    トラッカーの追加も可能だと思います。

  • 表情用 
    パーフェクトシンクもする方はもう1台スマホが必要になります

必要なソフトウェア

ARcore/ARkitについて

フルトラをする上で重要なのがヘッドトラッカーです。各トラッカーの位置の基準や上下左右の移動の為ヘッドトラッカー自身の位置推定が必要となります。
スマホのARcore/ARkitを使用し、カメラから取得した情報で自己位置推定を行います。

もしARcore/ARkitに対応したスマホがないよって方はiPhone6Sでも十分トラッキング出来ることを実証していますので検討されては如何でしょうか。

ARcore対応スマホ一覧

ARkit対応スマホ一覧

頭用トラッカーセットアップ方法


スマホは覗かずにおでこに固定し使います。以下のような器具があると楽に装着できます。iVRy無料版では5分後にモノクロ画面になりますがトラッキングや接続は続行されます。

①スマホにiVRyをインストールする

②iVRyの設定で6DOFを有効にする

③iVRy Driver for SteamVRをインストール

④スマホのiVRyとiVRy Driver for SteamVRを起動。スマホにSteamVRホーム画面が表示されれば接続成功。WiFi、USBどちらでも接続できます

⑤SteamVRルームセットアップを行う

0の所に170と入力する

これで頭のセットアップは終わりました。次に下半身トラッキングの設定を行います。

※次回オキュラスなどVR機器を使う際にiVRy Driverが干渉する場合があります。
SteamVRのスタートアップ設定のアドオンの管理からiVRyを無効にしてください

下半身用トラッカーセットアップ方法

使うトラッカーによって多少セットアップ方法が変わります。
それぞれトラッカーの初期セットアップは完了した状態を前提とします。

Unimortion、ハリトラ、Xinトラッカーなど市販品の場合はVMCを使いトラッカーの割り当て、キャリブレーションを行います。(VMCは手がないとキャリブレできない為、SlimeVRserverを使ってSteamVRに手を追加します。)

SlimeVRトラッカー、Joyconトラッカー、スマホトラッカーはSlimeVRserverでトラッカーの割り当て、キャリブレーションを行います。

Unimotionの場合

​ベータ版 Uni-studioバージョン1.1.2beta5を使用してください。

①スマホでiVRyを立ち上げ装着する。次にUni-studioを起動(この時iVRy Driver for SteamVRは自動で起動する)

②Uni-studioの設定を以下のように変更する。
(UnistudioのVMCプロトコルは使いません。無効にしてください)

トラッキング基準デバイスをHMDにする
詳細キャリブレーションを有効にする、身長の手動入力を有効にして自分の身長を入力する。
仮想トラッカーを有効にする

③IポーズSポーズキャリブレーションを行う

この時、Unistudioのアバターが地面に埋まったりするがそのままキャリブレーションを行う


ここまでできればUnistudioの設定は完了

④VMCキャリブレの為に仮想の手トラッカーを用意する
SlimeVRをインストール、起動後設定にてsteamVRトラッカーの手を有効にする。初期状態は腰と足が有効になっているが無効にする。

手を有効にするとSteamVRにSlimeVRトラッカーが2個出現する

⑤SteamVRの設定トラッカーの管理から追加したトラッカーの役割をハンドヘルドにして左右に割り当てる。

※ハンドヘルドを有効にするとオキュラスなどVRを行う際にコントローラーが反応しなくなる為その際はトラッカーの役割を無効にする。

SlimeVRのセットアップは完了です。

⑥バーチャルモーションキャプチャーの設定。
VRMファイル読み込み後、設定のOSCでモーション送信を有効にするをチェック、VseeFaceに送信するポート番号を入力。例37900
トラッキングロスト、モデル調整は今回チェックは外しました。

⑦トラッカーの割り当てを行う。以下の通りに設定してください。

⑧キャリブレーションを行う。(Iポーズ)

モデルに対してトラッカーの丸がかなりズレますがそのまま直立で行ってください。

この時手のトラッカーを割り当てていなかったり頭ををivryに割り当てないとエラーになります。

⑨VseeFaceを起動
VseeFaceの設定でOSC/VMCプロトコル受信にチェックを入れる
ポート番号は先ほどVMCで設定した番号を入力
VseeFaceトラッキング使用は頭と首、背骨と胸、下半身はチェックを外す

⑩パーフェクトシンクを使う場合はiPhone/ARkitからトラッキングを受信にチェックを入れる。MeowFaceを使えばAndroidでもパーフェクトシンクが可能です。

⑪LeapMortionの設定。首にかけて使う場合は位置は胸ではなく、胸(動きに合わせない)を選択。

⑫お好みでVroomやUnity、UE5のモーションを送信して下さい

ハリトラの場合

①スマホでiVRyを立ち上げ装着する。iVRy Driver for SteamVRを起動後HaritoraCongiguratorでキャリブレーションを行う。設定も参照してください。
画像提供 @kanae_kawamiya

iVRy Driver for SteamVRとハリトラ起動画面


設定画面1
設定画面②
キャリブレーションを行う。
キャリブレーション後

②VMCキャリブレの為に仮想の手トラッカーを用意する
SlimeVRをインストール、起動後設定にてsteamVRトラッカーの手を有効にする。初期状態は腰と足が有効になっているが無効にする。


手を有効にするとSteamVRにSlimeVRトラッカーが2個出現する

③SteamVRの設定トラッカーの管理から追加したトラッカーの役割をハンドヘルドにして左右に割り当てる。

※ハンドヘルドを有効にするとオキュラスなどVRを行う際にコントローラーが反応しなくなる為その際はトラッカーの役割を無効にする。

④バーチャルモーションキャプチャーの設定。
VRMファイルを読み込み後設定のOSCでモーション送信を有効にするをチェック、VseeFaceに送信するポート番号を入力。例37900
トラッキングロスト、モデル調整はトラッキング状況に合わせて設定してください。

⑤トラッカーの割り当てを行う。以下の通りに設定してください。

⑥キャリブレーションを行う。(Iポーズ)

モデルに対してトラッカーの丸がかなりズレますがそのまま直立で行ってください。
この時手のトラッカーを割り当てていなかったり頭ををivryに割り当てないとエラーになります。

⑦VseeFaceを起動
VseeFaceの設定でOSC/VMCプロトコル受信にチェックを入れる
ポート番号は先ほどVMCで設定した番号を入力
VseeFaceトラッキング使用は頭と首、背骨と胸、下半身はチェックを外す

モデルやSteamVRの画面が異なりますが気にしないでください。

⑧パーフェクトシンクを使う場合はiPhone/ARkitからトラッキングを受信にチェックを入れる。MeowFaceを使えばAndroidでもパーフェクトシンクが可能です。

⑨LeapMortionの設定。首にかけて使う場合は位置は胸ではなく、胸(動きに合わせない)を選択。

⑩お好みでVroomやUnity、UE5のモーションを送信して下さい

SlimeVR、Joycon、スマホの場合

SlimeVR作成&セットアップ方法

Joyconトラッカーセットアップ方法

スマホトラッカーセットアップ方法

①SlimeVRをインストール
How to useのURLからダウンロード

https://github.com/SlimeVR/SlimeVR-Server

②トラッカーの電源を入れ、iVRy Driver for SteamVRとSlimeVRを起動

SlimeVR起動画面各トラッカーとivryも頭として認識されている

③SlimeVR設定から言語を変更、SteamVRのトラッカーはすべて無効にする

言語は設定を一番下までスクロールするとあります

④VMCを有効にする。VRMモデルを読み込む。なるべくVseeFaceなどと同じモデルを使う。Ancher at hipsを無効にする。
VseeFaceに送信する為のportoutを指定する 例37900

VRMモデルをロードしないとVseeFaceに送信しても移動できないので注意

⑤ホームに戻り、IMUトラッカーを選択割り当ての編集を押す

⑥腰、膝、足にトラッカーを割り当てる。ホームで装着したトラッカーを揺らすと反応するので割り当てを間違えないようにしてください。


全て割り当てた状態

⑦マウントキャリブレーションを行う

自動マウントを選択
全てのトラッカーを装着しましたをクリック
直立、足を開かずにリセットを押す
少ししゃがみリセットを押す

SlimeVRのセットアップは完了です。

⑧VseeFaceの設定でOSC/VMCプロトコル受信にチェックを入れる
ポート番号は先ほどSlimeVRserverで設定した番号を入力
VseeFaceトラッキング使用は頭と首、背骨と胸、下半身はチェックを外す

⑨パーフェクトシンクを使う場合はiPhone/ARkitからトラッキングを受信にチェックを入れる。MeowFaceを使えばAndroidでもパーフェクトシンクが可能です。

⑩LeapMortionの設定。首にかけて使う場合は位置は胸ではなく、胸(動きに合わせない)を選択。

⑪お好みでVroomやUnity、UE5のモーションを送信して下さい。

まとめ

設定の難易度が高いかもしれませんが、3D空間を自由に動けるのは楽しいです。比較的安価で何よりモニターを見ながらマウス、キーボードを操作できるのはありがたいです。余ったスマホでヘッドトラッキングを行い、メインのスマホでパーフェクトシンクもできるなどメリットはかなり大きいと思います。

是非今回の記事を見てフルトラやってみたよーって方いましたらツイート頂けると嬉しいです。
また、課題はありますがVRがなくてもフルトラを始めることができる為、個人的には市販トラッカーの販売促進にも繋がればいいなと考えております。

これからも霧雨なのはは3Dで活動するVtuberへの技術的な支援を行います。微力ながら界隈を盛り上げていけたらと思っておりますので応援のほどよろしくお願い致します!


この記事が気に入ったらサポートをしてみませんか?