Okay, here is the syntax of importing .3DS objects via an ASCII file:
Code:
Mesh
Name meshname
Loc x,y,z
Heading rx,ry,rz
Size sx,sy,sz
3DSFileName fully-qualified path and file name
End
It's basically just an extension of OpenZone's .SCN file format where it recognizes a new token: 3DSFILENAME. Here is an example that I used to test it (meshimport.scn):
Code:
LongName 3DS Max Import Test
ShortName importtest
ZoneType Outdoor
Mesh
Name Mesh1
Loc 0, 0, 0
Heading 0, 0, 0
Size 1, 1, 1
3DSFileName D:\Borland\Delphi6\Projects\OpenZone\3ds\knot.3ds
End
Mesh
Name Mesh2
Loc 2000, 0, 0
Heading 0, 0, 0
Size 1, 1, 1
3DSFileName D:\Borland\Delphi6\Projects\OpenZone\3ds\knot.3ds
End
Mesh
Name Mesh3
Loc 4000, 0, 0
Heading 0, 0, 0
Size 1, 1, 1
3DSFileName D:\Borland\Delphi6\Projects\OpenZone\3ds\knot.3ds
End
Mesh
Name Mesh4
Loc 6000, 0, 0
Heading 0, 0, 0
Size 5, 5, 5
3DSFileName D:\Borland\Delphi6\Projects\OpenZone\3ds\knot.3ds
End
.SCN files are case IN-sensitive. The NAME, LOC, HEADING, and SIZE tokens have to come first in the MESH object. You would import the objects to an existing zone by clicking Edit...Insert scene... rather than opening the scene as you normally would ("Insert Scene..." opens an .SCN file and adds its contents to your zone).
The HEADING token rotates an object around the X, Y, or Z axes, where X points north-south, Y points east-west, and Z points up-down. It always rotates around Z first, then around X and Y. To yaw an object 5 degrees about the Z axis, for example, you would specify it as HEADING 0,0,5 (all angle units are in degrees, not radians).
The import code is smart in that it caches any meshes you import in this manner, so importing the same object hundreds of times should be fairly efficient. Unless there are any more requests, I'll package it and put out a release this week.