前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形式在移动设备上渲染播放。AE(Adobe After Effects)可是视频后期特效和动画制作的行家,前段时间充斥视野的MG动画都是用它制作的。如果真的可以实现,就会大大方便前端动画的设计。

后来到4月8日,我参加了第二届中国前端开发者大会(FDCon2017),作为菜鸟瞻仰了下各位大牛。巧的是,来自阿里的大牛渚薰做主题演讲时,也提到了Lottie和Bodymovin。渚薰的主题是“H5互动的正确打开方式”,演讲十分精彩。还等什么,听完大会我便操练了起来。

(上图为FDCon2017上渚薰讲到Lottie时的PPT页面)

经过了一番试验后,我大概摸清了Bodymovin的使用方式。这个AE插件可以把AE上做好的合成(Composition,类似于Pr里的剪辑序列)导出成带有矢量动画信息的json文件,并可以在以下平台播放:

Web页面,以svg/canvas/html+js的形式。Bodymovin自己提供了作为Player的js库——bodymovin.js;

Android原生,通过Airbnb的开源项目“lottie-android”实现;

iOS原生,通过Airbnb的开源项目“lottie-ios”实现;

React Native,通过Airbnb的开源项目“lottie-react-native”实现。

下面就分步骤总结下Bodymovin的安装和使用,以及导出的动画如何在Web页面上播放:

如果电脑上没有AE的话,需要安装AE CC2014或更高版本。以AE CC2017为例:

(AE CC2017 欢迎界面)

AE安装完成后,安装Bodymovin插件。

安装插件有几种方法,比如直接到Adobe的插件中心下载插件(地址:https://creative.adobe.com/addons/products/12557,一般不是最新版),也可以到Bodymovin的GitHub首页下载最新版的插件并安装。我推荐第二种方法,这个方法步骤如下:

2.1 到Bodymovin的GitHub首页(地址:https://github.com/bodymovin/bodymovin)克隆项目到本地,或者下载.zip包。

2.2 在项目目录的“/build/extension”目录下找到“bodymovin.zxp”文件,这个就是插件包了。

2.3 下载安装ZXP Installer(地址:http://aescripts.com/learn/zxp-installer/),打开软件,点击“File”>“Open”菜单项载入上述.zxp插件包,ZXP Installer会自动开始安装。安装完成后的软件主页面如下图所示,表示插件已成功安装。

打开AE,点击“编辑”>“首选项”>“常规”菜单项,选中“允许脚本写入文件和访问网络”,点击确定。

点击“窗口”>“扩展”>“Bodymovin”菜单项,就可以打开Bodymovin的界面使用插件了。

我们在空的AE项目里,新建一个名为“合成1”的合成,并制作一段简单的动画:

打开Bodymovin插件窗口,可以发现“合成1”出现在了下面的列表中。选中“合成1”,设置好json文件输出位置,点击“Render”。

Bodymovin还为生成出的json文件提供了预览功能,点击插件界面上的“Preview”按钮,点击“Browse”载入刚刚生成的json文件,就会看到,动画被原汁原味地导出了:

接下来我们新建一个网页来播放这段动画。把Bodymovin的GitHub项目目录下的“\build\player\bodymovin.js”和刚刚生成的json文件复制到网页根目录,新建一个html文件,代码如下:

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

打开这个页面,就会发现动画成功跑起来了,是不是很黑科技?

如果想让json版动画跑在Android/iOS设备上,在GitHub上搜索“lottie”,然后选择自己感兴趣的平台吧。

记得在FDCon2017大会上,渚薰演讲完毕后,有个人提出了我一直想问的问题:Adobe已经推出HTML5动画设计软件An(Adobe Animate CC),为什么不用它而要用这种方式?渚薰答道,An的前身就是Flash,它生成出来的H5动画是用js写的(使用CreateJS库),后期修改和维护会更复杂。确实如此,用过Bodymovin之后,不难看出它的灵活性的确很高,而且json形式的动画也远比js写出来的动画更适合跨平台。实在叹服,为Bodymovin点10086个赞。

android 加载ae动画,Bodymovin:Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画...相关推荐

  1. ae制h5文字动画_大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

    前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...

  2. android 2048 动画,大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画

    前段时间听部门老大说,Airbnb出了个移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形 ...

  3. android加载html

    今天写了一个小测试  android加载本地的一个html 首先main目录下新建一个assets 在android studio中新建目录时选中foder的assets 把html放入其中 在and ...

  4. android 漫画加载方案,Android加载长图的多种方案分享

    背景介绍 在某些特定场景下,我们需要考虑加载长图的需求,比如加载一幅<清明上河图>,这个好像有点过分了,那就加载1/2的<清明上河图>吧... 那TMD还不是一样道理. 言归正 ...

  5. android 载入svg动画,Android 加载SVG动画

    Android 加载SVG动画 SVG 可以说是目前比较流行的图片格式,使用领域也十分广泛,例如:web 前端页面,Android ios 等移动应用.都可以使用 SVG 的图片格式.今天就要和大家谈 ...

  6. Android加载Gif动画android-gif-drawable的使用

    Android加载Gif动画android-gif-drawable的使用 目前支持Gif播放的开源库还是有的,不过经分析: GifView:如果Gif图片太大会导致OOM; SimpleDrawee ...

  7. 关于 android 加载 res 图片 out of memory 问题 解决 同样适用于 sd卡图片

    2019独角兽企业重金招聘Python工程师标准>>> 发现android 加载res图片如果过多也会崩溃 android 也是使用 Bitmap  bm = BitmapFacto ...

  8. Android加载大图片OOM异常解决

    Android加载大图片OOM异常解决 参考文章: (1)Android加载大图片OOM异常解决 (2)https://www.cnblogs.com/jevan/archive/2012/07/05 ...

  9. android如何添加gif,Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1)...

     Android加载Gif和ImageView的通用解决方案:android-gif-drawable(1) Android自己的ImageView或者View不能直接加载运行Gif图片,如果要在 ...

  10. Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)【系列1】...

     Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)[系列1] Android在加载或者处理超大巨 ...

最新文章

  1. 《Hadoop技术详解》一导读
  2. ubuntu 搭建webrtc环境
  3. Android Toolbar Padding
  4. 【Android】页面栈
  5. 计算机系统的可靠性可以用什么来表示,系统分析师考试计算机系统的可靠性指标...
  6. qq群发信息显示服务器检测到,关于如何突破QQ群发消息屏蔽或限制经验总结
  7. jQuery选择器,用逗号分隔的时候需要注意范围问题
  8. clock gate cell
  9. android 软件apk自动更新实现注意点!!
  10. 基于DEAP库的python进化算法-6.遗传算法中的约束处理
  11. 机器学习之特征工程(二)
  12. VS编译NPAPI:error C2065: “PCONTEXT”: 未声明的标识符
  13. 计算机cf编程,警察牧马人宏自定义编程计算机游戏鼠标有线大声笑/ cf英雄联盟光速质量保证....
  14. Contiki教程——进程
  15. 【信息安全】屁股决定脑袋的COSO内控框架,一篇对COSO的趣评 [转贴]
  16. 程序员技术面试与HR谈薪资技巧的一些经验心得
  17. 2021年度深圳市企业技术中心认定条件申请指南
  18. 如何解决因网络问题导致的 github 下载出错
  19. Mybatis报错Could not find resource mybatis.xml
  20. 希尔排序大详解,保证10分钟内学会希尔排序(进化版插入排序)

热门文章

  1. 苹果/安桌点歌系统代码
  2. springboot源码 红色J_通达信精准指标,精确箱体——(主图 源码)介绍
  3. pdf editor android,PDF万能编辑器app下载
  4. python获取gps_Python GPS模块:读取最新的GPS D
  5. 如何使用kali的Searchsploit查找软件漏洞
  6. VS2012安装步骤
  7. 逛街游戏html5,HTML5购物商城app源码
  8. iOS 唤起各种App的方法总结
  9. windows10应用商店下安装kali子系统
  10. EDIUS5.5快捷键大全