Creating a ConvertXSI-Compliant DotXSI Mesh

Modding_XSItoSins_ModdingSupplement.pdf‎ (file size: 2.67 MB, MIME type: application/pdf)
This Article requires updating.
Note: This guide assumes you have a model ready and are merely editing it to comply to ConvertXSI standards.
== Getting Rid of Non-Tris and Non Quads ==
Since convertxsi.exe cannot recognize meshes that have polygons with more than 4 sides, all polygons in your model have to be either triangles or quads.
1) Press Space Bar to go into Object Selection mode and click on the model. The wire frame of the model should turn white.
2) Go Select -> Select n-sided polygons -> Five Sides or more
3) If the wire frame stays white, then you are still in Object Selection Mode and your mesh does not have any polygons that have more than 4 sides; proceed to Section B “Creating the UV Map”.	
4) If on the other hand the model’s wire frame turns yellow, then you are now in Polygon Selection Mode and all the polygons that have more than 4 sides have now been selected for you.	
5) While in Polygon Selection mode, hover the mouse pointer over the model, and then Alt+RMB-click. A context menu should pop-up.
6) Click on “Hide Unselected (Ctrl + Shift +H)” (Fig. 1a-3). Now the only polygons showing are the non-tris and non-quads.
7) Press Ctrl+H to unhide all polygons.
8) Adjust the line flow around the trouble areas.	
9) Keep repeating steps as necessary until the model consists of nothing but triangles and quadrilaterals.
10) Freeze the model. This is accomplished by selecting your mesh and pressing the “Freeze” button on the bottom of the Main Command Panel, right under the Edit menu. This gets rid of all the modeling history and other properties that would serve to bog down the file size.	
== Creating the UV Map ==
Note: Skip this section if your model already has a UV Map.
1) With the mesh selected, under the “Get” section of the Model/Animate/Render/Simulate Toolbar on the leftmost part of the program window, go Property > Texture Projection, and then pick an appropriate Projection Type (Fig. 1b-1).
Note: The XZ Projection—aka top-down projection—is usually the best in most cases, but technically since it will be frozen anyway, it doesn’t really matter which one you pick.	
2) Press Alt+7 to access the Texture Editor. (Fig. 1b-2)
3) Edit the UVs as you see fit.	
4) Freeze your model periodically to reduce the lag to your system.
== Hooking-up Textures to the Model ==
Note: skip this section if your model already has textures hooked up to it.
1) Select your model, Press the “3” key and from the Model/Animate/Render Toolbar, go Material > Phong (Fig. 1c-1).
2) With the mesh still selected, press the “7” key (not on the key pad). This should bring up the Render Tree showing a Phong Node connected to the Material of the selected object. (Fig. 1c-2).
3) In the Menu Bar of the Render Tree go Nodes > Texture > Image (Fig. 1c-3). This should create a new unconnected Image node (Fig. 1c-4).
4) Double-click on the new Image node that was just created. The Image node’s property edit box should pop-up.
5) Under the “Image” section of the “Texture” tab, click New > “New From File...” (Fig. 1c-5, next page) then navigate to your texture file. This will create a file node labelled with the texture name—in the example case “FrigatePsiLight-nm_dds”—that is hooked-up (connected by a blue arrow) to the image node (Fig. 1c-6, next page).
NOTE: Alternatively, you could just drag the texture files from Windows Explorer onto the Render Tree and manually hook-up the texture file to the image node by clicking and holding the mouse button on the blue dot of the file node and dragging your mouse onto the image node, then releasing the mouse button, and selecting “tex” from the context menu that pops-up.
6) Repeat steps 3 to 5 until you have connected each of the -cl, -da, and -nm textures to an image node.
7) Hooking-up the image nodes to the Phong node...
a) Click and hold down the mouse button on the red dot on the Image node. A red arrowhead should then appear where your pointer is (Fig. 1c-7).
b) Drag your mouse over to the Phong node (Fig. 1c-7) and release. A context menu should pop-up listing all the Phong properties you are allowed to connect the image node to (Fig. 1c-8).
c) Table 1C-1 shows which Phong property to connect each texture image to:
Table 1C-1: Image Node Connections
Map Type Phong Property to Hook-up to *.Mesh Equivalent
Normal Map (-nm) ambient NormalTextureFileName
Color Map (-cl) diffuse DiffuseTextureFileName
Data Map (-da) specular Self-IlluminationFileTexture-FileName
8) Your final material set-up should look similar to that of Fig. 1c-9.
9) The “Glossiness” parameter in the *.mesh file corresponds to the “Specular Decay” property of a phong material. To access this property, just double-click on the Phong node in the Render Tree and the Phong property edit box should pop-up. The example case has a value of 32 (Fig. 1c-10, next page).
10) To be able to view the texture on the model you have to be in either “Textured” display or “Texture Decal” display. Switch to either of these display types from the Viewport Display Type menu (Fig. 1c-11).
11) Changing the default texture used by the model in the viewports:
a) Double-click the top-level node of the Material (in this case the node that happens to be labelled “Material”)
b) Switch from the “Name” tab to the “OpenGL Display” tab.
c) Under the “Texture Selection” section, change the entry for “Mode” property to “Use specific Image/UV pair” (Fig. 1c-11). This should then enable the “Image Clip” entry box.
d) From the drop-down list of the Image Clip entry box, select your preferred image (Fig. 1c-13). The model should now have switched to the preferred image texture.
Note: Article II-A contains instructions for adding a second set of materials to your model.
== Creating the Tangent Map ==
1) Repeat step 1 of Section “B”. This will create a second set of UVs from which to base the Tangent Map on.
2) Press Alt + 7 to access the Texture Editor.
3) From the UVs menu of the Texture Editor Menu Bar, select the original set of UVs that you created, which is the first one listed (Fig. 1d-1). By default, they are named “Texture_Projection,” “Texture_Projection1,” “Texture_Projection2,” etc. by order of creation.
4) Press Ctrl + A to select all the vertices on the UV Map.
5) From the Menu Bar, go Edit > Copy UVs (Fig. 1d-2).
6) Go back to the UV menu and select the second UV set (in this case “Texture_Projection1”). This will switch you to the second set.
7) Go Edit > Paste UVs (Fig. 1d-2). Your second set of UVs is now an exact copy of the original set of UVs.
Note: You might need to switch to the first UV set and then switch back to the second set to view this change.
8) Close the UV Editor and go back to the main XSI program window.
9) With the mesh selected, under the “Get” section of the Model/Animate/Render/Simulate Toolbar, go Property > Tangent (Fig. 1d-3).
10) From the Tangent property editor that appears, click the “Pick” button located to the right of the entry for “UVs” property (Fig. 1d-4). Your mouse pointer should be transformed into a black arrowhead with the word “PICK” next to it. You are now in a “Pick Session”.
11) While in this Pick Session, click on the “Selection” button within the Select Panel on the right side of the program window (Fig. 1d-5).
12) Navigate to and click on Polygon Mesh > Clusters > Texture_Coordinates_AUTO > Texture_Projection1. This should associate the Tangent Map to the second UV set (Fig. 1d-5).
Note: If your UVs were not created in XSI, the directory structure might be named differently.
13) To best view the Tangent RGB, your display type has to be either “Hidden Line Removal,” “Constant,” or “Shaded” (Fig. 1d-6).
14) If you are still unable to see the Tangent RGB colors, check if it is enabled by going into the Viewport Display Type menu and selecting “Display Options...” (Fig. 1d-6, 2nd menu item from bottom). From the Display Options editor, under the “Shaded Mode” section, in the entry for “Vertex Color” property, make sure “Show RGB Color” is selected in the drop-down list (Fig. 1d- 7, next page).
15) Use the Texture Editor (Alt + 7) to edit the Tangent Map as you see fit.
Note: In terms of UV Layout, the Tangent Map does not particularly care about location or scale of components. Orientation and level of relaxation is generally more important in determining how the RGB values blend into each other.
16) Changing the smoothing value of the Tangent Map:
a) With the mesh selected, click the “Selection” button in the Select Panel.
b) Navigate to and double-click Polygon Mesh > Clusters > Texture_Coordinates_AUTO > Tangents (2 entries above the highlighted item in Fig. 1d-5, previous page). The Tangent Operator property editor should appear (Fig. 1d-8).
Note: This is not the same as the Tangent property editor (Fig. 1d-4).
c) Under the “TangentOp2” section, play around with the “Smoothing” value until you get one that best suits the model.
17) Editing Tangent UVs usually heavily bogs down system resources. Click on the “Freeze” button periodically to delete the modeling history to compensate. However, freezing the model locks the Smoothing value and the severs the Tangent Map’s dependence on the Tangent UV layout. To go back to having the Tangent Map update as you edit the Tangent UVs, do the following:
Note: Step 17 also resets the Smoothing value, so every time it is performed, step 16 would have to be performed again afterwards.
a) Select your model.
b) Click the Selection button from the Select Panel.
c) Double-click the item named “Tangent” to the right of the orange square with a “C” (Fig. 1d-9).
d) The Tangent property editor (Fig. 1d-4) should pop-up. This indicates that proper updating of the Tangent RGB colors on the model is now enabled.
18) Once you are satisfied with the Tangent Map, freeze the model.
== Setting-up Meshpoints ==
1) Press the “8” key (not on the number pad) to access the Explorer window (Fig. 1e-1).. The Explorer allows you to view the hierarchy (parent/child relationships) of your scene, as well as an overview of objects, materials, images, etc. By expanding individual objects in Explorer, you are also able to access and edit those objects’ properties.
2) Within Explorer, press S to view the hierarchy of your Scene_Root, if you aren’t already there.
3) With the mesh selected, In the “Get” section of the Model/Animate/Render/Simulate Toolbar, go Primitive > Null (Fig. 1e-2).
4) This new null should appear under the Scene_Root as “null” (Fig. 1e-3).
5) Select this null, press F2 and rename it to “rootpoint”. All meshpoints you create from here on in should be placed under this “rootpoint” null in the Explorer. To do this, simply drag and drop the meshpoint nulls into the rootpoint. Any nulls outside the rootpoint will not be recognized as a meshpoint by convertxsi.exe and will not be converted. The rootpoint and the actual model itself should be on the same level in the hierarchy, directly under the Scene_Root (Fig. 1e-4, next page). The rootpoint and the mesh should have no scaling and rotation values and should have a global position at origin (0,0,0).
6) Select a meshpoint null and press Enter (Alternatively, you can just double-click it in Explorer). This should bring up the Property Edit Box for that null (Fig. 1e-5, next page). From this property editor, you can set-up any visual cues for that null.
Although these properties do not affect the respective meshpoints in the resulting *.mesh file, the visual cues are helpful within xsi (e.g. increasing “Size” helps with visibility, changing “Icon” into Arrow helps with orientation recognition, “Custom Color” helps differentiate weapons points from buff points, etc.).
7) In XSI, nulls cannot have the exact same name as another null. To allow output *.mesh files to have meshpoints that have the same name, nulls are named with a prefix within XSI. During conversion into *.mesh, convertxsi.exe deletes the 5-character prefix of a null’s name. The convention at Ironclad is for each meshpoint null to have a Pxxx- prefix. Basically nulls named “P001-Ability-0” and “P002-Ability-0” will eventually both become meshpoints with the name “Ability-0” in the output *.mesh file.
8) The different meshpoint types—including naming conventions— are as follows:
a) Buff Points - common to all ships and modules in the game and must have no rotation value
P001-Above (shares the x and z value of the center)
P001-Center (usually located at origin)
P001-Aura (shares the x and z value of the center)
b) Weapon Points
P001-Weapon-0 (directional)
P001-Weapon-1 (directional)
P001-Weapon-2, etc. (directional)
c) Ability Points
P001-Ability-0
P001-Ability-1
P001-Ability-2, etc.
d) Exhaust Points
P001-Exhaust (directional)
e) Hangar Points
P001-Hangar (directional)
f) Bomb Points (directional)
P001-Bomb
g) Flair Points
P001-Flair-Flair_Blink
P001-Flair-Flair_Blink_Small
P001-Flair-Flair_Doubleblink
P001-Flair-Flair_Doubleblink_Small
P001-Flair-Flair_Bowtiespin
P001-Flair-Flair_Lighthouse
h) Other Particle Effect Points:
P001-(particlename)
Note: Meshpoint names are case-sensitive.
9) Meshpoints are orientation-specific. To check the orientation of a null:
a) Select the null and turn its Shadow Display Icon to “Arrow” (see step 6, Fig. 1e-5) or:
b) Hit the v key to activate the Translate Tool (Fig. 1e-6) and then click the “Local” button in the Transform Panel (Fig. 1e-7). The z-direction is represented by the blue arrow on the Translate Tool. This is the null’s forward direction.
10) To rotate the null, hit the c key to turn on the Rotate Tool (Fig. 1e-8).
11) Rotate the null until you get the desired orientation.
Note: Holding down the Shift key limits rotations to 15- degree increments.
== Cleaning-up Your Model ==
1) Freeze the model (see Section A step 7).
2) Freeze the mesh’s transform values. This is done so that the mesh does not end up being offset from all the meshpoints in-game. To do this, under the “Transform” Panel, go Transform > Freeze All Transforms (Fig. 1f-1). This should change all the Scaling values to 1 and all the Rotation and Translation values to 0, if they weren’t already at those values.
3) Cleaning up unused materials:
a) Press 8 to open up the Explorer.
b) Press M to switch to Materials view (Fig. 1f-2).
c) Select and delete (using the Delete key) any materials that you do not need. A “<Not used>” indicator refers to unwanted materials but if you are not sure, select the material and Press 7 to call up the Render Tree to help you decide whether it should be deleted or not, and whether you need to switch materials around (to apply a different material to the mesh, just drag that material from Explorer, onto the mesh in the viewport).
Note: When you are done, there shouldn’t be any unused materials, as these are going to be exported into the *.mesh file, needlessly bloating its file size.
4) Cleaning-up unused textures and texture clips:
a) Press 3 to switch to the Render Tool Bar
b) under the “Get” section, go Clip > Delete Unused Image Sources and Clips (Fig. 1f-3)
c) In the Explorer, Press O to switch to Sources view (Fig. 1f-4). Expand the Sources > Images folder and delete any unwanted texture references.
d) Expand the Clips > Images folder and delete any unused image clips. Image clips are just texture instances.
Note: Any “noIcon_pic” clips/images are integrated into XSI and cannot actually be deleted.
5) Cleaning-up the Scene_Root. Go to the Scene_Root in Explorer and delete any extraneous objects from your scene. Your Scene_Root should look similar to Fig. 1f-5, with nothing under the Scene_Root except:
the camera (XSI requires that you have at least one camera object)
; the model’s mesh
; the rootpoint null
; and all the meshpoints nulls under the rootpoint.
== Exporting your Finalized Model ==
1) Press Shift+Ctrl+A to deselect everything.
2) From the Menu Bar, go File > Export > dotXSI... (Fig. 1g-1)
3) Use the export settings shown in Fig. 1g-2 and press “Ok.”
Note: Since performing Section F limits the types of objects contained in your scene, keeping the default settings will usually suffice.
4) A file save dialog box should appear. Navigate to the directory into which you want to export. Name the file and make sure to choose *.xsi as the extension.
Congratulations! You have now created a convertxsi-compliant dotXSI file using Softimage|XSI.
Category:Modding