本文主要是介绍Maya角色手指动作约束方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以前的制作方式是使用属性Connection Editor的方式,将控制器的某个属性,和手指骨骼相应属性建立连接,从而达到修改控制器属性,即可修改对应的手指
但是这种做法有个问题,就是建立连接之后,角色骨骼无法再Go to Bind Pose,会弹出报错
// Warning: file: C:/Program Files/Autodesk/Maya2019/scripts/others/gotoBindPose.mel line 41: Could not reach pose on joint17 rotate. //
// -- Connection from nurbsCircle10 to joint17.rotateZ may need to be broken.
// To disable IK, constraints, and expressions, you can use the Modify->DisableNodes menu.
// Other connections can be broken using the Script Editor.
// Or, to reset the saved pose on a joint, select the joint and enter 'dagPose -reset -name bindPose1'.
// Error: file: C:/Program Files/Autodesk/Maya2019/scripts/others/gotoBindPose.mel line 41: Pose not achieved. See diagnostics in Script Editor. //
按照错误提示Modify > DisableNodes(菜单 Modify > Evaluate Nodes > Ignore All),之后依然无法切换Bind Pose
所以这次改为驱动关键帧的方式来约束手指
首先已经设置Connection的情况下,需要通过Window > Node Editor移除相关连接(下图中紫色节点unitConversionXX才是连接,删除和Muz、Shiz属性相关联的节点)
或者右键对应骨骼受影响的属性,选择 Break Connections 也能删除连接
通过Animation菜单Key > Set Driven Key > Set... □,可以打开驱动关键帧设置面板
类似Connection Editor,选中控制按Load Driver,再选中手指按Load Driven,同时配合Channel Box面板设置,将nurbsCircle11(Driver)中的Muz属性,和Joint62~Joint80(Driven)的Rotate Z属性Key在一起,用这种方法的好处是,可以通过Modify > Evalute All来开关约束,从而切换Bind Pose
有种情况,如果整个动画中,手指控制器中对应属性的值没有变化,那么当从Bind Pose切换到动画帧时,会发生手指还处在Bind Pose,这可能是Maya(2019)的Bug,解决方案是至少为手指属性K一个微弱的变化,比如用曲线控制器调个小角度
这篇关于Maya角色手指动作约束方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!