emotionサイトトップ >UE消費電力
emotionサイトトップ >
UE消費電力 >【UE4】FPS(フレームレート)を制限して消費電力を抑えるコンソールコマンド[t.MaxFPS]
UE4はデフォルト設定のままでは、3Dリアルタイムレンダリング中は常時GPUの性能をフルパワーで使用する為、3D描画している画面が表示されていると消費電力が大幅に上昇します。
TDPの大きいハイエンドのグラフィックボードを搭載する程消費電力は大きくなります。

テンプレートの椅子とテーブルだけがあるポリゴン数が少ないシーンでもGPUをフルパワーで使用される為、
フレームレートは120fps前後だったりします。
ちなみにGPUは75TDPのGTX750Tiを使用していますが、この時の消費電力は111[W]でした。
デスクトップ画面表示時のアイドル時では60[W]です。
ゲームを作成の序盤段階では、GPUをフルパワーで使用する必要が無いので、
フレームレートを制限してGPUをフルパワーで使用しないコンソールコマンドを使用します。
コンソールコマンドを入力する方法は主に2つあります。
■一つはアウトプットログウインドウから入力する事です。
アウトプットログウインドウは
Window ⇒ Developer Tools ⇒Output Log
で表示されます。

アウトプットログウインドウの下の入力欄からコンソールコマンドを入力出来ます。

■もう一つの方法はホットキーを押して、コンソールコマンド入力欄を表示させます。
ちなみにコンソールコマンドのホットキーは日本語キーボードでは割り当てられていないので、
プロジェクト設定でバインドする必要があります。
Edit ⇒ Project Settings ⇒ Engine ⇒ Input
を選択します。


Console欄のConsole Keysの行にある+ボタンをクリックして、ホットキーを追加します。
ホットキーが追加されたら▼ボタンをクリックして、リストから@キーを選択します。

これでプレイ中に@キーを押すと、コンソールコマンド入力が可能になります。

コンソールコマンドに
t.MaxFPS 10
と入力すると、フレームレートの上限を10フレーム/秒に制限する事が出来ます。

一度コンソールコマンドを入力するとプレイからエディターに戻っても、その状態が維持されます。

フレームレートが10FPSに制限されました。
まるでPS3のFarCry3をプレイしている時のようなカクカク動作になりますw
ちなみにフレームレートをデフォルト設定に戻すには、
t.MaxFPS 0
と入力します。
尚、コンソールコマンドは主にデバッグ用(古いPCゲームではチートコード入力に使用していました)に使用される類のものなので、一時的なものです。
その為、プロジェクトを再起動すると、コンソールコマンドで入力したものは全てリセットされます。
プロジェクトを起動する度に、t.MaxFPSのコンソールコマンドを入力する必要があるので、その手間を省くには.iniファイルにコンソールコマンドを記入しておきます。
UE4をインストールしたフォルダにある
~\Epic Games\4.13\Engine\Config\ConsoleVariables.ini
を開きます。
(私はバージョン4.13をインストールしているので、4.13フォルダ以下のフォルダの.iniファイル指定しています。)

ConsoleVariables.iniを開いたら、
[Startup]
の下に
t.MaxFPS = 10
と追記します。
ちなみに
;[Startup]
と記載されている方は先頭に ;(セミコロン) が付いているので、ただのコメントです。
セミコロンが付いていない方の[Startup]の下に記載する必要があります。
これでプロジェクト起動時に自動的にt.MaxFPSのコンソールコマンドが実行されます。
フレームレート制限でGPUへの負荷が減りましたが、リアルタイムレンダリングしている事には変わりないので、
アクタやエフェクトが増えてくると恐らくフレームレート制限してもGPU負荷が増えて消費電力が増える可能性があります。
そんな場合はリアルタイムレンダリングを止める事も可能です(勿論プレイ中は出来ません)。

これでリアルタイムレンダリングしなくなります。ビューポート左上の▼をクリックして、Viewport OptionsのRealtimeのチェックを外す
あと、ブループリントウインドウを開いたりペルソナウインドウを開くと別ウインドウで開かれるので、
デバッグ時にはビューポート画面とブループリントを同時に見れて便利なのですが、
別ウインドウで開いている間はビューポート画面のリアルタイムレンダリングが(Viewport Optionsで許可している場合)行われているので、
ブループリントウインドウ表示中もGPUに負荷がかかっています。
設計段階ではビューポートを平行表示させてリアルタイムで確認する事はあまり無いので、デバッグ時以外は別ウインドウで開かずタブ化する方法があります。
タブ化した場合はブループリント画面表示中はビューポートは非アクティブになるので消費電力が抑えられます。
タブ化する方法はWindowsのウインドウ操作と同じです。
ブループリントウインドウのウインドウバーをドラッグして、ビューポートのウインドウにドロップします。

■消費電力測定まとめ
PC環境:
・CPU:Intel Core i5-2400【TDP:95W】
・GPU:ASUS GTX750TI-PH-2GD5 【TDP:75W】
パターン | 消費電力[W] |
アイドル(UE4未起動) | 60 |
リアルタイムレンダリング:OFF | 71 |
FPS:0(制限無し) | 111 |
FPS:60制限 | 90 |
FPS:30制限 | 74 |
FPS:10制限 | 67 |
ブループリント画面表示(タブ化) | 71 |
FPS:10制限が最も低消費電力になっていますが、Windows10で動作させているので測定時にたまたまWindows10のバックグラウンド処理が極端に減っていただけだと思います。普通に考えたらリアルタイムOFFが一番処理負荷が少ないですからね。