VRchatの壁 第3章 ~カメラ2台以上で全身を操作するフルトラッキングで失敗しやすい4つの【壁】の傾向と対策~ mocapforall編
皆さん、こんにちは! ヒロです。
今日は、
カメラ2~4台で全身を操作するフルトラッキングを調整する4つの壁と対策について、書いていきたいと思います。
フルトラっキングって何?
VRchatって何??
カメラを使ったフルトラッキングって何?
っていう人のために、簡単に説明すると、体全体をカメラ2台から4台でスキャンして、VRchatのアバターの動きに反映させるということをやっています。
このフルトラッキングについては、前回の記事までたくさん書いていますので、ご参照ください。
今回は、かなりディープで長文です。
しかも、カメラを使ったタイプのフルトラッキングについてです。
ハードウェア系(トラッカーなどを身に着けて操作する人のことをこのシリーズでは便宜的に「ハードウェア系」と呼んでいます)にもそれぞれの弱点があると思いますが、自分はハードウェア系を使ったことがないので、詳しくハードウェア系を知りたいという方・・・本シリーズでは、ネム先生の記事を紹介しています。(こっちも奥が深いです)
カメラを使ったフルトラッキングで発生する「壁」とは何か?
どのように対処していくのか?
どうして体がぐちゃくちゃになって、すごいことになるのか?
というフルトラを全く知らない人、ハードウェア系の人でも知りえないリアルアバターの裏事情について、ここでは詳しく書いていきます。
フルトラ知らない人の壁:とんだときの動きにビビる
で、カメラを使ったフルトラをやっている人自体も結構少ないと思いますが、カメラを使ったフルトラで11点フルトラをやってみるととどうなるのか?
とりあえず、現状こんな感じです。
カメラ2台を使ったフルトラッキングになります。
IKベータでは、推測させて動く仕組みがあるので、一概に言えないのですが、ハードウェア系と比べるとカメラを使ったフルトラッキングは
・動きが俊敏でない
・遅延が発生している
・想定外のトビが多く発生している
という3つの大きな欠点と壁があります。
特にトビや遅延で体が変な方向になる問題は
フルトラを慣れていない人にとってマジで「どうなってんだ?これ???」現象が起きているので「体がすげーことになってる!!」って大体驚かれます。
ここに関しては、ハードソフト関係なく、フルトラやったことがある人、ない人がはっきりわかる「フルトラの壁」なのかなーと思っています。
フルトラやっている人ならあんまり驚きません。
・・・・たぶんですよ。(小声)
補足ですが、VRchatは6点フルトラまでしか対応していませんが、steam>VRchatでIKベータというサービスに申し込むと、6点以上のフルトラができるようになります。逆に何も申し込まないと、2022年4月28日現在、6点以上できないので、ご注意ください。
カメラを使ったフルトラッキングの壁1:動きが俊敏でない問題
カメラを使ったフルトラは
①カメラで読み込んで
②解析し
③VRchat上で反映させる
という3つのステップが存在します。
このサイクルが早ければ、早いほど
動きが俊敏になります。
その際、「fps」という指標が一番影響します。
・カメラのFPS
・MOCAPFORALLでのFPS
・VRchat上でのFPS
の3つがポイントです。
VRchatのfpsを上げるだけでもキツイのにです。
MocapForAllのFPSは調整可能なので、ここで問題になることは
ないのですが、一番起きてしまうのが
・もともとのカメラのFPSが低い
問題です。一般的なウェブカメラは、実はfpsがすごい低い
ことが多いのです。それによって、カメラによるボトルネック
がかなり発生しやすいのです。
基本的にfpsが60位のものがいいので、私はこれを使っています。
高い!
って思われたり
こんな中華の無名のものより、バッファローとかエレコムのとか使えばいいじゃん
と思うかもしれませんが、コスパが悪いこともあるのですが、そもそも今回要求するレベルのカメラは、家電量販店の売り場に置いていません。
一般的なものはほとんどfps30で、後で付け加える広角のものとなると、有名メーカーだと1台1万円以上するものが運が良ければあるかも状態なので、この点はかなり注意が必要です。
私はこの壁をさっさと超えたかったので
アマゾンでさっさと済ませました。
カメラを使ったフルトラッキングの壁2:遅延が発生する問題
次の壁は遅延です。
先ほどの「俊敏さ(fps)」と何が違うの?って思うかもしれませんが
カメラを使ったフルトラッキングの場合、6~11点のうち、3点は、ヘッドセットとコントローラの3点で操作しています。
つまり、3点はハードウェア系なのです。
なので、必然的に3点のみが素早く反応し、残り9点までが遅く反応する
という現象が起きます。これが遅延です。
写真だと、これが遅延状態になります。
実は、体と頭とまっすぐの位置でカメラ撮影用に右手を出して、突っ立っているだけの状態です。
遅延が発生することで、ハードウェアトラッキングの頭と手の3点は右側に、カメラを使ったトラッキングを使っている足、膝、腰、胸などは、前の左端に残った状態になっています。
これが遅延です。一番起こりやすいのがスクワットしているときです。
急にしゃがんだ時に、ほかのトラッキングの追従がおいつかずに、頭だけ元の位置にいってしまい、腰、胸のトラッキングが追い付いていない状態になります。
スクワットでしゃがむとこうなります。
次に紹介するのもスクワットと似たような状態です。
一人エグザイル状態です。
スクワットしながら、手を動かすとこのようになります。
これの対策で、有効なのが「MocapForAll」の設定をいじることやカメラの台数を減らすなどで、処理量を減らすこと、再起動が有効です。
カメラの台数が多ければ多いほど、処理が増えるというのもあるのですが、そもそもカメラで読み込ませる解像度を減らして、情報量を減らすことも遅延を抑えるポイントです。
ですので、高解像度であればいいわけではなく、カメラ本体の処理能力に合わせた解像度にすることで、fpsだけでなく、遅延も防ぎます。
カメラを使ったフルトラッキングの壁3:想定外のトビが多く発生している
MocapForAllは、カメラで読み込んだ情報をもとに、骨格を推定します。
しかし、推定できない動きをしたり、カメラの範囲から発生すると、「推定の推定」をすることになります。
カメラの範囲から外れないためには「広角」にすることで対応可能です。なので、広角+fps高いwebカメラが必要になります。しかし、そもそも現状少ないため、有名メーカーのカメラはないものが多いです。
今後、フルトラ需要が増えれば、だんだん種類も増え、もっと安くなるかもしれません。
で、話を元に戻すと、推定の推定が当たっていればいいのですが、自分の経験上、ほぼ外れます。外れる対策は、ハード選定もはまりやすいのですが、設定や調整で治ることも多いのです。
また、「とぶ」といっても、定番で飛ぶタイプと、定番じゃない飛ぶタイプがあります。
今回は、定番で飛ぶタイプのものを紹介していきます。
一つ目は、こちら。
これは、下記で起きたアバターミュージアムの悲劇と呼んでいる現象と同じものです。
これは、「アバターミュージアム」と呼ばれるビジターさんが結構来る場所で、ミラーに張り付いてぐにゃぐにゃになっている状態になっています。
こうなるとどうなるか?
最悪の場合、フルトラを全く知らないビジターさんが「怖い」とビビッて去ってしまったり、ブロックされたりする事態になってしまいます。
今のところ、運よくそういったことは起きていません。
ちなみに、この定番トビですが、ヘッドセットを外してトイレに行ったあとなどで100パーセント起きます。
オキュラスquest2の場合、ヘッドセットを外してしばらくたってスリープに入ると、steamVR含め座標がずれます。
こういった場合、オキュラスボタンを押して、ガーディアンの調整を押し、キャンセルをすると、リセットすることができ、定番トビの現象は9割ほど削減されます。
ほかの定番トビも、ほとんどがパターンが決まっていて、カメラの範囲外になってしまった、そもそも認識しづらいというのがほとんどです。
例えば、可動域が推定しづらいのか、ひじはかなり飛びやすいです。
ひじは、カメラの台数を3台以上に増やすとかなりの確率でぶっ飛びます。
カメラの設置環境もあるのですが、上から見上げた状態になりやすいので、そういった場合、とくにひじは飛びやすいです。
MocapForAllは優れたソフトなのですが、カメラ1台ごとの写っている範囲から骨格を推定します。つまり、4台あったら、4台写っている範囲からそれぞれ推定します。
そのうち一つでも外れていると「推定の推定」になってしまい、トビが発生しやすくなるのです。台数が多ければ多いほど、推定が緻密に重なるので、結構飛びやすいのです。
じゃあ、カメラの台数減らせばいいじゃんって話ですが、減らすと映らない範囲が推定になるので、フルトラの醍醐味であるポーズの再現率が低くなりがちです。
足を後ろに組んだりする、体の後ろ側でカメラに映らない表現がそれに該当します。ここの詰めどころが、かなり面白い点でもあります。
ぶっちゃけ、VRchatで遊ぶ場合や気軽さを求めると、カメラ2台+6点トラッキングが一番楽です。なぜなら、カメラ2台から距離をとった位置なら、スペースが狭くてもやりやすいからです。
しかし、カメラ3台~4台となると、死角をなくしながら設置するようにするので、それぞれのカメラからある程度の距離が必要となり、自然とスペースが必要になってきます。
また、腰より低めの位置の方が経験上、認識されやすいので、そうなるとスペースをとった方が色々楽です。
で、部屋の掃除で変えたり、カメラの設置位置を変えたり、はたまたソフトを調整して解像度を変更したりとやり方が色々あるのです。
例えば、足の下まで見えないようなカメラの設置をしないといけない場合、しゃがむ動作は、スペースが限られていて、かなりきついことが多いです。。
カメラ台数増やさない条件がついたときに、一番有効な対策としては、多分ですが、カメラとの距離を確保することです。
なので、できない場合がどうしても発生します。
じゃあカメラの台数を増やして対策しよう!として増やすと
今度は飛びやすくなる・・といった具合で問題が増えるのです。
なので、カメラ2台である程度遊べるようになったら、台数増やして表現できるようにさらに調整して・・・といった繰り返しになりがちです。
なので、4台使ってやっている人というのはなかなかいないと思います
カメラを使ったフルトラッキングの壁4:技術の進化がえげつない
こんな沼状態なので、人によってはMocapForAllではなく、別のソフトに変える・・なんてこともあり得ると思います。
というのも、骨格推定の技術自体は個人レベルでできることがかなり進んでおり、画像だけでなく、赤外線Lidarを使ったりとか、ディープラーニングでカスタマイズするとか色々あるからです。
例えば、この本の中には、pythonのソースコードをコピペして、ディープラーニングを使って、ゴリゴリに解析して、骨格推定している人がいます。
何が言いたいかというと、数千枚も自分の写真を読み込ませてディープラーニングしているすごい人がいるってことです。個人情報漏れたら、とんでもないことになりそうです。
で、その偉大なる方のスペースとか防音環境とかいろいろ考えると、Vtuberというよりは、VRchatかNeosでやってそうだなーって感じがしたりします。
自分としては、まーVRchatにいても、当然かなぐらいですが、どうなんでしょうか?よくわかりません。
で、MocapForAllは、商用利用可能なものを使っているので、ここまでのレベルになると、商用利用不可だけど、個人ではできるよ的な優れた認識技術などもあったりします。
簡単にいうと、個人で使うとなるとさらにソフトやプログラムの利用範囲は広がるので、個人利用でのみ限定利用できるVRchatで使っている人はかなりの確率でいると思います。
さらにさらに言うと、MocapForAll自体も実は、PC並列接続ができるため、PCに余裕があれば、並列接続して処理するなんてことも可能です。
さすがにここまでの領域までいくと、沼すぎるので、現状自分はそこまではやっていません。
というかやりきれていません。
そんな感じで、壁について書いていきました。
もし、4つ目のディープラーニング以上の壁まで実はやっているよ!なんて人がいたら、教えてもらえると喜びます。
なお、MocapForAllをプレイするときにグラフィックボードの注意点があります。必ずご覧ください。
https://vrchat-fbt.com/radeon/
ここまで読んでくださり、ありがとうございます。