Unity - 性能優(yōu)化實戰(zhàn)05 - Animation導(dǎo)入設(shè)置檢查與優(yōu)化

一、模型Rig標(biāo)簽

  1. Animation Type

    • None 無動畫
    • Legacy 舊版動畫,不要用
    • Generic 通用骨骼框架
    • Humanoid 人形骨骼框架
  2. Animation Type選擇原則

    • 無動畫選擇None
    • 非人形動畫選擇Generic
    • 人形動畫
      人形動畫需要Kinematices或Animation Retargeting功能,或者沒有有自定義骨骼對象時選擇Humanoid Rig
      其他都選擇Generic Rig,在骨骼數(shù)差不多的情況下,Generic Rig會比Humanoid Rig省30%甚至更多的CPU的時間。
  3. Skin Weights
    默認(rèn)4根骨頭,但對于一些不重要的動畫對象可以減少到1根,節(jié)省計算量

  4. Optimize Bones
    建議開啟,在導(dǎo)入時自動剔除沒有蒙皮頂點的骨骼

  5. 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標(biāo)簽

  • Resmple Curves
    將動畫曲線重新采樣為四元數(shù)數(shù)值,并為動畫每幀生成一個新的四元數(shù)關(guān)鍵幀,僅當(dāng)導(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ù)(數(shù)值越大性能越差)
  • Constant:優(yōu)化為常數(shù)的曲線
  • Dense:使用了密集數(shù)據(jù)(線性插值后的離散值)存儲
  • Stream:使用了流式數(shù)據(jù)(插值的時間和切線數(shù)據(jù))存儲

優(yōu)化建議
看效果差異(與原始制作動畫差異是否明顯)
看曲線數(shù)量(總曲線數(shù)量與各種曲線數(shù)顯,常量曲線比重大更好)
看動畫文件大小(以移動平臺為例,動畫文件在小幾百k或更少為合理,查過1M以上的動畫文件考慮是否進行了合理優(yōu)化)


UPR優(yōu)化建議

  • 檢查動畫曲線精度:動畫曲線精度過高會增加動畫占用內(nèi)存; 此規(guī)則僅面向以文本格式序列化的*.anim文件中的浮點精度
    Custom Parameters: precision : 5

用文本編輯器打開.anim動畫文件,修改m_EditorCurves::curve::m_Curve下的float值的精度。建議用腳本直接將此文件中所有float精度都調(diào)小。



動畫曲線精度優(yōu)化工具

介紹:通過上文看到一個個的去修改動畫文件里的值不太現(xiàn)實,所以提供了一個動畫曲線精度優(yōu)化工具給大家使用
GitHub地址:動畫曲線精度優(yōu)化工具
使用方式:配置好 Config.json 后雙擊 Run.bat 即可
使用后效果:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容