ikhand文档格式.docx
- 文档编号:21849910
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:28
- 大小:801.23KB
ikhand文档格式.docx
《ikhand文档格式.docx》由会员分享,可在线阅读,更多相关《ikhand文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
IKSinglechain(SC)Solver——IK单链解算器
SplineIKSolver——IK样条曲线解算器
2BoneIKSolver——双骨IK解算器
IK的工作原理
了解IK的工作原理可以帮助我们更好的理解和使用IK。
创建一个IK以后,IK手柄的终点被放置在终关节处,称为终点效应器。
终点效应器用来提供IK手柄如何旋转关节链中关节的信息,关节链的终点按照这些信息到达空间的某些位置。
将IK手柄终点的位置传递给IK手柄的IK解算器,终点效应器可以为IK解算器提供如何旋转关节所需要的信息。
当定位和动画一个IK链时,真正需要做的是移动IK手柄的位置。
IK解算器获取了终点效应器移动到下一个目标的位置和方向,IK解算器根据目标的位置以及当前终点效应器所在的位置,计算出如何旋转IK链中的所有关节以使终点效应器达到目标所在位置。
在一套骨骼当中,根关节只能作为IK链的始关节,而且不能位于IK链的始关节和终关节之间。
当更改根关节以后,新的根关节位于某个IK关节链之中,而不是IK链的始关节,那么该IK链无效。
IK旋转平面手柄(ikRPhandle)
在缺省设置下创建的IK手柄(ikHandle)都使用IK旋转平面解算器(ikRPsolver),而且每个IK手柄(ikhandle)都使用同一个IK旋转平面解算器(ikRPsolver)。
IK旋转平面手柄(IkRPhandle)指导关节链中所有关节的关节旋转,用户可以直接控制关节链的全部旋转。
如图4.5.2所示
图4.5.2
IK旋转平面手柄(IkRPhandle)非常适合定位四肢的关节链。
在定位关节链的时候,经常需要控制关节链中的一些关节保持在一个平面上,这时K旋转平面解算器(ikRPsolver)是最佳的选择。
例如,肩部、肘部和腕关节可保持在一个平面上,但是,当肩关节旋转时旋转平面也跟着旋转。
开始关节(StartJoint)和终关节(EndJoint)
开始关节是IK手柄开始的地方。
开始关节是受IK手柄影响关节链的第一个关节。
开始关节可以是骨骼的根关节,或者骨骼层级中在终关节层次以上的任何关节。
开始关节必须是球关节类型。
并且在其局部坐标轴上可进行任意的旋转。
终关节是IK手柄控制的关节链中最后的关节。
终关节必须是在骨骼中开始关节层次以下的关节。
末端效果器(EndEffecter)
系统默认设置,末端效果器不显示在场景中,但是它被定位在终关节的局部旋转轴。
末端效果器是终关节的父关节的子物体,影响关节链中所有的关节。
为观看末端效果器和关节之间的层次关系,用户可使用Hypergraph(超图)观看场景层次。
对于IK旋转平面手柄,末端效果器的目标是IK手柄到达的位置。
当用户移动IK旋转平面手柄的位置时,IK旋转平面解算器计算如何旋转关节链中所有的关节,以使末端效果器可到达IK手柄的位置。
末端效果器始终尽量与IK手柄的位置保持一致。
然而,能否保持一致也取决于关节链旋转的极限和关节链的整个范围长度,如果超出了范围,末端效果器将不可能到达IK手柄。
手柄线(HandleWire)
手柄线贯穿于IK手柄控制的关节链的所有的关节和骨头。
手柄线在开始关节的局部坐标轴开始,在末端效果器结束。
手柄矢量(HandleVector)
手柄矢量是一条从开始关节到IK手柄末端效果器的直线。
末端效果器通常被放置在IK链的终关节位置。
极矢量(PoleVector)
极矢量始于关节链的开始关节,使用极矢量可控制参考平面的方向。
移动极矢量可以改变参考平面的方向,因此移动极矢量也可直接改变关节链的方向,类似于使用扭曲盘改变关节链的方向的操作。
这是因为关节链扭曲的度数是由参考平面和关节链平面之间角度差别定义的。
在定位的过程中,如果手柄矢量和极矢量恰巧交错在一起或指向相反的方向,关节链会突然的反转。
关节链突然的反转是因为当矢量交错或指向相反时,与关节链平面相比的参考平面的方向的突然改变了180度。
用户可通过移动极矢量使手柄矢量与极矢量不发生交错或指向相反,这样可以防止关节链的突然反转。
旋转盘(RotateDisc)
旋转盘定位于开始关节。
旋转盘指示关节如何旋转。
关节链平面(JointChainPlain)
关节链中所有关节构成关节链平面。
关节链平面控制关节链如何扭曲(Twist)。
关节链平面可绕手柄矢量旋转。
关节链平面是不显示的,但用户可从关节链的关节位置推断它。
关节链平面的投影在旋转盘的关节链平面指示器中显示出来。
参考平面(ReferencePlane)
参考平面由手柄矢量和极矢量定义。
当扭曲关节链平面时,关节链平面必须与其它平面相比较,以便测量扭曲的度数。
与旋转关节链相比较的平面是参考平面。
两个平面之间的差别表明了关节链扭曲的数量。
关节链平面指示器(JointChainPlainIndicator)
关节链平面指示器可被认为是旋转盘中关节链平面的投影,关节链平面指示器指示出关节链平面相对于参考平面的扭曲(Twist)角度,当IK手柄的扭曲(Twist)值为零时,关节链平面与参考平面重合。
参考平面指示器(ReferencePlaneIndicator)
参考平面指示器是位于扭曲盘的绿色圆点。
参考平面指示器表明了参考平面的方向。
用户可以把参考平面指示器作为在旋转盘中参考平面的投影。
扭曲盘(TwistDisc)
扭曲盘位于终关节。
扭曲盘是扭曲关节链平面的操纵器。
扭曲指示器(TwistIndicator)
在旋转盘上,在参考平面指示器和关节链平面指示器之间的绿色圆弧是扭曲指示器。
扭曲指示器表明了关节链平面相对于参考平面的旋转方向。
如图4.5.3所示
图4.5.3
使用IK旋转平面手柄控制骨骼
创建IK旋转平面手柄
在创建IK旋转平面之前,要检查IKHandleTool的工具设置(选择Skeleton>
IKHandleTool命令)。
当前解算器应当被设置为ikRPsolver。
同时要注意开始关节必须是球关节,而且可在它的局部轴被任意的旋转,并确定开始关节没有旋转性限制或者锁定的属性。
1选择Skeleton>
IKHandleTool命令。
2在工作空间,在要开始IK旋转平面的关节上单击。
3在要结束IK旋转平面的关节上再次单击。
定位手柄
移动手柄
1选择IK旋转平面手柄(默认名:
ikHandlen)。
2单击MoveTool(默认热键:
W键)。
3在工作空间,按住鼠标的左键或中键,移动IK手柄。
继续操作,定位由IK手柄控制的关
节链。
操纵极矢量
2单击ShowManipulatorTool(默认热键:
T键)。
IK手柄的极矢量、扭曲盘和旋转盘显示。
3在工作空间,按住鼠标左键或中键,移动极矢量。
定位由IK手柄控制的关节链。
注意当用户移动极矢量时,旋转盘的参考平面指示器(在系统默认设置下,沿扭曲盘的绿色圆点)移动,反应极矢量的运动。
操纵扭曲盘
1选择IK旋转平面手柄。
(默认名:
注意:
在系统默认设置下,扭曲盘是蓝色的。
3单击扭曲盘。
在系统默认设置下,扭曲盘变为黄色。
4按住鼠标的左键或中键,旋转扭曲盘。
由IK手柄控制的关节链绕手柄矢量旋转。
此操作改变了IK手柄Twist通道的值。
IK单链手柄(ikSChandle)
IK单链手柄(ikSChandle)是定位关节链手柄的一种方式。
IK单链手柄(ikSChandle)指导关节链中所有关节的旋转和关节链的整体方向,如图4.5.4所示
图4.5.4
IK单链手柄(ikSChandle)是定位和动画关节链的直接工具。
关节链将保持在一个平面上,并且最大限度的包括所有关节链的关节。
同样,创建的每个IK单链手柄(ikSChandle)也都使用同一个IK单链解算器(ikSCsolver)。
如果编辑默认的IK单链解算器(ikSCsolver)的属性,所有的IK单链手柄(ikSChandle)都受到影响,编辑默认的IK单链解算器(ikSCsolver)的属性,所有的IK单链手柄(ikSChandle)都受到影响。
在创建IK单链手柄(ikSChandle)时,始关节必须是球状关节,而且必须在它的三个局部轴都能够自由地转动,没有旋转的界限或锁定的属性。
使用IK单链手柄控制骨骼
创建IK单链手柄
在创建一个IK单链手柄前,确认选中IKHandleTool工具设置(选择Skeleton>
CurrentSolver应该被设置为ikSCsolver。
注意始节点必须是球状关节:
它必须对它所在的三个轴能够自由的转动。
确使始节点没有旋转的界限或锁定的属性。
2在工作空间,在IK单链手柄要开始的关节单击。
3在IK单链手柄要结束的关节单击,完成手柄的创建。
定位IK单链手柄
1选择IK单链手柄(默认名:
3在工作空间,按住鼠标左键或鼠标中键,按需要移动IK手柄。
这样就定位了IK手柄控制关节链。
旋转手柄
2单击RotateTool(默认热键:
E键)。
3在工作空间,按鼠标左键或中键时,根据需求旋转IK手柄。
这样就定位了IK手柄控制关
节键。
IK双骨手柄(ik2Bhandle)
IK双骨手柄是一种有由两个或三个关节组成的短关节链定位工具。
IK双骨手柄对于设置游戏中的角色非常有用,Maya包括此功能的源码,游戏开发者可以在游戏引擎中准确复制此功能的作用。
如图4.5.5所示
图4.5.5
无论是为两个关节或三个关节创建ik2Bhandle,IK手柄一律把此关节链作为两个关节的情况处理。
IK手柄把在关节链层级中第一个骨头(bone)到最后骨头(bone)之上的所有关节和骨头(jointandbone)作为一块骨头处理。
使用IK双骨手柄控制骨骼
创建IK双骨解算器
Maya界面提供的默认IK手柄不包括IK双骨手柄,使用时需要手动进行加载。
首先需要加载IK双骨手柄解算器的插件(plugin),然后创建IK双骨手柄解算器,有两种方法可以完成上述操作:
方法一:
1在CommandLine中输入下列内容:
loadPluginik2Bsolver;
2在CommandLine中输入下列内容:
ik2Bsolver;
方法二:
1选择主菜单Window>
Settings/Preferences>
Plug-inManager,弹出设置窗口,勾选ik2Bsolver.mll进行加载。
如图4.5.6所示
图4.5.6
这时在IKHandleTool设置窗口的Currentsolver选项中会增加ik2Bsolver选项。
如图4.5.7所示
图4.5.7
如果打开已有场景中使用了ik2Bhandle,那么Maya会自动加载并运行plugin。
使用IK手柄创建关节链
JointTool命令。
2在ToolSettings视窗中,单击打开CreateIKHandle项。
3在IKHandleOptions中设置CurrentSolver为ik2Bsolver。
4关闭ToolSettings视窗。
5创建一个双骨关节链。
在按Enter键后,Maya将会创建一个IK双骨关节链。
用户可使用IK双骨手柄定位关节链。
创建IK双骨手柄
当前解算器应当被设置为ik2Bsolver。
2在工作空间,在要开始IK双骨手柄的关节上单击。
3在要结束IK双骨手柄的关节上再次单击。
1选择IK双骨手柄(默认名:
1选择IK双骨手柄。
IK样条曲线手柄(IKSplineHandle)
IK样条手柄提供了使用NURBS曲线定位关节链的方法。
IK样条曲线手柄(IKSplineHandle)的样条曲线贯穿于其作用的关节链,经常用于为尾巴、脖子、脊椎、胡须、长鞭、蛇等类似的对象设置动画。
创建IK样条曲线手柄(IKSplineHandle)后,操纵手柄中的曲线时,IK样条曲线解算器会相应地旋转关节链中的各个关节。
如图4.5.8所示。
图4.5.8
使用IK样条曲线手柄控制骨骼
创建IK样条曲线手柄
用户可以为关节链添加IK样条曲线手柄。
为动画关节链,用户可操纵手柄中的曲线,而不操纵手柄的变换。
用户也可以使用便利的操纵器滚动和扭曲关节链。
关节链可是独立的骨骼层级或大层级中的一部分。
系统默认,当用户创建IK样条曲线手柄时,Maya为用户创建一条曲线。
在创建手柄前,用户也可创建自己的曲线。
在上述任何一种情况中,关节链会模拟曲线的形状。
使用默认曲线和选项创建IK样条曲线手柄
1创建关节链。
为确保动画曲线时关节链平滑移动,创建许多相互靠近的关节(使用短骨)。
2选择Skeleton>
IKSplineHandleTool命令。
3选择IK手柄的开始关节。
4选择IK手柄的终关节。
IK样条手柄出现在关节链上,Maya自动创建一条曲线。
旋转关节链的关节可调整曲线的形状。
使用自定义曲线和选项创建IK样条曲线手柄
1使用建模工具创建曲线。
如果用户创建一条CVs很少的曲线,对曲线形状的控制和骨骼的运动将缺少精确性,但是能更容易地操纵曲线和它的关节链。
开始使用较少的CVs,仅当需要更多的CVs时再进行添加,以便于控制。
2创建关节链。
为确保动画曲线时,关节能平滑地运动,要创建多个相互靠近的关节(使用短骨)。
3选择Skeleton>
IKSplineHandleTool-命令。
打开ToolSettings视窗。
请参看“在创建IK样条曲线手柄前设置选项”设置选项。
关闭“AutoCreateCurve”,保存选项设置,以便以后使用。
4选择IK手柄的开始关节。
5选择IK手柄的终关节。
6选择曲线。
IK样条曲线手柄出现在关节链上。
旋转关节链中的关节,调整曲线的形状。
如果IK曲线比关节链短,那么超出长度的关节链以一条直线从曲线的终点向外指出。
动画关节链
操纵曲线的CVs
1选择曲线。
当用户使用CVs时,显示CVs和hulls是非常有帮助的。
当打开“Selectbyobjecttype”模式
时,打开Display>
NURBSComponents>
CVs和Hulls。
2移动CVs。
打开“Selectbycomponenttype”模式
,并使用Movetool。
或者从Modeling菜单选择selectCurves>
CurveEditingTool命令。
3选择Animate>
SetKey设置关键帧。
如图4.5.9所示。
图4.5.9
扭曲和滚动关节链
1选择IK样条曲线手柄。
在工作空间选择手柄,环绕终关节拖拽出一个选择框。
系统默认选项优先权确保用户选择手柄,而不是终关节。
2选择Modify>
TransformationTools>
ShowManipulatorTool命令。
在终关节和开始关节处显示圆形操纵器。
3为滚动整个关节链,在开始关节单击并旋转圆形操纵器。
4为扭曲关节链,在终关节单击并旋转圆形操纵器。
用户可通过选择IK手柄在ChannelBox或AttributeEditor中的Roll和Twist项中输入数值,调整扭曲和滚动。
在AttributeEditor中展开IKSolverAttributes部分来查看这些属性。
5为手柄的滚动和扭曲设置关键帧。
如图4.5.10所示。
图4.5.10
沿曲线滑动关节链
1选择IK手柄。
2选择Window>
AttributeEditor命令,打开AttributeEditor。
3展开IKSolverAttributes选项。
4打开RootonCurve项。
这限制了IK样条手柄的开始关节到曲线的某一个位置。
它也提供了一个偏移操纵器,沿曲线滑动开始关节。
5选择Modify>
偏移操纵器出现在开始关节。
6拖拽操纵器沿曲线滑动关节。
如果用户拖拽开始关节到曲线的终点,那么子关节呈直线状离开曲线终点。
用户不能拖拽操纵器通过曲线的任何一端。
用户可在属性编辑器(AttributeEditor)中输入偏移值,并沿曲线移动开始关节的偏移操纵器。
用户可通过使用不同的数值来得到需要的结果。
如果关闭CurveonRoot,那么Offset属性可被忽略。
如图4.5.11所示。
图4.5.11
7为Offset设置关键帧。
如图4.5.12所示。
图4.5.12
移动、旋转和缩放曲线
2使用移动、旋转和缩放工具来移动、旋转或缩放曲线。
当创建手柄时,关闭RootonCurve项,移动、旋转和缩放曲线并不变换开始关节。
3为Translate,Rotate和Scale属性设置关键帧。
三毛的骨骼控制
实例教程
腿和手臂的IK双骨手柄控制
1为四肢创建IK双骨手柄
打开蒙皮后三毛的文件。
加载并运行IK双骨解算器。
在CommandLine中输入下列内容:
选择主菜单Animation>
Skeleton>
IKHandleTool>
Option打开设置窗口,在CurrentSolver中选择ik2Bsolver,双腿部分分别由LeftHip至LeftFoot、RightHip至RightFoot建立IK,两臂部分分别由LeftShoulder至LeftHand、RightShoulder至RightHand建立IK,如图。
并将控制四肢的IK手柄分别命名为:
IK手柄
名称
左手
Ik_lefthand
右手
Ik_righthand
左脚
Ik_leftfoot
右脚
如图4.5.13所示。
图4.5.13
如图4.5.14所示。
图4.5.14
2编辑IK手柄的属性
选中整个骨骼根关节CenterRoot,按w键选择移动(Move)工具上下移动CenterRoot的位置。
这时角色的双腿的姿态保持不变,整个骨骼跟随CenterRoot一起移动,如图。
这并不是正确的运动控制,正确的运动控制应该是在CenterRoot下移的过程中,由IK手柄控制的双脚不移动位置,膝盖弯曲,整个身体做下蹲的动作。
我们必须改变IK手柄的属性来达到这样的效果。
选中左脚的IK手柄ik_leftfoot,按Ctrl-A打开属性编辑器(AttributeEditor)。
将IKHandleAttribute栏中的Stickiness(粘性)选项从默认的Off改为Sticky。
用同样的方法将右脚IK手柄ik_rightfoot的Stic
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ikhand