Unity載入模組深度解析之動畫片段

2021-07-25 16:09:00 字數 2598 閱讀 6006

與之前幾篇所提出的測試**一樣,我們對於animationclip資源的載入效能分析同樣使用該測試**。同時,我們將animationclip檔案製作成一定大小的assetbundle檔案,並逐一通過以下**在不同裝置上進行載入,以期得到相應的資源載入效能比較。

測試環境

引擎版本:unity 5.4版本

測試裝置:三颱不同檔次的移動裝置(android:紅公尺2、紅公尺note2和三星s6)

animationclip資源是專案執行時最常載入的資源之一,且其載入效率主要由其自身載入量決定,而決定animationclip資源載入量的主要因素則是它的壓縮格式。目前,unity引擎對匯入的animationclip提供三種壓縮格式,off、keyframe reduction和optimal。其中,off表示不採用壓縮處理;keyframe reduction表示使用關鍵幀進行處理,optimal則表示unity引擎會根據動畫曲線的特點來自動選擇乙個最優的壓縮方式,可能是關鍵幀壓縮,也可能是dense壓縮。

注:關於animaitonclip曲線中具體壓縮方法解釋,請檢視unity官方manual文件:

測試:不同壓縮格式的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資源;

如果你的專案正在使用uwa資源檢測服務,那麼可在「資源使用」介面檢視animationclip資源,重點檢視其「dense曲線數」和「stream曲線數」。一般來說,只有開啟optimal壓縮模式的animationclip資源才會有「dense曲線數」。

以上為animationclip資源在載入時的效能測試。關於載入模組的效能問題,我們會不斷推出音訊資源的載入效能分析、資源解除安裝效能分析、資源例項化效能分析、不同載入方式的效能分析等一系列技術文章,並對目前uwa所檢測過專案的共性問題進行總結,以期讓大家對專案的載入效率有更加深入的認知,並提公升對載入模組的掌控能力。

延伸閱讀

載入模組之深度解析之紋理篇

載入模組之深度解析之網格篇

載入模組之深度解析之shader篇

Unity載入模組深度解析之動畫資源

與之前幾篇所提出的測試 一樣,我們對於animationclip資源的載入效能分析同樣使用該測試 同時,我們將animationclip檔案製作成一定大小的assetbundle檔案,並逐一通過以下 在不同裝置上進行載入,以期得到相應的資源載入效能比較。測試環境 引擎版本 unity 5.4版本 測...

Unity載入模組深度解析(網格篇)

與上篇所提出的測試 一樣,我們對於其他資源的載入效能分析同樣使用該測試 我們將每種資源均製作成一定大小的assetbundle檔案,並逐一通過以下 在不同裝置上進行載入,以期得到不同硬體裝置上的資源載入效能比較。測試環境 引擎版本 unity 5.2版本 測試裝置 三颱不同檔次的移動裝置 andro...

Unity載入模組深度解析(網格篇)

與上篇所提出的測試 一樣,我們對於其他資源的載入效能分析同樣使用該測試 我們將每種資源均製作成一定大小的assetbundle檔案,並逐一通過以下 在不同裝置上進行載入,以期得到不同硬體裝置上的資源載入效能比較。測試環境 引擎版本 unity 5.2版本 測試裝置 三颱不同檔次的移動裝置 andro...