Happy My Life

日常とか技術とか

UnrealEngine4(4.5.1)+DK2(0.4.3)で75FPSを実現する

本格的にUnrealEngine4とOculus Rift DK2を使って何か作っていこうとしてる。 UnrealEngine4は、生成されたプロジェクトには、デフォルトでOculus Riftプラグインが設定されているため、最初に何か設定する必要は無い。 ただ、デフォルトで表示させても普通に表示されるだけ。DK2で表示させるためには、起動後に表示の設定を行う必要がある。

DK2に画像を表示させる

詳細については、公式のWikiページであるOculus Rift - Epic Wikiに書かれている。要約すると次の操作でDK2で表示できる。 - スタンドアローンゲームで実行する - コンソールを表示させる(デフォルトではチルダ(~)を入力) - “stereo on"と入力 ちなみにコンソールを表示させて"stereo on"と入力している画面は次のようになる(画面の下端にコンソールが表示されている)

fps75-1

これだけでDK2に表示される。うーん、これはお手軽。他にも設定項目があるのだが、詳細は先のWikiページやUnrealEngine4のソースコードを読むのがよいかと。

ブレて表示されるのは...

表示されてホッとしたのもつかの間。DK2で実際に表示された環境を見回すと、表示物がブレて見える。初めての環境なので、どこからどう手をつけていいのか分からない。 いろいろ調べて観た結果、どうやら、フレームレートが足りていないようだ。"stereo on"でフレームレート(先ほどのコンソールで"stat fps"と入力)を表示させてみた。 次のスクリーンショットがアプリ起動直後にFPSを表示させたところ。さすがにプロジェクト作成直後の状態で37FPS程度しか出ていないのはマズい。ここは本来75FPSでなければならないところなので。

fps75-2

で、ここから75FSPになるよう様々な設定を行っていく。

75FPSで表示するための設定は

今の開発環境は次の通り。 - CPU :Core i7 860 (2.8GHz) - メモリ : 16GB - GPU : nVidia GeForce 750Ti - UnrealEngine : 4.5.1 - Oculus SDK : 0.4.3 設定内容だけど、結論から言うと表示方法の変更(例えば光の処理無くすとか)をせず、設定の変更のみで75 FPSにできた。参考にしたのが、UE4(4.4.3)+Oculus Rift DK2(0.4.2b)で75fpsを出すために試したこと | Oculus Rift | Zabaglioneのさもありなんや、UE4+OculusRift DK2で75fps安定させるまでにしたこと - ぼっちプログラマのメモなど。 で、前者のサイトには次のように書かれていた。

あれこれ調べてみるとUnreal Engineのフォーラムで以下のような記事を見つけました。 ■Oculus Rift DK2 and UE4 4.3: problems with Oculus Runtime 0.4(スレッド#77) 要約すると以下のようになります。 かなり滑らかな結果が得られる現在の私のワークフロー(GPU: AMD R9-290): 1. Oculus Riftの設定: Extended mode (およびディスプレイはAMDコントロールパネルでポートレート回転し、プライマリモニターには設定しません) 2. Unreal Engine 4(UE4)のプロジェクトを開く 3. UE4の Edit -> Project Settings -> General Settingsの “Smooth Frame Rate”のチェックを「外す」 (日本語表記:[編集]-[プロジェクトの設定]-[一般設定]の一番下の”Frame Rate”の中にある”Smooth Frame Rate”のチェックボックスを「外す」) 4. UE4の”Play”(日本語表記:”再生”)の隣にある小さな矢印を押して”Standalone Game”(日本語表記:”スタンドアロンゲーム”)を選択 5. ゲームのロード中にUE4エディタを最小化する 6. ゲームがロードされたらウィンドウ内でAlt + Enterキーを押す75fps到達のために特に重要なのは3と5です。

と書かれていた。これらを試してみたが私の環境で有効だった設定は次の通り。 1. Oculus Riftの設定: “Direct HMD Access from Apps"を指定 2. Smooth Frame Rateのチェックを外す 3. スタンドアロンゲームで起動する 4. コンソールで"hmd sp 100"と入力する ミラーリングを切るとよい(コンソールから"hmd mirror off"と入力)とも書いてあったが、私の環境では特に関係なかった。 これらを設定することで、75FPSが実現できた。先のブラーも無く見やすくなって快適になった。

fps75-3

この段階で75FPSが実現できていないとビデオカード買い換えなきゃいけないわけで(出費が…) UnrealEngine4向けに買ったビデオカードが(今の段階で)無駄にならずにホッとした。