Unity动画系统,也称为“Mecanim”,提供了以下功能:
Unity的动画系统(被称为“Mecanim”)带有很多概念和术语,可以参参见“动画词汇表”。
传统动画系统
虽然大多数情况下推荐使用Mecanim,但Unity仍保留了在Unity 4之前存在的传统动画系统。有关传统动画系统的信息,请参阅“这里”
Unity未来将把工作流程合并到Mecanim中,逐渐淘汰Legacy动画系统。
动画片段是Unity动画系统的核心元素之一。 Unity支持从外部源导入动画,另外也提供了一个简易的内置动画编辑器,可以从头开始创建动画片段,目前该动画编辑器不支持人形动画编辑。
源于外部导入的动画片段可能包括:
你也可以通过Unity的动画界面创建和编辑动画片段,此类动画可以变化以下内容:
源于外部的动画以普通3D文件的方式导入到Unity中。 这些文件,无论是通用的FBX文件还是诸如Maya,Cinema 4D,3D Studio Max等3D软件的原生格式,都可以在文件中以线性记录的形式存储对象运动的动画数据。
有些时候,执行运动的目标(例如,一个角色)和与之相关的运动动画可以存在于同一个文件中。也有些时候,动画可能存储在独立的文件中,与目标模型分离。
有些动画是为特殊模型单独制作的,不能在其他模型上重复使用。例如,你的游戏中可能有一个终极Boss,是一个巨型章鱼,它会有独特的四肢和骨骼分布,以及属于它自己的一套动画。
在其他大部分情况下,您可能会有一个动画库,用于场景中各种不同的模型。例如,一些不同的人形角色可能都使用相同的行走和奔跑动画。在这些情况下,通常在动画文件中放置一个简单的替代模型,以便进行预览。甚至,即使它们根本没有几何模型,只包含动画数据,也同样可以使用这个动画文件。
导入多个动画片段时,每个动画片段可以作为项目文件单独存在。当从Maya、Max等3D动作编辑器的插件导出时,也可以导出多个动画片段到单个FBX文件中。如果你的文件包含在单个时间轴上排列的多个单独的动画片段,则可能需要执行此操作。例如,在一个捕获时间较长的动画时间轴中,可能包含几个不同的跳跃运动的动画,您可能希望将其中的某些部分用作单个片段,并丢弃其余的部分。 Unity通过允许您为每个片段选择帧范围,在导入所有动画一个时间轴上,提供动画剪切工具来实现区域裁剪。
在Unity中使用动画之前,需要先将其导入到项目中。 Unity可以导入原生的Maya(.mb或.ma),3D Studio Max(.max)和Cinema 4D(.c4d)文件,以及可以从大多数动画软件导出的通用的FBX文件(有关导出的详细信息,请参阅此处)。 要导入动画,只需将文件拖动到项目的Assets文件夹。 当您在“Project”面板中选择文件时,您可以在“Inspector”面板中编辑导入设置:
有关可用导入选项的完整说明,请参阅FBX导入页面。
从导入的动画文件查看和复制数据。
您可以在“Animation”界面中查看导入的动画片段的关键帧和曲线。 有时,如果这些导入的片段有许多关键帧和多个骨骼,信息量可能看起来非常复杂。 例如,下面的图像是“Animation”界面中一个人形的奔跑动画看起来的样子。【注意Animation不仅仅可以创建和编辑内部动画,也可以浏览源于外部导入的动画,此时动画为只读,不能编辑】
打开“动画”界面,然后请选择指定的带有动画的GameObject(带有Animator组件的节点或者其子节点),“动画”界面将显示骨骼动画的关键帧和曲线。
在查看导入的动画关键帧时,“Animation”界面提供“动画”数据的只读视图。 要编辑此数据,请在Unity中创建一个新的空动画片段(请参阅创建新的动画剪辑),然后从导入的动画片段中选择、复制和粘贴动画数据到你新创建的可写入动画片段。
Mecanim动画系统特别适合用于类人动物骨骼的动画。由于人形骨骼在游戏中广泛使用,所以Unity提供了专门的工作流程,还有一个用于人形动画的扩展工具集。
由于骨骼结构的相似性,将动画从一个人形骨架映射到另一个人形骨架就称为可能,从而允许重新定位和反向运动学。除了少见的例外情况,类人生物模型可以具有相同的基本结构,连接的身体,头部和四肢代表了主要表达部分。 Mecanim系统充分利用了这一想法,简化了动画的装配和控制。创建动画的一个基本步骤是建立Mecanim所能理解的简化人形骨骼结构与骨骼动画中存在的实际骨骼之间的映射;在Mecanim术语中,这个映射叫做Avatar。本节中的页面说明如何为您的模型创建Avatar。
当一个模型文件(FBX, COLLADA, 等格式)创建完成并且导入之后, 你可以在Rig面板指定它的导入类型。
如果是人形结构,则选择”Humanoid”然后点击”Apply”. Mecanim将尝试将当前的模型骨骼结构匹配到Avatar骨骼结构. 大部分情况下, 这一步会通过内部分析两个骨骼结构之间的联系而自动完成。
如果匹配成功,你会看到在”Configure”菜单边上出现一个”√”标记。
此外,在成功匹配的情况下,将会添加一个Avatar子资源到模型资源中,您将能在project视图中看到它。
选择这个Avatar子资源,此时将在inspector面板出现一个”Configure Avatar”的按钮,点击这个按钮将会进入Avatar的配置模式。(如果模型被导入为Generic类型,虽然也会产生Avatar子资源,但是实际上它是不可以配置的,出现Avatar只是表明它是人形结构,可以连接到其它Avatar,用作皮肤)
如果Mecanim未能成功创建Avatar,您将在“Configure”按钮旁边看到一个”×”标记,并且不会添加Avatar子资源。 发生这种情况时,您需要手动配置Avatar。
Unity提供了另外两个选项:Generic(一般)和Legacy(旧版)。 一般动画使用Mecanim系统导入,但不能利用那些可用于人形动画的高级功能。 旧版动画使用Unity在Mecanim之前提供的动画系统。 在某些情况下,使用旧版动画仍然有用(最显着的是您不想完全更新的旧版项目),但新项目很少需要它们。 有关传统动画的更多详细信息,请参阅手册的”Legacy animation system”部分。
由于“Avatar”是Mecanim系统的重要方面,也就需要您为模型配置合适的Avatar。 所以,无论自动创建Avatar失败还是成功,您都需要进入“Avatar配置”模式进行查看,以确保“Avatar”的有效和正确设置。 最重要的一点是,您的角色的骨骼结构需要与Mecanim的预定骨骼结构相匹配,并且该模型处于“T”形姿势。
如果Mecanim未能成功创建Avatar,您将在“Configure”按钮旁边看到一个”×”标记.
如果匹配成功,你会看到在”Configure”菜单边上出现一个”√”标记。
这里的成功匹配只是意味着所有必需的骨骼已经匹配,但为了得到更好的效果,您可能还需要匹配可选的骨骼,并将模型转换为适当的T形姿势。
当您进入配置(Configure)菜单时,编辑器将要求您保存场景。 原因是在配置模式下,场景视图用于单独显示所选模型的骨骼,肌肉和动画信息,而不显示场景的其余部分。
Once you have saved the scene, you will see a new Avatar Configuration inspector, with a bone mapping.
当你保存场景之后,inspector检视面板将出现用于骨骼映射的Avatar配置界面。
检视面板显示出哪些骨骼是必需的,哪些是可选的-可选的骨骼运动将由自动插值计算完成。 为了让Mecanim构建一个有效的匹配,你的模型骨架需要要包含所有的必需骨骼。为了提高与“Avatar”成功匹配的几率,请使用体现对应身体部位的方式命名您的骨骼。(例如“LeftArm”,“RightForearm”就比较合适)。
如果没能为模型建有效的匹配,您可以手动执行与Mecanim内部的内流程类似的过程:
如果自动映射(Mapping-> Automap)完全或部分失败,您可以通过从场景或层次面板中拖拽骨骼来分配。 如果Mecanim认为骨骼适合,它会在头像检视面板中显示为绿色,否则显示为红色。
最后,如果骨骼分配正确,但角色的姿势不正确,您将看到“Character not in T-Pose”消息。 您可以尝试通过”Enforce T-Pose”来修复,或者对不正确的的那些骨骼进行旋转,最终呈现为T形姿势。
有时将动画限制在特定的身体部位是有用的。 例如,步行动画可能涉及角色手臂的摇摆,但如果他拿起枪,他应该把手臂端放在他面前。 您可以使用“Avatar Body Mask”(身体部位遮蔽)来指定应限制某个动画的角色的哪些部分 - 有关详细信息,请参”Avatar Body Mask”页面。