Language:
Page Info
Engine Version:
The translation of this page is out of date. Please see the English version for the latest version of the page.

ライトマップの UV アンラップ

ライトマップの作成

ライトマップは背景制作において最も重要な項目かもしれません。美しいライティングとシャドウのディテールはライトマップ次第です。ライトマップは、明暗情報を受け取るようにモデルのあらゆる部分が独自の空間を表すように固有にアンラップされなければなりません

ライトマップの解像度はテクスチャ UV の解像度に比べるとわずかであることを覚えておくことが重要です。レベルを最適化する必要性が高いほど、レベル デザイナーはライトマップの解像度を低くするということも覚えておくことが重要です。小さなオブジェクトの場合は、8 x 8 や 16 x 16 まで低くすることもあります。このような場合、暗いエリアが明るいエリアににじまないように、またゲーム内で正しいシャドウの錯覚を台無しにしないように、ライトマップ UV の各セクション周囲に多くの「パディング」を残す必要があります。

ライトマップを作成するには以下の 3 つの方法があります。

BOX UNWRAP (ボックス アンラップ)

多くの場合、これがライトマップをアンラップする最も信頼性が高い方法です。ほとんどの背景モデルは、ブロック形状を結合するか、ブロック形状を繰り返して構造体を作るからです。連続メッシュ (離れた構成要素が無くすべてがつながっているメッシュ) は、ライトマップのアンラップ効率を高めるために多くの場合、非常に役立つ方法です。建造物のつながっているデザインの大部分を単に展開することができるためです。 これはライトマップの解像度がかなり低いため非常にうまく機能します。ひとつのチャンク上であれば明暗の勾配がより簡単に機能します。多数の断片化されたセクションに広がっていれば、適切にライティングするために、こうしたチャンク間に多くのパディングが必要になります。

その結果、多くの場合、ライトマップの解像度を高くする必要性が高まりますが、これは、できる限り回避すべきです。低解像度にせざるを得ない場合もあり、補正するために、入れたい量よりもかなり多くのパディングを追加しなければなりません。

PLANAR UNWRAP (平面アンラップ)

これは、べベルや突起がほとんどない壁のような単純なフラットなデザインで非常に役立ちます。古びたアパートなどの大きな建造物の外観部分でも非常に効果的です。連続メッシュを使用すると平面アンラップは大幅にはかどります。ゲーム内で適切にライティングされていないメッシュの UV をリラックスさせ、手動でべベルにカバレッジを追加すればよいからです。

多くの試行錯誤が必要な場合もありますが、目安としてはアンラップしたもので水平方向の空間の方が垂直方向の空間よりも多くなるようにします。一般的に影は、真っ直ぐ下にではなく、少し上に上がった角度で横から投影されるためです。

レベル デザイナーは上から下へのライティングを使用した場合に比べて面白いシャドウを作成するようにライティングを選択する傾向にあるため、水平方向の空間に、より鮮明なシャドウ情報を含めることができます。

CYLINDRICAL UNWRAP (円柱アンラップ)

背景の他の形状のほとんどは、ボックスや平面ベースの形状でなければ円柱を変形したものに分類されます。円柱形状は、側面と前面を持つ多くのデザインをうまく補うものの、背面は補いません。その場合は、ボックス アンラップの方法を使用します。

BoxUnwrap1.jpg

これは連続メッシュです。そのため、簡単にボックス アンラップができます。単純に水平方向に開いて可能な限り高いライトマップ解像度を使用します。真ん中の画像でハイライトされている底面は、全体から分離されています。ほぼ、黒にレンダリングされるためです。UV の他の部分とつながっていれば、にじむべきではない場所に暗くにじみます。

逆に、一番下の画像の離れている上部の面は、常に明るくなります。一番上の画像は、テクスチャーの UV です。

BoxUnwrap2.jpg

こうした方法でできる限り安全につなげることで、32 x 32 単位の解像度でほぼ完ぺきなライトマップをゲーム内で実現できます。シームは全くなく、不要な細かい線もありません。

BruteForce.jpg

無理やり構成要素をまとめる必要がある場合もあるでしょう。ライトマップを中断することなく、すっきりとしたサーフェスにすると良いでしょう。薄すぎるカバレッジをストレッチすることに比べれば、1 対 1 の比率での展開はライトマップでは問題になりませんが、1 対 1 の場合、にじみが原因で適切にライティングしません。ただし、カバレッジを 2 倍にして 1 対 7 の比率にすると、見栄えが非常によくなります。また、ここでは暗い切れ目の内部を分けました。常に暗く、そこから外部へのにじみを防ぐ必要があるためです。

Facade1.jpg

こうした大きなファサード構成要素では、平面アンラップを使うとうまく処理できます。メッシュが連続しているため、ここでの作業に役立ちます。ただし、若干の垂直または水平の構成要素を持つメッシュでも同じように機能します。低ポリゴンの非常に一般的なレイアウトでライトマップ UV に物を配置する限り同様に機能します。しかし、他の構成要素と重ねられた場合に側部が黒にレンダリングされる場合は、若干のパディングが必要になります。

Facade2.jpg

連続メッシュのレイアウトを使用することで、低ポリゴン メッシュをミラーリングして UV を一段と簡単にレイアウトできることがわかります。にじみの対策として側面、上部と下部のキャップをメイン セクションから移動してにじみの問題に対応し、周囲にパディングします。メイン部分と上部ウィンドウのパディングが同量になるようにします。

こうした目安に従わないデザインもあることでしょう。デザインにいくつかの離れた構成要素と共に多くのネガティブな空間がある場合、ライトマップを分けてより多くのパディングを追加する必要があります。

NegativeSpaces.jpg

柵を支えている交差する垂直構成要素上に非常にはっきりした歪みがあることがわかります。こうした 3 つの各構成要素の間と中心のセクションを入れて無理に両側を合わせました。

円形の柵のインテリアを分けて片側はそのままにして、もう一つの側には、内側の面と外側の面を付けました。これは、こうしたエリアの 3/4 にわたり滑らかなライトマップのシェーディングになり、一つだけが他の側のライトマップに入りこむようにするために行いましたが、これは上に直線の金属梁があるため見えません。

railingame.jpg

以下のような一部のデザインでは、最適に機能する設定にしてもうまく機能しません。

Fragmented.jpg

離れた構成要素が多数ある場合、テクスチャーの解像度を上げるしか選択肢がありません。そうしなければ、各セクション間で十分にパディングするためにライトマップで多くの空間を無駄にすることになり、ゲーム内での見た目は非常に悪くなります。そのため、見た目は完璧にはならないことはわかっていましたが、128 x128 のライトマップになるようにしました。まだ、多少のにじみはあるもののオブジェクトを台無しにするほどではないと思います。

GirderINGAME.jpg

単に平面に近い状態に投影し、UV をリラックスさせると簡単な場合があります。以下のモデルのように、簡単につなげることができるはっきりと際立った連続セクションがある場合がこれに該当します。

easy.jpg

このデザインは基本的に、平面の土台がある蓋のついた円柱です。そのため、2 つの基本的な方法を使用して、UV をアンラップします。土台の歯の部分は、Z 軸方向に下方に平面を簡単にアンラップし、リラックス モディファイアーを適用し、薄いべベルの 1 対 1 の比率の問題の結果としてカバレッジが小さくなりすぎないように若干の調整をします。

中間をつなぐ部分は土台と同様にわかりやすく、円柱のアンラップです。カバレッジと空間の使用が最大限になるように手動で強制的にまっすぐにしました。これまでと同様に、低ポリゴン メッシュの小さな各ファセットを 1 対 1 で表すよりも、カバレッジの方に配慮しています。上部のライオン頭部の下側に対し上方向の Z 軸平面のアンラップを行い、リラックスを行い補いました。

このようにモデルを分割すると、低ポリゴン デザインで実際のシーム (境界、切れ目) 部にシームを入れるメリットがあります。そのため、ライティングを遮るものはほとんどなく自然に見えます。ダウングレードするのではなくゲーム内でのモデルの見た目を良くするために、どこで分割するかを決める目安としては、はっきりとした深い凹部のあるセクションでライトマップの UV を分割します。

FountainINGAME.jpg

ライトマップの座標軸インデックス

デフォルトで、スタティックメッシュの UV (インデックス 0 ) の第 1 のセットは、静的ライティングのライトマップを生成する場合に使用します。つまり、メッシュにマテリアルを適用するために使用する座標軸と同じセットが、ライトマップにも使用されます。これは多くの場合、理想的ではありません。その理由のひとつとして、ライトマップ生成に使用する UV が固有のものである必要があります。つまり、UV 空間内でメッシュの各面は他の面とオーバーラップしてはいけません。

理由は明らかです。面が同じ UV 空間を共有していると、その空間に対応するライトマップ部分は、その両方の面に適用されるからです。これは各面のテクスチャー解像度を高めることができるため、ディフューズやその他のテクスチャーでは効果的です。しかし、ライティングは不正確になります。スタティックメッシュには LightmapCoordinateIndex と呼ばれるプロパティがあります。これは、ライトマップ生成に特定の UV セットを使用できるようにします。このプロパティを、固有かつライトマップ用に適切にセットアップされた UV セットをポイントするように設定することで、スタティック メッシュは二つの優れた点を活用できます。すなわち、ディフューズ テクスチャで優れたテクスチャー解像度およびライトマップからの正確なライティングの両方を実現することができます。

連続する UV とパディング

連続する UV を持つ三角形のグループは UV チャートと呼ばれます。

uvs_charts.jpg

UV チャート

  1. UV チャート

UV チャート間のパディングは、にじみのアーティファクトを防ぐために必要です。しかし、ライトマップの UV レイアウトのエッジ周囲のパディングは不要です。ライトマスが、にじみのアーティファクトを防ぐのに十分なパディングを自動的にエッジ周囲に行うからです。UV チャート間にパディングをセットアップする場合、DXT 圧縮が 4x4 テクセルのブロックで動作するため、すべてのにじみを防ぐために通常 4 テクセルが必要になることに注意してください。

uvs_padding.jpg

UV パディング

  1. 無駄な UV パディング

  2. 必要な UV パディング

つまり、ライトマップ解像度が 32 の場合、UV チャート間のパディングは UV 空間全体の 12.5 % になるべきです。しかし、UV チャート間に入れるパディングが増えるほど、高解像度のライトマップでは、ライトマップ メモリの無駄が増えることを覚えておいてください。メッシュのライトマップ UV を連続させるほど、良い結果が得られます。そうすれば、必要なパディング量を減らし、解像度を高めることができます。ライトマスの実装前、または大部分を頂点ライティングに依存する場合、これまでメッシュは構成要素を個別にモデリングし、マージして作成されていたかもしれません。

old_mesh_seperate.jpg

各木材は別個のエレメントが一緒にマージされたものです。

しかし、これは、ライトマップに依存し、ライトマスを使用する場合には、理想的ではありません。適切な連続するライトマップ UV にはなりません。

old_mesh_uvs.jpg

古いメッシュの UV

代わりに、モデル内のポリゴンで断片化されたライトマップが得られ、黒にレンダリングされ、メッシュの他の部分ににじみます。これ以外に陥りやすい落とし穴は、自動アンラップへの依存です。これも上記と同様の問題につながることがあります。

old_mesh_ingame.jpg

インゲームの古いメッシュ

メッシュを作成し、ライトマップの UV をレイアウトする最適な方法は、メッシュ全体を 1 つの連続する構成要素としてモデリングし、UV を手動でレイアウトすることです。

new_mesh_contiguous.jpg

アセットを連続した単一エレメントとして作り直すことで、ライトマップも連続したものになります。

その結果、シームを消してライトマップの効率を高める連続的なライトマップ UV になります。

new_mesh_uvs.jpg

新しいメッシュの UV

最終的に、にじみのアーティファクトがない適切にライティングされたメッシュになります。

new_mesh_ingame.jpg

インゲームの新しいメッシュ

この方法では、モデルに対して必要な tris (三角ポリゴン数) が減るというメリットがさらに得られます。

old_mesh.jpg

new_mesh.jpg

古いメッシュ

新しいメッシュ