🟢 8.表面設定 - FOV修正與Dithering
FOV修正
動漫風格的人物(尤其是臉部),相較於一般第三人稱遊戲,通常有較低的FOV,一般的第三人稱遊戲常用的FOV是60~65以上,而對於動漫風格的人物,較適合的FOV是40~45。
設置
為了解決這個問題,ASP的shader提供了針對vertex校正透視效果的參數,可以在ASP Character Panel內的Surface Option分類下找到 Set FOV Adjust On All:

FOV adjust設為0為不修正,設為1則是會接近正交投影。
校正透視投影前後的對比如下 :

經由Script來設定FOV
ASP Character Panel本身也提供了API來設定FOV。
var myFOVAdjustment = 0.5f;
GetComponent<ASPCharacterPanel>().SetFOVAdjustValueToAllMaterials(myFOVAdjustment );
Dithering 偽半透明
ASP渲染的人物並不完全支援Transparent材質,原因是 - 人物專用的Tone Mapping、Depth Offset Shadow…等效果,均會需要深度資訊才能正確地執行。遊戲中常用的做法是 - 利用Dithering Pattern進行Alpha Clip,製造出物體變成半透明的錯覺。
設置
將材質的Alpha Clip打開後,在ASP Character Panel的Surface Options分類下調整Dithering Factor與Dithering Size。
Dithering Factor用於控制Clip的程度,Factor越大越接近透明。

Dither size會影響Dither Pattern的顆粒大小。

經由Script來設定Dithering
ASP Character Panel本身也提供了API來設定Dithering。
var myDithering= 0.5f;
GetComponent<ASPCharacterPanel>().SetDitheringValueToAllMaterials(myDithering);
var myDitherSize = 6.0f;
GetComponent<ASPCharacterPanel>().SetDitheringSizeValueToAllMaterials(myDitherSize);