✨ 關於Anime Shading+

簡介
Anime Shading +(plus) - 簡稱ASP -
是一款專為渲染日系動漫風格的人物而設計的Unity插件。幫助遊戲開發者在Unity引擎中將3D人物的中渲染成貼近於傳統賽璐璐風格或是立繪般的人物。
也提供了混和並且卡通化PBR材質的功能 (此類材質常應用於一些日系的3D遊戲中)。
除了角色、眼睛專用的shader,還包括了像是實現不同種類且高度客製化的描邊功能、針對日系風格特化的多光源光照效果…等等。
另外也針對遊戲中的卡通渲染問題提供對應方案,例如使用Cube Proxy移除難看的self-shadowing、製作臉部陰影貼圖的工具、額外渲染動漫風格陰影的專用pass,以及針對動漫角色設計的Tone Mapping。Unity 2022.3、6.0與6.3版本仍保留可選的Legacy Character-Only Shadow Map;Unity 6.5版本僅使用Cube Proxy。
為何製作Anime Shading+
卡通渲染Shader是Unity最廣泛使用的Shader類型之一,網路上也可以找到數不盡的討論文章,但這麼多年來,我覺得Unity Asset Store上並沒有一個同時滿足以下所有條件的插件 :
專用於渲染日系、動漫風格人物的Shader
Cube Proxy自陰影移除,以及舊版分支可選的Character-Only Shadow Map
完善的內、外輪廓線效果(針對人物的Screen Space Outline 與 Mesh-based Outline)
針對日系日系、動漫風格人物的後處理效果(e.g Tonemapping)
針對賽璐璐人物的多光源與環境光照(間接光源)的處理
混和標準PBR與卡通渲染的選項
但是,要達成一個高品質的日系、動漫風格的人物渲染,我覺得上面這些要素每一個都是不可或缺的,於是我決定在Unity的URP管線上,將上述機能整合為單一一個插件。
我相信這個插件擁有作為一個以PC平台為目標production ready製品的穩定度/效能/完整性。同時也可以作為一個需要卡通渲染人物的專案,自行拓展人物用shader的起手式。
ASP的功能特色
1. 針對日系、動漫風格人物設計的Shader
ASP提供了專用於渲染日系、動漫風格人物的Shader,Shader中包括了像是卡通光照、風格化PBR的光照參數,邊緣光、深度邊緣光,MatCap反射、次表面散射、FOV修正…等等的功能,
也提供了常用於渲染動漫人物臉部的 - 基於SDF的臉部陰影貼圖的烘培工具與參數。
並且提供一個專門用於渲染動漫人物眼睛的Shader。


2. Cube Proxy、Legacy Character-Only Shadow Map與深度偏移陰影
為了解決卡通渲染角色身上低品質的自陰影,建議使用ASP Character Panel中的Cube Proxy。角色仍會透過Unity內建shadow map投射陰影,但ASP角色材質會在Cube Proxy表面採樣主光源陰影,排除由角色自身幾何造成的遮蔽。
Unity 2022.3、6.0與6.3版本仍可選用ASP ShadowMap (Legacy),將人物單獨渲染至額外的Character-Only Shadow Map。Unity 6.5版本已移除此Renderer Feature。
為了增加角色細節,ASP也支援指定Renderer渲染基於偏移深度的陰影。


3. 針對動漫風格人物所製作的Tone Mapping效果
一般的全螢幕Tone Mapping會導致飽和度下降,這對動漫風格人物來說是不可接受的(或者使用者必須用非常客製化的LUT去調色)。
ASP提供一個能夠針對螢幕上人物所佔據的pixel,進行效果的強弱調整的ToneMapping,這種做法可以讓動漫人物在一個3D的PBR場景中,同時避免過度曝光與飽和度過低的問題。

4. 螢幕空間描邊與模型空間描邊
ASP提供針對人物的螢幕空間描邊與模型空間描邊。螢幕空間描邊可組合Material、Albedo、Depth與Normals edge,也可使用Vertex Color B通道作為角色pixel的mask,並透過統一的Distance Falloff控制遠距離淡出。 而針對模型空間描邊也提供了烘培平滑法線的工具。

5. 賽璐璐風格的多光源與環境光照(間接光源)處理
為了渲染賽璐璐風格的人物,ASP提供了將額外光源與環境光照的非間接光扁平化的選項,這可以消除人物的3D感,達成更加貼近於2D、賽璐璐風格的渲染結果。
