科技观察汇|动画制作轻量级SDK:PAG六大优势助力开发一、传统AE设计难点及解决方案二、Lottie vs PAG三、PAG主要优势介绍四、PAG SDK端全平台接入方式五、总结


北京联盟_本文原题:动画制作轻量级SDK:PAG六大优势助力开发
动画特效可以辅助视觉制作焦点 , 引导注意力的方向 , 越来越为广大视觉设计师青睐 , 并广泛应用于各类场景开发 。
关于动画设计工具 , 既有 Framer.js、Origami ,也有交互原型类 Principle、Flinto , 还有 Figma 自带动画演示功能的工具 , 但是对于一些视觉特效、非逻辑表达类动画 , 设计师通常会借助 AE 完成 。
遗憾的是 , AE动画效果的开发至今也没有一种完备且成熟的跨平台解决方案 , 导致动画需求交付上线的效率和质量都不尽人意 。 对于市面上不同的动画开发工具 , 本文将对比分析不同方案的差异和优劣 , 辨析其还原程度和性能表现 , 希望给研发同学们一些参考和借鉴 。
一、传统AE设计难点及解决方案 传统的AE设计 , 总结下来有以下三个核心痛点:
· 研发成本高:每个动效都需要研发通过代码来还原 , 单独排期的特效以及手工配置还原的过程 , 包括后续复用及改动都需要大量的研发人力持续投入 。
· 生产周期长:设计师和研发人员需要反复确认效果还原度 。 这样很难跟上运营节奏 , 容易错过时事热点 。
· 视觉动效弱:AE里有很多复杂动效 , 使用纯代码还原起来非常困难 , 设计师只能不断简化效果以达到跟开发成本的平衡 。
PAG(Portable Animated Graphics) 是解决这几个痛点的解决方案之一。 它是一套完整的动画工作流 , 诞生之初就是为了降低或消除动画相关的研发成本 , 打通设计师创作到素材交付上线的极速流程 , 不断输出运行时可编辑的高质量动画内容 。
PAG提供从AE导出插件 , 到桌面预览工具 , 再到iOS和Android端的渲染SDK 。 在AE设计师设计完成后可以直接输出动画文件 , SDK研发不需要再参与代码还原 , 只需要接入一次SDK即可做到素材自助上线 。 也避免了反复进行效果确认的联调时间成本 。
在PAG诞生之前 , 大家是用lottie来处理这些问题的 , 不可否认lottie是个很好的方案 ,但仍有些问题没有得到很好的解决 。
二、Lottie vs PAG Lottie 最早是为了解决矢量图形类动画的问题 。 从官方社区来看 , 我们能容易发现 Lottie 的矢量基因 , 社区作品大多是图形类动画 。
Lottie 库和插件是 Airbnb 于2017年前后发布的一款跨平台的动画解决方案 , 设计师通过 bodymovin 从 AE 中将动画导出 json 文件 , 开发只需将其导入资源文件夹直接引用即可 。
Lottie 早期的版本不支持图片类动画 , 导出 json 之后会自动生成一个 img 的资源文件夹 , 播放 .json 文件时 , 需要解压资源压缩包到本地目录才能正常播放 。 从 bodymovin V 5.1.15 之后 , Lottie 将图片转为 base 64 编码 , 使用字符代替图像地址 , 并封装在 json 里 , 直接播放一个 .json 文件 , 不用再拖着一个资源文件夹了 。
科技观察汇|动画制作轻量级SDK:PAG六大优势助力开发一、传统AE设计难点及解决方案二、Lottie vs PAG三、PAG主要优势介绍四、PAG SDK端全平台接入方式五、总结
本文插图

Lottie 当前对图片类动画的支持依然会有一些小问题 , 有时候需要仔细排查出问题的图层 , 并对照官方文档灵活调整动画替代方案 。
PAG最初诞生的原因 , 正是因为Lottie无法满足视频编辑场景里的动画以下几点需求:
1.当时它根本不支持文本图层 , 可编辑的字幕贴纸是视频编辑非常重要的能力 。
2.在 iOS 上它依赖 CALayer 渲染 , 当用在非主线程的视频合成时 , 有部分动画会不呈现 。
3.Android 上 , 它的遮罩实现无与伦比的卡(10×) , 但受限于 Java 层的阉割版 Canvas , 也没有特别好的实现方式 。
当时的Lottie还存在大大小小扎堆的渲染 Bug 以及功能支持还不完善 , 如无法反向遮罩 , 矢量图无法挖空等等 。
PAG 选择了放弃重写渲染SDK解决方案 , 从头开始设计一种更高效的二进制动画文件格式 , 并基于AE C++ SDK重新实现了导出插件 , 又基于跨平台C++和OpenGL重写了两移动端渲染SDK , 历时半年跑通第一个版本 。 PAG包含了当时Lottie支持的所有功能 , 并彻底摆脱了导出和渲染上的能力扩展相关限制 。


推荐阅读