Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

8/9/23, 11:07 PM Rigging in XSI - Valve Developer Community

Rigging in XSI

Contents
Rigging a character model - the easy way
Anatomy of the Valve character rig
Understanding XSI envelopes and weights
Importing a custom character mesh
Rigging a character model - from scratch
The biped guide
Creating the rig from the guide
Enveloping

Rigging a character model - the easy way

Anatomy of the Valve character rig


Characters in Half-Life 2 are enveloped (skinned) to a skeletal rig. The skeletal rig is then animated to deform the envelope. These animations are then stored in the XSI
Mixer and later exported to individual SMD files.

The character used as a base in this tutorial is a Counter-Strike character included in the source SDK.

Start XSI Mod Tool


Select File->Open
Select the Source SDK sample scene called urban_reference.scn

\sourcesdk_content\cstrike\modelsrc\urban\xsi\urban_reference.scn

Warning: The export process currently works for XSI 4+ and is reported to work for 5.0, but not 5.0.1 or 5.1. There is currently no
available fix for the Valve addon using the latest version of XSI. An image of the urban_reference.scn file

Once loaded, the character is seen in what is called the reference pose (neutral pose). The colored spheres and boxes are animation controllers (implicit geometry). They
are simple helpers attached to the underlying skeletal rig (which is currently hidden). They make it simple to animate a complex rig without seeing the entire skeleton on
screen.

Next, open up the XSI Scene Explorer by either selecting it from the Application menu (Application->Views->Explorer) or hitting the 8 key.

Note: The explorer is a powerful tool to manage your scene. With the explorer, the hierarchy of the scene can be navigated, objects can be re-parented, properties can be viewed, etc.

This image shows How the Scene is setup.

How the urban_reference.scn file is setup

The rig is located under the model called urban_mdl. This model is simply a "container" object. The actual IK rig is located under the node called Bip01. At the bottom of the model, there are three groups. Groups are also
container objects that point to other objects in the scene. They can be used for grouping similar objects together.

Envelope Deformers is a group that contains the objects (bones) that actually deform the mesh. That is, each deformer influences at least 1 vertex in the mesh.

hidden_distractions is simply a group that contains all the objects that are not immediately useful to the animator and should be hidden (e.g., parent nulls, IK chain roots and effectors).

Plotted is a group that contains all bones that should be considered when creating an animation clip. More about this group is discussed below.

Understanding XSI envelopes and weights


Another part of the scene will be examined, the part that will be replaced with a custom mesh. Before replacing it, the different parts should be understood.

When the urban_mesh polygonal mesh object is expanded in the Explorer window, a property called "Polygonal Mesh" can be seen. This is where all operators that affect the mesh in any way can be found. In the accompanying
image, note that this mesh has an Envelope Operator under it's animation set. A little lower in the listing, there a list of clusters containing two clusters. One cluster is the WeightMap; the other is the UV coordinates. XSI uses
clusters to store per-vertex attributes. For the weight map cluster, these are the weights or ratios for each bone that are applied to the vertices that the bone deforms. The Texture_Coordinate_AUTO group contains UV

https://developer.valvesoftware.com/wiki/Rigging_in_XSI 1/5
8/9/23, 11:07 PM Rigging in XSI - Valve Developer Community
coordinates for each vertex.

The cluster that is of interest for now is the WeightMap. This weightmap will be applied to the new character mesh instead of re-enveloping the character mesh manually. This automatic
assignment of weights will save hours of tedious mesh weighting.

Included in the Valve Source addon for XSI is an export plugin called WeightMap Export. See below:

Different parts of the original


The Weightmap Export option mesh

Export the urban mesh weight map as follows:

Select the mesh that has the weight map to be exported. I.e., select the urban_mesh object.
From the ValveSource menu, select WeightMap Export.
Enter a meaningful filename for the weight map and save the map.

Importing a custom character mesh


The XSI Mod Tool comes built in with several importers available under the File->Import menu.

dotXSI - Softimage Open File Format


.3ds - Autodesk legacy format
.obj - Alias Scene (non-functional at this time)
.x - Microsoft DirectX file.

The following is the mesh that will used for the custom character in this tutorial.

The new unskined mesh

Of course, a character meshed can be created from scratch directly in the Mod Tool using it's powerful modeling toolset. Here is a small list of modeling tutorials for XSI.

http://www.xsibase.com/tutorials/modeling.php
http://www.mindspring.com/%7Ebblakesley/Tutorial1/main.html
http://www.chnl1.tv/tutorial_1.htm
http://www.chnl1.tv/tutorial_2.htm
http://www.anikoleez.com/tuto/tuto02.htm
http://www.onionboy.co.uk/tutorials_eye.html
http://www.joncrow.com/tutorials/xsi_tuts/rotoscope_technique/rotoscoping_technique.htm
http://www.joncrow.com/tutorials/xsi_tuts/Symmetrical%20Shape%20Anim/sym_shape_anim_compressed.avi
http://www.thejaco.com/tutorials/3_tire.avi
http://www.anotherhell.com/tutorials.htm
http://veazie.org/Tutorials/hl2%20tutorials.html

The following steps involve moving and scaling the new character mesh (and possibly moving some points as well) to match the position of the original urban model mesh as closely as possible. The new mesh does not have to
fit perfectly on top on the original mesh, but the better the fit, the better will be the resulting envelope. However, it is important that the joints (like elbows, knees, ankles, etc.) be at the same position. If they aren't, the arms
and legs will bend in the wrong position.

The new mesh overlaying the original

Once the new character mesh has been placed on top of the urban model mesh, the urban model mesh can be deleted as it is used only to provide a guide for positioning. Delete the urban model mesh by branch-selecting the
urban_mesh object and hitting the delete key. Branch-selection selects the mesh and everything under it as well. An object can be branch-selected by middle-clicking on the object's name in the Explorer window, or by
left-clicking the object's name and using the Select->Branch from the Select menu.

https://developer.valvesoftware.com/wiki/Rigging_in_XSI 2/5
8/9/23, 11:07 PM Rigging in XSI - Valve Developer Community

Next, the saved weight map will be imported to apply the weights to our new mesh.

Select the mesh to which the weights are to be applied, i.e., the new character mesh.
Use the ValveSource->WeightMap Import menu.
Select the weightmap file saved earlier and click OK.

WeightMap Import before

The WeightMap Import plugin will transfer the weightmap by averaging the weights according to vertex positions. The results are not perfect, but again, it will save hours of envelope tweaking. The following image shows the
results after the weights have been imported.

WeightMap Import after

The weightmap can be tested by moving the rig around. As seen in the image below, some weights might need some tweaking.

WeightMap problems. Fixing WeightMap problems

Rigging a character model - from scratch

The biped guide


The first part of this tutorial demonstrated how to automatically envelope a custom character mesh using the weightmap of an existing character. While this method saves time, it might not be suitable for every character in the
game. If a new character has very different topology (e.g., a child character or an adult male), the previously-described method is less than ideal.

The solution is use the Valve Biped Guide.

First import the character mesh to be rigged and weight-mapped. The Ninja mesh used above will also be used for this portion of the tutorial. However, for this demonstration, his arms are not in the neutral pose commonly
used in the SDK examples. In this example, the arms are closer to the "Da Vinci pose". This would have been difficult to envelope using the method described above.

After the new mesh has been imported, get a Biped Guide Rig from the Valve Source Menu.

https://developer.valvesoftware.com/wiki/Rigging_in_XSI 3/5
8/9/23, 11:07 PM Rigging in XSI - Valve Developer Community

Biped Guide option

The Biped Guide is a dummy rig that is used to guide the creation of a functional rig. The Biped guide is used by positioning the cubes at the end of each chain are positioned to match the new character mesh position.

This is what the scene looks like before the guide is positioned in the mesh.

Biped Guide now imported

Use the guide to position the bones in the mesh. Here is the result.

{{note|Before the cubes are positioned inside the mesh, turn off the "selectability" property of the Ninja mesh. This will prevent the Ninja mesh from being accidentally selected when Guide cubes are being selected. This is
done by un-checking the "Selectability" property under the mesh's Visibility Property Page.

Mesh set so it cant be selected

Creating the rig from the guide


Once the guide has been positioned in the proper place, a fully functional Valve Biped rig can be created from it.

Select the menu Create Rig From Guide from the ValveSource menu to start the process.

During the creation of the rig, there may be multiple warning messages stating that a cycle has been created. Click OK and ignore these warnings.

Note: Creation of the rig from the Guide may take several minutes (e.g., greater than 3 minutes with a 3.6GHz processor). The XSI window may turn
Create rig from guide option
white for extended lengths of time prior to completion of the process.
Following the creation of the rig, multiple property and expression editor windows may appear. They may be safely closed.

Enveloping
Now that the rig has been created, the Biped Guide can be safely deleted by branch-selecting it in the Explorer window and hitting 'delete.' This will also un-clutter the scene a bit.

Next, the mesh will be enveloped to the rig. As described earlier in this tutorial, the ValveBiped object contains a group called Envelope_Deformers. These are all the objects that deform the mesh and are used to create the
envelope.

To create an envelope in XSI:

Select the mesh for which the envelope is to be set.


Press '2' to switch to the Animate Toolbar.
In the Context menu (normally in the lower left-hand corner of the XSI window), select Animation from the Construction Mode dropdown list.
In the Animation toolbar, select Deform->Envelope->Set Envelope.

https://developer.valvesoftware.com/wiki/Rigging_in_XSI 4/5
8/9/23, 11:07 PM Rigging in XSI - Valve Developer Community

Set envlope option

Hit '8' to open up an explorer or, in the Applications menu, select Views->XSI Explorer.
Expand the ValveBiped object in the Explorer window and select the Envelope_Deformer group.
Right-click anywhere to end the pick-session.

Click to enlarge

The mesh is now enveloped to the rig. If the mesh does not appear to be weight-mapped:

Ensure the mesh is selected.


Click on the "eye" icon dropdown menu at the top of the XSI view and ensure Weight Maps is selected.
Click on the Display Mode dropdown at the top right of the XSI view and select Constant.
The assignment of weights using this technique in XSI is not perfect. It does a pretty good job, but clean-up of certain areas of the weightmap may still be necessary, such as under the arms and legs. The weightmap tools (like
smoothing, etc.) can be used to properly weight the mesh to the bones.

For editing the weight map, see Weight Map Editing.

Mostly envloped rig

Retrieved from "https://developer.valvesoftware.com/w/index.php?title=Rigging_in_XSI&oldid=204533"

This page was last edited on 21 June 2016, at 23:41.

https://developer.valvesoftware.com/wiki/Rigging_in_XSI 5/5

You might also like