ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
この記事の要点
- Lumen は UE5 に標準で搭載された、ライトマップのベイクを前提としない動的なグローバルイルミネーション(GI)と反射のシステム。
- 有効化そのものは簡単で、プロジェクト設定の「Dynamic Global Illumination Method」と「Reflection Method」を Lumen にするだけ。
- 内部ではシーンをメッシュ距離フィールドと Surface Cache という簡略表現に置き換え、そこへレイを飛ばして間接光を集めている。
- トレース方式にはソフトウェアレイトレーシングとハードウェアレイトレーシングの 2 系統があり、後者は DirectX 12 と対応 GPU が前提。
- 時間帯が変わる・オブジェクトが動く制作に強く、低スペック固定ターゲットや前方シェーディングとは相性が悪い。
Lumen は Unreal Engine 5 (UE5) から導入された、完全に動的なグローバルイルミネーションと反射のソリューションです。従来の Unreal Engine では、屋内の柔らかい照り返しや壁からの色移り(カラーブリード)を得るには Lightmass によるライトマップのベイクが実質的に必須で、ライトを 1 灯動かすたびにビルドを待つ必要がありました。Lumen はこのベイク工程そのものを不要にし、エディタでライトを動かした瞬間に間接光まで追従する、という制作体験を実現するために作られています。
ただし「有効にすれば勝手にきれいになる」ものではありません。Lumen はシーンを厳密にトレースしているわけではなく、簡略化された表現の上で計算しています。この前提を知らないと、光漏れや暗さの原因が分からなくなります。
1Lumen が解決している問題
ゲームエンジンにおける ライティング は、大きく「直接光」と「間接光」に分けられます。難しいのは間接光、つまり床や壁で跳ね返った光です。赤いカーペットの上に立つ白い柱がうっすら赤みを帯びる、窓のない廊下でも壁の反射だけで薄暗く見える、といった表現がこれにあたります。
間接光は本来、光が何度も反射する経路をすべて追う必要があり、リアルタイムでの厳密な計算は現実的ではありません。そこで従来は、オフラインで計算した結果をテクスチャ(ライトマップ)に焼き込む方式が主流でした。品質は高い反面、次のような制約が付きまといます。
- ライトや形状を変えるたびにビルドが必要で、イテレーションが遅い
- ベイク結果は静的なので、時間帯の変化や破壊表現に追従できない
- ライトマップ用の UV とテクスチャ容量を、アセットごとに管理しなければならない
- プロシージャルに配置される要素や、実行時に生成されるジオメトリには原理的に使えない
Lumen は「多少の精度を犠牲にしてでも、毎フレーム計算し直せる間接光」を目指した仕組みです。ライトマップを持たないので、ライトを動かせば照り返しも即座に変わり、実行時にスポーンしたオブジェクトも周囲に光を返します。
2仕組み — Lumen Scene と Surface Cache
Lumen の中核にあるのが、実際の描画シーンとは別に持つ簡略化された世界の表現です。おおまかには次の要素で構成されます。
メッシュ距離フィールドは、スタティックメッシュの形状を「その地点から最も近い表面までの距離」というボリュームデータとして事前に持っておくものです。三角形と一本ずつ交差判定するより桁違いに速くレイの当たり判定ができるため、ソフトウェアレイトレーシングの土台になります。プロジェクト設定で「Generate Mesh Distance Fields」を有効にしていないと生成されないため、Lumen をソフトウェアモードで使う場合はここが必須になります。
Surface Cacheは、メッシュ の表面を複数の向きからキャプチャして、ベースカラー・法線・放射(エミッシブ)などを低解像度で保持したものです。レイが何かに当たったとき、その地点の「光っている量」をここから読み出します。マテリアル の見た目が Lumen の GI に反映されるのはこの Surface Cache を経由しているためで、逆に言えばここに載らないもの(後述する半透明マテリアルなど)は間接光に寄与しません。
トレースは段階的に行われます。まず画面内の情報を使った安価なスクリーントレースを試し、答えが出ない場合に距離フィールドやハードウェアレイトレーシングへとフォールバックします。この多段構成が、Lumen の速度と「画面外の情報は精度が落ちる」という特性の両方を生んでいます。
3有効化の手順
新規プロジェクトを標準設定で作った場合、Lumen は既に有効になっていることがほとんどです。既存プロジェクトで切り替える場合や、意図せず無効になっている場合は次の順に確認します。
- プロジェクト設定を開く:メニューの「編集 → プロジェクト設定」から、Engine カテゴリの「Rendering」を選びます。
- GI 方式を Lumen にする:「Global Illumination」セクションの Dynamic Global Illumination Method を Lumen に設定します。
- 反射方式を Lumen にする:「Reflections」セクションの Reflection Method を Lumen に設定します。GI だけ Lumen にして反射がスクリーンスペース反射のままだと、見た目が噛み合わないことがあります。
- メッシュ距離フィールドを有効化する:同じ Rendering 内の Generate Mesh Distance Fields をオンにします。この項目の変更はシェーダの再コンパイルとエディタ再起動を伴うため、時間がかかります。
- スタティックライティングの扱いを決める:Lumen を主軸にするなら Allow Static Lighting をオフにする構成が一般的です。ライトマップ関連の処理が省かれ、品質・パフォーマンスの面で有利になります。ただしベイク済みのレベルが混在するプロジェクトでは影響が大きいので、切り替え前に方針を決めてください。
- ライトの Mobility を確認する:Lumen は動的な GI なので、シーンのライトは Movable もしくは Stationary で使います。Static にしたライトはベイク前提の扱いになり、Lumen の間接光としては期待どおりに働きません。
- スカイライトを置く:屋外・屋内を問わず、空からの環境光を担う Sky Light は Lumen の見た目に大きく影響します。空の状態に追従させたい場合は Real Time Capture を使う構成が扱いやすいです。
- 結果を確認する:ビューポートの表示モードから Lumen 関連のビジュアライズ(Lumen Scene や Surface Cache)に切り替えると、Lumen が実際にどう世界を見ているかを確認できます。メニューの階層や名称はバージョンによって変わります。
なお、手順 4 のようにシェーダの再コンパイルが走る設定変更のあとは、初回のレンダリングやスクリーンショット取得が極端に重くなることがあります。設定を変えた直後の重さは一時的なものなので、コンパイルが落ち着いてから見た目を判断してください。
4ソフトウェアとハードウェアのレイトレーシング
Lumen のトレースには 2 系統あり、どちらを使うかで品質・対応範囲・要求スペックが変わります。
| 観点 | ソフトウェアレイトレーシング | ハードウェアレイトレーシング |
|---|---|---|
| 当たり判定の対象 | メッシュ距離フィールドおよびそれを統合したグローバル距離フィールド | 実際の三角形(GPU のレイトレーシング機能を使用) |
| 必要な環境 | 距離フィールドの生成が有効であること。対応 GPU の幅は広い | DirectX 12 と、レイトレーシングに対応した GPU。プロジェクト側でハードウェアレイトレーシングのサポートを有効にする必要がある |
| 形状の精度 | 距離フィールドは形状を粗く近似するため、薄い壁や細かい造作は再現しきれない | 実形状に沿うため、薄い板や細部でも破綻しにくい |
| 反射の質 | ざらついた面の反射に向く。鏡面に近い面は苦手 | ヒットライティングを併用すると、鏡面に近い反射でも精度が出しやすい |
| コスト | 相対的に軽い | 相対的に重い。シーンによって差が大きい |
共通して押さえておきたいのは、マテリアルのワールドポジションオフセットによる変形は距離フィールドに反映されない点です。風で揺れる草木のように頂点シェーダで形を動かすものは、Lumen 側では元の位置にある扱いになり、影や照り返しがずれます。
5品質に効く主なパラメータ
Lumen の詰めはプロジェクト設定と Post Process Volume の両方から行います。おおむね、プロジェクト設定が既定値、Post Process Volume がレベル単位・エリア単位の上書きという関係です。
| パラメータ | 効果 | 使いどころ |
|---|---|---|
| Lumen Scene Detail | Lumen Scene に細かいオブジェクトをどれだけ取り込むか | 小物の照り返しが出ないときに上げる。上げるほど重くなる |
| Final Gather Quality | 間接光を集める際のサンプル品質 | ノイズやちらつきが気になるときに上げる |
| Max Trace Distance | レイを飛ばす最大距離 | 広い屋外で遠景からの光が届かないときに伸ばす |
| Lumen Scene View Distance | Lumen Scene として維持する範囲 | 大規模レベルで遠方のオブジェクトが GI に寄与しないときに調整 |
| Reflection Quality | 反射のトレース品質 | 反射がぼやける・ノイズが出るときに上げる |
| Max Roughness To Trace | どこまで粗い面に対して反射トレースを行うか | ざらついた面の反射が省かれてしまうときに上げる |
加えて見落としやすいのがエンジンのスケーラビリティ設定です。グローバルイルミネーションや反射のスケーラビリティを最も低い段階にすると Lumen は動作しません。「設定したのに効かない」ときの定番の原因なので、まずここを疑ってください。
6向いている場面・向かない場面
昼夜が変化する、あるいは天候が変わるオープンワールド。ライトの位置や強さを頻繁に触るルックデヴ。プレイヤーが壁や地形を壊す・組み立てるゲーム。実行時に生成・配置される建物や小物が多いシーン。ストリーミングを前提とした大規模レベルで、ベイク待ちを避けたい制作。
要求スペックを大きく下げたいタイトル。前方シェーディングや VR 向けの構成。完全に静的で、時間をかけたベイクのほうが品質・負荷ともに有利になるシーン。薄い板を多用した建築的なジオメトリで、光漏れの対策コストが高くつく場合。
「動的である」ことのコストは小さくありません。ベイクなら描画時にテクスチャを引くだけで済んだ間接光を、Lumen は毎フレーム計算し続けます。最低動作環境と、ライティングが動く必要が本当にあるかを天秤にかけて選ぶのが基本です。レベルの土台を選ぶ段階から関わる話なので、レベルの「基本」テンプレートと「オープンワールド」テンプレートの違い もあわせて確認しておくと判断しやすくなります。
7まとめ
Lumen はベイクを不要にする代わりに、シーンを簡略表現へ置き換えてトレースするという割り切りをした仕組みです。有効化自体はプロジェクト設定の 2 項目で完了しますが、狙った絵を出すには、距離フィールドの生成、ライトの Mobility、スカイライトの有無、スケーラビリティ設定といった周辺条件が揃っている必要があります。うまく光らない場合は、まず「Lumen 自体が動いているか」「Lumen Scene に対象が載っているか」の 2 点から切り分けるのが近道です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- Lumen とは?リアルタイムGIの仕組みと有効化
- Lumen が暗い・反射しない時の確認ポイント
- ライトの種類と使い分け(Directional / Point / Spot / Rect)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- UE5 の Lumen とは|リアルタイムGIの仕組みと有効化手順 NEW 2026-08-03 07:45:20
- UE5 の Lumen が暗い・反射しない|原因と確認ポイント NEW 2026-08-03 07:45:20
- UE5 のライトの種類と使い分け|Directional/Point/Spot/Rect NEW 2026-08-03 07:45:20
- UE5 の Nanite とは|有効化手順と対応条件を解説 NEW 2026-08-03 07:45:20
- UE5 の Nanite が効かない|原因と対処の切り分け NEW 2026-08-03 07:45:20
- UE5 の Nanite と LOD の違い|使い分けの指針 NEW 2026-08-03 07:45:20
- UE5 のマテリアルとマテリアルインスタンス|違いと使い分け NEW 2026-08-03 07:45:20
- UE5 のマテリアルノード|Lerp・Fresnel・Panner NEW 2026-08-03 07:45:20
- UE5 のマテリアルブレンドモード|Two Sided と選び方 NEW 2026-08-03 07:45:20
- UE5 の Enhanced Input 入門|IAとIMCの基本 NEW 2026-08-03 07:45:20
- UE5 の Enhanced Input 実装手順|BPでキー入力 NEW 2026-08-03 07:45:20
- UE5 の旧入力から Enhanced Input へ移行する手順 NEW 2026-08-03 07:45:20
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
コメントを削除してもよろしいでしょうか?