simple script to control my rig(foot)
Hi there fellas, I have made a simple script to control my rig(foot), but I cant figure how to make set key button work.
def=attributes footControl ( parameters heelRoll rollout:footRO ( HeelRotation type:#float ui:heelRotSL ) parameters toeRoll rollout:footRO ( ToeRotation type:#float ui:toeRotSL ) parameters tiptoeRoll rollout:footRO ( TiptoeRotation type:#float ui:tiptoeRotSL ) parameters footBank rollout:footRO ( FootBanking type:#float ui:bankingSL ) rollout footRO "Foot Control" ( group "Roll" ( slider heelRotSL "Heel Rotation" slider toeRotSL "Toe Rotation" slider tiptoeRotSL "Tiptoe Rotation" ) group "Bank" ( slider bankingSL "Foot Banking" range:[-50,50,0] ) group "Key and Reset" ( button keyAll "Key All" width:65 across:2 button resetAll "Reset All" width:65 on keyAll pressed do with undo on ( addNewKey (HeelRotation) currentTime addNewKey (ToeRotation) currentTime addNewKey (TiptoeRotation) currentTime addNewKey (FootBanking) currentTime ) on resetAll pressed do with undo "Reset_All" on ( HeelRotation=0 ToeRotation=0 TiptoeRotation=0 FootBanking=0 ) ) ) ) custAttributes.add $.modifiers[1] def
Comments
Thank u a million time But 1 tinny problem.
Hey man, I dont know how to thank u, u helped me a lot. just one small problem remains. I did what u said and it was so amazing, I could create keyframes, but the problem is the VALUE of the parameter does not changes. for example when I go to any frame and press key all a keyframe get made in all parameters but the value remain 0 in all created frames, remiding that I changed the parameters value. so could u help me some more and tell me how to make it capture the value too?
Not sure I follow. The key
Not sure I follow. The key All button should work the same way as hitting the "Set Keys" button. The value of the slider shouldn't change when you hit the Key all button; it should just set a key frame on the time slider with its current value. To test it out do this.
1. turn auto key on
2. set the time slider to the first frame and zero out yours slider(or move the bar to the left)
3. set the time slider to frame 100 and max out the slider(move the bar to the right)
4. turn auto key off and and go to frame 50
5. hit the "Key all" button you have in your script
6. move the key to frame 10 or frame 90 and see if it slider is half way.
If it does what I just said then it should work. Unless you want it to do something else?
email: [email protected]
You are making a small
You are making a small mistake with your code. First i would block the actual event code with animate on but that is not where you are making the mistake. What you are supposed to be trying to do with the animate on is set a value to your param so that it can set a keyframe with the new value. But the mistake you are making is trying to pass a method into your params when you are supposed to be passing a value.
Your Code
HeelRotation=addNewKey
the code you want
HeelRotation=HeelRotation
Here is the code with the fixes is spoke of. Hope this helps.
email: [email protected]
Its working, thank u.
Actually my goal was slightly different, I wanted to be able to key my attributes without auto key ON. I wanted to create my own set key button. just like max`s set key which doesnt create keyframe on the fly and we need to hit the set key button when we desire. With the auto key on there is no much point in scripting a key button. My goal was that to be able to animate for instance heelRotation slider without turning on auto key.
with animate true( at time
Raphael Steves
shouldn't you set the
shouldn't you set the properties to animatable?
<name> type:<#name> [tabSize:<integer>] [tabSizeVariable:<boolean>] [default:<operand>] [animatable:<boolean>] [subAnim:<boolean>] [ui:<ui_def>]
Raphael Steves
I cant understand
thanks for your help, but please consider me as a starter and be more precise. Could you do me a favor and tell me what exactly should I do? I mean what code should I put in my script to make work?
.. HeelRotation type:#float
also.. why are you putting everything into a different parameters block? wouldn't it be easier and tidier to have all CAs in one param block per rollout?
Raphael Steves
Thanks, your tip was awesome. But still doesnt work
Dude, Im gettin desperate, how can I make this work? Please help.
def=custAttributes.getDef $.modifiers[1].me
attributes me
redefine:def
(
parameters paramsBlock rollout:footRoll
(
HeelRotation type:#float ui:heelRotSL animatable:true
ToeRotation type:#float ui:toeRotSL animatable:true
TiptoeRotation type:#float ui:tiptoeRotSL animatable:true
FootBanking type:#float ui:bankingSL animatable:true
)
rollout footRoll "Foot Control"
(
group "Roll"
(
slider heelRotSL "Heel Rotation"
slider toeRotSL "Toe Rotation"
slider tiptoeRotSL "Tiptoe Rotation"
)
group "Bank"
(
slider bankingSL "Foot Banking" range:[-50,50,0]
)
group "Key and Reset"
(
button keyAll "Key All" width:65 across:2
button resetAll "Reset All" width:65
on keyAll pressed do with undo on
(
with animate on
HeelRotation=addNewKey
ToeRotation=addNewKey
TiptoeRotation=addNewKey
FootBanking=addNewKey
)
on resetAll pressed do with undo "Reset_All" on
(
HeelRotation=0
ToeRotation=0
TiptoeRotation=0
FootBanking=0
)
)
)
)
--custAttributes.add $.modifiers[1] def