ウェブサイトの設計者はレスポンシブ デザインという考え方に精通しています。つまり、スマートフォン、タブレット、パソコンなどのさまざまなデバイスに対応し、さまざまな画面解像度やピクセル比に対応するウェブサイトを構築できます。WebVR では、レスポンシブ デザインの考え方に新たな課題が導入されています。
WebVR エクスペリエンスは、没入感のレベルと入力のレベルという 2 つの指標によって分類できます。これらのレベルは「自由度」(DOF)によって区別されます。6 DOF は位置と向きの両方を追跡し、3 DOF は向きのみを追跡し、0 DOF は位置も向きも追跡しません。
浸透レベル
- VR なし - モニターまたはモバイル ディスプレイ。
- ステーション VR - 3 DOF トラッキングが可能なデバイス。
- 座席使用時の VR - 6 自由度でトラッキングしますが、エリアと角度の範囲は限られます。
- ルームスケール VR - 会議室規模の環境で 6 自由度を測定。
入力レベル
- 0 DOF - クリックまたはタップ以外の入力は選択できません。この入力方法は、ユーザーが向いている方向に関連付けられます。これを視線コントローラと呼ぶこともあります
- 3 DOF - 方向または位置を指定するには、方向を追跡するコントローラをレーザー ポインタのように使用できます。コントローラの位置は、ユーザーの視点に基づいて推定されます。これには Daydream コントローラが含まれます。
- 6 DOF - 位置と向きを追跡するコントローラ。これを使用すると、VR で手の動きを緊密にシミュレートできます。
そのため、1 つのアプリで、1 回クリックするだけで、VR 以外のモバイル ディスプレイからあらゆる操作に対応し、2 つの完全にトラッキングされた手のコントローラを備えた会議室全体のエクスペリエンスまで入力できることがわかります。
WebVR ラボ
PlayCanvas WebVR ラボでは、アプリで必要となる可能性のあるいくつかのコア インタラクションを実装し、さまざまなレベルの経験に拡張しています。
インタラクションの仕組み
WebVR ラボでのインタラクションの基本的な仕組みは、光線交差です。床、部屋、操作可能なオブジェクトは、次の 3 つのシェイプ プリミティブのいずれかで定義されます。
- 軸に揃えられた境界ボックス(AABB) - 回転しないボックス。
- 有向境界ボックス - 回転可能なボックス。
- 球体 - 空間内の 1 点を中心とする半径。
アクションが可能かどうかを確認するには、ワールドに光線を発射し、その光線がワールド内の物体の形状と交差するかどうかを確認します。光線の発生場所(カメラまたはコントローラ)と光線の長さ(クローズアップ操作や特定の距離を指し示すこと)に応じて、さまざまなタイプの操作が可能です。
シンプルなアクション
まず、いくつかの単純なアクションを定義し、それをさまざまなコントローラでどのように使用するかを定義します。
ハイライト
場所やオブジェクトのハイライト表示は、対象物を見る(視線コントローラを使用)か、手のコントローラで指す(手のコントローラを使用)することで行います。これは、ボタンが押されていないときや、ボタンが押されている間のみの場合があります。
クリック
場所やオブジェクトのクリックを行うには、まずハイライト表示し、次にボタンを押すか離します。視線コントローラでは、オブジェクトを見てクリックし、ボタンまたは画面を押します。ハンド コントローラを使用すると、オブジェクトをポイントしてボタンをクリックします。
主なインタラクション
ハイライト表示とクリックを使用して、WebVR ラボで主要なインタラクションをいくつか実装しました。
テレポート
ユーザーが探索するための仮想環境を構築する場合、ユーザーが移動せずに見ることができる小さな領域よりも、環境が大きくなる可能性があります。たとえば WebVR ラボには 3 つのセクションがあります。メインルーム、中 2 階、ハイファイ ミュージック プレーヤー用のサイドルーム。
ビューポートを世界の中で移動すると、多くの場合、不快感につながります。WebVR Lab では、ユーザーが場所をハイライト表示して、クリックしてすぐにテレポートできます。ユーザーの視点は決して移動しないため、ユーザーは瞬時に動くような多少不自然な感覚があっても、不快感なく広い空間を移動できます。
ハンド コントローラの場合は、ユーザーがボタンを長押ししてテレポート ターゲットをアクティブにする必要があります。これにより、ユーザーが周囲を見ているときに視界がすっきりします。
ユーザーの視点を移動する
どうしても視点の移動がどうしても必要な場合があります。たとえば、静止した VR や座った VR を使用すると、壁にぶつかり、現実世界を裏切ることができない可能性があります。ユーザーはコントローラを使用して カメラを回転させることができますWebVR ラボでは、Daydream コントローラの左右のパッドを使用してカメラを回転できます。
このようにカメラを移動する際の不快感を防ぐために、制限されたビューをカメラ全体に適用することで、周辺視力の量を減らすようにしています。これは Ubisoft による取り組みに基づいています。画面の中央だけにビューを合わせることにより、不快感が軽減されることがわかっています。
有効化
有効化は、ウェブページのボタンをクリックするのと同等の VR です。WebVR ラボでは、これを文字どおり意味し、有効化できるシンプルなボタンを用意しています。
0 DOF および 3 DOF のコントローラの場合、アクティブ化はハイライト表示してクリックします。6 DOF コントローラの場合、ハンド コントローラがボタンの中にあるかどうかを直接確認してボタンを「押せる」ようにエクスペリエンスをアップグレードできます。
Grab
WebVR ラボには「取得可能」なアイテムが数多く用意されています。この動作により、オブジェクトをアクティブにすると、手に取って移動できます。サポートする入力レベルに応じて、2 つの異なる明確な動作があります。
6 つの DOF コントローラの場合、入力ボタンを長押しすると、グラブ可能なアイテムをコントローラにアタッチします。その後、きめ細かな制御で移動や配置を行うことができます。ボタンを離すと、アイテムとの結合またはドロップ アクションが有効になります。
操作しにくいコントローラの場合は、クリックでアイテムが選択され、ユーザーのビューポートにアタッチされます。通常は、アイテムのセクションをディスプレイの「下 3 分の 1」の中に表示された状態にします。2 回クリックすると、アイテムをドロップするか結合します。
結合
結合とは、アイテムを別のアイテムと「使用」したときに行われるアクションです。これは非常に幅広いユースケースに対応しています。WebVR Lab では これを使って Hi-Fi でレコードを再生しますアイテムを取得した場合は、取得したアイテムを別のアイテムと組み合わせることができます。すべてのタイプのコントローラで対象アイテムをハイライト表示し、別のアイテムを選択してグラブを離すと、2 つのアイテムが結合されます。
ドロップ / 復元
アイテムのドロップは、他のアイテムがハイライト表示されていない状態で、把握したアイテムをクリックしたときに発生します。
WebVR ラボでは、アイテムに対して物理シミュレーションを使用しないことで、パフォーマンス要件を低く抑えています。つまり、アイテムを地面に落とすのではなく、ドロップした位置に浮かぶようにできます。アイテムをドロップした後、一定の期間内に有効にならないと、元の場所に「復元」されます。この復元機能により、入力レベルが小さい(0 DOF または 3 DOF)ユーザーは、多くのアイテムを操作し、使用可能な作業エリアを維持できます。古いアイテムは自動的に消去されます。
6 DOF の入力を使用すると、アイテムの移動が簡単になります。復元処理で遅延を発生させることで、6 DOF のユーザーはアイテムを動き回る作業に没頭しつつも、領域のセルフ クリーニングが容易になります。
概要
WebVR Lab は、PlayCanvas チームによる進行中のプロジェクトです。これは、常に開発が続けられ、WebVR アプリケーションの構築に関するさらなる研究がなされるにつれて、エクスペリエンスが追加、更新されていることを意味します。
このプラットフォームは、「マジック ウィンドウ」スタイルのモバイル エクスペリエンスからパソコンのインタラクティブなプレイグラウンドまでスケーリングできます。ユーザーが自身のプロジェクトに使用できる一連の主要なインタラクションの定義を開始しました。WebVR を使って 3D の世界を構築したい方にとって、WebVR Lab が優れた学習体験となることを願っています。
PlayCanvas アカウントをお持ちの場合は、WebVR ラボ プロジェクトに直接移動して詳細を確認できます。