View Full Version : oops i did it again...
Hello.
Can someone please tell me why the hell does that happen?
on the first image, the object is ok. just what i want..
http://web.1asphost.com/Emre/aspect01.jpg
but when i rotate the object it deformes itself. and other child objects are deformed too.
http://web.1asphost.com/Emre/aspect02.jpg
it happened before and i managed to solve the problem but i really forgot how i did.
help me please please!!!!!:cry:
|
|
gaggle
03-08-2003, 10:06 AM
Select your entire bone-chain and go to the Hierarchy menu, then hit the "Scale" button down in the Reset catagory.
If that doesn't work, of if it's grayed out or whatnot, go to the Utility panel, activate the Reset XForm, and apply that to the object.
Give it a try, and scream out if it doesn't work.
wacomrox
03-12-2003, 03:15 AM
the reason that occurs is because max applies the scalar transform last in the chain, so it rotates the instance of the object before it is scaled.
what you have done is you have used a nonuniform scale on either the object itself or some object above it in the hierachy. since this scale is applied after any rotation done to it, it will cause the object (and all its children) to stretch when rotated .
nonuniform scaling should always be applied on a subobject level, either directly on the mech itself or on the gizmo of an xform modifier. :)
the solution to your problem is as the previous poster said.
that button will reset the objects scalar transform so that its "100%" size in all directions is the current size, and thus no scaling will occur last in the chain!
(um, that sentence got kinda weird, hope you understood what i meant)
Thank you very much.
i tried them both. but doesn't work.
i unlinked all of them and started all over again.
Thank you again guys. maybe there's somethin' wrong i'm doing..
wacomrox
03-12-2003, 05:01 PM
hmm... are you sure you did reset the scale on the object AND ALL parentobjects upwards in the hierarchy?
you see, i've had exactly that problem too on a few occasions so i have done some research on it (was awhile ago now though).
if it still deforms when being rotated, then i think you have overlooked some part of the hierachy that you might have scaled...
you could try simply selecting everything in the entire scene at once and hit the "scale"-button under the reset group in the hierarchy-tab.
if you still have the .max file i could take a look at it and see if i can find what the problem is :)
(im going to do some tests on this issue now and see if i've overlooked some essensial part. could be embarrassing if im using my first post on this forum to speak a load of dung!) :eek:
edit: after a few quick tests i found that this problem occurs only to the children o an object with a missplaced nonuniform scale. so resetting the scale of the object that's accually deforming will not solve it. it is an object upwards in the hierarchy that needs to be reset... hope that helped :)
Rivendale
03-12-2003, 09:47 PM
Hi, try this: Go to the hierarchy tab and into the link info. Under the inherit, turn scale off for the children of your chain.
Hello.
i think you'r right wacomrox. when i reset the scale, it seems to work but how will i scale it to the right size again?it starts deforming.
i'll put the max file here. (tomorrow i can)
Rivendale; i tried it befor but it's not for that i think. Thanks. ;)
:beer:
wacomrox
03-13-2003, 04:50 PM
you need to scale it so that the scaletransform (this is what max applies when you scale something) doesn't end up last in the stack.
this is done by either
a: scaling the object on a subobject level. if you for instance, have a mesh-object, enter face-subobject mode. select everything and apply the scale. this will cause max to accually change the original positions of all vertices in the object, instead of applying the scaletransform last in the entire stack.
b: apply an xform-modifier. then go into the xform modifier's subobject level (called gizmo). scale the gizmo. this will cause max to apply the scaletransform at the xform's position in the stack.
"but the xform IS last in the stack" you might think now. but that is not true. it is last in the modifier part of the stack (which is the part of the stack that is visible to the viewer in 3dsmax).
however, max allways applies 3 more transforms to all objects in your scene after those shown in the stack. these are (in order of execution) translation (moves the object to its position in worldspace), rotation, and last scaling. it does this because up to this point all coordinates for the object have been given in local space (i.e. relative to its pivotpoint) and through these transforms it will align the coords to the world space.
this is why any rotation will be applied BEFORE the scale is applied regardless of if you rotated the object before or after you scaled it. so, if you rotate an object that you have scaled with the scaletransform, you will in fact also change the direction that scale.
this is not a problem if the scale is a uniform one (it has no direction), but if it is a nonuniform scale, this will cause the problem you have.
as it seems, max is smart enough to realise that this will cause a problem and compensates for it (somehow) for the object that you are rotating, but the problem will still affect all children of the object.
i hope this cleared things up.
:)
hey .... i'm stunned because of the information you gave. i learned alot i think.:eek:
Thank you very much.:p :beer:
CGTalk Moderation
01-14-2006, 02: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.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.