引き続き、VR用公式チュートリアルネタです。
今回はVRにおけるUI(ユーザーインターフェース)について
まとめていきます。(翻訳作業に近いことしてます…)
http://unity3d.com/jp/learn/tutorials/topics/virtual-reality/user-interfaces-vr?playlist=22946
(参考URL)
※本記事はUnityの基礎知識及び、VR開発機材を持っている方が対象
HUD (Non-diegetic)
一般的なゲームではスコアや体力ゲージなどを常にスクリーンの手前に表示する
HUD(ヘッドアップディスプレイ)と呼ばれるUIが一般的に使用されています。
ディスプレイを一定の距離で見るスタンスであればこのUIで全く問題ありませんが
VRの場合、「ディスプレイ」 と 「目」の距離が近いため
HUDタイプだと焦点を併せ難くなってしまいます。
そのため、UnityでVRコンテンツを作成する場合、
HUDタイプのUI(CanvasのRenderModeの[ScreenSpace – Overlay])は
サポート対象外としているようです。
空間UI (Spatial UI)
HUDのようにスクリーン手前にUIを表示するのではなく、
3D空間上にUI表示する手法を「空間UI(Spatial UI)」と言い
VRゲームのUIとして多くの作品に使用されております。
Unityでは CanvasのRenderModeを[World Space]で配置されたUIがこれに該当します。
(あまり馴染みのない言い方…)
↑のテキスト部分が「Spatial UI」と呼ばれるもの
ただ、空間上ならどこに置いても良いという訳ではなく、
近い場合では読書する距離 (1m – 3m) くらいで、
遠い場合でも 10m くらい離れたところに
ビルの立て看板の文字の大きさくらいにするのがベストだと思います。
また、プレイヤーの情報等を常に見える場所に表示したい場合
VRカメラの子オブジェクトとしてUIを配置することで
どこを向いても常に一定の場所に表示させることが出来ますが、
VRの場合、周囲を見つつ、手前にあるUI も見ることになってしまい、
ユーザーへの不快感(ベクション)につながるため控えたほうが良いようです。
【カメラの子オブジェクトとして配置】 (不快感を感じやすい)
Diegetic UI
空間UIの代替え案として、
オブジェクト自体がユーザーに情報を表示する役割を持たせる手法があります。
例えば、壁掛け時計、テレビ、携帯端末などが挙げられます。
こういった手法を「Diegetic UI(ダイジェティック UI)」と言うそうです。
(これまた馴染みのない言い方…)
(広い意味では、空間UIとも言えるかも…)
自機に追従するように表示されているのが「Diegetic UI」と呼ばれるもの
3D空間上のUIタイプとしては以下の3つが一般的
・HUD
・Spatial UI
・Diegetic UI
VR上では以下2つを用いるのが一般的
・Spatial UI
・Diegetic UI
感覚的に判っていたことが多かったけど、
それを文字で説明するとなるとすごく大変でした。。。