Select a model and find it's XDB XML files (“..(Character).xdb” and/or “..(model).xdb”);
Open
the model's main XDB XML file (often designated “..(model).xdb”),
and follow all paths to retrieve:
- it's mesh file (via “..-geom.xdb”),
- it's skeleton (via “..-skel.xdb”),
- it's animations, and
- it's DDS textures;
Make
a short list of the order of appearance of the materials and the
corresponding DDS texture file names
(check "..(model).xdb", the
"..(Material).xdb's", and the "..(Texture).xdb's";
Create
a directory for easy model retrieval, with subdirectories for the
skeleton, the XDB XML files, and the animation files.
Give
the filenames of the skeleton file and the animation files the
extension “.gr2”;

My
directory set-up for 3D HoMM.V modeling, as an example.
Start
Archangel and navigate to the directory where you put the HoMM.V
mesh file,
select the mesh file and open it.
You'll be prompted for
selection of each of it's textures.
(It's useful to have them in the
same directory as the HoMM.V mesh file);
(Open
the model's main XDB XML file again or..) check your materials short
list to see which texture to load next.
Archangel cannot retrieve
this info from the mesh, so you have to supply this yourself;
Archangel
now displays the model with it's textures.
In case a texture doesn't
fit, simply click on the mesh-part and then right-click in the
3D-view.
A context menu will appear, from which you can select the
option <Other texture>;
Next
step is to combine the model with it's skeleton.
To do so, select
the option <Tools><Load GR2 skeleton> from the program
menu;
Navigate
to the folder where you put the skeleton file, select the model's
skeleton and open it.
Note that Archangel specifically asks for a
file with a “.gr2” extension;
In
order to display the result of your actions, select the option
<View><Show Bones>.
The model's textured mesh will be
displayed transparently, and it's bones will be displayed as well.
In this mode you can only select bones in the 3D display window, not
meshes or mesh-parts;
Archangel
now has both the textured mesh and the skeleton,
but what is more
important is that it also has the links between the mesh and the
skeleton, though these links aren't displayed.
The way to ultimately
combine all of these data is to export a Half-Life 2 SMD file.
Click the
option <Tools><Export Half-Life SMD> in the program
menu;
Archangel
will tell you the name of the exported SMD file.
It will be
exported to the directory where the loaded HoMM.V mesh file resides;
At
this point you're done with Archangel for the moment, so close it
and start your 3D modeling program.
This should be a program which
can import Half-Life 2 SMD files.
At the bottom of this page is a list of SMD
capable 3D modeling programs.
The
Gmax way of handling SMD files is already described in a Gmax SMD
import and export tutorial
(
http://forums.taleworlds.com/index.php/topic,13615.0.html
).
This quickstart will continue with a short tutorial for
3DSmax7.
Start 3DSmax7 and select the option <File><Import> from the program menu;
Select “Half-Life 2 SMD” from the file types drop-down list;
Navigate
to the folder where your SMD file resides, select the file and open
it.
The following plugin options window will appear:

You
don't need to deselect any of the checkboxes.
Just click <OK>
to continue;
The plugin will go to work, and after a while your SMD model will appear in each viewport:

3DSmax's
3D viewport after initial SMD import,
showing complete obfuscation
of the model by the bones..

3DSmax's
Front viewport after initial SMD import,
showing the selected
(white) model behind the bones.
Now
select the display tab (shown below) from the sidepanel, and
click
the button <Hide Selected> (in the <Hide> submenu).
This
will conveniently hide the model's mesh in order to select only it's
bones;

Select all bones by clicking-and-dragging a rectangle around them in the Front viewport;
In
the sidepanel, Display tab, open the <Link Display> submenu.
You have to click
(precisely) on the small “+” to the left of the
“Link Display” text.
Tick the two checkboxes shown
below (don't do this in Gmax):

This
way, the bones won't obfuscate the model's mesh anymore,
so click
the button <Unhide All> in the sidepanel to display it again;
At
this point you might want to start checking bones' position relative
to the mesh.
For this purpose, you'll sometimes want to set the mesh
to display transparent.
To do so, select the mesh by clicking on it, and then
tick the <See-through> checkbox in the sidepanel
(in the
<Display Properties> submenu);
To
continue, hide the bones by selecting “Bone” in the
small list in the
<Hide by Category> submenu in the
sidepanel;

If you want to see the mesh's binding to the bones you'll have to go back to the <Modify>-tab in the sidepanel:
![]() |
![]() |
Select
the mesh, and click the small “+” to the left of the
<Skin> modifier, indicated right.
The <Envelope> branch
will appear.
Before you go any further I recommend saving the model by clicking the option <File><Save> in the program menu;
The
Skin modifier was properly created by the SMD import plugin.
If you
click on the <Envelope> branch, the <Edit Envelopes>
button will be activated automatically (see image below).
This means that 3DSmax is
set to “edit skin” mode, in which it is easy to disrupt
your model if you don't know what you're doing (!).
The viewports
are now full of strange objects and colored lines, which you
shouldn't touch.
If you want to manipulate a viewport, click inside
it but make sure that the mouse pointer is well clear of any object
or line.
![]()
|
![]()
|
|
3DSmax automatically switched to “edit skin” mode. |
Select a bone in the list of bones to display it's envelope and it's linked vertices. |

3DSmax 'painted'
vertex weights.

3DSmax 'linked'
vertices for one particular bone
|
![]() |
In
case you want to edit your model in 3DSmax (or in Gmax),
I recommend
Magos' Modeling Tutorial @
http://world-editor-tutorials.thehelper.net/magos.php
;
If all the bones are in the right place, and 'skinning' looks alright, then 'rigging' the model is finished.
Before exporting the
model as a Granny2 file, the only thing left is to import the
textures, and checking whether the model is properly textured.
Hide the bones and select the mesh (it's name is "smdimport");
Click
the <Material Editor> button in the toolbar (the button with
the four colored balls, shown below).
The Material Editor window
will open, with - initially - no materials at all;

Cannonfodder's
SMD import plugin has created a socalled 'multimaterial' for you.
It can be retrieved by using the little eyedropper tool:
in the
Material Editor window, click the button <Pick Material from
Object>, left of the drop-down list (shown below);
A new header appears "Multi/Sub-Object Basic Parameters", with the name of the material ("smdimportmtl") in the "Diffuse Color" drop-down list:

Click
a Sub-Material's button and per Sub-Material do the following:
a.
Click on the header <Maps>;
b. Click on the <Map>
button for the Diffuse Color;
c. Click the <Bitmap> button
in the <Bitmap-Parameters> submenu;
d. Select the
appropriate texture;
e. Go back to the "Multi/Sub-Object
Basic Parameters" by selecting "smdimportmtl" from
the "Diffuse Color" drop-down list;
f. Repeat this
process until the entire mesh is textured;
Close
the Material Editor window.
If you like you can bring out the mesh
colors by ticking the <Vertex Colors> checkbox in the <Display
Properties> submenu under the Display-tab in the sidepanel.
Archangel
has an option to dump the vertex colors in a TGA image file, upon
loading an HoMM.V mesh file.
To activate this option, go to the
Options menu by selecting <Tools><Options> from the
program menu.
The Options window will appear.
Click the <Model>
tab, and tick the checkbox “Export vertex colors on load”:

The process of creating the TGA file(s) will take some time, because the vertex colors are interpolated across all triangles in UV-space, and because the TGA images are very large: 2048 x 2048 pixels.
For each mesh part, one TGA image is created, which might result in TGA files that can be merged.
This will happen in case one texture is used for more than one mesh part.
Actually merging such TGA images will be
left to the modder, because you'll probably want to scale down the
images anyway.
For these actions I suggest you use Photoshop or
PaintShop Pro or The Gimp or DeepExploration or whatever.
With the current beta version Archangel 0.4, in order to use these TGA images as textures in 3DSmax you have to flip them vertically.

Archangel
dumped vertex colors
of the Orc Shaman (flipped vertically).
3DSmax
and Gmax 1.2 have a utility called 'Assign Vertex Colors', which can
pick-up colors from a texture map and assign it to each vertex.
The
color which will be assigned is the color at the UV-coordinate of the
vertex.
Start 3DSmax;
Load your model, and hide it's bones;
Activate the Material Editor and pick the multimaterial from the mesh;
Instead of loading the DDS textures for each sub-material, load the corresponding vertex color maps:

Select
the Utility tab in the sidepanel, and click the button <More>
in the left upper corner.
An extensive list of utilities will be
shown.
Select the 'Assign Vertex Colors' utility (listed first).
In Gmax you can simply click the button <Assign Vertex Colors>
instead of opening a utilities list.
A new panel will open showing all options for this utility (there's much less options in Gmax):
![]() |
![]() |
Set
the proper options as shown above:
- select the “Vertex Color” option
in the <Channel> submenu,
- select the “Diffuse Only” option
in the <Light Model> submenu,
- select (keep) the option
“Color by Face” in the “Color assignment”
submenu, and
- tick the “Mapping” checkbox in the
“Rendering Options” submenu;
Make
sure that your model is selected, and click the button <Assign to
Selected>.
The vertex colors will be assigned, as shown in the
following picture:

Now you can go back to the Material Editor to replace the vertex color map(s) with the actual texture DDS file(s):

The
picture below shows the model without the vertex colors.

In the sidepanel (display tab), click the button <None> to unhide the bones in case you chose to hide them;
In the <Edit> menu, click <Select All>;
In the <File> menu, click <Export> and select "Granny Run-time (*.GR2)" from the "Save as type" drop down list;
Select
an appropriate folder, type a name for your creature and click
<Save>.
The "Granny Export Settings" window will
appear:

Click once on "Animations" in the Settings table;
Untick
the options "Include data in export",
and
untick "Include reference in export":

Click once on "Meshes" in the Settings table;
Untick
the options "Include data in export",
and
untick "Include reference in export":

Double-click
on "Meshes" in the Settings table and scroll down, until
you see the mesh name "smdimport".
Select it by
clicking it once;
Tick
both options "Include reference in export",
and
"Include data in export":

In
case you have added and baked the diffuse vertex colors, there's one
thing extra to do:
scroll down until you see the “Allow
Vertex Colors” checkbox:

Tick the “Allow Vertex Colors” checkbox;
Now the Granny2 export settings are ready, so click the <Export> button;
After the export has completed, close the Granny export window, save your model and quit 3DSmax7;
Make sure you gave your selection of HoMM.V animation files the extension “.gr2”, otherwise GrannyViewer won't be able to see them.
Start GrannyViewer and select <Load File>;
Find the GR2 file you exported with 3DSmax, select it and click <Open>;
Click <Back to Main Menu>;
Click
<Lighting> and select all four options "Directional
Light", "Primary Light", "Fill Light", and
"Back Light".
Your model will be displayed like this:

Click <Back to Main Menu>;
If
you exported your model with baked-in vertex colors, then go to the
<Mesh Display> menu,
and tick the small checkbox with the
“Show Vertex Colors” option:

Note that ticking or unticking the lighting options no longer has an effect;
To check out the vertex colors simply untick the checkbox “Texturing”:

Now
to load and display HoMM.V animations, click <Back to Main
Menu>,
click <Files> and <Load Animations Only...>;
Select one of your model's animations (with “.gr2” extension) and click <Open>;
Click the "Animation List" tab, and click on the image of the animation you just loaded. The animation will be displayed;
If you want to see the bones, go back to the Main Menu and click <Skeletons>.
Tick the option <Bone Connectors>: the bones will appear as white lines on top of your creature in the 3D view.
List
of programs able to load and display Half-Life SMD files1
The
ones I did not test are listed in grey.
Gmax
v1.2 with the SMD importer script v1.0 ( SMDimporter.mzp,
http://www.turbosquid.com/Forum/Index.cfm/stgAct/PostList/intThreadID/16045
)2;
A
Gmax SMD import and export tutorial can be found here:
http://forums.taleworlds.com/index.php/topic,13615.0.html
;
3DSmax7 with Cannonfodder's SMD import plugin ( SMDimp.dli, http://www.chaosincarnate.net/cannonfodder/3dsmax.php );
3DSmax9, 2008, or 2009, with Wunderboy's SMD import plugin ( SMDimporter.dli, http://www.wunderboy.org/apps/smdimport.php )3;
fragMotion 1.04;
Milkshape3D
intrinsically supports the SMD format
(
http://chumbalum.swissquake.ch/
);
Maya 6 with the Half-Life 2 SMD export and import (!) scripts from Prall ( http://mitglied.multimania.de/prallvamp/ );
Blender;
Cinema 4D with I/Ogre import/export plugin;
XSI
Mod Tool with the ValveSource add-on5
(
http://www.modthesims.info/showthread.php?t=118986
).
2Cannot load SMD vertex weights properly, only assigns “1” and “0”;
3As (1): it cannot load SMD vertex weights properly;
4Seems to have only a limited SMD import capability;
5I couldn't get it to work with XSI Mod Tool 6.01..;