Maya角色绑定和动画教1.docx
《Maya角色绑定和动画教1.docx》由会员分享,可在线阅读,更多相关《Maya角色绑定和动画教1.docx(86页珍藏版)》请在冰豆网上搜索。
Maya角色绑定和动画教1
Maya角色绑定和动画教程
(CharacterRiggingandAnimation)
本教程通过对一个人物角色的骨骼绑定,以及走路,拉动重物的动画示范过程,让大家能更清晰的认识maya的操作以及项目制作的基本过程,能更快速的掌握maya,更快速的运用到工作中。
现今的软件更新奇快,三维动画的制作软件也在不停的更新换代,但是汉化过来的并不多,部分汉化过来的并不是完全汉化,对我们学习新的软件,帮助不是很有利。
我们要不停的学习新的东西,为了适应新的软件,所以,不能太依赖汉化版本的出现,本教程就是为了让大家尽快熟悉英文软件,所以,本教程只在基础部分做汉语注解,在项目的制作过程中,不过多的做汉语注解,但是会清楚地告诉读者操作过程的每一个步骤,以及每个命令所在的位置,大家不必担心英文不容易理解,只要多操作,多熟悉,英文对我们来说,没有什么关系的。
在很多大公司,要很多人来完成一个项目的时候,软件的版本是有规定的,基本是英文版本,而且是统一插件,统一文件命名规范的,应该全是以英文来命名文件夹,以及项目中所涉及到的需要重新命名的物体,这样是为了能让每个人都能很清楚的来完成项目中自己应该完成的部分,不至于让整个项目混乱,那样项目基本是无法来完成的。
所以我们在学习过程中,应该养成良好的操作习惯,以便在以后的工作中,能更好的融合到团队中去,不要怕麻烦,为了以后工作的效率能更高,更快,我们必须要认真对待每个细节,以免给下步工作带来不必要的麻烦。
在说了英文没什么难的,比起我们的方块字,差远了……!
好了,让我们开始学习吧,尽情领略maya在三维动画制作过程中的无穷魅力。
Maya主要窗口
Maya的主要窗口,如下图1。
图1
Mainmenus:
主菜单栏。
StatusLine:
状态栏。
Shelves:
搁置栏。
Panelmenus:
视窗菜单。
ToolBox:
工具栏。
Quicklayoutbuttons;快捷布局视窗。
Panel:
视窗。
TimeSlider:
时间线。
RangeSlider:
时间控制栏。
CommandLine:
命令栏。
HelpLine:
帮助栏。
ChannelBox:
通道栏。
LayerEditor:
层编辑栏。
图2标示了maya的常用菜单所在的区域。
图2
Maya在视窗(Panel)中的操作,大部分都是,Alt+鼠标左键(旋转视窗),Alt+鼠标中键(移动视窗),Alt+鼠标右键(推拉视窗)Alt+Ctrl+鼠标(放大框选区域),等组合来完成的,大家可以先利用一点时间,熟悉一下组合键在maya中的操作,尽快其操作,对以后工作会帮助很大。
好了,大家对maya已经有了一点基本的认识,不必担心有些操作在实际项目中是怎么应用的,在本教程前期,会有详细的说明的,让我们开始真正的工作吧。
Maya的骨骼设定
●运行maya,(本教程示范用的是maya7,高于7的版本都可以用)。
点击File(文件)→Project(工程)→Set(指定)→setup&Animation(选择本教程提供的项目文件所在的磁盘),点击确定。
如图3所示。
图3
点击File→OpenScene→body.mb(选择本教程提供的项目文件),点击Open。
场景中会出现一个男人的粗模角色,如图4。
(虽然丑了点,但是是粗模,可以原谅)。
图4
●建立新的层,在图1示范的LayerEditor区,点击Createanewlayer,(如图5红色框选区域的图标。
创建一个新的层。
图5
●快速在新建立的layer1上双击,弹出EditLayer栏,并Name栏输入bodyLayer,为新层命名。
其结果如图6所示。
图6
●在场景中,选择角body,在新建立的层上按下鼠标右键,在下拉菜单里选择AddSelectedObjects.(把选择对象加入到此层里)。
点击层的中间小方框,使其里面出现字母T,场景里的角色以线框模式显示。
(这就是层的其中一个功能)。
显示如图7
图7
●在StatusLine的菜单栏中选择Animation模块,在视窗中按下空格键,按鼠标左键,选择SideView,进入Side视窗。
●创建腿的骨骼。
选择Skeleton→JointTool-口。
在JointTool窗口设置Orientation选项为None.画出5个关节,并且为关节命名分别为:
hip、knee、ankle、ball、toe,结果如图8。
图8
再次在视窗中按下空格键,按鼠标左键,选择FrontView,进入Front视窗。
●选择骨骼Hip,移动其X方向,使其位置处于左腿部位。
(Q、W、E、R分别是快捷键选择、选择移动、选择旋转、选择缩放,我们要尽快熟悉这些快捷键,以便更方便我们的工作。
)结果如图9。
图9
为建立的两条腿的骨骼命名,选择左腿骨骼,选择菜单栏Modify→PrefixHierarchyNames弹出PrefixHierarchy窗口,在EnterPrefix栏里输入Left_点击OK,这样就为其左腿所有骨骼都添加了Left的名称。
用同样的方法,为右腿命名为Right.在Channels里,把Right_hip1后面的1去掉,结果为Right_hip.
●点击File→SaveScenes,保存文件。
腿部的骨骼基本完成,让我们整理一下思绪,继续下面的工作。
为了让脚部控制更灵活,让我们来为其添加反向骨骼。
●然后进入Side窗口,选择菜单栏Skeleton→JointTool,然后从脚跟处开始,从脚跟到脚尖创建一个骨骼,然后从脚尖到叫中部是另一根骨骼,从中部到脚踝部是最后一根反向骨骼。
结果如图10
.。
图10
●把刚建立的骨骼,在Y轴的方向上向下移动为-0.2,再次进入front视窗,把其沿X轴向,移动到左脚部位,(移动时可以按下V键,再移动其,这样刚建立的骨骼就会很精确的对准左脚,也可以在Channels里面,在TranslateX输入栏里输入数字,更精确的移动其位置。
)为新建立的反向骨骼命名为:
leftRLBase、leftRLToe、leftRLFoot、leftRLAnkle,如果11。
(关节的命名是根据maya的官方教程里的命名格式来的,在不同的公司,项目中的命名是有自己的规定的,这些命名应该是在项目开始的初期,由项目总监,或者项目的总负责来制定的,为了各个分工能有序的结合,一般公司都有自己的制作流程的,在制作流程里,文件的命名,以及存放位置,都会有明确的规定的,这里就是想告诉大家要养成好的习惯,为文件命名。
)
图11
●新建立个层,命名为:
leftControls,并选中LeftRLBase加入新建立的层中(具体操作在前面有具体操作步骤)并点击LeftRLBase层前面的V,使其不显示。
●然后再建立个新层,命名为:
rightControls,准备为另一只脚的反向骨骼使用。
Ctrl+S,保存一下文件,我们准备下一步,为骨骼加入IKChains.
●进入菜单:
Skeleton→IKHandleTool-口。
●首先点击ResetTool,在CurrentSolver后面的菜单栏里,选择ikRPsolver。
●然后先点击Left_hip关节,再点击Left_ankle关节,这样我们就建立了一个ikHandle1。
●选中ikHandle1,随便移动一下它,测试一下我们新建立的新的IK,是不是感觉像一条腿的骨骼了,别着急,我们继续下面的工作。
●再次进入菜单Skeleton→IKHandleTool-口。
●在CurrentSolver后面的菜单栏里选中ikSCsolver。
●然后点击Left_ankle关节,再点击Left_ball关节,建立新的IK。
●再点击键盘Y,再用鼠标先点击Left_ball,再点击Left_toe关节,又一条IK被我们创建出来。
这样,我们完成了左腿的ikHandle的创建,下面的工作就是让我们来控制它,让它们能适合我们后面的动画工作。
●为我们新建立的三条ikHandle重新命名:
ikHandle1命名为ikHandle_leftLeg,ikHandle2命名为ikHandle_SC_leftFoot,为我们建立的最后一个ikHandle3命名为ikHandle_SC_leftToe.结果如图12。
●好了,继续我们下面的工作,点击leftControls层前面的方框,使其层内的物体显现出来,也就是我们的leftRLBase,(左脚的反向骨骼)。
●先选中ikHandle_leftLeg再按下键盘上的shift键,选中leftRLAnkle,这样我们同时选中了两个物体。
●然后选择菜单栏:
Edit→Parent,(Parent即创建物体之间的父子关系)(或者快捷键P),使我们的leftRLAnkle与ikHandle_leftLeg之间建立了父子关系,这很重要,物体间产生了父子关系,我们控制“父”那么“子”就会同时受我们控制,先选择的是“子”,后选择的是“父”,这样,我们只要控制后者,前者就会很容易被我们同时控制。
●继续选中ikHandle_SC_leftFoot,按下shift键,再选择leftRLFoot,然后按键盘上的P,使两者之间产生父子关系。
●用同样的方法,建立ikHandle_SC_leftToe与leftRLToe之间的父子关系,OK,反向骨骼的基础控制已经完成,继续下面的工作。
图12
●选中Left_hip。
●选择Skeleton→MirrorJoint-口,进入MirrorJointOptions窗口。
●设置MirrorAcross为YZ,MirrorFunction为Orientation,SearchFor栏输入left,ReplaceWith栏输入right。
●然后点击Mirror,这样,我们就镜像出右腿的骨骼了。
●再选择leftRLBase。
●再次选择Skeleton→MirrorJoint,这样一下就镜像出我们的另一个反向骨骼。
●然后选择ikHandle_rightLeg,按下Shift键。
●再选择rightRLBase,再按P键,也就是同左脚一样,作个脚的骨骼与反向骨骼的父子关系。
●接下来,选择ikHandle_SC_rightFoot,按下Shift再选择rightRLFoot,再按P。
●同样,选择ikHandle_SC_rightToe,按下Shift再选择rightRLToe,再按P。
●这样,右脚的反向骨骼与右脚的骨骼链,就做好了Parent,也就是父子关系。
把我们新建立的rightRLBase加入到名为rightRLBase的层了,具体方法前面有讲,这里不再重复了,保存一下,准备下面的工作。
(以上工作完成的状态,可以参看项目文件body_01.mb)
●下面我们来做外部控制器,选择菜单Create→NURBSPrimitives→Circle.在场景中创建一个圆,选择圆,按下V键,再移动它到Left_ball关节处,然后选择缩放工具,进行缩放,使其稍大于左脚,也可以弄成自己喜欢的形状,(选择圆的时候,按F8进入Vertex控制级,可以看到所选物体上出现许多紫色点,选择后成黄色,就可以对其CVs进行调成,再次按F8可以退出Vertex控制级,如果大家对建模比较熟悉的话,对其应该会很熟悉,本教程就不对模型模块做过多的讲解了。
)结果如图13。
图13
●为了以便我们在动画时,能方便快捷的控制其,我们把圆的空间位置信息归零。
●确认圆处于选择状态,选择菜单Modify→FreezeTransformations,这样,再看Channels里面,圆的空间位置等数值已经初始化了。
●然后删除其历史纪录,圆还在选择状态,选择菜单Edit→DeleteBytype→History这样圆的历史节点就被清除了。
●为我们新创建的圆重新命名为:
LeftFootControl。
●接下来,我们为LeftFootControl添加我们需要的控制选项。
●选择LeftFootControl,进入菜单Modify→AddAttribute项,在AddAttribute窗口。
●设置AttributeName为footRoll;
●DataType,
●选择FloatNumericAttrbuteProperties栏目下,Minimum值为:
-10;Maximum值为:
10;Default值为:
0。
●设置如图14。
然后点击OK,这样我们就为圆添加了名为footRoll的控制项。
图14
●我们要复制一个圆,做右脚的控制器。
●选择LeftFootControl。
●进入菜单:
Edit→Duplicate-口,进入DuplicateOptions窗口。
●设置Scale第一输入框为-1。
●然后点击Duplicate,这样就复制出一个圆。
●把新创建的圆移动到right_ball关节处,然后归零其控制位置信息,方法与左脚一样。
重新命名为:
rightFootControl。
●创建膝部的控制器。
●选择菜单:
Create→Text-口。
●进入TextCurvesOptions窗口。
●在Text输入框里输入R,选择自己喜欢的字体,点击Create,在场景中创建了一个R。
●确定其处于选择状态,进入Edit→Ungroup。
●然后在次选择Ungtoup,完全解除其所在的组。
●确定其仍处于被选择状态。
●选择菜单:
Modify→CenterPivot,这样,Pivot就处于物体的中心了。
●选择R并移动其到右膝关节处,并重新命名为:
rightKneeControl。
●同样的方法,创建出L为左膝部的控制器,把它移动到左膝关节处,并重新命名为,LeftKneeControl.
●同时选择新创建的R与L,移动它们到膝盖部位的正前方的位置,然后归零其位置信息。
(归零的方法:
进入modify→FreezeTransformations.)
●然后分别把LeftKneeControl、LeftFootControl、rightKneeControl、rightFootControl加入leftControls组与rightControls层里。
●下面进行骨骼约束。
●先选择rightKneeControl,按下Shift键,选择ikHandle_rightLeg。
●然后进入菜单栏Constrain→poleVector,这样,膝关节就约束到了rightKneeContorl控制器上了。
●用同样的方法,实现另一条腿的约束。
OK,到这里存一下我们的项目,稍稍休息一下,整理一下思路,准备下面的工作。
●下面我们来使用在Maya里经常使用的一个方法,来设置脚的控制器。
●选择菜单Animate→SetDrivenKey→Set-口。
●进入SetDrivenKey窗口。
●在Persp窗口,选中LeftFootControl。
●在SetDrivenKey窗口点击LoadDriver。
●在Driver区的右边半区,选择footRoll项。
●然后在Persp窗口,按下Shift键,选取leftRLFoot、leftRLToe、leftRLBase。
●然后在SetDrivenKey窗口点击loadDriven选项。
●然后选中leftRLFoot、leftRLToe、leftRLBase。
●在Driven的右半区选择rotateX项,点击Key按钮,结果如图15。
●
图15
●在Driver半区,选择LeftFootControl。
●在选择footRoll。
●在Channels里面,设置FootRoll选项为10。
●然后Driven半区,选择leftRLFoot。
●再选择rotateX。
●在Channels里面,设置RotateX为22。
●然后点击Key。
●用上面的方法,设置leftFootControl的footRoll的值为10。
●再设置leftRLToe的rotateX的值为65。
●点击Key。
●继续工作,设置leftFootControl的footRoll的值为6。
●设置了leftRLFoot的RotateX值为12。
●点击Key。
●再次选择LeftFootControl的footRoll项,设置其数值为10。
●然后选择leftRLFoot的rotateX选项,设置其数值为-20。
●点击Key。
●然后选择LeftFootControl的FootRoll,(在Channels里,选择FootRoll,不是点击输入框),按下鼠标中键,在视窗中左右拖动鼠标,测试刚刚设置的效果,结果还不错吧?
继续我们的工作。
●选择leftFootControl的footRoll的值为-10。
●再选择leftRLBase的rotateX的数值为:
-35。
●点击Key。
●用上面的方法,测试一下效果,哈哈,感觉如果,是不是有点意思了。
继续努力。
●再次选择leftRLBase,按下Shift键,选择LeftFootControl。
●然后按下P键,做个父子关系,OK,左脚的控制基本完成,存一下盘。
●(用上面的方法,试着把右脚的控制设置一下,不着急,慢慢来,慢慢会熟悉的,大家都是从这个阶段过来的)休息一下,准备我们下面的工作吧。
●下面我们开始为我们的角色设置躯干的骨骼,还记得我们初中的生理课程中人的生理弯曲吧,我们就模仿那个,来作出我们的角色需要的骨骼。
●选择菜单JointTool,在我们的人物角色的躯干部分设置8块骨骼,并且重新命名,结果如图16.
●
图16
●下面我们设置新建立的骨骼的IK.
●选择菜单Skeleton→IKSplineHandleTool。
●先点击Neck骨骼。
●再点击Hip骨骼,这样,就完成了IKSplineHandle的设置。
我们在创建IKSplineHandle的同时,它会自动生成一条名为Curve1的曲线。
●我们在Outliner视窗中选中Curve1。
●然后按F8键,进入ControlVertex层级,我们会看见Curve1上出现4个名为CVs的紫色的点,选择后为黄色。
●选择最上面那个点。
●然后选择菜单Deform→CreateCluster-口。
●进入ClusterOptions窗口。
●选择Mode下Relative选项。
●然后点击Create,这样视窗中就会出现一个为C的图标,在Outliner窗口显示为象绿色葡萄的一个标志,名字为ClusterHadle,如图17.
图17
●选择我们新创建的ClusterHadle。
●然后按组合键,Ctrl+A,进入AttributeEditor编辑视窗。
●选择ClusterHandleShape标签,然后用鼠标点击Origin后面的第三个输入框。
●按下Ctrl按键不放,同时按下鼠标左键,并左右拖动鼠标,把我们创建的ClusterHadle的Oringin移至我们的角色模型的线框外。
●然后用同样的方法进入ControlVertex层级为那条名为Curve1的线段剩下的三个CVs创建新的ClusterHandle。
●并且移至模型的线框外,(如果读者是刚刚接触Maya,对其还不太熟悉,不要着急,按着上面的步骤,一点一点的试,凡事都需要一个过程,我们之所以要创建ClusterHadle,就是利用其来控制我们创建的那条IKSplineHandle产生的Curve上的四个CVs,你可以选择其中一个我们创建的ClusterHadle,移动一下,会发现我们创建的躯干上的骨骼会随之而动,哈哈,这下就明白我们创建ClusterHadle的真正用意了吧,象这样的应用,在以后的制作中会很常用,继续努力吧,有意思的事情还多着呢。
)
●再次选择ClusterHadle1。
●按键盘上的Insert键。
●然后按下V键不放。
●再按下鼠标左键,移动ClusterHadle1的Oringin至neck关节上。
●同样的方法,把cluster2Handle的Oringin移至Bake3关节上。
●cluster3Handle移至Back1关节上。
●cluster4Handle移至Hip关节上。
●(这几步可以参看光盘中的项目文件。
Body_04.mb)
●最后为新创建的四个clusterHandle重新命名。
●从上至下分别为clusterNeck,clusterChest,clusterAbs,clusterHip。
●然后按下shift,先选分别选中clusterNeck,clusterChest,clusterAbs,clusterHip。
●最后选择root关节。
●然后按下P键,做个父子关系。
●这样四个新建立的控制器,就会被root关节所控制。
●继续下一步,选中Left_hip。
●再选择Hip。
●按下P。
●选择right_hip。
●再选Hip,按下P,结果如图18。
图18
●选中root关节,随意移动一下,哈哈,感觉怎么样,是不是象真实的骨骼了,是不是觉得我们的工作越来越有意思了,保存一下文件,整理一下思绪,准备我们后面的工作。
●打开我们的项目文件Body_05.mb.
●选择菜单栏:
File→Import,导入一个我们事先准备的一个名为Curve.mb的项目文件,倒入后,我们场景中就多了一个名为Curve1的正立方体的线框模型。
●选择新导入的Curve1。
●选择菜单:
Modify→CenterPivot。
●然后按下V键,把其移动到Back3关节上,再对其进行缩放,以及对它的Vertex进行调整,(在前面有讲怎么对其Vertex点的调整,用鼠标指着要编辑的模型体按下左键,然后选择ControlVertex,就进入了次物体层级,选择紫色的点,就可以拖动它们,调整它们的位置,就可以得到我们想要的形状,对这个我们新导入的Curve的外型没有具体的要求,只要自己感觉舒服就OK,下面我们一点一点知道它的作用的。
)
●再新创建一个层,命名新的层为UpperBody。
●然后把Curve1放入UpperBody层。
●选中Curve1。
●然后选择Modify→FreezeTransformations,使其的位置信息归零。
●然后重命名其为:
chestControl,得到如图19的结果.
●确认chestControl处于选择状态。
●选择菜单Edit→Duplicate,或者按快捷键Ctil+D键,复制出一个新的chestControl1。
●把其移动到角色模型的臀部的位置上,用上面讲过的方法,对其外形进行调整。
●然后按Insert,再按下V键。
●移动其重心到Root骨骼上。
●重新命名其为HipControl,然后用上面讲过的方法,归零其空间位置信息。
图19
完成以上工作,我们得到如图20的结果。
图20
●继续我们的工作,选择菜单Create→NURBS→Circle,创建一个圆。
●选择