好了,现在我们已经成功的导入了动画。接下来要玩的东西就很装13啦。因为大部分动画师是用不到这家伙的,需要掌握这个技能的,至少也是动画组长级别了。嗯。。。一个组只有你一个动画的,闭嘴!给你个同情的眼神。

  这个装叉的东西就是动画状态机

  嘛~肯定有不明真相的吃瓜群众要问      , 这东西除了装B还能干嘛用。状态机嘛,提供了动画状态之间的切换功能、自带动画融合、能编辑动画播放的逻辑顺序、能设置随机播放、能设置行为树。现役动画状态机是在4.0版本问世的,他跟前代相比。那简直是bip骨骼跟bone骨骼的区别。

  首先,我们要创建个新的状态机。在project面板下,点create 找到animator controller 点击创建状态机,按F2可从命名,双击它进入状态机面板。或在window窗口,找到animator打开状态机面板。

  把做好的动画拖入状态机面板,或右键create state→empty创建空状态,在属性面板motion属性栏指定动画。

  那么接下来介绍下灰色矩形状态机的inspector(属性面板)内容

  命名 不解释

  tag 标签

  motion 前面说过 是指定动画的地方

  speed 速度 动画的播放速度 单位是倍

  mirror 镜像 跟动画系统那边的镜像没啥区别

  cycle offset 循环抵消 额 貌似是循环次数设置

  这三个参数都有parameter这个选项 这个勾选的话就是使用动画自带的参数设置

  foot IK 脚部IK

  write defaults 写入预设

  创建了一系列灰色矩形状态,右键make transition可以给状态机之间指定连接关系

  选中连线,会发现连线也是有属性设置的。毁誉参半的动作融合就是在这里设置

  接受打断时间 勾选后要等当前动画播放完后,才会接下一个状态。不勾选的话 就允许动画播放一半时被打断。这里稍微介绍一下下面的参数,实际你再操作过程当中自然就理解是什么意思了……setings设置、exit time打断时间(从哪一帧开始逐渐降低当前动画的权重)、fixed duration固定持续时间(这其实是一个切换开关,切换是按照秒显示还是按照百分比显示)、transition duration过度持续时间 (过度有多长)、transition offset过度抵消(从下一个动画的什么位置开始播放)、interruption source中断来源 。

  嘛 给大家看一个比较简单的动画状态机,这里橙色的待机动画是初始状态,其他状态都需要从这里出发,也都能回到这里。这是最没有要求的的策划宝宝    想出的最简单粗暴状态逻辑了。每个灰色矩形的状态表示一种动画,箭头连线表示状态切换方向。比如待机和移动是可以互相切换过去的,但是待机能切换到死亡,死亡却不能切回待机。正所谓人死不能待机,说的就是这个道理。这里说个小瑕疵,就是我的状态机是为了演示方便所以起的中文名,你的话最好不要用中文。因为。。。

  接下来以三连击为例,讲一个相对复杂一点的状态机关系。正常顺序为待机→攻击1→攻击2→攻击3→攻击3收招→待机,这是一套三连击打完的顺序,但是玩家操作的时候可能只按了一下攻击,那么状态机的顺序就是待机→攻击1→攻击1收招→待机。攻击2同理。这是一个有那么点要求的act或arpg策划大爷    提出的合理要求。一个状态下会有两种支线状态,此时的状态机切换逻辑还是在一个小学毕业的理解水平,接下来我们说个初中毕业的。

  在状态机窗口空白处右键,create sub-state machine 创建名为次级状态机的东西,恩,这么low鸡的名字我们肯定不会用的,我们管他叫灰色六边形状态机好了


  这个状态机的作用是,他可以创建另外一套次级状态。举例来说,act游戏中角色站着的时候有站跑攻击防御,下蹲的时候则是另外一套站跑攻击防御。下蹲就是次级状态,因为下蹲跑,下蹲攻击这些动作都是基于下蹲这个状态,所以他们可以独立成为一个次级状态机。

  双击灰色六边形状态机,进入次级状态机编辑页面。标题栏可以看到下蹲页签在基础层之下。这里简单罗列了几个下蹲的动画状态便于理解。这是一个比较有要求的策划老爷   提出的高标准的要求,比如下蹲攻击防御被击,空中攻击防御被击,中毒状态下攻击防御被击,残血状态下攻击防御被击等等不同的次级状态。。。恩 恭喜你初中毕业,完成了九年义务教育成为了一个普通的动画师 

  现在到了高中的课程了,你遇到了一个有理想的策划爸爸    ,他向你提出了一个无理要求。当手柄摇杆轻轻向前推的时候角色缓慢的移动,全力向前推的时候角色快速跑动;当摇杆左右轻推的时候,角色小幅度的转向,全力左右推的时候,角色大幅度转向。放下那条狗,不要急着x它    。能解决无理要求,这就是你和普通动画师的区别。在别人日了狗日了整个动物园的时候,你完成了高中毕业。。。

  选择“移动”这个灰色矩形状态机 create new blendtree in state 创建一个行为树。双击进入行为树编辑页面

  为了满足这个有理想的策划爸爸,你需要做好以下动画,待机、待机小转、待机大转、走、走小转、走大转、跑、跑小转、跑大转。转弯的动画可以只做一侧,另一侧用镜像动画实现。然后把这些动画链接给行为树。属性面板,设置行为树属性为2D freedom cartesian,这里不一一介绍几个行为树属性标签,大家可以自行尝试一下,其他的标签都是在此基础上做减法很容易理解。

  在motiom栏填好动画,posX、posY设置好坐标,时钟图标表示速度,小人图标表示动画镜像。

  这里的坐标设置0,0原点是待机,直线向上是走,再向上是跑;原点横向位置,近距离的是小转动画,远距离的是大转动画,走跑也是如此。图中红色点表示当前角色的状态,因为在0和1之间有无限个数字,所以这个状态是无限的,他是多个状态的融合,最多可以同时获取四个动画状态而融合成为一个全新的中间态。做完这一步,就需要程序老爷帮忙将摇杆推动的幅度映射到这个平面上,就可以实现有理想的策划爸爸提出的需求了。到此,阁下高中毕业,是一个了不起的人才!但是我知道你没那么容易满足,接下来我们学习一点高中火箭提高班的课程吧。

  刚刚那个有理想的策划爸爸一拍脑门忽然有了个绝妙的点子,当角色跑到最快的状态后,他可以爆气,进入狂暴状态,但是随着狂暴值减少,要逐渐变回正常跑。此时,我们要在跑步状态机下,加入一个线性行为树。是的没错,行为树的子级也可以是行为树,如果你的策划足够睿(bian)智(tai),行为树可以成为一个真正的,拥有无限分支的“树”。

  最后,给大家看一个比较复杂的状态机,它包含了一个主状态,五个次级状态,N个状态机,还有一个行为树,恩,高中火箭提高班大抵如此……

  科科,你不会以为真的结束了吧,我是那种只能教到高中水平的人么,咱给你来点大学的!嘛

  层动画 看起来没有什么新鲜的 基本每个动画软件都会提供层动画 但是unity的层动画是在状态机这里 每加一个层 都可以配置一套全新的状态机!

  终于迎来了这一天了。。。你战胜了有理想的策划爸爸,自以为从此天下无敌,纵横游戏研发界立于不败之地。没想到他还是出现了。

  是的就是他,他叫做外行老板。。    。

  他提出了一个可实现的小目标,要你给每个动画配上表情。

  一个跑步要有喜怒哀乐忧思恐各种表情   ,一个待机也要有喜怒哀乐忧思恐各种表情。你反抗说这样资源要多出N倍,他表示我们做的是精品高品质游戏,不在乎资源量。你狠狠地吸了一口利群,表示这样工作量也会翻倍,他表示如果你不行就直说,他不介意换人“不过是美工而已,到处都招的到啊”。在你的人生彷徨无助的时候,你的老朋友《unity游戏动画 从入门到住院》永远辣么坚挺的在你身后顶你! 

  不就是表情吗!新建一个动画层!搭建一套表情的状态机!然后做一套喜怒哀乐忧思恐的表情!注意!只要一套!然后丢给程序!让他写好调用逻辑!就可以完美实现每个动画都有各种表情了!

  这时老板又提出了一点小想法    ,听说换装很赚钱,我们也要做换装!而且要每个衣服针对不同的动作都有对应的动画!什么?项目到中期了你才跟我说要加换装?

  本宝宝捅死你哦 

  别急别急,我们可以!我们只需要新建一个衣服的层,创建与身体动画一一对应的状态机,然后把衣服的动画配置好就行了!恩这个方法是需要巨大的工作量和资源量。但是项目中期才提出换装需求的话,这几乎是唯一解!

  至此,老板已经对你刮目相看  !但是他昨晚喝酒的时候又想到了一件事!“我们这个游戏呢有各种战斗天使,有的长了两个翅膀,有的长了八个翅膀,最厉害的战斗天使大哥长了十六个翅膀,但是他们的身体动画都是一样的!小伙子你想想办法能让他们公用身体动画资源,然后每个人用各自的翅膀动画!这也是听你的想法节省资源嘛。”(别问我为什么还不辞职,因为你穷啊!)

  好的,怎么做!我们要给每个角色新建一个状态机,每个状态机分两层。一层是身体动画,大家公用一套动作,一层是翅膀动画,大家用各自单独导出的动作。简单吗,就这么简单。呵呵呵呵嘤嘤嘤嘤 。。。我特么到底经历了什么才学会的这些啊!

  layers页面下点击右侧加号新建层

  点击每个层的齿轮可以设置层属性,由上到下分别是权重(这一层对动画影响的权重值)、遮罩(身体遮罩,用来遮盖身体各部分动画如表情动画需要遮盖掉头部以下所有部位)、混合模式(可选叠加或者覆盖,字面意思)

  这里再给大家额外介绍一种override controller。就叫他加号状态机好了,创建它跟创建正常状态机一样。它相当于在一个原有的状态机外部加一个壳,这样我们就可以完美的继承下来原有状态机的所有配置,并且可以所以更改、从新指定原状态机任意位置的动画。

Unity游戏动画 从入门到住院:动画状态机相关推荐

  1. Unity游戏动画 从入门到住院 4:动画状态机

    Unity游戏动画 从入门到住院:动画状态机 发布者: wuye | 发布时间: 2016-9-7 15:02| 评论数: 3 文/拉撒路 上次我们讲过Unity游戏动画从入门到住院,今天我们来讲一下 ...

  2. unity游戏动画 从入门到住院 二 模型导入

    第一篇:unity游戏动画 从入门到住院 一 导出设置 好的,现在我们已经导出了一个干净或者不干净的FBX,总之他是可用的.至于导出如何设置请看前文链接--既然导出来了我们如何在unity中使用它呢? ...

  3. Unity游戏开发官方入门教程:飞机大战(六)——创建子弹

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  4. Unity游戏开发官方入门教程:飞机大战(二)——创建飞船对象

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  5. Unity游戏开发官方入门教程:飞机大战(五)——实现飞船控制脚本

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  6. Unity游戏开发官方入门教程:飞机大战(十)——敌人的爆炸和移动

    Unity版本:Unity 2018.2.14f1 原视频链接:https://unity3d.com/cn/learn/tutorials/s/space-shooter-tutorial 教程目录 ...

  7. Unity游戏动画 从入门到住院 1

    http://www.gameres.com/674582.html Unity3D游戏美术全攻略:从入门到精通 发布者: 小篱 | 发布时间: 2016-8-8 13:40| 评论数: 1 文/拉撒 ...

  8. 【教程汇总+持续更新】Unity游戏开发从入门到入坟

    新的一年,本该在年前整理的年终总结被拖到了年后开工.去年大量时间投入在Catlike教程的翻译上,截止目前位置,教程的进度已经完全追平原作者. 去年还有一部分是断断续续的更新SLG实战教程,但遗憾的是 ...

  9. unity游戏引擎_Unity游戏引擎指南:如何开始使用最受欢迎的游戏引擎

    unity游戏引擎 Unity游戏开发 (Game Development with Unity) Unity is a cross-platform game engine developed by ...

最新文章

  1. Educational Codeforces Round 86 (Rated for Div. 2)c和d
  2. iOS开发 - 事件传递响应链
  3. jquery mysql jsp搜索功能_实现搜索框自动提示功能(jquery+php)
  4. oracle之分析函数over及开窗函数
  5. 打开页面默认弹出软键盘,同时兼容iOS和Android
  6. sql2000导出mysql_如何将sql2000的数据库导入到mysql中?
  7. 如何html中添加动态图片,把动态图片添加到视频画面中 视频添加自定义动态图片 视频加动态logo...
  8. java readline 超时_跳过Java中的BufferedReader readLine()方法
  9. iPad开发--QQ空间,处理横竖屏布局,实现子控件中的代理
  10. python 两个df求相同的行_python – Pandas df操作:如果其他列行重复,则返回值列表的新列...
  11. AD迁移工具:ADMT
  12. 致谢计算机组成原理老师的致谢,计算机组成原理课程报告(40页)-原创力文档...
  13. 设计模式解密(9)- 装饰者模式
  14. 解析Disruptor:写入ring buffer
  15. python黑网站充值_Python黑帽子:Windows系统提权
  16. 模式识别、机器学习的区别和联系
  17. 卡尔曼滤波算法-Kalman filter
  18. 答疑解惑 | Linux GNU C 与 ANSI C 的区别
  19. Mybatis批量update修改实例
  20. Photoshop序列号

热门文章

  1. 软考下午常见问题——个人笔记
  2. spring boot 实现 Kurento 一对一浏览器视频聊天
  3. USDT信用卡和转账入账接口
  4. 史上最牛分析MySQL索引机制的实现!不接受反驳!
  5. up考研资料更新目录
  6. 投影仪怎么安装才能得到最大的屏幕?学会这个投影距离公式轻松拿捏
  7. Python获取抖音视频链接
  8. 决策树的三种常见算法
  9. PL2303在ARM Linux下驱动的问题及解决方法
  10. Mac电脑怎么关闭键盘的重复按键功能?