見出し画像

【OculusQuest】BeatSaberのアバター合成

Oculus Questを購入してやってみたかったのがBeatSaberでのアバター合成です。こんな感じのやつです。

購入当時はOculusQuestでは無理という結論に至り断念しましたが、時間が経ちOculusQuestでも出来そうなことが発覚したので今更ながら改めて挑戦しました。


アバター合成の方法

・Virtual Motion Capture を使う
・MOD の Custom Avatar を使う(Beat Saber専用)

BeatSaberまとめWikiによるとアバター合成には上記2つの方法があるらしい。私の場合VRM形式のオリジナルのアバターを使いたかったので前者を採用。

必要なもの

ハード
・パソコン
・Oculus Quest
・ケーブル(type-C to USB3.0)¥2700 ※
 ※値段はものによる。私は5mのケーブルを購入。

ソフト
・[パソコン] Oculus Link 無料
・[パソコン] Virtual Motion Capture (VMC)
・[パソコン] OBS 無料
・[Steam] Beat Saver ¥3090
・[Steam] LIV APP (ver2.1.6) 無料

ファイル
・VRM形式のモデル


まずは原理を理解

色々なソフトを使って実現するため、それぞれがどんなことをしているのかを初めに軽く理解しておいたほうがトラブルシューティングしやすいので図解します。

「OculusQuest」というのはそもそもスタンドアローン型のデバイスであり、ワイヤレスでそれ単体で遊ぶことができるというものです。今回はそれをわざわざパソコンに繋ぎ様々なソフトを使ってアバターを合成できるようにしていきます。

画像15


人の動きをトラッキングしてアバターに反映するソフト(VMC)と、そのアバターをゲーム空間に合成するソフト(LIV)を使って合成画像を作り出します。それを配信ソフト(OBS)で録画します。

画像17

それでは実際にセットアップしていきましょう。


OculusQuestをOculusRiftにする

Oculus Link
「Oculus Quest」をパソコンに繋いでPC用VRデバイスとして使えるようにするソフト

1. OculusのサイトからOculusLinkをダウンロード
2. ソフト起動
3. facebookログイン
4. セキュリティ設定(私は全部自分のみ ここは好みで)
5. VRダウンロード?
6. ヘッドセットを選択してください Quest
7. ヘッドセットを接続 usb3.0で繋ぐことを推奨(2.0でもいける)
8. ケーブル接続を確認してください ケーブルテストを実行
9. 設定完了

これでOculus QuestがOculus Riftとして使えるようになりました。
OculusQuestを起動、設定からOculusLinkをオンにするとOculusRiftのホーム画面にいくことができます。


SteamのBeatSaberを購入

BeatSaber
迫りくるブロックをライトセイバーのようなもので切り付けるリズムゲーム

PC版(Steam版)のBeatSaberを購入します。
購入はパソコンからでも、HMD上でも、どちらでもかまいません。

OculusストアのBeatSaberではなくSteamVRのBeatSaberを買います。OculusQuestでBeatSaberをすでに購入している人もアバター合成するためには新しくSteam版のBeatSaberを買わないといけません。

※もしかするとOculusのBeatSaberでもやれる方法があるのかもしれませんがLIVでLaunchする際にゲーム選択でOculusのBeatSaberが出てこなくてできませんでした。SteamVR内のアプリでOculusのソフトを起動することはできないのかもしれません。Oculus内にもLIVアプリがもしあればそれを使えば出来るのかもしれません。このあたりについて理解が弱く、OculusQuest版、OculusRift版?、Steam版と、3つも買うことになってしまいました。


VirtualMotionCaptureの設定

VirtualMotionCapture(通称VMC)
VRM形式の3Dモデルファイルを読み込み3点~10点でトラッキングして自分と同じ動きをさせるソフト

1. VirtualMotionCaptureをダウンロート
※無料版でも今回やりたいことは実現できますが最高アプリなので是非支援してあげてください。

2. ダウンロード後、プログラムを起動。
※「このアプリを実行すると、PCが危険にさらされる可能性があります」と警告が出ますが無視して実行。自己責任です。

3. モデルを読み込む
コンソールパネルから「VRM読込」を選択「同意して読込」をします

画像1

4. 詳細設定をします
参考画像の通りに設定をしていきます

画像2

画像3

4-1. Virtual Motion Tracker(VMT)をインストールします
インストールを押してインストール後に「有効」にチェック

4-2. 仮想Webカメラをインストール
インストールを押してインストール後に「仮想Webカメラを有効にする」にチェック

4-3. LIV向けextuernalcamera.cfgの書き出し
ボタンを押して任意の場所にファイルを書き出します。あとでこのファイルをLIVに読み込ませます。

4-4. 解像度の設定
こちらは任意のサイズで問題ありませんがLIVで合成画像を書き出すときに選択するサイズと必ず合わせてください。

5. カメラの設定をします
任意のカメラ位置を設定します。これが合成した際の画角になります。ななめ後ろからノーツとモデルの後姿全体が映るようにしたければ、フリーを選択し、右クリック、ALT+右クリック、ホイールクリックなどでカメラ位置を調整します。こちらはLIVを起動して合成画面を見ながら後で調整できます。

画像7

6. 背景色を選択
背景色を選択します。LIV側ではこの色を指定して透過させます。モデルで使われていない色を選択しておきます。

画像12


7. キャリブレーション
3Dモデルが実際の人の動きに追従させるための作業です。
OculusQuestをOculusRiftとして起動し装備します。

MR合成モード(手の位置をなるべく合わせて足は真っ直ぐ伸ばす)を選択しキャリブレーションを行います。これで自分の動きとモデルが自分の動きと合わせて動くようになればオッケーです。OculusQuestの場合、頭、右手、左手が3Dモデルの動きにリンクします。

画像4


トラッカーがない足は、地面に固定される場合と固定されずプラプラする場合があり、これがよくわからない。キャリブレーションの正しいやり方がよくわかってないかも。毎回一回目のキャリブレーションの時は、足が固定せず動くような気がするが気のせいかも。

8. 設定を保存
保存しなくても起動時に次回の設定が引き継がれている気がしますが念のため設定を保存しておくと安心です。キャリブレーション以外のデータが保存されます。


LIVの設定

LIV
ゲーム画面と実写を合成するためのソフト

LIVは本来はグリーンバックの実写映像を合成するためのものですが、今回は実写の変わりにVMCで出力した映像を合成させます。

1. LIVをSteamでダウンロードします
2. LIVを起動し「LAUNCH CAPTURE」を選択

画像5


3. カメラを追加
「CAMERA」を選択し、左のプラスマーク「Add」を選択し新しいカメラを作ります

画像7


4. カメラを設定
・Type「Video Camera」
・Device「VMC_Camera」
・サイズはVMCに合わせて任意
・Profile Nameは任意。「VMC」など

画像8


5.  CALIBRATIONの設定
・Detail にチェックを入れる
・ImportでVMCで書き出したextuernalcamera.cfgを読み込む
・Trackerで「VMT_50 VMT_50」を選択

※VMT_50 VMT_50が選択肢に出てこないことがあった。VMC側の詳細設定のVirtual Motion Tracker(VMT)をアンインストールし再度インストールするなどで色々やってるうちに出てくるようになった

画像9


6. 背景透過
CAMERAのKEYINGでColorをVMCで設定した背景と同じ色を選択します。
Threshold、Smoothnessは、合成画像をみて必要があれば設定を変える。
全ての設定が終わったらSaveを押して保存します。

画像11

7.  ゲームを立ち上げます
・CAPTUREを選択しBeat Saberを選択
・Target ResolutionはVMCで設定した解像度と必ず合わせる
・Sync&Launchをクリックし合成を開始します

画像10


ゲームが起動し、LIVの画面にアバターと合成されたゲーム画面が映ります。この状態でVMCのカメラを調整しても即時この合成画面に反映されるので必要ならば調整をしていきます。

画像13


合成画面を録画

Windows10標準搭載のゲームキャプチャ(Windows + G)を使ってLIV(合成)画面を録画すればアバター合成動画のできあがりです。

この機能では一画面しか録画できないので、同時に複数画面の撮影がしたい場合には使えません。複数画面の撮影がしたい場合は次で紹介するOBSを使います。


複数視点の合成

OBS Studio(以下OBS)
配信サイトに対応している無料のライブ配信用ソフト

今回は、LIVの画面(後ろ方面からの合成画面)の他に、正面からの画像も加えたいと思ったので挑戦してみます。やり方としては、VMCを使ってもうひとつ正面からの映像を作り、その映像をOBSという画面キャプチャソフトで背景を透過させて動画に組み込みます。

1. 正面からの映像を準備
・VMCは複数起動可能なので正面用として新規に起動
・カメラを調整し正面からの画角に編集
・設定で「Virtual Motion Tracker」をオフ、「仮想Webカメラ」もオフ
・三人称視点(後ろ方面)の画面と新規で追加した画面を同時にキャリブレーション

2. OBSをダウンロード

3. 録画の準備
・OBSを起動
・ソースにウィンドウキャプチャを追加(LIV画面)
・ソースにウィンドウキャプチャを追加(VMCの正面画面)
・VMC正面画面のソースを右クリックで「フィルタ」を選択
・エフェクトフィルタ「クロマキー」を追加
・「色キーの種類」を透過させたい色を選択で画像の準備はOK
・ソースに「音声出力キャプチャ」を追加
・ゲーム音のみ録画したいので音声出力キャプチャ以外のマイクを0
・画面サイズや位置を調整

これでセットアップ完了です。
録画開始をしてゲームをすれば、アバター合成させたゲーム動画を作ることができます。

画像14


成果物

今回の成果物です。足がプラプラしますが、それっぽいものができました。


感想

途中色々と詰まったところもありましたが無事にやりたいことを実現しました。今回は3点でのトラッキングでしたが、もっとトラッカーをつけたい気持ちが増してきました。

今後やってみたいこと
・フルトラッキング
・ライトセイバーをダースモール仕様
・恋のマイアヒを踊る

ゲーム内にオリジナルアバターを取り込む方法は今後もしかするとゲーム側で実現できたり今後もっと簡単にできるようになっていくかもしれません。今回の手法は特段最先端のものではなく、フリーソフトを提供したり、それを試して情報を提供している先駆者がいることで実現できています。それら先駆者に感謝します。挫折しながら新しいことをやる経験は、脳の刺激になって良いですね。良い挑戦になりました。おしまい。

3DモデルはVRoidStudioを利用して作成しています
利用モデル:うまる(初代AVACUSパーカー仕様)


画像17


以上、動画制作メモでした

いただいたサポートは、活動費に使わせていただきます!