, 这东西除了装B还能干嘛用。状态机嘛,提供了动画状态之间的切换功能、自带动画融合、能编辑动画播放的逻辑顺序、能设置随机播放、能设置行为树。现役动画状态机是在4.0版本问世的,他跟前代相比。那简直是bip骨骼跟bone骨骼的区别。
首先,我们要创建个新的状态机。在project面板下,点create 找到animator controller 点击创建状态机,按F2可从命名,双击它进入状态机面板。或在window窗口,找到animator打开状态机面板。
接下来以三连击为例,讲一个相对复杂一点的状态机关系。正常顺序为待机→攻击1→攻击2→攻击3→攻击3收招→待机,这是一套三连击打完的顺序,但是玩家操作的时候可能只按了一下攻击,那么状态机的顺序就是待机→攻击1→攻击1收招→待机。攻击2同理。这是一个有那么点要求的act或arpg策划大爷 提出的合理要求。一个状态下会有两种支线状态,此时的状态机切换逻辑还是在一个小学毕业的理解水平,接下来我们说个初中毕业的。
现在到了高中的课程了,你遇到了一个有理想的策划爸爸 ,他向你提出了一个无理要求。当手柄摇杆轻轻向前推的时候角色缓慢的移动,全力向前推的时候角色快速跑动;当摇杆左右轻推的时候,角色小幅度的转向,全力左右推的时候,角色大幅度转向。放下那条狗,不要急着x它 。能解决无理要求,这就是你和普通动画师的区别。在别人日了狗日了整个动物园的时候,你完成了高中毕业。。。
选择“移动”这个灰色矩形状态机 create new blendtree in state 创建一个行为树。双击进入行为树编辑页面
刚刚那个有理想的策划爸爸一拍脑门忽然有了个绝妙的点子,当角色跑到最快的状态后,他可以爆气,进入狂暴状态,但是随着狂暴值减少,要逐渐变回正常跑。此时,我们要在跑步状态机下,加入一个线性行为树。是的没错,行为树的子级也可以是行为树,如果你的策划足够睿(bian)智(tai),行为树可以成为一个真正的,拥有无限分支的“树”。
最后,给大家看一个比较复杂的状态机,它包含了一个主状态,五个次级状态,N个状态机,还有一个行为树,恩,高中火箭提高班大抵如此……
科科,你不会以为真的结束了吧,我是那种只能教到高中水平的人么,咱给你来点大学的!嘛
层动画 看起来没有什么新鲜的 基本每个动画软件都会提供层动画 但是unity的层动画是在状态机这里 每加一个层 都可以配置一套全新的状态机!
终于迎来了这一天了。。。你战胜了有理想的策划爸爸,自以为从此天下无敌,纵横游戏研发界立于不败之地。没想到他还是出现了。
是的就是他,他叫做外行老板。。 他提出了一个可实现的小目标,要你给每个动画配上表情。
不就是表情吗!新建一个动画层!搭建一套表情的状态机!然后做一套喜怒哀乐忧思恐的表情!注意!只要一套!然后丢给程序!让他写好调用逻辑!就可以完美实现每个动画都有各种表情了!
这时老板又提出了一点小想法 ,听说换装很赚钱,我们也要做换装!而且要每个衣服针对不同的动作都有对应的动画!什么?项目到中期了你才跟我说要加换装?
本宝宝捅死你哦 别急别急,我们可以!我们只需要新建一个衣服的层,创建与身体动画一一对应的状态机,然后把衣服的动画配置好就行了!恩这个方法是需要巨大的工作量和资源量。但是项目中期才提出换装需求的话,这几乎是唯一解!
至此,老板已经对你刮目相看 !但是他昨晚喝酒的时候又想到了一件事!“我们这个游戏呢有各种战斗天使,有的长了两个翅膀,有的长了八个翅膀,最厉害的战斗天使大哥长了十六个翅膀,但是他们的身体动画都是一样的!小伙子你想想办法能让他们公用身体动画资源,然后每个人用各自的翅膀动画!这也是听你的想法节省资源嘛。”(别问我为什么还不辞职,因为你穷啊!)
好的,怎么做!我们要给每个角色新建一个状态机,每个状态机分两层。一层是身体动画,大家公用一套动作,一层是翅膀动画,大家用各自单独导出的动作。简单吗,就这么简单。呵呵呵呵嘤嘤嘤嘤 。。。我特么到底经历了什么才学会的这些啊!