动画还原100%-AE一键导出

  • 经验类型教程
  • 经验属性原创文章
  • 经验版权署名-非商业性使用-禁止演绎
6187 53 253 2017-08-03

AE一键导出动画文件,100%还原动画效果。设计无需手动标注参数,开发无需反复调试细节。本文偏教程类,上手简单,一劳永逸(插件见附件)。

Image title

工作中,你可能经常会遇到以下场景:
场景一:
设计:这是动画的demo和参数标注图,你看一下。
开发:好的没问题。
一段时间后……
开发:动画效果实现出来了,你走查一下。
设计:这里速率不对,这里弹出的效果有点生硬,这里……


场景二:

设计:这里的页面转场需要一个动画,这是demo。
产品:啊!当时提需求单的时候没说这里要加动画,我给开发评估一下吧!
产品:开发评估这个动画需要2天的工作量,这个版本来不及,要不放到下个版本再优化吧!
设计:怎么又是这样,好(qu)吧(shi)!
然后下个版本就不了了之了……


总结以上场景,在动画的开发过程中无非就是两个问题:
1、动画的开发成本比较高,需要反复调试;
如果是处女座的设计师,还会坐在开发同学旁边“折磨”开发同学一起调细节。

2、版本迭代周期紧,动画一般会被简化或砍掉;
动画相对于基础功能,只是锦上添花的效果,优先级比较低。


作为一个互联网从业人员,不管是产品,设计,开发还是测试,都有一个总的产品业务目标。大家最终的目的就是把产品做好,然后发家致富。对于偏离总目标的需求或者设计,砍砍砍!


那么,站在产品的业务目标来看(例如:提升活跃,增加营收),功能玩法的设计,上线后呈现出来的数据效果比较直观(例如:留存率新增36%)。而动画设计的验收,很难有一个量化的标准。因此,为了减少开发成本,对于一些非核心路径的动画,一般能免则免。


为什么动画的开发成本高,优先级低,还是有很多app愿意投入大把时间来做动画?
动画可以帮我们提升UX(用户体验),使UI界面显得更加一致和真实,并给整个产品带来创新的感觉。


动画有三个重要特性:

1、功能性Functional;

    • 优化用户对界面的感知,使其感到更轻快更全面。
    • 引起用户的注意。
    • 提供(用户操作后的)视觉(功能)反馈,并为下一步的跳转做准备。

2、物理性Material;

    • 在一致的动画原则和物理的(符合物理定律的)UI模型基础上构建动画。
    • 定义屏幕和UI元件之间的空间相对关系,他们的相对高度,权重以及速度。

3、趣味性Delightful

    • 在上面两个部分都满足的情况下,加入一些有趣的动画。
    • 使它感觉独特,能在诸多动画中能让人眼前一亮。
    • 娱乐用户,并让他们一想到动画就能想到该产品或者反之。


这时候,如果有人再质疑为什么要做这个动画,你就根据自己所做的动画属性,把上面的答案甩到他脸上。


好了,言归正传。相信很多设计师都喜欢做天马星空的概念demo,可以无拘束的表达自己的想法,但一涉及到落地实现,各种问题就出来了。

接下来就带你来解决动画还原的问题,只需简单的2步,即可告别繁琐的动画标注和还原问题。


步骤一:
安装AE软件+bodymovin插件


准备工具:
软件:Adobe After Effects(版本到CC 2014以上即可)
AE插件:Bodymovin(附件下载)

Mac用户:
1、打开安装器ZXP Installer,拖动bodymovin.zxp到安装器上;
2、安装过程中会先看到updating,耐心等待一分钟左右,看到The extension was successfully installed!则表示插件安装成功了。(如下图)

Image title

Windows用户:
1、把bodymovin.zxp的文件拷贝到ExManCmd_win的文件夹里;
2、在ExManCmd_win的文件夹里打开CMD(使用win+r组合键,弹出“运行”窗口,输入CMD,即可打开命令提示符)。然后在窗口输入ExManCmd.exe /install bodymovin.zxp 回车,耐心等待一分钟左右,即可(如下图)

Image title


步骤二:
如何导出json动画文件


1、安装成功后打开AE,设置在首选项 ->常规 ,将允许脚本写入文件和访问网络选项勾选上。否则后面导出时会报错。设置页面见下图:

Image title

2、状态栏上选择窗口 -> 扩展 -> Bodymovin,选择好合成和保存路径后,点击Render就能导出json了,再把json交给客户端工程师就能生成动画。

Image title

在导出json文件时,可以点击设置图标,选择其他几种不同的方案
1、为动画分解成多个文件
2、将字体转换成图形形状
3、隐藏,检查导出时需要隐藏的图层
4、向导,检查导出时需要导出的向导层
5、额外补间,检查表达式是否指向所有补间动画
6、原始名称,输出原始项目名称
7、将动画和播放器合并到一个单独文件
8、Demo 导出一个本地可以查看的html演示文件

一般默认会选择2,建议导出的时候同时选择8,这样导出的html可以在浏览器中查看动画效果(以防导出的文件动画缺失)


关于AE导出json动画的几个疑问:

1、json动画的优缺点有哪些?
优点:

1、开发成本低,动画的还原度高。设计师导出 json 文件后,扔给开发同学即可。原本要1天甚至更久的动画实现,现在只要不到一小时甚至更少时间了。
2、支持服务端 URL 方式创建。所以可以通过服务端配置 json 文件,随时替换客户端的动画,不用通过发版本就可以做到了。比如 app 启动动画可以根据活动需要进行变换了。
3、性能提高,可以替代原来需要使用帧图完成的动画。节省了客户端的空间和加载的内存。
4、跨平台,iOS、安卓平台可以使用一套文件。省时省力,动画一致。不用设计师跑去两边去跟着微调确认了。
5、支持转场动画。 PresentViewController/DismissViewController 时可以做转场效果。
不足:
1、对一些AE的属性支持不够完全(例如:表达式,中继器)
详情见官网:https://github.com/airbnb/lottie-ios。
2、对系统平台版本限制,如 iOS8 及以上,安卓 API14 及以上。
3、对可交互的动画暂时还不行,主要是以播放类型动画。

Image title

2、AE动画导出json文件时,需要注意些什么?
答:做动画时,图片和图层最好用英文命名,不然导出的json文件有些地方会乱码。

3、json动画的适用范围有哪些?

答:json适用于小范围的动画(如下图),页面过渡跳转,弹窗动画建议参考facebook 官方开源动画 origami(支持导出代码,开发可以直接用),网上有教程,感兴趣的同学可以自行学习。官网:http://origami.design/

Image title

4、Lottie是什么,开发不会用Lottie怎么办?
答:Lottie是一个可以解析使用【bodymovin】插件从 Adobe After Effects 中导出的格式为 json 的文件,并在 iOS、Android、macOS、React Native 中进行解析使用的开源库。这个库由 Airbnb 开发并在2017年2月份左右开源的。不会用还能怎们办,一个字:学!


5、导出的面板看不到合成项目?

答:动画文件需要合并成一个预合成才会出现在面板里。



以上是楼主结合项目总结的一些经验,各位小伙伴在使用过程中,如有疑问,欢迎留言评论~








全部评论:53

  • 苹果味的啊

    2019-12-29 15:30

    请问为什么我按步骤安装完之后在窗口-扩展里面找不到该插件.关闭AE重启之后也没有呢

  • 初心

    2019-03-05 13:19

    插件在哪里?

  • 哈尔哥

    2018-11-23 15:21

    @兔der酱: 之前的版本是有这个问题,升级新版的插件即可

  • 兔der酱

    2018-10-19 10:44

    在AE中画的渐变形状bodyMovin导出JS后显示的是黑白 是什么情况呀 求解

  • rabbit不爱吃萝卜

    2018-09-19 14:12

    @菠萝包: 我是win10,也不太行

  • 菠萝包

    2018-08-02 00:33

    @rabbit不爱吃萝卜: 感觉win7一直装不上,不知道怎么搞

  • 会飞的猪x

    2018-07-07 16:23

    @林得青: 请问找到解决方法了吗,我的也是

  • 唯有爱和美食不可辜负

    2018-03-09 16:23

    Failed to install, status = -403!

  • LISTEN言午

    2017-12-19 09:23

    据说还能导出svg,可选项里面没有svg这个选项

  • 费欧fio

    2017-10-10 07:59

    @Jk灬糖度: 哈尔哥说位图支持基础位移和缩放,渐变目前不支持,去楼主提供的扩展链接里看看github上的用法描述呗。我后来工作繁多,没时间研究,停下来了。最近再来演技研究!一起啊~

  • 费欧fio

    2017-10-10 07:57

    @哈尔哥: 如果是插件实现的复杂动画,应该不支持把。不过你的文提到了一些注意点!我再去研究研究,遇到问题再请教你!

  • 林得青

    2017-08-25 14:19

    @哈尔哥: 好的。感谢

  • 哈尔哥

    2017-08-24 17:18

    @林得青: 看一下开发解析的尺寸和你导出是不是一致,如果不一致,有可能会发生被切角的情况

  • 小梦浪人

    2017-08-21 18:09

    太棒了 谢谢无私分享 非常好用 再也不用跟前端撕逼了

  • 林得青

    2017-08-21 13:58

    我遇到个问题,我导出的html文件预览是正常的,然后把导出的json文件给到开发,他解析实现出来,动画部分别切割掉一部分,显示不完整 是怎么回事?

  • CPH4

    2017-08-21 11:27

    @OneBee: 哈哈哈哈 兄弟扎心了

  • 莫奈丢了画笔

    2017-08-21 11:05

    好东西,哈哈哈哈,前段时间刚刚留意到这种实现工具,没想到在这里就给遇到了,果断下载+收藏,以后项目遇到问题再来请教

  • 超人他哥

    2017-08-18 11:36

    挺不错的,期待支持更多功能。这个确实能减少开发的工作量,同时实现效果还阔以。导出的时候不要预合成也可以,但是如果要用刀预合成要注意原始尺寸,最好跟文件尺寸接近,不然开发那边没法调整。以上是我目前遇到的问题,同时也解决了~感谢!

  • Jk灬糖度

    2017-08-14 08:51

    @费欧fio: 矢量图的渐变支持吗?

  • 哈尔哥

    2017-08-11 17:43

    @林枝丫: 位图基础的位移缩放是ok的,可以试一下。渐变目前确实不支持,待团队开源哈

  • 哈尔哥

    2017-08-11 17:42

    @口袋尔东: 尔东你调皮了~

  • 林枝丫

    2017-08-11 15:11

    @哈尔哥: 位图动画也支持了?啥时候开始支持的,之前连形状层的渐变色也支持不了

  • 口袋尔东

    2017-08-11 14:10

    哈尔哥现在应该改口叫哈尔老师了吧?

  • 哈尔哥

    2017-08-10 22:43

    @费欧fio: 位图动画也支持

  • 费欧fio

    2017-08-10 17:10

    对于矢量动画应该可以,但对于位图动画,好像不行喔?试过一次,没成功使用上

  • 听心的声音

    2017-08-09 15:54

    很赞!可不可以出个基本的用AE做动画的教程呀

  • OlafChou

    2017-08-08 10:07

    @OneBee: 恩,我还没见过iOS开发要gif的

  • OneBee

    2017-08-08 09:49

    @OlafChou: 从ios到android到前端开发,都特么的跟个智障一样,开口就是要gif。这会儿好点了,我给他们序列帧做帧动画

  • 有志不在年糕

    2017-08-08 09:34

    bodymovin最新版么?比我的界面好看多了。

  • OlafChou

    2017-08-07 20:42

    @OneBee: 开发可以用 gif ????你们什么开发

  • 更多

更多作品

发表评论

取消

点击右上角
分享给朋友吧

分享到

取消

每人每天仅限5票,快给你心仪的作品鼓励的一票。

投票