A simple UVW map modifier randomizer, with a minimalistic UI and some extra tools like rotating and aligning gizmos, on multiple objects at once.
Recently I've had to model a lot of office furniture, and there were hundreds of wooden boards we had to map. To avoid texture repetition, we adjusted the UVW coordinates on individual boards, but it's a huge hassle to do by hand.
I thought a script could make my life easier so I made this. I'm aware there are some similar scripts out there, but I've decided to write my own from scratch for practice purposes. I wanted to do a fairly minimalistic UI, so as not to get in the way when working.
Usage is really simple. The spinners determine the range the randomizer will use to move, rotate or scale the UVW map modifier gizmo of all the selected objects. So if you enter 10, the effective range will be from -10 to 10. I've done it this way since I noticed that I almost always input the same numbers in min/max spinners on similar scripts anyway.
The XYZ button locks all three axes to the value in X, so X=Y=Z.
The ON/OFF toggle switch enables or disables that particular transform.
If "Skip disabled" is checked, the script won't affect any disabled modifiers. Similarily, if "Affect channel" is checked, it will only affect modifiers with the selected channel.
"Make unique" will make all instanced modifiers unique before transforming them, if it encounters any.
Finally, "Apply" does the transformation according to selected parameters.
The "90 degree rotate" buttons rotate the gizmo 90 degrees on the selected axis. As well as being faster than rotating by hand, you can apply this to multiple objects at once, which is sometimes useful.
The "Align" option is essentially the same as the one in the UVW Map modifier, but like all the rest, works on multiple objects and modifiers.
The script saves the gizmo transform values (per modifier) the first time it affects any given modifier. The "Revert" button will revert to those saved settings. This is saved with the scene, so you can revert in a different max session too. The only limitation to this is that, when reverting, the script deletes the data, so as not to leave junk data in the max file. Therefore, if you undo the revert operation, the script will assume that the state after the revert is the new original state of the modifiers. "Apply" operations can be undone normally.
On the very bottom, there are buttons for docking the script left and right, and floating it to a window, as well as an exit button, since it is quite a hassle to mess with the rollout handlers when docked. :)
Installation procedure is standard, drag the contents of the zip file to the max root directory. Only max 2013 and up is supported for now. The script will appear in the category "ChopmeisterScripts" in the customize user interface window.
Comments and suggestions are always welcome! Enjoy!