《Unity性能優(yōu)化》系列課程筆記——第伍節(jié)
2022年2月15日 第伍講 Animation導(dǎo)入設(shè)置檢查與優(yōu)化
Rig標簽頁

Animation Type
None 無動畫
Legacy 舊版動畫,不要用
Generic ?通用骨骼框架
Humanoid 人形骨骼框架
選擇原則:
無動畫選擇None
非人形動畫選擇Generic
人形動畫
人形動畫需要Kinematices或Animation Retargeting功能,或者沒有有自定義骨骼對象時選擇Humanoid Rig
其他都選擇Generic Rig,在骨骼數(shù)差不多的情況下,Generic Rig會比Humanoid Rig省30%甚至更多的CPU的時間。
Skin Weights
默認4根骨頭,但對于一些不重要的動畫對象可以減少到1根,節(jié)省計算量
Optimize Bones
建議開啟,在導(dǎo)入時自動剔除沒有蒙皮頂點的骨骼
Optimize Game Objects
在Avatar和Animatior組件中刪除導(dǎo)入游戲角色對象的變換層級結(jié)構(gòu),而使用Unity動畫內(nèi)部結(jié)構(gòu)骨骼,消減骨骼transform帶來的性能開銷??梢蕴岣呓巧珓赢嬓阅? 但有些情況下會造成角色動畫錯誤,這個選項可以嘗試開啟但要看表現(xiàn)效果而定。注意如果你的角色是可以換裝的,在導(dǎo)入時不要開啟此選項,但在換裝后在運行時在代碼中通過調(diào)用AnimatorUtility.OptimizeTransformHierarchy接口仍然可以達到此選項效果。
Animation標簽頁

Resmple Curves
將動畫曲線重新采樣為四元數(shù)數(shù)值,并為動畫每幀生成一個新的四元數(shù)關(guān)鍵幀,僅當導(dǎo)入動畫文件包含尤拉曲線時才會顯示此選項
Anim.Compression
Off 不壓縮,質(zhì)量最高,內(nèi)存消耗最大
Keyframe Reduction 減少冗余關(guān)鍵幀,減小動畫文件大小和內(nèi)存大小。
Keyframe Reduction and Compression 減小關(guān)鍵幀的同時對關(guān)鍵幀存儲數(shù)據(jù)進行壓縮,只影響文件大小。
Optimal,僅適用于Generic與Humanoide動畫類型,Unity決定如何進行壓縮。
Animation Custom Properties
導(dǎo)入用戶自定義屬性,一般對應(yīng)DCC工具中的extraUserProperties字段中定義的數(shù)據(jù)
動畫曲線數(shù)據(jù)信息

Curves Pos: 位置曲線
Quaternion: 四元數(shù)曲線 Resample Curves開啟會有
Euler: 尤拉曲線
Scale: 縮放曲線
Muscles: 肌肉曲線,Humanoid類型下會有
Generic: 一般屬性動畫曲線,如顏色,材質(zhì)等
PPtr:精靈動畫曲線,一般2D系統(tǒng)下會有
Curves Total: 曲線總數(shù)
Constant: 優(yōu)化為常數(shù)的曲線
Dense: 使用了密集數(shù)據(jù)(線性插值后的離散值)存儲
Stream: 使用了流式數(shù)據(jù)(插值的時間和切線數(shù)據(jù))存儲
一看效果差異(與原始制作動畫差異是否明顯)
二看曲線數(shù)量(總曲線數(shù)量與各種曲線數(shù)顯,常量曲線比重大更好)
三看動畫文件大小(以移動平臺為例,動畫文件在小幾百k或更少為合理,查過1M以上的動畫文件考慮是否進行了合理優(yōu)化)