パルテア

どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング 事前計算された照明データ〜

事前計算された照明データとベイクされた照明は同じではありません。

ベイクされた照明データは静的です。たとえば、ゲームオブジェクトがライトプローブの周りを移動すると、その外観が変化することがあります (そのゲームオブジェクトで Contribute Global Illumination が有効になっている場合)。ただし、ライトプローブ自体のデータは変化しません。Unity は、ベイクされた照明データをライトマップ、ライトプローブ、およびリフレクションプローブに保存できます。

Enlighten Realtime Global Illumination は、ベイクされた照明に依存しません。代わりに、事前計算された可視性データを使用して、リアルタイムで移動するライトが光線が到達できるサーフェスにどのように影響するかを判断するプロセスを高速化します。

このセクションには、次のトピックに関する情報が含まれています:

照明データの生成
照明データアセット
GI キャッシュ

ライティング データの生成

Unity では、事前計算されたライティングは、自動プロセスとして、または手動で開始されたときにバックグラウンドで生成されます。これらのプロセスの実行中も、エディターで作業を続けることができます。

エディターは、Enlighten リアルタイム グローバル イルミネーションとベイクされたグローバル イルミネーションを計算するために、異なる手順に従います。進行状況バーには、現在のプロセスに関する情報が表示されます。

ライティングの事前計算の段階を以下に示します。

Enlighten リアルタイム グローバル イルミネーション

ジオメトリの作成
レイアウト システム
システムの作成
アトラスの作成
クラスタリング
可視性
ライト トランスポート
プローブの四面体化
プローブ セットの作成
プローブ

アン​​ビエント プローブ
ベイク/リアルタイム参照。プローブ
Enlighten ベイクド グローバル イルミネーション

ジオメトリの作成
アトラス作成
ベイクド システムの作成
ベイクド リソース
AO のベイク
ベイクド テクスチャのエクスポート
ベイクド ビジビリティ
ベイクド ダイレクト
アンビエントとエミッシブ
ベイクド システムの作成
ベイクド ランタイム
アップサンプリング ビジビリティ
ベイクド インダイレクト
ファイナル ギャザー
ベイクド プローブ セット
合成
データの生成

Unity の事前計算済みライティング ソリューションは、静的ジオメトリのみを考慮します。ライティングの事前計算プロセスを開始するには、シーン内に少なくとも 1 つの静的ゲームオブジェクトが必要です。

手動で事前計算を開始すると、Unity エディターはシーンのライティングのすべての側面を評価して計算します。リフレクション プローブのみを再計算してベイクするには、[ライティングの生成] オプションの [リフレクション プローブ] [ライティング ウィンドウ] を選択します。

ビルドする前に

ゲームをビルドする前に、ライティング ウィンドウで自動生成オプションを無効にして、すべてのシーンのライティング データを手動で生成し、ライティング データが失われないようにします。

自動生成を無効にしてシーンのライティングを手動で生成すると、Unity はライティング データをプロジェクト ディレクトリにアセット ファイルとして保存します。これにより、必要なデータがビルドの一部になります。

自動生成は、複数のシーンのワークフローには推奨されません。

照明データ アセット

照明データ アセットは、Unity エディターのシーンの事前計算された照明データを格納します。照明データ アセットは、ワークフロー上の理由から、プロジェクト内で別個のファイルとして存在します。事前計算された照明データを別個のファイルに格納すると、事前計算された照明データに変更を加えても、シーン ファイルが変更されることはありません。照明データ アセットは、ユーザーが編集するためのものではありません。

照明ウィンドウの [照明の生成] ボタンを使用するか、Lightmapping.Bake または Lightmapping.BakeAsync API を使用して照明の事前計算を手動で呼び出すと、Unity は事前計算された照明データを照明データ アセットに格納します。

照明データ アセットには、シーンの照明を再作成するために必要なグローバル イルミネーション データとすべてのサポート ファイルが含まれています。このアセットは、レンダラー、リアルタイム ライトマップ、ベイクされたライトマップ、ライト プローブ、反射プローブ、およびこれらの要素間の関係を格納するデータ構造を参照します。また、リアルタイム グローバル イルミネーションがプレイヤー内でどのように見えるかを更新するために必要な、事前計算済み Enlighten
リアルタイム グローバル イルミネーション データもすべて含まれています。

シーンを変更すると (たとえば、Contribute GI としてマークされているゲームオブジェクトのプレハブ接続を切断するなど)、アセット データは古くなり、再構築する必要があります。

ライティング ビルド プロセス中に生成される中間ファイルは、プレイヤー ビルドの生成には不要で、アセットの一部ではなく、GI キャッシュに保存されます。

ライティング データ アセットのビルド時間は異なる場合があります。GI キャッシュが完全に読み込まれている場合、つまり、以前にマシンでベイク処理を実行したことがある場合 (シーンが現在の状態の場合)、ビルド時間は短くなります。シーンを空のキャッシュがあるマシンにプルしている場合、またはキャッシュ サイズ制限のために必要なキャッシュ データが削除されている場合は、まずキャッシュに中間ファイルを読み込まなければなりません。そのためには、事前計算とベイク処理を実行する必要があります。これらの手順には、多少時間がかかることがあります。

GI キャッシュ
GI キャッシュは、Unity エディターが Baked Global Illumination および Enlighten Realtime Global Illumination の照明データを事前計算するときに中間ファイルを格納するために使用する内部データ キャッシュです。このデータをキャッシュに格納することで、Unity は後続の事前計算を高速化できます。

コンピューター上のすべての Unity プロジェクトはキャッシュを共有するため、同様のコンテンツと同じライトマッピング バックエンドを持つプロジェクトは同じキャッシュ ファイルを使用できます。GI キャッシュの設定を使用して、キャッシュのサイズ、場所、および圧縮を管理できます。詳細については、設定のドキュメントを参照してください。

GI キャッシュの使用

Unity エディターは、照明データを事前計算するときに GI キャッシュを使用します。GI キャッシュを有効にするには、照明ウィンドウ (ウィンドウ > 照明) を開き、[自動] オプションを有効にします。これにより、照明データの事前計算が自動化され、出力データが GI キャッシュに格納されます。代わりに照明データを照明データ アセットに格納する場合は、[自動] オプションを無効にします。ただし、自動を無効にして事前計算されたデータをライティング データ アセットに保存した場合でも、エディターは中間結果を GI キャッシュに保存します。

ライティング ウィンドウで、シーン内のベイクされたデータをクリアできます (自動オプションを無効にして、ビルド ボタンのドロップダウン メニューからベイクされたデータのクリアを選択します)。これによりシーン内のデータが削除されるだけで、GI キャッシュはクリアされません。クリアすると、後でベイク時間が長くなるためです。GI キャッシュをクリアするには、環境設定のドキュメントを参照してください。キャッシュのクリアは最後の手段としてのみ行う必要があります。キャッシュのクリアを余儀なくされる問題がある場合は、エディターに組み込まれているバグ レポート機能を使用して報告してください。

GiCache フォルダーを異なるマシン間でコピーできます。これにより、ファイルが再計算されるのではなく GiCache フォルダーから取得されるため、ライティングのビルドが高速化されます。

同じコンピューター上で複数のエディターのインスタンスを実行してベイク処理を実行しようとすると、エディターに次の警告メッセージが表示されます: 「同時ライトマップ生成をサポートするために、GI キャッシュはハード ドライブ上のスペースをますます多く使用しています。ベイク処理の失敗を防ぐには、Unity エディターの他のすべてのインスタンスを閉じてください。」

    Course

  • 日時:2024/04/01 ~ 2025/03/31
  • 名称:どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング 事前計算された照明データ〜
  • 場所:オンラインスクール
  • 料金:¥0 (消費税込)