Radeon利用者はmocapforallの一部モードが使えません
詳細はこちらに記載しています。
MocapForAllのfpsを上
こんにちは。hiroです。
前回に引き続き、カメラ2台で全身を操作するフルトラッキングの話をしていきたいと思います。今回は、カメラを使ったフルトラッキングで最大の問題ともいえる「部屋の狭さ」問題で立ちはだかる壁とその対策を書いていきたいと思います。
カメラのフルトラでも、当然のごとく、かなりの対策が必要になってきます。
部屋の狭さ問題1:狭すぎて人が映らない問題
MocapForAllは、カメラ2台以上を使って
人の動きを推定しているのですが、2台とも全身が映らないと
きれいに動いてくれません。
で、フルトラの場合、一番フルトラしてほしい場所は、足と腰です。
足の操作をうまく見せるためには、できるだけカメラが腰位の高さで調整した方がいいのです。
そう考えると、カメラからおおよそ1.2mくらいに何も置かない(カメラの視界を邪魔しない)
スペースは必要になってきます。
解決策1:マーカーを変える
で、ここがMocapForAllのようなpython系のAI特有にありがちな特徴なのですが
カメラの位置などを決めるための「マーカー」を床や壁などに設置する必要があり
1.2m+マーカーのサイズぐらいが最低でも必要です。
このマーカーによる位置確認(外部パラメータの読み込み)は3つのタイプがあり、それぞれ特徴と欠点があります。
例えば、こちらのマーカーを使ったタイプだと
A4サイズで運用でき、平面に3つ以上、さらに壁に貼り付けることもでき、マーカーのサイズを考慮せずにカメラを配置できます。が向きの動きに弱く
それを改良したこちらの場合は先ほどのタイプと同様の方法で読み込みできますが、用紙のサイズが必要で、A2以上で印刷する必要があります。
元々あったタイプは、床にA2サイズ以上のマーカー1枚を床に設置して認識するタイプだったのですが、カメラの設置個所や天気によって、認識しづらいといった問題がありました。
特にやりづらいのが、カメラの角度を調整して、床ができるだけ見えるようにずらさないといけないので、それによって、カメラから映る範囲が減るため、かなり動きが制限され、使いづらくなります。
また、LEDを点灯していたり、扇風機を回していたりすると、光の乱反射や点滅をカメラが認識しているため、床に設置したマーカーがうまく認識しないってことも起きがちです。梅雨の時期などは注意した方がいいです。
前回、こちらの方の動画を紹介させていただきましたが、4:41あたりで、マーカーをラミネートで光沢して、見事にてっかてか状態になっているのがわかると思います。
マーカーはできるだけ、非光沢になるように調整することをお勧めします。
とはいっても、A3サイズのプリンタを持っている人なんてレアなので、たいていはコンビニの光沢紙を使うかと思います。
私もそれを使っていますが、非光沢になるように処理ができればベストです。
キャリブレーションに成功したときに、オーブントースターの「チン」という音が鳴り「カメラ校正済み」とでて、カメラの位置が表示されるのですが、読み込みがうまくいかないと、全然違う位置だったりすることがあります。
そうなると、ぐにゃぐにゃになったり、途中で飛んだりする原因になるので、失敗の原因になります。
ちなみに、内部パラメータの校正もあるのですが、そこに書かれている行列っぽい数字のうち、左上の数値と真ん中の数値は整数レベルで同じにした方がいいです。
ここがうまくいかないと、結構ぐにゃぐにゃになります。
実際、これらのキャリブレーションがうまくいかず、前回の読み込みではOKだった同じ場所にマーカーを設置しても、NGでVRchatにインするのが15分たった後だったということが多々ありました。
なので、キャリブレーションのタイプは3つありますが、個人的には、さきほどの動画のタイプ(公式でも、従来型と言われている以前のタイプ)ではなく、実際の運用上、VRchatにいるときでも、Oculus外すことなくできる先ほど紹介した複数枚壁や床に貼り付ける2つのタイプをお勧めしています。
で、複数枚貼り付けるタイプだと、キャリブレーションがうまくいく時間短縮につながるだけでなく、可動範囲がさらに広がります。
このようにマーカーの形式を変えるだけでも、狭い部屋でも映る範囲を広げることができます。ちなみに、公式サイトや公式の動画でも、3つのタイプについて紹介していますので、詳しく正確な情報を知りたい方はこちら。
解決策2:カメラを高い位置に設置する
もう一つの対策が、公式HPでも載せている先ほどのマーカーを使って「高いところから表示する」方法です。
この方法がすごいのは、カメラが安いこととあの高さでこの精度を保っていることです。前回も書いた内容になりますが、fpsの関係で、カメラがネックとなり、VRchat上で高速に動くと追従できないかもしれません。ここは要注意です。また、VRchatやりながら動かすとPCスペックの高さが重要になってきます。公式の推奨をご確認ください。
「500円はカメラだけの話」ってことです。「VRchat同時起動でPCを動かすことができるスペック」ということが前提ですよ。
解決策3:AIに優しい動きをする
この運用で、AIが認識しやすい動きをすることを心がければ、VRchatでも大半の動作はうまくいくと思います。
実際フルトラの人は、ずっと動いているわけではなく、鏡の前で椅子に座ったり、飲み物を飲んだりとしていることが多いです。没入感を楽しんでいる人も多いわけです。なので、500円のカメラでもそういった動作をするだけなら全然OKです。
VRchat上でフルトラッキングをどう使っていくか、はっきり決まっていれば、フルトラッキングに要求するスペックもはっきりしていくので、ここは明確にした方がいいです。
多分ですが、モーションキャプチャー系(主にカメラ)フルトラの人の多くは、PDCAを回しまくって、改善するのが好きな人が多いと思います。
つまり、体がずれたり、問題が発生したら、どう直すのか考えるのが好きな人が基本的に多いと思います。ちなみに、先ほどの500円カメラの動画の方は、ディスコードでよくコメントされている方で、めちゃめちゃ詳しい方です。
逆にハードウェア系フルトラの人は、「踊りたい!」とかVRchat上で表現したいことがかなりはっきりして、すぐに表現したい人が向いていると思います。
何が言いたいかというと、カメラを使うタイプは、こんな感じで調整がたくさんあるので、VRchat上ですぐにキレッキレのダンスをしたいとか、激しい動きをしたいという人は、モーションキャプチャー系フルトラで表現しようとすると、ハードルがかなり上がるので、かなりの確率で挫折しやすいってことです。
また、コストを安くしてフルトラしたいという人も多いと思いますが、コスト優先を考えると、私はハリトラなどのハードウェア系を露骨に進めています。というのも、挫折しないでフルトラやってほしいからです。
解決策4:カメラを縦置きにする
人は、基本的に縦長なので、カメラの画素数を縦長にすることで、表示エリアが広がります。
しかし、この方法。カメラを固定する三脚などが必要になります
ちなみになのですが、VRchatを同時起動するモーションキャプチャー系フルトラは「お金がかかります」
カメラフルトラは茨の道
というのも、PCはハイスペックにしないといけないし、カメラは2万円以上使うし、後は黒幕とかそういったものも必要になる場合があるからです。
PCがすでにVRchatだけで全然キツイ場合は、PC更新するよりは、トータルコスト的には、ハリトラなどをかった方が安いわけです。
しかも、私なんて知らぬ間にtrustedになっちゃうくらい時間費やしていますので、この700時間位の時間を調整に費やすのを楽しむことができない人は、VRchat自体を引退しちゃう可能性も十分あるので、それだけは避けてほしいかなと思っています。
なので、PCのグラボが3060位あるダンス以外の用途の人からお勧めしています。ま、VRchatやっている人だとこのPCレベルはゴロゴロいるので、この記事をよんでくださっている方は、軽々と参入できてしまいそうですが・・・。
で、マーカーの話だけでここまで行ってしまいました。
まとめると、マーカー選択はかなり重要です。以上です。
ここまで読んでくれてありがとー。それではまた~。