[CEDEC]Oculus Touchが拓くVR操作系の新地平。そこに手があるとしか思えないからこそ必要な注意点
この講演では,Oculus VRの近藤義仁氏がTouchの概要を改めて紹介し,井口健治氏がTouchを扱う際の注意点をまとめていた。
ここは「親指置き場」だそうだ。とくにボタンなどはないのだが,触るとザラザラしており,親指のホームポジションとして使うことを推奨されている。ボタンがないとはいえ,タッチセンサーは用意されており,親指がそこにあるかないかの判定はできるようになっている。これでなにができるかというと,サムズアップができる👍……ほかにあまり使い道はないような気がするのだが(サムズダウンもできるが),身振り手振りのコミュニケーションでは重要なことだろう。
なお,Oculus Touchは今年中に発売される見込みだが,2基のTouchコントローラ以外にもう1基の赤外線センサーユニットが付属するという。実は,今年のGDCの時点で動きの大きいスポーツゲームに対応するため,2つのセンサーを使ってセンシングエリアを広げていた例を見たことがあったのだが,その仕様が標準になったようだ。
Touchがもたらすものは「ハンドプレゼンス」,すなわち「手がそこにある」という感覚である。ViveコントローラやPS Moveなども両手の動きをある程度伝えるものではあるが,コントローラを握っているという感覚はなくなるものではない。手そのものを使うソリューションを除けば,最も素手感覚に近い入力インタフェースだといえるだろう。
手のプレゼンスを維持するためには,まず表示されている手が「自分の手」と認識できる必要がある。あまりに現実とかけ離れれているデザインであるとか,表示位置や動作のズレがあるなどでは,自分の手である感覚が保てなくなる。
Touchによって「手」の部分の位置と角度が分かり,Rift自体で頭の位置と角度が分かる。両者の関係からIK(インバースキネマティクス)を使って,肩から腕も描画してやろう……といった試みはあまりお勧めできないそうだ。手の位置から関節の動きを逆算しようとしても一意に決まるものではないので,実際の肘の位置と一致するかどうかは分からない。違っていると手の実在感を阻害する場合もあるからだ。
そのほか,手の表示は,少々大きいものでも「手袋」感覚で容認される傾向があるが,小さいものは受け付けられないので,多少大きめにしておくのがよいそうだ。
さらに,実際の手が1cm動いたら,VR空間内の手も1cm動くような,完全な追従性が要求される。すると,VR空間内で物体を素通りするような表示にするほうがいいのか,物体に接触したところで止める表示にしたほうがいいのかという問題が浮かび上がってくる。
たとえば,柱があったとして,それに向けて手を当てるとどうなるか。
手のプレゼンス的には手が素通りするほうがいいのだが,柱のプレゼンス的には接触部分で止まるほうがいい。こういった場合,ハンドプレゼンスを優先することが強く推奨されているようではあるが,どちらを選ぶかは最終的にはゲーム次第ということになるのだろう。
どっちも実現するということで,素通りする手と止まる手の二つを出すというソリューションも紹介されていた。「Surgeon Simulator VR: Meet The Medic」では,物体に触れると肉体の手は止まるのだが,骨の手が出てきて素通りするのだ。
ここでも手の表示に制約を加えることは推奨されない。解決策として手っ取り早いのは「そういうものは置かない」だそうだ。どうしてもそういう表現が必要になったときは,手の表示を消すことがお勧めされていた。引き出しやレバーを掴んだら,手自体の表示は消して,つかんだモノを手の動きで動かすようにする。そういう表示法のほうが不自然さはなくなるという。
同様に,銃などのモノを持ったりした場合も,手を消すという選択は有効だという。プレイヤーの注意は銃などに移るので,手が表示されていなくても不自然に感じられることはほとんどないとのことだ。
ちなみに,手に持った小道具が物体をすり抜けるべきか否かについては,ゲーム依存とのことで,ケースバイケースで対応していくことになるのだろう。
まず注意しなければならないのは,Touchのインタフェースでものを持つ動作は実現できても,モノの重さは反映できないということだ。明らかに重いはずのモノを持つと不自然さが感じられる=プレゼンスが損なわれる可能性がある。また,フライパンなどの重心が偏った物体でも不自然さが感じられることがあるため注意が促されていた。
手でVR空間内のモノに触れるようになると,いろんなものに触りたくなり。ゲームを作る側もそれを承知しているので触れるモノも増えてきて,サンドボックス的なあらゆるものに触れるような環境も多くなった。そうなると,増えるのが意図しない物体に触れてしまうというケースだ。積み上げられたものを崩してしまったり,取ろうと思ったものではないものを意図せず遠くにやってしまったりといったことを経験することになるだろう。
Toy Boxでは,中指のセンサーが反応しているときだけ手に接触判定が発生するようになっており,手を開いた状態では物体を素通りするようになっているという。サンドボックス的なゲームではこういう工夫も必要だろう。
また,床に落ちているものを拾うといった動作はゲームでも多用されそうなのだが,実際にしゃがんで物体のところに手を伸ばすのは,頻度が上がると結構きつい運動になる。ゲームによってはマジックハンドなどを使っていることもあるが,ただの手でもちょっと遠いものまでつかめるようにしたほうがよい。
一方,投げるという動作はかなり難しく,工夫が必要になる。タイミングとしては,放し始めた瞬間,握り始めた瞬間を使うと動作がシャープになるとのこと。
きちんと動作させるにはさりげないアシストが重要になる。最適なリリースポイントの微調整や,直前に頭が向いていた方向に飛ばすようにするなど,露骨すぎると問題があるもののかなり有効な手法であるという。
たまに,腕を止めたあとのタイミングでトリガーをリリースする人がいるそうだ。それだと,たとえ強く腕を振っていたとしても,ボールはぼてっと地面に落ちてしまう。できればそういう人も救済するような処理を加えるのが望ましいという。これには腕を振っている途中の速度を保存して移動平均をとるようにするのがよいとのこと。
また,中指を緩める過程で,全部の指を放してしまうと,当然ながらTouchごと投げる操作になってしまう。非常に危ないので,手首のストラップは必ずつけるようにしたい。
手にモノ持った場合には少し補正も必要になる。銃などでは,銃身がプルプル震えているような状態は望ましくない。ある程度のスムージングを入れることで重みも表現できるため一挙両得となる。この場合,位置の補正は少量に留め,角度の補正を大きめにするのがよいとのこと。
そのほか,Bullet Trainで使われた銃では,最初の0.1秒だけ弾速を落として弾を視認できるようにしたり,発射時にリコイルを生じさせて,位置をずらすなどの処理が加えられているという。手の位置をずらすというのは本来やってはいけないことだが,短時間だけであることに加え,振動と同時にやると気にならないものなのだそうだ。
そういったことからか,ToyBoxでは,花火から出た火花を指で弾いたり,Bullet Trainでは銃弾を指でつまんだりできるという。Surgeon Simulatorでは患者に薬ビンを投げつけたり往復ビンタをしたりといったプロモムービーも出ており,その自由度の高さが分かる。医療シムとしてはどうかとも思うが。