UE4 VRのススメ

Unreal Engine 4を使ってVRの開発をしたい!
と思われている方も多いと思いますので、ここで簡単に90FPSを出す方法を列記します。

今回公式のこちらのページを見ながら実際に試してみた感想も交えつつ説明します。

①iniファイルの設定をVR向けに設定
②プロジェクト設定をモバイルにする(チューニングを行える方は別にしなくても大丈夫)
③メッシュやスケルタルメッシュの影を全てOFFにする
④Lightはスタティックメッシュのみにする。

まず、①の設定ファイルをVR向けに設定
下記の設定を「DefaultEngine.INI」に追記してください。

[SystemSettings]
r.VolumeMultiplier=1.0
r.screenpercentage=130
r.SeparateTranslucency=0
r.HZBOcclusion=0
r.FinishCurrentFrame=1
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.SSSSS=0
r.TranslucencyVolumeBlur=0
r.TranslucencyLightingVolumeDim=4
r.MaxAnisotropy=8
r.LensFlareQuality=0
r.SceneColorFringeQuality=0
r.FastBlurThreshold=0
showflag.decals=0
r.SSR.MaxRoughness=0.1
r.compileshadersfordevelopment=0
r.rhicmdbypass=0
r.TiledReflectionEnvironmentMinimumCount=10
sg.EffectsQuality=2
sg.PostProcessQuality=0

基本的にはこれでまず90FPSは出るようになると思います。
Defaultの設定のままでは全てが最高設定なので、まず90fpsを出すのは難しいかと思います。

次に、②の設定をモバイルへ
こちらはチューニング出来る方は省いて良いと思います。
公式では下記画像の状態を推奨しております。
VR_Project_Settings
これを行ってしまうと、表現が限られてしまうので後々見た目を豪華にする際に困るかもしれません。

次に、③の影をOFF
こちらは言うまでもなく、影はLightingの中で一番コストが高いです。
まずは全てOFFにしておくことを推奨します。
こちらについてはEpic社員のシモダさんがパフォーマンス向上方法についての記事を書かれています。
http://qiita.com/junyash/items/3ba225d8a2f86046cd23
こちらは75FPSですが、現在はOculus、HTC vive共に90FPSを出す必要があります。(ハードル上がってるじゃん!)

次に、④Lightingはスタティックのみにする。
この際ライトマスボリュームの設定を忘れないで下さい。
ライトマスがない場合は光源が焼き付けされなくなるので注意が必要です。
また、スカイライトの影響もでなくなるので注意が必要です。

ステーショナリーは③つまでで、④つ目になると干渉してムーバルに変更されてコストが跳ね上がります。
こちらについてはEpic社員のスミオさんのブログに詳しく書かれています。
http://darakemonodarake.hatenablog.jp/entry/2015/12/16/UE4/Stationary

最初はなるべくどこに負荷がかかるかをチェックしながら作っていくと良いと思います。
最後に、パフォーマンスの計測方法を載せておきます。

■CPU面
コンソールコマンドで「stat SceneRendering」と入力
主にドローコールについて調べていくことになります。
■GPU面
「Shift+Ctrl+,」でGPUプロファイラを起動することができます。
こちらで各種コストをチェックできます。
どの項目が何に該当するかは先程紹介したシモダさんのブログを参考にしてみてください。

ぶっちゃけ視覚的によくわからん!ということは、一度プロジェクトをパッケージ化して下記手順でチェックすることをオススメします。
「stat startfile」でスタート「stat stopfile」で終了
格納場所は下記ディレクトリ内になります。
.\Saved\Profiling\UnrealStats\レベル名のフォルダ\レベル名.ue4stats
というFileが作成されます。

あとは以下の手順で読み込みます。
fro

セッションフロントエンドを表示させたら、プロファイラのタブをクリックしてロードを選択します。
fro1

先ほどとったログファイルを読み込みます。
adf
結果がこちらになります。
FPSと赤がCPUで青がGPUの負荷になります。
全て同時に見れるのでオススメです。
この方法はモバイルでもPCでも使えるので是非マスターしましょう!