stretchy IK mistakes


#1

Hey, so since im used to rigging humans, not cartoon characters, im not that experienced in that area. i only have one question so far tho:

P.S. sorry for the essay… it always ends up like this cuz i wanna explain thing thoroughly ^^

- how do you take care of the deformations?

ofc i get the distance nodes, scale on joins through condition and multiply… bottom line, i can create a stretchy IK no problem, but the deformations are the problem…
scaling the joint obviously scales the geometry depending on the position of the joint to the position of the mesh (the joint would have to be perfectly in the middle of the mesh to have the scale proportional, but this placement isn’t always ideal for rigging a character) plus there’s another issue - not always you have painted weights only in the front of the bone. sometimes, especially in the elbows/knees - you got weights ‘behind it’ too. --> if you scale the bone along the axis, it obviously scales the weights behind the bone to the exact opposite than what you need…

so the solution im thinking of right now, is just to have the default i.e. ‘lf_forearm_jnt’ -> which is gonna have the weights overlapping with humerus to take care of good deformations in the bending area, and then an i.e. ‘lf_forearmScale_jnt’ -> which is gonna be parented under the main forearm, and be positioned perfectly in the middle of the mesh, and only have weights painted in front of it, and that’s the one im gonna only scale with distance (but do nothing else with it, rotation & translation locked)…

so… what do you say? anyone got a better solution?

i guess a better example here is the humerus-clavicle connection, since humerus-forearm is kinda okay with the default skinning, since when the arm scales, it scales proportionally, the two bones scale together, so it’s fine there, but the clavicle? if you scale the main humerus bone, the clavicle scales inwards since you got some weights in the body too… - so i guess follow the same setup as with humans - have more than one bone in humerus and scale the first one that has weights only in front of it?

thanks :slight_smile:


#2

You could try translating your bones instead of scaling. If you want to stretch the thigh, then translate your knee joint along X (assuming X is the axis that aims down your joint). No weird scaling of mesh, just a nice stretch.

An alternative to this would be to maintain your scaling stretch technique but add some bindable joints that move along with these scaling joints, but they themselves don’t scale. Something like ribbons.


#3

Hey Gonza, thanks for the input.

I don’t like translating joins for this purpose at all, since that too, has to be taken in consideration while prepping the bind joints. - to get a smooth scale of a thigh, the two joints (hip and knee) would have to be perfectly smoothed out throughout the whole length of a bone, which then means that you can’t use the same joint for bending the knee, which in turn means creating additional joints, which in turn takes me back to the first place that i can just create one perfectly placed and scale the crap out of him :slight_smile:

but now im thinking about a ribbon-like solution too, thanks for mentioning that, i might try something tomorrow.

Completely off-topic, just came from Transformers III, the vfx is just incredible, and the 3D as a whole is awesome as hell, i recommended it a lot :slight_smile:

Thanks man


#4

Yes, I see your point. I favour the secondary deformation rig riding along with the basic “posing” rig, such as the ribbon approach. SplineIK for each limb segment can work too, but regardless of the approach, you have to solve a stable twist. Please post your with your results. :slight_smile:


#5

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.