OVR Vignette でビネット効果 (トンネル効果)を発生させて移動時のVR酔いを軽減させる 【Oculus Integration】
今回の記事はOculus Integration v14 から追加された OVR Vignette を用いたVR酔い対策についてです.
Vignette 効果 (トンネル効果)
こちらの画像のことです.
移動時に周辺視野をぼやけさせることで視覚から得られる情報量を軽減させ,VR酔いを防ぐことに繋がる方法です. その他のVR酔い対策について興味がある場合は以下の記事が詳しいと思います.
Post Process Stack v2
Post Process Stack v2 に Vignette があります. 設定方法については下記記事が詳しいと思います.
Cameraに PP Layer をアタッチし,PPSを適用させたい範囲に PP Volume を付ける感じです.
OVR Vignette
ただ,他のPPSを使わずに,Vignetteのみを利用したい場合は,Oculus Integration v14 から追加された OVR Vignette スクリプトをMain Cameraにアタッチするだけで,Vignette効果を簡単に適用できます.
Mesh Complexity
Vignette効果のメッシュの強さ.Very Simple でもっともTriが少なく,Very Detailed でもっともTriが多くなります.
Very Simple だとカクツキが目立ちますが,Normal と Very Detailed の間では, 違いはVRHMDを被る上では,あまり違いがわかりにくいので, デフォルトの Normal でよいかと思います.
Falloff
Falloffの外観の調整です. 光が光源から異動する際,通常は強度が低下し,光源が照らすことが出来る領域が制限されます. この減「強度が低下」している現象をFalloffといいます. 減衰係数?
少し難しい話ですので,こちらのWikiを読むといいかもしれません.
Constant-Linear-Quadratic Falloff - Valve Developer Community
Linearだとぼやけ(黒)の領域が増え,Quadraticだとぼやけ(黒)の領域が減っている感じです. 違いは画像を見て比較した方がわかりやすいです.
Vignette Field OF View
Vignette の FOVです. 値が小さいほど領域が狭まり,大きいほど広くなります. Rift S を被った場合,個人的には 75 にすると程よい感じになりました.
Vignette Aspect Ratio
Vignette のアスペクト比です. こちらは円形を保ちたい場合は1でよいでしょう.
Vignette Falloff Degress
Vignette Falloff の領域の広さです. 数値が低くなるほど,ぼやけの範囲が小さくなります.
Rift S を被った場合,個人的には 15 にすると程よい感じになりました.
Vignette Color
Vignette の色です. VR酔い対策ならデフォルトの黒でよいかと思います. 他の使い方,例えば流血表現などであれば,赤に変更することもできます.
Vignette効果発生のサンプルスクリプト
アナログスティック入力を取得して,magnitudeが閾値を超えていたら, Vignette効果を発生させ,超えてない場合は発生させないようにしています.
private static readonly float THRESHOLD_MOVE = 0.15f; Vector2 stickL = OVRInput.Get(OVRInput.RawAxis2D.LThumbstick); if (stickL.magnitude > THRESHOLD_MOVE) { // 動く時,Vignette効果を有効化する _vignette.enabled = true; } else { // 静止する時,Vignette効果を無効化する _vignette.enabled = false; }
実際にやってみた
こんな感じになります.
終わりに
OVR VignetteをMain Cameraにアタッチし,移動時にenableにするだけで簡単なVR酔い対策に繋がります.