Duncs
03-04-2009, 04:30 PM
Hey everyone, I'm having a problem with a character I'm rigging in Max 2009.
I have a bunch of scripted custom attributes to drive animation on the limbs (IK/FK blending and snapping etc.) and the following code works great - it's taken mainly from Paul Neale's online tutorials and rigging DVDs.
The problem occurs when I reload the scene - although the spinners seem to function correctly, I can no longer set keys / undo changes and none of the properties that have been wired to them update...
ca=attributes armCtrls
(
parameters params rollout:armRoll
(
ikfk type:#float ui: ikfkSp
up type:#float ui: upSp
mid type:#float ui: midSp
low type:#float ui: lowSp
ikRefNodes type:#maxObjectTab tabSize:0 tabSizeVariable:true
fkRefNodes type:#maxObjectTab tabSize:0 tabSizeVariable:true
)
rollout armRoll "Arm Controls"
(
group "IK FK Blending"
(
spinner ikfkSp "IK FK" range:[0,100,0]
button ikBtn "Snap IK to FK"
button fkBtn "Snap FK to IK"
)
on ikBtn pressed do
(
ikRefNodes[4].node.transform = fkRefNodes[4].node.transform
ikRefNodes[3].node.transform = fkRefNodes[3].node.transform
)
on fkBtn pressed do
(
fkRefNodes[1].node.transform = ikRefNodes[1].node.transform
fkRefNodes[2].node.transform = ikRefNodes[2].node.transform
)
group "Curve Controls"
(
spinner upSp "Top influence" range:[1,200,100]
spinner midSp "Mid influence" range:[1,200,100]
spinner lowSp "Low influence" range:[1,200,100]
)
)
)
custAttributes.add $.modifiers[1] ca
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$upArmBone_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$lowArmBone_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$elbowCtrl_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$wristCtrl_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$upArmCtrl_FK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$lowArmCtrl_FK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$elbowTarg_FK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$armNub_FK forwardTransformChangeMsgs:false)
Hopefully this is a simple omission on my part, any suggestions would be greatly appreciated.
Thanks in advance
I have a bunch of scripted custom attributes to drive animation on the limbs (IK/FK blending and snapping etc.) and the following code works great - it's taken mainly from Paul Neale's online tutorials and rigging DVDs.
The problem occurs when I reload the scene - although the spinners seem to function correctly, I can no longer set keys / undo changes and none of the properties that have been wired to them update...
ca=attributes armCtrls
(
parameters params rollout:armRoll
(
ikfk type:#float ui: ikfkSp
up type:#float ui: upSp
mid type:#float ui: midSp
low type:#float ui: lowSp
ikRefNodes type:#maxObjectTab tabSize:0 tabSizeVariable:true
fkRefNodes type:#maxObjectTab tabSize:0 tabSizeVariable:true
)
rollout armRoll "Arm Controls"
(
group "IK FK Blending"
(
spinner ikfkSp "IK FK" range:[0,100,0]
button ikBtn "Snap IK to FK"
button fkBtn "Snap FK to IK"
)
on ikBtn pressed do
(
ikRefNodes[4].node.transform = fkRefNodes[4].node.transform
ikRefNodes[3].node.transform = fkRefNodes[3].node.transform
)
on fkBtn pressed do
(
fkRefNodes[1].node.transform = ikRefNodes[1].node.transform
fkRefNodes[2].node.transform = ikRefNodes[2].node.transform
)
group "Curve Controls"
(
spinner upSp "Top influence" range:[1,200,100]
spinner midSp "Mid influence" range:[1,200,100]
spinner lowSp "Low influence" range:[1,200,100]
)
)
)
custAttributes.add $.modifiers[1] ca
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$upArmBone_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$lowArmBone_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$elbowCtrl_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].ikRefNodes (nodeTransformMonitor node:$wristCtrl_IK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$upArmCtrl_FK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$lowArmCtrl_FK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$elbowTarg_FK forwardTransformChangeMsgs:false)
append $.modifiers[1].fkRefNodes (nodeTransformMonitor node:$armNub_FK forwardTransformChangeMsgs:false)
Hopefully this is a simple omission on my part, any suggestions would be greatly appreciated.
Thanks in advance
