[原]Unity3D深刻浅出 - 新版动画系统(Mecanim)

Mecanim概述:app

Mecanim是Unity提供第一个丰富而复杂的动画系统,提供了:异步

  • 针对人形角色的简易的工做流和动画建立能力
  • Retargeting(运动重定向)功能,即把动画从一个角色模型应用到另外一个角色模型上的能力。
  • 针对Animations Clips(动画片断)的简易工做流,针对动画片断及他们之间的过分和交互预览能力。
  • 一个用于管理动画间复杂交互做用的可视化窗口。
  • 经过不一样逻辑来控制不一样身体部位的运动能力。

 

Mecanim工做流:工具

1.资源导入,这一阶段由美术师或动画师经过三维工具来完成。动画

2.角色的创建,主要分为如下两种方式。3d

  • 人形角色的创建,Mecanim经过扩展的图形操做界面和动画重定向功能,为人物模型提供了一种特殊的工做流,它包括Avatar的建立和对肌肉定义(Musicle Definitions)的调节。
  • 通常角色的创建,通常为运动物体和四足动物而设定,动画重定向对此不适用。

3.角色的运动,包括设定动画片断以及其相互间的交互做用,也包括创建状态机和混合树、调整动画参数以及经过代码控制动画等。索引

 

获取人形网格模型ip

1.人形网格模型,为了充分利用Mecanim的人形动画系统和动画重定向功能,须要一个具备骨骼绑定和蒙皮的人形网格模型。资源

  • 人形网格模型通常由一组多边形或三角形网格组成,建立模型的过程称为建模(modelling);
  • 为了控制角色的运动,必须为其建立一个骨骼关节层(joint hierarchy);
  • 人形网格模型必须与关节层级关联起来,经过指定关节的动画来控制特定网格的运动,这个过程称为蒙皮(skinning);

一句话来总结,建立好人物模型后(建模modelling),为其建立一个骨骼关节(joint hierarchy),最后异步将人物网格模型和关节关联起来(蒙皮skinning)。[ modelling > joint hierarchy > skinning ]开发

2.获取模型,在Mecanim系统中,能够经过三种途径来获取人物网格模型:get

  • 使用一个过程试的人物建模工具,Poser 、 Makehum或Mixamo等。其中有些三维软件能够在建模的同时进行骨骼绑定和蒙皮操做。应该尽量的减小人形网格的面片数量,从而更好的在unity中使用。
  • 在Unity Asset Store下载。
  • 经过三维建模软件来建立全新的人形模型,这类软件包括3Dmax、Maya、Blender等。

3.导出和验证模型,unity引擎能够导入一系列的经常使用3D文件格式,推荐使用FBX 2012,由于改格式容许:导出的网格中包含关节层级、法线、纹理以及动画信息;也能够导入不包含网格的动画信息。

 

动画分解:

1.预分解动画模型:最容易使用的动画模型是含有预分解动画片断模型,这种动画模型在导入项目后,可看到面板中包含多个可用的动画片断列表,还可对每一个动画片断的帧数范围进行编辑调整。

2.未分解动画模型:提供单一连续动画片断的模型,这种状况可自行设定每一个动画的片断所须要的帧。如该模型动画一共有100帧,1-10帧为待机喘息状态,11-30帧为行走,31-60帧为奔跑,61-80帧为攻击,81-100帧为死亡动画。

3.为模型添加动画:用户能够为任意模型的动画组建添加动画片断,该模型甚至能够没有肌肉定义(非Mecanim模型),进而在Animations属性中指定一个默认的动画片断和全部可用的动画片断。在非Mecanim模型上添加动画片断也必须采用非Mecanim的方式进行,即将Muscle Definition属性设置为None。

对具备肌肉定义的Mecnim模型处理过程以下:

  • 建立一个Animator Controller。
  • 打开Animator Controller窗口。
  • 将特定的动画片断拖到Animator Controller窗口。
  • 将模型资源拖入到Hierarchy视图中。

4.经过模型文件来导入动画片断:该方法是遵循Unity指定的动画文件命名方案,用户能够建立独立的模型文件并按照modelName@animaionName.fbx的格式来命名。例如一个魔法师的模型(wizard.fbx),待机、行走、攻击分别命名为 wizard@idle.fbx、wizard@walk.fbx 、wizard@attack.fbx。只有在这种状况下,动画数据才会被使用。

 

使用人形角色动画

Mecanim动画系统特别适合用于人形角色的动画制做,由于人形模型均具备相同的基本结构,因此用户能够实现将动画效果从一我的形骨架映射到另一我的形骨架上去,从而实现动画重定向的功能。

建立一个动画的基本步骤就是建立一个从Mecanim系统的简化人形骨架结构到用户实际提供的骨架结构的映射,这种映射关系称为Avatar,下面就介绍如何为一个模型建立一个Avatar。

建立Avatar

在导入一个模型(例如fbx)后,在该模型面板上选中Rig选项卡指定他它的骨骼模型,包括Humanoid、Generic和Legacy这三种。

1.人形动画(Humanoid)

对于人形骨架,选中Animation Type下拉菜单,选择Humanoid,单击Apply按钮,Mecanim系统就会尝试将用户提供的骨架结构与Mecanim系统内嵌的骨架结构进行匹配,匹配成功后在能够看到Configure...复选框被选中。在匹配成功的状况下,会在模型资源中添加一个Avatar子资源。须要注意的是,这里匹配成功仅仅是匹配了全部必要的关节骨骼,若是想达到更好的效果,还须要对Avatar进行手动调整。若是在Configure...旁边显示一个叉号,即不会生成相应的Avatar子资源,这种状况就须要手动配置Avatar。

2.非人形动画 

Unity为非人形动画提供了两个选项,通常动画类型(Generic)和旧版动画类型(Legacy),通常动画仍可由Mecanim系统导入,但没法使用人形动画专有的功能。 

配置Avatar:

在上一步生成Avatar子资源后,便可配置Avatar。Avatat是Mecanim系统中极为重要的模块,所以为模型资源正确的设置Avatar也相当重要,无论Avatar自动建立过程是否成功,用户都须要进入Configure...Avatar界面中确认Avatar的有效性,即确认用户提供的骨骼结构与Mecanim系统预约义的骨骼结构是否正确的关联起来,而且模型处于T形姿态。

点击Configure...后Scene视图将被用于显示当前模型的骨骼、肌肉、和动画信息,同时会出现一个Avatar配置面板,可看到一个关键骨骼映射信息的视图,该视图还显示了哪些骨骼是必须匹配的(实线圆圈),哪些是可选匹配的(虚线圆圈)。为了方便Mecanim进行骨骼匹配,用户提供的骨架中应半酣全部必须匹配的骨骼。此外为了提升匹配的成功率,应尽可能经过骨骼表明的部位来给骨骼命名。

若是复发为模型找到合适的匹配,用户也能够经过相似Mecanim内部使用的方法来进行手动配置:

1.在Avatar面板中选择Pose下拉项中的Sample Bind-pose(获得模型的原始姿态);

2.在Avatar面板中选择Mapping下拉项中的Automap(基于原始姿态建立一个骨骼映射);

3.在Avatar面板中选择Pose下拉项中的Enforce T-pose(强制模型贴近T形姿态,即Mecanim动画的默认姿态)

若是在第二个步骤中,自动映射的过程出现失败或者局部失败,用户可经过Scene视图或者Hierarchy视图中拖出骨骼并指定骨骼,若是Mecanim认为骨骼匹配,将在Avatar面板中以绿色显示,不然以红色显示。

若是没有指定正确则会看到Sence视图中会出现Character not inT-pose提示,可经过EnforceT-pose强制将模型转换为T型姿态或者旋转至模型为T型姿态。

上述骨骼映射信息还可奥村一我的形模版文件(Humanoid Template File).ht ,这个文件可在全部使用这个映射关系的角色之间复用。

设置Muscle参数:

Mecanim使用肌肉(Muscle)来限制不一样骨骼的运动范围,一旦Avatar配置完成,Mecanim就能解析其骨骼结构,进而用户就能够在Muscles选项卡中调节相关参数。在此可很是容易的调节角色的运动范围,确保看起来真实天然。

用户能够在视图上方使用预先定义的变形方法对几根骨骼同时进行调整,也可在视图下方对身体上单根骨骼进行调整。

 

人形动画的重定向:

人形重定向是Mecanim系统中强大的功能之一,这意味着开发者只须要很简单的操做便可将一组动画应用到其余人形角色模型上,前提是必须正确的配置Avatar。

 

导入单个动画文件:

在从三维软件导出模型前,遵循unity3d动画文件命名方案,为单个动画模型文件命名modelName@animationName.fbx,即 模型名称@动画名称.fbx 。

例如对于一个名为warlock(魔法师)的模型,分别指定 idle(待机),walk(行走),attack(攻击),death(死亡) 等动画。

即命名规范:

warlock@idle.fbx

warlock@walk.fbx

warlock@attack.fbx

warlock@death.fbx

另外还需导出一个 warlock.fbx 不带动画的模型文件,在导出模型前勾选 no animation选项便可,warlock.fbx模型会遵循动画文件命名规范来索引其余带动画的模型文件。

相关文章
相关标签/搜索