
アルファチャンネルと法線マップのベストプラクティス
Tutorial
intermediate
+0XP
15 mins
Unity Technologies

このチュートリアルでは、テクスチャのアルファチャンネルと法線マップを使用する際のベストプラクティスを説明します。
1. アルファチャンネルのベストプラクティス
テクスチャにアルファチャンネルを追加することは、飽くまで選択肢の一つとして検討してから行うのが賢明です。透過性を追加してしまうと、テクスチャが 32 ビット形式に変換されるようになるため、テクスチャのファイルサイズが増えてメモリ使用量が増大することが多くなります。
アルファチャンネルを保存するもう 1 つの方法では、ラフネステクスチャまたはメタリックテクスチャで追加のチャンネルを使用します。Unity では、このような種類のテクスチャにおいては 3 つのうち 2 つのチャンネル、すなわちラフネス(G)とメタリック(B)を使用することがありますが、そういった場合に(R)チャンネルは自由に利用できる状態になっています。
アルファマスクの保存に空きチャンネルを利用することで、そのファイルサイズで 16 ビットのディフューズテクスチャを維持できます。通常、アンビエントオクルージョンマップはディフューズマップにベイキングすることもできます。
次の画像は、不透明度マップを独自のアルファチャンネルではなくテクスチャの赤チャンネルに保存する方法を示しています。空いている赤チャンネルを使用することで、効果的にメモリを節約しています。
2. 法線マップのベストプラクティス
法線マップは、3D オブジェクトのディテールをより細かく見えるようにする場合に効果的な方法です。モデルに多くの三角形を要するしわ、ボルト、その他のディテールなど、細かい部分のディテールを追加するのに法線マップは最適です。法線マッピングを使用するかどうかは、ゲームのタイプやアートディレクションによって異なります。
法線マップの使用には、多少のコストがかかります。以下のポイントを覚えておいてください。
- 法線マップは追加のテクスチャです。つまり、テクスチャフェッチが増え、より多くのメモリが使用される結果となることを意味します。
- 法線マップは、ローエンドデバイスをターゲットとする場合は使用を控え目にしておきましょう。
法線マップを使用するとコストはかかりますが、シーン内の三角形の数を格段に減らすことができるので、パフォーマンスを向上できます。次の画像は、法線マップとテクスチャを使用して小さい部分のディテールをも実現する方法を示しています。
3. 法線マップベイキングのベストプラクティス
ケージの使用は、ベイキングするサーフェスにかかわらず、高品質の法線マップを使えるようになるため、とても良いアプローチです。
メッシュケージとは基本的に、大型バージョンまたは押し出したような形に膨らんだモデルの、ポリゴン数の少ないモデルのことを指します。ケージは多くの場合、法線マップベイキング時に使用されるレイキャストの距離に制限をかけるために使用されます。以下に示されているように、ケージは法線マップ上の分割法線の継ぎ目の問題も解決できます。
ほとんどの法線マッピングソフトウェアでは、ケージを自動的に作成できます。とはいえ、低ポリゴンモデルのコピーを作成してスケールを多少大きめにすれば、自分でケージを作成することもできます。
ケージを使用すると、プログラムではベイキング時に法線の計算に使用する方向を変更できます。これにより、次の画像に示すように、分割法線エッジとハードエッジではるかに優れた結果が得られます。
ベイキングソフトウェアでサポートされていれば、メッシュ名を一致させて、間違った法線マップ投影が作成される問題を減少させることもできます。オブジェクト同士が近すぎると、間違った面に法線マップが意図せず投影される可能性があります(例:次の画像のロボットのパーツ)。メッシュ名を合わせることで、名前が一致するサーフェスでのみベイキングが実行されるようになります。
このソリューションでは、アンビエントオクルージョンを個別にベイキングすることが必要になる場合があります。こういう場合には連続した UV があると継ぎ目が目立つため、ハードエッジ上の UV の分割をしておくべきと言えます。原則は、角度を 90 度未満に保つか、UV を別のスムージンググループとして設定することです。三角形上のさまざまなスムージンググループと UV の継ぎ目を目立たなくさせます。
次の画像は、ハードエッジ上での UV の区切り部分がどれほど見えているか、という例を示しています。
4. まとめ
法線マップとアルファチャンネルテクスチャは、賢く使えば、モバイルアプリケーションを最適化するうえで強力なツールとなります。次のチュートリアルでは、Unity のテクスチャ設定を詳しく説明し、さまざまなシナリオのベストプラクティスを紹介します。