当前位置: 首页 新闻详细

用WebP做Loading动画,真香!AE加载动画的学习分享

专业编程培训机构——完成蜕变以后轻松拿高薪

电话+V:159999-78052 ,欢迎咨询ae网页加载动画怎么做效果,[python实用课程],[C++单片机原理],[C#网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]

一、用WebP做Loading动画,真香!

探索WebP在制作加载动画的奇妙应用,发现其兼具高效与美观,确是加载动画的不二之选。

以往制作加载动画时,我们常依赖于Lottie与gif。Lottie凭借其svg动画优势,为动画效果提供流畅无损的代码支持,但矢量元素的限制与AE插件兼容性问题,时常成为制作瓶颈。

对于位图动画,传统方法通常采用gif,因其支持透明通道与动画效果。然而,图像质量不佳、颜色损失严重与令人难以忍受的毛躁边缘问题,特别是浅色背景下的明显瑕疵,成为使用gif的一大痛点。

优化gif边缘问题的方法在于调整杂边颜色以与背景接近,以此减轻最终使用环境中毛边影响。简单动画尚可解决,但复杂动画(如透明度变化与渐变效果)则难以达到令人满意的优化效果。

引入WebP格式,为动画制作带来了新的可能。WebP格式将序列帧打包生成动画,为加载动画提供了体积小、效果好的解决方案。

实现WebP动画的方法多样,包括使用AE直接导出、将视频导出序列帧后在网站上转换,以及借助Photoshop插件WebPshop。特别注意,导出动画时,需将图层重新命名以符合特定格式要求,确保每个图层均正确命名。

WebP动画的兼容性广泛,支持iOS、Android以及现代Web浏览器(如Chrome32及以上版本与Safari14.0及以上,确保系统为MacOS11Bigsur或后续版本)。

二、Lottie-前端实现AE动效

阅读时间10~15min本文转载自:TAFE-腾讯动漫前端开发团队,原文链接:人类身份验证-SegmentFault

项目背景

为了提升用户体验,项目加入了微交互动画。之前动画流程是通过设计输出合成的雪碧图,前端通过序列帧实现动画效果,如图:

序列帧:

动画效果:

帧动画的缺点和局限性明显,合成的雪碧图文件大,且在不同屏幕分辨率下可能会失真。调研发现,Lottie是个简单、高效且性能高的动画方案。

Lottie是可应用于Android,iOS,Web和Windows的库,通过Bodymovin解析AE动画,并导出可在移动端和web端渲染动画的json文件。设计师用AE制作动画,再用Bodymovin导出相应json文件,前端使用Lottie库实现动画效果。

Bodymovin插件的安装与使用

打开输出目录会看到生成的JSON文件,若动画里导入了外部图片,则会在images中存放JSON中引用的图片。

前端使用lottie

静态URLcdnjs.com/libraries/lot...

NPM

调用loadAnimation

vue-lottie

也可以在vue中使用lottie

loadAnimation参数

container

用于渲染动画的HTML元素,需确保在调用loadAnimation时该元素已存在

renderer

渲染器,可选值为'svg'(默认值)/'canvas'/'html'。svg支持的功能最多,但html的性能更好且支持3d图层。各选项值支持的功能列表在此

loop

默认值为true。可传递需要循环的特定次数

autoplay

自动播放

path

JSON文件路径

animationData

JSON数据,与path互斥

name

传递该参数后,可在之后通过lottie引用该动画实例

rendererSettings

可传递给renderer实例的特定设置,具体可看

Lottie动画监听

Lottie提供了用于监听动画执行情况的事件:可使用addEventListener监听事件

控制动画播放速度和进度

可使用anm.pause和anm.play暂停和播放动画,调用anm.stop则会停止动画播放并回到动画第一帧的画面。

使用anm.setSpeed(speed)可调节动画速度,而anm.goToAndStop(value,isFrame)和anm.goToAndPlay可控制播放特定帧数,也可结合anm.totalFrames控制进度百分比,比如可传anm.totalFrames-1跳到最后一帧。

这样的好处是可以把相关联的JSON文件合并,通过anm.goToAndPlay控制动画状态的切换,如下图中一个JSON文件包含了2个动画状态的数据:

图片资源

JSON文件里assets设置了对图片的引用:

若想统一修改静态资源路径或者设置成绝对路径,可在调用loadAnimation时传入assetsPath参数:

功能支持列表

即使用bodymovin成功输出了JSON文件(没有报错),也会出现动效不如预期的情况,比如这是在AE中构建的形象图:

但在页面中渲染效果是这样的:

这是因为使用了不支持的MergePaths功能

因此对设计师而言,创建Lottie动画和往常制作AE动画有所不同,此文档记录了Bodymovin支持输出的AE功能列表,动画制作前需跟设计师沟通好,根据动画加载平台来确认可使用的AE功能。

尽量遵循官方文档里对设计过程的指导和建议:预览效果

由于以上所说的功能支持问题会导致输出动画效果不确定性,设计师和前端之间有个动画效果联调的过程,为了提高联调效率,设计师可先进行初步的效果预览,再把文件交付给前端。

方法1:输出预览HTML文件

渲染前设置所要渲染的文件

勾选??Demo选项

在输出的文件目录中就可找到可预览的demo.html文件

ae网页加载动画怎么做效果

方法2:LottieFiles分享平台

把生成的JSON文件传到LottieFiles平台,可播放、暂停生成文件的动画效果,可设置图层颜色、动画速度,也可以下载lottiepreview客户端在iOS或Android机子上预览。

LottieFiles平台还提供了很多线上公开的Lottie动画效果,可直接下载JSON文件使用

交互hack

Lottie的不足之处是没有对应的API操纵动画层,若想做更细化的动画处理,只能直接操作节点来实现。比如当播放完左图动画进入惊讶状态后,若想实现右图随鼠标移动而控制动画层的简单效果:

开启调试面板可以看到,lottie-web通过使用标签的transform属性来控制动画:

当元素已添加到DOM节点,找到想要控制的标签,提取其transform属性的矩阵值,并使用rematrix解析矩阵值。

监听鼠标移动,设置新的transform属性值。

进一步优化

看到一个方法,在AE中将图层命名为#id格式,生成的SVG相应的图层id会被设置为id,命名为.class格式,相应的图层class会被设置为class

试了下的确可以,如下图,因此可通过这个方法快速找到需要操作的动画层,进一步简化代码:

小结

Lottie的缺点在于若在AE动画制作的过程不注意规范,会导致数据文件大、耗内存和性能的问题;Lottie-web的官方文档不够详尽,例如assetsPath参数是在看源码的时候发现的;开放的API不够齐全,无法很灵活地控制动画层。

而优点也很明显,Lottie能帮助提高开发效率,精简代码,易于调试和维护;资源文件小,输出动画效果保真;跨平台——Android,iOS,Web和Windows通用。

AE加载动画的学习分享

2019-05-0711:41·鼎锐江苏东星教育科技有限公司教育专卖店


大家多动动手,练习下一只可爱的猫咪就能展现出来了Step1.用AI做出猫咪的图;

Step2.用AE让它动起来,可以看出头尾在动画的一个周期中,开始和结束的位置是相通的,中间有所不同,所以可以通过控制中间尾部的运动速度来实现;

Step3.AE导出.mov,用ps保存为gif。

哇感觉好简单赶快做起来…

Step1.用AI做出猫咪的图

就是同心圆咯,圈圈圆圆圈圈~建立参考线分割成适合的长度,给一个合适的粗细


然后删掉不需要的部分,轮廓化描边,加上眼睛嘴巴~可爱~


把猫咪身体的部分单独导出一个图,会用到~


AI里需要做的就这些啦~因为没有复杂的路径动画,可以直接导出png来用

Step2.用AE让它动起来

AE新建合成,导入这两张图片


中新建一个圆形的形状图层(以便找到猫咪的旋转中心)


导入的两个图片对齐圆形边缘,将锚点移动到中心位置(锚点位置如果没对齐转起来会对不上哦)



嗯,完成一半了

因为头尾旋转速度不一样(猫咪身体拉长的效果),复制一个猫咪图层(ctrl+d),分别命名头/尾,用钢笔工具画蒙版



先给3个图层相同的2秒360度旋转,加缓动,然后在速度曲线面板里调整速度~就是尾部要比头部转的慢一些,easy~


然后身体图层就是用来填补头部和尾部中间的空隙啦,随便调一下就好了,如果有超出头尾的部分,就画个蒙版遮一下~


Step3.AE导出.mov,用ps保存为gif




【WINDRISES EMPLOYMENT PROGRAMMING】尊享对接老板

电话+V:159999-78052

机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。

ae网页加载动画怎么做效果
发布人:802251567 发布时间:2024-10-25