Unity3d 4.0新动画系统Mecanim初探(一)

    Unity4.0正式版终于跟你们见面了,早在以前的Bata版中,咱们就发现有一个新的动画系统:Mecanim,听说Unity科技想在Unity4.0中植入一个新的GUI,但如今看来咱们是看不到了,或许在将来的Unity5.0中咱们会看见这种强大的GUI了。所幸的是Mecanim至少没被剥离,这是个无比强大的动画系统,让咱们在可视化的界面中建立动画状态机以控制各类动画状态之间的切换。Mecanim以其强大的动画重定向功能让咱们这些不会设计动做的程序员只须要动动鼠标就能为咱们的角色建立咱们想要的动画效果,这简直是太棒了!除此以外,咱们还能够足够精密的对两种以上动画进行叠加并预览该动画,并且能极大的减小代码的复杂度。若是咱们用了这种新的动画系统,那么咱们的代码将变得更为简洁。全部的这一切是那么的美好,那么接下来咱们就一块儿学习一下这个难以想象的动画系统:Mecanim。
        可是话说回来,这次咱们所接触的是全新的类容,与老式的动画系统相比增长的类容确实多了不少,并且出现了大量的专有名词。因为本人对英文的理解能力有限,不能准确的翻译那些专有的名词,这里深感抱歉。但因为这部分类容是全新的,我想读者仍是乐于一读的。首先,咱们必须了解一下一些基础概念。好了,很少说了。咱们开始吧!
        首先,咱们来了解一下什么是Avatar,好像翻译过来就叫“阿凡达”,此时我也想不出什么词来形容它了,那就叫它“阿凡达”吧。那么Mecanim里面的Avatar到底是什么呢?官方给出的解释是这样的:



左边的图标就是Avatar在Unity中呈现的方式。后面的解释是这样的:Avatar是一个将一个角色的骨骼信息重定向到另外一个角色上的接口。咱们如今不用知道这个Avatar是什么,跟着看就行。我先新建一个空的工程:MecanimTest。而后我导入我本身预先打好包的角色预设:Robot。以下图: 



咱们选中一个FBX文件,而后将其展开: 



此时咱们并无看到Avatar图标吧!好,接下来咱们来作一个Avatar。首先咱们选中第一个robot,在Inspector面板中咱们会看到这个: 






其中选项Model和Animations是之前版本的Unity就带有的,不过当时是集成在一个面板中。但是咱们发现多出了一个Rig选项卡。我先不解释,你看着每一步就行:
首先,咱们点击Legacy,能够发现:


咱们先选择Humanoid,立刻此面板出现变化了,甭管它,跟着我作就好了: 



咱们单击Apply,而后发现Configure选项有一个勾: 



此时咱们发现Project面板下面出现了咱们想要的Avatar: 



那么接下来咱们单击Configure,一幅使人激动的画面展示在咱们眼前,哦,忘了,咱们尚未保存咱们的场景呢,好的,保存一下,接下来咱们的使人惊叹的画面: 



咱们能够不作什么,由于此时骨骼的匹配已经很是成功了,直接点击右下角的Done就好了。好,咱们的Avatar已经好了,那就将这个Robot给拖动至Scene视图中去吧!咱们忽然发如今Inspector面板上为Robot自动添加了一个新的组建:Animator 



咱们发现,Avatar已经在这个组件里面了。可是上方有一个Controller尚未填充。那么这个Controller究竟是个什么东西呢?是AnimationController。又是一个新东西。咱们新建一个AnimationControllers文件夹,而后单击右键: 






咱们发现相比于以前版本的Unity多出了三个东西:Animator Controller,Avatar Body Mask,Avatar Skeleton Mask 。
其中,咱们先新建一个Animator Controller,取名为:RobotController1。打开Animator面板:Window->Animator 。咱们能够看到这样一幅图:



接下来咱们须要了解几个重要东西,我不会像文档上那么正式,由于那样的话没几我的想学这个东西,太罗嗦了!。
首先是Animation State ,咱们在Animator窗口中的空白部分单击右键,Create->Empty。什么是Animation State,这就是Animation State:




接下来咱们要了解什么是Animation Transitions,咱们再新建一个Animation State,而后咱们右键单击其中一个Animation State, 



左键单击这个Make Transition,而后出现了一个白色的带箭头的白线,咱们链接到New State上面。 






通俗的讲,那个白色的带箭头的线就是Animation Transitions,也许有读者不赞同我这样说,无所谓,只要能清晰的理解这个东西就行,那些术语就让它见鬼去吧!



咱们看到右下角的Parameters这个部分了吧!咱们就是靠这部分组件来添加Animation Parameters的。咱们就随便添加一些参数吧,这里只能添加四种类型的参数:






ector,Float,Int,Bool这四种类型。咱们随便添加一个Speed的Float类型的参数: 




接下来咱们得开始讲Animation State Machine了,顺便写点代码。咱们为Robot加一个角色控制器,而后调节一下此角色控制器使其与Robot足够适应。因为咱们的Robot带有一个idle***n的动画片断,咱们这次仅仅只是实现一下这两种状态之间的切换:
首先咱们将咱们以前新建的空的新的State->NewState给定位到,而后右键单击它,咱们发现有一个选项叫作“Set As Default”默认是不能被选的,下面的State0咱们也试一下,发现


这个选项在State0上面又是能够选的。此刻咱们能够清楚的知道,咱们第一次新建的Animation State系统默认做为默认的动画状态。固然你也能够设置别的动画状体为默认,只需鼠标右击这个非默认的动画状态,而后选择Set As Default。可是有一点是清楚的,就是:若是这个状态的颜色为黄灰色的,那么这个状态就是该角色默认的动画状态,且只有一个状态是默认的。好了,咱们不纠结这些了,咱们如今选中某个状态,而后再Inspector面板中改变其名字,就像这样: 



上面有几个选项,其中Motion选项是要让咱们拖拽指定的AnimatonClip到此位置。Foot IK咱们先无论他。咱们拖拽idle动画片断到此选项上,那咱们将Robot@idle这个FBX文件展开,而后将其中的idle动画片断拖拽到指定的那个位置,可是问题来了,拖不到那里去,出现了警告: 



这又预示着什么呢?难道咱们以前的想法不对?不,毫不是这样的。因为下面篇幅比较长,我就将其切成了两部分。我会在将来的几个小时写完另外一部分,敬请期待。 
相关文章
相关标签/搜索