动效设计的物理法则:动画的一切皆在于时间点和空间幅度(转)

 动效作为当今提升网页感官效果的利器,在各种类型的网页中已经全面开花,如何做到自然流畅让用户感觉舒适的动画效果呢?今天就来跟大家聊一聊动效设计的物理法则,以及它是如何应用的。

  首先来一发大师金句,迪士尼动画大师格里穆·乃特维克曾经说过:1

  动画制作和动效设计是本质相通的,我们需要为用户建立一种“视觉的真实”,即动作是可信的,我们需要获得的不是照搬线下场景的写实主义,而是“可信度”,要让用户感知到这个动作是成立的。这里,就要搬出高大上的物理学了!

  物理学四大基本力——万有引力、电磁相互作用力、弱相互作用力、强相互作用力,我们在现实生活中能够感知到的基本上都源自万有引力(其他三种力咱也分析不出来啥)。换句话说,用户在现实生活中建立的动作经验,皆源于物体的“重量感”。要分析万有引力,就得翻出牛顿大大的课本章节了。2

  (一)牛顿第一定律

  根据牛顿第一定律——惯性定律,任何物体都要保持匀速直线运动或静止状态,直到外力迫使它改变运动状态为止,说白了,就是不考虑任何力的作用的物体运动,其速度大小和方向是没有任何变化的,用公式表示:3

  通过以上公式我们可以绘制出匀速直线运动的位移-时间曲线:11

  应用到网页设计中,为了实现过渡效果,我们必须模拟出页面区块的位移-时间曲线,对于运动拆解分析得到的分段曲线,可以运用计算机图形图像造型的基本工具——贝塞尔曲线绘制出来,调用CSS3 animation-timing-function 属性中的贝塞尔曲线绘制函数cubic-bezier可以轻松的用程序模拟运动轨迹。00  例如上图所示的贝塞尔曲线可以用四个点来定义,其中P0、P3是固定的点,它们的坐标值是默认的[0,0],[1,1]。P1、P2两点则用来控制曲线的形状和曲率,PS中的钢笔工具的锚点具有相同功能,这两个控制点的坐标值是需要我们通过cubic-bezier(x1, y1, x2, y2)自定义的,范围在[0, 1]。 对于匀速直线运动,将运动时间设置为1s,通过cubic-bezier模拟运动如下:111

  linear 动画从头到尾的速度是相同的。应用到网页的banner区域切换动效中的效果(动图需加载):1111

  感觉不是很自然,由于空气阻力的存在,程序模拟的匀速直线运动在现实生活中是很难实现的,因此对于这样一个用户平时很少感知到的运动是很难建立信任感的。这样的匀速直线运动也是我们在进行动效设计时需要极力避免的。考虑到需要分析物体运动的受力情况,我们借助牛顿第二定律来拆解运动。

  (二)牛顿第二定律

  根据牛顿第二定律——物体加速度的大小跟作用力成正比,跟物体的质量成反比,加速度的方向跟作用力的方向相同。当物体持续受到一个不变的力的作用时,它将做匀加速直线运动,用公式表示:4

  绘制出匀加速直线运动的位移-时间曲线:22

  通过cubic-bezier模拟运动如下:111in

  ease-in 动画从低速开始,逐渐加速,收尾态速度最快。应用效果:1111in

  开始状态符合静止物体开始运动的物理规律,但是收尾态不太符合,物体在结束运动之前速度是整个运动过程中最快的,这是不合逻辑的。 如果我们让收尾状态符合物理法则,那么就是需要让物体减速下来,匀减速运动的公式如下:5

  绘制出匀加速直线运动的位移-时间曲线:33

  通过cubic-bezier模拟运动如下:111out

  ease-out 动画从高速开始,以低速结束。应用效果:1111out

  模拟的是物体收到一个持续时间很短的推力作用后自然滑行并慢慢停止的过程。在本应用场景使用这种效果是比较合适的,banner图片刚开始切换运动时,需要用一个比较快的速度来吸引用户的注意力“嗨!这儿有新的信息!”,在快要抵达最终位置的时候,需要逐渐慢下来,因为此时用户已经将注意力转移到新的banner图上了,用户需要的是这一区块逐渐慢下来好看清楚上面的内容,获取信息。

  如果想要让banner图片在起始阶段也是柔和地出现,可以缓入缓出一起使用,位移-时间曲线:44

  通过cubic-bezier模拟运动如下:111in-out

  ease-in-out 动画从低速开始,以低速结束。应用效果:1111in-out

  切换效果非常的柔和,也就是我们常说的“缓入缓出”。

  (三)赋予材质——速度、形变和反馈

  好的动效在满足了基本的物理原则之后还有很多“材质”上的细节补充,主要有速度、形变和反馈这三个方面。 如果我们想要给上面的案例加上一点重量感,也就是让物体看上去“有质量”,可以再速度上做一点文章,调节一下运动曲线;55

  通过cubic-bezier模拟运动:111ease

  ease动画从低速开始,动画以低速开始,然后加快,在结束前变慢。应用效果:1111ease

  我们可以用这种开始态和结束态绝对值不等的加速度让运动产生“粘滞感”,可以让运动的区块产生更加真实的互动效果。但是另一方面,不对等的加速和减速过程有可能会让动效产生拖泥带水、不干脆的感觉,具体应用还是要具体情况具体分析。

  做到对物体运动过程的拆解分析再程序模拟之后,我们还可以对运动物体的形状上花一些小心思,通过物体形变和运动的反馈效果可以为物体赋予“材质”,来看几个不错的Web动效案例。

5a  采用ease-out的参数设置,使得所有元素迅速进入用户视线,又缓慢到达目标位置,动画流畅自然。

5b  通过不同区块速度差来实现拉伸页面的效果,但是仔细看每一个区块的运动,发现实际上是没有形变的,巧妙的速度变化也可以让整个页面的切换变得生动起来。

5c  通过形变的设置,使得不同高度的柱状图形变会显得很有弹性,仔细看该网页表现的都是“Top”的数据,为柱状图赋予弹性效果也是非常符合其所表现的数据“情绪”的,整个页面都会显得趣味生动。

5d  通过下拉框的反弹效果现实区块的“窗帘”设计,运动反馈也可以为网页元素赋予材质。

  本文主要分析的案例集中在网页动效当中运用最广泛的线性运动,对于基本动效的其他动作,如缩放、旋转、不透明度等等效果的变化,其本质上是相通的,结合物理法则的分析实践均可以做出自然流畅的效果, 总结一下应用流程: 1. 分析具体内容区块的运动,结合需求本身绘制出区块运动的运动数值-运动时间曲线。 2. 拆解曲线,运用贝塞尔曲线模拟运动。 3. 通过速度调整、材质形状变化和运动反馈来为区块赋予动效丰富的细节。

  感谢越澄同学的技术支持,送上脚本传送门:http://www.w3school.com.cn/cssref/pr_animation-timing-function.asp http://cubic-bezier.com/#.63,0,1,1

 

http://kb.cnblogs.com/page/511888/

动效设计的物理法则

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录: 为何要写此书? 动画简史 是画画的时候了 一切都在于时间(Timing)和空间幅度(Spacing) 第一课 回到1940年 标尺(Chart)和中间画(Inbetween)的演变 原画和小原画(Breakdown) 关键张 三种动画方式 测试测试再测试 摄影表(X-sheet) 你是一个热衷K·I·S·S的人吗? 黎明的到来 最佳标号方式 一拍一与一拍二之争 结论 上定位和下定位之争 再述空间幅度 经典的中间画错误 注意你画的弧线 在整体中产生更多的动作 拉长的中间画 初学者易犯的错误 “潦草”方式 给助手留多少工作 走漫长的捷径 行走 掌握重量 设定节奏 过渡位置/小原画 两种设计走路的方式 双反弹 自如一 进一步变换走路姿势 只有尝试才知道结果 脚后跟 脚部动作 正常走路的空间幅度 重心改变 腰线 手臂动作 反作用 窍门 蹑手蹑脚 颠起脚尖的蹑手蹑脚 跑跳蹦 4张画模式的跑步 3张画模式的跑步 2张画模式的跑步 处方 蹦 跳 重量 弹性 小原画 简单的重叠 重叠动作 简单的反动作 弯曲关节以产生弹性 脸部的弹性 脸部的重叠动作 迅速识别:可识别的侧影 重量 压力和重量 跳舞 预备 惊异效果的预备动作 无形的预备动作 前期动作(takes)和强调动作(accents) 剧烈强调动作的反弹 柔和的强调动作的延续 时间,摇摇晃晃,飘动和抽打 摇摇晃晃的时间 从一侧到另一侧的振动模式 抽打动作 飘动动作 对话 分节法(Phrasing) 声画同步 重音 姿态 秘诀 表演(Acting) 表情的改变 寻找对比度 手指某处 身体语言 对称或“孪生” 偷走它! 眼睛 动物的动作 活物动作参考 动物的基本行走模式 导演 简明扼要 莱卡带(Leica Reel) 区分开角色 最好的开始和结尾 选择动画师 做修改 “说出来!说出来!” 配音 一环套一环 研究 剪接 相信你的素材 全过程复习 计划流程 “配料” [2] 感谢
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其中存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其中至少一列是几何列(geometry column),用于存储地理空间几何图形(如、线、多边形等)。 GeoSeries:GeoPandas中的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据源中加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值