腾讯PAG动画使用

PAG是来自腾讯的一套完整的动画工作流解决方案,助力于将 AE 动画方便快捷的应用于各平台终端。PAG 的流程图下图所示,设计师在 AE 上设计出动画后,可以通过导出插件导出 pag 文件,同时 PAG 提供了桌面端预览工具,支持实时预览效果,在确认效果后,通过运行配置上线,各平台终端可以通过 PAG SDK 加载渲染 PAG 动画。

PAG官网:https://pag.art/en/
PAG 特点及优势 :

● 开源项目:无需担心团队维护问题。
● 文件更小:PAG采用针对 AE 时间轴属性设计的二进制文件编码器,能够使用动态比特位紧凑存储,冗余信息极少,文件体积最小,解码速度最快,且支持单文件集成图片和音频等外部资源。
● 全 AE 特性支持:在纯矢量的导出模式下,无论是哪种实现方案,在众多的 AE 特性面前,都只支持将有限的 AE特性导出渲染,PAG 方案提供了 BMP 预合成的解决方案,支持将特定图层截图导出成透明视频,实现了对于所有 AE 特性导出的支持。
● 运行时编辑:PAG 不仅仅支持文本图层的文本编辑、图片图层的占位图替换,还支持图层级别的增加、删除及更改渲染位置,实现原子素材的自由组合,典型的应用场景就是视频模版和游戏战报,一个模版中由多个 pag 有机组合在一起。
● 渲染架构:相对于 Lottie 、SVGA 依赖于平台端相关的渲染接口,PAG 使用了跨平台一致的 C++ 架构,平台层面仅仅提供渲染环境,渲染的主体位于 C++ 层,可以实现跨平台的渲染一致性。
● 支持的平台更多:相比 Lottie 支持 Android、iOS、Web 和 macOS, SVGA 支持 Android、iOS、Web,PAG 实现了 Android、iOS、Web、macOS、Windows、Linux 和 微信小程序,支持的平台更多。

各常用文件动画特性:

使用步骤

  1. 引入依赖
implementation "com.tencent.tav:libpag:4.2.41"
  1. 使用PagView,这里使用的是PAGView,也可以使用PAGImageView
    <org.libpag.PAGView
        android:id="@+id/view_pag"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginTop="40dp" />
  1. 加载pag资源文件:
    pag资源文件可以放入到assets目录下。setRepeatCount表示播放的次数,-1表示循环,1表示播放一次。默认load但是不调用play,只会加载出第一帧图片。
    private fun loadPageAsset(pagView: PAGView, pagRes: String, repeatCount: Int): PAGView {
        return pagView.apply {
            composition = PAGFile.Load(assets, pagRes)
            setRepeatCount(repeatCount)
        }
    }
  1. 播放或者停止
 pagView.play()
  1. 动画停止:
 pagView.stop()
 pagView.progress = 0.0 //回到动画的第一帧,处理停止停留在随意一帧

最后,腾讯系产品都在用,他们都说好:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容