第1章 角色绑定概述 本章学习目标 1.学习角色绑定的相关理论知识 2.掌握Maya角色绑定合理标准 3.掌握角色绑定基础命令应用 本章首先介绍Maya软件及Maya软件应用领域,然后介绍角色绑定的概念、三维动画制作流程和绑定合理的标准,最后介绍角色绑定技术的相关基础知识及命令。 1.1 软 件 概 述 1.1.1 Maya软件介绍 Maya 2022简体中文正式版是一款世界顶级三维动画软件,由美国Autodesk公司出品。Maya功能完善,工作灵活,易学易用,制作效率极高,渲染真实感极强,是电影级别的高端制作软件。该软件曾获得过奥斯卡科学技术贡献奖。Maya 2022的界面如图1-1所示。 图1-1 图1-1 (续) Maya售价高昂,声名显赫,是制作者梦寐以求的制作工具。掌握了Maya,会极大地提高制作效率和品质,调节出仿真的角色动画,渲染出电影一般的真实效果,向世界顶级动画师迈进。Maya集成了Alias Wavefront 最先进的动画及数字效果技术。它不仅包括一般三维和视觉效果制作的功能,而且还结合了最先进的建模、数字化布料模拟、毛发渲染、运动匹配技术。Maya 可在 SGI IRIX 操作系统上运行。在目前市场上用来进行数字和三维制作的工具中,Maya 是首选解决方案。 1.1.2 Maya软件应用领域 Maya软件应用领域包括专业的影视广告、角色动画、电影特技等,如图1-2所示。很多三维设计者采用Maya软件,因为它可以提供完美的三维建模、游戏角色动画、电影特效和高效的渲染功能。Maya软件被广泛用于电影、电视、广告、网络游戏和电视游戏等数码特效创作。 图1-2 Maya也被广泛地应用到了平面设计(二维设计)领域。Maya软件的强大功能正是其被设计师、广告主、影视制片人、游戏开发者、视觉艺术设计专家、网站开发人员极为推崇的原因。Maya将他们的专业水准提升到了更高的层次。 1.2 绑 定 概 述 Maya作为一款世界级的三维动画制作软件,深受广大动画艺术家的青睐,但Maya的博大精深却给学习者带来困难,尤其是角色绑定动画(如图1-3所示),更是让许多学习者难以掌握。在三维动画制作流程中要想让角色动起来,首先就要对角色进行骨骼绑定设置,然后才能实现各种丰富的角色动画。下面就来帮助大家快速有效地掌握这门技术。学习角色骨骼绑定技术之前,首先需要了解绑定的概念,为什么要做绑定,什么样的绑定是合理的绑定,绑定环节涉及哪些知识领域,应该注意什么知识点,目标效果又如何,哪些是重要的,哪些是必要的,哪些是灵活的。作为动画师或者绑定师,无论哪个环节,都必须一步一个脚印地打好基础。本章将重点学习Maya角色绑定的基础知识,这是绑定的精髓。万丈高楼平地起,下面就从绑定基础知识开始学习。 图1-3 1.2.1 绑定的概念 绑定,在三维动画制作流程里又称为角色设置或者装备,英文为Rigging,我们通常说的骨骼设置也就是骨骼绑定。绑定即赋予角色动的能力,是为模型添加控制系统,使模型能够按照运动规律合理运动,方便动画师制作动画,如图1-4所示。 图1-4 动画片是由会动的画面串联起来的一种艺术表现形式,在二维动画世界里驱使角色运动的是动画师的画笔,通过线条的变化产生运动,如图1-5所示。而在三维动画世界里的三维模型如何从静态变成可以随意调节运动的动态模型呢?动画师们通过精心设计的控制系统来操控三维模型,制作出千姿百态的动作和表演。绑定工作指的就是角色整套骨骼控制系统的搭建过程,如图1-6所示。 图1-5 图1-6 角色绑定即给角色模型添加骨骼、设置IK(Inverse Kinematics,反向动力学)、添加驱动和控制器的过程。首先添加骨骼[骨骼本身自成一套控制系统,即FK(Forward Kinematics,正向动力学)系统],然后给骨骼必要的部分加上IK(它是另一套控制系统,即IK系统。IK系统的作用是通过控制某一关节上的IK来带动其他关节运动),然后添加控制器(一般使用EP曲线。控制器的作用是驱动IK和骨骼,调角色动画的时候不再改变骨骼和IK,而是只调节控制器),如图1-7所示。 图1-7 简言之,绑定的原理是控制器控制IK与骨骼,IK也能控制骨骼,而骨骼通过蒙皮最终控制模型。以下是游戏角色的A-POSE(A形姿势)、角色POSE(姿势)设定及角色骨骼绑定,如图1-8所示。 图1-8 1.2.2 绑定处于整个制作的什么环节 在三维动画的制作流程中,绑定环节基本属于三维动画流程的中期环节,绑定在建模和动画之间起到了桥梁的作用。它将静止的无生命的模型变成有动作的活生生的角色。我们的工作就是要根据角色的需要,通过我们所掌握的技术,提出符合角色动画需要的控制方案,以便动画师随心所欲地塑造角色的性格特征。虽然绑定环节并不需要对模型的所有环节进行操作,但是需要对动画的角色和场景道具进行必要的绑定,便于动画师进行动画的调节。通常,利用Maya软件制作一个游戏角色的项目流程相对简单。例如,动作冒险游戏Darksiders II(《暗黑血统2》)里的乌鸦教父(Crowfather)角色的制作流程可以概括为如图1-9所示。而标准的三维动画项目制作流程相对复杂一些,如图1-10所示。 图1-9 (续) 图1-9 (续) 图1-10 下面具体介绍三维动画项目的各个环节。 1. 文学剧本 文学剧本是动画片的基础,要求将文字表述视觉化,即剧本所描述的内容可以用画面来表现,而不具备视觉特点的描述(如抽象的心理描述等)是被禁止的。动画片的文学剧本形式多样,如神话、科幻、民间故事等,要求内容健康、积极向上、思路清晰、逻辑合理。 2. 分镜头剧本 分镜头剧本是把文字进一步视觉化的重要一步,是导演根据文学剧本进行的再创作,体现导演的创作设想和艺术风格。分镜头剧本的结构为图 画+文字,表达的内容包括镜头的类别和运动、构图和光影、运动方式和时间、音乐与音效等。每幅图画代表一个镜头,文字用于说明镜头长度、人物台词及动作等内容,如图1-11所示。 3. 人物设定 咕咙咙:龙族中的天才少年,8岁,能文能武,能说能讲,侠肝义胆,古道热肠,勤奋好学,好为人师。(草绿色) 咕哩哩:漂亮的粉红猴子,6岁女孩,美丽善良,精灵古怪。(粉红色) 咕噜噜:胖乎乎的小牛,7岁男孩,好奇心极强,热爱冒险,好胜不服输。(红色) 咕叽叽:傲慢耍酷的浣熊,8岁男孩,个性强,逆反心理重,善用求异思维,爱讲冷笑话。(棕色) 各人物如图1-12所示。 4. 造型设计 造型设计包括人物造型、动物造型、器物造型设计,设计内容包括角色的外形设计与动作设计。造型设计的要求比较严格,包括标准造型、转面图、结构图、比例图,如 图1-13所示。 图1-12 图1-13 5. 三维角色建模 根据二维的人物设定图稿,制作出相应的三维角色模型,如图1-14所示。 图1-14 6. 三维角色材质贴图 根据二维的人物设定图稿,绘制出角色的材质与贴图,如图1-15所示。 图1-15 7. 三维角色绑定 根据人体的骨骼结构,对角色创建骨骼系统,以便后期制作动画,如图1-16所示。 图1-16 8. 三维角色动画制作 用绑定好的角色模型和提供的二维分镜头制作角色动画,如图1-17所示。 图1-17 9. 后期合成 用已做好的角色动画和场景,渲染输出动画序列图片,利用AE软件进行特效合成制作,利用剪辑软件EDIUS进行影片剪辑和配音,最后输出视频影片,如图1-18所示。 图1-18 1.2.3 绑定合格的标准 绑定是赋予静止模型动的能力,动画师才是真正让角色动起来的人。绑定的要求其实相当高,由于它是中间环节,起到承上启下的作用,因此绑定环节首先对于模型环节是个检验,其次则要满足动画环节的需求。 具体来说,合格的绑定工作必须保证模型实现合理的运动方式和合理的变形效果。例如,人物角色动起来,如果身体的运动变化不符合生物解剖和运动规律,绑定肯定是不合格的。绑定还必须满足动画师们苛刻的要求,例如对于动作的简便性、灵活多变性都有各种各样的要求,一个完善的绑定可以应付多种多样的需求,也必定是一项复杂的工程。 我们所做的工作应该方便动画师制作动画。那么,符合运动规律应该是评判绑定是否合格的首要标准,此外,还要检查控制器、层级结构和蒙皮权重是否符合要求。 1. 运动规律 如果是角色类绑定,应符合角色动画原理;如果是机械类绑定,应符合机械原理;如果是生物绑定,应符合生长规律。总之,要让它们动起来后看上去真实可信,如图1-19所示。 图1-19 2. 控制器 控制器是驱动骨骼的一种装置,既对骨骼有保护作用,又可以对骨骼进行约束设置,方便动画师进行动画制作。创建控制器是最基础的绑定操作。为方便动画师创建动画,绑定人员要为被绑定的物体添加控制器。绑定过程中,通常用曲线和虚拟物体作为控制器,其中曲线相对于虚拟物体在形状上更容易控制,因此控制器创建通常以曲线为主。控制器如图1-20所示。通常需要进行如下设置: 控制器能够正确控制物体运动。 控制器与被控制器的轴向保持一致。 控制器创建好后需要冻结变换,属性清零,清除物体历史记录。 保留控制器需要用于为动画设置关键帧的属性,锁定并隐藏无用的属性。 图1-20 3. 层级结构 文件场景中出现的所有物体都要进行规范命名,尤其是骨骼和控制器,如图1-21所示。 图1-21 4. 蒙皮权重 蒙皮权重过渡均匀、细致,角色关节位置权重符合生理特征,如图1-22所示。 图1-22 1.2.4 绑定涉及的知识领域 绑定是CG领域比较难的模块,要求也比较多。绑定不仅要满足动画师的需求,更重要的是,绑定师要对角色的运动力学和解剖结构非常了解,通过技术手段实现合理的变形。所以,很多绑定师最后都成为了TD(技术支持)或R&D(研发)。在欧美的很多工作室中,绑定技术也属于核心资产,非常重要,一般不会外泄。 角色绑定作为一种对逻辑思维要求很高的工作,非常适合擅长钻研技术问题的人从事。绑定工作涉及运动解剖学、机械结构、物理力学、数学、计算机编程等领域,如图1-23所示。因为我们可能会和任何物体打交道,所以可能需要研究很多未知的领域,但是最重要的一点是,需要具备对结构和运动特征的理解概括能力,这是一名绑定工作从业者的基本素质。 图1-23 1.2.5 Maya软件绑定环节的工具概况 由于每个三维动画软件都有其自身的绑定模块和众多工具,这里针对Maya软件介绍一下绑定环节的工具概况。 从Maya 2016版本开始,将绑定从动画模块分离出来,作为独立的绑定模块。Maya软件的绑定模块菜单主要有5个,分别是骨架、蒙皮、变形、约束、控制,如图1-24所示。由此足见绑定环节的复杂性和重要性。人们往往还会根据项目实际需要开发一些工具菜单来满足更多的特殊需求。 图1-24 1.3 角色绑定基础 在学习角色绑定之前,先来学习角色绑定将要用到的绑定基础概念及命令:组的概念、父子关系、大纲视图、骨骼系统、FK与IK、约束系统、蒙皮系统、变形器系统。 1.3.1 组的概念 组是一些物体的集合,其作用主要有两方面:一是整理数据以方便数据管理,二是物体分组后,可以使用组来控制组内的物体。 分组命令的菜单位置:“编辑”菜单下的“分组”命令。创建分组的快捷键是Ctrl+G,如图1-25所示。 物体分组后,移动分组时分组中的物体会随之移动,但是只有分组的变换节点数值发生变化,分组内物体的变换节点的数值不发生变化。 在绑定的过程中,有时候会用到空组的概念。所谓空组,就是在不选择任何物体的情况下创建的分组。其实分组的物体都是作为一个空组的子物体存在的,执行“创建”菜单中的“空组”命令即可创建空组。如果已经创建的组不再需要了,可以将组进行解组:在大纲视图中选择需要分解的组,执行“编辑”菜单下的“解组”命令即可。 1.3.2 父子关系 父子关系这个命令很形象,其作用就是在选择的对象之间创建父子关系。父子关系创建以后,所有的子物体跟随父物体变换(如移动、旋转、缩放),也就是一种控制与被控制的关系(两个物体形成父子关系后,父物体发生空间上的变化时,子物体也会随着变化)。 创建父子关系时,无论有多少对象,最后选择的对象均为父物体。一个物体可以有多个子物体,但是子物体只能有一个父物体。创建了父子关系后,选择父物体时,会将父物体层级下的子物体一并选中。 父子关系可以通过下面这个例子理解:小红帽拎着一篮水果去看望她的奶奶,这时小红帽就是父物体,篮子和水果就是子物体。小红帽从自己家里走到她奶奶家里,篮子和水果也同时被带到了她奶奶家里。小红帽相对于她的上一个层级—地球来说,发生了位移,而篮子里的水果相对于它的上一个层级—小红帽,没有发生位移,相对地球则发生了位移,如图1-26所示。 图1-26 通过上面的例子可知,子物体跟随父物体变换,父物体本身的属性(如移动、旋转、缩放)发生了变化,在通道栏中的属性也有了数值。而子物体相对于父物体没有发生变换,只是跟随父物体,所以子物体本身的属性没有发生变化。 在绑定中,父子关系的应用非常频繁。父子关系的操作简单,而且父子关系创建后,子物体既可以跟随父物体变换,也可以随意变换,这就为很多绑定动画问题提供了解决的方法。 父子关系在菜单中的位置为“编辑”菜单中的“父子关系”命令。父子关系的属性窗口,如图1-27所示。 图1-27 【参数说明】 “父子关系方法”有如下两种方式。 (1)移动对象:如果要父化的子对象是一个群组或者某个父物体的子物体,单击选中移动对象、重新父化时,子对象将从原群组或者原父物体中移出来,作为新的父物体的子物体。 (2)添加实例:如果要父化的子对象就是一个群组或者某一个父物体的子物体,单击选中添加实例项、重新父化时,原来的子对象仍为原群组或者原父物体的子物体,但Maya会创建子物体替代物体,作为新的父物体的子物体。 保持位置选项:勾选该选项后,创建父子关系时,Maya会保持这些对象的变换矩阵和位置不变。该选项默认是选中的。 提示 (1)组和父子关系的区别。 成组后的物体,组的坐标在世界坐标中心,而父子关系的物体坐标就是父物体的坐标。 (2)组和父子关系的继承问题。 当子层级物体从父层级脱离出来,会继承父层级的变换节点的信息。 1.3.3 大纲视图 大纲视图会列出场景中所有类型对象的名称和层级关系,相当于Windows中的资源管理器。可以对大纲视图中的对象进行创建父子关系、群组等操作。大纲视图中列出的对象都有相应的图标,图标后面是对象的名称,在名称上双击可以重新修改对象的名称。在绑定中通常使用大纲视图进行物体的选择、查看、整理层级、为对象命名等操作。执行“窗口”菜单中的“大纲视图”命令就可以打开“大纲视图”窗口。也可以单击Maya左侧栏中的图标打开“大纲视图”窗口,如图1-28所示。 图1-28 1.3.4 骨骼系统 Maya提供的骨骼系统如图1-29所示,类似人体的骨骼。可以通过骨骼对表层的模型(可以看成人的皮肤)进行控制,通过旋转骨骼来改变模型的形状。 骨骼能使用户创建层级式的关节变形效果。在“骨架”菜单中,用户可以创建骨骼设置的各种命令。骨骼是绑定操作中需具备的最基础的知识,本节将介绍骨骼的创建、编辑、控制的主要命令及使用方法。 1. 什么是骨架 骨架是分层级的有关节的结构,用于绑定模型的姿势和对绑定模型设置动画。骨架提供了一个可变形关节,其基础结构与人类骨架提供给人体的基础结构相同,如图1-30所示。 图1-30 骨架是用来为角色设置动画的基础关节和骨骼层级。每个骨架都有若干父关节和子关节以及一个根关节。骨架层级中的父关节是指下面有其他关节的关节。例如,肘部是腕部的父关节,同时又是肩部的子关节。根关节是骨架层级中的第一个或最上面的关节。 2. 骨骼的基本属性 要进行绑定操作,第一步就是创建骨骼。骨骼不仅可以用于控制人物、动物的肢体动作,还可以控制机械物体、链条、绳子等。要创建骨骼,需要在F3绑定模块的面板当中选取“骨架”菜单下的“创建关节”命令。 在创建骨骼之前,我们先分析一下骨骼的属性。单击关节工具后面的方块进入骨骼的属性。骨骼是有方向性的,和两个方向是常用的。以默认方式自由度XYZ方式创建,X轴指向关节延伸的方向,Y轴和Z轴其实没什么意义;而勾选“确定关节方向为世界方向:”复选框则表示关节方向是和世界坐标轴一致的。 3. 创建骨骼 建立骨骼是使用关节和骨头搭建层次关联结构的过程。一旦建立了骨骼,便可使用平滑蒙皮为角色建立蒙皮。用户可以组合或者使物体成为关节和骨骼的子物体,并使用骨骼来控制物体的运动,如图1-31所示。 图1-31 4. 关节和骨头 关节是骨骼中骨头之间的连接点。关节可带动骨头的移动、旋转和缩放。建立的第一个关节叫作根关节,下一级关节是根关节的子关节。 提示 在创建对称的肢体链骨骼时,要在场景坐标的原点开始创建,这样便于创建带有对称部分的骨骼。 5. 关节链 关节链是一系列关节及连接在关节上的骨头的组合。它的层级是单一的。关节链中的关节是线性连接的。关节链的“开始”关节是整个关节链中层级最高的关节,此关节是关节链的父关节。 当为角色创建关节链时,应考虑将如何使用 IK 手柄去定位关节链。可使用IK手柄定位少量的关节链,如图1-32所示。 图1-32 当创建关节链时,应避免让关节链在一条直线上。使用IK手柄在适当的角度稍微旋转关节就可以很容易地定位关节。 6. 肢体链 肢体链是一个或多个相连接的关节链的组合。肢体是一种树状结构,其中的骨关节并不是线,如图1-33所示。 图1-33 在创建带有对称性肢体链的骨骼时,要在场景的全局坐标原点开始创建(工作空间的中部),因为这样便于创建带有对称部分的骨骼。 7. 骨骼层级 根关节是骨骼中层级最高的关节。骨骼中只能有一个根关节。 父关节可以是骨骼中任意的关节,只要其下有可以被其影响的关节即可。被给出的位于父关节之下的关节称为子关节,如图1-34所示。 图1-34 对于骨骼,不能局限于对它外观上的认识,本质上讲,骨骼上的关节其实定义了一个空间位置,而骨骼就是这一系列空间位置以层级的方式形成的一种特殊关系。可以将连接关节的骨头看作这种关系的外在表现,粗的一端指明了上一级,细的一端指明了下一级,下一级的关节与上一级关节的变换具有继承关系。 8. Create Joints(创建关节) 在使用该工具时,还可以进行进一步的设置。单击Create Joints右侧的小方块,调出设置对话框,设置Tool Defaults标签下的 Joint Options(关节选项)之下的Degrees of Freedom(自由度),指定所设置的关节在使用IK时可以绕哪个骨节点坐标轴旋转(X、Y或Z)。系统默认值设置为三个坐标轴的旋转。 例如,不勾选Y轴,那么IK就不能控制Y轴的旋转。也可从通道面板中对相应的轴进行锁定来实现同样的功能。 1)Auto Joint Direction(自动骨节点方向) 设置骨节点坐标轴的方向。选项包括:none、xyz、yzx、zxy、xzy、yxz、zyx。 选择none创建骨节点坐标轴的方向和世界坐标轴的方向一致。 其余选项按照第一个坐标轴指向骨骼内部。也就是说,骨节点的第一个坐标轴指向它的子关节。 提示 如果有多个子关节,那么第一个坐标轴指向第一个被创建的子关节的骨节点。 2)Scale Compensate(缩放补偿) 当缩放骨骼父关节时,如果勾选Scale Compensate选项,那么子关节不受父关节的缩放影响;取消勾选该选项,子关节将受父关节的缩放影响。 3)Auto Joint Limits(自动关节限定) 该工具在创建时自动限制关节的旋转角度(–360°~360°)。 4)Create IK Handle(创建IK手柄) 当创建骨关节或关节链时,IK手柄即被创建。选择此命令会显示IK Handle Options。此选项和Animation模块下Skeleton_IK Handle Tool→Tool Settings命令的功能一致。关于这项功能详见IK Handle Tool(IK 手柄工具)。 在Joint Options 下方,单击Reset Tool可以回到默认状态。 5)Joint Size(调整骨骼尺寸) 可以调整骨骼和关节的显示尺寸,放大或缩小骨骼和关节的显示尺寸,以便更容易地进行选择和编辑。 (1)在菜单选项中列出百分比参数,这些参数可以用来调整骨骼的显示尺寸。 (2)选择Display(显示)菜单中的Joint Size Custom (自定义骨骼大小)命令,可以用滑块来调整为任意的百分比。 完成骨骼的创建之后,如需进一步编辑,还可以使用Maya提供的一些方便的工具。 9. Insert Joints(插入关节) 如果所建立骨骼中的关节数不够或者需要增加骨骼,可以在任意层级的关节下插入关节。 提示 插入关节应在添加IK手柄和蒙皮之前完成。如果插入带有IK手柄的关节就要重做IK手柄。 (1)选择Skeleton(骨架)菜单下的Insert Joints命令。 (2)单击选择要插入关节的父关节。 (3)按住鼠标左键,拖动指针到要添加关节的地方。 (4)插入关节以后,按Enter(回车)完成插入。也可以选择其他工具。 10. Remove Joints(移除关节) 除根关节外,使用该工具可以移除任何一个关节。 (1)选择要移除的关节(注意:一次只能移除一个关节)。 (2)选择Skeleton(骨架)菜单下的Remove Joints命令。 移除当前关节后不影响它的父关节和子关节的位置。 11. Disconnect Joint(断开关节) 可以断开除根关节外的任何关节和关节链,将一段骨骼分为两段骨骼。 (1) 选择要断开的关节。 (2) 选择Skeleton(骨架)菜单下的Disconnect Joint命令。 提示 如果断开带有IK手柄的关节链,那么IK手柄将被删除。 12. Connect Joint(连接关节) 通过连接关节或骨骼链连接关节来组合成一个骨骼。 选择Skeleton_Connect Joint命令,打开Connect Joint Options视窗。在Mode(模式)下进行以下操作。 1)当选中Connect Joint(连接关节)模式时 (1)单击要成为其他骨骼肢体链的一个关节的根关节B。 (2)按住Shift键,在另一个骨骼中选择根关节以外的任何一个关节A。 (3)选择Skeleton(骨架)菜单下的Connect Joint命令,打开Connect Joint Options 视窗。 (4)选择根关节B,按Shift加选关节A,执行连接关节命令。 (5)在“连接关节选项”里选择“连接关节”模式,根关节B会自动连接到关节A位置处,得到C的连接效果,如图1-35所示。 图1-35 2)当选中Parent Joint(将关节设为父子关系连接)模式时 (1)单击要成为其他骨骼肢体链的一个关节的根关节B。 (2)在另一个关节链中,选择父关节或根关节以外的任何一个关节A。 (3)选择Skeleton(骨架)菜单下的Connect Joint命令,打开“连接关节选项”视窗。 (4)选择“将关节设为父子关系”模式,单击“连接”按钮。 (5)在“将关节设为父子关系”模式下,被结合关节与结合关节之间会自动产生一块新的骨骼,骨节点的位置相对不变,得到C的效果,如图1-36所示。 图1-36 13. Mirror Joints(镜像关节) 该工具用于镜像复制肢体骨骼。镜像复制的前提是所制作的骨骼是对称的形态。镜像时,关节、关节属性、IK手柄(IK Handle)等都会进行镜像复制。 为一个角色创建骨骼时,镜像是非常有用的。例如,先创建角色的左手和左臂,然后通过镜像来得到右手和右臂。 (1)Mirror across(镜像平面)选择镜像时的参考平面。 (2)选择Mirror function(镜像功能)的Orientation(方向)选项,关节的自身坐标轴同时也被镜像;若选择Behavior(行为)选项,则只对选择的关节链的位置进行镜像,不考虑关节的自身坐标轴。 (3)单击Mirror或Apply按钮完成镜像。 14. Reroot Skeleton(重新设置根关节) 该工具通过将所选择的骨节点设置成根关节,来改变骨骼的层级关系。 (1)选择要重设的关节。 (2)调用Skeleton(骨架)菜单中的Reroot Skeleton命令。 15. Set Preferred Angle(设置优先角度) 设置优先角度可保证在 IK 定位和动画的过程中更加平滑地运动。 在骨骼中,每个关节的优先角度表明了在IK 定位的过程中优先旋转的角度。例如,当创建一条腿时,应该创建关节,并且使它们在一条直线上,但在膝关节处应该有一个轻微弯曲。这个弯曲将是IK 手柄定位关节的优先角度。 建立了骨骼后,准备添加IK 手柄时,要为骨骼设置优先角度。即使某些关节已经旋转,也可以命令骨骼采用它的优先角度,进而查看优先角度。 (1)先在关节处旋转出一个角度,选择骨骼链的根节点。 (2)选择Skeleton(骨架)菜单中的Set Preferred Angle命令。 (3)将骨骼还原成原始状态。现在IK就已经通过优先角度的设置知道了解算的方向。 1.3.5 FK与IK 设置骨骼运动的术语称为动力学,角色动画中的骨骼运动遵循动力学原理。定位和动画骨骼包括两种类型的动力学:正向动力学(FK)和反向动力学(IK)。 1. FK FK也称前向动力学运动方式,即由父层级关节的旋转带动子层级关节的位移。以篮球运动员在运动中手握住球的动作为例,如图1-37所示。 FK是指完全遵循父子关系的层级,用父层级带动子层级的运动。 图1-37 FK的优点是:计算简单,运算速度快。缺点是:需要指定每个关节的角度和位置,而由于骨骼的各节点之间有内在的关联性,直接指定各关节的值很容易产生不自然或不协调的动作。 2. IK IK即反向动力学,利用IK控制骨骼运动就是通过定位下层骨骼的位置,由下而上影响上层骨骼。 IK的运动方式是由子层级关节的位移带动父层级关节的位移。以篮球运动员运动中的甩臂投球动作为例,如图1-38所示。 图1-38 与前向动力学正好相反,反向动力学依据某些子关节的最终位置、角度来反推,求出整个骨骼的形态。它的优点是工作效率高,大幅减少了需要手动控制的关节数目;缺点是求解方程组需要耗费较多的计算机资源,在关节数增多的时候尤其明显。由于是通过末端关节位置反推得到整个骨骼形态,因此在完成从上向下发力的动作时,会产生非常奇怪的动态效果。 3. 线性IK 线性IK(IK Spline Handle)即IK样条线控制柄工具,它不是通过某个控制柄对骨骼链产生影响,而是生成一条样条线,通过调整曲线形状来影响骨骼,因此也常将IK样条线控制柄简称为“线性IK”。通常可以通过修改样条线的曲线点对线性IK产生影响。 IK样条线控制柄工具与IK控制柄工具同样都是使用反向动力学控制骨骼。不同的是,IK控制柄工具一般是对两节骨骼产生作用,例如对手臂、腿,都能有效地进行控制。但当骨关节数较多时,IK控制柄工具就只能对某个方向的弯曲进行控制,可控性比较差,不能满足尾巴、脊椎、链条等长链骨骼的控制要求。恐龙尾巴的绑定就需要用IK样条线控制柄工具进行控制,如图1-39所示。 反向动力学需要与正向动力学互相补充,才能更好更快速地实现各种动画效果。下面介绍的IK控制柄工具和IK样条线控制柄工具都属于反向动力学的范畴。 图1-39 4. 了解IK手柄 IK手柄是将反向动力学运用在骨骼上并且让角色做关节运动的工具。 Start Joint(开始关节)是IK手柄的起始位置。它可以是骨骼和根关节中任何一个层级以上的骨关节。 End Joint(结束关节)是IK手柄控制骨骼链和关节链的最后关节。它必须是骨骼中开始关节层级以下的骨关节。 5. 末端效应器 根据系统的默认设置,末端效应器不显示,它位于结束关节的坐标轴上。如果需要,可以使末端效应器偏离结束关节的位置。 在Outliner(大纲视图)或Hypergraph(超图节点编辑器)中可以选择末端效应器。在Outliner里选择,需要打开到结束关节才能选择到。在Hypergraph中选择会容易一些。 (1)在菜单栏里选择Window(窗口)菜单中的Hypergraph(超图节点编辑器)命令。 (2)在键盘上,按Insert(插入)键看到移动图标。 6. 创建和设置IK手柄 在Maya里的Rigging(绑定)模块下,选择Skeleton(骨架)菜单中的Create IK Handle命令;显示Tool Settings(工具设置);在Tool Defaults 标签下,设置IK Handle Option(IK手柄选项)。 IK Handle Option设置选项如下。 1)Current Solver(当前解算器) 当前解算器的类型中包括ikRPSolver和ikSCSolver。 选择ikSCSolver解算器将会创建一个IK单链手柄,它可以控制骨骼的整体位置和旋转。 选择ikRPSolver解算器将会创建一个IK旋转手柄,它可以控制骨骼的整体位置和旋转。 系统默认选项为ikRPSolver解算器。 2)Autopriority(自动优先权) 在Maya中,IK手柄开始关节在骨骼层级中的位置设置IK手柄的优先权。默认设置为关闭状态。 3)Solver Enable(解算器功能) 该功能在创建IK解算器时打开。默认设置为打开。 4)Snap Enable(捕捉功能) 该功能将IK手柄捕捉到IK手柄的末端效应器。默认设置为打开。 5)Sticky(粘贴) 使用其他手柄定位骨骼或直接变换、旋转、缩放关节时,IK手柄将粘贴到它的当前位置和方向。默认设置为关闭。 6)Priority(优先权) Priority用来设置IK单链手柄的优先权。 7)POWeight(权重) POWeight用于设置位置和方向的权重。 单击Reset Tool,回到默认状态。 7. 创建IK单链手柄 (1) 选择Skeleton(骨架)菜单中的Create IK Handle命令。设置IK Handle Option下的Current Solver为ikSCSolver。 (2)在场景里,单击要创建IK单链手柄的开始关节。 (3)在结束关节上单击,完成手柄的创建。 8. 介绍IK样条手柄 IK样条手柄用来表现尾巴、脖子、脊骨、鞭子、蛇、胡须和触角等物体。 1)创建IK样条手柄 (1)创建关节链。 (2)选择Skeleton(骨架)菜单下的Create IK Spline Handle(创建IK样条手柄)命令。 (3)选择关节链的始关节,再选择关节链的终关节。 2)利用自定义曲线创建IK样条手柄 IK样条手柄创建在骨骼链上,会自动创建一条曲线,如图1-40所示。 (1)利用建模工具中的曲线工具创建一条曲线。 (2)创建关节链。 (3)选择Skeleton(骨架)菜单下的Create IK Spline Handle(创建IK样条手柄)命令。 (4)在Tool Settings视窗中,关闭Auto Create Curve选项。 (5)选择关节链的始关节。 (6)选择关节链的终关节。 (7)选择曲线。 3)扭曲和滚动关节链 (1)选择IK样条手柄。 (2)选择Modify(修改)菜单中的Transformation Tools_ Show Manipulator Tools命令;也可以按T键。分别在开始关节和结束关节处显示圆形控制手柄。 (3)利用圆形控制手柄可对骨骼链进行滚动调节。 (4)可以对圆形控制手柄设置关键帧。 4)沿曲线滑动关节链 (1)选择IK样条手柄。 (2)选择Modify(修改)菜单中的Transformation Tools_ Show Manipulator Tools命令,或按T键。 (3)在场景中显示位移控制器。 (4)拖动位移控制器,沿曲线滑动关节。 5)IK样条手柄前设置选项 在Maya里的Rigging(绑定)模块下,选择Skeleton(骨架)菜单中的Create IK Spline Handle命令;显示Tool Settings;在Tool Defaults 标签下,设置IK Spline Handle Option(IK样条手柄选项)。 (1)Root On Curve。 如果此项被打开,IK样条手柄选项的开始关节便被限制到曲线上。拖动位移控制器沿曲线滑动开始关节。 如果此项关闭,移动开始关节离开曲线,便不会再被限制到曲线。 (2)Auto Create Root Axis。 自动创建开始关节的根变换点,利用此点移动和旋转关节。当Root On Curve选项关闭时,可以打开Auto Create Root Axis。 (3)Auto Parent Curve。 假如开始关节有父物体,此选项将曲线作为父物体的子物体,因此曲线和关节将随父物体一起移动。 (4)Snap Curve To Root。 创建手柄自己的曲线,此选项会影响手柄。 (5)Auto Create Curve。 此选项创建IK样条手柄需要用的曲线。 (6)Auto Simplify Curve。 此选项自动以指定的Number of Spans(跨度数)创建曲线。 (7)Number of Spans。 此选项设置曲线中CV的数目。 (8)Root Twist Mode。 此选项将Power Animator IK样条曲线打开。当用户在结束关节进行转动操作时,开始关节和其他关节有轻微的扭曲。 (9)Twist Type。 扭曲的类型包括Linear(线性均衡地扭曲所有的部分)、Ease In(在终点减弱内向扭曲)、Ease Out(在起点减弱外向扭曲)、Ease In Out(在中间减弱外向扭曲)。 1.3.6 约束系统 约束可将某个对象的位置、方向或比例限制到其他对象。另外,利用约束可以在对象上施加特定限制并使动画自动进行。 约束是通过某些数学方式或者逻辑方式,对物体的动画产生的一种控制或者形成的某种规则。通俗地讲就是用一个物体限制另一个物体的运动。这样解释有些抽象。举一个简单的例子:如果要快速设置一个雪橇从崎岖小山上滑下的动画,那么首先可能要使用几何体约束将雪橇约束到曲面;然后,可使用法线约束将雪橇平置于曲面上;创建这些约束后,在山顶和山脚为雪橇的位置设置关键帧,动画就完成了。Maya提供了很多种约束效果,如点约束(控制位移属性)、方向约束(控制旋转属性)、缩放约束(控制缩放属性)、父对象约束(既控制位移属性又控制旋转属性)等,还有一些特殊的约束,如目标约束、法线约束、极向量约束等。 约束在制作角色绑定时十分必要,因为有些效果通过约束完成要比手动设置关键帧方便有效得多。约束可以辅助我们创建一些有特殊要求的动画。 在角色动画制作中,Maya主要提供了9种类型的约束,可以在绑定模块下的约束(Constrain)菜单中调用这些约束工具,如 图1-41所示。 1. 父子约束 创建父子(Parent)约束时,先选择控制器或物体,再选择被约束物体,然后选择约束菜单下的父子约束命令。父子约束主要实现对被约束物体的位移和旋转属性的控制。 2. 点约束 创建点(Point)约束时,先选择一个或多个目标物体,再选择被约束物体,然后选择约束菜单下的点约束(Point)命令。被约束物体会自动移动到目标物体的轴心点上,如果存在多个目标物体,则依照目标物体对被约束物体的控制权重来决定被约束物体的位置。 点约束主要实现对被约束物体的位置控制,对被约束物体的方向没有影响。 3. 方向约束 方向(Orient)约束可以使一个或几个物体控制被约束物体的方向,被约束物体只是跟随目标物体的转动而转动,自身的位置不受影响。当存在多个目标物体时,被约束物体的方向按目标物体所施加的影响力取它们的平均值。 创建方向约束时,先选择目标物体和被约束物体,选择约束菜单下的方向(Orient)约束。 4. 比例约束 比例(Scale)约束使被约束物体的缩放跟随目标物体的缩放。当要使多个物体进行相同方式或比例的缩放时,可以利用比例约束来简化操作。另外,对于特殊的动画需求,比例约束也能提供一种良好的解决方案。 创建比例约束时,先选择目标物体和被约束物体,再选择约束菜单下的比例约束命令。 5. 目标约束 目标约束能约束物体的方向,使被约束物体总是瞄准目标物体(如舞台灯光或跟踪摄影机等对于目标的跟随),在角色设定中的主要用途是作为眼球运动的定位器。 要创建目标(Aim)约束时,应先选择一个或多个目标物体,再同时选择被约束物体,选择约束菜单下的目标约束命令。 被约束物体方向的确定是由两个向量来控制的,分别是目标向量(Aim Vector)和向上向量(Up Vector)。在创建目标约束时,应从目标约束选项中进行设定,设定时要注意物体的轴向。 6. 极向量约束 极向量(Pole Vector)约束使得极向量终点跟随目标物体移动。在角色设定中,胳膊关节链的IK旋转平面手柄的极向量经常被限制在角色后面的定位器上。在一般情况下,运用极向量约束是为了在操纵IK旋转平面手柄时避免意外的反转。当手柄向量接近极向量或与之相交时,会出现反转,使用极向量约束可以让两者之间不相交。 创建极向量约束时,选择一个或多个目标物体(一般是简单几何形或定位器)以及所要约束的IK旋转平面手柄,然后选择约束菜单下的极向量约束命令。 7. 几何体约束 几何体(Geometry)约束可以将物体限制到NURBS表面、NURBS曲线或多边形表面上,被约束物体的位置由一个或多个目标物体的最近表面位置驱动。 创建几何体约束时,应先选择目标物体和被约束物体,再选择约束菜单下的几何体约束命令。 8. 法线约束 法线(Normal)约束可约束对象的方向,以使其与 NURBS 曲面或多边形面(网格)的法线向量对齐。当对象在具有唯一、复杂形状的曲面上移动时,法线约束很有用。如果没有法线约束,在曲面上移动对象或设置其动画可能会很乏味且耗时。例如,要让一滴眼泪沿角色的脸落下,可以将眼泪约束到脸的曲面上,而不是直接设置眼泪的动画。制作滑雪的场景、物体在水面漂浮的场景等,都可以考虑使用法线约束。 创建法线约束时,应先选择目标物体和被约束物体,再选择约束菜单下的法线约束命令。 通常情况下,法线约束和几何体约束是搭配使用的,由几何体约束控制物体在表面上的位置,由法线约束控制物体在表面上的方向。 9. 切线约束 切线(Tangent)约束可约束对象的方向,以使某个对象沿曲线移动时始终指向曲线的方向。曲线提供对象运动的路径,对象会调整自身的方向以指向曲线。切线约束用于使对象跟随曲线的方向,例如过山车会跟随轨迹的方向。又如,在制作汽车的轮胎沿曲线转弯的效果时可以利用切线约束来表现合理的运动。 切线约束也经常和几何体约束一起搭配使用。 创建切线约束时,先选择目标曲线和被约束物体,再选择约束菜单下的切线约束命令。 注意,物体沿曲线运动时,X轴的方向始终同曲线的切线方向相同。 1.3.7 蒙皮系统 1. 蒙皮 在创建完角色模型后,需要为角色添加骨骼绑定,但是由于模型和关节是两个独立的个体,为了使两者之间能够相互关联并产生合理化运动,则需要对角色模型执行蒙皮命令。通过将模型绑定到骨骼,可对模型设置蒙皮,如图1-42所示。可通过各种蒙皮方法将模型绑定到骨骼,例如使用间接蒙皮方法,即将晶格或包裹变形器与平滑蒙皮结合使用。蒙皮是使骨骼与模型产生控制与被控制关系的命令。 图1-42 1)将模型绑定到骨骼上 完整的骨骼系统创建完成后,下一步就是用这套骨骼系统控制模型,从而实现模型的运动。为了实现这一目的,需要在骨骼与模型之间建立起联系并对模型进行精确控制,这正是蒙皮系统(蒙皮与权重)需要解决的问题。将模型通过蒙皮绑定到已完成的骨骼系统上,也就是使模型上的点和骨骼上的关节之间产生联系,这样就产生了由控制点组成的皮肤簇。作为皮肤的模型是通过三种关系同骨骼联系在一起的。 (1)继承关系。 对于刚性的机械结构,如轴接类的角色或者不需要变形的生物表面,以及通过一个关节就可以进行控制的部分,可以通过父子级关系,将模型的各部分直接指定给相应的关节成为子物体;通过父子级之间变换继承的关系,将关节的变化转变成模型的变化。 (2)间接绑定。 对于表面不易控制的物体,或为了精减控制点的数量,可以采用间接绑定的方式将模型和骨骼相联系。 间接绑定包括晶格蒙皮和包裹蒙皮。 ①晶格蒙皮。先用晶格变形器控制模型的表面,然后将晶格绑定到骨骼,从而实现骨骼对模型的间接控制。 ②包裹蒙皮。利用包裹变形对模型进行控制,例如将低分辨率物体作为包裹体来控制高分辨率的模型,再将包裹体绑定到骨骼,从而达到精简控制点的目的。 (3)直接蒙皮。 直接蒙皮是通过平滑蒙皮和刚体蒙皮直接将模型和骨骼相联系的方式。 (4)平滑蒙皮。 平滑蒙皮通过创建交叠的簇来控制关节处的点,交叠点的权重取决于哪个关节施加的影响更大。通过编辑权重可以控制各关节对于交叠点的影响力,从而使得关节处的变形达到设想。 2)蒙皮方式 角色创建骨骼,并为骨骼添加控制器,使之成为一套完整的骨骼控制系统。创建骨骼是为了用骨骼控制模型,使角色动起来。现实中的人体,骨骼外面包裹着脂肪和肌肉,身体的表层才是皮肤。在Maya中,模型相当于人体的皮肤,而骨骼与皮肤之间是空的,没有任何介质。为此,Maya设置了蒙皮的方式,将骨骼和模型联系起来,使骨骼能够控制模型。 Maya软件中的蒙皮方式有两种:绑定蒙皮和交互式绑定蒙皮,如图1-43所示。 (1)绑定蒙皮。 对角色蒙皮通常使用绑定蒙皮,这样得到的效果会比较平滑,而且便于编辑权重。 (2)交互式绑定蒙皮。 这是Maya 2013版本升级后新增加的一项蒙皮方式。 打开“交互式绑定蒙皮”(Interactive Skin Bind Options)窗口,有以下选项可供选择。 ①关节层级(Joint Hierarchy) 该选项下,选定的可变形对象将被绑定到从根关节到以下骨骼层次的整个骨骼,即使选择的是某些关节而不是根关节。绑定整个关节层次是绑定角色蒙皮的常用方法,这是默认设置。 ②选定关节(Selected Joints) 该选项下,选定的可变形对象将仅被绑定到选定关节,而不是整个骨骼。 ③对象层级(Object Hierarchy) 该选项下,选定的可变形几何体将被绑定到选定关节或非关节变换节点的整个层级,从顶部节点到整个节点层级。如果节点层级中存在任何关节,它们也会被包含在绑定中。通过该选项,可以将完整的几何体绑定片到节点,如组或定位器。 提示 当选择“对象层级”选项时,可以仅选择无法蒙皮的关节或对象(如组节点或定位器,而不是几何体片)作为绑定中的初始影响。 ④在层次中最近(Closest In Hierarchy) 该选项下,指定关节的影响是基于骨架层级的,这是默认设置。 在角色设置中,此方法可以防止不恰当的关节影响。例如,该方法可避免右大腿关节影响左大腿上的邻近蒙皮点。 ⑤最近距离(Closest Distance) 该选项下,指定关节的影响仅基于与蒙皮点的近似。当绑定蒙皮时,Maya 会忽略骨架层次。 在角色设置中,该方法可能会导致不恰当的关节影响,如右大腿关节影响左大腿上的邻近蒙皮点。 ⑥热量贴图(Heat Map) 该选项下,使用热量扩散技术分发影响权重。基于网格中的每个影响对象设定初始权重,将该网格用作热量源,并向周边网格发射权重值。较高(较热)权重值最接近关节,向远离对象的方向移动时会降为较低(较冷)的值。 如图1-44所示,比较了使用三种不同绑定方法指定给角色左臂关节的默认权重。 最近距离 在层次中最近 热量贴图 图1-44 ⑦包括方法(Include Method) 该选项用于确定如何将顶点包含在初始交互式绑定操纵器内。可从下列选项中选择。 最近体积(Closest Volume):基于网格体积创建初始操纵器,通过更改体积操纵器的形状来影响其区域中模型顶点的权重大小。 按最小权重(By Minimum Weight):基于给定的“最小权重”(Minimum Weight)创建初始操纵器。选择该选项后,可以在“最小权重”字段指定一个权重阈值,以便只有具有比该值更大的权重值的顶点才被包含在操纵器中。默认值为 0.25。 ⑧体积类型(Volume Type) 该选项选择要创建“胶囊”(Capsule)或“圆柱体”(Cylinder)的操纵器形状。 ⑨经典线性(Classic Linear) 该选项将对象设定为使用经典线性蒙皮。如果希望使用基本平滑蒙皮变形效果,请使用该模式,它产生的效果与 Maya 以前版本中的效果一致。该模式允许产生体积收缩和收拢变形效果。如果将网格设定为线性蒙皮,那么在受到轴上扭曲关节影响的区域会产生体积丢失。 ⑩双四元数(Dual Quaternion) 该选项将对象设定为使用双四元数蒙皮。如果希望在绕扭曲关节变形时保持网格中的体积不变,应使用该方法。 k权重已融合(Weight Blended) 该选项将对象设定为经典线性和双四元数的融合蒙皮,该融合蒙皮基于用户绘制的逐顶点权重进行贴图。 l最大影响(Max Influences) 该选项指定可影响平滑蒙皮几何体上每个蒙皮点的关节数量,默认值为 5,将为大多数角色生成良好的平滑蒙皮效果。还可以通过指定衰减速率(Dropoff Rate)来限制关节影响的范围。 m保持最大影响(Maintain Max Influences) 该选项启用时,任何时刻平滑蒙皮几何体的影响数量都不得大于“最大影响”(Max Influences)指定的值。该功能将权重的再分布限制于特定数目,同时确保主关节是权重的接收关节。例如,如果将“最大影响”设定为 3,然后为第四个关节绘制或设定权重,则会将其他三个关节之一的权重设定为 0,以保持由“最大影响”指定的权重影响的总数量。 提示 如果在“属性编辑器”(Attribute Editor)中启用“保持最大影响”(Maintain Max Influences),蒙皮权重不会修改,直到单击“更新权重”(Update Weights)时才会重新指定。 2. 权重 对角色进行平滑绑定蒙皮,可以使模型得到较为平滑的蒙皮效果,但是会存在模型变形过大或变形错误的问题,这就需要通过修改权重的方法来达到想要的效果。什么是权重呢?简单地说,权重就是骨骼对模型的影响力度。那么如何来控制权重呢?通常可以使用绘制权重、精确编辑权重和添加影响物体的方法来编辑平滑蒙皮的权重。 1)绘制权重法(绘制蒙皮权重工具) 对模型的蒙皮权重进行修改时,需要选中该模型,然后选择“蒙皮”菜单“编辑光滑蒙皮”下的“绘制蒙皮权重工具”命令。这时鼠标会变为画笔模式,如图1-45所示。 图1-45 一般情况下,在绘制权重时,都需要打开“蒙皮”菜单“权重贴图”下的“绘制蒙皮权重”设置面板,对笔刷、骨骼等进行详细设置。 如果需要针对某关节骨骼的权重进行设置,那么在“影响”卷展栏下有蒙皮关节的列表,可以选择对应的关节进行蒙皮权重编辑,如图1-46所示。 在绘制权重之前,还需要了解权重显示方式,才能对权重值进行适当的修改。当选中某节骨骼时,模型中受这节骨骼影响的区域会以白色显示,代表权重值较高;不受这节骨骼影响的区域会以黑色显示,代表权重值较低;灰色部分是这节骨骼影响范围的过渡区域,即这部分模型上的点部分也受到这节骨骼的影响。 除了以黑白颜色显示外,Maya还提供其他的权重显示方式。在“渐变”卷展栏中可以对显示方式进行设置,如图1-47所示。 图1-46 图1-47 2)精确编辑权重法(组件编辑器) 编辑角色权重时,一定要清楚有哪些骨骼对所编辑部位有影响,再用这些骨骼分配该部位的权重。如果这个部位的权重受到其他骨骼的影响,则会导致权重混乱,影响动画效果。角色不同部位的运动范围是不同的,编辑权重时要从多个角度进行。例如,躯干、肩部、大臂、手腕、颈部都需要对前后左右四个方向的权重进行编辑,以确保每个方向都有光滑的弯曲效果。 有时会出现个别点无论使用笔刷如何修改,也很难达到理想权重效果的情况。Maya也提供了针对这种情况的相应工具—组件编辑器。 选中模型,切换到点模式,选中某些点后,选择“窗口”菜单“通用编辑器”下的“组件编辑器”命令。打开组件编辑器,切换到“平滑蒙皮”选项卡,如图1-48所示。 图1-48 在组件编辑器中,可以清楚地看到每节骨骼在每个点上的权重值大小。例如,“vtx[483]”主要受到“gremlin_LeftForeArm”骨骼的影响,权重值为“0.445”,同时轻微受到其他骨骼的影响。如果希望这个点只受到“gremlin_LeftForeArm”骨骼的影响,可以选中“影响权重值”单元格,调整表格下方的滑块值为1,就对权重值进行了修改。 3)添加影响物体法修正权重 添加影响物体是为已经蒙皮的模型添加新的影响物体(如Polygon物体、NURBS物体、Joint等)的操作。新添加的物体与之前的影响物体同时起作用。 在对权重进行修正后,手肘内部的凹陷问题就得到解决了。但在真实的手臂弯曲过程中,肘部外侧因为骨骼的存在,会突出一个明显的骨点。要实现这种效果,就需要为模型添加影响物体。 打开“蒙皮”→“编辑平滑蒙皮”→“添加影响”命令的选项设置面板,了解相关参数设置,如图1-49所示。 (1)几何体:默认选中。选中时可以使用几何体作为影响物体,并且多边形的位移、旋转、缩放等效果也会对模型产生影响。 (2)衰减:与平滑绑定中衰减属性的功能一致。 (3)多边形平滑度:指多边形影响物体对模型的影响的采样数值。 (4)NURBS采样数:指NURBS影响物体对模型的影响的采样数值。 (5)权重锁定:选中该选项后就不可以手动绘制影响物体的权重,而是通过默认权重统一设置。 绘制权重是一项需要耐心和细心的工作,希望读者能够多加练习,这样才能更快、更熟练地掌握。 1.3.8 变形器系统 变形器(Deformer)是可用来操纵(建模时)或驱动(设置动画时)目标几何体的低级别组件的高级工具。在其他软件包中,对应的术语为“修改器”或者“空间扭曲”。 变形器可以在任何可变形对象上创建变形效果。可变形对象是其结构由控制点定义的任何对象。控制点包括 NURBS 控制顶点(CV)、多边形顶点、NURBS 曲线、NURBS 曲面、多边形网格和晶格,它们全部都是可变形对象。 1. Maya中的变形器类型 使用Maya 的变形器,用户可改变物体的几何形状。Maya 提供下列类型的变形。 融合(Blend)变形:使用融合变形可以使一个物体的形状逐渐转变为其他物体的形状。 晶格(Lattice)变形:使用晶格改变物体的形状。 簇(Cluster)变形:使用簇变形,用户可用不同的影响力来控制物体的点(CV、顶点或晶格点)。 弯曲(Bend)非线性变形:使用此命令可沿圆弧弯曲物体。 扩张(Flare)非线性变形:使用此命令可沿两条轴扩张或细化物体。 正弦(Sine)非线性变形:使用此命令可沿正弦曲线改变物体的形状。 挤压(Squash)非线性变形:使用此命令可压缩或拉伸物体。 扭曲(Twist)非线性变形:使用此命令可使物体变为螺旋状。 波浪(Wave)非线性变形:使用此命令,可用圆形正弦波来变形物体,并使物体产生波动效果。 抖动(Jiggle)变形:使用此命令可以让运动物体在速度发生变化的同时产生变形效果。 雕刻(Sculpt)变形:使用球形影响物体让物体变形。 线(Wire)变形:使用一条或多条曲线让物体变形。 褶皱(Wrinkle)变形:综合线变形和簇变形产生褶皱效果。 包裹(Wrap)变形:使用NURBS 表面、NURBS 曲线或多边形网格让物体变形。 2. 可变形物体、点和集合 变形器可在所有可变形物体上创建变形效果。 对于任何物体,只要它的结构由控制点(Control Point)所定义,就可作为可变形物体。 控制点包括NURBS 控制顶点(CV)、多边形顶点和晶格点。NURBS曲线、NURBS 表面、多边形网格和晶格都是可变形物体。为了方便起见,控制点通常简称为点,可变形物体的控制点通常简称为可变形物体点。 角色模型可由一个可变形物体组成(如一个大的多边形面),也可由一组变形物体组成。当用户创建变形时,Maya 把所有的可变形物体点放置到一个集合(Set)中,称为变形集合(Deformer Set)。用户可对此集合进行编辑。 3. 节点、历史和变形顺序 可把Maya的场景当作一个节点网。每个节点由指定的信息和与信息相关的操作组成。每个节点都能以属性的方式接收、保持和提供信息。一个节点的属性可以与其他节点的属性相连,从而形成节点网。当用户在Maya中工作时,Maya在不断地创建、连接、计算和销毁节点。无论何时,在工作空间看到的结果都是Maya对用户工作的节点网不断计算的结果。总之,在Maya中,用户的操作是以动态的、基于节点的体系结构为基础的。 4. 变形顺序定义 Maya计算变形的顺序称为变形顺序。在使用变形功能时,记清节点的历史是非常重要的。一个变形所产生的变形效果在很大程度上取决于变形在节点历史中的位置,这是因为变形效果随着Maya计算变形顺序的不同而变化。 一般而言,用户可以对一个物体应用多个变形。因为变形效果取决于变形功能作用于物体的顺序,所以可创建多种效果。例如,针对一个NURBS 圆柱,如果用户先创建弯曲变形后创建正弦变形,会得到一种效果;如果用户先创建正弦变形后创建弯曲变形,则会得到另一种效果。通常,在系统默认设置下,变形功能作用于可变形物体的顺序就是变形被创建时的顺序,先创建的变形先作用于原始形状,后创建的变形后作用于原始形状。 Maya计算变形的过程是从创建节点开始,按顺序一直计算到最终的形状节点,节点的相互连接通常称为“变形链”。注意,在创建一个变形后,用户可通过改变变形顺序来编辑变形节点的放置。 5. 变形放置的类型 变形放置的类型如图1-50所示。 1)默认放置(Default) 使用默认放置时,Maya 把变形器节点放置在形状节点的上游。默认放置与之前放置类似,除非变形作用于没有历史的形状节点上,在这种情况下,默认放置与之后放置相同。当用户使用默认放置为物体创建多个变形时,会产生一条变形链,变形链的顺序与创建变形的顺序相同。 2)之前放置(Before) 使用前置选项时,在创建变形后,Maya 会立即将变形器节点放置在可变形物体的被变形形状(Shape)节点的上游(之前)。在物体的历史中,变形将被放置在被变形形状节点的前面。 3)之后放置(After) 使用后置选项时,Maya 会立即将变形器放置在可变形物体变形形状(Shape)节点的下游(之后)。用户可使用后置功能在物体历史的中间创建一个中间变形形状。注意,使用后置功能时,物体的原始形状不被隐藏。 4)分割放置(Split) 使用分割放置时,Maya 把变形分成两条变形链。通过使用分割放置,能同时以两种方式使一个物体变形,根据一个原始形状创建两个最终形状。 5)平行放置(Parallel) 使用平行放置时,Maya 将把创建的变形和物体历史的上游节点平行放置,然后将现存上游节点和变形提供的效果融合在一起。平行融合节点(默认名为parallelBlendern,也就是把现存上游节点和新变形的效果融合在一起的节点)和新的变形节点将一同被放置在最终形状节点的前面。 当用户想融合同时作用于一个物体的几个变形效果时,平行放置是非常有用的。例如,如果对于一些物体,使用系统默认的设置创建一个弯曲变形,然后使用平行放置创建一个正弦变形,便可直接控制每个变形对物体的影响程度,融合每个变形的效果。 平行融合节点为每个变形提供了一个权重通道,用户可编辑平行融合节点的通道。 6)前端放置(Front Of Chain) 前端放置选项仅作为融合变形的创建选项。融合变形的一个典型用途是在一个蒙皮角色上创建变形效果。前端放置能确保融合变形效果在蒙皮提供的变形作用之前作用于物体。如果作用顺序颠倒,当用户摆放骨骼姿势时,就将出现不必要的双倍变形效果。通过使用前端放置功能,可以使得在可变形物体的形状历史中,融合变形总是在所有其他变形和蒙皮节点的前面。 6. 其他变形器 其他变形器如图1-51所示。 1)融合变形 融合变形至少需要两个结构相似、形状不同的物体。使用融合变形可以产生从一个形状到另一个形状的过渡效果。融合变形的一种典型用法就是制作角色表情动画,先制作出一系列有表情的头部模型(称为目标体),再将融合变形添加到一个没有表情的头部模型上(称为变形体),如图1-52所示。 图1-52 选择“窗口”菜单“动画编辑器”下的“融合变形”选项,通过拖动滑块调节变形,可以对角色的表情进行动画关键帧的设置。角色由默认表情变成微笑表情,如图1-53所示。 图1-53 图1-53 (续) 2)晶格变形 晶格是一种点结构,可以对任何对象执行自由形式变形。用户可以通过移动、旋转或缩放晶格结构,或通过直接操纵晶格点编辑晶格来创建变形效果。晶格变形由两部分组成:基础晶格和影响晶格,如图1-54所示。术语“晶格”一般指影响晶格。通常,用户可以通过编辑晶格变形器的任意属性创建变形效果。在系统默认设置下,将基础晶格隐藏,以便用户把注意力放在影响晶格的操作上。但是要记住,变形效果取决于影响晶格和基础晶格之间的关系。 基础晶格 影响晶格 图1-54 如果物体完全处于基础晶格之外,那么它将不受变形影响。注意,尽管物体可以受晶格影响而被移走,但基础晶格仍然计算的是最初物体所在的位置,如图1-55所示。 (1)编辑基础晶格。 当基础晶格不被选择时,它是不可见的。用户可以移动、旋转或缩放基础晶格。与影响晶格不同的是,基础晶格没有晶格点。 (2)重设影响晶格点和去除扭曲。 ①重设影响晶格点:选择“编辑变形”菜单“晶格”下的“重置晶格”命令。当影响晶格产生了“空间变换”和“扭曲”时,可以用“重置晶格”命令来清除对影响晶格所做的一切调整,使它恢复到基础晶格的位置和形状。 图1-55 ②去除扭曲:选择“编辑变形”菜单“晶格”下的“移除晶格调整”命令。当影响晶格产生了“扭曲”时,可以用该命令来使晶格点恢复到局部空间的原始位置。如果同时出现了“空间变换”,此命令就无法同时使它恢复到基础晶格的位置和形状,如图1-56所示。 图1-56 (3)晶格影响范围。 晶格变形的效果通常取决于物体是否在基础晶格(默认名为ffdnBase)的内部。如果物体完全处于基础晶格的外部,那么没有变形影响,这是因为晶格变形是基于基础晶格、影响晶格和物体在晶格内位置之间的空间关系计算影响效果,如果物体完全处于基础晶格的外部,那么Maya就无法计算变形效果。同样,如果物体仅有部分处于晶格内,那么只有处于基础晶格内的元素(如CV点)受到影响晶格的影响。 3)簇变形 一个簇变形创建一个组,组中的元素是由选择的点(NURBS的CV点、多边形顶点、细分面点或晶格点)组成。可以为每个点设置权重,当使用“变换”工具(如移动、缩放、旋转)变换簇变形时,簇变形组中的点因权重不同而发生不同程度的改变。 提示 在创建变形后,应该避免改变变形物体的数目(例如,CV点、顶点或晶格点)。改变变形物体的数目可导致意想不到的后果。在开始使用变形前,应尽量满足可变形物体的拓扑结构。 例如,当门受到敲击时,用户可创建一个簇变形,使门的中间部分产生轻微弯曲的变形效果。 要改变簇的变形效果,可以通过绘制成员工具(Paint Set Membership Tool)为簇的成员绘制权重。 (1)添加(Add):添加成员到指定变形器。 (2)转移(Transfer):如果物体上有多个变形器,转移操作就会将绘笔扫过的CV点或顶点从当前所属变形器中移除,再将它们添加到指定变形器中。 (3)移除(Remove):移除操作将已绘制的CV点或顶点从它们所属的变形器中移除,被移除的可控制或顶点不再受任何变形或关节影响。 在绘制簇变形器后可以给每个成员设置一个百分比,控制簇变形器对成员点的变形影响力,这个百分比称为权重。白色区域为完全受簇变形器影响的区域,黑色区域为完全不受影响区,灰色区域为影响过渡区,如图1-57所示。 图1-57 要更改点的权重值,可以到“窗口”(Window)菜单下“常规编辑器”(General Editors)的“组件编辑器”(Component Editor)中找到簇点权重值,通过拖动滑块来控制点的权重大小,如图1-58所示。 图1-58 4)非线性变形 “创建变形”(Create Deformers)菜单下的非线性变形(Nonlinear)包括六个变形器,如图1-59所示。 (1)弯曲。 使用弯曲变形器,将一个对象按圆弧均匀弯曲。变形效果可以施加给整个对象,也可以施加给对象局部,如图1-60所示。 图1-60 【参数设置】 Envelope(封套):值为1时,影响变形;值为0时,不影响。 Curvature(曲率):设置弯曲的程度,可取正值也可取负值,正负值对应的弯曲方向相反。 Low Bound(下限):设置变形器沿自身轴向影响范围的下限位置,此值为负值。 High Bound(上限):设置变形器沿自身轴向影响范围的上限位置,此值为正值。 (2)扩张。 扩张变形器用来将变形对象沿指定轴向的两端进行不等比缩放,如图1-61所示。 图1-61 【参数设置】 Start Flare X(开始扩张轴X):设置变形器在下限位置沿自身局部坐标X轴的扩张或收缩的比例。 End Flare X(结束扩张轴X):设置变形器在上限位置沿自身局部坐标X轴的扩张或收缩的比例。 Curve(曲线):设置在下限和上限之间的过渡形式(扩张曲线的侧面形式)。 (3)正弦。 正弦变形器使变形对象产生类似正弦曲线的变形效果,如图1-62所示。 图1-62 【参数设置】 Amplitude(振幅):设置正弦曲线的振幅(波起伏的最大值)。 Offset(偏移):设置正弦曲线与变形器手柄中心的位置关系。改变该值可创建波动效果。 Dropoff(衰减):设置振幅的衰减方式。若值为负,则振幅向变形器手柄的中心衰减;若值为正,则振幅从变形器手柄中心向外衰减。 (4)挤压。 挤压变形器可挤压或拉伸对象。此变形器可以对整个对象操作,也可以对一个对象的局部操作,如图1-63所示。 图1-63 【参数设置】 Factor(系数):设置挤压或拉伸的系数。若值为负值,则沿变形器的局部Y轴挤压;若值为正值,则沿变形器的局部Y轴拉伸。 Expand(扩张):挤压时设置向外的扩张值,拉伸时设置向内的压缩值。值为0时,不扩张也不压缩。默认值为1.0000。 Max Expand Pos(最大扩张位置):设置上、下限位置之间最大扩张点的位置。 Start Smoothness(初始平滑值):设置下限位置的平滑数量(沿变形的局部负向轴)。 End Smoothness(终点平滑值):设置上限位置的平滑数量(沿变形的局部正向轴)。 (5)扭曲。 扭曲变形器可扭曲对象的形状。此变形器可以对整个对象操作,也可以对一个对象的局部操作,如图1-64所示。 图1-64 【参数设置】 Start Angle(开始角度):设置变形器在对象的局部Y轴负向下限位置的扭曲度数。 End Angle(结束角度):设置变形器在对象的局部Y轴正向上限位置的扭曲度数。 通用变形系数 Envelope 所有的变形器都有一个名为Envelope(封套)的参数,它是一个系数。在每个变形器参数控制的变形基础上乘以这个数,就得到最终的变形结果。如果Envelope值为0,就意味着这个变形器的所有参数都失效了。Envelope经常用来临时去掉某个变形器的参数的作用,因为只需要修改一个参数就可以将一个变形器的作用删除或恢复,所以使用起来很方便。 (6)波浪。 波浪变形器使变形对象产生环形波纹,从一个截面上看,它与正弦变形器的效果是一样的,但波浪变形器同时还沿环形变形,如图1-65所示。 图1-65 【参数设置】 Amplitude(振幅):设置波浪的振幅(波起伏的最大值)。 Wavelength(波长):设置沿变形器的局部Y轴的正弦曲线频率。波长减小,频率增大;波长增大,频率减小。 Offset(偏移):设置正弦曲线与变形器手柄中心的位置关系。改变该值可以创建波动效果。 Dropoff(衰减):设置振幅的衰减方式。值为负时,振幅向变形器手柄的中心衰减;值为正时,振幅从变形器手柄中心向外衰减。 Dropoff Position(衰减位置):控制波浪变形时是向内衰减还是向外衰减。值为0时,向外衰减;值为1时,向内衰减。 Min Radius(内径):设置波浪变形器影响范围的最近距离,即变形内径。 Max Radius(外径):设置波浪变形器影响范围的最远距离,即变形外径。 5)抖动变形 抖动变形器可以让运动物体在速度发生变化的同时产生变形效果。(例如,摔跤手腹部的抖动,头发的抖动,昆虫触角的振动。) 抖动变形器可以应用于整个物体,也可以应用于指定的局部点。可使用抖动变形器的点包括CV点、晶格点或多边形与细分表面的顶点。可以为同一个物体建立两个或更多的抖动变形,也可以简单地在局部点上应用变形,然后调整权重。可调整的参数如图1-66所示。 (1)刚度:设置抖动的刚度,取值范围为0~1。 (2)阻尼:较高的值会降低弹性,弱化抖动;较低的值会增加弹性。 (3)权重:控制整体抖动的程度。 ①仅在对象停止时抖动:抖动仅发生在移动物体停止运动或静止物体开始移动时,物体移动过程中没有抖动。 ②忽略变换:抖动变形器仅响应组元点的动画,而不响应物体变换节点的动画。 6) 雕刻变形 使用雕刻变形操作时,可使用内置的线框球或任何NURBS物体作为影响物体。这个内置球形影响物体被称为造型球,通过操纵影响物体可以修改变形对象的外形。 雕刻变形可以创建各种类型的圆形变形效果。例如,设置角色的面部动画时,使用雕刻变形可控制人物下巴、眉毛或面颊的动作。 雕刻变形模式包括翻转、投影、拉伸,如图1-67所示。 图1-66 图1-67 7)线变形 线变形用一条或多条曲线控制物体变形。简单的线变形用一条或多条NURBS曲线作为变形操作器来改变可变形物体的形状,如图1-68所示。 (1)创建简单的线变形。 新建一个场景,包括一个平面、一条曲线。 选择“变形”菜单下的“线变形工具”命令。 在“工具设置”窗口中单击“重置工具”按钮。 关闭工具设置面板。此时注意,光标变为“+”字形,表示正在使用线变形工具。 选择变形对象并按Enter键。 选择曲线并按Enter键。 修改影响线,变形对象的形状会发生相应的变化,如图1-69所示。 (2)创建加限制线的线变形,如图1-70所示。 图1-69 图1-70 创建一个NURBS平面,包括一条曲线和一条圆环曲线。执行Deform“变形”菜单下的“线变形工具”命令,打开“工具设置”窗口,在窗口中勾选限制曲线,再关闭“工具设置”窗口,此时鼠标指针变为十字形,表示正在使用线变形。选择变形对象并按Enter键;选择影响线并按Enter键;选择环形线并按Enter键;最后在工作空间单击鼠标空选,并按Enter键。 (3)编辑变形效果:选择“编辑变形器”菜单下的“线”命令,如图1-71所示。 (4)选择绘制线权重工具,如图1-71所示。 8)褶皱变形 褶皱变形工具包括簇变形和一个或多个线变形,褶皱变形对于建立细致的褶皱效果是非常有用的。褶皱变形提供了线变形簇,可通过控制整个线变形簇或操纵单个线变形创建变形效果,如图1-72所示。 (1)选择一个或多个NURBS表面。 (2)选择“变形”菜单下的“褶皱工具”命令,NURBS 表面边缘显示出一个红色方框,方框上标有UV字样,表明当前直接新建褶皱变形器的影响区域。 图1-72 (3)调整UV区域。用鼠标中键拖动红色方框每条边的中间可进行区域的缩放,用鼠标中键拖动角上圆点可旋转区域,用鼠标中键拖动UV区域中心可移动区域。 (4)按Enter键,在变形区域中心出现一个簇变形器操作手柄的标记“C”。 9)包裹变形 包裹变形的操作对象为NURBS表面、NURBS曲线、多边形表面或晶格变形器。包裹变形用影响物体的形状和空间变换变形对象的形状,如图1-73所示。 图1-73 先选高分辨率球体,再加选低分辨率球体。最大距离值为2,单击“创建”(Create)。现在低分辨率球是包裹影响物体。选择低分辨率球的一些CV点并移动,高分辨率球发生相应的形状变化。 以上讲述了角色绑定环节必须掌握的基础命令和应用。本章节的内容虽然基础,却非常重要,希望读者朋友们熟练掌握。只有把本章内容融会贯通,才能为学习后面章节的高级角色绑定技术奠定基础。 本 章 总 结 本章介绍了三维Maya软件及应用领域,详细阐述了三维动画的制作流程。本章应重点掌握绑定的概念,绑定的合理标准,角色绑定环节必须掌握的基础命令,包括组的概念、父子关系、大纲视图、骨骼系统、FK与IK、约束系统、蒙皮系统、变形器系统。