精灵动画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动画的各精灵的更多相关文章

  1. 前端CSS3动画animation用法

    前端CSS3动画animation用法 学习如下动画属性 @keyframes animation-name animation-duration animation-delay animation- ...

  2. cocos2dx动画Animation介绍

     一.帧动画 你能够通过一系列图片文件,像例如以下这样,创建一个动画: [cpp]   CCAnimation *animation = CCAnimation::create();   //从本 ...

  3. 四、cocos2dx动画Animation介绍

    qinning199原创,欢迎转载,转载请注明:http://www.cocos2dx.net/?p=22 一.帧动画 你可以通过一系列图片文件,像如下这样,创建一个动画: CCAnimation * ...

  4. 《The Cg Tutorial》阅读笔记——动画 Animation

    这段时间阅读了英文版的NVidia官方的<The Cg Tutorial>,借此来学习基本的图形学知识和着色器编程. 在此做一个阅读笔记. 本文为大便一箩筐的原创内容,转载请注明出处,谢谢 ...

  5. Android笔记之为自定义对话框添加移动动画效果

    给底部的对话框添加移动动画效果 可通过Window.setWindowAnimations(int resId)设置 SharingDialog.java package com.bu_ish.sha ...

  6. 虾扯蛋:Android View动画 Animation不完全解析

    本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...

  7. Android动画效果之Property Animation进阶(属性动画)

    前言: 前面初步认识了Android的Property Animation(属性动画)Android动画效果之初识Property Animation(属性动画)(三),并且利用属性动画简单了补间动画 ...

  8. Android动画效果之Frame Animation(逐帧动画)

    前言: 上一篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画),今天来总结下Android的另外一种动画Frame ...

  9. Android动画效果之Tween Animation(补间动画)

    前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...

随机推荐

  1. Robberies

     Robberies Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit S ...

  2. c++字符串详解(转)

    之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是 ...

  3. 第一次学习QT

    跟着大神学:http://www.cnblogs.com/tornadomeet/archive/2012/06/25/2561007.html

  4. 腾讯新浪通过IP地址获取当前地理位置(省份)的接口

    腾讯新浪通过IP地址获取当前地理位置(省份)的接口  腾讯的接口是 ,返回数组 http://fw.qq.com/ipaddress 返回值 var IPData = new Array(" ...

  5. 《转》Visual Studio 2010 终极定制安装精简方法

    打开VS2010安装目录下的 Setup 文件夹,找到 baseline.dat 文件和 vs_setup.pdi 文件还有一个 locdata.ini 文件,是对应的. 这些都是文本文件,用记事本就 ...

  6. Android 中的Force Close

    今天写程序时遇到一个问题,领导希望在点击了setting里的force close 后,程序依然能够响应以前用alarmManager注册的receiver. 在网上看到了一些文章,写的是如何建立一个 ...

  7. tomcat下不用项目名直接访问项目

    把tomcat下的项目名称改为ROOT,访问项目的时候,不用输入项目名称,输入地址,如192.168.182.100:8080即可.

  8. Extjs中给同一个GridPanel中的事件添加参数的方法

    Extjs中给同一个GridPanel中的事件添加参数的方法: this.isUse = new Ext.Action({            text:'启用',            scope ...

  9. Count Color(poj 2777)

    题意: 给一个固定长度为L的画板 有两个操作: C A B C:区间AB内涂上颜色C. P A B:查询区间AB内颜色种类数. 分析:显然是要用线段树来操作的,设定一个sum[]来维护一个区间内的颜色 ...

  10. Android下利用Bitmap切割图片

    在自己自定义的一个组件中由于需要用图片显示数字编号,而当前图片就只有一张,上面有0-9是个数字,于是不得不考虑将其中一个个的数字切割下来,需要显示什么数字,只需要组合一下就好了. 下面是程序的关键代码 ...