[TGS 2019]昔「テグザー」を作った人が機械学習でOculus Goの3DoF入力を改善していた
並んだ展示を見ていると「なぜ3DOFのコントローラでリアルなラケットの動きを再現できたのか?」という張り紙があった。機械学習で3DoFの入力を拡張しているらしいことが記載されている。タイトルは「CYBER TENNIS」で,Oculus Goですでに発売されているゲームである。ユニティちゃんが出てくるテニスゲーム……ストアで見かけた覚えは確かにある。そんな処理をしていたのか?
テクニカルアーツは,昔ゲームアーツでテグザーなどを作っていた池田公平氏が作った会社である。社名も似ているが直接は関係ないようだ。そんな池田氏が開発したのが,3DoFのデータから,どんなスイングがされたのかを推測するプログラムだ。
コントローラの角度と前方ベクトルとの内積を取り,スイングの進行度を計測する。コントローラの角度と上方向のベクトルとの内積を取り,ラケットの上下角を算出する。そして,XYZ軸方向の加速度の推移からラケットの動きを取り出し,これら3つのベクトルをニューラルネットワークに入力するようにしておく。ゲームの最初にプレイヤーの振り方の癖をサンプリングして,あらかじめ用意しておいたラケットの振り方の教師データとプレイヤーのデータを比較してデータを補正しつつ,ラケットの動きを推測していく流れとなっているようだ。
個人的に,Oculus Goは3DoF入力がなんとかなったら非常に使い勝手が上がるデバイスだと思っている。このようなやり方で6DoFのライブラリは作れないのかと聞いてみたのだが,特定の種目ごとにやらないと無理だそうだ。今回のものも,3DoFデータから6DoFデータを作っているわけではなく,テニスのラケットの動きを推定する処理系である。テニスかバトミントンにしか使えそうにないとのことだった。汎用のものにしようとすると,ニューラルネットワークが複雑になりすぎてゲームでは使えない。今回のものは5段のニューラルネットワークだそうだ。72fps動作の1フレームは14msであり,3〜4msで処理しないと使いものにならないようだ。
最近のモバイル用SoCだとAI用プロセッサも内蔵されているので,次世代のOculus Goなどなら可能なのかもしれないが,次世代だったら最初から6DoFになっているだろうか。
ちなみに遅延対策は先日の5Gの記事で書いた「おそらく普通のゲームなら,遅延がだいたい分かっていれば遅延時間も加味してボールが移動するように作るのだろうが」と同じ,遅延がなくなるのではなくて,遅延を見えにくくする方法だった。
池田氏は,Oculus Goでパフォーマンスを出すように模索した結果,Unityでもかなり高速なゲームが作れることが分かったとのことで,今後の展開が期待されるところだ。
そして現在Nintendo Switch版も開発中とのことだった。なんでも,Nintendo SwitchのVRゲームは必ず両手でデバイスをホールドさせなければならないのだそうで,「コントローラをラケット代わりに振って」というスタイルのゲームは作れない。現状ではどうやって操作するのかは不明で,発売できるかも現状では分からないとことだったが,今後の展開に注目しておこう。