Exporting a model/XSI

From Valve Developer Community
< Exporting a model
Revision as of 11:55, 21 April 2008 by TomEdwards (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Mod Tool logo

This tutorial will show you how to export a simple model from the XSI Mod Tool for compiling with studiomdl.

Creating your mesh

Select ‘Objects’ from the top of the left-hand menu, then choose the cube and close the dialogue that opens. Translate the mesh that appears far enough away from the origin (with v) to allow for a second cube with some space between it and the first. These cubes will be our model.

Add a texture and UV map

The ‘Textures’ dialogue.

In the third group of left-hand menu buttons you will find ‘Textures’. Select both of your cube meshes (operations will be applied to both of the meshes in parallel), click the button and choose the first sub-option, ‘Add -> Image’. There are two parts of this dialogue we are interested in: ‘Image -> New’ and ‘Texture Projection -> New’.

The filename of the image you import into XSI defines the name of the VTF file Source will try to apply to the model in-game (though not its location). To avoid confusion, try to keep the texture name the same as the model name. If you don’t want to worry about textures yet, you can stick with XSI’s default – but your model will be covered in Source’s purple “missing material” checkerboard when you try to use it.

Next is the texture projection, or UV map. Valve’s SMD exporter will ignore meshes that do not have UV data – even if they are intended for a collision model. This might seem strange at first, but it can come in handy depending on your workflow.

In this extremely simple example, letting XSI apply a cubic projection is the best option. Select that option, then the move to top-right hand corner of the viewport and choose ‘Textured’ (it probably says ‘Shaded’ at the moment). You will see that both of your meshes now have a texture. Close both the Image dialogue and the Texture menu.

Tip.pngTip:The second and third sections of the Texture toolbar contain shortcuts for applying UV maps.

Disable automatic discontinuity

It isn’t clear why this next step is required – it may be a bug in the SMD exporter. Nevertheless:

  1. Open the ‘Explorer’ view. Find it in the Views section of the upper toolbar, or press 8
  2. Expand either of your meshes (cube or cube1)
  3. Double-click on ‘Geometry Approximation’
  4. Choose ‘no’ when prompted to make a local copy of the data
  5. Click on the ‘Polygon Mesh’ tab of the new dialogue
  6. Un-check ‘Discontinuity -> Automatic’

You may see your meshes’ lighting change when you un-check the box – don’t worry. It makes no difference to the exported data.

Warning.pngWarning:Neglecting to change this setting will result in your collision meshes being merged into a single shape!

Freeze transforms and history

Much like disabling automatic discontinuity, the fact that this step is required seems to be no more than a limitation of the XSI SMD exporter. You can sometimes get away with skipping it, but it’s best to get into the habit for all of the times when you can’t!

To freeze your transforms (i.e. scale, translate, rotate), first select both of your meshes. Then click on the ‘Transform’ section header on the right-hand menu and choose ‘Freeze All Transforms’, which is directly beneath the first divider. This will ‘bake’ the translation you performed on your first cube. If you try to transform it after freezing, you will notice that the tri-directional arrows now appear the centre of the world rather than the centre of the mesh.

You will also notice if you try that that the texture projection box has moved to the centre of the world as well. To bake that as well, and perform various other tidying-up operations, choose ‘Freeze History -> Modeling’ from the right-hand menu.

Tip.pngTip:Since you’ll probably be freezing transforms quite a lot, you may want to place its button in a more accessible location. Right-click on some empty space under the ‘Freeze History’ heading and choose ‘Customize toolbar’. You can then search the list for ‘Freeze All Transforms’ and drag it onto the menu.

Export SMDs

We are now ready to export our model to SMD. This needs to be done three times: once to generate the model ‘body’, once to generate a collision model (which in this simple case is exactly the same as the body), and once to generate an idle animation (even when there are no moving parts, at least one idle animation is required). Normally you would be storing each of these in separate XSI files, negating the need to fiddle around with the export settings.

The export dialogue can be found from the main menu, under ‘ValveSource -> Export SMD...’. You will need to save each SMD as its own file, making sure to choose the appropriate ‘File Type’ from the drop-down menu each time. Ignore ‘Vertex Animation’ for the purposes of this tutorial. The filenames are usually suffixed:

  • ’ref’ for the body
  • ’phys’ for the collision model
  • ’idle’ (or whatever the animation is called) for each animation

So you might save ‘cubes-ref.smd’, for example. ‘ref’ is short for ‘reference’.

Compile!

You are now ready to compile the model.