动画制作轻量级SDK:PAG六大优势助力开发
副问题[/!--empirenews.page--]
动画殊效可以帮助视觉建造核心,引导留意力的偏向,越来越为宽大视觉计划师青睐,并普及应用于种种场景开拓。 关于动画计划器材,既有 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 文件,不消再拖着一个资源文件夹了。 Lottie 当前对图片类动画的支持依然会有一些小题目,偶然辰必要细心排查出题目的图层,并比较官方文档机动调解动画更换方案。 PAG最初降生的缘故起因,正是由于Lottie无法满意视频编辑场景里的动画以下几点需求: 1.其时它基础不支持文本图层,可编辑的字幕贴纸是视频编辑很是重要的手段。 2.在 iOS 上它依靠 CALayer 渲染,当用在非主线程的视频合成时,有部门动画会不泛起。 3.Android 上,它的遮罩实现无与伦比的卡(10×),但受限于 Java 层的阉割版 Canvas,也没有出格好的实现方法。 其时的Lottie还存在大巨微小扎堆的渲染 Bug 以及成果支持还不完美,如无法反向遮罩,矢量图无法挖空等等。 PAG 选择了放弃重写渲染SDK办理方案,从新开始计一律种更高效的二进制动画文件名目,并基于AE C++ SDK从头实现了导出插件,又基于跨平台C++和OpenGL重写了两移动端渲染SDK,历时半年跑通第一个版本。PAG包括了其时Lottie支持的全部成果,并彻底挣脱了导出和渲染上的手段扩展相干限定。 对比于Lottie方案,PAG不只办理了在它在矢量动画渲染上的各类题目,更重要的是扩展了动画的行使场景,PAG环绕运行时可编辑性计划了机动的架构,可以或许美满 实现动画的局部编辑替代需求。 三、PAG首要上风先容 PAG在运行时,可在保存动画结果条件下,动态修改替代局部的文本或占位图内容,乃至对恣意子图层举办增编削及移动,极大富厚了动画素材的行使场景,轻松实现照片和视频模板等素材的批量化出产。 PAG SDK整套方案是基于 C++ 和 OpenGL 的跨平台架构研发的,不依靠平台相干的UI框架,除了能做到跨端渲染完全同等外,还能轻松移植到各个原平生台,个中也包括处事器端的渲染手段。 在机能方面,PAG应用了游戏渲染里的大量的优化履历,计划了从中间渲染数据到局部位图的多级缓存架构,加上帧猜测的技能,每帧渲染耗时均匀可以做到Lottie的50%阁下。 因为回收二进制名目,不存在JSON的字符串理会,解码耗时均匀比Lottie文件的快12倍,沟通的动画内容导出文件只有Lottie一半阁下巨细,同时二进制文件名目也更轻易做到单文件集成图片,音频,视频等恣意资源。 (数值单元:毫秒) 以下总结了 PAG 方案的六大上风: 1文件更小PAG是二进制文件名目,并回收了可变长编码整形以及动态按位聚合这些压缩技能,让沟通动画导出的文件巨细均匀只有 Lottie 的一半阁下(都颠末zip压缩后比拟)。PAG 除了对殊效类动画的支持可圈可点,对矢量动画的支持也长短常优越,乃至强于 Lottie。以一个发展动画为例,Lottie 文件 14k,而 PAG 文件只有1k。 2解码更快因为回收二进制名目,不存在JSON的字符串理会,解码耗时均匀只有Lottie文件的7.6%,同时二进制文件名目也更轻易做到单文件集成图片,音频,视频等恣意资源。 3支持更多AE特征PAG今朝支持Lottie在移动端险些全部的成果,而且特殊在文本,遮罩,滤镜方面比Lottie支持越发全面。除了矢量导出,PAG还增进了视频序列帧导出,可以或许支持全部的AE特征。 4机能更好基于 C++ 和 OpenGL 硬件加快渲染,除了能做到两头渲染完全同等外,应用了游戏渲染里的大量的优化履历,从中间渲染数据到局部位图的多级缓存架构,每帧渲染耗时均匀可以做到Lottie的50%阁下。 5编辑性更高除了运行时文本编辑和占位图替代成果外,PAG还支持图层级此外恣意组合修改。为伟大的应用场景提供越发机动的编程扩展手段。 6支持处事端渲染PAG支持处事端渲染手段,以C++方法接入,可以支持处事端照片转殊效视频以及一键大片模板等成果,团结H5快速实现运营勾当页。 四、PAG SDK端全平台接入方法 今朝PAG SDK已经支持了5个原平生台,包括iOS、Android、Linux、Windows和macOS等。并且SDK的接入很是便捷,可实现10分钟快速接入。 Android端SDK为aar文件,支持armeabi, armv7a, arm64 iOS端SDK为framework文件,分为四个版本:真机版(arm64、arm64/armv7)和真机模仿器版(arm64/x64、arm64/armv7/x64) Android端接入 根基要求 支持android 4.4及以上体系 保举行使gralde 3.0及以上版本编译 aar接入 1.将libpag的aar文件安排在android工程项目标libs目次下 2.添加添加aar库依靠 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |