前回 p930 でUnityの3つのレンダリングパイプラインを比べたとき、最後に「次回はUnreal側でも同じこと――設定を切り替えると見た目と重さがどこまで変わるか――を試す」と予告しました。さらにさかのぼると p924 で、同じ3DゲームをUnityとUnrealで作ったとき、UnrealがMacで約12FPSと重かったのが引っかかっていました。今回はその宿題の回収です。
・Unrealが「重い」と言われがちな本当の理由(=初期値が“全部盛り”だから)
・Lumen(リアルタイムの光の回り込み)をオフにすると、見た目と重さがどう変わるか
・Nanite(超高密度メッシュ技術)が「見た目そのままで軽い」とはどういうことか
・スケーラビリティを一段落とすだけで、見た目ほぼ同じで約2倍速くなる話
前回までの宿題:「Unrealは重い」って本当?
「Unrealは画質がすごいけど重い」――よく聞く評判です。確かにp924でMacで動かしたとき、Unreal版は約12FPSとカクついていました。でもあれは、Unrealの初期設定が“いきなり全部盛り”だったから、というのが今回の主張です。
Unrealは初期状態で Lumen(リアルタイムの間接光・反射) と Nanite(超高密度メッシュ) が両方オン、しかも品質プリセットは最上位の「シネマティック」に近い設定で動きます。つまり“映画向けのフル装備”が最初から入っている状態。これを用途に合わせて調整すれば、見た目をほぼ保ったままグッと軽くできるはず。今回はそれを、設定を1つずつ切り替えて実機で確かめます。
Unrealの考え方:1つのレンダラーを“設定で調整”する
前回のUnity(p930)は、ビルトインRP・URP・HDRP という3つの“描き方の土台”を選んで差し替える方式でした。Unrealはそこが対照的で、強力な1つのレンダラーを、設定で調整する方式です。
| Unity(前回) | Unreal(今回) | |
|---|---|---|
| 考え方 | 土台を3つから選ぶ (ビルトイン/URP/HDRP) | 1つの強力な土台を“設定で調整” |
| 軽くしたいとき | 軽いパイプラインに替える | Lumen・品質設定などを下げる |
| リッチにしたいとき | HDRPに替える | 初期値のまま(もう全部入り) |
だから今回はプロジェクトは1つだけ。同じシーンのまま、設定スイッチを切り替えて、見た目と重さの変化を見ていきます。主役は次の3つの設定です。
- Lumen…リアルタイムで光の回り込みや反射を計算する仕組み(オン/オフ)。
- Nanite…超高密度のメッシュを、見た目を保ったまま軽く描く仕組み(オン/オフ)。
- スケーラビリティ…全体の品質プリセット(低・中・高・エピック・シネマティックの5段階)。
今回の比べ方(同じ1シーンを設定だけ替えて)
比較は条件を揃えて行いました。今回はこうしています。
- 同じWindows PC(GeForce RTX 3060)で、同じ1つのシーンを使い、設定だけを切り替える。
- 差が見えるよう、暗い部屋+色つきの壁+濡れた床+大量の岩を仕込む。岩は合計およそ1,228万ポリゴン(Naniteの効きを見るため意図的に高密度に)。
- 明るさが勝手に変わらないよう露出は手動固定。画面の内部解像度も固定して、純粋に「設定の差」だけが出るようにする。
| 仕込んだもの | 見たい差 |
|---|---|
| 🔴🔵 赤い壁・青い壁+白い天井 | Lumen:壁の色が床や陰に回り込むか |
| 🪞 濡れた床(鏡面寄り) | Lumen反射:景色が床に映り込むか |
| 🪨 高密度の岩(約1,228万ポリ) | Nanite:見た目を保ったまま軽いか |
| 🌇 窓から差す夕日(動的な影) | スケーラビリティ:影や描画距離の質 |
※ Unrealのバージョンは 5.7 を使いました(前回p929のPLATEAU検証は専用環境で5.5.4でしたが、今回は描画設定の比較が目的なので最新の5.7で統一)。シーンの“作り方”自体は今回の主題ではないので、配置やライトはスクリプトで自動構築しています。一方で、差を生んでいる描画設定は、画像と数値の両方で残します。
Lumen オン/オフ:見た目と重さが激変
まずは今回いちばんの主役、Lumen。リアルタイムで「光の回り込み(間接光)」と「反射」を計算する仕組みです。左がオン、右がオフ。同じシーン・同じカメラです。


違いは一目瞭然です。オンでは、赤い壁・青い壁の色が床や岩、陰の部分ににじみ、濡れた床には岩や壁が映り込みます。光が当たっていない面もぼんやり明るく、立体的でリッチ。いっぽうオフにすると、直接光が当たらない面は真っ黒に沈み、床の映り込みも消えて、一気に平面的な絵になります。
| 項目 | Lumen オン | Lumen オフ |
|---|---|---|
| 壁の色の回り込み | 赤→床/岩、青→床に色がにじむ | なし(陰が真っ黒) |
| 濡れ床の映り込み | 岩・壁・光が映る | 消える(床はほぼ黒) |
| 陰の明るさ | 持ち上がって色が乗る | 沈んで黒い |
| GPUフレーム時間(短いほど軽い) | 20.5 ms | 7.3 ms |
| FPS | 44.6 | 118.7 |
Lumen(間接光+反射)だけで、GPU時間の約13ms(20.5→7.3)を使っていました。オフにすると約3倍軽くなる計算です。その対価が「色の回り込み・映り込み・陰のやわらかさ」というリッチさ。p924でUnrealがMacで重かった主因が、このLumenだったことが数字でハッキリしました。逆に言えば、そのリッチさが要らない場面では、Lumenを下げるのが一番効くということです。
※ Lumenのオン/オフは「ポストプロセスボリューム」または r.DynamicGlobalIlluminationMethod/r.ReflectionMethod というコンソール設定で切り替えられます。今回は陰の差をハッキリ見せるため、環境光(Sky Light)をあえて置かず、夕日1灯にしています。
Nanite オン/オフ:見た目そのままで“中身”が218倍
次は Nanite。ものすごく細かい(高ポリゴンな)メッシュを、見た目を保ったまま軽く描く仕組みです。今回の岩は合計約1,228万ポリゴン。これをオン/オフで比べます。


面白いのは、見た目はほとんど区別がつかないこと。なのに“中身”はまったく違います。Naniteがオンのとき、実際に描いている細かい部品(プリミティブ)の数は約15,500。オフにすると約337万=オンの約218倍に膨れ上がります。つまりNaniteは「見た目はフル詳細のまま、描く手間だけを約218分の1に圧縮している」わけです。
| 指標 | Nanite オン | Nanite オフ |
|---|---|---|
| 見た目 | ほぼ同じ(近くで見ても区別困難) | |
| 描画プリミティブ数 | 約15,500 | 約337万(218倍) |
| GPUフレーム時間 | 20.7 ms | 24.1 ms |
| FPS | 44.6 | 39.1 |
今回はGPUが優秀なRTX3060だったため、体感のFPS差は控えめ(44.6→39.1)でしたが、プリミティブ数の差は歴然。ジオメトリの密度や画面に占める面積が増えるほど(数千万ポリ級・影の計算も含めると)、Naniteの効きはさらに大きくなります。Naniteは「重くする技術」ではなく、「重くせずに細かく盛れる技術」。だから基本はオンのままでOKです。
※ ひとつ注意。Naniteを切るときに r.Nanite 0 だけだと、自動生成された“低ポリの代役”が表示されてGPU負荷が変わりません。今回はメッシュ側のNaniteそのものを無効化して、本来の全ポリゴンを描かせた値です。
スケーラビリティ5段階:どこまで落とせる?
最後は全体の品質プリセット スケーラビリティ。低・中・高・エピック・シネマティックの5段階を切り替えました(画面の内部解像度は固定し、品質設定の差だけを見ています)。代表として「低・高・シネマティック」を並べます。



| 段階 | 主な見た目 | GPU時間 | FPS |
|---|---|---|---|
| 低 | GI・影がほぼ消えてフラット(別物の絵) | 3.5 ms | 119.8 |
| 中 | 影は出るがGIが弱く陰が暗い | 5.0 ms | 119.6 |
| 高 | Lumen GIが戻り、陰に色フィル・柔らかい影 | 7.2 ms | 102.4 |
| エピック | 見た目はシネマティックにほぼ並ぶ | 9.8 ms | 90.2 |
| シネマティック | フル品質(GI・反射・影が最高) | 20.5 ms | 44.6 |
注目はエピック(9.8ms/90 FPS)→シネマティック(20.5ms/44.6 FPS)。見た目はほぼ同じなのに、シネマティックは約2倍重いのです。シネマティックは“盛りすぎ”で、映像書き出しなど止め絵向け。リアルタイムで動かすなら「エピック」に一段落とすだけで、見た目そのままに約2倍速くなる――これが今回いちばんの収穫でした。なお「低」はGIも影も消えて軽い代わりに、絵がフラットな別物になります。
Forward と Deferred(用途の違い)
もうひとつ、Unrealにはレンダラーの方式として Deferred(ディファード) と Forward(フォワード) の2つがあります。今回の比較はすべて初期設定のDeferredで行いました。ざっくりの使い分けはこうです。
| Deferred(既定) | Forward | |
|---|---|---|
| 得意なこと | Lumen・多数の動的ライト | MSAA(くっきりした輪郭)・軽さ |
| 向いている用途 | リッチな表現・通常のPCゲーム | VR・モバイル・半透明が多いシーン |
| 注意点 | MSAAが使えない(TAA/TSR前提) | Lumenが使えない |
ポイントは、ForwardではLumenが使えないこと。なので今回の主役(Lumen・Nanite・スケーラビリティ)はすべてDeferredで比べました。Forwardは「VRやモバイルなど、軽さと輪郭のくっきりさが欲しい場面で選ぶ別の道」と覚えておけば十分です(用途が違うので、同じリッチな絵を比べる土俵には乗りません)。
まとめ:「Unrealは重い」は誤解だった
今回の検証を一言でまとめると、「Unrealは重い」は誤解でした。重いのは初期値が“全部盛り(Lumen+シネマティック品質)”だからで、用途に合わせて調整すれば十分コントロールできます。
- Lumen:リッチさの主役だが、GPU時間の約13msを消費。不要ならオフ/品質を下げると一番効く(約3倍軽い)。
- Nanite:見た目そのままで“描く手間”だけを大幅圧縮する技術。重さの主因ではないので基本オンのままでOK。
- スケーラビリティ:シネマティック→エピックに一段落とすだけで、見た目ほぼ同じで約2倍速。実用の最適はエピック。
実際、p924で重かった“全部盛り”(44.6 FPS)も、エピックに落とすだけで90 FPSへ。RTX3060でもこの通りです。軽くしたいときに最初に下げるべきは①品質プリセット(→エピック)→②Lumen→③解像度の順。Naniteはそのまま、というのが今回の結論です。
前回のUnity(p930)は「土台を選んで差し替える」、今回のUnreal(p931)は「1つの土台を設定で調整する」。アプローチは違っても、“何を最初から欲しいかで決める”という勘どころは同じでした。エンジン選びや設定で迷ったときの、ひとつの手がかりになれば嬉しいです。
それでは、今回はここまで。最後までありがとうございました😊