Maya骨骼绑定IKFK无缝切换-双向约束法
maya模型怎么绑定骨骼?maya骨骼绑定教程
maya模型怎么绑定⾻骼?maya⾻骼绑定教程maya模型想要绑定⾻骼,该怎么绑定呢?下⾯我们就来看看详细的教程。
AutoDesk maya 2015 64位中⽂版(附序列号和密钥)类型:3D制作类⼤⼩:1.52GB语⾔:简体中⽂时间:2016-01-21查看详情1、打开maya这款软件,进⼊maya的操作界⾯,如图所⽰:2、在该界⾯内找到create菜单⾥的polygon primitives选项,如图所⽰:3、点击polygon primitives选项在其内找到cylinder选项,使⽤cylinder命令在透视图⾥创建⼀个圆柱体,如图所⽰:4、再在动画模块⾥找到skeleton菜单,如图所⽰:5、点击skeleton菜单在其⼦级菜单⾥找到joint tool命令,如图所⽰:6、使⽤joint tool命令在front视图⾥创建⼀套⾻骼,如图所⽰:7、⾻骼创建好以后,再在skeleton菜单⾥找到IK handle tool命令,为⾻骼创建IK控制,如图所⽰:8、选择IK handle tool命令为⾻骼创建IK控制,如图所⽰:9、再在菜单⾥找到skin菜单,如图所⽰:10、点击skin菜单,在其⼦级菜单⾥找到bind skin选项,如图所⽰:11、点击bind skin选项,在其下拉菜单⾥找到smooth bind选项,如图所⽰:12、点击smooth bind选项后我们就将⾻骼绑定了,如图所⽰:13、再在skin菜单⾥找到edit smooth skin选项,如图所⽰:14、点击edit smooth skin选项,在其下拉菜单⾥找到paint skin weights tool选项,选择该选项后为每节⾻骼调节权重值,如图所⽰:15、调节好以后选择IK的控制⼿柄,移动⿏标可以看到我们绑定的模型就跟着⼀起动起来了,如图所⽰:以上就是maya⾻骼绑定教程,希望⼤家喜欢,请继续关注。
Mel 在三套骨骼相互转换时的应用
Mel 在三套骨骼相互转换时的应用苏华岭在maya骨骼的绑定过程中,有很多步骤都需要重复制作,这不仅增加的工作量而且制作过程枯燥无味,并且容易出现错误严重影响工作效率,给动画的工作人员带来很大的麻烦。
在这时如果适当的用Mel来编写一段小代码或者表达式往往会给整个绑定过程带来事半功倍的效果。
一个正常人物的设定往往需要至少三套骨骼的相互协作才能完成一套和谐的稳定的动作,所谓三套骨骼就是指FK骨骼、IK骨骼以及刷权重用的绑定骨骼。
在工作的时候IK和FK只能显示其中的一套并且依附于绑定骨骼,而且需要另外的一套自动的隐藏,其工作原理是将IK控制骨骼和FK控制骨骼分别用父子约束命令到绑定骨骼上,然后在通过控制约束接点来控制绑定骨骼是跟随FK骨骼还是跟随IK骨骼。
下面就用人体绑定这一例子来解释说明一下:首先建立骨骼及其控制器如图所示:蓝色代表IK骨骼系统,红色代表FK骨骼系统,黄色代表绑定骨骼系统控制器FK1FK2FK3分别与骨骼FK1FK2FK3执行父子约束,并且依次FK3_con_gp 与FK2_con ”P”上,FK2_con_gp与FK1_con ”P”上;IK控制器与IK手柄父子约束,IK_lct与IK手柄矢量约束;然后要做的就是分别把FK骨骼和IK骨骼约束到绑定骨骼上:选择IK1、bone1执行父子约束,IK2、bone2执行父子约束,IK3、bone执行父子约束。
选择FK1、bone1执行父子约束,FK2、bone2执行父子约束,FK3、bone执行父子约束。
做完之后会是这种效果:接下来要做的就是使用Mel来控制FK及IK的显示或隐藏上图黄色圆圈命名为IKFK,给IKFK添加属性Switch,并编写一下语言:if (IKFK.switch == 0){FK1.visibility = FK2.visibility = FK3.visibility = 0;IK1.visibility = IK2.visibility = IK3.visibility = 1;FK 1_con.visibility = FK 2_con.visibility = FK 3_con.visibility = 0;IK_con.visibility = 1;IK_lct.visibility = 1;}if (IKFK.switch == 1){FK1.visibility = FK2.visibility = FK3.visibility = 1;IK1.visibility = IK2.visibility = IK3.visibility = 0;IK_con.visibility = 0;FK 1_con.visibility = FK 2_con.visibility = FK 3_con.visibility = 1;IK_lct.visibility = 0;}这个表达式的原理是:当IKFK.switch的属性为0时,FK的骨骼及控制器隐藏,IK的骨骼及控制器显示;当IKFK.switch的属性为1时,FK的骨骼及控制器显示,IK的骨骼及控制器隐藏。
maya自定义(手臂、手)绑定
Arm辅助骨骼1.复制骨骼(shoulder),将手指断开。
2.两份,分别是IK、FK3.命名4.IK、FK骨骼分别方向约束SK骨骼(不保持偏移)◆注意:手腕处不添加约束Fk控制1.创建控制器◆位置:sk_clavice(锁骨)、sk_shoulder(肩)、sk_elbow(肘部)◆命名、历史……2.添加约束◆控制器方向约束fk骨骼(锁骨控制器约束sk骨骼)◆骨骼点约束控制器3.设置父子关系◆Elbow_ctrl—P—shoulder_ctrl—p—clavice_ctrl—p—back_ctrl4.sk_L_shoulder(骨骼)点约束fk_L_shoulder(骨骼)IK控制1.创建ik手柄◆RP◆在shoulder和fream之间◆选择IK手柄(effector),d、v捕捉在手腕处。
2.创建控制器◆位置:手腕、肘部正后方(极向量控制)◆命名:IK_wrist_ctrl、IK_elbow_ctrl3.创建约束◆IK_wrist_ctrl点约束ik手柄◆IK_elbow_ctrl极向量约束ik手柄◆Sk_L_shoulder(骨骼)点约束ik_L_shoulder(骨骼)4.设置Global◆将IK_wrist_ctrl、IK_elbow_ctrl打组(轴心在锁骨)◆命名:arm_IK_ctrl_GRP◆使用sk锁骨父子约束arm_IK_ctrl_GRP◆创建locator(Global_locator)◆Global_locator父子约束arm_IK_ctrl_GRP◆为IK_wrist_ctrl添加Global属性(0-10)◆设置驱动关键帧●IK_wrist_ctrl的Global属性驱动arm_IK_ctrl_GRP的约束节点Ik、FK切换1.创建控制器◆添加属性(ik_fk、IK_vis、FK_vis)●ik_fk(0-10)●IK_vis、FK_vis(on\off)2.驱动关键帧◆ik_fk属性驱动sk_shoulder、elbow、fream的约束节点的约束权重属性3.属性连接◆IK_vis连接ik控制器的显示属性◆FK_vis连接fk控制器的显示属性手腕控制1.创建控制器◆位置:wrist◆命名:fk_wrist_ctrl◆历史……2.创建约束◆fk_wrist_ctrl方向约束sk_wrist◆sk_wrist点约束fk_wrist_ctrl3.设置fk_wrist_ctrl跟着IK、FK转◆将fk_wrist_ctrl打组(fk_wrist_ctrl_GRP)●轴心在sk_wrist◆fk_elbow_ctrl方向约束fk_wrist_ctrl_GRP◆ik_wrist_ctrl方向约束fk_wrist_ctrl_GRP◆设置驱动●IK_FK_blend的IK_FK驱动fk_wrist_ctrl_GRP的约束权重设置前臂扭曲1.sk_L_wrist方向约束fk_L_wrist2.sk_L_wrist方向约束ik_L_wrist3.添加表达式◆fk_L_fream.rotateX = fk_L_wrist.rotateX*0.3;◆ik_L_fream.rotateX = ik_L_wrist.rotateX*0.3;4.设置驱动IK_FK_blend的IK_FK驱动fk_L_wrist、ik_L_wrist的约束节点的约束权重手部1.创建控制器◆位置:在手指骨骼处2.对位轴向◆为控制器打组(GRP2)◆骨骼方向约束(不保持偏移)GRP2◆删除约束节点3.添加约束◆控制器方向约束(保持偏移)骨骼◆骨骼点约束(保持偏移)控制器4.再次将控制器打组(GRP1)——为了驱动关键帧5.其他手指同上可以使用“手指控制器mel.txt”6.设置父子关系◆子关节的控制器的GRP2—p—父关节的控制器上◆最后—p—在手腕上7.设置驱动关键帧◆各手指弯曲◆手指张开、合拢。
maya骨骼绑定详细教程
反转脚1.创建好腿部骨骼和反转脚2.创建腿部ik控制器3.先选择反转脚在选择反转脚离ik最近的骨骼设置点约束如下图坐标轴的位置的骨骼4.在选择反转脚在选择第二个骨骼和脚步骨骼的第二个骨骼设置方向约束5.绿色的是骨骼白色的是翻转角选择蓝色数字1下面的白色骨骼和红色数字1琐事的骨骼便是第四部的设置6.选择蓝色数字2下的白色骨骼和红色数字2所示的骨骼设置方向约束。
要先选择翻转角在选择翻转角上的骨骼约束要保持偏移和所有轴7.下图是脚后跟抬脚脚尖抬脚打组方式控制脚步运动去除刚才翻转角的设置1.选择ik sc 选择脚踝的关节在选择脚中间的骨节打上ik sc2.选择中间的骨节在选择脚尖的骨节打上ik sc3.选择腿部ik 和中间ik 打上组shift 加选两个ik 然后Ctrl+G 打组4.他们的坐标不在中间骨节哪里我们按住d 并且按住v键坐标会自动吸附到骨骼上5.在大纲视图里选中组1 旋转法线脚尖也在运动选择脚尖的ik 按住Ctrl+a 选择ik3的ik控制手柄属性选择粘滞这样脚尖就不会跟着运动了脚中间抬脚6.选择组1在选择脚尖ik 打组将坐标移到脚尖的位置可以做脚尖的抬脚动画7.在对组组3进行打组并将坐标移动到脚跟骨节的位置可以做到脚跟抬脚的动画脚步控制器的制作去除刚才ik sc打组的设置打开反转脚用曲线做出和脚形状类似的形状先选择反转脚在选择线按p键将反转脚和曲线做个父子约束选择曲线将中心调到脚跟位置按d 键v键就可以膝关节控制器的制作选择创建-文本输入l为左脚的控制器选择l 按住d键将坐标调到中间然后按住v键将他吸附到膝关节的位置在往前来一点距离清除历史冻结变换选择控制器选择ik选择极向量约束可以用控制器调节膝关节的移动选择控制器在选择脚步的控制器按住p键将两个做一个父子约束为脚部控制器创建管理属性选择脚步控制器在层编辑器选择编辑-属性-添加属性我们可以为属性命名和最大值最小值初始值层通道盒子会显示刚才添加的属性选择窗口-常规编辑器-连接编辑器打开属性连接面板选择关节9即是我们要用这个属性控制的关节点击重新加载右侧在左侧找到抬脚属性一般在最下面在选择右侧在右侧找到关节9的z轴旋转属性rotatez 即是z轴的旋转属性然后直接关闭属性连接器调整抬脚属性的数值看看有没有变化按住中键左右拖动改变数值如果感觉第一次设置的抬脚属性的数值不满意可以选择抬脚-编辑-编辑属性选择抬脚改变数值同样的方法为关节9设置左右旋转的属性为脚尖设置抬脚的属性设置受驱动关键帧控制抬脚去除刚才属性编辑器的设置重新添加抬脚属性设置-20 最大值20默认值0选择抬脚属性编辑-设置受驱动关键帧加载抬脚属性为驱动者选择骨骼7 ,8 ,9加载受驱动者除了离ik最近的骨骼其他三个要全选选择脚步控制器的抬脚数值输入0在选择关节9选中要控制的轴点击驱动关键帧的关键帧选项就给这个动作在抬脚数值是0的时候设置了关键帧然后选择抬脚属性将属性设置为10 选择关节9的z轴然后调整z轴旋转的位置点击关键帧这样就在当抬脚属性是10的时候z轴旋转的位置接着为关节7设置属性和关节9一样只不过他的数值不是0-10而是10到20 当抬脚属性是10的时候关节8是一个状态当关节8是20的时候又是一个状态关节7同样设置可以0—20之间做出变换属性手指关节的创建1.新建一个平面2.将平面移动到小指处将平面作为参考面做出骨骼平面分段为10.103.选择激活选定对象最后一个磁铁就是激活选定对象4.选择骨架进行创建骨骼5.选择骨架确定关节方向使关节方向一致6.同样的方法为大拇指创建骨骼7.8.完成人体的绑定在绑定下部的时候要多留一个骨节作为选择所有骨节的关节9.将做好的骨骼ik 控制器分别放进不同的层里手臂骨骼绑定ik控制器首先为手臂创建ik控制手柄在为手臂创建控制器,一般先用圆形曲线做控制器选择圆形控制器选择ik进行点约束保持偏移所有坐标在选择控制器选择手关节进行方向约束用圆形控制器控制手骨骼的旋转选择创建-定位器将定位器放置到手肘的关节上按v键吸附到手肘的位置向后移动一下位置选择定位器选择ik 给他们添加极向量约束这样手臂在运动的时候手肘也会运动的还有一种方法可以控制肘部就是连接编辑器为圆形控制器添加属性zhoubu为zhoubu添加属性最大10最下-10默认0选择zhoubu-编辑-连接属性编辑器用zhoubu控制ik的twist属性就是ik的扭曲属性手指关节的控制器创建一个圆形的控制器来控致手指的弯曲我们为控制器创建一个弯曲z轴的属性选择弯曲z-属性-连接编辑器-选择弯曲z选择手指关节3跟关节都选上然后在编辑器里选择载入右侧选择关节的z轴旋转属性在选择第二个关节如上图选择重新载入右侧我们重新选择第二跟关节的z轴旋转选择第三根关节选择编辑器里重新载入右侧我们重新为最后一个关节连接旋转属性也就是用控制器的旋转属性控制三根骨节的z轴旋转选择控制器在添加一个y轴的旋转添加y轴旋转只要选择手指控制器和手指关节创建一个xuanzhuany轴的属性连接编辑器只要对3跟骨节创建一个整体的旋转就可以了其他手指的创建和上面的方法一样另外做完后要为手指控制器和手部控制器做一个父子连接将手指控制器p到手控制器上手臂fk控制器的创建创建一个圆形的控制器将他移动到肩部手臂跟骨骼分别复制出来3个园来控制手臂第三个园为了区分我做成四角形的因为我们只用到旋转命令所以我们将用不到的选项锁定并隐藏选择肩部的圆圈在选择手臂骨骼对其进行方向约束选择肘部的圆圈在选择肘部的骨骼对其进行方向约束选择手部的四角形在选择手部的骨骼对其进行方向约束做好约束之后因为有ik控制器所以fk不起作用我们创建一个圆形的控制器将他吸附到肘部关节的位置调整大小向后面移动一段距离清除历史冻结变换为控制器创建一个属性属性的最大值为1最小值为0当最大值为1时受ik控制大控制器的ikfk属性是0时受fk 控制选择ikfk-编辑-设置受驱动关键帧将ikfk设置为驱动者加载将ik设置为受驱动者加载当ikfk等于0时ik混合选项等于0设置关键帧当ikfk等于1时ik混合选项等于1设置关键帧选择肘部的圆形控制器在选择肩部的控制器做一个父子连接选择四角形控制器在选择肘部控制器做一个父子连接这样其他两个控制器就会随着肩部控制器运动选中手指控制手指控制器现在和手的控制器是在一个组里我们选中手指控制器按住shlft+p进行解组重新选择手指控制器然后选择手腕的骨骼将控制器和手腕p到一起我们点击手腕的骨骼发现手腕即受ik控制器的控制又受fk 控制器的控制我们选择手腕下面的ikfk属性选择设置受驱动关键帧一定要选择下面的属性在选择加载受驱动者Nurbs Circle 3w0 这个是ikNurbs Circle 10w1 这个是fk有可能和大家的显示不一样一般上面是ik 下面是fk模型上面的控制器太多我们可以选择ikfk的控制器当ikfk控制器是1的时候让ik控制器显示fk控制器隐藏选择ikfk控制设置驱动关键帧将ikfk加载成驱动者将ik控制器加载为受驱动者当ikfk等于1是ik的可见性为显示设置关键帧当ikfk等于0时ik的可见性等于不显示设置关键帧Fk同样的方法设置设置脊椎控制器首先做出五个园分别代表头部颈椎胸部腰部重心(臀部)控制器将五个控制器吸附到相应的骨骼上选中头部骨骼对其进行方向约束再选中脖子的骨骼将脖子的骨骼p给头部控制器这样头部控制器就是脖子的子物体以此做出前四个的控制器最后一个控制器需要父对象因为他不只有旋转还有移动选择骨骼断开臀部的父子连接编辑菜单最下面shift+p 断开连接我们让上半身控制上半身下半身控制下半身在做一个上半身的控制器选中骨骼选中控制器按p 让控制器控制上半身在选择骨骼控制下半身的控制器同样p上去选择下半身控制器加选上半身控制器按p键进行父子连接现在手臂控制没有跟着运动我们做一个肩部的控制器给他和肩部骨骼做一个方向约束然后将手臂控制器p给肩部再将肩部p给胸部控制器。
浅谈MAYA骨骼设置中IK与FK无缝转换的实现
浅谈MAYA骨骼设置中IK与FK无缝转换的实现作者:马跃来源:《电脑知识与技术》2012年第09期摘要:三维动画制作中,存在着正向动力学与反向动力学两种控制方式,这两种控制方式各有特点,在实际项目制作时更是相辅相成,不可缺少,甚至很多时候,需要二者不断转换从而达到制作目的。
该文通过对Maya骨骼设置中正向动力学与反向动力学的分析,总结了正向动力学与反向动力学各自的特点,并指出正向动力学与反向动力学在Maya中相互转换的难点所在,最后论述如何通过表达式实现无缝转换的制作思路。
关键词:三维动画;骨骼设置;IK;FK中图分类号:TP37文献标识码:A文章编号:1009-3044(2012)09-2141-031正向动力学与反向动力学在三维软件中,角色动画的控制方式有两种,即正向动力学(Forward Kinematics,简称“FK”)与反向动力学(Inverse kinematics,简称“IK”)。
其中正向动力学是遵循父子关系的层级,用父层级物体带动子层级的物体;反向动力学一般运用在骨骼物体上,是通过先确定末端子骨骼的位置,然后反求推导出其所在骨骼链上n级父骨骼的旋转角度,从而确定整条骨骼链形态的方法。
正向动力学与反向动力学各自有其特点,正向动力学计算简单,运算速度快,动画时需从父关节到子关节逐一指定每个关节的角度;反向动力学求解方程组需要耗费相对较多的计算机资源,但随着计算机硬件性能的不断升级,这个问题并不明显。
事实上,正向动力学与反向动力学,本身没有优劣之分,我们需要结合实际制作项目,具体问题具体分析。
例如,人在走路时,手臂进行摆动,这时肩关节带动大臂带动小臂带动手腕进行曲线运动,这时更符合正向动力学的运动方式;如果使用反向动力学,就会造成更多的关键帧去控制末端骨骼以便精确算出其父关节的运动角度。
再如,人在做俯卧撑运动时手臂末端关节保持在地上,这时运用反向动力学,反向求出大臂和小臂的骨骼角度更加方便,而这时如果运用正向动力学,通过大臂和小臂的角度变化实现手保持在底面上的效果就会非常困难。
Maya角色动画教学中IK―FK无缝切换技术的教学法探究word精品文档5页
Maya角色动画教学中IK―FK无缝切换技术的教学法探究由于计算机软件技术与硬件技术的迅猛发展,在CG领域与动画制作技术中,三维动画技术应用范围越来越广泛。
三维动画技术由于生产成本更低,工作效率更高,艺术表现力更强,因此在动画制作技术中逐渐占据主导地位,而二维动画制作技术则在一些有特殊风格要求的动画领域中继续坚守。
在很多优秀的三维动画作品中,动画角色的动作真实自然,准确流畅,除了动画师具有较高艺术素养,对动画运动规律掌握较好,能够熟练运用之外,还与三维软件技术的发展与工具的熟悉程度有关。
现在高校动画专业中一般采用Maya作为动画制作的主要工作软件进行教学,这与业界主要采用Maya作为工作软件是一致的。
Maya在处理动画角色的运动控制时,一般都会采用IK-FK进行切换的技术,但学生在使用IK与FK技术时,经常出现角色动作跳动、不平顺的情况。
本文将主要对IK与FK技术进行介绍,讲解IK与FK切换的方法,IK与FK在进行切换时会出现角色动作跳动的原因、技术解决方法,以及笔者本人在教学实践中如何通过教学设计减少学生IK-FK控制错误。
1.IK-FK的定义IK是Inverse Kinematics的缩写,称为反向动力学,而FK是ForwardKinematics的缩写,称为前向动力学。
现实世界中的人或动物的骨骼是只能旋转而不能移动的,也就是说我们做任何一个动作,都是由一根或多根骨骼共同旋转完成的。
例如,我们打一拳出去,我们直觉以为是拳头或者手腕移动到某个位置完成动作,实则是由我们的前臂和上臂的骨骼共同旋转完成的。
在Maya中,这种由骨骼旋转完成的动作的控制方法称为FK,前向动力学。
但是由于前向动力学控制不符合我们的直觉,另外在三维软件中用前向动力学控制角色运动有时操作较复杂,所以科学家开发了IK,反向动力学,反向动力学控制虚拟角色时可以直接移动角色的骨骼,如手腕,实现打出一拳这样的动作,它的实质还是由旋转前臂与上臂骨骼完成的,只是在虚拟角色的操作上可以移动手腕直接实现动作。
Maya 角色动画中IK—FK 无缝切换的技术探讨
Maya 角色动画中IK—FK 无缝切换的技术探讨作者:卢景峰来源:《电脑知识与技术》2014年第11期摘要:该文阐述maya角色动画中IK-FK相互转换的原理,介绍几种IK-FK无缝切换的几种思路,重点探讨利用三套骨骼配合Maya mel语言实现骨骼IK-FK之间无缝转换的实现方法,希望能给喜欢maya三维角色动画设计的朋友有所启发和帮助。
关键词:Maya;角色动画;IK FK;无缝转换;Mel中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)11-2631-03Abstract:This paper describes a theory of the transformation between Ik and FK in the Maya character animation, introducing seamless switching between IK and FK, which focuses on using the method of three sets of bones together with Maya Mel languages to achieve seamless transition of skeletal between IK and FK. The author hopes to inspire and help those who like three dimensional character animation of Maya design.Key word: Maya;character animation;IK FK;seamless handover;Mel随着计算机技术的不断发展,三维动画技术在很多影视,动画以及广告中的运用也越来越广泛。
在很多优秀的作品当中,我们看到动画角色的动作真实自然,准确流畅,这和动画师对角色运动规律的深度理解和熟练掌握是密不可分的。
MAYA人体骨骼绑定
MAYA⼈体⾻骼绑定⼈体⾻骼绑定1:脚部⾻骼绑定1,腿部绑定有两种⽅式,⼀种格式创建反转⾻骼,⼀种是控制器打组⽅式。
反转脚的建⽴:,⾸先选择末端关键,再选择脚部IK创建点约束。
要做抬脚动画,选择末端关节,在选择脚部⾻骼绑定⽅向约束,接着选择倒数第⼆段关节,再选择脚部末端关节,同打组⽅式绑定:打组⽅式要把脚部两个关节也打上IK,⽤IS。
把脚部IK(1)和脚掌IK (2IK(3)属性,选粘带。
以脚尖抬脚跟,然后和3打组,把中⼼放到3上。
同样要做抬脚尖的动作,就把前⾯的打组,把中⼼⽅脚跟关节。
⼆.脚部控制器的创建⼀个圆环,调整跟叫差不多,选择反转脚,再选择控制器,按P创建⽗⼦连接。
最后把控制器中⼼放到脚跟。
三.膝盖控制器1,把控制器归零操作。
不能直接清零,要把历史记录删去,再,。
控制腿部的旋转,创建⼀个⽂本或则其他图形,调整位置,然后清零(冻结变化),选择控制器,再选择IK在⽤极向量约束。
,最后为了让腿部控制器跟随脚部运动,选择脚部控制器在选择脚部控制器,按P建⽴⽗⼦连接。
四.为脚步控制建⽴管理属性(关联控制)。
有两种⽅法控制属性,⼀种是连接控制器控制,⼀种是设置驱动关键帧控制。
1.选择控制器,添加属性,,4,为脚部控制器创建管理属性,在左侧找到刚才添加的属性名称,再右边找到要控制的属性名称,关闭就可以。
2.设驱动关键帧控制属性。
添加属性后,选择控制器,加载驱动者,选翻转脚⾻骼3,加载受驱动,选择要驱动的轴向。
可以⽤⼀个属性控制⼏个属性,不可以多个控制⼀个。
原始打⼀个关键帧,调关键帧帧数,再调驱动者的运动,再调受驱动者的运动,打关键帧,完成。
2,CTRL+D复制快捷键。
Ctrl+G打组。
五.脊柱⾻骼绑定1、,要对某个关节调节,按INSERT键调节。
脊柱绑定操作1.脊柱绑定⼀般⽤FK绑定,在脊柱上设置5个控制器,,选着控制器再选择要绑定的关节⽤⽅向约束,为了让控制在控制时能跟随运动,选着下⼀个⾻骼在选择控制器,按P键添加⼀个连接,例如:头部的控制器,就要和颈部的⾻骼建⽴连接。
Maya人体模型骨骼绑定教程
Maya人体模型骨骼绑定流程一、创建骨骼1)骨骼创建。
在Animation模式下,选择菜单Skeleton Joint Tool,骨骼创建需要在正交的视角中进行创建,如对于大腿、上身和头部,要在Side view视图中添加骨骼;对于手,则在Top view视图中添加骨骼。
然后还需在各个视图中对骨骼的位置进行调整。
如图所示,在Side view视图中为上身和大腿添加骨骼。
如图所示,在Top view视图中为手添加骨骼。
单独调整关节位置的方法:选中目标关节,摁住“D”,用鼠标左键移动关节位置,这样不会对其它关节造成影响。
2)骨骼命名和修改关节大小。
切记:养成良好的命名习惯很重要!选中一个关节后,在右边Channel box中为骨骼命名,并修改关节大小。
如图所示,我为选中的关节命名为Lhand_1,骨骼半径Radius设为。
注意:创建骨骼的初始参数Translate X/Y/Z的值可以非零,但Rotate X/Y/Z的值最好设置为0,因为如果初始旋转参数非零,会对以后的IKhandle创建会带来很大的麻烦。
图图1.2图1.33)插入骨骼。
选择菜单Skeleton→Insert Joint Tool,同样在正交视图中插入骨骼。
如图所示,点击上身的根关节,即插入了一个新关节,原根关节仍为新骨骼的根关节。
4)连接骨骼。
同时选中两个关节,然后选择菜单Edit→Parent(或使用快捷键“P”),创建父子关系,即将两个关节连接了起来。
其中先选中的关节为子关节,后选中的关节为父关节。
5)设置关节自由度。
选中目标关节,在Attribute Editor面板中设置关节自由度。
如图所示,在Joint栏中的Degrees of Freedom勾选相应的自由度。
然后在Limit Information栏的Rotate栏中设置各个自由度的旋转角范围。
如图,我将目标关节绕Z轴旋转的角度范围设为-76°—100°,其它自由度类似的设置。
maya骨骼绑定详细教程
maya骨骼绑定详细教程目录一、骨骼绑定概述 (2)1. 骨骼绑定简介 (3)2. 骨骼绑定在动画制作中的作用与重要性 (4)3. Maya软件在骨骼绑定中的应用 (5)二、骨骼系统基础 (7)1. 骨骼系统概述 (8)2. Maya中的骨骼系统 (9)3. 骨骼系统的基本组成 (11)三、Maya软件基础操作 (12)1. Maya软件界面介绍 (13)2. 基本操作工具介绍 (15)3. 快捷键设置与使用 (16)四、骨骼创建与编辑 (17)1. 创建骨骼 (18)(1)创建基本骨骼结构 (19)(2)创建细节骨骼结构 (19)(3)骨骼命名与整理 (20)2. 编辑骨骼属性 (22)(1)编辑骨骼参数设置 (23)(2)调整骨骼层级关系 (23)(3)骨骼旋转与位置调整 (25)五、骨骼绑定流程 (26)1. 模型准备与导入 (26)2. 创建骨骼系统并摆放骨骼位置 (27)3. 骨骼权重绘制 (28)一、骨骼绑定概述Maya骨骼绑定是三维动画和游戏开发中一个关键环节,它涉及到将角色模型与骨骼系统相连接,以便进行逼真的运动仿真。
骨骼绑定不仅确保角色的姿势和动作流畅自然,还能为角色添加重量感和真实感。
创建骨骼结构:首先,根据角色的外观和运动需求,使用Maya 的骨骼工具创建合适的骨骼结构。
这通常涉及创建根骨骼和多个子骨骼,以模拟角色的肌肉和关节。
设置控制器:控制器是用于操纵骨骼的关键元素,它们可以是简单的滑块或复杂的权重绘制工具。
通过控制器,动画师可以精确地控制角色的动作。
关节绑定:关节是骨骼之间的连接点,正确设置关节的旋转和位置关系对于保持角色动作的自然性至关重要。
Maya提供了多种工具来帮助用户精确调整关节的绑定。
权重绘制:权重绘制是将皮肤变形与骨骼绑定相结合的过程。
在这个过程中,动画师需要为每个骨骼分配权重,以确保皮肤变形能够准确地反映骨骼的动作。
运动学和动力学模拟:完成绑定后,可以使用Maya的运动学和动力学工具来测试角色的动画。
maya中角色动画中IK 与 FK 的转换思路
角色动画中IK 与FK 的转换作者水晶石教育陈菁杉做过角色动画的朋友们是否都有这样的经验,到手的角色在四肢上往往有两套控制系统,一个是IK控制系统,一个是FK控制系统。
两种控制系统往往要交互使用才能KEY出合理的动画,其中IK 和FK 转换的问题经常会困扰着我们,这次让我们想想办法,讨论一下角色动画中IK与FK的转换。
为什么有的时候对于我们人类来说最简单不过的上肢动作,动画师却要费劲九牛二虎的力气才能让角色做出来。
又或许,让胳膊变个魔术解解大家心中的疑惑。
1、角色动画中为什么要同时存在IK/FK两种骨骼控制方式?有些初学的朋友问,这两种方式有区别么?为什么不能直接用其中一种控制方式得了,要是只做一种肯定能省不少力气吧。
(笔者也曾经窃窃这么想过,但是这样偷懒,KEY 动画的兄弟姐妹就要拿板砖招呼我了,做RIGGING的比起KEY动画的在公司里毕竟是少少数派,打架吃亏啊。
为了自己还能健康成长,这种懒是偷不得的,切记啊。
)下面就说说角色动画中为什么要同时存在IK/FK两种骨骼控制方式。
动画在模拟有牵引、拖拽、支撑等动作时使用IK会比较方便快捷。
比如俯卧撑、端花瓶、推车等等。
但是在处理圆滑柔顺、主动发力的动作时,用FK更灵活自如。
比如手臂骨折时、走路时手臂自然摆动、扇扇子、做早操等等。
复杂的角色动画有可能在进行一连串的动作的时候IK 和FK之间是要经常转换的,视情况有的时候是从IK转换成FK,有的时候是FK转换成IK。
如图1大家用脚趾头想想,一个走路时手臂老是象扶着玻璃的家伙是多么怪异啊。
因此,在为一个角色做RIGGING时,常常在手臂和腿部设置上三套骨头(哇塞,进化史上绝无仅有)。
如图2。
用于绑定的骨骼同时被IK骨骼和FK骨骼进行旋转约束,当需要IK来控制时,就用IK 控制的骨骼约束绑定骨骼,反之也可用FK控制的骨骼约束绑定骨骼。
看似聪明的办法,也很累人啊,这不仅使做RIGGING的同志填加巨大的工作量,同时也为KEY动画的兄弟姐妹制造了新的麻烦。
Maya上身骨骼绑定
二,躯干骨骼绑定
1,创建控制器(NURBS环),分别打组,分别摆放在躯干各个关节上(根骨节至脖子处关节,每个关节处一个),
根骨节与控制器打上父子关系(控制器为父),其他各个关节与控制器建立旋转约束。
2,为了不让一个控制器只控制一块骨骼,需要从上至下,选择控制器的组与它的下一级关节打上父子关系(控制器为子)。
三,臂部骨骼绑定
1,建立三个层,分别命名为Skin,IK和FK。
2,选中一端臂骨,添加到Skin层中,复制出一条,添加到FK中,再复制出一条,添加到FK中,这样每一层都有一个臂骨
为了便于区别,为每个层的臂骨取上不同的名字
3,首先打开FK层的臂骨。
创建控制器(NURBS环),分别分组,分别吸附在臂部各个关节处,并与相应关节建立旋转约束
把控制器的组分别与它的上一级骨骼关节建立父子关系(控制器为子)
4,打开IK层的臂骨,在肩胛骨和手腕之间建立IK控制,创建一个控制器(NURBS环),吸附到IK控制手柄中心,控制器与IK建立点约束。
然后控制器与手部骨骼建立旋转约束
5,建立FK层与Skin层的关联
在Outliner中,分别打开FK层和Skin 层的组,两个组中骨骼是一一对应的(如有Arm_FK ,必有Arm_Skin与之对应),选中FK组中一个骨骼名称,加选Skin组中相应骨骼,建立旋转约束(注意选择顺序)
6,把IK层和FK层的手部骨骼删掉,只保留Skin层手部骨骼即可。
为每个手部关节建立控制器(NURBS环),每个控制器与相应关节建立旋转约束,并与上一级骨骼建立父子关系,如果控制器不能控制运动,则刷权重
7,全身骨骼绑定完毕后,为了能控制角色整体的移动缩放等调整,需要建立一个总控制器(NURBS环)进行整体控制。
Maya 设置腿部骨骼控制系统
Maya 设置腿部骨骼控制系统直线网这是关于一套置腿部骨骼控制系统的教程,细节之处翻译的不好,或有遗漏的地方,请多多包含。
1 、按F2 切换到Animation 菜单下,在侧视图里,我们进行Skeleton > joint Tool ,依照下图创建5 个(joint )关节,分别命名为x_pelvis,x_knee,x_heel,x_ball, 和x_toe ,然后进行(Modify > Freeze Transformations) 命令。
从x_pelvis 关节到x_heel 关节,我们给它个IK (Skeleton > IK Handle Tool ),将这IK 取名为'ik_leg' 。
2 、我们这步要创建3 个locator(Create -> Locator )。
按住V 键,分别将它们定点在(图示)关节上,相应的更名为lx_toe,lx_ball 和lx_heel 。
然后分别将这三个关节进行点约束Constrain > Point (先选择x_toe joint ,再选择lx_toe locator ,如此类推)。
3 、选择root 关节(即就是x_pelvis ),然后进行复制(Edit > Duplicate) 。
将复制的一套骨骼移到一处,按下图分别命名为r_pelvis,r_knee,r_heel,r_ball 和r_toe 。
OK 后选择r_toe 关节进行Reroot 命令(Skeleton > Reroot Skeleton) 。
从r_toe 到r_ball 创建IK(Skeleton > IK Handle Tool) ,并将这IK 命名为rik_ball 。
然后r_heel 到r_pelvis 也创建IK ,命名为rik_pelvis 。
4 、我们先选择x_pelvis 关节, 再选择rik_pelvis IKhandle ,进行点约束(Constrain > Point )。
Maya IK手把手教学
Maya 手把手教学:Maya的FBIK角色骨骼创建及皮肤绑定(基础篇)默认分类2010-12-21 14:33:45 阅读50 评论0 字号:大中小订阅一.理论介绍Maya蒙皮Bind Skin(也叫皮肤绑定)分光滑蒙皮和刚直蒙皮,前者适用于肌肉皮肤等会挤压伸缩的物体,后者适用机器人及骨架的刚硬物体。
骨骼与模型进行刚直蒙皮,模型点对应的骨骼关节权重为1,即一个点只能被一个关节所影响(光滑蒙皮则可由多个关节控制1个点);但这并不是说刚直蒙皮不能进行生物体的绑定,因为其特有的屈肌控制器,在某些情况下会比光滑蒙皮的影响物体更有效率。
蒙皮也仅仅是对物体上点进行簇权重的赋值,因此,其与变形器的作用是一样的,即不能删除历史,否则权重效果消失。
*执行蒙皮操作前,模型必须要进行历史清空操作,如果因为蒙皮前遗留过多的操作历史,在蒙皮后,可执行E dit->Delete by Type->Non-DeformerHistory,即删除非变形器的历史;但这也不是万能的,有时仍会出现些难以挽回的异常。
Maya对点的控制通常有4种方式:Weighted Deformer(变形权重),Rigid Skins(刚直蒙皮),BlendShapeDeformers(融合变形),SmoothSkins(光滑蒙皮)。
因此,对物体进行蒙皮后,仍可加入变形器进行特殊控制,包括表情制作。
BindSkin(绑定皮肤):将模型与骨骼进行绑定现在我们就先来了解下Skin(皮肤)菜单的功能。
进入Animation模块的Skin->BindSkin,在BindSkin(绑定皮肤)菜单下,有SmoothBind(光滑绑定)和RigidBind(刚直绑定)两种。
展开各自的设置选项:光滑蒙皮(Smooth Bind Skin):默认设置以Joint hierarchy(关节层级)进行蒙皮,也就是物体组或整个物体以所有关节为基本进行权重赋值;Selected joints(选择关节)仅对选择的关节部分进行权重赋值;Object hierarchy(物体层级):当选择多个物体进行蒙皮,使用该项才能赋值刚直蒙皮(Rigid Bind Skin):默认的Complete skeletion为对选择的物体进行整个骨骼的绑定;Selected joints为将当前物体进行对应骨骼的蒙皮。
Maya骨骼绑定IKFK无缝切换-双向约束法
活了这么多年,在学东西的时候搜过无数教程,什么使用教程,破解教程等等等等,从没自己写过教程,但是今天忍不住也要写一篇了,给广大网友分享下我的Maya学习经验。
因为接触时间不长,难免有理解错误或疏漏的地方,还请不要拍砖。
首先,为什么要进行IK和FK的无缝切换?ikHandle1里不是有ikBlend参数么,直接把参数值从1改成0,不就可以实现IK切换到FK了么?嗯嗯,开始我也是这么想的,老师讲IK和FK绑定的时候还觉得好简单,不过等你实际做动画的时候,问题就出现了。
你使用IK绑定费老大劲完成了一个动作,结果切换到FK绑定的时候,天哪,骨骼又跑到初始位置去了,于是各种定位各种对齐,然而这不是一件容易的事,因为你不仅要对齐骨骼的位移还有旋转呐!疯了都!也有网友会说,Maya2013中的HumanIK功能非常强大,干嘛还要自己绑定,不过HumanIK主要是面向两足角色对于四足或多足角色就不适用了。
当然也有很多绑定插件可以快速完成。
但是如果自己可以手动绑定,那理解其他插件中的绑定技巧也是很有帮助的。
好,废话说了一堆,现在开始讲如何无缝切换IK到FK,或者FK到IK,即切换的时候,要保证骨骼的位移和旋转参数都保持当前不变,也就是无缝(前提是你已经了解了什么是IK,什么是FK,我这就不细说了。
)目前处理无缝切换的方法有三种:方法一:通过maya自带的set ikfk key这个命令来转换。
(太麻烦!)方法二:三套骨架,一套是ik控制,一套是fk控制,一套用于蒙皮,然后通过属性控制决定约束到ik骨架还是fk骨架。
(同样麻烦,而且工作量巨大,不过我也试过,最终可以做出来,提供教程的朋友给了思路也给了代码,但是需要你彻底了解物体的世界坐标系和对象坐标系,否则无论如何你获取的骨骼在世界坐标系中的位移和旋转参数,都无法正确的赋给FK控制器。
我试了一天才明白过来,累死!)方法三:使用单骨骼进行IKFK的切换。
(没试过,因为目前还不了解角色功能到底是干嘛使用的。
maya详细绑定教程
maya详细绑定教程说明:文中提到的"A物P给B物",意即A与B建立父子关系,A是子物体,B是父物体。
文中"设置"作名词时往往是指点开某命令后的设置框。
概述:绑定即给模型添加骨骼、设置Ik、添加驱动和控制器的过程。
最先添加骨骼〔骨骼本身自成一套控制系统,即Fk系统,然后给骨骼必要的部分上Ik〔它是另一套控制系统,即Ik系统,一个Ik的作用是:通过控制某一关节上的Ik是其他关节连动,然后添加控制器〔一般使用CV曲线,控制器的作用是驱动Ik和骨骼,当我们调动画的时候不再去动骨骼和Ik,而是只调节控制器。
也即:控制器控制Ik与骨骼,Ik也能控制骨骼,而骨骼最终控制模型〔通过蒙皮。
以下详细讲述,以卡通小女孩为例。
一、添加骨骼。
1、从腿部开始创建骨骼如下图:需要注意的是,腿根到膝盖到脚踝之间必选是弯曲的,以使上Ik后有连动;脚踝位置;观察以脚尖和脚跟为轴在地上旋转的位置,确定脚尖与脚跟处关节的位置;大腿根部旋转轴位置;选中某一关节,insert状态下可调节其位置。
2、命名骨骼名称。
然后执行Skeleton——》Mirror Joints,注意设置项。
见图2。
图23、在腰部创建这两套关节的父关节。
并将它们P给它。
注意,此关节位置要在腿根关节略前,以保证能完成扭屁股动作。
4、顺着脊柱的大体位置和走势创建上半身和脖颈和头部的关节如下图3:注意:颈部有三个关节;下巴有两块骨骼;腋下最好有一个关节,控制胸部运动。
图35、创建上肢骨骼:图4同样注意肘部关节要弯曲。
然后:图56、创建手部关节:图6P给手腕关节:图7注意:在关节处我们会看到红绿蓝色的方向轴,选中此手柄可对其方向作相应的旋转改变,关节的旋转方向也会改变。
大拇指的方向往往需要做一定的调整,因为拇指的旋转方向较特别。
Object方向下移动关节时即是沿着这些轴的方向移动。
将手指Mirror给另一侧。
若需要命名的话则先命好名再Mirror,可减少繁琐的命名过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
活了这么多年,在学东西的时候搜过无数教程,什么使用教程,破解教程等等等等,从没自己写过教程,但是今天忍不住也要写一篇了,给广大网友分享下我的Maya学习经验。
因为接触时间不长,难免有理解错误或疏漏的地方,还请不要拍砖。
首先,为什么要进行IK和FK的无缝切换?ikHandle1里不是有ikBlend参数么,直接把参数值从1改成0,不就可以实现IK切换到FK了么?嗯嗯,开始我也是这么想的,老师讲IK和FK绑定的时候还觉得好简单,不过等你实际做动画的时候,问题就出现了。
你使用IK绑定费老大劲完成了一个动作,结果切换到FK绑定的时候,天哪,骨骼又跑到初始位置去了,于是各种定位各种对齐,然而这不是一件容易的事,因为你不仅要对齐骨骼的位移还有旋转呐!疯了都!也有网友会说,Maya2013中的HumanIK功能非常强大,干嘛还要自己绑定,不过HumanIK主要是面向两足角色对于四足或多足角色就不适用了。
当然也有很多绑定插件可以快速完成。
但是如果自己可以手动绑定,那理解其他插件中的绑定技巧也是很有帮助的。
好,废话说了一堆,现在开始讲如何无缝切换IK到FK,或者FK到IK,即切换的时候,要保证骨骼的位移和旋转参数都保持当前不变,也就是无缝(前提是你已经了解了什么是IK,什么是FK,我这就不细说了。
)目前处理无缝切换的方法有三种:方法一:通过maya自带的set ikfk key这个命令来转换。
(太麻烦!)方法二:三套骨架,一套是ik控制,一套是fk控制,一套用于蒙皮,然后通过属性控制决定约束到ik骨架还是fk骨架。
(同样麻烦,而且工作量巨大,不过我也试过,最终可以做出来,提供教程的朋友给了思路也给了代码,但是需要你彻底了解物体的世界坐标系和对象坐标系,否则无论如何你获取的骨骼在世界坐标系中的位移和旋转参数,都无法正确的赋给FK控制器。
我试了一天才明白过来,累死!)方法三:使用单骨骼进行IKFK的切换。
(没试过,因为目前还不了解角色功能到底是干嘛使用的。
有兴趣的朋友可以点击这里查看/s/blog_54b08bdb010007x4.html。
)方法四:已有双向约束。
需要和动画曲线相结合。
/s/blog_71fcab930100qpqw.html下面是我的IKFK无缝切换思路,简单来说是使用双向约束来定位控制器和骨骼,这样在切换的时候可以保证控制器和骨骼的位移以及旋转始终保持一致。
以手臂骨骼IKFK绑定来说:1、当FK控制手臂骨骼系统时,即FK方向约束手臂骨骼时,让IK的极向量控制器受定位器的点约束,把定位器P给手臂的肘关节,并让IK控制器受FK手腕控制器的点约束,这样当FK控制器方向发生变化时,可以始终保持IK控制器和IK极向量控制器的位移信息和骨骼一致。
2、当IK控制手臂骨骼系统时,让手臂骨骼控制FK控制器,这样就可以保证FK 控制器的方向始终和骨骼保持一致。
同时解除FK手腕控制器对IK控制器的点约束,以及定位器对IK极向量控制器的约束。
怎么样是不是很简单?只需要一套骨骼就可以了!这里所说的双向约束,其实就是指FK约束骨骼的方向,同时让骨骼也约束FK的方向。
并且设定,当FK约束骨骼时,骨骼对FK的约束权重为0,即骨骼对FK的约束不起作用;当骨骼约束FK时,FK对骨骼的约束权重为0,即FK对骨骼的约束不起作用。
这样就不会产生冲突了!现在有一个问题,当FK切换到IK时,骨骼受FK约束所产生的方向变化会重置为初始方向,这样就又回到了我一开始说到的问题,没有做到无缝切换!那有没有解决办法呢?其实很简单,在动画模块,约束菜单下,有一个“设置静止位置”的功能。
(我的Maya版本是2013,其他版本有没有这个功能不是很清楚。
)这个功能的作用就是为了防止约束权重变为0时,骨骼又回到初始状态。
这样一来,我们就可以利用此功能,当FK切换到IK时,把骨骼当前的旋转信息定位下来,然后再取消FK对骨骼的方向约束,同时让骨骼对FK的方向约束开始起作用,同样使用该功能,可以把IK控制器和IK极向量控制器的当前位移信息定位下来,然后让IK控制器开始起作用。
IK切换到FK的解决办法也一样,定位所有FK控制器的当前旋转方向,并让IK控制器不起左右,FK控制器起作用就OK了。
看起来很容易实现对不对?可是我却琢磨了半天。
下面我们就开始具体实现吧,因为该教程主要面向初学者,所以我会将的比较细碎,大牛们如果会看得话就忍忍吧,呵呵~步骤一:创建手臂的四个骨骼,同时分别绑定FK控制器和IK控制器。
需要注意的地方是:1、手臂骨骼的枢轴方向要保持一致,否则会有错误。
2、FK控制器和IK控制器一定要打组,然后冻结控制器的位移和旋转属性,切记,不能冻结组的属性!否则世界坐标系会变成对象坐标系,后续问题会很多。
3、先让各骨骼对各控制器的组进行父子约束,目的是为了使控制器的位移和方向与各骨骼保持一致,然后再删除父子约束节点。
4、如果约束后的控制器不容易操作,可以在组件模式下,修改各控制器的旋转轴,千万不要修改了枢轴方向!!以肩膀控制器FK1的定位为例:创建曲线圆环控制器,修改控制器名称为FK1,进行打组,组名为FK1_G。
选择骨骼joint1,再选择FK1_G,进行父子约束,FK1控制器就定位到joint1的位置,删除FK1控制器下的约束节点。
目前FK1的方向和骨骼水平,不好选择,在组件模式下,选择FK1的所有控制点进行旋转,千万不要选中枢轴。
如果旋转的角度不能确定,查看MEL编辑器中的历史,会看到刚才操作的MEL命令,复制下来,取消刚才的操作,然后在MEL编辑器的输入区黏贴刚才的代码,把旋转的角度数改为整数,如-90,取消组件模式回到对象模式下。
现在FK1控制器就完成了,删除历史,冻结变换。
其他FK2、FK3控制器的定位一样不再赘述。
步骤二:刚才已经完成了手臂正常的FK和IK绑定,现在需要进行骨骼对FK的约束。
先让FK对骨骼的约束节点权重为0,即把每个骨骼下的约束节点值修改为0,以FK1下的为例,把joint1_orientConstraint1里的FK1W0的参数设置为0。
其他骨骼也一样处理,这样的好处是,当你再让骨骼方向约束FK时,系统不会弹出警告。
完成以上操作后,如下图所示:FK绑定示意图:IK绑定示意图:IK控制器是把圆环的控制节点修改了下,变形为上图右侧所示(比较奇怪的一个形状,你可以自己做成其他的,这里只是示意)IK极向量控制器是一个定位器。
你需要再做一个定位器使位移和它保持一致,并P给手肘的骨骼,同时让他点约束IK极向量控制器。
完成之后的大纲视图如下:FK控制器的层级关系如上图右侧所示,可以看到各FK控制器已经受到了骨骼的约束。
由于每次修改FK的约束权重或骨骼的约束权重太麻烦,因此我们新创建个控制物体(FKCTR)来进行总体的属性控制,这里我用了各立方体,你可以创建其他的物体或曲线都可以。
如上图左侧高亮显示的物体。
我们要给这个控制物体添加一些其他的属性,比如:FKPOWER,用来总体控制各FK对骨骼的约束权重,设置它的最小值为0,最大值为1,默认值为1。
打开窗口菜单,选择常规编辑器下的连接编辑器,左侧载入FKCTR,右侧分别载入各骨骼下面的FK约束节点,joint1_orientConstraint1、joint2_orientConstraint1、joint3_orientConstraint1,把FKCTR属性中的FKPOWER与以上几个约束节点中的FK1W0、FK2W0、FK3W0相关联。
这样就可以通过修改FKPOWER的值来直接修改FK1W0、FK2W0、FK3W0的值了。
锁定并隐藏FKPOWER中除可视性和FKPOWER以外的所有属性。
另外我们可以给它在增加其他属性,如下图所示:其中JOPOWER属性和FK各控制器下的FK1_orientConstraint1、FK2_orientConstraint1、FK3_orientConstraint1的joint1w0、joint2w0、joint3w0相关联;FKVISIB与FK1_G的可见性相关联;IKVISIB分别与ikcon和polecon的可见性相关联;POPOWER与polecon下的polecon_pointConstraint1下的polelocW0属性相关联;IKPOWER与ikcon下的ikcon_pointConstraint1下的FK3W0属性相关联;polecon和ikcon之前已被poleloc和FK3分别进行了点约束,还记得吧,所以才会产生以上的点约束节点。
之所以要给FKCTR增加这么多属性,是为了在做动画K帧的时候不用来回找各个散落的属性。
以上这些设置基本上OK了,绑定了IK和FK,你可以手动的调整参数试试切换,没有问题,但是如果每次都手动去修改参数会很麻烦,因此我们还是需要做个MEL。
不用怕新手们,很简单。
你已经注意到FKCTR里还有个属性SWITCH对不对,SWITCH的值就是为了控制切换的。
当值为0时,默认为FK控制,IK控制器不可见。
当值为1时,IK控制,FK控制器不可见。
就这么简单。
代码如下:$ikfkswitch = getAttr("FKCTR.SWITCH");if($ikfkswitch == 1) //change fk to ik{$joint1_ro = getAttr("joint1.rotate");setAttr joint1_orientConstraint1.restRotate $joint1_ro[0] $joint1_ro[1] $joint1_ro[2];//以上获取骨骼1的旋转信息并定位$joint2_ro = getAttr("joint2.rotate");setAttr joint2_orientConstraint1.restRotate $joint2_ro[0] $joint2_ro[1] $joint2_ro[2];//以上获取骨骼2的旋转信息并定位$joint3_ro = getAttr("joint3.rotate");setAttr joint3_orientConstraint1.restRotate $joint3_ro[0] $joint3_ro[1] $joint3_ro[2];//以上获取骨骼3的旋转信息并定位$ikcon_t = getAttr("ikcon.translate");setAttr ikcon_pointConstraint1.restTranslate $ikcon_t[0] $ikcon_t[1] $ikcon_t[2];//以上获取IK控制器的位移信息并定位$polecon_t = getAttr("polecon.translate");setAttr polecon_pointConstraint1.restTranslate $polecon_t[0] $polecon_t[1] $polecon_t[2]; //以上获取IK极向量控制器的位移信息并定位setAttr FKCTR.IKPOWER 0; //FK3对IK控制器的点约束取消setAttr FKCTR.POPOWER 0; //定位器对IK极向量控制器的点约束取消setAttr FKCTR.FKPOWER 0; //FK控制器对骨骼的约束取消setAttr FKCTR.JOPOWER 1; //骨骼反过来开始对FK进行约束setAttr FKCTR.IKBLEND 1; //IK控制器开始起作用setAttr FKCTR.FKVISIB 0; //FK控制器设为不可见setAttr FKCTR.IKVISIB 1; //IK控制器设为可见}else if($ikfkswitch == 0) //change ik to fk{$fk1_ro = getAttr("FK1.rotate");setAttr FK1_orientConstraint1.restRotate $fk1_ro[0] $fk1_ro[1] $fk1_ro[2];//以上获取FK1控制器的位移信息并定位$fk2_ro = getAttr("FK2.rotate");setAttr FK2_orientConstraint1.restRotate $fk2_ro[0] $fk2_ro[1] $fk2_ro[2];//以上获取FK2控制器的位移信息并定位$fk3_ro = getAttr("FK3.rotate");setAttr FK3_orientConstraint1.restRotate $fk3_ro[0] $fk3_ro[1] $fk3_ro[2];//以上获取FK3控制器的位移信息并定位setAttr FKCTR.JOPOWER 0; //骨骼对FK的约束取消setAttr FKCTR.FKPOWER 1; //FK开始反过来约束骨骼setAttr FKCTR.IKBLEND 0; //IK控制器不再起作用setAttr FKCTR.IKPOWER 1; //FK3控制器开始点约束IK控制器setAttr FKCTR.POPOWER 1; //定位器开始约束IK极向量控制器setAttr FKCTR.FKVISIB 1; //FK控制器的可见性打开setAttr FKCTR.IKVISIB 0; //IK控制器的可见性关闭};OK,以上就是全部教程了,感兴趣的朋友可以在此基础上再优化下,比如可以做成表达式什么的。