本文将介绍在Android平台上实现和演示迪士尼动画基本准则。
项目开源,GitHub: https://github.com/vhow/animation
说明:
- 演示动画原则的想法源自 Animation Principles for the Web
- 本项目所有的动画都是通过 Android属性动画 APIs 编写。
夸张手法
很多时候,动画需要模拟现实世界中物理的真实动画。但一味拘泥于现实,不免枯燥和乏味。因此,动画的撰写可以大胆夸张,夺人眼目。
跟随和覆盖行为
现实物体会受惯性作用,要模拟现实,就要考虑惯性。《猫和老鼠》等动画中常使用此技巧,以人物奔跑为例:
- 开始奔跑
- 逐渐加速
- 奔跑中身体后倾
- 逐步减速 (受惯性作用)
- 停止,身体归正
预备动作
现实世界中,物体在行动前都有预期行为。例如:
- 小猫在上跳前会下蹲
- 狮子在发起攻击前会俯身蓄力
在编写动画代码时,也可以加入这些预备动作——预告接下来的行为,让用户产生预期。
挤压和拉伸
物体存在重量,也由不同材质组成。在运动过程中会发生挤压和拉伸。《猫和老鼠》中,猫撞墙时会发生扁平形变,就是应用了此准则。
突出显示
舞台上,领舞一般都被突出出来,向前走一步,或者穿着不同的衣服。动画亦是如此,需要突出强调关键元素以吸引用户的注意力。
接续动作与关键动作
开发动画之前,目标对象从初始位置过渡到终止位置,需要事前想好关键位置,也就是所谓的关键帧。这些关键帧定义好之后,动画就可以持续从一个关键帧过渡到另一个关键帧。
缓入缓出
真实世界中,物体从静止→运动,是一个逐渐加速的过程。从运动→静止是一个逐渐减速的过程。动画需要利用贝塞尔曲线,模拟这种状态切换过程。
弧线运动
有生命力的事物,例如老鹰,其移动轨迹往往是曲线,而非直线。动画也要模拟这种弧线运动轨迹,以切近现实。
时间节奏
时间和节奏是动画的灵魂。两个物体,哪怕初始状态、终止状态完全一样,只要节奏不同,其运动效果也会千差万别。
用Android属性动画实现和演示迪士尼动画基本原则的更多相关文章
-
html迪士尼网页实现代码
html body> <div> <!-- 导航设置 --> <header> <nav ...
-
用HTML编写迪士尼乐园页面
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/html"><head lang="e ...
-
杂项-公司-百科:华特&#183;迪士尼-un
ylbtech-杂项-公司-百科:华特·迪士尼 华特·迪士尼(Walt Disney,全名Walter Elias Disney,又译沃尔特·迪士尼,1901年12月5日—1966年12月15日),出 ...
-
迪士尼黑科技:爬墙机器人 VertiGo
12 月 30 日,迪士尼研发出的一款爬墙机器人曝光了一段有趣的视频.从视频里可看出这个机器人碰到墙壁时迅速地作出反应爬了上去. 据了解,这个爬墙机器人名叫 VertiGo,由迪士尼研究中心和苏黎世联 ...
-
HK游记 Day2迪斯尼(下)
接下来我们要去看狮子王庆典,绕啊绕啊,终于进场了,说实话我对一大帮人扮演动物歌舞表演不是很感冒,静倒是觉得很好看,印象最深的是狮子王的主题曲,还有大象车,长颈鹿车,狮子王车,静举着手机拍视频. 看完表 ...
-
Android属性动画完全解析(下)
转载:http://blog.csdn.net/guolin_blog/article/details/44171115 大家好,欢迎继续回到Android属性动画完全解析.在上一篇文章当中我们学习了 ...
-
Android属性动画完全解析(上)
Android属性动画完全解析(上) 转载:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷 ...
-
Android 属性动画(二)
当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~ 1.如何使用xml文件来创建属性动画 大家肯定都清楚,View Animator .Drawable Animator都 ...
-
Android 属性动画(Property Animation) 全然解析 (下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38092093 上一篇Android 属性动画(Property Animatio ...
随机推荐
-
爬虫技术 -- 进阶学习(九)使用HtmlAgilityPack获取页面链接(附c#代码及插件下载)
菜鸟HtmlAgilityPack初体验...弱弱的代码... Html Agility Pack是一个开源项目,为网页提供了标准的DOM API和XPath导航.使用WebBrowser和HttpW ...
-
Jquery插件easyUi表单验证提交
<form id="myForm" method="post"> <table align="center" style= ...
-
C++学习25 纯虚函数和抽象类
在C++中,可以将成员函数声明为纯虚函数,语法格式为: ; 纯虚函数没有函数体,只有函数声明,在虚函数声明结尾加上=0,表明此函数为纯虚函数. 最后的=0并不表示函数返回值为0,它只起形式上的作用,告 ...
-
(原创)fedora 17安装KVM虚拟机
1.安装KVM yum groupinstall Virtualization 'Virtualization Client' 2.安装api支持 yum install libvirt servic ...
-
tensorflow tanh应用
1.tanh()函数 tanh是双曲函数中的一个,tanh()为双曲正切. 双曲正切函数的导数公式: 2.tensorflow tanh()例子 import tensorflow as tf i ...
-
mysql修改记录
增加一列:alter table bf_agt_dep_acct_sap_sub add column cust_age varchar(10) not null; 改变属性:alter table ...
-
ubuntu配置
首先就是Ubuntu的更新源问题,需要更改,否则更新不了. 其次就是Securecrt的远程登陆问题,windows主机和ubuntu虚拟机如果能通信,要求在同一网段上,而ubuntu是动态加载,需要 ...
-
Arrays工具、二维数组以及LeetCode练习题
1 Arrays PS:Arrays位于java.util包下 int binarySearch(type[] a, type key); 使用二分法查询 key 元素在 a 数组中的索引,如果数组不 ...
-
IOS gallery
https://github.com/mengxianliang/XLCardSwitch
-
angular 如何使用第三方组件ng-bootstrap
1.在你的项目中以下指令 npm install --save @ng-bootstrap/ng-bootstrap 安装完成会显示 + @ng-bootstrap/ng-bootstrap@1 ...