Oculus Interactionを試してみた|DAFTCRAFT ENGINEER BLOG
Oculus InteractionとはOculus Integration v37から実装された、インタラクションに特化したSDKです。今回はOculus Interactionに実装されているインタラクションのサンプルを動かしてみました。
目次
環境
● Meta Quest 2(v41)
● Unity 2020.3.36f1
● Oculus Integration v41
オブジェクトを掴む
Oculus InteractionのGrab機能を使うと、オブジェクトを掴んで移動させることができるようになります。オブジェクトの位置や角度は、掴んでいる手と同期します。
オブジェクトに物理演算を適応すると、持っている間は手の位置と同期しますが、手から離れた瞬間に物理法則に従った挙動をします。例えば、手のひらにオブジェクトを載せて上に放り投げる操作をすると、オブジェクトは手から離れて上に放り投げられます。
ただし、指で掴んだオブジェクトを投げる動作は、オブジェクトのリリースタイミングが難しく、あまりうまくいきませんでした。
掴む手のルールを設定できます。どの指を使って掴むか、指ごとにOn/Offを切り替えます。例えば鍵のオブジェクトは、親指と人差し指を使ってしか掴むことができないようになっています。
持つ位置によって、手の形状を変えることができます。
例えばコップを持つ手の形状ですが、縁を持つ場合と取っ手を持つ場合とで、指の形が異なっています。実際の手は全てグーにしているにも関わらずです。これらはオブジェクトを持つ位置ごとに、Unity上で指の形状を指定しています。
離れたオブジェクトを掴む
離れたオブジェクトを掴むことができる機能です。離れたオブジェクトを現在位置から掴むことができたり、手の位置まで引き寄せたり、オブジェクトの位置に手をワープさせたりすることができます。
オブジェクトにタッチする
オブジェクトにタッチする機能です。3DのボタンやUIを操作することができます。
特筆すべきは、手のビジュアルがUIを突き抜けないようにできる点です(実際の手の位置はUIを突き抜けていても)。VRであることを忘れさせる非常に気の利いた機能だと感じました。
ハンドトラッキングでの操作はコントローラー操作と異なり、ハプティクスで操作の感触を伝えることができません。
このサンプルでは操作音を有効活用することで、操作に違和感を感じさせない工夫がされていました。実際の手がUIを突き抜けていて、でも手のビジュアルがUIを突き抜けていない場合にも、激しい違和感は感じませんでした。
オブジェクトを制限つきで移動する
オブジェクトの移動・回転に制限をつけることができます。
1つ目は移動を制限する機能。Y座標の移動量を制限することで、地図上に置かれたピンを地図から離さずに移動させることができます。2つ目は回転を制限する機能。宝箱の蓋を開け閉めする場合など、角度の上下限値を設定することで蓋の動きを実現できます。
オブジェクトの大きさを変える
MRTKに憧れている私が一番待ち望んでいた機能がこちらです。オブジェクトを両手でつかみ、ピンチ操作で拡大縮小できる機能になります。スケールの上下限値を設定することもできます。
ちなみにオブジェクトは片手しか持てないものと、両手で持てるものとの指定ができます。片手でしか持てないものを両手で持とうとした場合、もう一方の手に持っている基準がうつります。
スワイプ
スワイプを検知する機能です。手のひらを内側に動かすことで、スワイプとして認識されます。人差し指だけの操作でも同様でした。
面白いのは、両手とも内側にスワイプしないと検知されない点です。確かにスワイプと言えば内側ですよね。あまり外側に動かすってこともなさそうです。
ハンドサイン
様々なハンドサインを検知できます。検知できるハンドサインの種類については、各指の形状を指定することができます。過去に試したLeapMotion(デスクトップ)より、精度はかなり良いと感じました。
Ray
Questのメニュー画面で使えるような、UI操作のRayを実現する機能です。ちなみにこのサンプル動画にもあるように、OculusInteractionにはUIをカーブさせる機能も入っていました。今までUIをカーブさせるためには別途アセットを使う必要がありましたが、OculusIntegrationならアセットなしで実現できます。
試してみた感想
OculuInteractionでは用意されているクラスが非常に多く、これらを組み合わせて使う必要があります。そのため、全ての組み合わせを使いこなすには時間がかかりそうだと感じました。サンプルにある機能であればprefabが用意されているので、そのまま使うこともできます。
このサンプルを試す際にQuest2のソフトウェアがv41にアップデートされたのですが(7/19現在の最新はv42)、以前のバージョンと比べてホーム画面の挙動が重たくなったように感じました。これは新しいQuest販売の予兆なのかも知れない……と個人的に期待しています。
渡邊 聡美
Unity エンジニア | toBソフトウェア開発やIT業界にて10年以上の開発経験を持つ