PDA

View Full Version : Help Denying Scale Inheritance



lord
08-27-2003, 01:53 AM
No it's not a legal argument between siblings over the estate of a wealthy parent. Then again maybe it is.

I've been scratching my head for sometime now, trying to figure out a way to stop an object inheriting the scale of it's parent.

I would've thought that there was an easyway of doing this, a switch somewhere called "Don't Inherit....Scale."

Am I missing something obvious?

I need it to work in with a Bone IK setup, so simply breaking the chain wont do it.

Any suggestions, pointers, help, would be greatly appreciated.
(No legal advice please)

Cheers,

Lord

toby
08-27-2003, 02:34 AM
don't know if it will work with bones/IK but turn on "parent in place" before you parent and the scale won't change. You can turn it off/on as you like, very handy.

Dodgy
08-27-2003, 02:38 AM
You'll have to put a bone at the end of the scaling bone, and set it's scale to be 1/parent scale using expressions.Then parent the child bone to this compensation bone.... Sorry it's not easier than that :P

lord
08-27-2003, 03:03 AM
Thanks Dodgy, will that have adverse effects on the IK?

I've had a quick play and the IK is all jittery. Am I missing something?

TerryFord
08-27-2003, 05:01 AM
Originally posted by Dodgy
You'll have to put a bone at the end of the scaling bone, and set it's scale to be 1/parent scale using expressions.Then parent the child bone to this compensation bone...
Dodgy's right, but you could probably apply the scale compensation directly to the child bone, without the extra "compensation bone", something like this (you'll need to change the object/bone names, obviously)

BonedObject.Childbone.Scale.X; 1/ [BonedObject.ParentBone.Scale.X]
BonedObject.Childbone.Scale.Y; 1/ [BonedObject.ParentBone.Scale.Y]
BonedObject.Childbone.Scale.Z; 1/ [BonedObject.ParentBone.Scale.Z]

The bits before the ";" are the channels to affect, the bits after the ";" are the actual expressions. There might be an easier way (Follower?).

lord
08-27-2003, 11:12 PM
I've had a bit more of a play with the setup, what seems to happen is that the child bone will skew, not necassarily scale relative to local axis, if for example the child bone is rotated, if that makes sense. So compensating for it by scaling the Child bone directly, or through an expression wont fix the skewing.

Dodgy's suggestion would work if the chain wasn't using IK.

I'm wondering if for the bits of animation that involve scaling the bones, I might remove the IK, and use Dodgy's theory.

Cheers for your help and suggestions.

(Wish there was a "Don't Inherit Scale" button. Would be really helpful.):(

Dodgy
08-28-2003, 02:59 AM
That's why you need the compensator bone, your child bone will just get distorted if you apply any rotation to it.

Ik should work okay, as long as you have IK turned off (set to keyframes in all it's controller fields) for the compensator bone and have the standard IK caveats (a slight bend in the IK chain etc)

I've tried it and it works fine for me...

TerryFord
08-28-2003, 04:33 AM
Originally posted by lord
...what seems to happen is that the child bone will skew...

Ahh, my mistake, I assumed you were using "size" (even x/y/z scaling) on the parent bone... I'll get me coat :)


Regards,
Terry

lord
08-28-2003, 09:11 PM
Cheers Dodgy, I think I was including the compensating bone in IK, I'll try it without it.

See what happens.

Cheers.

lord
08-30-2003, 10:41 PM
Just to give a big thanks Dodgy. Seems to work just fine. Really appreciate your help on that one. :D

Dodgy
08-31-2003, 04:37 AM
Sorted :)