LumberyardのOculus Rift(VR)開発設定　初級編

[Lumberyard Advent Calendar 2017] (https://qiita.com/advent-calendar/2017/lumberyard) 24日目、代理で投稿します！ 
書いた日が東ゲ部で[【第一回】Amazon Lumberyardもくもく会](https://togebu.doorkeeper.jp/events/69860)を開催しており、そこでVR開発をLumberyardで出来ないか、ドキュメントを見て検証していました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/fa0923d7-28cc-0dc3-36b4-cd132b26e950.png)


結果的にできたので、LumberyardでVR開発する際の最低限の設定を記述します。
こちらは公式ドキュメントの[バーチャルリアリティのためのプロジェクトの設定](https://docs.aws.amazon.com/ja_jp/lumberyard/latest/userguide/virtual-reality-configuring.html)を参考にしています。

※超最低限の起動の確認方法です
※VR最適化は調査中です
※エンジンはCドライブにインストールしています。他のドライブでは動作するか保証できません。

# 1.VR関係のGemを有効にする

VR関係のGemを有効にしましょう。
そもそもGem自体の設定は[LumberyardのGem設定　初級編](https://qiita.com/YuukiOgino/items/752af4ca42e93cea9c71)に書かれています。

※[プロジェクトの再ビルド](https://qiita.com/YuukiOgino/items/752af4ca42e93cea9c71#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%86%8D%E3%83%93%E3%83%AB%E3%83%89)が必要です

まずプロジェクトにあるGemを起動して、以下のOculus、OpenVR、OSVRのどれかを有効にします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/18ea222e-568f-58ee-fd2d-ffde94da0825.png)

今回、Oculus Riftを使いたいので、画像の通りOculusを有効にしています。
有効にしたら、[プロジェクトの再ビルド](https://qiita.com/YuukiOgino/items/752af4ca42e93cea9c71#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%86%8D%E3%83%93%E3%83%AB%E3%83%89)を必ず行ってください。

# 2.HMDを有効にする

Gemを有効にしても、プロジェクトがHMD出力に対応していないのでコンソールコマンドで設定を有効にしましょう。
コンソールコマンドは公式ドキュメントの[必要なコンソール変数の設定](https://docs.aws.amazon.com/ja_jp/lumberyard/latest/userguide/virtual-reality-cvars.html)に書かれています。

コンソールコマンドは公式ドキュメントによると[4つの設定ファイル](https://docs.aws.amazon.com/ja_jp/lumberyard/latest/userguide/console-configuring-cvars.html)があるようですが、今回は手っ取り早くエディターにあるConsole Variablesで街頭の定数を変更してしまいます。

コンソールコマンドは右下の[X]ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/70a3760e-8cfd-419d-4e56-281b6c981f30.png)

するとコンソールコマンドが起動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/bf45f6aa-4d56-ef46-43ee-76d9d7ed5ad0.png)

Searchに「output_to_hmd」を入力します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/995640a3-f17f-da61-ac63-c5dc26e6abf7.png)

このoutput_to_hmdを1に変更します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/6b8238d4-e590-c4ed-b6da-b0b2af5b6a0e.png)

するとViewが少し変な位置に移動したと思われます。これで最低限のHMD出力が完了です。
あとはGamePlayするとプロジェクトのデバッグができるようになります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/9aa1bbf3-44a1-b3fa-4362-147672e5caf2.png)

# 3.必ず最初に設定するコンソール変数

他にも設定の変更が必須であるVR用のコンソール変数があります。

## (1)r_DepthOfFieldを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/90609a40-67f9-466d-c229-64217088d8a6.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/82726a5b-9072-478e-3b40-21ec838b5a95.png)

## (2)r_MotionBlurを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/32008696-bee2-62d0-9102-2b4dc6f894dd.png)

## (3)r_ResolutionScaleを変更
いわゆる解像度のことです。作り方次第ですが、0.5ぐらいに下げても問題ないかと思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/b21d8617-2884-e5e3-8a93-f4e070116143.png)

## (4)e_giを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/006d0e41-d2b8-1f29-bdc2-1c076d58d074.png)

# 4.オプションのコンソール変数

VR用のオプションコンソール変数がいくつかあります。
こちらは必ずしも設定する必要はありませんが、[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/lumberyard/latest/userguide/virtual-reality-cvars.html)によると設定を強く推奨されているため、ほぼ必須といってもいいかもしれません。

## (1)sys_spec_fullを2に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/968a6d44-39ac-ee29-b4af-030801f7e047.png)

## (2)r_ssdoHalfResを3に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/f9411cf6-bb58-0899-ae31-f701c94a9b35.png)

## (3)r_Refractionを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/1084b4bd-a9b1-6646-138c-a5a3161064e8.png)

## (4)r_CBufferUseNativeDepthを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/6e703d33-f2bb-99ab-a6e4-b74c42163d24.png)

## (5)r_DeferredShadingTiledを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/8cc209f9-41f8-f56b-be51-c74126bf6668.png)

## (6)r_SSReflectionsを0に変更
![image.png](https://qiita-image-store.s3.amazonaws.com/0/104377/4bea2ddd-587c-5a69-9bd5-22467017c0d4.png)

# まとめ

これでLumberyardのVR開発ができるようになると思います。
色々とやることがあり大変ですが、これさえやってしまえば基本VR開発はできるので、皆様も素敵なLumberyard製のVRコンテンツを開発しましょう。