Language:
Page Info
Tags:
Skill Level:
Engine Version:
The translation of this page is out of date. Please see the English version for the latest version of the page.

仮想現実のベスト プラクティス

ユーザーに最高の VR 体験を提供するには、仮想現実 (VR) 向けコンテンツ開発の ワークフローを部分的に調整する必要があります。このガイドの目的は、VR プロジェクト用コンテンツの開発にあたり、 留意しておくべき主要項目を分かりやすく説明することです。

VR プロジェクト設定

ベースがブループリントまたは C++ のいずれの場合も、VR 用プロジェクトを新規作成するには、Scalable 3D または 2D グラフィクスと No Starter Content を使って [Mobile / Tablet] オプションを使用したプロジェクトを作成するのがベストです。 この方法だと、VR プロジェクトが起動直後にフレームで確実に実行されます。

クリックしてフルサイズで表示

VR .INI 設定

以下は、UE4 が搭載された VR デモの Showdown の.INI 設定です。 これらの .INI 設定を使用する場合は、プロジェクトの 「Config\DefaultEngine.INI」 ファイルの [SystemSettings] に追加しなければなりません。

[SystemSettings]
r.screenpercentage=130
r.SeparateTranslucency=0
r.HZBOcclusion=0
r.MotionBlurQuality=0
r.PostProcessAAQuality=3
r.BloomQuality=1
r.EyeAdaptationQuality=0
r.AmbientOcclusionLevels=0
r.SSR.Quality=1
r.DepthOfFieldQuality=0
r.SceneColorFormat=2
r.TranslucencyVolumeBlur=0
r.TranslucencyLightingVolumeDim=4
r.MaxAnisotropy=8
r.LensFlareQuality=0
r.SceneColorFringeQuality=0
r.FastBlurThreshold=0
r.SSR.MaxRoughness=0.1
r.rhicmdbypass=0
sg.EffectsQuality=2
sg.PostProcessQuality=0

VR ワールドのスケーリング

VR プラットフォームで可能な限り最高のユーザー体験を提供するためには、 ワールドのスケーリングを正確に行うことが最も重要です。正確なスケーリングを怠ると、ユーザーに様々な感覚的な違和感を与え、 シミュレーション酔いをさせてしまう可能性もあります。オブジェクトは、プレイヤーのカメラから 0.75 から 3.5 メートル (m) の範囲が一番見やすくなります。 UE4 では、1 アンリアル単位 (UU) が 1 センチメートル (CM) です。つまり、アンリアル内にあるオブジェクトは、 プレイヤーのカメラ (VR 使用時) から 75 UU から 350 UU が最も見やすい距離ということです。

距離

アンリアル単位 (UU) での距離

1 センチ (cm)

1 アンリアル単位

1 メーター

100 アンリアル単位

1 キロメーター

100,000 アンリアル単位

UE4 内の [World Settings (ワールド設定)] にある World to Meters 変数でワールドのスケールを調整することができます。 この数字を増減すると、周りのワールドとの関係でユーザーは自分が大きく、あるいは小さく感じます。 仮にコンテンツが 1 アンリアル単位 = 1 CM でビルドされている場合、[World To Meters][10] に設定するとワールドが非常に大きくなります。 逆に [World To Meters][1000] に設定すると、ワールドは非常に小さくなります。

T_VR_World_To_Meters_00.png

VR とシミュレーション酔い

シミュレーション酔いとは、VR ワールドで HMD デバイスを使用する際に生じる乗り物酔いの一種です。シミュレーション酔いがユーザーの VR 体験に与える打撃はかなり大きく、 せっかくの VR 体験を台無しにしてしまう事もあります。VR 体験が苦痛になってしまわないためにも、 以下のベストプラクティスを 遵守 してください。でないと、 ユーザーに非常に不快な VR 体験をさせてしまう可能性があります。

  • HMD のネイティブ フレームレートを常に上回るようにするために、フレームレート、そして欲を言えばバッファの維持は必要です。 低いフレームレートもシミュレーション酔いの別の要因になるため、出来る限りゲームを最適化してください。 以下の表は、各種 HMD の UE4 のサポートとこれらのデバイス上での実行に VR プロジェクトが必要とするターゲット フレーム レートです。

    HMD デバイス

    ターゲット フレーム レート

    DK1

    60 FPS

    DK2

    75 FPS

    Rift Retail

    90 FPS

    Vive

    90 FPS

    Gear VR

    60 FPS

    PSVR

    最高 120 FPS まで変動

  • 開発者は VR デバイスの使用に慣れているため、テスト対象者としては最も不適切です。シミュレーション酔いの発生を防ぐためにも、テスト対象者はできるだけ幅広いタイプから選んでゲームをチェックしてください。

  • シネマティクス カメラ、あるいはプレイヤーがカメラ移動を制御できなくするカメラは、ユーザーが最悪の VR 体験をする元凶になりやすいため、使用は避けてください。

  • 視野角 (FOV) を手動でオーバーライトしないでください。また、エンド ユーザーに編集目的で視野角を公開しないでください。値はヘッドセットとレンズの物理ジオメトリと一致していなければなりません。これはデバイスの SDK と内部コンフィギュレーションにより自動的に設定されます。一致しない場合、頭を回転させるとワールドがワープしたように見えて不快感または吐き気を催します。

  • カメラ効果に "Walking Bob" を使用しないでください (ファーストパーソンゲームでよくあります)。人の動きを真似するためにカメラを上下すると、プレイヤーにシミュレーション酔いを起させて、VR 体験を台無しにしてしまいます。

  • イベントをプレイヤーに伝えようとする時に、カメラを揺らさないでください。手榴弾がプレイヤーの横で爆発した時、VR 以外のゲームではカメラが揺れるのは自然に思いますが、VR ゲームの場合はすぐにシミュレーション酔いを起こします。

  • VR ゲームでワールドとレベルを作成する時は、通常使用するものよりも薄暗いライトと色を選ぶようにしてください。VR ゲームで強く鮮やかなライティングを使用すると、シミュレーション酔いが速く起こる可能性があります。通常使用するものよりも落ち着いたシェードと薄暗いライトを使うと、この問題を回避することができます。

  • 階段は避けて代わりにエレベーターを使ってください。プレイヤーが素早く移動すると、特に階段の上り下りの場合、方向感覚を失いやすくなります。

  • プレイヤーは、徐々にフルスピードにするのではなく、一気にフルスピードにします。さらに、移動速度への加速は常に一定でなくてはなりません。

  • 被写界深度あるいはモーション ブラー ポストプロセスは使用しないでください。ユーザーが見ているものへの影響が大きく、さらに重要なのは、ユーザーにシミュレーション酔いをさせてしまうからです。

これらは、シミュレーション酔いの根本的原因の徹底調査結果ではありませんが、VR ゲームのプレイ中にプレイヤーの具合を悪くする原因のヒンとして役立つはずです。

VR カメラの設定

VR 体験を立って行う場合と座って行う場合では、UE4 での VR カメラ設定がまったく異なります。 体験を座って行う場合、カメラの基点をキャラクターが立っている状態まで人為的に高くする必要があります。 この場合、カメラの原点が 0 (グラウンド上) になるようにしてください。 そのためには、キャラクターのベースでカメラ コンポーネントをシーン コンポーネントにアタッチするか、 Eye Height (目の位置) をキャラクター上のコリジョン カプセルの (マイナスの) Cylinder Height (シリンダーの高さ) の半分に設定します。

Standing VR Camera

Seated VR Camera

VR キャラクター設定

VR ヘッドセットを使用したキャラクターのセットアップは、標準のキャラクターのセットアップとは若干異なります。キャラクターの高さ、幅、速度、カメラ位置などは、 すべて VR キャラクターに合わせて若干修正する必要があります。

VR ワールドからオブジェクトをビルドする場合、 デジタル オブジェクトのスケールを現実世界のオブジェクトと同じにすることが重要です。スケールが現実世界より大きくても小さくても、 目標としている没入感を台無しにしてしまうことがあります。

キャラクターの高さと幅

キャラクターの高さと幅は、可能な限り現実世界のサイズと同じにします。スケールが現実世界より大きくても小さくても、 目標としている没入感を台無しにしてしまうことがあります。

プロパティ

UE4 でのデフォルト

推奨 VR

Height:

192 cm

176 cm

Width:

84 cm

68 cm

移動速度

VR の移動速度は、目標とする体験のタイプによって異なるため、 推奨することが難しいです。例えば、Elemental VR デモでは、 移動速度を通常の約 1/4 にしています。

プロパティ

UE4 でのデフォルト

推奨 VR

Movement Speed:

60 m/s

24 m/s

カメラ位置

VR カメラは、基本的な目の高さよりも若干低めに配置して、キャラクターの目の高さになるように補正する必要があります。

プロパティ

UE4 でのデフォルト

推奨 VR

Base Eye Height:

180 cm

160 cm

VR コンテンツに関する配慮

VR コンテンツを制作する場合には、ユーザーは複数の角度からコンテンツを見ていることを忘れないでください。今まで問題なく行ったことであっても、 VR の場合は以下のように回避すべきことがあります。

  • Scale - VR ワールドのオブジェクトをスケールする場合は、できるだけ実際のサイズを使うのが最善の方法です。オブジェクトのサイズが現実世界と異なると混乱を招き、シミュレーション酔いにつながることがあります。

  • Missing Polygon Faces - 標準的なゲームでは、ポリゴン面をプレイヤーには見えないオブジェクトから削除することができます (推奨します)。 しかし、VR ゲームではプレイヤーは周囲をかなり自由に見渡すことができるため、この方法だとプレイヤーは見えないはずのものが見えてしまう場合があります。

  • Which Type of Lighting to use - VR プロジェクトの作成には、レンダリング負荷が最も低い Static lighting (静的ライト)ライトマップ を常に使います。 動的ライティングを使う必要がある場合は、動的ライト数を可能な限り少なくして、お互いに触れ合うことのないようにしてください。 屋外のシーンがある場合は、指向性ライトを固定ではなく動的に設定して、[Cascaded Shadow Maps(CSM)] を有効にしておくと、最もシンプルな設定でシャドウを付けることができます。

  • VR と VFX - SubUV テクスチャ による炎や煙のシミュレーションなどのトリックは、VR ではうまく反映されません。 ほとんどのケースにおいて、爆発や煙のトレイルなどの VFX のシミュレーションには 2D パーティクルではなくスタティック メッシュを使います。
    近距離フィールド エフェクトあるいはカメラに近いエフェクトは VR できれいに出ますが、これはエフェクトがスタティック メッシュ パーティクルで作成されている場合に限ります。

  • VR と Transparency - 一般的に透過処理は、何も変更がないことを確認するために各フレームを再評価する必要があるため、3D グラフィクスでのレンダリング透過処理は非常に負荷が高くなります。 この再評価のために、VR のレンダリング透過処理は負荷があまりに大きすぎて、本来の良さが生かせなくなります。 ただし、DitherTemporalAA マテリアル関数を使えばこの問題を回避することができます。 このマテリアル関数は、マテリアルが透過処理を使っているかのように見せることができますし、セルフ ソートなど一般的な透過処理の回避も可能です。

    クリックしてフルサイズで表示

  • Fake everything you can (できる限り真似をする) - 動的シャドウ、ライティングなど、負荷の大きいレンダリング オプションを再生成する小技を頭に入れておくと、VR で希望するパフォーマンスが得やすくなります。 Showdown では、キャラクターに動的シャドウをキャストすると各フレームの負荷が大きすぎることが判明したので割愛しました。 すると今度は、キャラクターが移動中に宙に浮いているように見えてしまいました。 そこで、偽の BLOB シャドウを導入して修正すると、位置と強度を大幅に調整することができました。 これにより、キャラクターがグラウンドや他のオブジェクトに近づくと、シャドウをキャストしているように簡単に見せることができるようになりました。

    クリックしてフルサイズで表示

VR に関する既知の問題

HMD 機能が原因で、ビデオ ゲーム開発には必須だったアート技術にあった影響がなくなってしまいました。 以下は、VR では期待どおりに動かない機能、およびそれに対する回避策です。

  • スクリーン スペース反射 (SSR): SSR は VR で機能しますが、生成される反射をワールド内の反射と一致させる上で問題が発生する可能性があります。負荷がかなり小さく、反射アライメントの問題も減るため、SSR ではなく 反射プローブ を使います。

ノーマル マッピングに関する問題

VR のオブジェクトの法線マップを表示すると、以前存在していたインパクトがなくなっていることに気が付くと思います。 法線マップが両眼表示や運動視差を考慮していないためです。 このため、法線マップは VR デバイスではフラットに見えます。 ただしこれは、法線マップを使用する必要がないという意味ではありません。 法線マップにしようとしているデータをジオメトリで作成すべきかどうかを、しっかり評価する必要があるという意味です。 以下は、法線マップの代わりに使用することができる技術です。

  • 視差マッピング : 視差マッピングは、法線マッピングでは考慮しないデプスキューを考慮することで法線マッピングを次のレベルに高めます。視差マッピング シェーダーは、オブジェクトを実際よりも詳細に表示して、深さ情報を詳しく表示できます。これは、どのアングルから見ても、その視点からの正確な深度情報が表示されるように視差マップが常に補正しているからです。視差マップは、敷石道や表面の細部の表現に最適です。

Tags