Exporting a model/XSI: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Unicodifying, replaced: [[Image: → [[File: (2))
 
(53 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Image:Xsimodtool-logo.jpg|right|250px|Mod Tool logo]]
{{lang|Exporting a model/XSI}}


This tutorial will show you how to export a simple model from the [[XSI Mod Tool]] for compiling with [[studiomdl]].
[[File:Xsimodtool-logo.jpg|right|250px|Mod Tool logo]]


== Creating your mesh ==
This tutorial will show you how to export a model from the [[XSI Mod Tool]] for compiling with [[studiomdl]].


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 {{key|v}}) to allow for a second cube with some space between it and the first. These cubes will be our model.
'''To learn about the general usage of XSI, see the [[XSI Beginner Tutorial]].'''


== Add a texture and UV map ==
== Add a texture and UV map ==
<!--
// move /integrate this section to the XSI texturing tutorial. Either [[Model Creation Overview]] or [[Exporting a model]] should contain a checklist for non-app-specific things you need to do before exporting SMD.
-->
:'''To learn about UV mapping in general, see [[XSI Texturing]].'''


[[Image:Xsi addimage.jpg|thumb|180px|The ‘Textures’ dialogue.]]
[[File:Xsi addimage.jpg|thumb|180px|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’.
In the third group of left-hand menu buttons you will find 'Textures'. Select your mesh(es) and click the button and choose the first sub-option, '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 [[Valve Texture Format|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.
The filename of the image you import into XSI defines the name of the [[Valve Texture Format|VTF]] file Source will try to apply to the model in-game ([[$cdmaterials|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 [[Studio Model Data|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.
Next is the texture projection, or [[UV map]]. The XSI [[Studio Model Data|SMD]] exporter will decide what to export by looking at what has UV data rather than what is hidden and what is visible, even if the mesh is intended for [[collision mesh|collision]], so don't forget this step!
 
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|The second and third sections of the Texture toolbar contain shortcuts for applying UV maps.}}
{{tip|The second and third sections of the Texture toolbar contain shortcuts for applying UV maps.}}
Line 23: Line 25:
== Disable automatic discontinuity ==
== Disable automatic discontinuity ==


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


#Open the ‘Explorer’ view. Find it in the Views section of the upper toolbar, or press {{key|8}}
#Open the 'Explorer' view. Find it in the Views section of the upper toolbar, or press {{key|8}}
#Expand either of your meshes (<code>cube</code> or <code>cube1</code>)
#Expand any of your meshes
#Double-click on ‘Geometry Approximation’
#Double-click on 'Geometry Approximation'
#Choose ‘no’ when prompted to make a local copy of the data
#Choose 'no' when prompted to make a local copy of the data
#Click on the ‘Polygon Mesh’ tab of the new dialogue
#Click on the 'Polygon Mesh' tab of the new dialogue
#Un-check ‘Discontinuity -> Automatic’
#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.
You may see your meshes' lighting change slightly when you un-check the box.


{{warning|Neglecting to change this setting will result in your collision meshes being merged into a single shape!}}
{{warning|Neglecting to change this setting will result in any collision meshes being merged into a single shape!}}


==Freeze transforms and history==
==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!
If you have any non-enveloped meshes, which to say if the model isn't animating, you must freeze them before ''each'' export operation. Enveloped meshes should have been frozen before their envelope was applied!


To freeze your transforms (i.e. scale, translate, rotate), first select both of your meshes ({{key|Ctrl+A}}). Then click the section header for ‘Transform’, 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.
Freezing 'bakes' your geometry, turning it from a series of manipulations on primitives (i.e. the cubes or spheres you began with) to a literal representation of where each polygon is located. 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; unfortunately it's destructive and can really bugger you up if you aren't careful.


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.
To freeze, first select all of your meshes. Then click the section header for 'Transform', on the right-hand menu, and choose 'Freeze All Transforms', which is directly beneath the first divider. Then choose 'Freeze History -> Modeling' from the right-hand menu.


''You ought to do this every time you want to export.''
{{tip|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.}}


{{tip|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.}}
== Merge meshes ==


== Export SMDs ==
If your model has or will have animations you must merge all of its geometry into the same mesh. This would happen on Export anyway, but the automated version of the process destroys most envelope data.


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.
Select everything and choose 'Mesh -> Merge' from the left-hand menu. This has created a new 'polymsh' object that contains some, but not all, of the data from your existing meshes. To merge the last few pieces of information in, open Explorer with {{key|8}} and double-click on 'polymsh -> Polygon Mesh -> Merge Meshes'. Look in the lower half of the new dialogue for two buttons labelled 'Merge' and press them, then press the 'Delete' button in the top half to remove the old input meshes.


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.
== Export SMDs ==
The filenames are usually suffixed:


*’ref’ for the body
Your model is now ready for export to SMD. The export dialogue can be found from the main menu, under {{key|ValveSource -> Export SMD...}}.
*’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’.
{{tip|Uncheck 'Remove all unused bones' if you are exporting an animated collision model. Otherwise you can usually leave the checkboxes alone.}}
{{Note|The ValveSource add-on doesn't seem to work properly with 64 bit versions of XSI - the Export SMD button is missing.}}


== Compile! ==
== Compile! ==


You are now ready to [[Compiling Models|compile the model]].
With a reference mesh SMD and skeletal animation SMD exported, you are ready to [[Compiling a model|compile your model]].
 
[[Category:XSI]]
[[Category:Tutorials]]

Latest revision as of 00:17, 7 January 2024

English (en)Français (fr)Русский (ru)Translate (Translate)
Mod Tool logo

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

To learn about the general usage of XSI, see the XSI Beginner Tutorial.

Add a texture and UV map

To learn about UV mapping in general, see XSI Texturing.
The 'Textures' dialogue.

In the third group of left-hand menu buttons you will find 'Textures'. Select your mesh(es) and click the button and choose the first sub-option, '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. The XSI SMD exporter will decide what to export by looking at what has UV data rather than what is hidden and what is visible, even if the mesh is intended for collision, so don't forget this step!

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 any of your meshes
  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 slightly when you un-check the box.

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

Freeze transforms and history

If you have any non-enveloped meshes, which to say if the model isn't animating, you must freeze them before each export operation. Enveloped meshes should have been frozen before their envelope was applied!

Freezing 'bakes' your geometry, turning it from a series of manipulations on primitives (i.e. the cubes or spheres you began with) to a literal representation of where each polygon is located. 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; unfortunately it's destructive and can really bugger you up if you aren't careful.

To freeze, first select all of your meshes. Then click the section header for 'Transform', on the right-hand menu, and choose 'Freeze All Transforms', which is directly beneath the first divider. Then 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.

Merge meshes

If your model has or will have animations you must merge all of its geometry into the same mesh. This would happen on Export anyway, but the automated version of the process destroys most envelope data.

Select everything and choose 'Mesh -> Merge' from the left-hand menu. This has created a new 'polymsh' object that contains some, but not all, of the data from your existing meshes. To merge the last few pieces of information in, open Explorer with 8 and double-click on 'polymsh -> Polygon Mesh -> Merge Meshes'. Look in the lower half of the new dialogue for two buttons labelled 'Merge' and press them, then press the 'Delete' button in the top half to remove the old input meshes.

Export SMDs

Your model is now ready for export to SMD. The export dialogue can be found from the main menu, under Export SMD...">ValveSource -> Export SMD....

Tip.pngTip:Uncheck 'Remove all unused bones' if you are exporting an animated collision model. Otherwise you can usually leave the checkboxes alone.
Note.pngNote:The ValveSource add-on doesn't seem to work properly with 64 bit versions of XSI - the Export SMD button is missing.

Compile!

With a reference mesh SMD and skeletal animation SMD exported, you are ready to compile your model.