Anime Shading Plus
Show / Hide Table of Contents

🙃 9. 顔影マップ - 作成とベイク手順

1. 顔影マップの紹介

トゥーンレンダリングのキャラクターでは、顔に細かく割れたような明暗が出やすいことがあります。これは顔の法線が複雑なためで、簡略化したライティングを使うトゥーン表現では、明部と暗部が不自然に細かく分かれて見えてしまいます。

一般的な対処法としては、サードパーティの DCC ツールで proxy normal を使う、法線を手作業で調整する、あるいは顔影用の SDF テクスチャを使う、といった方法があります。

中でも顔影マップは、コストに対して効果が高く、アーティスト側で制御しやすい方法です。法線修正ほどの手間もかかりません。ASP/Character Shader の Face モードでは顔影 SDF マップをサポートしており、手描きテクスチャを顔影用 SDF にベイクするツールも用意しています。

適用前

未使用臉部陰影貼圖

顔影マップ未使用

適用後

使用臉部陰影貼圖後

顔影マップ使用後

2. 顔影マップの作成

1. 手描きテクスチャ


まず、モデルの UV 展開に合わせて顔用のテクスチャを 9 枚描きます。ASP/Character Shader の Face モードでは、テクスチャに使う UV チャンネル(UV0〜UV3)を選べるため、既存の UV を使うことも、顔影マップ専用に新しい UV チャンネルを作ることもできます。

Image

0〜180 度の光の角度を 9 段階に分け、片側の顔 にどのような影が入るかに合わせて 9 枚のテクスチャを描きます。

Image

最後に、描き終えた 9 枚の画像を Unity プロジェクトへインポートします。

💡 必ず 9 枚である必要はありません。枚数が多いほど、異なる角度の光に対してより細かな制御ができます。枚数が少ないほど制御の自由度は下がり、光の角度が変わる際に明暗が大きく飛びやすくなります(前の画像から次の画像へ切り替わるような見え方になります)。

2. ASP SDF Generator で SDF テクスチャをベイクして統合する


Image

  1. Unity プロジェクト上部のメニューから Tools -> ASP -> SDFGenerator を選び、SDF Generator ウィンドウを開きます。

  2. 前の段落で作成した 9 枚の画像を source textures array にドラッグします。これら 9 枚が SDF 生成元のテクスチャになります。

  3. GroupName(生成されるテクスチャ名の接頭辞)を設定し、出力先のパスを指定します。

  4. Create SDFs & Merge をクリックすると、9 枚のテクスチャから計算した SDF が 1 枚に統合され、顔影用 SDF マップが生成されます。

Image

この例では UnityChanFace_merged だけあれば十分で、他に生成された画像は参考用なので削除して構いません。

次に顔用マテリアルへ戻り、1️⃣ シェーディングスタイル を Face に設定します。

Image

これで、そのキャラクターの顔影マップ設定は完了です。

3. Head Bone Transform を設定して、顔のライティング計算を頭の向きに追従させる


顔影マップのライティング計算では、既定で ASP Character Panel オブジェクトの正面方向が顔の向きとして使われます。

顔のライティング計算を頭部の向きに追従させるには、ASP Character Panel 内のパラメータを設定します。

  • ASP Character Panel 内の Light Direction Param へ移動します

  • キャラクターの Head Bone を Head Bone Transform に割り当てます

  • Face モードの ASP/Character Shader は、その Transform の向きを顔の向きとして使ってライティングを計算します。

Image

⏭️ 次のページへ 🌈 10. 受ける影の色のカスタマイズ

  • Edit this page
In this article
Back to top Generated by DocFX