微信|王者QQ微信都在用的动画神器要开源了:交付时间缩短90%( 二 )


这个插件,相当于从源头上解决了设计与研发之间“来回返工”的问题 。当设计文件中出现系统不支持的AE矢量特性、或使用了特别影响性能的属性时,PAG导出插件就会给出修改提示,帮助设计师导出符合系统要求的动画文件 。
细节上也有一些好用的地方,例如一键设置就能导出BMP预合成、设置占位图填充模式等功能,进一步节省设计的时间;

微信|王者QQ微信都在用的动画神器要开源了:交付时间缩短90%
文章图片

由于导出的.pag文件采用二进制格式存储动画信息,不仅有效降低了文件大小,还能让设计师们往里面直接放各种素材资源(图片、音频等),交付时只用发送一个文件 。

微信|王者QQ微信都在用的动画神器要开源了:交付时间缩短90%
文章图片

△文件格式长这样
桌面预览工具PAGViewer
然后,设计师在预览时,就能直接采用PAGViewer在PC端预览.pag动画文件的效果 。这样设计师无需等待动画文件上线、就能一键预览移动端的动画效果 。
还可以直接在PAGViewer里面修改可编辑文本或占位图:

微信|王者QQ微信都在用的动画神器要开源了:交付时间缩短90%
文章图片

除了修改可编辑文件和预览效果,PAGViewer还增加了性能展示面板,里面包含了pag动画的基本信息,如时长、帧率、尺寸、bmp预合成的数量、图层总数等 。
如下图所示,设计师直接就能通过面板,看到量化的性能指标,来定量评估.pag文件的性能,并进行针对性优化,避免上线前才发现“性能卡设计”等问题:

微信|王者QQ微信都在用的动画神器要开源了:交付时间缩短90%
文章图片

渲染SDK
最后,开发只需要一次性的渲染SDK接入就能加载PAG文件,直接在Android、iOS、mac OS、windows、web、Linux等常用的平台端准确还原动画效果,无需进行额外开发 。
当然,由于pag文件的可编辑性,开发自己也能直接修改或替换文件中的文本和占位图,不用再在需求上麻烦设计 。
一段动画特效可以被分成“动画效果+内容”两部分,“可编辑性”指的是替换“内容”部分 。
以“滚动的一串文本”动画效果为例,其中文本信息是内容,滚动就是动画效果 。pag可以在保留预设动画的情况下,做到修改文本的内容,字体,字号,颜色等十几项属性 。
除了文本可以被修改替换,PAG还提供了占位图的替换能力,同样在保留预设动画的情况下,不仅可以替换照片,甚至可以直接把视频也放进占位图 。
这样一来,不仅避免了设计反复根据需求修改动画特效的痛苦,还能将动画特效运用于视频剪辑中 。
像我们在开头看到的王者特效,包括昵称和KDA其实都可以被一键替换,不需要再将对应的动效重新设计一遍 。

微信|王者QQ微信都在用的动画神器要开源了:交付时间缩短90%
文章图片

△这次是情侣组合(狗头)
总结一下,PAG最大的优势有以下几点:
输出动画文件极小,比同类型方案平均降低50%
支持所有AE效果导出,包括第三方AE特效插件
运行时保留动画效果,实时编辑文本替换占位图
提供从导出、预览、到性能优化的完善工具链支持
SDK覆盖所有平台,包含Web以及服务端渲染能力
解决的正是当前短视频特效设计师们最头疼的几大痛点 。
其实在PAG出现之前,业内已经有一些类似的设计插件,但或多或少存在一点问题 。
PAG究竟是怎么解决它们的?
我们与PAG的研发团队、腾讯PCG发布器中台下编辑子工作组的负责人Dom取得了联系,了解了背后的实现原理 。
PAG背后的技术门道
Dom表示,PAG早期最有挑战的地方,其实就在于“动画文件设计”和“全AE特性支持”这两部分 。
高效动画文件
在输出文件格式方面,已有的JSON等格式存在两大问题:解码速度慢、压缩率低 。
为此,团队重新设计了一种名为.pag的文件格式,采用二进制数据结构来存储动画信息 。
一方面,二进制数据结构不需要做字符串匹配、序列化等操作,解码速度会比JSON等格式的文件快上许多 。测试数据显示,在解码速度上,PAG格式的动画文件要比JSON文件快12倍 。


推荐阅读