【Unity】10.1 类人动画的导入和设置

分类:Unity、C#、VS2015

创建日期:2016-05-02

一、制作或购买类人模型

为了充分使用 Mecanim 类人动画系统和类人动画的动画重定位功能,需要先使用其他3D建模软件(例如3ds Max 2015),制作一个搭好了骨架和蒙皮的类人网格模型。

1、什么是类人模型

类人模型也叫类人网格模型,它通常由一组多边形或者三角形网格来组成。

创建类人模型的过程称为建模。

在上面这个图中,1是通过“建模、搭骨架、蒙皮”后最终完成的类人模型,2是为该模型搭的骨架,3是蒙皮的效果。

2、制作类人模型的基本思路

这里简单介绍如何利用3ds Max 2015从头开始创建类人网格模型,即简单解释“建模、搭骨架、蒙皮”的三个基本步骤。

(1)建模

建模是指在三维建模软件(3ds Max、Maya、Blender 等)中创建类人网格的过程。

下面给出的是你在建模时应该遵循的要点,这样做可确保模型在 Unity 工程的动画中能很好地使用类人模型。

(1)网格拓扑结构要“合理”。什么叫“合理”每个人的理解都不太一样,但通常情况下,你应当牢记:模型在动画化时其顶点和三角形的变形方式很重要。在没有难看的网格变形的情况下,糟糕的网格拓扑结构可能会导致模型无法运动。

掌握拓扑结构快速入门的捷径是:通过大量学习别人已经制作好的三维角色网格模型,逐步了解和理解拓扑结构的含义,以及如此安排的原因。

(2)注意网格缩放比例。要注意导入的模型和“米立方体”的大小是否一致(标准 Unity 基本立方体的边长为一个单位,所以大多数情况下,通常认为是 1m 立方体)。或者说,一定要检查三维资源包使用的单位是否是“米”,如果不是就调整导出设置,以确保模型大小与立方体的比例正确。

这一原则看似简单,其实也很重要。除非极其小心,否则一不留神很容易创建出没有任何缩放比例概念的模型,导致导入 Unity 后形成的是一组大小不成比例的对象。

(3)排列网格时,一定要让角色的双脚站在坐标原点或模型的“锚点”。由于角色通常在地面上直立行走,如果其锚点(即变换位置)本来就在地面上,那就会更容易控制。

(4)如果可以的话,尽量使用 T 字姿势 (T-pose) 建模。这样有助于留出空间,让你在需要的地方(例如腋下)完善多边形细节。同时这还能让你更容易在网格中放置装置。

(5)清理模型。如果可能,覆盖孔洞,焊接顶点,移除隐藏面,这样有助于蒙皮,特别是自动蒙皮过程。

下图是蒙皮网格 (Skin Mesh),即:经建模、加纹理及三角化后的结果。

(2)搭骨架

为了控制角色运动,必须先利用3ds Max 2015等建模软件创建一个定义网格内骨骼及其相互之间运动关系的关节层级(joint hierarchy)。

这个创建关节层级的过程称为“搭骨架(rigging)”。

这是创建关节骨架来控制模型运动的过程。

三维资源包提供了多种方式,为类人装置创建关节。范围包括已经构建好、可以缩放后放入网格的两足动物骨架,以及创建自己的骨骼结构的单块骨骼创建和父子化工具。尽管细节已超出 Unity 的范围,这里还是有一些通用指南:

学习已有的类人骨架层级(例如两足动物),且如果可能,使用或模仿骨骼结构。

确保臀部是骨架层级的父骨骼。

骨架中至少需要十五块骨骼。

关节/骨骼层级应遵循所创建角色的自然结构。假如手臂和腿成对出现,应当为它们使用一致的名称(例如,"arm_L" 表示左臂,"arm_R" 表示右臂等)。可能的层级包括:

臀部 – 脊椎 – 胸部 – 肩膀 – 大臂 – 前臂 – 手

臀部 – 脊椎 – 胸部 – 脖子 – 头

臀部 – 大腿 – 腿 – 脚 – 脚趾 – 趾端

下图为两足动物骨架 (Biped Skeleton),放置成 T 字姿势 (T-pose):

(3)蒙皮

类人网格必须与关节层级关联起来,这样看着才像个“人”。另外,只有关联以后,才能通过指定关节的动画来控制特定网格的运动。

简单来说,这个“将骨架连接到网格的过程”称为“蒙皮(skinning)”。说白了,就是给类人骨骼(或骨架)模型套一层“人皮”或“穿衣”,当然了,叫“蒙皮”比叫“套一层人皮”或“穿上衣服”好听和高大上多了。

准确来说,蒙皮就是向“骨架”附加“网格”的过程。

蒙皮包括将网格中顶点绑定到骨骼,可以直接绑定(称为刚性绑定),或者结合对许多骨骼的混合影响予以绑定(称为柔性绑定)。不同的软件采用的蒙皮方法可能不同,例如分配独特顶点和在网格上逐骨绘制影响权重。初始设置通常是自动的,例如通过找到最接近的影响或使用“热图”。

蒙皮通常需要开展大量的工作和使用动画进行测试,以确保获得满意的蒙皮变形效果。

这个过程的一些通用指南如下:

(1)最初使用自动化过程来设置蒙皮(请参阅 3DMax、Maya 等相关教程)。

(2)为你的装置创建简单的动画,或者导入一些动画数据作为蒙皮测试。这样可让你快速评估蒙皮在运动中的效果。

(3)逐步编辑并完善蒙皮方案。

(4)坚持在柔性绑定时“最多”使用四种影响,这是 Unity 可以处理的数目上限。如果部分网格受到的影响超过四种,那么在 Unity 中播放动画时至少会丢失一些信息。

下图为交互式皮肤绑定 (Interactive Skin Bind),这是众多软件采用的蒙皮方法之一。

二、制作类人角色

利用3ds Max 2015做完“建模、搭骨架和蒙皮”的过程以后,就可以将其导入到Unity中,然后再利用Mecanim制作类人角色。

1、创建或获取类人模型的途径

在Mecanim 中,有三种途径来得到 Mecanim 动画所用的类人模型。

(1)通过专业的3D建模软件(例如3ds Max、Maya、Blender等),从头开始自己制作需要的人体模型。这种方式需要熟悉3D建模软件的用法,优点是自己想做成什么样就做成什么样,缺点是需要花时间。

(2)从 Unity 资源商店购买适当的类人模型资源。这种方式的优点是模型来得快,缺点是可能需要花费点钱。

(3)利用过程式的人物建模软件(称为程序化角色系统或角色生成器,例如 Poser、Makehuman 或者 Mixamo)加快制作类人模型的过程。其中有些软件可同时为网格搭骨架和蒙皮(例如 Mixamo),而另外一些软件却没有此功能。此外,应该在使用这些软件的过程中尽可能减少原始类人网格中的多边形数量,以便让其更好地适用于 Unity。这种方式的优点是可能会提高一些制作效率,缺点是还得再学新的软件用法,如果新的软件不会用,可能还没有“直接用3ds Max 2015直接做”来的快。

2、将模型导出为按单个FBX文件

Unity引擎可导入大量不同的通用和本地3D文件格式。

不论用哪种建模软件,建议将其导出为FBX格式的文件。这种格式的优点是:

·FBX格式的网格模型可以同时包含关节层级、法线、纹理以及动画信息。

·可以将FBX网格模型导入到3ds Max 2015,来验证动画模型的正确性。

·可以从FBX文件中直接导出不包含网格的动画信息。

对于Unity 5.3.4来说,建议用3DS Max 2015制作或导入用其他软件制作的人体模型,完成后再将其导出为FBX 2014格式的文件,然后就可以在Unity中使用这个FBX文件,即利用Mecanim动画系统对其进行动画处理了。

3、将导出的FBX文件导入到Unity

要在Unity中使用角色模型,必须先将其导入到Unity工程中。

导入FBX格式的动画到Unity中很简单,只需要将模型直接拖到工程面板中的Assets文件夹中即可。

导入后,就可以在检视器(Inspector)的【Import Settings】中编辑导入设置。

三、导入多个模型动画到Unity

除了前面介绍的分别将单个动画模型导入到Unity中以外,还有一种导入动画模型的方式,该方式按照 Unity用于动画文件的命名规则来为其命名。

使用这种方式时,可对分别创建的模型文件使用 “[email protected]”的约定为其命名。例如,对一个叫做 "goober" 的模型,可以使用名称为下面的4个文件分别导入单独的空闲、走路、跳跃和跳墙动画:

空闲动画文件名:[email protected]

走路动画文件名:[email protected]

跳跃动画文件名:[email protected]

跳墙动画文件名:[email protected]"

这样虽然原始文件同网格数据一起导出,但只有这些文件的动画数据才会被使用。

下图是动画角色所用4个动画文件的示例(注意,.fbx扩展名在 Unity 中默认不显示,单击选择某个文件后,才能看到其扩展名):

当将这4个文件拖到Project的Assets文件夹下以后,Unity 就会自动导入全部4个文件,并将所有动画收集到一个没有 @ 标记的文件中。例如,在上图所示的示例中,程序会将 其收集到goober.mb 文件中,该文件会自动引用空闲、跳跃、走路和跳墙的动画。

对于 FBX 文件来说,导入多个动画时,只需导出每个文件需要的关键帧(在 FBX 对话框中激活动画),然后将没有勾选动画的模型文件(例如 goober.fbx)和4个片段导出为 [email protected]即可。

四、分割动画

分割动画就是将动画分解为动画片段(Animation Clips)。

一个动画角色一般来说都会具有一系列的在不同情境下被触发的基本动作,比如行走、奔跑、跳跃、投掷、死亡、……等。这些基本动作都被称为动画片段。

根据具体需求,上述基本动作有两种处理方式:

方式1:导入按固定顺序播放各个基本动作的单一动画片段。

方式2:分别导入若干个独立的动画片段。这样在Unity内部就不再需要分割动画了。

下面分别解释这两只方式。

1、使用包含预先分割片段的动画模型

包含预先分割动画的模型是使用起来最容易的模型类型。

对于这种动画,你将在动画导入检视器 (Animation Importer Inspector) 中的Animations选项卡中看到一列可用片段,在预览窗口 (Preview Window,在检视器下方)中点击【播放 (Play)】,就可预览这些片段。如果需要,还可以编辑(调整)这些片段的帧范围。

2、使用包含未分割动画的模型

对于这种情况,使用动画前必须在Unity内部先将该单一动画片段分解为若干个子片段。具体做法是:导入FBX格式的模型后,在导入设置 (Import Settings) 中的分割动画 (Split Animations) 中告知 Unity 资源文件中的哪些帧构成了哪个动画片段 (Animation Clip)。在此处指定的名称用于在游戏中用来激活动画。

对于那些将片段作为连续动画来提供的模型,在动画导入检视器 (Animation Importer Inspector) 中的动画 (Animation) 选项卡中,可以定义符合独立动画序列(走路、跳跃等)的帧范围。按下 (+) 并选择包含在片段中的帧范围,即可创建一个新动画片段。

对于包含肌肉线条 (Mecanim) 的模型,分割动画的步骤如下:

(1)创建一个新的动画控制器 (New Animator Controller)

(2)打开动画控制器窗口 (Animator Controller Window)

(3)将需要的动画片段拖入动画控制器窗口 (Animator Controller Window)

(4)将模型资源拖入层次视图 (Hierarchy)。

(5)向资源动画器 (Animator) 组件添加动画控制器。

时间: 2024-07-30 08:43:07

【Unity】10.1 类人动画的导入和设置的相关文章

【Unity】10.4 类人动画角色的控制

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 导入角色网格和动画及设置 Avatar 之后,就可以准备开始在游戏中使用它们了.以下部分涵盖 Mecanim 提供的.用于控制及排序动画的主要功能. 二.循环动画片段 使用动画的一个常见操作是确保动画正确循环.例如,表示走路循环的动画片段以类似的姿势开始.结束非常重要(如开始时左脚在地面上,结束时右脚在地面上),这样才能确保不会出现脚滑动或奇怪的不稳定动作.Mecanim为解决此问题提供了方便的工具,让动画片段可基于

【Unity】10.3 创建类人动画角色

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 Mecanim 动画系统 (Mecanim Animation System) 特别适合使用类人骨架动画.由于类人骨架非常普遍并在游戏中广泛应用,因此Unity 针对类人动画专门提供了专业的工作流程和扩展工具集. 本节主要介绍为模型创建 Avatar 的基本步骤.包括: (1)创建Avatar. (2)配置Avatar. (3)肌肉设定. (4)动画重定位. (5)反向动力学. 1.什么是Avatar Mecanim

【Unity】10.2 通用动画的导入和设置

分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 使用类人动画时,Mecanim 的强大之处最明显.但是,尽管没有 Avatar 系统和其他功能,非类人动画也仍然受Mecanim的支持. 在 Mecanim 术语中,将非类人动画称为通用动画 (Generic Animations). 二.添加通用动画的基本步骤 要使用通用动画,转到 FBX 导入器装置 (Rig) 选项卡,然后从动画类型 (Animation Type) 菜单中选择"通用 (Generic)&quo

用3dMax给lol人物模型制作表情动画并导入Unity

参考链接:Blend Shapes / Morph Targets for Facial Animation (Autodesk 3ds Max) 今天逛Youtube的时候Get到了一个新技能:那就是给人物制作表情动画,感觉超简单! 制作Unity中可用的人物表情动画流程大致是:在3dMax中制作表情动画->导出成FBX文件->导入Unity 下面以制作微笑和眨眼睛的动画为例进行讲解 在3dMax中制作表情动画 首先导入人物模型,这里以亚索为例: 按住Shift,选择移动工具将当前选中的亚索

Unity游戏开发——自动为动画剪辑添加事件 之 最后几帧的事件不能被调用的问题

最近在做一个根据配置表自动生成动画剪辑clip以及controller的功能.做法是根据配置表配置的动作以及每个动作的关键帧,自动为每个clip添加事件.这样做可以把动画的事件处理在游戏运行之前就计算好然后存到动画文件.anim中,可以提高游戏的运行效率,如果做的再细点,还可以自定义动画事件的传入的参数.比如act游戏中的多段攻击,这些数据一定是配到表中的,我们可以把表中的数据导入成Unity的ScriptableObject类型,然后打成.asset文件,在把他指定给AnimationEven

从gif到unity sprite——批量转换gif、批量导入texture packer图集为sprite、批量生成sprite预制体

背景是我有几百个角色gif资源,每个都有:站立.攻击.技能攻击的gif,我想用此资源作2d unity游戏,因此第一关就是如何把gif转成unity动画 GIF 转 PNG -- http://blog.csdn.net/leinchu/article/details/24806433 ,不再赘述了. 之后是批量gif用tp打包,我用php写了一个脚本遍历目录,下的gif把他们重命名并每个角色建立一个文件夹,把它的所有动作的png序列移动到他自己的目录去,再用tp打包: 上php代码,因为我是分

这7类人千万不要吃螃蟹!你会吃蟹吗?

秋风起,蟹脚痒:菊花开,闻蟹来. 秋风送爽之时,正是蟹肥膏红之日.每年9.10月正是螃蟹黄多油满之时,所以有食家言“秋天以吃螃蟹为最隆重之事”. 不过,这螃蟹虽然美味,并非人人都宜食用.金陵掌上医生为你整理的这份“吃蟹宝典”务必要收好咯! 秋季吃螃蟹的3大好处 1.抗感染,促进伤口愈合 螃蟹中含有大量的蛋白质并且多半以优质蛋白为主,而这些优质蛋白质中还含有氨基酸,可增加淋巴细胞免疫力,促进伤口愈合.抗感染的功效.手术后或受伤人群可以适量多吃螃蟹. 2.解毒功效 精氨酸能参与体内能量代谢和解毒工作

10条没人告诉你的创意秘诀

艺术家 Austin Kleon 的著书<像艺术家一样去偷:10条没人告诉过你的创意要诀>篇幅不长,却给初出茅庐的艺术家们(有创意的那类)提供了许多有益的指导. 1. 像艺术家一样去偷 青涩的诗人会模仿:成熟的诗人会偷:蹩脚的诗人只会糟蹋拿来的东西有才的诗人则把它们改得更好,或者至少能有所创变. Austin 认为,创意的作品总是建立在先例的基础上,因此没有什么是绝对原创的.他建议我们把世界上所有的东西都看成值得偷和不值得偷的两种.要偷那些能让你(或者是你的事业)出类拔萃的东西.作者还补充说,

Unity3D游戏开发之动画模型导入

Unity3D游戏开发之动画模型导入 导入动画文件后,在工程(Porject)面板中选中,通过Inspector面板修改参数设置. 在项目视图中选中模型文件.如果想用旧版3.x的动画系统导入和编辑动画,请选择legacy选项.如果你有一个人性角色,比如,一个脑袋两条胳膊的两足动物,请选择Humanoid和'Create from this model',这样,一个完美匹配你角色骨骼关系的替身就可以被创建,或者你也可以选择其他预设好的替身. 如果你的角色不是人形物体,比如一个四足动物或者任何其它的