日本語訳: 原文
VR における素晴らしいユーザーインターフェースをデザインすることは、従来の 2D 向けにデザインすることに比べて、大きく異なります。この資料におけるベストプラクティスは、Google Cardboard デザインチームによって作成された初期の VR アプリケーションやプロトタイプから得られた知見に基づいています。人体感覚・認識の基礎を身につけることは、あらゆるプラットフォームに向けて VR アプリケーションをデザインする助けとなるでしょう。
Google のデザインチームはこの領域での調査を引き続き行っており、この資料は VR デザインのための包括的なリソースとなります。インタラクティブ、バーチャル、そしてモーショングラフィックスデザイナーにとって、今はまさにエキサイティングな時代です。
VR によって、デザインに生理学的な考慮という新たな領域が持ち込まれました。パイロットの訓練に用いられるフライトシミュレーターがそうであるように、VR 上での動きは現実のそれと必ずしも一致しません。視界の動きと実際の体の動きのミスマッチは吐き気、いわゆる『3D酔い』を引き起こします。
VR デザインにおける生理学的な影響を理解し、以下のガイドラインに沿うことは、ユーザを 3D 酔いから守り、あなたのアプリケーションを成功に導くためにはとても重要です。
ユーザは VR という新しいメディアのインタラクションにまだ慣れてはいません。VR のキャンバスは無限であるため、ユーザの視線を誘導し注意を引く必要があります。これは 2D アプリケーションにはない新たな課題です。この資料では、効果的なインタラクティブパターンや、ユーザを混乱を招くありがちなミスをどのように防ぐかについても言及しています。
乗り物酔いは、予期した感覚と実際に感じたものの不一致によって生じます。車に乗っている時、乗客は窓の外を見ていないと酔うことが多いですが、一方で運転手が車酔いしにくいのは、実際に動く前にそれを予期できるからです。
なぜこのような不一致が存在するのか、その糸口は進化にあります。吐き気が生じるのは、我々の祖先が毒性のある食物の摂取に際し、毒が奥へと到達する前にそれを取り除くことで身を守っていたからです。あなたのバランス感覚(前庭器官)からの入力が視覚情報と異なる場合、その不一致の結果が吐き気となります。酔いを感じる能力は、生き残るための技術として発達したのです。
現代において、酔いはその利点よりも不利益の方が大きいです。アプリケーションの開発者とデザイナーは、ユーザーの 3D 酔いを防止するため、以下のガイドラインを順守する責任があります。
ヘッドトラッキングは、ユーザの頭の動きに関わらず仮想空間内の物体の位置を保持し、ユーザーの周囲に仮想世界の視覚を生成することを可能にします。
VR をデザインする上でもっと重要な指針は、常にヘッドトラッキングを維持することです。アプリケーション内でヘッドトラッキングを停止してはいけません。わずかな時間であっても、停止はユーザーの気分の悪化に繋がります。
ユーザーの頭に対して、スプラッシュスクリーン等のグラフィックスを固定し、ヘッドトラッキングの影響を受けないようにしてしまうと、不快の要因になります。
ロゴやタイトルと共にスプラッシュスクリーンを表示させたいときは、2D のスプライトを 3D の仮想空間内に描画し、ヘッドトラッキングの対象となるようにします。スプラッシュスクリーンは1軸の回転に追従するだけでも多くのユーザーの吐き気を防ぐことができるが、3軸での回転に対応することがより望ましいです。
アプリケーションをテストする際には、ヘッドトラッキングのふとしたフリーズに最新の注意を払ってください。こういった瞬間は、新しいシーンの読み込み時やデバイスに負荷をかける際に生じます。もしアプリケーションが一定時間ヘッドトラッキングを停止する場合には、その前にスクリーンを暗転させましょう。
オーディオを再生し続けることで、スクリーンが暗転していてもアプリケーションがまだ実行中であり、新しい情報を読み込んでいる最中であることを示す助けになります。
スクリーン全体の色や明るさを変化させることでも、方向感覚の喪失をさせずに視覚的なフィードバックを提供することができます。これは、スクリーン全体を変化させることでトラッキングの失敗が解かり辛くなるためです。
アプリケーションの中で、ユーザーを『乗客』ではなく『運転手』にすることが重要です。VR 空間内のユーザーの動きはユーザー自身によってコントロールできるようにしておきます。そうすることで、ユーザーは視界を入るものを予期することができます。
ただし例外もあります。ローラーコースターのように強制された動きを体験するアプリケーションでは、ユーザーが不快感を感じることも許容されるでしょう(スリルとして!)。ただ基本的には、ユーザーがコントロールを握るようにすべきです。ローラーコースターが勝手にスタートするよりは、ユーザー自身の手によってスタートする方が良いです。
現実世界では、私たちは加速や現実を体感しますが、速度を体感することはありません。例えば、飛行機が飛んでいる時、私たちは着率や離陸を体感することができます。しかし、飛行機が時速500マイルで飛んでいる間、私たちがそれを体感することはありません(気流の乱れが無ければ)。同様に、車に乗っている時も一定の速度を体感することはなく、体感できるのは速度の変化だけです。
アプリケーションの中で仮想的に加減速を行うとき、ユーザーは現実での変化を感じません。ユーザーが見ているものと体感しているもの差異は、気分の悪化を引き起こします。この不快感は、アプリケーションの中でユーザーが移動する速度を一定に保つことで軽減することができます。
もしユーザーが VR デバイスを使用している間は座っているなら、静止した仮想環境(バーチャルな椅子など)の中にユーザを置くことで、VR と現実での感覚を一致させ易くなります。仮想的ななコックピットや椅子などでユーザーの周囲を囲んでおくと、実際には VR の中で移動している画面でも、ユーザーが座っている状況を正当化することができます。
巨大な移動物体の近くにいると、ユーザーはその物体ではなく自身の方が移動していると錯覚してしまい、それは不快感に繋がります。この問題は、ユーザーの周囲により多くの静止物を置くことで防ぐことができます。
唐突な明るさの変更には注意してください。スクリーンとユーザーの目との距離が近いことで、暗いシーンから明るいシーンへの遷移は、新しい明るさに順応するため不快を伴います。これは暗い部屋から太陽の下へ出るときと同様のものです。
VR へダイブするには時間がかかります。ユーザーはヘッドセットを調整したり、デバふイスをホルダーに挿入する必要があります。
ユーザーを急かすことのないよう、VR 体験はユーザーの準備が整ったことを確認してから開始します。タイマーで自動的に開始してはいけません。ユーザーがスクリーンをクリックした段階で、準備完了と判断して体験をスタートさせます。
通常の 2D インターフェースと VR との切り替えは headset アイコンをユーザーがタップすることで行います。
VR を終了する一般的な方法は、(もしアプリケーションが 2D インターフェースを持っているなら)system bar の戻るボタンを押すか、またはホームボタンを押します。
ユーザーが持つヘッドセットの物理的な特徴に合わせて、あなたのアプリケーションを自動的に調整するため、Cardboard SDK を使うことを推奨します。Cardboard SDK を使うことで、モデル毎のレンズに合わせて自動的に歪み補正を調整したりすることができます。
双眼画像の位置や歪み補正をきちんと行わないと、ユーザーの不快感に繋がります。より多くのヘッドセットをサポートするためにも、Cardboard SDK を使うことを推奨します。
VR 体験中は、Android の Full Screen モードを使用すべきです。 Lights Out モードではありません。 Lights Out モードを使うと描画領域が減少するだけでなく、system controls や status bar をユーザーの視野に表示させることになります。
現在、Android は双眼 3D 環境でのポップアップダイアログの表示に対応していません。
よって、アプリケーションは 2D のダイアログボックスを表示する API を呼び出してはいけません。これは次のような混乱を招きます:
- ダイアログボックスが不正な方向に、両目を横切った状態で表示される
- ダイアログのボタンをクリックするためにユーザーはデバイスを Cardboard ビュワーから取り出さなくてはならず、ダイアログを消した後で再び挿入する必要がある
もしダイアログボックスを表示する API を呼び出さなければならない場合は、ユーザーが Cardboard ビュワーにデバイスを挿入する前に完了させます。
多くのユーザーは、あなたのアプリケーションを Google Play での検索、Google の Cardboard アプリ、または VR アプリのレビューを通じて見つけます。アプリケーションアイコンに VR 対応であることを示す追加のバッジを置く必要はありません。
VR 対応であることを示す方法:
- アプリケーションのタイトルで VR に言及する
- Google Play に双眼のスクリーンショットを含める