恭喜你成为UI中国推荐设计师 (详情)
//百度统计 20220402 uicn

您的意见是我们 UI 中国进步的动力!
点击立即反馈按钮,发表您的意见!
立即反馈
QQ群反馈
您也可以加入UI中国官方反馈群进行反馈!
群号:302892100
备注:反馈问题后@管理员能让我们及时了解您的意见

提交需求

赛事与广告咨询合作,请填写需求表单,我们会在第一时间与您联系!

0/20
0/200

设计大赛

  • 设计大赛
  • 发布广告
  • 发布招聘
  • 其它需求

提交完成
感谢您对UI中国的支持和信赖!
UI动效知识点详解
0.0°
2020-08-13 原创文章 经验/观点 举报 4132 30 18 4

UI动效的规则有哪些?

实际如何运用?

常用的交互手势有哪些?

运动曲线有哪些?

UI动效适合用在什么页面场景中?

如何保证UI动效的合理性?

UI动效如何做?

...

看了以上的问题,不知道大家感受如何?肯定心里或多或少都有些答案了,但可能还不是特别全面。所以下面我的这篇总结会围绕上面的问题一一给大家做解析。



UI动效的四大属性:位置、旋转、缩放、透明度
UI动效需要遵循的原则:提升用户体验,注重交互逻辑(落地回弹、先快后慢、惯性回弹)

动效的本质是服务产品和愉悦用户的,并不是所有的页面及元素都适合加动效,所以我们在做动效的之前,就应该明确目标以及动效的合理性。下面来具体讲一下UI动效的使用规则和适用场景。


1、交互层级展现

交互层级动效实际运用到APP的并不多,因为有些复杂的动效对产品和用户来说实质意义不大,而且开发的成本也不低。当然如果交互层级做得好的话,可以帮助用户更好的理清关系,降低用户的学习成本,以动效来体现整个系统的空间感。


适用场景:适合层级逻辑性较强的页面,比如iOS系统的日历,点击年月日是一个层层递进的感觉,无论是从年到月到日,还是日返回到年月,整个放大和回缩的交互动效都很一致,非常符合这种层级关系。



2、吸引眼球

这类的UI动效在运营设计中比较常见,主要目的是吸引用户的注意力,促使用户点击,来达到一个转化的目的。这类动效并不复杂,它一般只在重要的元素上做动效,这种微动效的方式不仅可以降低视觉元素的干扰,还使得界面更加清爽简洁,开发成本也比较低。


适用场景:适用于运营专题页、banner、悬浮红包优惠券等,比如下图的banner,它只有两个元素做了动效,一个是GO的按钮,一个是人物的投影闪光。元素动效很简洁但很有效,让人一眼就看到了点击的按钮,悬浮优惠券也是如此。



3、操作反馈

操作有反馈是交互体验的一个必备因素,这就不用多说了,至于反馈是要用静态的方式呈现还是动效的方式呈现,这都取决于反馈是否重要,重要的反馈采用动效的形式展现,不仅可以帮助用户更好的了解当前操作的响应情况,还能为用户带来安全感和愉悦感。


适用场景:适用于重要的操作反馈,大多使用在按钮和图标动效上。比如App Store的获取按钮,它是一个从安装到完成对勾的一个动效,还伴随着小震动和声音,整个体验流畅且愉悦。标签栏的选中图标动效其实也是属于一个操作反馈动效,它能更好的突出选中氛围。



4、转场过渡

页面转场过渡的动效也非常常见,它最主要的目的是给内容加载提供一个缓冲,好的转场动效不仅能降低用户等待的焦虑情绪,还能使页面更加生动有趣。


适用场景:页面内容加载、加载小动效、刷新等。比如下图的一个loading动效,它能在等待中有效的分散用户的注意力,降低用户等待的焦虑情绪。如果没有动效的话,可想而知,用户可能直接就走了,不等你加载了,所以一个生动的loading动效在转场加载中是非常必要的。

5、增强表现力

表现力交互动效在dribbble上比较多,虽然酷炫的可能都是飞机稿,但真正有实用价值的也不少,像空间扩展、图片放大延伸这些表现力的动效不仅能节省页面空间,还能减弱用户的挫败感,增强产品表现力。适用场景:页面跳转、内容滑动、空间表现等。

比如下图的爱彼迎列表页面,点击图片,图片放大至顶部,内容随之出现,点击返回,图片缩小,内容不见。整个动效从列表到详情的过渡非常自然,是给产品加分的,表现力就不言而喻了。



6、提升流畅度

提升产品流畅度相当于是对产品的一个不断打磨和挖掘的过程,增强与用户的互动,加深用户对产品的挖掘,增加页面的活力,给用户制造惊喜,形成依赖。

适用场景:任何有优化空间的地方都适用。网易云播放歌曲页面就是一个很好的例子,播放时中间的唱片缓缓旋转,唱头也一直搭在唱片上面,暂停歌曲后,唱片停止旋转,唱头也随之移开。整个动效过程的现实隐喻感很强,播放也非常流畅,个人非常喜欢这个设计。





1、点击

点击是最常用的手势之一,基本上每个页面交互都会涉及到点击。比如:点击跳转页面、点击按钮保存、点击关注、点击分享等。


2、双击

双击在移动端中不常用,一般只会用在双击放大图片、放大视频。


3、滑动

滑动包括左滑、右滑、上下滑动,也是比较常用的交互手势,比如:左滑删除、右滑动查看更多内容、向下滑动浏览更多信息等。


4、下拉

下拉这个手势,最常见的交互就是刷新了。


5、长按

长按手势在安卓系统中会比较常见,比如:安卓长按手势可触发删除,而iOS则是左滑删除,长按手势还经常用在编辑上。


6、拖拽

拖拽手势在移动内容中经常用到,例如发朋友圈添加了多张图片时,可拖拽图片进行重新排序。


7、两指缩放

两指缩放手势经常用在图片放大这个操作上,例如查看照片,两指缩放可随意放大或缩小图片。


8、摇一摇

摇一摇这个手势在页面中不常用,只在特定的功能才会使用到,像摇一摇得红包、摇一摇获取附近的人。






运动一般都不是匀速运动的,都是有一个运动规律的,UI动效常用的运动曲线是缓出(先快后慢)和回弹。缓出一般用在页面进入,回弹一般用在元素位移比较多。下面是5种曲线运动的效果图对比,当然如果想要做出更多不同的效果,还需要去调节曲线。





之所以介绍AE的表达式,是因为AE的功能非常强大,UI动效MG动画包括影视后期都可以做。当然做UI动效也不一定要用AE,也可以使用一些比较轻量级的软件,像Principle、Origami、Flinto也是很好的选择。

AE的表达式很多,下面主要说一下比较常用的几个,代码可以直接复制使用。

表达式快捷键:按住Alt/Option键,然后点击你要添加表达式的属性前面的秒表,弹出的编辑框,把表达式代码复制进去即可。


1、时间

利用随着时间变化的time值,我们可以做出随着时间变化的表达式,time的表达式可以让我们更快的做出旋转类的动效。


time*120

time后面的数字越大,动效就越快,反之越慢


if(time<1)

{time*120;}else

{time*(-120);}

这段代码的意思就是:如果当前时间小于1,就执行time*120,否则就执行time*(-120),运用if和else可以更方便的控制运动的走向。


2、复制

复制的表达式其实和动效没太大关系,和普通的复制旋转功能差不多,但是它比普通的方式更快捷方便,比如下面的圆角矩形,它只要在第一个形状属性添加一句代码,然后多次复制,就可以得到加载的图形。


(index-1)*30

30代表的是旋转的度数,可根据情况自由更改。


3、循环

使用循环表达式可以省略我们很多的K帧,比如我们想要一个元素在动效中不停的循环,一般情况下我们会重复的K帧,比较麻烦。但是使用表达式的话,就只需要做好一个来回的关键帧,然后添加循环的代码就可以。


loopOut() 

添加这个表达式,物体会不断的循环动效,但是它比较生硬,不够生动。


loopOut(type="pingpong",numkeyframes=1)

这个表达式相对于上面这个,更加的缓和舒适,大家也可以根据自己想要的效果自行调节它们的缓动曲线。


4、运动拖尾

运动拖尾表达式可以用在一些位移动效上,结合运动模糊和透明度效果可能更好。


缩放属性:s=100-(index-1)*10;[s,s]; 

位置属性:valueAtTime(time-0.015*(index-1))

运动拖尾的这个效果,需要在形状上添加缩放和位置这两个属性的表达式,然后复制多个就可以得到下面的效果了。


5、倒计时/记时

倒计时/记时的表达式在文本的源文本属性上添加,倒计时的时间值等于动效的整体持续时间。比如说持续时间是5秒,最后倒计时时间值就是5秒。


t = Math.floor(outPoint-time); 

minut = Math.floor(t / 60);

second = t % 60;

if(minut < 10) 

{

if(second < 10)

{

['0' + minut + ':' + '0' + second];

}

else

{

['0' + minut + ':' + second];

}

}else {if(second < 10){[minut + ':' + '0' + second];

}

else

{[minut + ':' + second];

}

}

倒计时的动效只需要添加上面的这个代码,而记时的动效需要先添加上面的代码,然后把文本进行预合成,点击右键选择时间-时间反向。


6、抖动

抖动表达式比较灵活,UI动效的四大属性位置、旋转、缩放、透明度都可以用,但用的最多的属性还是位置。


wiggle(1, 10) 

它的第一个参数指的是摆动的频率,第二个参数指的是摆动的幅度。可以根据需要去调节它的数字。


7、万能回弹

回弹在UI动效中用非常多,尤其是运用在位置属性上。


nearestKeyIndex = 0;

if (numKeys > 0){

  nearestKeyIndex = nearestKey(time).index;

  if (key(nearestKeyIndex).time > time){

    nearestKeyIndex--;

  }

}

if (nearestKeyIndex == 0) {

  currentTime = 0;

} else {

  currentTime = time - key(nearestKeyIndex).time;

}

if (nearestKeyIndex > 0 && currentTime < 1) {

  calculatedVelocity = velocityAtTime(key(nearestKeyIndex).time - thisComp.frameDuration / 10);

  amplitude = 0.2;

  frequency = 2.0;

  decay = 4.0;

  value + calculatedVelocity * amplitude * Math.sin(frequency * currentTime * 2 * Math.PI) / Math.exp(decay * currentTime);

} else {

  value;

}

上面标红的参数是可以调节的,amplitude是振幅、frequency是振频,decay是衰减,至于具体什么意思,大家去试试就知道了。


写在最后:以上总结了UI动效的基本规则、使用场景、交互手势、运动曲线、AE表达式,内容还是比较多的。其中AE表达式的话,个人建议也不要太死的去套,可以很灵活的按照自己想要的效果去修改参数以及调节曲线。表达式只是辅助,动效最重要的还是想法,只要想法及构思到位了,技巧和实现假以时日肯定是没问题的。当然如果平时不积累不多看多练的话,大脑肯定是一片空白,是不可能想法的。

...

好久没写了,希望大家多多点赞,抱拳~


Powered by Froala Editor

微信公众号:小梓的设计酷

更新:2020-08-13

收藏

30人已收藏

小梓_xiaozi

微信公众号:小梓的设计酷

  • 26

    作品

  • 696

    粉丝

  • 3

    关注

  • 全面解析大厂APP的适老化设计
  • 如何做好海报设计?
  • 外国美术史与设计
  • 如何规范界面“文案”?

    猜你喜欢

      2020-08-13 原创文章 经验/观点 举报 4132 30 18 4

      UI动效知识点详解

      0.0°

      你确定要举报UI动效知识点详解

      如果查出恶意举报,十天内禁止提交任何举报申请。

      0/200

      上传证据: 超过10M的附件请使用网盘地址

      点击上传附件

      对谁可见:

      全部设计师
      • 全部设计师
      • 推荐设计师和认证设计师

      您确认要推荐?

      该作品发布时间:2020年08月12日

      评分

      完整度

      启发性

      勤奋性

      排版布局

      推荐心得

      建议20-200字以内

      0/200

      18
      30
      4

      账号或密码错误,请重新输入

      账号或密码错误,请重新输入

      登录

      手机号

      发送验证码 120s 验证码错误

      登录
      第三方账号登录