Anime Shading Plus
Show / Hide Table of Contents

3️⃣ 3.人物渲染範例 - 賽璐璐

在這一頁,我將以下方人物模型簡單示範如何利用ASP/Characte shaderr來渲染賽璐璐風格人物,
下圖是一張使用unlit shader與ASP提供的shader的前後對照。

Image

0.替換Shader


首先,將材質球都替換為ASP/Character(臉部與眼睛的部分將稍後處理),
替換完畢後,最上方的Toon Shading Style先選擇CelShading模式,臉部的材質球則選擇Face模式。

💡 如果材質是金屬或皮革(比如說背包上的金屬拉鍊、金屬配件等等),可以選擇使用StylizePBR並且套用對應的metallic貼圖,並開啟Specular lighting。
關於PBR貼圖的通道詳見 3️⃣ Albedo/Normal/Emission/OSM貼圖 的後半部

1.設置ASP Character Panel與陰影


依照 2️⃣ 2.設置ASP Character Panel (重要) 以及 🦇 7.人物陰影設定 - 利用ASP Character Panel設定投射與接收陰影。(更新1.3 - 2025/11) 將ASP Character Panel設定好,並且關閉當前人物模型對內建shadow map的陰影投射。避免調整過程中出現不必要的自陰影。

Image

2.Ramp Map的預設值


材質編輯器中,在Diffuse/Lighting Behaviour 分類下的Ramp Lighting Map一開始會先用一張預設的貼圖(由黑到白的漸變圖),使用這張圖會渲染出同lambert lighting的效果。

Image

3.製作新的Ramp Map


點擊Ramp Lighting Map編輯器上的”+”號來新增一張ramp map給當前材質球。
並且賽璐璐風格較適合用Fixed mode來製造明暗分界明顯的卡通渲染。
ramp map制調整完後將人物用的其他材質一併套用相同的ramp map(實務上根據需求不同的材質可能會套用不同的ramp map)。
我們現在有了基礎的2 step celshading。

Image

💡 在編輯Ramp map時,使用Fixed mode會ASP會自動讓ramp map的import設定改為point sampling,而非FIXED模式則會自動改為linear sampling。

Unity - Manual: Using sampler states

Most of the time when sampling textures in shadersA program that runs on the GPU. More infoSee in Glossary, the texture sampling state should come from texture settings – essentially, textures and samplers are coupled together. This is default behavior when using DX9-style shader syntax:

4.針對動漫風格皮膚的次表面散射


接著,針對人物皮膚(腿、手、脖子、臉部)的材質,
在CelShading模式下,在Diffuse/ Lighting Behaviour分類中可以多設定一層次表面散射效果。
將SSS Ramp Layer啟用並且新增一個ramp map。
Shader會依據物體的法線資訊與視角去採樣SSS ramp map,這會給予材質一種來自間接光穿過皮膚內從血管中散射回眼中,產生的紅色通透感。一般來說這層ramp map的顏色會非常淡(如下圖)

Image

Image

無SSS

Image

有SSS

5.環境光的扁平化


在光照扁平化的賽璐璐風格下,可以考慮將來自環境的間接光照一併做扁平化,在Diffuse分類下將Indirect GI Source設定為SampleSH_Flatten可以將立體的環境光變為單色。

Image

一般的PBR環境光照(是受光材質的底色),會凸顯模型的3D立體感。環境光在主光源變弱時會特別明顯。

一般的PBR環境光照(是受光材質的底色),會凸顯模型的3D立體感。環境光在主光源變弱時會特別明顯。

扁平化後的環境光

扁平化後的環境光

💡 環境光的扁平化也會一併套用到來自light probe(的光照。

6.多光源的扁平化


對於場景上除了主光源外的其他光源(point light/spot light),並不會套用ramp lighting(通常會有不理想的光照表現,且每個光源都做一次ramp map的texture sampling操作過於昂貴),ASP提供了選項可以將其他光源的光照從立體的lambert lighting變為扁平化的光照。

在Diffuse分類的最下方將 Flatten Additional Lighting設為true

預設多光源光照,臉部鼻子處的明暗會過於立體

預設多光源光照,臉部鼻子處的明暗會過於立體

扁平化後立體感消失,保留2D的感覺

扁平化後立體感消失,保留2D的感覺

💡 計算扁平化的多光源光照時,僅會考慮與光源的距離和光源強度,
法線訊息將不再有效,因此來自背後的光源,只要在距離內也會一併照亮表面。
這是一種針對動漫風人物特化的邏輯,並不適用於其他非賽璐璐/動漫的渲染風格。

7.邊緣光


根據專案需求,某些材質適合附上邊緣光的話,可以選擇使用基於Fresnel的視角邊緣光或基於深度buffer的螢幕空間等寬邊緣光。

關於Rim lighting的詳細說明請參考 -

關於Rim lighting的詳細說明請參考 -

8.開啟/關閉specular lighting


specular lighting預設是開啟的,在沒有使用specular mask的情況下有可能會有範圍有可能過大,根據情況調整或開關材質上的specular lighting。

9.製作臉部陰影貼圖


依照 🙃 9.臉部陰影貼圖 - 製作、烘培流程 的製作過程,將臉部陰影圖套用到人物面部的使用的材質球上。

💡 當使用Face Mode時,人物僅會使用ramp map的最左端當成陰影的顏色,ramp map本身並不會製造ramp lighting (光照的表現均被臉部陰影貼圖取代)。

Image

10.(點擊展開)利用Depth Offset Shadow,做出頭髮在額頭的陰影

依照 🦇 7.人物陰影設定 - 利用ASP Character Panel設定投射與接收陰影。(更新1.3 - 2025/11) (2-4) 的depth-offset shadow教學,將depth offset shadow的rendering layer mask設定好,並且讓頭髮的renderer與Depth offset shadow的mask值設為一樣的。

設定完畢後, 同樣的ASP Character Panel中,在ASP Extra Shadow Receiver將臉部的材質球的depth offset shadow設定為Received。

Image

Image

設定好之後人物臉上就會出現基於深度偏移的頭髮陰影了。

Image

11.調整輪廓線與利用vertex color繪製輪廓線mask。


依照 〰️ 14.螢幕空間描邊(輪廓線)使用說明 設定輪廓線參數與在DCC中繪製vertex color mask。

用screen space outline的debug mode觀察此角色的輪廓線與與輪廓線 mask。

Image

12.Tone Mapping


依照 🔧 17.Tone Mapping後處理 調整後處理效果。

最終渲染結果


Image

Image

Image

⏭️ 前往下一頁 4️⃣ 4.人物渲染範例- 日系厚塗/PBR混和

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