动画系统-Animator详解

1、Animator


  • Unity 中为我们提供了而全面的动画设计解决方案,用来完成游戏对象的动态效果的控制和创建

  • 我们想要一个人物模型动起来,非常简单

  • 只需要在人物的游戏对象上添加 Animator 组件

  • 然后创建一个 Animator Controller 来控制对应的游戏对象的动画 Animator 即可
    图片


    image.png

2、Animator Controller ——动画控制器面板

选中 Animator Controller文件,点击 Open 即可打开控制器面板

新创建一个 Animator Controller 默认是没有任何状态的

需要自己创建空状态,并进行相应设置


image.png

3、加入动画

创建一个状态后,我们需要给该状态改名(为了区分状态),并指定一个动作 Motion

这里我创建的是 站立,所以就需要找到对应的 Idel 动画,指定给 Motion


image.png

4、状态切换 -> 动画切换

通过参数来对动画进行改变

三种状态:

AnyState :任何状态都可以进入此状态,包括自身。用于死亡等相似的状态
表示任意状态的特殊状态,以蓝色标识,例如我们如果希望角色在任何状态下都有可能切换到死亡状态,那么Any State就可以帮我们做到。当你发现 某个状态可以从任何状态以相同的条件跳转到 时,那么你就可以用Any State来简化过渡关系。

Entry:当前状态机入口
表示状态机的入口状态,以绿色标识。当我们为某个GameObject添加上Animator组件时,这个组件就会开始发挥它的作用。之前也说过一个Animator Controller用于控制多个Animation的播放,那么默认情况下Animator组件会播放哪个动画呢? ——这就是由Entry决定的。但是Entry本身并不包含动画,而是指向某个带有动画的状态,并设置其为默认状态。被设置为默认状态的状态会显示为 橘黄色。当然,你可以随时在任意一个状态上通过 鼠标右键->Set as Layer Default State 更改默认状态。记住, Entry 在Animator组件被激活后 无条件 跳转到默认状态,并且每个Layer 有且仅有一个 默认状态。

Exit,:表示状态机的出口状态
以红色标识。如果你的动画控制器只有一层,那么这个状态可能并没有什么卵用。但是当你需要从子状态机中返回到上一层(Layer)时,把状态指向Exit就可以了。

除了上述三个自带的状态,Animator Controller的主角还是我们人为添加的各种状态。你可以把这些自定义的状态看做一个 盛放动画的容器 ,它们可以表示一个准备好的动画效果,并且可以在这些Animation Clip上“添油加醋”,再做一些只适用于当前动画控制器的处理。创建一个自定义状态可以通过在区域3中的任何空白区域 鼠标右键->Create State->Empty来实现。我们可以选中某个自定义状态,并在Inspector窗口下观察它具有的属性:

image.png

参数:

Parameters标签页中的内容可以说是Animator必需的,包含了我们在Animator中使用的所有“参数”。在拥有多个动画短片的控制器中,正是通过Parameters中的参数实现了不同动画间的转变。

切换到Parameters标签页后,我们可以通过点击“+”创建4中类型的参数,它们分别是Float、Int、Bool和Trigger。前三个都比较好理解,均属于基本数据类型。最后一个Trigger则是一个与Bool类似的参数,同样拥有True和False两种状态。但是不像Bool在设置为True后会一直维持,Trigger在被触发后会迅速重置为未触发状态。这个特性在设置动画转变时非常实用。

image.png

6、Transition(过渡)

除了包含特定动画的状态,状态机更少不了充当不同状态间纽带关系的Transitions,直观上说它们就是连接不同状态的 有向箭头。
举个例子:

image.png

以上图为例,我们已经创建了三个自定义状态Idle, Walk 和Run,并且Idle已经被设置为初始状态(以橙色表示)。所以Animator组件生效时会一直处于Idle状态,如果在Animation Clip的属性中勾选了 “Loop Time”,那么该动画会循环播放,否则播放一次GameObject就会停止。这种效果在GameObject是背景的大树,花草什么的就够用了,因为它们都不会动。但是我们的主角大部分情况下还是需要移动的,所以我们机智地也准备好了走路(Walk)和奔跑(Run)两种动画。不过Unity还没有智能到在物体移动的时候自动跳转到名为“Walk”的状态上,所以这个切换的时机还是需要我们控制的。记得我们之前说的Parameters面板嘛?它们就是在这里排上用场的。

让我先暂时假定一种方案:

  1. 物体在玩家按下方向键时开始步行(Walk),并且速度会一直上升;
  2. 物体在速度达到10.0时会播放奔跑(Run)动画;
  3. 玩家松开方向键后回到静止(Idle)状态。

那么我们可以定义两个Parameter来模拟过渡条件:

  1. isMove, bool类型, 用于判断用户是否按下按键;
  2. moveSpeed, float类型, 用于判断GameObject的速度是否达到10.0。

状态间的过渡关系可能有五种:

  1. Idle -> Walk, 条件为 isMove=true
  2. Walk -> Idle, 条件为 isMove=false
  3. Walk -> Run, 条件为 moveSpeed > 10.0
  4. Run -> Walk, 条件为 moveSpeed < 10.0
  5. Run->Idle, 条件为 isMove=false

要创建一个从状态A到状态B的过渡,直接在状态A上 鼠标右键单击 > Make Transition并把出现的箭头拖拽到状态B上点击鼠标左边即可。而设置对应于某个过渡关系的过渡条件,直接选中过渡线并在Inspector窗口中的Conditions属性一栏添加即可(添加的条件为&&关系,即必须同时满足)。

关于Conditions的设置有几点注意事项还是需要说明一下:首先必须在Parameters面板中添加了参数才可以在这里查看到,其次添加的条件为&&”与”关系,即必须同时满足。

image.png

注参考:https://blog.csdn.net/qq_28849871/article/details/77914922

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容