✨ Anime Shading Plus について

はじめに
Anime Shading Plus(以下 ASP)は、日本のアニメ風キャラクターのレンダリングに特化して設計された Unity プラグインです。
Unity 上で 3D キャラクターを、従来のセルアニメ調や立ち絵のような質感に近づけて描画できるよう支援します。
また、日本の 3D ゲームでよく使われる PBR マテリアルをブレンドしつつ、アニメ調に落とし込む機能も備えています。
キャラクター用・目用の専用シェーダーに加えて、高度にカスタマイズ可能な各種アウトライン機能や、日本のアニメ表現に合わせた追加光源処理なども収録しています。
さらに、ゲームでトゥーンレンダリングを行う際によく発生する問題にも対応しています。たとえば、不自然な self-shadowing を除去する Cube Proxy、顔の陰影マップを作成するツール、アニメ風の影を描く専用パス、アニメキャラクター向けに最適化した Tone Mapping などを用意しています。Unity 2022.3、6.0、6.3 では任意の Legacy Character-Only Shadow Map も利用できますが、Unity 6.5 では Cube Proxy のみを使用します。
なぜ Anime Shading+ を作ったのか
トゥーンレンダリング向けシェーダーは、Unity で最も広く使われているシェーダーのひとつであり、ネット上にも数多くの情報があります。しかし長年見てきた中で、Unity Asset Store には次の条件をすべて同時に満たすプラグインがありませんでした。
日本のアニメ風キャラクターの描画に特化したシェーダー
Cube Proxy による self-shadow 除去と、旧リリースラインで任意に利用できる Character-Only Shadow Map
人物向けの Screen Space Outline と Mesh-based Outline を含む、十分に整った内輪郭・外輪郭表現
日本のアニメ風キャラクター向けのポストプロセス効果(例: Tone Mapping)
セルルックキャラクター向けの多光源処理と環境光(間接光)処理
標準的な PBR とトゥーンレンダリングをブレンドできる選択肢
高品質な日本アニメ風キャラクター表現を実現するには、これらはどれも欠かせない要素だと考えています。そこで Unity の URP 上で、これらの機能をひとつのプラグインとしてまとめました。
このプラグインは、PC 向けの production ready な製品として十分な安定性・性能・完成度を備えていると考えています。また、トゥーンレンダリングを必要とするプロジェクトで、人物向けシェーダーを拡張していく際の出発点としても活用できます。
ASP の主な機能
1. 日本のアニメ風キャラクター向けに設計されたシェーダー
ASP は、日本のアニメ風キャラクターを描画するために最適化されたシェーダーを提供します。シェーダーには、トゥーンライティング、スタイライズド PBR ライティング、リムライト、深度ベースのリムライト、MatCap 反射、サブサーフェススキャタリング、FOV 補正などの機能が含まれています。
また、アニメキャラクターの顔表現でよく使われる、SDF ベースの顔影マップをベイクするためのツールと各種パラメータも用意しています。
さらに、アニメキャラクターの目を描画するための専用シェーダーも提供しています。


2. Cube Proxy、Legacy Character-Only Shadow Map、Depth Offset Shadow
推奨する self-shadow 除去方法は、ASP Character Panel の Cube Proxy です。キャラクターは引き続き Unity 標準の Shadow Map へ影を投射し、ASP キャラクターマテリアルは Proxy 表面で主光源 Shadow をサンプリングすることで、キャラクター自身のジオメトリによる遮蔽を除外します。
Unity 2022.3、6.0、6.3 では、ASP ShadowMap を任意の Legacy Character-Only Shadow Map として利用できます。Unity 6.5 ではこの Renderer Feature を削除しています。
さらに、キャラクターの細部表現を強化するために、指定した Renderer に対して深度オフセットベースの影を描画することもできます。


3. アニメ風キャラクター向けに調整された Tone Mapping
一般的なフルスクリーンの Tone Mapping は彩度が落ちやすく、アニメ風キャラクター表現には不向きです(あるいは、非常にカスタマイズされた LUT で補正する必要があります)。
ASP では、画面上でキャラクターが占めるピクセルに対して効果量を調整できる Tone Mapping を提供しています。これにより、3D の PBR シーン内でも、アニメキャラクターが白飛びしすぎたり彩度を失いすぎたりするのを防げます。

4. スクリーンスペースアウトラインとモデル空間アウトライン
ASP は、人物向けのスクリーンスペースアウトラインとモデル空間アウトラインを提供します。スクリーンスペース効果は Material、Albedo、Depth、Normals の各 edge を組み合わせ、Vertex Color の B チャンネルをキャラクターピクセルの mask として使用できます。また、統一された Distance Falloff で遠距離のアウトラインをフェードできます。 また、モデル空間アウトライン向けにはスムーズ法線をベイクするツールも用意しています。

5. セルルック向けの追加光源と環境光(間接光)処理
ASP では、追加光源と環境光をフラット化するオプションを提供しています。これによりキャラクターの 3D 感を抑え、より 2D のセルアニメに近い見た目を実現できます。
