Scripts

Reset X Form

PEN Reset XForm V:2.01 Release 64bit ready New Update! Check the History 


Designed to ease the task of resetting the transform matrix on scaled or mirrored objects. 
Models that have had their transform matrix scaled by either using the scale tool at the object level or objects that have been mirrored using the Mirror tool in the main tool bar will exhibit strange behavior later in the pipe line. Scaling, especially non-uniform scaling will affect the children in a hierarchy, making them skew as they rotate. Modifiers like Skin will not work correctly as they are based off the object transform of the node that they have been added to. If the object transform has not been reset envelopes and mirroring will not work as expected.

Download: PEN_resetXform_V2-01-02.mzp
Installation: Down load PEN_resetXform.mzp and drag and drop it in the Max view port. Then use Customize/Customise User Interface to add all four Reset X Form Macros to you favoit menu or hot key. Macros are found in PEN Tool group.

Warning: Delete old version of this script from your stdPlugs/stdScripts folder before installing!

PEN Reset Xform is designed to make the task of resetting xforms on objects easier. This is done by automating the process of locating objects that need to have their xforms
orthogonalized and or normalized. Objects that have been mirrored at the object level or scaled at the object level in any way will result in a transform matrix that doesn’t have all of
its axes at right angles to each other or the axes are not one unit in length.

Scaled Objects:
Filter: Scene or Selection:
This will search the scene or the selection of objects for objects that need to be reset. 

Search: Button will initiate the search
Tolerance: Any objects above this value in scale will be flaged as scaled. 
Objects List: A list of all objects that have been found and need resetting. Lists the objects name and a status of the object. “S” means scaled and “M” means mirrored and “T” means the pivot has been transformed.
Note: Only objects that are selected in the list will be reset. 
Note: Selecting objects in list will now select the object in the viewport. 
Status/Class Column: Clicking on this column header will switch between displaying the status of the object to the class of the object. 
Select All: Will select all objects in the list.
Select None: Will deselect all object in the list. 

Bone Options:
Reset Bones: Forces bone objects to be reset.
Reset Stretch Only: When selected bones will not be reset using the same method for other objects. The transform matrix will be reset and the scale and orientation of the bones will be set using the bone properties.

Pivot Options:
Preserve Pivot Orientation: Will not reset the orientation of the pivot but keep it aligned to the
pre xformed orientation. Note that if an object has been mirrored at least
one axis will need to be flipped. 
Affect Position: Allows for a new position of the pivot to be chosen.

Object Options:
Correct Normals: When objects have been mirrored the normals get flipped, this will correct
the normals once reset. 

Collapse Options: 
Collapse Stack: Will force the stack to be collapsed after the reset of the xforms. 
Collapse To: Choose what you would like the base object type to be.

Reset X Form: initiates the resetting of the xforms. 

History:

April 20, 2009 V:2.01.02R 64bit

-Corrected bugs that were causing slow downs when objects in the list because selected. Thanks goes to Jon Seagull for reporting the bugs and working with me to get them corrected.

Sept 26, 2008 V:2.01.00 R 64bit

-Upgrading to V:2 with dotNet list to replace Ax list. 
-Added Tolerance spinner so objects can be filtered out if within an acceptable range. 
-Picking objects in the list now selects that object on screen. 
-Clicking on the Status column header changes it to showing the class of the object.

June 15, 2007 V:0.04b

-Added support for checking if the pivot has been trasnformed in any way. 
-Looks like there is still a problem that if the object has also been scaled or mirrored
-the pivot is still reading as it has been transforms. This isn’t the case if it has
-just been moved and then reset.

April 25, 2007 V:0.02b

-Now filters out biped objects.
-Now checks for deleted scene objects. 
-Added progress bars for searching and processing. 
-Removed unneeded option for maintaining stack as it wasn’t being used.

April 24, 2007 V:0.01b

-Feature complete and in beta
-Completed listview control.
-Items in that are selected are the ones that get reset now. 
-Added functions for working with listview.

April 19, 2007 V:0.44a

-Added AX listview and started converting the list of scaled objects to use it.

April 18, 2007 V:0.43a

-Added resetXformBones
-Will now filter for bones and reset them using a different method. 
-This function still needs work but it is getting close. 
-Looks like it is working now. 
-Corrected problem where not all scaled objects were being found.

April 17, 2007 V:0.42a

-Added breakHierarchy function.
-Added linkHierarchy function.
-Objects are now unlinked and relinked after resetting so that hierarchies don’t
blow up.

September 05, 2006 V:0.41a

-Corrected issue with Preserve Orientation not working when pivot was mirrored
in world space and not local. 
-Added radio button for choosing which axes to bias to for Preserve Orientation.

September 01, 2006 V:0.4a

-Corrected issue when resetting xforms on instanced objects. 
They are now made into references and then reset.

August 29, 2006 V:0.3a

-Connected dockable feature
-Dialog now remembers where it was on next open. 
-Updated about dialog with links. 
-Added Bugs menu for reporting bugs to the web board.