GameTang
圣骑士
圣骑士
  • UID4314
  • 粉丝3
  • 关注2
  • 发帖数43
  • 社区居民
阅读:645回复:1

菜鸟日记六《略解Unity Animator 上》

楼主#
更多 发布于:2018-03-30 14:21

最近也没什么事情忙,也没什么问题就没什么好写的,没有目的性的去学习一般没什么结果,也没学下去动力,但绝对不可以懒,一懒众衫小!所以写点超级基础的东西,一来是在群里也碰见过对Animator的新手,二来练习下自己的组织能力,三来在不更新点东西好对不起雨哥(/捂脸),各位看官在浏览以下内容时如有差错还请多多指出!

 目标:Unity Animator

工具:Unity5.5.0   (5.5-2017中动画升级的组件,以下内容基本没有使用,本文只是简单说明使用Animator,中高级部分,我不会,所以版本随意)

首先,模型的导入以及相关动画文件的导入就不一一赘述了, 事先创建好对应的文件夹,个人习惯,整洁的工程也便于后期的操作。

将模型导入后,然后找到选中,先查看下导入动画的动画类型,如下图所示,一般Animation 对应的是 Legacy (即老版动画) 而 Animator 对应的是 Generic 随意我们将所有的动画文件的类型更换成 Generic (如若动画文件模型不对,例如法线 模型比例不对请及时与模型师沟通,勿将就!!)

图片:QQ图片20180330102023.png

好了,我们确定完动画文件无误后开始创建一个 Animator Controller 来进行动画控制的搭建,在创建好的空文件夹 鼠标右键--->Create--->;Animator Controller 命名为 AnimatorTest 如下图所示(如若不明白或是纠错欢迎评论留言~)

图片:二.png

图片:三.png

       创建好控制器后 接下俩双击打开控制器进行动画片段的编辑 如下图所示,右键--->Create State--->Empty 会生成一个橙色的方块,这个就是我们的主状态即使不用代码控制,在此状态设置一个动画系统也会自动执行动画,我们会在此状态的基础上用代码控制其他动画的转变,一般我们会默认其Idle状态即待机状态  命名为Idle。

图片:四.png

图片:六.png

        好了, 接下来我们在创建一个State 他的颜色会是灰色,除了默认自动执行的Idle 灰色的状体就需要我们代码控制了  同理 我们命名为 Run (一般为Walk 但是本动画没有走的动画,所以直接为Run)

图片:七.png

图片:八.png

       好了,扩充动画状态基本如此,同理可以再新建State 命名成 行走 攻击 连击 受伤 死亡 等动画所需要的状态 我就不一一截图叙说了,根据以上的细说应该也都明白, 接下俩我们来说下这些状态之间的转换  如下图所示 我们右键Idle --->Make Transition ------>Run 然后Idle 和 Run之间就会有一个带有箭头的线段相连,这条线就是我们用于控制状态转换的组件,接下来我们创建一个条件属性,点击左上角的 Parameters  然后点下面一栏旁边的 + 加号就会看到我们可以创建 Floate Int  Bool Trigger 四种 个人喜欢偏向于 int 命名为 run, 其他的后续代码阶段我会稍微解说一下

图片:十.png

接下来,根据下图的内容我来说下相关信息:

1 点击这个带有箭头的线,然后看右面的如图所示的界面 接下里的操作即使对这条线的属性更改,同理 创建的属性线段多了也是做相对应的修改

2 点击这个加号 把我们刚才创建的人 Parameters 参数 run选进去

3 Has Exit time 如果我们勾选此属性 在动画进行切换的他会播放完上一段动画才会进行下一段动画的切换,不会立即进行切换,但是一般我们一般不勾选,因为它会经常造成动画卡顿等无法理解的问题

4  此属性相对于Int 类型参数来讲  此复选栏有 Greater(大于)   less (小于)  Equals(等于)  NotEqual(不等于) 这四个属性是相对于后面设置的值来讲的一般选的是Equals 假如我们设置的值为 1 ,所以 如果我们在代码中 控制 run 的值 等于 1 它就会满足条件 执行动画 Idle 切换到 Run 就这个意思,(说的有点多,应该能明白大概意思吧 /捂脸)

图片:九.png

同上 我们在声明几个参数(本例以 int 为例) Attak Death 最基础的四个 好了设置完如下图所示,我再来解说下他们之间的逻辑对应关系

1: 首先 所有的属性线如图中 Has exit Time我已经全部取消掉

2 :可能新手觉得画风突变,怎么多了那么多东西,怕自己不理解 ,不急现在就说下

     1 >为什么有的状态直间是两根线 有的是一根线呢?我在前面也说过了,这个线是用来控制动画的,我们可以从一个状态转过去,当然也可以从另个状态转回来,就比如你在原地站着不动,你也可以走动起来你也可以跑动起来,反过来,你可以跑步转到慢走在转到原地不动,就是这个道理,双线代表这两个链接的状态是可逆的

     2 > 一根线的表示此次运行中Idle 只允许切切换到Death 而不允许 Death 切换到 Idle  因为他没有可执行的条件 把这些线比作单向通道的话,就是表示没有回去的路 ,就是人死而不能复生,对抗复活的另说,就最简单的来说 /捂脸

3:还有一个我自己认为挺好使的小东西,就如下图所示的箭头,就拿紫色来说,虽然他们的出发状态不同,但是他们要转换的最终状态是一致的 Death 所以这三条线都可以设置为 death  值 = 1;在程序中,我们只要设置death为1,人物就会切换到Death(注意我的单词大小写 Death 表示死亡状态 death 表示程序会调用到的属性,就是我设置的Parameters) 这样我们就不用每条线都设置不同的值了,免得数值太多记忆紊乱,如果不是很明白也可以 一 一 设值,明白后在由繁到简

图片:十一.png

文章图片数量有限,接下里的操作我会另起一个帖子接着叙说,图文混排也是我喜欢的一个学习模式,最喜欢的是视频,全程文字偶我看着就没欲望。脑筋马力太小,转不过来

虽然写的不怎么地,但是转载请注明 AR 学院

我们下一篇见

[GameTang于2018-03-30 15:40编辑了帖子]

最新喜欢:

归海一啸归海一啸

欢迎分享

marvr_ios
论坛版主
论坛版主
  • UID3513
  • 粉丝10
  • 关注1
  • 发帖数144
  • 社区居民
  • 忠实会员
  • 原创写手
沙发#
发布于:2018-03-30 23:36
很容易看懂,666
开发者
游客

返回顶部