Between Max9 and Max2008 it seems that Autodesk decided to change the behavior of the Map Channel spinner in the UVW Unwrap modifier. For 9 versions of Max that spinner would change which set of UV data was being worked on. For Max versions 10+ that spinner now copies the UV data from channel 1 to whichever channel you select. There is no change to the labelling in the UI to alert the user to this new behavior. The new “improved” workflow to change which channel you are working on is to set the spinner to an existing channel, click the Reset button, and then answer Yes or No to a warning dialog.
(scratches head)
As we here at Volition migrate from Max9 to Max2009 this is causing some consternation amongst the artists. It’s just too easy for them to accidentally blow away a meticulously crafted UV channel.
I had the idea to write a scripted modifier that extends Unwrap UVW so that we could recreate the historical workflow of “spinning the spinner selects a UV channel without overwriting it”. I very quickly had a working prototype with an additional map channel spinner that did a .mapChannelSet() and .reset(). The first thing I discovered was that the warning dialog spawned by .reset() is not suppressable. Setting QuietMode to true does nothing. I’m glad I’m not having to write a batching tool that would need to interact with the Unwrap UVW modifier UI.
Other than that little hiccup the extra spinner worked as expected. But, it still represented a change in workflow for the artists. Since the destructive Map Channel spinner was still on the UI, and they were naturally inclined to spin that one, the chance of an inadvertant map channel overwrite still existed. Looking through the MaxScript help docs I noticed that there were now (probably since Max 2008) a lot of new methods exposed for the Unwrap UVW modifier. Enough methods, it seemed, that I would be able to easily recreate the default modifier UI and just replace it. If I were to do that, with the new Map Channel spinner working as expected, then all the artists would have to do would be to remember to use vUnwrap UVW instead of Unwrap UVW.
Yeah, no…
A bug now exists in the Unwrap UVW modifier. As far as I can determine it exists in 2009 and 2008, but not Max 9. If you create a scripted modifier that extends Unwrap UVW and has replaceUI: set to ‘true’ then Max will crash when you place that scripted modifier on a node. It crashes hard, too. An instantaneous “An error has occured, blah blah blah” dialog and then an exit to the desktop, regardless of whether you click OK or Cancel on the error dialog.
Of course, the replaceUI:true bug doesn’t exist in Max 9. But, that doesn’t really matter since a)Max 9 has a good implementation of the Map Channel spinner and b)Max 9 doesn’t have the exposed Unwrap UVW methods that would allow you to create a replacement UI.
GAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHH!!!