GBXModel Importer v2
for 3ds max v5.0+ and gmax 1.2
As part of Project BlueStreak
What started as a node/marker importer that would correctly import biped nodes turned into a full-blown .gbxmodel tag importer for 3ds max and gmax. Two weeks and 1,200 lines of code later, this max script is able to fully import any exported .gbxmodel tag. The features include...
- Import any piece of geometry from any gbxmodel tag
- Import model with perfect UVW coordinates and material ID's
- Setup the max material library for the model's shaders
- Import any model's nodes and markers with correct position and rotation
- Optionally import biped nodes as bone objects
- Import vertex weights for a fully-rigged model
You can do all of this with many options and at the touch of a few buttons! In seconds you can import any of the following...
Import Human Vehicles:
...or Covenant Vehicles:
Import Device Machines and Other Scenery:
Import Nodes and Markers:
Import Biped Nodes as Bones:
Import Vertex Weights for Perfectly Rigged Models:
The script runs fully functional in both 3ds max and gmax!
As you can see, there are many import options and it's pretty user-friendly.
Download v2.0.0 of the script here. Readme details here.
How to Import a Model:
- Press the button "Load GBXModel" and navigate to the desired GBX Model tag.
- Select the desired LOD, region, permutation.
- Choose any of the following you want to import: the model, nodes, and/or markers.
- If you are importing a model, choose from its various import options, including importing textures and vertex weights.
- If you are importing nodes/markers, choose whether you want to import nodes as bones or not, as well as the node/marker radius.
- Press the button "Import GBXModel," and the desired selection will import within a few seconds.
Frequently Asked Questions:
Q: Where do I get GBXModel tags?
You must download and install the Halo Editing Kit (HEK), which comes with a number of GBXModel tags in the "tags" directory (i.e. tags\characters\cyborg\cyborg.gbxmodel). If you are interested in obtaining additional model tags, download and install the Halo Editing Kit Plus by SteelixB, which allows you to extract tags from HaloPC maps. I have also put together a sample model pack, which you can download here. It contains models such as the Cyborg, Elite, Marine, Warthog, Assault Rifle, and others.
Q: Where do I get textures for my models?
Textures in the HEK are stored as .bitmap files (i.e. tags\characters\cyborg\bitmaps\cyborg.bitmap). In order to convert these files into useable textures in 3ds max (i.e. TIF or JPG format), you can open the .bitmap tags in Guerilla, click "Show Bitmap," and use the Print Screen key to capture the image. Then paste the image into Paint or Photoshop and crop out the texture. You can also use the Bitmap Extractor v1.5 by FireScythe, which extracts the .bitmap tags for you into JPG, TIF, BMP, and a number of other formats.
Q: What do the "Select Import Geometry" options do? Which should I use?
The default option "Selected Permutation from All Regions" radio button searches for the selected permutation in all of the model's regions. If it is found in multiple regions, it will import the geometry from all of those regions as well. For example, if you have selected the "__base" permutation in the arms region, it will search the legs, head, and torso region for a permutation named "__base", and if it is found in those regions, that geometry will be imported as well. The second radio button "All Permutation of Selected Region" will import all of the permutation in the region that's currently selected. This is typically not a good idea as it has very little practical application. The third radio button "Selected Region and Permutation Only" will import only the highlighted permutation from the highlighted region. You would use this option if, for example, you were importing the Sgt. Johnson permutations from the marine_armored model. You would go to the arms region and select "sgt_johnson-100", then go to the head region and select "sgt_johnson-100", and then in legs and torso regions select the "__base" permutation as Sgt. Johnson does not have specific permutations in those regions.
Q: What does the "Attach Parts of Mesh Within Region" checkbox do?
Each geometry block is broken down into "parts" blocks which are essentially grouped by the shaders which make up the region. If this checkbox is not checked, each material will be imported as a separate mesh. It is not necessary to break up the regions into their shaders because the "Import UVW Coordinates and MatID's" checkbox will automatically assign proper material ID's within the region mesh. Thus if this checkbox is checked the parts will automatically be attached into one mesh for the region.
Q: What do the "Nodes as Bones" checkboxes do?
A model's nodes are usually represented with spheres to indicate their translation and rotation. However, if this checkbox is checked, nodes will automatically be created as bone objects in 3ds max and gmax. Bone objects are much easier to use with bipeds for skinning and animating. Consider adjusting the node spinner depending on the scale of the model. For example, Cortana is a small model and will require considerably thinner bones in order that the rig looks correct upon import. If "Only Biped Nodes as Bones" is checked, only nodes that start with "Bip01" will import as bones.
- Version 1.0.0 - first public release.
- Version 1.0.1 - revised the "offset magic" for uncompressed vertex block to make it more conservative. Caused read past end of file error in version 1.0.0 when importing some models (such as the fp arms).
- Version 1.0.2 - too many problems with the "offset magic" made me eliminate it all together. Only conservative numbers are used now to skip over the data while indexing the file.
- Version 1.0.3 - fixed a piece of code which caused the biped rigs (with biped nodes as bones) to import slightly inaccurately. Also made minor improvements to the handling of node translation and rotation data.
- Version 2.0.0 - first public release of v2.0. This new version imports GBXModel tags directly and makes a number of major improvement to the original importer, most notably its ability to import rigged models with local nodes.
To-do List :
- Nothing currently in the to-do list.