精灵动画Animation对话框组成Idle动画的各精灵
精灵动画Animation对话框组成Idle动画的各精灵
1.3 精灵动画
场景中已经添加了精灵,现在是时候让让它动起来了。读者也许已经从精灵图集中,各精灵的命名中看出来了,这个精灵一共有两种动画状态:Idle(空闲)和Walking(走)。本节将讲解使用Unity自带的工具,创建精灵动画,并实现简单动画控制的方法本文选自Unity 2D游戏开发快速入门。
1.3.1 Animation
要将精灵图集中的多个精灵的动作,组合成一个动画,可以使用Unity提供的Animation工具。具体的说明和操作方法如下:
(1)在Unity中,单击Window|Animation命令,即可打开名为Animation的窗口,如图1-16所示,在此窗口中就可以将多个精灵的动作,组合起来播放,最终形成动画本文选自Unity 2D游戏开发快速入门。

图1-16 Animation窗口
(2)选中Hierarchy视图里的Player对象(即游戏场景中的精灵对象,现在要为它添加动画效果),然后进入到Animation视图里。单击视图左上角的 按钮,会弹出一个名为Create New Animation的对话框,如图1-17所示。此时需要指定要制作的动画的名字和存储位置。

图1-17 Create New Animation对话框
提示:在本示例中,将此动画命名为PlayerIdleAnimation.anim,并存储于Assets\Animations\Player文件夹下。
在创建了动画以后,进入到Project视图里,创建了动画的指定路径里,我们会发现里面不光创建了指定名称的动画文件,还创建了一个名为Player的动画控制器(Animator Controller)。因为我们选中了Hierarchy视图里的Player对象,所以才新建了同名的动画控制器。修改它的名字为PlayerAnimatorController,这样的命名对它来说更准确些。
提示:动画控制器可以控制精灵对象,做出各种动画效果,并且还可以设置各种动画的过渡条件等等,关于这些会在下面的各步骤中讲解。
(3)新建了动画以后,再选中Hierarchy视图了的Player对象,然后在Inspector视图里可以看到,此对象里多了一个组件Animator,且其属性Controller已经设置成了新建的动画控制器,即PlayerAnimatorController,如图1-18所示。

图1-18 Player对象上,新添加的Animator组件
Animator组件借助Controller属性里设置的动画控制器,真正意义上完成精灵动画的播放,以及各种动画间的转换。
(4)在选中Hierarchy视图里Player对象的前提下,进入到Animation视图里,会发现此视图已经自动打开了PlayerIdleAnimation动画。确保此视图左下角的Dope Sheet按钮处于选中状态,然后将表示同一动画的各精灵,按照动画应有的顺序依次拖入到Animation视图的右侧,且相互之间隔开一定的“距离”,在这里使用“动画帧”来描述或许更准确些,如图1-19所示本文选自Unity 2D游戏开发快速入门。

图1-19 将精灵拖入到Animation视图右侧,并且相隔一定的动画帧
提示:在精灵图集中,表示Idle动画状态的精灵有4个,即playerSprite_idle_01~ playerSprite_idle_04,将它们依次拖动到Animation视图的右侧。明明只有4个精灵,那么为什么本示例中拖入了7个呢?答案是为了让动画流畅播放,即精灵的最后一个动作,应该与第一个动作一致才行,因此后三个精灵依次是playerSprite_idle_03~playerSprite_idle_01。也就是将下图1-20所示的各精灵组合起来播放,就会形成流畅的Idle动画效果。

图1-20 组成Idle动画的各精灵,首尾精灵动作一致
(5)单击Animation视图左上角的 按钮,动画的效果就会在Scene视图里播放出来。如果觉得动画播放的速度太慢,可以调节Animation视图左侧上部Sample(采样率)属性的值,如图1-21所示,它的值越大,动画的播放速度越快。
(6)要为Player对象添加其它的动画(例如,本示例中的Walking动画),可以单击Animation视图左上角的动画名按钮(在本示例中其名为PlayerIdleAnimation),然后选中其中的[Create New Clip]选项即可,如图1-22所示。

图1-21 在Animation视图里,设置动画播放时的采样率 图1-22 为Player对象添加其它的动画
提示:还需要为动画命名,以及指定存储位置,在本示例中动画名为PlayerWalkingAnimation,存储于Assets\Animations\Player文件夹下本文选自Unity 2D游戏开发快速入门。
接着就可以使用同样的方式,为Player对象添加Walking动画效果了本文选自Unity 2D游戏开发快速入门。
精灵动画Animation对话框组成Idle动画的各精灵的更多相关文章
- 前端CSS3动画animation用法
前端CSS3动画animation用法 学习如下动画属性 @keyframes animation-name animation-duration animation-delay animation- ...
- cocos2dx动画Animation介绍
一.帧动画 你能够通过一系列图片文件,像例如以下这样,创建一个动画: [cpp] CCAnimation *animation = CCAnimation::create(); //从本 ...
- 四、cocos2dx动画Animation介绍
qinning199原创,欢迎转载,转载请注明:http://www.cocos2dx.net/?p=22 一.帧动画 你可以通过一系列图片文件,像如下这样,创建一个动画: CCAnimation * ...
- 《The Cg Tutorial》阅读笔记——动画 Animation
这段时间阅读了英文版的NVidia官方的<The Cg Tutorial>,借此来学习基本的图形学知识和着色器编程. 在此做一个阅读笔记. 本文为大便一箩筐的原创内容,转载请注明出处,谢谢 ...
- Android笔记之为自定义对话框添加移动动画效果
给底部的对话框添加移动动画效果 可通过Window.setWindowAnimations(int resId)设置 SharingDialog.java package com.bu_ish.sha ...
- 虾扯蛋:Android View动画 Animation不完全解析
本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...
- Android动画效果之Property Animation进阶(属性动画)
前言: 前面初步认识了Android的Property Animation(属性动画)Android动画效果之初识Property Animation(属性动画)(三),并且利用属性动画简单了补间动画 ...
- Android动画效果之Frame Animation(逐帧动画)
前言: 上一篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画),今天来总结下Android的另外一种动画Frame ...
- Android动画效果之Tween Animation(补间动画)
前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...
随机推荐
- Sqlserver日期函数应用
1.获取当前时间 SELECT GETDATE() AS '当前日期' , DATENAME(year, GETDATE()) AS '年' , DATENAME(m ...
- Android学习笔记之打钩显示输入的密码
利用EditText作为密码输入框是个不错的选择(只需设置输入类型为textPassword即可),保密且无需担心被盗取.但有时用户也不知道自己输入的是否正确,这时就应该提供一个“显示密码”的复选框, ...
- [Effective JavaScript 笔记]第18条:理解函数调用、方法调用及构造函数调用之间的不同
面向对象编程中,函数.方法.类的构造函数是三种不同的概念. JS中,它们只是单个构造对象的三种不同的使用模式. 三种不同的使用模式 函数调用 function hello(username){ ret ...
- 添加删除一个controller
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) rails generate controller Users rails destroy cont ...
- [codeforces 325]B. Stadium and Games
[codeforces 325]B. Stadium and Games 试题描述 Daniel is organizing a football tournament. He has come up ...
- lucas定理,组合数学问题
对于C(n, m) mod p.这里的n,m,p(p为素数)都很大的情况.就不能再用C(n, m) = C(n - 1,m) + C(n - 1, m - 1)的公式递推了. 这里用到Lusac定理 ...
- 一些Linux的路径
系统引导时启动 /etc/rc.d/rc.local
- php 二分查找
<?php /**二分查找:查找一个值在数组中的位置 * @$arr:操作的数组,前提是按顺序排列 * @$val:查找的值 * @$start:查找的起始位置,默认从数组的第一个数找起 * @ ...
- makefile中的自动化变量$@,$%,$
转自:http://www.2cto.com/os/201302/191344.html makefile中的自动化变量$@,$%,$ 自动化变量 模式规则中,规则的目标和依赖文件名代表了一 ...
- object-c面向对象1
---恢复内容开始--- 类,对象,方法,属性. 类是object-c一种重要的数据类型,是组成object-c程序的基本要素.object-c的类声明和实现包括两个部分:接口和实现部分. @inte ...