I would reset the scale and transform (hierarchy tab reset scale/transform) before Reset Xform. Reset xform does a few undesirable things in addition to doing the two things you need, reset scale, reset transform.
The main thing it does, is jack up your local pivot on your model to align to the world, which can be kind of disastrous for a bunch of things...
Why use a nuke when a hand grenade will do?
The cause, you scaled the model in "non-uniform scale" model which it looks like your scale tool is set to.
You should always, ALWAYS reset scale and transform before doing any kind of linking, rigging or skinning... always.
Also if you're ever using bones, use "Animation > Bone Tools: Edit Bone" to adjust the bone's position to the mesh do not scale the bones on a rigid skeleton. The only time you should scale bones is if you're doing squash and stretch animation AND you've set the bones to squash and stretch in Bone Tools. Even then if you're aligning bones in the default pose you should click reset stretch, scale and align in bone tools.
A little info to add...you have to reset the scale for the parent (probably the shoulder)...it was scaled non-uniformly and the child (your biceps) rotates in the deformed transformation matrix of the parent, this getting skewed like you see.
Best thing is, to completely avoid using scale (at all) on object level. Always go to a subobject level or use a Xform Modifier, if you want to scake things. That way you prevent the transformation matrix from getting deformed.
Ugh, I hate Reset XForm. Because, as Vig has demonstrated, it totally ruins your transforms. But I don't even like Reset Scale because it just hides the scale and doesn't actually reset it.
You should just avoid scaling at the object level altogether, period. Uniform or otherwise. Scale messes with everything on a very low level. Scale at the subobject level.
If you want to reset xform with out fucking up your rotation:
create a box
align the box to the problem object using only rotation and position
convert box to editable poly
attach problem object to box
select box in element mode and delete
now your problem object has its scale cleaned up but retains its rotation and pivot.
You'll have to rename the problem object (probably now named box01) and possibly set some object properties.
But that method will also destroy any constraints, hierarchy, scripted controllers, etc.
so if you've already rigged the character, you will likely demolish the rig. Also, as far as I can tell, you cannot script this process, which sucks big.
Replies
_Revel
The main thing it does, is jack up your local pivot on your model to align to the world, which can be kind of disastrous for a bunch of things...
Why use a nuke when a hand grenade will do?
The cause, you scaled the model in "non-uniform scale" model which it looks like your scale tool is set to.
You should always, ALWAYS reset scale and transform before doing any kind of linking, rigging or skinning... always.
Also if you're ever using bones, use "Animation > Bone Tools: Edit Bone" to adjust the bone's position to the mesh do not scale the bones on a rigid skeleton. The only time you should scale bones is if you're doing squash and stretch animation AND you've set the bones to squash and stretch in Bone Tools. Even then if you're aligning bones in the default pose you should click reset stretch, scale and align in bone tools.
Best thing is, to completely avoid using scale (at all) on object level. Always go to a subobject level or use a Xform Modifier, if you want to scake things. That way you prevent the transformation matrix from getting deformed.
You should just avoid scaling at the object level altogether, period. Uniform or otherwise. Scale messes with everything on a very low level. Scale at the subobject level.
create a box
align the box to the problem object using only rotation and position
convert box to editable poly
attach problem object to box
select box in element mode and delete
now your problem object has its scale cleaned up but retains its rotation and pivot.
You'll have to rename the problem object (probably now named box01) and possibly set some object properties.
But that method will also destroy any constraints, hierarchy, scripted controllers, etc.
so if you've already rigged the character, you will likely demolish the rig. Also, as far as I can tell, you cannot script this process, which sucks big.
thanx