Unity加載模塊深度解析之動畫資源

原文鏈接:https://blog.uwa4d.com/archives/Loading_AnimationClip.html

在之前的技術推送中,我們曾爲大家深入分析了加載模塊中的紋理、網格、Shader等資源。今天我們繼續該系列,和大家分享在加載動畫片段時需要注意的事項。請大家持續關注本系列,集齊所有資源類型的深度分析後可以召喚大神哦!

這是侑虎科技第143篇原創文章,歡迎轉發分享,未經作者授權請勿轉載。同時如果您有任何獨到的見解或者發現也歡迎聯繫我們,一起探討。(QQ羣465082844)

 

資源加載性能測試代碼

與之前幾篇所提出的測試代碼一樣,我們對於AnimationClip資源的加載性能分析同樣使用該測試代碼。同時,我們將AnimationClip文件製作成一定大小的AssetBundle文件,並逐一通過以下代碼在不同設備上進行加載,以期得到相應的資源加載性能比較。

測試環境引擎版本:Unity 5.4版本測試設備:三臺不同檔次的移動設備(Android:紅米2、紅米Note2和三星S6)

 

AnimationClip資源

AnimationClip資源是項目運行時最常加載的資源之一,且其加載效率主要由其自身加載量決定,而決定AnimationClip資源加載量的主要因素則是它的壓縮格式。目前,Unity引擎對導入的AnimationClip提供三種壓縮格式,Off、Keyframe Reduction和Optimal。其中,Off表示不採用壓縮處理;Keyframe Reduction表示使用關鍵幀進行處理,Optimal則表示Unity引擎會根據動畫曲線的特點來自動選擇一個最優的壓縮方式,可能是關鍵幀壓縮,也可能是Dense壓縮。

注:關於AnimaitonClip曲線中具體壓縮方法解釋,請查看Unity官方Manual文檔:https://docs.unity3d.com/Manual/class-Animator.html

測試:不同壓縮格式的AnimationClip資源加載效率測試我們製作了三組測試用例,AnimationClip資源數量分別爲10個、30個和50個。同時,每組AnimationClip又根據其壓縮格式的不同分爲三小組:None Compression、Keyframe Reduction和Optimal。

我們在三種不同檔次的機型上加載這些AnimationClip資源,爲降低偶然性,每臺設備上重複進行十次加載操作並將取其平均值作爲最終性能開銷。具體測試結果如下表所示。

第1組測試10個“None Compression”資源、10個“Keyframe Reduction”資源和10個“Optimal”資源,打包成AssetBundle文件後,其文件大小分別爲:409KB、172KB和92KB。

第2組測試30個“None Compression”資源、30個“Keyframe Reduction”資源和30個“Optimal”資源,打包成AssetBundle文件後,其文件大小分別爲:1.42MB、514KB和312KB。

第3組測試50個“None Compression”資源、50個“Keyframe Reduction”資源和50個“Optimal”資源,打包成AssetBundle文件後,其文件大小分別爲:2.46MB、858KB和525KB。

通過上述測試,我們可以得到以下結論:

Optimal壓縮方式確實可以提升資源的加載效率,無論是在高端機、中端機還是低端機上;硬件設備性能越好,其加載效率越高。但隨着設備的提升,Keyframe Reduction和Optimal的加載效率提升已不十分明顯;Optimal壓縮方式可能會降低動畫的視覺質量,因此,是否最終選擇Optimal壓縮模式,還需根據最終視覺效果的接受程度來決定。

 

優化建議

對於資源的優化,我們的建議是防範大於救災!具體可行的方法如下:

自己項目組內部寫一個資源檢測工具(或者在Unity Asset Store中查找相關資源檢測工具)來檢查AnimationClip資源的數據信息,檢測其壓縮格式、文件大小是否合理;如果你的項目正在使用UWA性能測評服務,那麼可在“具體資源使用界面”查看AnimationClip資源的內存佔用和動畫時長等參數,從而來定位是否有不合規的AnimationClip資源;

3.如果你的項目正在使用UWA資源檢測服務,那麼可在“資源使用”界面查看AnimationClip資源,重點查看其“Dense曲線數”和“Stream曲線數”。一般來說,只有開啓Optimal壓縮模式的AnimationClip資源纔會有“Dense曲線數”。

以上爲AnimationClip資源在加載時的性能測試。關於加載模塊的性能問題,我們會不斷推出音頻資源的加載性能分析、資源卸載性能分析、資源實例化性能分析、不同加載方式的性能分析等一系列技術文章,並對目前UWA所檢測過項目的共性問題進行總結,以期讓大家對項目的加載效率有更加深入的認知,並提升對加載模塊的掌控能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章