Notifications
Clear all

[Closed] unwrap multiple objects

ok, yes that’s a bit faster. but it still takes more than 20 seconds to calculate 7 objects, with a polycount of 120 each.
but well, shouldn’t complain, it’s 4 times faster than doing it manually.

another small nuisance is that the old objects are visible through the collapsed UV objects.

Here is the new version that allow to edit the primitive objects also.

max 6: http://users.skynet.be/arketip/maxscript/multiObjectsUnwrap_max6.ms
max 7: http://users.skynet.be/arketip/maxscript/multiObjectsUnwrap.ms

As for the speed, if somebody have an idea…

here is my speed test:
120t : 10 boxes of 6 faces (12t) + don’t weld: 0.3 sec
120t : 10 boxes of 6 faces (12t) + weld: 5.2 sec
5.000t : 10 boxes of 250 faces (500t) + don’t weld: 3.6 sec
5.000t : 10 boxes of 250 faces (500t) + weld: 8.2 sec
20.000t : 10 boxes of 1000 faces (2000t) + don’t weld: 21 sec
20.000t : 10 boxes of 1000 faces (2000t) + weld: 31 sec
50.000t : 100 boxes of 250 faces (500t) + don’t weld : 99 sec

I don’t understand when you say “the old objects are visible”… what kind of old objects ?

last update: well I understand now and It’s also modified.
I also added a progress bar.

max6: http://users.skynet.be/arketip/maxscript/multiObjectsUnwrap_max6.ms
max7: http://users.skynet.be/arketip/maxscript/multiObjectsUnwrap.ms

thanks gonna test it now

It’s done! the script is on scriptspot now.
If you already use this script I recommend you to download the last version…

Now, the script is the same for max 7 and 6 …Is there anybody who can test it with the version 5 ?
thanks in advance

actually, it seems your script is not able to cope with mirroring.
mirrored objects are getting strange mapping malfunctions, and probably causes crashes.

1 Reply
(@prettypixel)
Joined: 11 months ago

Posts: 0

I think this problem comes from any object which is an “instance” or a “reference”.
The miror in itself isn’t the problem.
But by definition an instance object is always the similar to the original… and it’s not possible to give him different mapping coordinates in fact… In this case the script give it false mapping coordinates (but no crashes to my opinion).

There is 2 way to avoid this problem:
1- to make the instances nodes unique (before to apply the multi-unwrap) if you really want several mapping coordinates for similar instanced nodes.
2- to select only the original object and not the instanced nodes if you would like to have only 1 mapping coordinates for your instanced object.

I think about a technical solution, but an another problem is to know what the user want to make…

hmm, well in my case, the objects weren’t instanced, just mirrored.
i had mirrored multiple objects along a single axis.

1 Reply
(@prettypixel)
Joined: 11 months ago

Posts: 0

It is exact! I have just make a test with a mirroired object using “copy mode” and the UVs are false :bounce:

I resolved manually this problem using “ResetXForm” before unwrap the objects.
But after the “ResetXForm”, the faces on mirrored objects are fliped! :argh: and I add a normal modifier to correct this strange problem !

How detect if an object is a mirrored object ? Always apply an Xform is an huggly solution…

Ok now the script can support mirroired objects
http://users.skynet.be/arketip/maxscript/multiObjectsUnwrap.mcr

Well First, thanks to ’ hunter ’ to give me the code to know if an object is mirroired:

if ((obj.scale.x < 0) OR (obj.scale.y < 0) OR (obj.scale.z < 0)) do ...

Unfortunally I don’t have find a good method for the modifier UVW_Xform.
The problem with the uvw_xform is I must detect if the object is mirrored axis by axis
1- detect if the axis X is mirrored ?
2- detect if the axis Y is mirrored ?
3- detect if the axis Z is mirrored ?
With that I could apply an UVW_Xform but…

and for example when I mirror an object only on the axis X :
(selection[i].scale.x < 0) is true (logic)
(selection[i].scale.y < 0) is true, NOT logic :surprised
(selection[i].scale.z < 0) is true, NOT logic :surprised
It’s very strange. Isn’t ?

Anybody understands anything there?

little update.

I have added a function “copy channel” in the interface: for a new channel use the channel n
And I have removed an error when you edit an another channel than the 1…

Again some errors removed in the last version when you don’t use basic Editable_Mesh/Editable_Poly objects on other channel than the channel 1. I REALLY recommend you to download the last version because old versions causes crashes of 3DSmax in several cases…

last version : 1.26b
(if you download with scriptspot, the version number is not yet updated (probably you view “1.24” today) but the link is right the “1.26” now)

Perfect! ScriptSpot is already updated without I ask for It. It’s magic

Be magic you too.

Page 2 / 3