パルテア

どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング ライトマップ UV の生成〜

ライトマップ UV の生成

Unity は、モデルをインポートするときにベイクしたライトマップの UV を計算することも、独自のデータを提供することもできます。

このページには次の情報が含まれています。

独自のライトマップ UV を提供する方法
ライトマップ UV を自動生成する方法
ライトマップ UV 自動生成設定
自動生成されたライトマップ UV のトラブルシューティング

独自のライトマップ UV を提供する方法

選択したコンテンツ作成ソフトウェアで独自のライトマップ UV を作成できます。 Unity はこれらの UV を計算の入力として使用します。

このデータをどこに配置するかは、ベイクされたライトマップ、リアルタイム ライトマップ、またはその両方に UV を提供するかどうかによって異なります。

ベイクされたライトマップの場合、ライトマップ UV を Mesh.uv2 に配置する必要があります。このチャンネルは「UV1」とも呼ばれます。

リアルタイム ライトマップの場合:
メッシュの Mesh.uv2 にライトマップ UV がすでにベイクされており、同じ UV をリアルタイム ライトマップの入力として使用したい場合は、何もする必要はありません。 Unity はベイクされたライトマップ UV の共有に戻ります。
すでに Mesh.uv2 にライトマップ UV をベイクしており、リアルタイム ライトマップの入力として別の UV を提供したい場合は、リアルタイム ライトマップ UV を Mesh.uv3 (「UV2」とも呼ばれます) に配置します。
メッシュの 2 番目のチャネルにライトマップ UV をベイクしていない場合は、リアルタイム ライトマップ UV に Mesh.uv2 を使用するか Mesh.uv3 を使用するかは自由に選択できます。
ライトマップに適した UV セットは、次のルールに従う必要があります。

[0,1] x [0,1] UV 空間内にある必要があります。
個々のチャート間には十分な幅のマージンが必要です。詳細については、「UV オーバーラップ フィードバック」を参照してください。
重なり合う面があってはなりません。
UV の角度と元のジオメトリの角度の差は小さくなければなりません。
一部の領域のライトマップ解像度を高くしたい場合を除き、UV の三角形の相対スケールと元のジオメトリの三角形の相対スケールの差は小さくなるはずです。

ライトマップ UV を自動生成する方法

モデルのインポート設定を使用して、モデルのライトマップ UV を自動的に生成するように Unity に指示できます。

プロジェクト ビューでモデルを選択します。 Unity は、インスペクターでモデルのインポート設定を開きます。
モデルのインポート設定で、「モデル」タブに移動し、「ジオメトリ」セクションに移動します。
「ライトマップ UV を生成」チェックボックスにチェックを入れます。ライトマップ UV 設定セクションは、ライトマップ UV の生成チェックボックスの下に表示されます。
オプション: ライトマップ UV 設定セクションで設定を構成します。詳細については、「設定」を参照してください。
「適用」ボタンをクリックします。 Unity はライトマップ UV を Mesh.uv2 チャネルに生成します。
ライトマップ UV 自動生成設定

これらは、ライトマップ UV の生成を有効にした場合に、モデル インポート設定のモデル タブに表示される設定です。

自動生成されたライトマップ UV のトラブルシューティング

パックマージン

フィルタリングを可能にするために、ライトマップにはチャートの境界近くのテクセルに照明情報が含まれているため、ライトマップを適用するときに光のにじみを避けるために、常にチャート間にある程度のマージンを含めてください。

ライトマップ解像度は、ライトマップのテクセル解像度を定義します。ライトマッパー
ライトマップ内の一部のチャート テクセルを拡張して黒いエッジを避けるため、メッシュの UV チャートは光のにじみを避けるために少なくとも 2 つの完全なテクセルを互いに離す必要があります。 [パック マージン] 設定を使用して、ジオメトリの UV チャート間に十分なマージンを確保します。

ライトマップ UV 空間では、UV の重なりや偶発的な光のにじみを避けるために、チャート間のパディングは少なくとも 2 つの完全なテクセルである必要があります。この画像では、黒いスペースはチャート間のスペースを表しています。

ライトマップの最小解像度とオブジェクトの最小スケール

UV チャートを近づけすぎると、最終的なライトマップでクロスチャート テクセルのにじみが発生する可能性があります。チャートを互いに離しすぎると、メモリが無駄に消費されます。オブジェクトの理想的なパッキング マージンは、オブジェクトに割り当てられるライトマップ テクセルの数によって異なります。

Unity が MeshRenderer に使用するテクセルの数は、MeshRenderer のライトマップ解像度と変換スケールによって異なります。適切なマージンを計算するには、Unity はこれらのプロパティの予想される最小値を知る必要があります。

MeshRenderer のライトマップ解像度は、シーンの照明設定アセットのライトマップ解像度プロパティの組み合わせです。
MeshRenderer が表示される場所、および MeshRenderer の Scale in Lightmap プロパティ。これは、同じ MeshRenderer が異なるシーンで異なるライトマップ解像度を持つことができることを意味することに注意してください。

インスペクターを使用すると、特定のシーン内の MeshRenderer のライトマップ解像度を表示できます。

シーン ビューまたは階層で、MeshRenderer コンポーネントを持つゲームオブジェクトを選択します。
インスペクターで、MeshRenderer コンポーネントの Lightmapping セクションに移動します。
ベイク処理されたライトマップの折り込み部分を開きます。 Unity は、MeshRenderer のライトマップ解像度をベイクしたライトマップにラベル「ライトマップ解像度」で表示し、その変換スケールをベイクしたライトマップにラベル「ライトマップ オブジェクト スケール」で表示します。

角度の歪み

次のスクリーンショットは、同じ解像度を示していますが、UV が異なります。最初の画像には高い角度エラーがあり、結果には意図しないアーティファクトが含まれています。 2 番目の画像にはデフォルトの角度エラー (8%) が設定されています。より多くの三角形を含むメッシュでは、角度の歪みによって形状が大幅に歪む可能性があります。

領域の歪み

下の画像では、同じパラメータを持つ 2 つのスポットライトが円柱の側面を照らしています。円柱の右側ではエリア エラー値が高く、三角形が歪んで解像度が低下し、ライトにアーティファクトが生じます。




    Course

  • 日時:2024/04/01 ~ 2025/03/31
  • 名称:どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング ライトマップ UV の生成〜
  • 場所:オンラインスクール
  • 料金:¥0 (消費税込)