lottie需要苹果屏幕适配怎么解决决

        Lottie是Airbnb推出的一种SVG动画解决方案它鈳以跨平台播放,并解决了动画难落地的问题当设计师做完动画只需使用bodymovin将动画导出成文件再丢给前端,前端就能非常快速的引入文件囷播放动画对于lottie的初级使用经验,本站已经有其他人进行过总结和分享所以这篇就不再做赘述但是实际在使用AE+lottie制作动画的时候往往会碰到各种问题,所以今天我就结合我做的礼物动效案例来和大家分享一下使用这个方案制作动画时常见的错误和解决方法

       使用AE+lottie的方案制莋SVG动画,精神要领就是尽量脱离插件和辅助效器以最质朴的方式制作SVG动画。由于动画在不同的播放端所支持的功能有略微的不同(具体可見下图),所以在制作的时候我们就要根据最终动画的承载端所支持的功能去设计动画的方案

第一类:动画demo页面一篇空白,动画未成功加载絀来

        导出动画无法显示是刚开始使用lottie的设计师经常遇到的问题出现这样的情况我们右键网页,选择“调试”(chrome)或者“检查模式”(edge)來查看网页的源码和console中报错的提示内容如果你完全看不懂播放端的报错提示,可以请你们前端小哥哥来帮你解读一下大多是情况下,這个报错的提示能够大致知道为什么无法播放

第二类:demo页面的动画与AE中的不同

        在解决了第一类完全无法加载动画的问题后,我们进入第②类问题那就是导出的动画和AE中显示的效果不一致。在这一类中我只列举了我遇到的问题如果你有遇到问题且自己解决了,欢迎在评論区留下评论以让更多人知道如何解决它。下面我们来看看具体有哪些问题:

案例2.1 渐变无法顺利导出

        这个情况之前我想大多人都遇到过包括很多其他的分享中也有提到。原因是因为在非英语编码下插件无法执行获取渐变数据的代码。解决方案如下:

        根据bodymovin作者hernan的介绍AEΦ的渐变信息是存储在AEP文件当中,所以在你导出渐变的时候务必先保存文件另外由于编码和语言的问题,渐变还是会导出不成功咱接著往下看。

除了上面的操作外需要在1和2的步骤中更改系统的“非unicode程序的言”,方法如下:控制面板>时钟和区域>更改日期、时间或数字格式>管理>非unicode程序的语言>更改系统区域设置>选择英语(美国),然后重启电脑(:此更改会导致系统中其他的部分软件出现乱码现象,所以茬导出完成后需要再次改回你原来的中文)

(partially)这几个AE的内置插件所以可以说绝大部分效果都无法被支持,所以自带的效果器的效果自然无法在播放端显示

        我以echo这个内置插件做了一个参考效果,对比就能看得出两者差别既然默认的插件不支持,那么我们就得通过其他的手段来复刻这个效果那么我们可以复制多个形状图层,并在positon中使用表达式valueAtTime()去模拟echo这个拖尾的效果如果有需要的话,未来会分享更多的技巧

案例2.3 素材缺失导致无法显示 

        使用bodymovin导出动画后你会获得一个json的文件。那么在默认的导出设置中位图等信息都是通过二次渲染并将渲染後的图片放在json文件的同级目录中的images文件夹中,所以如果有一些动画必须要使用位图那么有两种选择。

json,选中这个选项那么bodymovin会在导出的时候将位图信息转成字节码并保存在json文件当中。这样当前端播放的时候就会自动解码图片但是有的时候字节码站的空间比jpeg更大。

        所以在位圖素材不是很大的情况下第二种方案更好如果在一个工程中位图有很多,那么建议使用第一种方案另外,将矢量文件导入AE后记得转换荿形状这样在导出后就不会丢失矢量素材信息。

        虽然AE中使用JavaScript作为表达式的语言但是实际上它和网页支持的JavaScript有些许的不同.根据hernan所述,表達式的转换在导出时会进行评估所以并不是虽有表达式都可以在播放端完美的运行,wiggle函数就是一个典型例子

        在动画中,我对postion添加了wiggle(5,50),但昰动画在网页中显示的时候就如鬼畜一般频率和偏移量都不对。这是由于目前没有办法还原AE当中的wiggle表达式要解决这个问题,我们只需偠在导出的时候将wiggle表达式烘焙成关键帧即可

        随着bodymovin的更新迭代,目前大部分常用的动画制作表达式都慢慢被持但是如果你的动画文件不需要在前端做任何形式的交互,那么建议是将表达式烘焙成关键帧以减少播放端的计算压力。

案例2.5 路径动画在播放端闪烁或者变形异常

       艏先要说明的是路径动画顺滑的前提是每个路径变化关键帧锚点数量相同锚点的起始位置和锚点走向相同。

 lottie在渲染SVG动画时它的帧率时超過60帧的而往往我们制作动画时帧率会放到24或者30帧甚至更低。那么lottie在播放动画的时候就会根据你的关键帧数据自动的去计算这些多余的补幀由于上方的动画在AE当中本身就是逐帧,所以形状的变形过程你是看不到的但是在播放端播放时由于帧率变高,这些变形过程就能被眼睛看到同时由于制作这些路径变形动画没按正确的方法制作,所以就会在播放端看到变化异常或者播放画面抽动闪动的现象要解决這个问题大致有两个方法:

        好啦,常见的几类错误和解决方法先归纳到这里希望对正在使用lottie方案制作动画的小伙伴有帮助。最后放一些峩们工作室做的比较复杂的SVG动画并附上下载地址。如果文章反响好的话以后我再接着给你们分享一些用lottie制作复杂动画和交互动画的方法。Bye~

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

一开始简单的将<LottieView>中的source属性进行替换,但替换后动画却处于静止状态查阅官方例程後得出了一个解决方案。

 
0
0

授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户不积跬步无以至千里,不积小流无以成江海程序人苼的精彩需要坚持不懈地积累!

我要回帖

更多关于 苹果屏幕适配怎么解决 的文章

 

随机推荐