第6章 骨骼和蒙皮概述在现实世界中,绝大部分动物都不能没有骨骼,骨骼可以支撑身体,作为肌肉附着的支架在3D虚拟空间中,骨骼系统的作用和现实中很相近,每一块骨骼控制着一定范围的模型所以,三维动画师在调动画时仅操作角色的骨骼,角色的身体就会自然随骨骼的运动而做出各种各样的动作了概述目前3dsMax中包括两套默认的骨骼系统,他们分别是基本骨骼系统Bone和自6.0版以后整合进去的Biped骨骼系统两套系统各有优点基本骨骼Bone比较灵活,能做出符合任何生物及非生物的骨骼而Biped骨骼使用起来极为方便,但是仅限于人类,动物,昆虫等有躯干和一定数量肢体的生物6.1 基本骨骼Bone 基本骨骼系统Bone是骨骼对象的一个有关节的层次链接,可用于设置其他对象或层次的动画在设置角色模型的动画方面,骨骼就变得非常有用可以采用正向运动学或反向运动学为骨骼设置动画对于反向运动学,骨骼可以使用任何可用的IK解算器,或者交互式IK或应用式IK6.1.1创建一段骨骼在3dsMax中创建骨骼有两种途径方法一:6.1.1创建一段骨骼在3dsMax中创建骨骼有两种途径方法二:6.1.1创建一段骨骼在几个位置单击可以创造一段连续的骨骼,单击右键退出创建骨骼模式。
一个骨骼链至少由三块骨骼组成,骨骼在视口中作为普通对象出现,但是具有特殊的属性:1.骨骼链中每两块相邻的骨骼都具有父子链接关系,先创造的骨骼是后创造的骨骼的父2.每块骨骼的轴都在自己的根部(粗的部位),改变轴的位置会改变与轴相连的骨骼长度3.骨骼在渲染视口是不可见的,如果希望骨骼被渲染出来可以把它的属性里“可渲染”属性激活6.1.1创建一段骨骼创造的骨骼可以在修改面板里一定程度上修改骨骼的外形,包括添加鳍见图7-36.1.1创建一段骨骼在方法2创建骨骼的过程中,我们使用了骨骼工具面板,下面我们将详细地讲解这个面板里的各种功能,掌握这些功能将对今后的工作提供很大的便利6.1.1创建一段骨骼骨骼编辑工具:使用“骨骼编辑工具”卷展栏上的控件可以创建并修改骨骼几何体和结构,并为一个或多个骨骼设置骨骼颜色骨骼编辑模式:调整选定骨骼轴的位置,将改变轴两边骨骼的长度(和层次面板中调整轴位置的性质相同)创建骨骼:在视口中通过单击创造骨骼,(和创建面板中创建骨骼的性质相同)创建末端:为选择中没有末端的骨骼创造一个末端6.1.1创建一段骨骼移除骨骼:在保证整个骨骼链完整的情况下移除选定骨骼,见图6-6删除骨骼:删除所选骨骼,不会改变其他设置。
细化:在骨骼上点击,创建一个新的关节,见图6-76.1.1创建一段骨骼连接骨骼:在两块无关的骨骼间建立一块新骨骼,把它们连接起来6.1.1创建一段骨骼重指定根:把选定骨骼变成整个骨骼链的根骨骼镜像:为选择骨骼做一个轴向上的镜像,见图6-9注意只影响当前选择的骨骼,这是它和普通镜像上的不同点6.1.1创建一段骨骼选定骨骼颜色:选择骨骼在视口中显示时使用的颜色(针对单块骨骼)默认颜色是浅蓝灰色渐变着色:为多块骨骼着色,可以让一系列骨骼显示出渐变的颜色,见图6-106.1.1创建一段骨骼鳍调整工具:鳍调整工具里的内容和修改面板里的内容完全相同,在这里做下简单介绍宽度,高度:调整骨骼的宽度和高度,这两个数值越大,骨骼将越粗锥化:调整骨骼尾端的大小,数值越大,尾端越尖锐,数值越小,尾端越粗鳍:为骨骼添加鳍,使骨骼适应模型的形状,侧鳍,前鳍,尾鳍分别对应不同位置大小用来调整鳍的长度始端锥化和尾端锥化用来调整鳍的形状对象属性:使用骨骼“对象属性”卷展栏上的控件可以将其他对象转变为骨骼这些控件还可以控制骨骼的刚性及对齐方式6.1.1创建一段骨骼对象属性的界面6.1.1创建一段骨骼启用骨骼:选择非骨骼对象,再勾选启用骨骼,可以使非骨骼对象转变为骨骼属性。
冻结长度:通常情况下骨骼的长度都是固定的,移动相邻骨骼不会引起它的长度变化禁用“冻结长度”选项可以使它的长度受到相邻骨骼的影响6.1.1创建一段骨骼自动对齐:如果禁用此选项,骨骼的轴点将不能与其子对象对齐子骨骼的平移不会转换为父骨骼的旋转而是允许子骨骼移离其父骨骼的X轴此选项默认设置为启用校正负拉伸:启用该选项后,造成负缩放因子的骨骼拉伸将更正为正数此选项默认设置为启用重新对齐:使骨骼的X轴对齐,并指向子骨骼(或多个子骨骼的平均轴)通常将保持这种对齐方式,并且不需要使用此选项然而,通过禁用“自动对齐”并移动子骨骼,骨骼可能不对齐使用“重新对齐”可将骨骼再次与其子骨骼对齐重置拉伸:如果子骨骼移离骨骼,则拉伸该骨骼,以到达其子骨骼对象重置缩放:在每个轴上,将内部计算缩放的拉伸骨骼重置为100%由于对象均是链接和缩放形式的,因此使用此选项可以避免异常行为此选项对于骨骼没有可见效果6.1.1创建一段骨骼自动对齐:如果禁用此选项,骨骼的轴点将不能与其子对象对齐子骨骼的平移不会转换为父骨骼的旋转而是允许子骨骼移离其父骨骼的X轴此选项默认设置为启用校正负拉伸:启用该选项后,造成负缩放因子的骨骼拉伸将更正为正数。
此选项默认设置为启用重新对齐:使骨骼的X轴对齐,并指向子骨骼(或多个子骨骼的平均轴)通常将保持这种对齐方式,并且不需要使用此选项然而,通过禁用“自动对齐”并移动子骨骼,骨骼可能不对齐使用“重新对齐”可将骨骼再次与其子骨骼对齐重置拉伸:如果子骨骼移离骨骼,则拉伸该骨骼,以到达其子骨骼对象重置缩放:在每个轴上,将内部计算缩放的拉伸骨骼重置为100%由于对象均是链接和缩放形式的,因此使用此选项可以避免异常行为此选项对于骨骼没有可见效果6.1.1创建一段骨骼拉抻因数信息:“校正负拉伸”选项下方有一个文本显示,提供了关于选定骨骼数量和所有三个轴上各自的拉伸因子信息如果选择了多个骨骼,则“拉伸因数”文本显示未定义注意:“拉伸因数”文本只有在骨骼编辑模式中才更新拉伸和轴选项:拉伸决定在变换子骨骼并禁用“冻结长度”时发生的拉伸种类默认设置为“比例”无不发生拉伸缩放用于骨骼缩放将沿着一个轴发生拉伸6.1.1创建一段骨骼挤压用于骨骼挤压挤压越短,骨骼就越宽,挤压越长,骨骼就越窄轴决定用于拉伸的轴X/Y/Z选择用于缩放或挤压的轴翻转沿着选定轴翻转拉伸以上就是骨骼工具面板的所有功能掌握这些功能是制作一套优秀骨骼的基础,在后面的实例练习中我们将会经常使用到它们。
6.1.2 IK解算器IK是英语中反向运动学InverseKinematics的简称反向运动学与正向运动学相对用正向运动学调整一个动作,需要从根部的关节开始,把每一段肢体调到合适的位置,直到尾部而用反向运动学调动作,可以直接把尾部移动到需要的位置,之间关节的旋转由IK解算器来计算这样,我们就可以极大地提高工作效率6.1.2 IK解算器下面我们将通过几个实例来说明几种IK解算器的使用方法:HI解算器:它是我们在制作仿生物的关节运动时最常用到的IK解算器HI解算器”使用目标来设置链动画设置目标动画,IK解算器移动末端效应器(链中最后一个关节的轴点)来匹配目标的位置通常,目标是其他控制对象(例如点或虚拟对象、脊椎或骨骼)的父对象,而这些控制对象与视口或卷展栏滑块相关联IK解决方案在解算器平面中发生解算器平面在世界空间中的角度由一个称之为旋转角度的参数控制可以设置旋转角度动画可以直接对它进行调整,也可以使用操纵器来调整6.1.2 IK解算器下面我们将通过几个实例来说明几种IK解算器的使用方法:HI解算器:它是我们在制作仿生物的关节运动时最常用到的IK解算器HI解算器”使用目标来设置链动画设置目标动画,IK解算器移动末端效应器(链中最后一个关节的轴点)来匹配目标的位置。
通常,目标是其他控制对象(例如点或虚拟对象、脊椎或骨骼)的父对象,而这些控制对象与视口或卷展栏滑块相关联IK解决方案在解算器平面中发生解算器平面在世界空间中的角度由一个称之为旋转角度的参数控制可以设置旋转角度动画可以直接对它进行调整,也可以使用操纵器来调整6.1.2 IK解算器“HI解算器”允许创建多个链或重叠链这允许为其他控件创建多个目标将目标链接到点、脊椎、骨骼或虚拟对象后,可以创建简单的控制来实现复杂链或层次的动画也可以在这些目标上使用限制或控制对象,以及其他动画工具右图是一个我们用6.1.1.中所述工具制造的一条某种生物的腿部骨骼下面我们将用HI解算器将其链接起来,使它能够满足大多数情况下电脑动画的需要6.1.2 IK解算器Step1首先,我们应该确认对象骨骼每一个环节的命名都正确无误这是所有3D工作者都应该具备的良好素质,准确易懂的命名可以让我们面对复杂的工程时不会手忙脚乱这一次,我们给这套骨骼做了如下命名6.1.2 IK解算器Step2从大腿到脚踝连一根IK链:先选择Bone-大腿,从“动画”-“IK解算器”-“HI解算器”,点击脚踝具体见图6-156.1.2 IK解算器连接完成后,在脚踝与小腿的关节处会出现一个蓝色十字,这个十字就是这条IK链的末端控制器,上下移动末端控制器,会发现骨骼的大腿和小腿可以象人的腿一样正常弯曲,这是我们所希望得到的效果。
但是,使用这个末端控制器,只能控制膝盖和大腿根部的运动,在电脑动画中,角色的脚部经常有细微动作,显然,只用这一个IK链无法满足我们的需要上文中提到过,HI解算器是可以重叠的,那么,使用更多的IK链可以让我们骨骼的脚部更加灵活6.1.2 IK解算器Step3接下来要连接另一根IK链,这一次从骨骼的脚踝连到脚趾,同样选用HI解算器这样在脚面和脚趾之间就出现了另一个末端控制器,移动它可以操纵脚踝到脚趾的关节在这次实例中,我们希望旋转脚面的末端控制器达到让角色踮起脚尖的效果现在旋转它可以发现,无论怎么旋转,骨骼都没有发生丝毫变化,因为末端控制器不能控制周围骨骼的旋转,但是可以对它们使用各种约束工具(约束工具会在后面加以详细介绍)现在我们要用链接工具把脚踝的末端控制器链接到脚面的末端控制器6.1.2 IK解算器链接完成后,旋转脚面的末端控制器,发现骨骼可以随着旋转踮起脚尖了,见图6-17因为成为子对象的踝部末端控制器随着父对象的旋转而发生了位移,故链接中子对象的轴会自动转移到父对象的轴的位置6.1.2 IK解算器Step4仔细观察上图的骨骼,在踮起脚尖的同时脚尖陷入了地面一般情况下,为了保持平衡,人类踮起脚尖时脚趾会保持水平。
所以,我们需要再添加一个IK链以达到上述的效果第三条IK链从“Bone-脚趾”连接到“Bone-脚趾末端”连接完成后可以再来旋转一下脚面的末端控制器来看看效果,见图6-186.1.2 IK解算器这样,我们就用Bone骨骼系统完成了一条腿的骨骼的制作不过,关于HI解算器还有很多参数和功能,下面对其作简要介绍所有IK解算器的参数和选项都在运动面板里,见图6-206.1.2 IK解算器IK解算器:此组中的选项可以设置选定HIIK解算器链的起点和终点在此卷展栏上还有允许使用IK操纵器在层次对象上创建正向运动学可旋转关键帧的控件,以及将目标和末端效应器相对齐的按钮,见图6-216.1.2 IK解算器启用:启用或禁用链的IK控件HIIK控制器”有一个FK子控制器选择“启用”后,FK子控制器的值就会被IK控制器所覆盖禁用“启用”后,就会使用FK值可以设置选择“启用”和禁用“启用”的动画当要做正向旋转时,可以使用此选项以用目标禁用该链FK姿势的IK:可以在FK操纵中间启用IK当禁用“启用”并启用“FK姿势的IK”时,移动目标会在FK操纵的中间自动启用IK此操作的结果将使所有的FK子控制器都从IK解决方案中接收值。
关键点放置于层次对象或骨骼上,而不是目标上在“启用”和“FK姿势的IK”都禁用后,移动目标根本不会影响到链6.1.2 IK解算器自动捕捉:启用“自动捕捉”后,在启用或禁用“启用”之前,将会自动应用IK/FK捕捉。