Can you compile multiple objects at once in 3DSMax?

Joined
Feb 13, 2023
Posts
45
Reaction score
20
Points
8
I just completely overhauled my grandstand model, and it uses separate models for each texture. I'm just wondering if it's possible to have a script compile all the separate models or if I have to import them one by one.

1707700248007.png

If it helps, the four model names are:
TinyBuildings
SmallBuildings
BuildingBig
Grandstands
 
Last edited:

Mystical

Test Rank
Staff member
Admin
Joined
May 28, 2022
Posts
577
Reaction score
430
Points
63
Website
adracingdesigns.com
Yes you can make all those models into one object using the GROUP function. For example if I wanted all those objects to be one building my code would look something like this where I group them:

Code:
Grandstand_object: GROUP (TinyBuildings, SmallBuildings, BuildingBig, Grandstands)

You'd use the group function right after your code where you named all the building objects in your code.

From there Grandstand_object (or whatever you choose to name your GROUP) is now ALL of those 4 objects together in your code. Grouping is super useful in not only combining objects as one 3do to reduce the 3do count on a track and also easier placement but also if you have LODs then having different group LODs for a model also make it much easier for the performance process. The other powerful thing about grouping is it bypasses that 1k vert limit. As long as no single object is over the vert limit you could theoretically group hundreds of 3dos together and it would be one single 3do you can place on a track and it would act no different than if all the objects were separate.

I like using group function for track objects that are repetitive like light poles, trees, billboards, etc.
 
Joined
Feb 13, 2023
Posts
45
Reaction score
20
Points
8
I tried the Group command, however only one model ever showed up. (that being the bleachers themselves, none of the buildings)
I'm still not very familiar with scripting, and I'm using the script you made with the older version of the model.
Here's how the .psg file looks like.

Code:
#######################################

#   Load Models

#######################################

#load empty mesh
off_pop:  EMPTY_MESH


#load scene with 3D Models
model:       MESH_GROUP  "grand.pas"


stand_L1:   MESH model Grandstands, BuildingBig, SmallBuildings, TinyBuildings
Grandstand_object: GROUP (TinyBuildings, SmallBuildings, BuildingBig, Grandstands)


pop_switch_output:  STATE_SWITCH  VAR Population  (0 off_pop, 1 stand_L1, 3)


#######################################

#   MASTER OUTPUT

#######################################


OUTPUT pop_switch_output "Grandstands1.3do"
 

Mystical

Test Rank
Staff member
Admin
Joined
May 28, 2022
Posts
577
Reaction score
430
Points
63
Website
adracingdesigns.com
Are all those models in the grand.pas? If not you'll need to call all of those pas files at the beginning as well.
 
Joined
Feb 13, 2023
Posts
45
Reaction score
20
Points
8
I believe they all are in the PAS file, given the fact that make3do showed this while compiling the 3do.
1707945597808.png
However the 3do file itself only lists the mip for one of the models (that being the bleachers)
1707945770210.png
 

Mystical

Test Rank
Staff member
Admin
Joined
May 28, 2022
Posts
577
Reaction score
430
Points
63
Website
adracingdesigns.com
this might be the issue in the code:

Code:
#load scene with 3D Models

stand_L1:   MESH model Grandstands, BuildingBig, SmallBuildings, TinyBuildings

Since these are different models you still need to define them as a mesh so make3do knows to compile them

so for example:

Code:
model_1: MESH model Grandstands
model_2: MESH model BuildingBig
model_3: MESH model SmallBuildings
model_4: MESH model TinyBuildings

Grandstand_object: GROUP (model_1, model_2, model_3, model_4)

each individual model needs to be named, in your code they were not. In my example I give each mesh a name like model_1, 2 3 and 4. You could name them whatever. But then you see I use that name (the alias make3do uses to recognize its a mesh) to the group them in the grandstand_object GROUP right under it.
 
Top