動畫作為最吸引眼球的內(nèi)容素材之一,在各類終端APP中都得到了創(chuàng)作者的垂青。動畫作品能幫助用戶交互更加順滑,更能讓主題內(nèi)涵得到更豐滿的詮釋,但也正因如此,動畫的設(shè)計、制作以及導(dǎo)出都尤為耗費心神。
為解決這一問題,騰訊PCG發(fā)布器中臺研發(fā)了一套完整動畫工作流解決方案——PAG(Portable Animated Graphics)。
PAG不僅將其他動畫工作流解決方案存在的多項痛點問題予以解決,更在相同矢量動畫的條件下,文本大小可以做到Lottie的50%左右,性能相對比Lottie也有了很大的提升,單幀平均耗時小于Lottie的50%,以更高的可編輯性解放了設(shè)計師的創(chuàng)造性,提升了工作效率。
不少動畫行業(yè)的小伙伴們在許久之前就已躍躍欲試,但苦于始終沒有向外開放,只能遠遠觀望。如今,好消息終于來啦:據(jù)悉,今年一月份,PAG即將在github等平臺對外全面開源,希望能為更多動畫創(chuàng)作者提供優(yōu)質(zhì)服務(wù)。
據(jù)悉,在內(nèi)測期間,PAG已應(yīng)用于騰訊多款知名APP之中,例如微信、QQ、王者榮耀、QQ音樂、騰訊視頻等等。
正值PAG將要對外開放之際,讓我們從技術(shù)層面解構(gòu)PAG,一探其性能優(yōu)越之究竟。
PAG動畫工作流,完善的動畫解決方案
目前業(yè)界常用的動畫工作流解決方案主要有Lottie和SVGA兩款軟件,他們都可以將AE制作的動畫導(dǎo)出成一個文件,在終端APP中加載渲染使用,以此提升動畫開發(fā)上線的效率。
其中Lottie最早是為了解決矢量圖形類動畫的問題,功能也幾乎全部集中于此;SVGA則是為補足Lottie功能缺失而設(shè)計出的跨平臺動畫解決方案,因此并不支持復(fù)雜矢量圖形類動畫。雙方在性能上各有所長,同樣也各有所缺。
PAG則針對Lottie和SVGA進行了補足與優(yōu)化。在矢量動畫渲染性能上,PAG在Android/iOS平臺的文件解碼耗時、平均每幀渲染耗時等參數(shù)指標上,都遠快于Lottie和SVGA,實現(xiàn)了效率層面的跨越式提升。在矢量導(dǎo)出方式上,PAG還支持引入了視頻序列幀結(jié)合矢量的混合導(dǎo)出能力,實現(xiàn)支持所有AE特性的同時,又能保持動畫運行時的可編輯性,從而得以最大程度地發(fā)揮設(shè)計師的創(chuàng)造力。
不僅如此,由于Lottie和SVGA都是用AE Script SDK來導(dǎo)出AE工程,而AE Script SDK本身不能訪問AE文件中的所有屬性,導(dǎo)致二者有時導(dǎo)出文件會發(fā)生內(nèi)容缺失現(xiàn)象。PAG則采用AE C++ SDK來導(dǎo)出AE工程,允許訪問AE文件中所有屬性和部分高級API,實現(xiàn)了AE文件的完整導(dǎo)出。
功能突破,多方位提升創(chuàng)作效率
那么PAG具體是如何做到這一點的呢?
從技術(shù)層面講,PAG采用C++實現(xiàn)渲染,所有平臺共享同一套實現(xiàn),平臺端只作為封裝接口簡單調(diào)用,提供一個渲染環(huán)境,并無強依賴性,因此PAG能夠做到所有平臺支持特性一致,渲染效果一致。
不僅如此,PAG的技術(shù)能力還包含BMP預(yù)合成、圖層級別編輯、整合視頻渲染等先進功能。
BMP預(yù)合成功能的加入,完美彌補了PAG支持AE特性較少的不足,支持導(dǎo)出所有的AE特性,適用于不可編輯的場景。與此同時,PAG中還增加了支持矢量和BMP預(yù)合成混合導(dǎo)出,從而實現(xiàn)支持AE所有特性的同時又保持運行時的可編輯性。
圖層級別編輯,則是為了適應(yīng)如今多PAG文件組合,由業(yè)務(wù)方去控制組合的規(guī)則。簡單來說,一個文件就是一棵渲染樹,支持圖層級別的任意修改位置甚至增刪圖層,也可以把別的PAG文件添加到這棵渲染樹中作為子樹,時間軸的循環(huán)、變速、定格也由你隨心所欲。
要讓動畫在視頻編輯場景中完美整合,就必須解決兩個問題:支持離屏渲染繪制、子線程渲染。PAG整套動畫方案都是基于C++跨平臺架構(gòu)研發(fā)的,天然保障了跨端斷然一致性,并能夠直接渲染到離屏紋理上,完美支持子線程動畫渲染。在此過程中,PAG還采用了時間靜態(tài)區(qū)間和三級緩存結(jié)構(gòu)最大限度地降低開銷與緩存,為用戶提供更順滑的創(chuàng)作體驗。
除此之外,PAG的服務(wù)端渲染和web端支持也給到了用戶更廣闊的創(chuàng)作空間與時間余裕。
目前來看,PAG對外開源后將有助于UI動畫、貼紙動畫、照片模板、視頻模板以及智能剪輯等功能的開發(fā)。
一、UI動畫
如上圖右下角的Pick按鈕動畫,設(shè)計師設(shè)計出動畫文件后,研發(fā)只需要替換預(yù)設(shè)的文本內(nèi)容即可,并且文件體積非常小,僅2KB左右。
二、貼紙動畫
PAG的動畫文件可以在任意子線程渲染,可以合成到視頻畫面,作為貼紙、字幕、特效、轉(zhuǎn)場動畫使用,且支持用戶自己修改文本內(nèi)容。
三、照片/視頻模板
PAG支持將內(nèi)置的圖片/視頻作為占位圖替換,并保留所有動畫效果。因此可以將整個PAG動畫設(shè)計成一個模板,把預(yù)設(shè)的占位圖替換成用戶選取的照片,自動套用效果生成視頻。全程可以讓設(shè)計師自由批量生產(chǎn)模板,無需研發(fā)介入。
四、智能剪輯
智能剪輯是圍繞用戶上傳的視頻內(nèi)容,生成定制化的模板,模板本身是不固定的,可以從多個PAG文件組合而成,類似活字印刷。設(shè)計師可以利用這個特性,構(gòu)建自己的特效組件庫,然后對接AI的識別能力,根據(jù)一定規(guī)則組合得到無限數(shù)量的模板效果,可以做到一鍵出片。值得一提的是,王者榮耀的周戰(zhàn)報功能就是它的典型應(yīng)用場景。
可以看出,PAG作為騰訊所推出的動畫工作流解決方案,功能已經(jīng)較為完善與健全,具備更為優(yōu)秀的效率與便捷度,也最大限度地降低了開發(fā)者的時間、創(chuàng)意成本。不僅如此,在經(jīng)歷了諸多騰訊內(nèi)部產(chǎn)品的先行實驗,PAG的實用性也毋庸置疑。
PAG即將對外開源,對如今正在從事動畫創(chuàng)作的工作者們的幫助不言而喻,也將以自身功能的優(yōu)越性激發(fā)更多潛在創(chuàng)作者加入到動畫行業(yè)之中,為這片藍海提供更多的有生力量,為移動端動畫產(chǎn)業(yè)貢獻屬于自己的技術(shù)價值。