New ニンテンドー3DS を使ってHTC Viveの品質を向上させる

はじめまして!

GREE VR Studio Lab Directorの白井博士です。

博士といってもいろいろありますが、博士(工学)ですが、(エ)=エンタメ技術かもしれません。
見開きのマンガで表現するとこんな感じの人物です。

書籍「白井博士の未来のゲームデザイン -エンターテインメントシステムの科学-」より

このマンガ「創る人を創る!」の続きとして、VRエンタメ関係の研究執筆なども行ってきましたが、研究開発を世の中にアタッチする!という「社会実装」がとても重要と決意。
2018年6月よりグリー株式会社の中の人、「GREE VR Studio LabのDirector」として日々バーチャルな研究所を運営しております。

GREE VR Studio Labでは、VR/AR/MR(これらをあわせて"XR"と呼ぶようになってきましたね)エンタメ利用のための技術開発、vTuberに関連する技術開発や品質向上、評価、他社とのコラボレーションによる未来開発、イノベーション人材の発掘支援などを行っております。

Twitter @VRStudioLab

やりたいことは「vTuberに魂を入れるR&D」、「シンギュラリティを本気で到来させる技術」、「VR5.0のその先」です!
ふわっとしつつもスパイシーなテーマに感じていただければ幸いです、もちろんゲーム会社なので未公開の情報は秘密が多いのですが、具体的にしっかりした技術と文化の社会実装をすすめています。VTuber世代の若い才能、学生さんや若きエンジニア・クリエイターさんたちがドキドキするような技術開発の裏側をお届けできればと思います。

さてこのエントリーはGREE技術Blogでの初めてのBlogエントリーですので、あまり大きな話を書き綴るつもりはなくGREE VR Studio Labと関係が深いWright Flyer Live Entertainment (以下WFLE)、REALITY Studioでの「ちょっとしたTIPS」について紹介したいと思います。

実際のところ、VTuber関連の情報は展開がものすごく速いのでVTuberアドベントカレンダーの勢いを借り、書き綴っております。

https://qiita.com/advent-calendar/2018/vtuber

https://qiita.com/advent-calendar/2018/vtuber2

VIVE Trackerでゼロから作る全身モーションキャプチャシステム

すでに「xR Tech Tokyo #12」や「VIVE JAPAN デベロッパー ミートアップ 2018」といったいくつかのパブリックプレゼンテーションにおいて、GREEグループのVTuber事業を推進する株式会社Wright Flyer Live Entertainment (以下WFLE) Presence Technology Group 渡邊匡志さん (@jungleking)が公開しておりますが、VTuber専用ライブ配信アプリ「REALITY」を配信するREALITY Studio Tokyoのモーションキャプチャ設備はVIVE Trackerをベースにゼロから開発しています。

REALITY Studioのコンセプトイメージです(実際にはこのような部屋が3部屋あります)

2018年12月現在は、Vive Trackerだけでなく、慣性式モーションキャプチャXsensなど他のモーションキャプチャシステムも使用していますが、今回は2018年7月ごろに取り組んでいた「Vive Trackerで作ったモーションキャプチャシステムの品質を上げるには?」というテーマでお話をしたいと思います。

IKINEMA Orion+Vive Trackerで作ったモーションキャプチャシステムの品質を上げるには

こちらの2018年6月26日付けIKINEMA社のプレスリリースを引用しますが、REALITY Studio内のモーションキャプチャはイギリスIKINEMA社のOrionとVive Trackerをベースに作られています。

Orionは様々なターゲットマーカーの構成をとることができます。REALITY Studioでは下の動画とは少し異なり、「頭, 両腕, 両手, 腰, 両足」という構成が多いようです。HMDを被らない代わりに、iPhoneXをつかった生き生きとした表情キャプチャができるのが特徴でもあります。

モーションキャプチャ以降のレンダリング部はUnreal Engine4(UE4)を使用しています。過去のモーションキャプチャによるゲーム挿入動画などと異なり、主にリアルタイムライブを目的とした使用なのでIKINEMA社のLiveActionによるリターゲッティング機能などは大変重要です(が今回のエントリでは割愛します)。

なお、UE4単体でのVTuberに関する講演はEPIC Japanの「かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!」(2018年10月14日に横浜で開催した「UNREAL FEST EAST 2018」の講演動画)がお勧めです。REALITYについての当時の最新情報も冒頭で紹介していただいております(岡田さまありがとうございます!)。

※なおこの半年で、IKINEMA社は社名およびブランドがiKinemaもしくはiKINEMAから「IKINEMA」に統一されていますので本稿でもIKINEMAに統一させていただきます。

生放送レギュラー化を直前に謎の挙動…

REALITY Studioによる生放送のレギュラー化が予定されていた7月中旬に、WFLEの渡邊さんからラボに相談がありました。
「モーションキャプチャシステムが謎の挙動をする…」
当時の動画で問題がなさそうなものを紹介します(たくさんあるのですが、あまりに気色悪いので割愛)。

IKINEMA社のサポートを活用する(英語)

『これはレポートを書いて、IKINEMA社側のサポートを受けたほうが良い』。
かつてイギリスのゲームエンジン・ミドルウェアの日本支社の社員だった経験もあり、イギリスのスタートアップ企業と日本のゲーム開発企業の文化の違い、言語的・文化的な違いはよくわかっていましたので、さっそく、綿密な調査をして以下のやり取りをしました。

以下、当時の記録から…。IKINEMA社Chrisさんとのやりとりの意訳です。

Chrisさんより:

提供されたデータAを拝見すると頂いたデータに大きな問題があります。 SVRSファイルにはBaseStationの位置も含まれているため、ここにプロットされています。


見てわかることとしては、システムは何度か混乱しています。BaseStationの位置を互いに対して変化しており、トラッカーの位置が間違っています。つまり、非常に悪いデータがOrionに送られています。別のデータBですが、これは比べてクリーンです。 BaseStationは安定しているように見えます、トラッカーが間違った位置を計算する機会はいくらかあるようです。2m向こうにドリフトして2-3秒間dropしています。
p.s.我々は頂いたテイクの長さに感銘を受けました。 (^ w ^)

REALITYでは1時間のライブ番組が毎晩予定されていましたので「テイクの長さに感銘を受けました」では許されない展開です。

白井の質問が続きます。シンプルですが、ロジカルな英文のやり取りが求められます。

(質問1)キャラクターが破綻する現象は、Orionの開発側では既知の不具合で、直す予定はありますか?
(質問2)キャラクターが破綻した時、Vive Trackerの位置とOrion側でのアサインされた位置が明らかに違うようなのですが、Orion側の不具合でしょうか?
(1) Did you recognize our issue, character collapsed (shrink) mesh condition, is from Orion? Do you have any road map to fix it?
(2) When the character collapsed, it is surely different positions between physical and tracked Vive trackers. Can you explain what it exist there?

Chrisさんの回答

過去にいただいたデータを見ている限りですが、Viveシステムは「データドロップ(dropped data)」を報告していませんが「誤り(wrong)」ではあります。
この状態は一般的には、光学的な干渉が発生しています。トラッカーは(ライトハウスの)レーザースィープを受光している、しかし異なった角度で受光していますので、これは異なった位置と角度を算出します。

白井から追加の質問を出します。

(質問3)Vive Trackerを有線接続で検証していますが、その方法は試したことがありますか?
(3) Have you ever connected Vive Trackers via cables instead of wireless connection?

Chrisさんからの回答

(いただいたデータの中には)その誤りデータの後に、データドロップが確認できました。
ドロップ(の原因になるもの)は一般的には電波干渉もしくはオクルージョン(遮蔽)、その両方です。
ご連絡いただいた通り、電波干渉はトラッカーへの有線接続を使用して、テストおよび排除することができます。
なお、ケーブルを使用することで排除できるのは電波干渉によるドロップのみであり、誤った位置(wrong)の報告(report)には役立ちません。

Orionにはあえて、それを助けるフィルターが組み込まれていますが、アクターの動作範囲(range of motion)ごとに微調整が必要なため、デフォルトでは無効で出荷されています。
新しいデータを我々に送っていただければ、そのフィルタを使用してデータをテストし、活かせる(viable)オプションであるかどうかをお知らせしますね。

ここで解説ですが、Viveシステムのライトハウスのレーザースィープ(走査、というより掃除)は特殊なので、この動画を見ていただけると理解できると思います(本物の実速度は1000倍ぐらい高速です)。

白井自身も見落としていたのですが、ライトハウス(光源)からトラッカーへの直線的な反射だけでなく、水平/垂直方向はまだ未チェックな反射があるかもしれない…と考えなおしました。それ以前に、このCGの部屋が現実なら反射しまくりでまともに動作しない。Viveトラッカーの受光構造は3ステップになっており、品質を上げるには理解が必要です。

まず、3つの異なる赤外線信号がライトハウス(ステーション)から送られています。最初は無指向性のフラッシュで、ターゲットであるVive(HMD)やTrackerに対して「これから計測開始するからストップウォッチをトリガして」というコマンドとして送っています。その後、各ステーションは連続して2つのIRレーザースワイプを連続して送信します。 最初のスワイプは水平方向、次は垂直方向に送信されます。走査速度(strobe frequency:ストロボスコープ周波数)は1K~1.2KHzで、それぞれの光源で0.1KHzずつ意図的に位相をずらして、その差で算出しています。

image from i.kinja-img.com/gawker-media/image/upload/s--wsP3xmPN--/1259287828241194666.gif

上の動画の走査が1秒間に1千回ぐらい光っている感じです。水平と垂直の時差で見分けています。

New ニンテンドー3DS を使って赤外線を見えるようにする

構造がわかった、理論がわかった、というところで光学干渉のほかに電波干渉などもありえるのですが、電波干渉はUSBケーブル化することで改善するとして、まずは光学干渉を抑え品質を改善するには足元から地道にやるのが大事です。…ということで「まずは赤外線を見えるようにしよう!」という活動が始まります。

とはいえ赤外線カメラはそこそこに高額です。昔の安いWebカメラのフィルタを外して作ることもできますが、どこで反射しているかわからない赤外線を確実にとらえる必要があり、簡易で扱いやすいカメラが必要です。

そんな時、ちょうど「Nintendo Labo」遊んでいた息子さん(小学校5年生)が「ねえねえ!これ見て!」とNintendo Switchを持ってきました。

『えっ…Nintendo 3DSって赤外線見えるの??』

ということで早速撮影してレポートしてみました。

しっかり映っています!3DSの内側カメラが特によく撮影できます。明るい場所だとわかりづらいですが、カメラを動かすと、一瞬だけモニタに反射している光があります。

撮影できる紫色の光はベースステーションの最初のフラッシュと推測します(スイープは速すぎ&弱すぎて30FPS程度のフレームレートでは撮影できないはず)が、フラッシュの時点で反射していれば誤作動の原因になります。

部屋の電気を消すと、もっとわかりやすくなります。

 

モニタの反射だけでなく、ベースステーション近傍の金属も強いピークで反射していることが分かります。一般家庭の中ではカーテンやBaSO4のような完全拡散反射をする壁が多く、正反射する要素はそこまで多くはないのかもしれないのですが、スタジオの中は正反射する物質が予想以上に多かったのでした。

さて、これを使ってWFLEの安倍さんと千田さんが徹底的に反射対策を施しました。

徹底的な反射対策の例

調査してみると以下のようなスタジオ内オブジェクトが反射をしていることが分かりました。

・生成した3D映像を表示する大型モニタ
・スタジオとコントロールルームを隔てる大型ガラス面
・フェイシャルキャプチャに使っているiPhone
・演者サポートのためのiPadやPC
・ゲーム機(3DSなど)
要は全部です。そしてVTuberによるゲーム配信は人気です。一方で、反射対策という意味では、ゲーム機だろうがiPhoneだろうが、スタジオに持ち込むものは全部反射対策しなければならないということになります。

様々な材料を比較して、現在はこちらを使っています。

デメリットとして
・見えづらくなる
・持ち込み機材にも貼らなければ
・このフィルムが入手しづらい

といった点がありますが、対策後は非常に安定したモーションキャプチャシステムが完成しました。

さらに映像でも見てわかるように、ベースステーションの近くにあるレールも反射しています。これは布などを巻き付けて対策しています。

2019/5/31追記
マシュマロでこんな質問を頂きました。

具体的なプロダクトは製品が終了しており、入手することはできませんが…WFLEのPresence Technologyグループに問い合わせてみたところ、東急ハンズやホームセンター等で入手できる窓ガラス用のフィルムで、おもて面がザラザラであること、光を通したら画面が見えることが条件。「めかくしシート」とか「プライバシーフィルム」って名前で売っているこの辺の商品が類似品だそうです。

試してみてうまくいったらまた共有してください!>試した人

まとめと今後

なお2018年12月現在は、Nintendo 3DSではなく、赤外線カメラを導入し、いつでも反射を確認する体制を整えています。

以上、REALITY Studioにおける品質改善とVive Trackerにおける豆知識をお送りしました。

イギリスのスタートアップ企業とのサポート英語のやり取りや地道な物理現象との闘いを垣間見ていただければ幸いです。
またIKINEMA社のサポートとのやりとりからも、OrionやLiveActionにはまだまだ新しい機能がたくさんあるようですし、これからも REALITYの毎日の配信や、外部イベント、他のVTuberライブなどの経験を通してどんどん進化していくと思います。

現状では日本語での情報があまりありませんが、こちらのBlogエントリーをきっかけに、多くのユーザの経験が水平展開されていくことを期待します。

皆さんもどんどんサポートを活用しましょう!

<資料>

その後、HTCジャパンの西川さんより様々な資料が出てきておりますので引用させていただきます。関係各位のご尽力に感謝を記させていただきます。

■HTC直伝「虎の巻 2018」! VIVE トラッカー&ベースステーション2.0のトラブル回避術【CEDEC】
2018年08月23日 02:25

https://panora.tokyo/72556/

■CEDEC2018 VIVE関連製品の中~上級者向け利用方法(2018年版)

https://www.slideshare.net/MiyuNishikawa/cedec2018-vive2018/1

■参考Redditページ
https://www.reddit.com/r/Vive/comments/40877n/vive_lighthouse_explained/

p.s.

本日2018/12/12、こんなイベントを主催しております。YouTubeLive&VRChatも予定しております。

VRSionUp! #0 「高校生が作ったVR作品を、世界へ!」
GREE VR Studio LabはVR時代の未来を拓く若い才能のイノベーションを応援します。

https://gree.connpass.com/event/111396/

p.s.2

Twitter @VRStudioLabYouTubeアカウントでも最新の情報を配信しております!ぜひフォローよろしくお願いします。