View Full Version : IKFKArm MEL script
11-25-2002, 11:59 AM
I´ve been working on this MEL script lately that automates the creation of an IKFK Arm rig. If anyone´s interested in trying it out, I´d really appreciate hearing some feedback about it. Just source the script and run it. Should work on Maya 4.0-4.5. Let me know if there are questions/errors/suggestions whatever, so I can fix it and finish the darn thing. Oh, and read the About section before using.
11-25-2002, 05:31 PM
I can't seem to be able to get it
11-25-2002, 05:41 PM
you mean you can´t download it or you can´t get it to work?
11-25-2002, 07:11 PM
I can't download it
11-26-2002, 09:44 AM
I just checked the download and it seems to be working fine (also, my original post says the script was downloaded already 27 times). Maybe the server was too busy when you tried.
Last evening I discovered something new about the "stretchy joints" feature in my script: the original joint chain (at least the part from shoulder to hand) must be created on one axis (ie, such that a straight line could be drawn from the shoulder joint through the hand joint). After creation, the joint hierarchy can then be rotated or scaled to fit better the dimensions of the character. To do this, I would recomend rotating the shoulder and/or elbow,and scaling any of the joints on their local X-axis. Bicep, forearm and wrist joints should NOT be rotated- they must still lie on the same (X) axis as their parent joint when you execute the script (they can be scaled however to fit your rig). If these joints are rotated, stretching the joints will not work correctly on the IKFKArm rig (IK arm will scale too much when IK_Wrist_Control is dragged to a length from shoulder greater than the lenght of the original arm). I´m not too sure why this is, as, in theory, the scale factor should remain the same ("stretchy joints" simply scales joints on their local x-axis). I think it has something to do with orientJoint attribute, but I still don´t know.
Anyay, this isn´t really a problem for me, because I always create my arm joints on one axis, and then modifiy them to fit the character. This ensure I always have more predictable rotations. However, some of you may use different techniques when building your skeletons.
OK, 27 people have downloaded the script so far...what about some feedback???
Yeah, I've tried it.
the setup can be alot faster with such script. i just wonder, does this work on feet?
The stretchy feature isn't really bothers me that much because i'm not really in to cartoon character setup that much.
btw, i wonder will this setup be a little more intuitive if the shoulder's joint rotateX = Bicep's joint rotateX.
instead of shoulder's rx = shoulder's rx.
because i remember stephan stahlberg once mentioned something related to this.
the idea is rather than letting the shoulder to rotate at x axis, the deformation of arm could be much more realistic to beable to rotate at Bicep's x axis.
Good luck, I'm hoping for an updates.
11-29-2002, 10:07 AM
(sorry if this was posted twice...)
the binding bicep joint´s x-rot will indeed be driven by the shoulder as you say. This was probably the first feature I implemented in the script. The same goes for wrist/forearm joints. Try it again, and if you think there´s a bug let me know and I´ll look into it.
The stretchy joints feature is mainly used in cartoon work, although I´m convinced it could be used (in moderate doses) in more realistic characters as well.
My next script will be the same thing for leg/foot setup. I´ll post it when I have a finished version.
Thanks for your reply. I´d appreciate hearing from other users who have tested the script as well.
forgoten to say this: good job~! :thumbsup:
I'm a little curious on the goal u on creating these scripts? will this be ending up to be a script to rigg the whole character with a few locators?
anyway, i'd highly recomend u to make a backbone rigg which has the combination of spline IK + FK + stretchy bones.
that could be more useful for realistic human.
oh, there's another request. would it be possible to add another feature in ur script to :-
1) add 2nd fk arm.
2) add 2nd IK arm.
3) hopefully can add up the amount of arms relatively if i click for the 3rd time or more.
this is because the 2nd fk,ik arm could use to seperate a character actions from typical movements and extreme movements (example, running).
well, i might sounds a little too demanding to u. but i hope my request could be useful to u.
11-29-2002, 01:01 PM
will this be ending up to be a script to rigg the whole character with a few locators?
for now I just want to stick with problematic areas: arms, legs, backs, etc. Maybe eventually put them into one big mother script.
As I said, next will be a leg/foot setup script... then later when I have time a backbone script (this might take a little longer, we´ll see). If you have a good example of the type of backbone setup you´d like to see, you can send it to me by e-mail and I´ll dissect it (I currently use a spline IK backbone, with non-relative clusters that I can group and rotate like an FK backbone).
Your suggestion about additional arms is interesting, although Í´m not sure if I understand it completely. You want to be able to blend between 2 IK arms and 2 FK arms? This is possible, although I´m not sure if many would use a feature like that. Currently this setup is all I need for my characters. Is this a setup technique you use often? If more people want a feature like this I will definitely consider implementing it. I´d like to get more user feedback first, and get onto my next script.
:beer: and thanks!
yeah, i do hope it can be a big O mother script. :D
i'll try to send u a backbone rigg anytime soon.
as for the 2 fk and 2 ik arm setup. it's the kinda setup i use all the time. but it's just a little time consuming to setup the whole set of them. usually, i'll get 2 different sets of arms assign to 2 different layer and given different colors to them in order to make it more recognizable.
well, the reason why i've started working with this way since i've been assigned to a job to animate a gorilla character. where i need to have a set of IK+FK arm for normal poses animation (when it walk like a human). but sometimes when i need to animate it walking on his arm, i'd need another set to break down my keys in to different sets. whenever i wanna edit the keys, i can always edit it based on inividual sets. rather than chunk every keys only in one set of IK+FK.
Usually i do IKFK switch manually, so when i came to a point when i find i need to have another set (means, add another pair of IK +FK). it's going to be very time consuming to break the whole setup and slip in new arms.
i haven't found any new problem with ur script yet. maybe it's because i haven't put it in to any character with skin yet. I'll tell u the result once i've get something animated.
May the force be with u.
11-29-2002, 04:10 PM
So, if I´m understanding correctly, you use these 2 sets simply for organizing your keyframes in a more coherent and orderly fashion?I´ve not worked with this technique, nor have I seen or heard of setups like this. Is it really that much easier to work with (once the setup is done)? Some animators might think this is over-complicating the setup, and therefore it makes it more difficult and time-consuming to work with. But, I´d still like to hear comments from other users (I think you and I are the only ones interested in this thread... :hmm: )
You can send me examples to my hotmail address if you want. Backbone, arms whatever, and I´ll see about incorporating these things into future script updates.
11-29-2002, 04:15 PM
oh yeah, another thing that the script doesn´t support is if your character has more than 1 left arm and 1 right arm (due to naming conventions :annoyed: ). Maybe I´ll put this in the next update if enough people want it.
dwaldan74: I've tried to use ur auto arm rigg for an animation while my college which i'm teaching now is having a holiday. there's a few problem which i've encoutered with.
1) i've found that ur IK arm control isn't behaving correctly. i believe the Wrist_IKArm_Control rotation should be controlled by an additional controller which is seperated from the Wrist_IKArm_Control. so Wrist_IKArm_Control is better be only control the translation of the wrist which an additional rotation control for it's xyz rotation. it's quite annoying that the wrist has to be rotated by our selfs when we move the wrist around with ik.
2) Your FK arm isn't behaving correctly when i've created an auto shoulder rigg like the one in Jason Schleifer's DVD. it's ok during the creation. but once i've translated the shoulder control. the FK arm just offsetted from it's original position. I hope that u add the auto shoulder to ur script tho. or someone in this forum can give a solution to this. (i'm too stupid to find the solution on my own IMO. hahahaha)
remember the spine rigg we've been talking about. I guess u just copy exactly the on from Jason Schleifer's DVD is already more than enuff. I use this spine rigg for all time. as for the leg, I haven't got any comment on this yet because leg is the easiest to rigg.
Thanks for reading this. hope ur script can be completed real soon.
12-24-2002, 09:48 AM
Great to hear from you again. :wavey: In a way, I´m quite happy you encountered these problems, as it will help me fine tune my scripts to support different setup strategies. I have not had time to test these scripts in all situations, but now that X-mas is here and I have all of January free (:bounce:) I´m looking forward to finally spending some serious time completing them and implementing some new snazzy features.
i've found that ur IK arm control isn't behaving correctly
Is it not behaving correctly (ie, does it give errors?), or are you just annoyed that the IK wrist rotation does not follow the IK arm???
About the auto-shoulder control, I´ll be adding this soon and therefore can see more clearly what the problem is and try to fix it. Then after that I´ll work on the spine.
Currently the setup script has arm setup and leg/foot setup. If you want, you can send me your private e-mail and I will send you updates (and will be very happy to hear your criticism). I probably won´t post any further scripts on this forum, but I will be happy to send them privately.
oh.... sorry that i didn't say it clearly. I'm just annoyed that the IK wrist rotation does not follow the IK arm. Í've to re-rigg that part on my own.
Please send me the latest update to my email email@example.com
3) During the creation of the IKFKarm with ur script. if i've the left side of the joints mirrored. there'll be duplicated joints with same name in the scene. so I can't execute the script correctly (which i can understand). but if the mirrored joint on the right side has got negative numbers in the joints (after i've given different names to the joints). The resulted FK controls just offsetted randomly (not really what we desired). maybe this is not really a problem after all if I duplicate to the right side by grouping the leftside (to get positive numbers). but i do feels it's much more intuitive if it works with negative numbers (again, not really essential. just remember to put this is ur note or documentations.)
It's really a pleasure to test the script that u written for us. anyway, u are doing a good job by far. Merry Xmas a all the best~!
12-24-2002, 12:33 PM
I see now there seems to be a problem with naming conventions for both sides in the arm script. I will look at this (but probably not today) and send you the update as soon as I can.
Also, if you´re mirroring joints, you should still freeze all transforms, perform a joint -e -oj xyz -ch, and correct your local rotation axises before you run the script.
Maya 4.5´s mirror joint tool allows you to do a search-and-replace for joint names, which can be useful here too.
Let me know if you find this in the leg script as well (but I don´t think so, as I wrote it a bit differently).
12-28-2002, 01:17 PM
I fixed the naming problem. Do you still have problems when mirroring joints?? I´ve found an auto-shoulder solution that works, but it will take some days to incorporate it into the script.
Also, about the hand not following the arm, right now I´m not sure if there is a solution for that, especially if the rotation is controlled by the ikControl, and has to blend to the fkControl...
I´m workin´ on it.
I've been left out from cg for a couple of week.
i had some problem with personal life. well.... it ended up that my gf dumped me on sunday.
anyway, i'm a fresh single man again. let's do CG again buddy~!
well.... send me ur update. I'll try it right away.
01-15-2003, 03:23 PM
I've been left out from cg for a couple of week.
Yea, I was wondering what the hell happened to you..life goes on dude! :airguitar
Anyway I´ve got some MAJOR updates I´m finishing this week...Not everything´s in there, but I think you´ll be quite happy with the way it´s shaping up...That´s all I´ve been working on for the past 3 weeks. I´ll send it to your e-mail as soon as I make some last finishing touches. I don´t want to pass it around on the forum, but I´m definitely interested in having some people test it out and giving their feedback.
You still at firstname.lastname@example.org ??
well.... i feels ok now.
what i'm doing now is trying whatever i can to win her back.
it just the matter of time. and at the same time, i'll put full consantration on work.
i'm glad that u've finally got ur script updated. u can send it to the same email adress.
anyway, i find that ur setups are quite satisfying tho. the only thing i need to tweak is the shape of ur controls object. it's basically what i usually tweak to make things easier to be recognised.
btw, have u tried autorigg script yet?
it's quite impressive. if u don't mind, i would happy to see u to modify that script to replace with ur arm and legs rigg.
i've plenty of ppl here who can test out ur scripts. it just the matter of whether u allow me to pass it among my students.
01-16-2003, 04:21 PM
OK, I just sent you the latest update. Let me know if you get it and what you think.
01-16-2003, 04:59 PM
Oh yeah, it works only with Maya 4.0 and up....
01-13-2006, 11:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.