动效设计学习总结

2024-02-29 16:10
文章标签 设计 学习 总结 动效

本文主要是介绍动效设计学习总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、动效是什么

动效设计,顾名思义即动态效果的设计,用户界面上所有运动的效果,也可以视其为界面设计与动态设计的结合。

而在Material design 设计规范中,将动效设计这一章命名为「Animation」,意思是动画,活泼的意思。好的动效设计可以帮助引导、取悦用户,减少等待焦虑,是拉近用户与产品之间距离的有效手段。

二、动效分类

动效的分类并没有明确的界限,根据其作用大致可以分为3类:

1. 功能型动效

此类动效一般用于产品设计,通过动态图形向用户传递信息,其中加载/刷新和进度条应该是我们平时接触最多也是最早的动效了,此类动效最开始只是为了告知用户产品的页面状态。随着社会上产品数量的快速增长以及竞争日益激烈,产品的有趣和差异化显得愈发重要,于是便看到越来越多的产品将自己的品牌因素融入动效当中,设计也越来越生动有趣。除了加载、刷新和进度外,功能型动效还被广泛的运用在产品的其他各种状态当中,如信息报错、二维码扫描等。虽然具体表现不同,但都是通过动态形式帮助用户理解和使用产品。

2. 交互型动效顾名思义,该类动效的核心是“交互”,其主要的作用是帮助用户理解界面的层级逻辑关系,让产品的使用更加符合现实生活中的认知习惯,从而降低使用成本,提升产品体验。要注意的是此类动效不能脱离用户的认知模型,只是单纯的炫酷对于整个产品来说是有害的。其实交互型动效是用户在产品使用中接触最多的一种动效,因为产品的使用是通过不同产品元素串联而完成的,而负责元素串联的就是交互型动效。一般可分为「单页面交互动效」和「多页面交互动效」。

「单页面交互动效」:就是在当前页面发生的交互动画,比如tab切换、左滑删除、二级菜单展开、返回顶部等等。

「多页面交互动效」:就是不同页面之间的交互动画,其实就是页面的跳转,根据不同的场景会使用到不同的跳转样式,好的跳转动画能够帮助用户理解前后页面的逻辑关系。

3. 展示型动效

此类动效的最大作用就是尽可能的为用户制造视觉上的愉悦,营造活动氛围,让用户觉得有趣生动,使用的场景也十分广泛,常见的如「品牌展示」、「运营活动」、「H5营销」等。

(1)品牌展示

将有趣的动态图形与品牌相结合,让原本生硬的产品形象变得有趣生动,拉近用户与产品之间的距离。

(2)运营活动

动效设计同样也可以使用在运营设计中,作为业务数据转化的重要入口,动效可以极大的吸引用户的注意力,从而提升业务数据。

三、如何设计动效

1. 结合产品去设计

不同的产品有属于自己的产品调性,例如:金融产品强调的是可靠理性,而手游类产品的重点则是炫酷有趣,二者的动效设计自然也需要贴合各自的属性,思路设计要符合提升的产品体验,要经过细致思考不能盲目跟风。

2. 了解动画的运动节奏因为自然界中运动都不是线性的匀速运动,而是按照物理规律,呈现出的曲线的变速运动,这也是物体运动的基本常识和规律。人们对于一个运动形式产生的情感反馈,大部分也来自于生活中看到的类似的运动形式。所以我们要符合物理规律,这样才能准确的专递我们动效设计的情感。当然可以适当根据需要夸张、精简。

3. 多看多思考

我们还需要多看一些优秀的动效设计作为积累,同时也需要对优秀的动效设计进行深入思考,思考别人为什么这么设计,以及如何完成动画设计的。

要与自己对类似事物的想法进行对比,找差距,补不足,这是经验技巧积累的过程。同时要学会怎么去拆解别人复杂的动效设计,从中总结经验,最后通过合理的编排设计出自己的动效设计作品。

4. 关注流行

就是要保持对于设计行业,或者说是APP动效设计领域的关注。了解当下新的设计手法,设计趋势以及设计工具,不要做一个落伍者。

四、动效文件格式类型

常见的动效文件格式有GIF、APNG/WEBP、序列帧/精灵图、Lottle、SVGA。

1. GIF

GIF 图格式应该是设计师接触过的最多的动态格式了, 因其体积小而成像相对清晰,其在各个平台的兼容性非常好,使得它的传播性非常强。

当然gif格式也存在很明显的缺陷:对电脑的内存和性能占用非常大(根据 GIF 的时间尺寸的等情况会有不同的程度的影响),作为设计师常有的一个经验是在网页上多开几个 GIF 之后电脑风扇就开始飚起来了。它是一个有损的文件格式,不论是色彩还是画面质感都会有一定程度的压缩。对透明通道的支持非常有限,输出结果会非常差,时常会有锯齿或白边的情况。以上是我们在输出 GIF 格式的之前需要提前思考是否可以接受以上的问题。

2. APNG/WEB

这些格式是基于现有的 JPEG、PNG、GIF 格式的所衍生出来的。

APNG 格式在目前主流的所有浏览器上都可以完美支持,在移动的设备上通过一些代码框架也可以完美支持,它相比 GIF 支持的色彩范围更广,更清晰,并且占用更低的内存,支持透明通道,有非常多的优势。

WEBP格式目前也基本兼容所有的主流浏览器,相同的效果,webp 格式要比 png 格式小出来大概一半的大小,同时它也兼容所有的安卓设备,像一些 ios 设备需要通过一定的方式才可以支持。不过,相比来说各方面的表现都是非常优秀的。

3.Lottie:

Lottie 可以说是近几年在动画输出方面不得不提的一个格式,它由 Airbnb 推出,并且迅速在国内外各种大小厂快速推广开来,目前已经是一个非常普遍常用的格式。它在 AE 中的插件叫 Bodymovin,它的原理是把各种矢量元素以及位图图层以及他们的效果关键节点打包行成一个 json 格式的文行。

开发人员拿到 Bodymovin 输出的 json 格式是无法直接使用的,它需要在代码中加入 Airbnb 提供的 Lottie 第三方库来读取播放,相当于 lottie 文件在我们各个端口设备上的播放器的作用。

4.ps:

由于lottie不支持ae表达式,可以用插件(Easy Bake)将表达式转为关键帧,这样问题就解决了;ae软件因为汉化的原因,会导致Bodymovin插件对其中的某些属性不支持,比如ae中如果存在颜色渐变,导出来的json文件所有的渐变会变为黑白渐变。解决的办法有两个:一个是使用英文版ae软件;第二个是将属性「渐变填充1」重命名改为「Gradient Fill1」(后面的数字需与汉化版的保持一致)。

SVGA:

针对 Lottie 对缓动曲线解析差带来的性能问题和稳定性问题,我们会有第二种备选方案是 SVGA,不管是导出之后的内存占用,还是在各个端的表现稳定性都会好很多。

但是它的内存占用会比 Lottie 稍高,并且支持的特性也会比 Lottie 少一些。

SVGA 与 Lottie 最本质的区别在于代码对动画过程记录的方式, Lottie基本上是按照我们在 ae 当中的关键帧及缓动的结合形式去记录动画;而 SVGA 则是通过记录我们每一个图层每一个时间上的动画状态,从而省去对缓动值的计算。

跟序列帧的逻辑非常相似,但是因为它的素材可以复用,所以会比序列帧占用更低的内存。

基于实现方式,它会比 Lottie 稳定很多,相应的,它所支持的特性也要比 Lottie 少很多。

四、动效制作软件

动效制作的软件其实非常多,这里只介绍一些自己接触过的主流动效软件:

1. AE

AE是时间轴动效软件,不支持交互操作,但几乎可以制作任何你想要的动画效果,但操作相对复杂时间成本较高。

这篇关于动效设计学习总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/759337

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert