[Tutorial WIP] Import Sins Models to XSI

Still needs some fine tuning but it works

 

 

I use the 30 day trial of 3DS Max, the SoaSE Maxtool v1.1.zip from Stannum and Softimage/XSI Mod Tool(free).

Extract the SoaSE Maxtool contents to ...\3ds Max Design 2010\Scripts. Open 3DS Max.

1. Select the "Utilities" hammer button.

2. Expand the Utilities Tab.

3. Press the MAXScript button.

4. Press "Run Script" under the MaxScript tab.

5. Select the "SINS_Tool" script.

 

 

 

 

Select the Utilities drop down list and select the SoaSE MaxTool.

This will open another tab below. You may need to scroll down using the thin grey bar to the right or the mouse wheel.

Press "Import .mesh" and navigate to the mesh directory.

For this tutorial I will use Frigate_PsiLight.mesh from the SoaSE root directory Mesh folder.

 

Now there should be the basic model in the view port with no texture materials attached. The textures will be added in XSI according to the documentation.

The green boxes will be the "Mesh Points" in XSI.

There are 2 things we are looking to import into XSI.

1. The UV wrapping.

2. The Mesh Points

I have experimented with different methods and found this has to be done in 2 different steps.

1. Export as an .OBJ file for the UVs.

2. Export as a .FBX for the Mesh Points

These 2 files will then be imported to a single scene in XSI.

 

Press [Ctrl + A] to select all the entities. The Frigate_PsiLight model has 10 listed.

Select Export as .OBJ, name the file (e.g. Frigate_PsiLight) and press save.

The "OBJ Export Properties" window will pop up.

Uncheck Flip YZ-axis (Poser-Like)

Change the scale from 0.1 to 1.0

Change the Preset to Softimage XSI

Press Export --> Done

 

Press [Ctrl + A] to select all the entities. This model has 10 listed.

Select Export as .FBX, name the file (e.g. Frigate_PsiLight) and press save.

The "FBX Export Properties" window will pop up.

Scroll down to Advanced Options --> Axis Conversion and change the Up Axis from "Y-Up" to "Z-Up"

Press OK

A warning will pop up. Ignore it and press OK again.

 

Open Softimage 7.5 (XSI) and start a new scene.

Import the OBJ file from the export directory e.g. ...\Documents\3dsMaxDesign\export

Press [Alt + 7] to open the texture editor and check the UV tearing and close the texture editor.

Press 8 (not number pad 8) to open the explorer. Rename the mesh which will be SOASE_MESH by double clicking it and renaming it in the Scene Root properties window, press Enter and close the window.

 

Now use Import --> Crosswalk to import the .FBX file.

Select (in the explorer) the renamed mesh, this is the imported OBJ with the UV wrapping completed, and press [H] to hide it. Notice how the meshes are exact duplicates but we only need 1.

Press 8 (not number pad 8) to open the explorer again and notice the new SOASE_MESH, Nulls and ImportFBXOptions are added to the scene root.

You can now delete the ImportFBXOptions, the imported FBX named SOASE_MESH and the light.

I have noticed that not renaming the original imported OBJ will seem to merge the 2 SOASE_MESH's.

 

Select (in the explorer) the renamed mesh and unhide [H] the mesh.

Within Explorer, press S to view the hierarchy of your Scene_Root, if you aren’t already there.

With the mesh selected, In the “Get” section of the Model/Animate/Render/Simulate Toolbar, go Primitive --> Null.

 

 

Double click this null 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.

 

 

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.

 

from the new scene
from the PDF documentation


Make your tangents as per the documentation.

The original PDF documentation states...

Note: If your UVs were not created in XSI, the directory structure might be named differently.

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.

This is the case importing from 3DS Max and navigate to...

Polygon Mesh --> Clusters --> Sample --> Texture_Projection1 (Planar XZ) --> Texture_Projection1_DEF

Note: I am not experienced at all with Tangent Maps or there purpose but it is a required step.

 

Press 7 (not number pad 7) to open the Render Tree. The imported OBJ has already set a Phong hooked up to the DefaultLib (orange box).

Double click the orange box and rename the wire_xxxxxxxxx to Material

Importing the mesh into 3DS Max gives the mesh a preset colour and I am not sure why but these values can be zeroed out.

I am not sure yet if this effects the mesh export to XSI.

Hook up the Textures as per the documentation.

I placed copies of the textures to my XSI's project Pictures directory. Always work with copies.

 

 


Clean up the scene as per the documentation.

This may seem like a lot of steps but do it a couple of times and you will fly through it. I will work on a script to shorten this process.

15,568 views 7 replies
Reply #1 Top

ConvertXSI thanks Major Stress

ConvertXSI is a command line tool (in other words DOS). 

Create a folder in your C drive called "Convert". Then extract ConvertXSI, and its associated .dll files from the forge tools into the Convert folder. Export your model in .xsi format to the Convert folder. Any associated textures will be saved there as well. 

Open your Command Prompt (found in Start menu\Accessories). Then type in the prompt cd\Convert. Then press enter. You should see C:\Convert in the next line.

Next type 

convertxsi yourshipname.xsi  yourshipname.mesh 

then press enter.

 

"yourshipname" is whatever the name of your model is. If nothing is wrong with the mesh you should see a list of materials, and mesh nulls found. Then a bounding radius. Plus points after optimization.

You can use the --nooptimize modifier if you don't want the mesh optimized. You will see an error message if there is something wrong with your mesh.

convertxsi yourshipname.xsi  yourshipname.mesh --nooptimize

When you are done there should be a .mesh file along with its textures waiting inside your Convert folder to be placed in your mods mesh, and textures folder.

If your converting folder is on another drive you can use the cd (change directory) command [space]drive:\ and directory...

cd d:\YourDevolperFolder\ConvertXSI

 

Reply #2 Top

Compare

Now lets compare the new mesh (exported as TXT) and the original mesh (originally in BIN format) files. To convert an original mesh file to TXT, follow the Converting .BIN to .TXT & .TXT to .BIN instructions.

from the original mesh


from the new mesh

Lines 4, 5 and 6 are slightly different. and yes, for testing I names it to TEC frigate.

 

 

Reply #3 Top

The script is almost done.

A user input box is presented asking to name the model, this creates a string to find and hook-up the textures so it should be named the same as the texture without the -cl.dds. For example, the TEC carrier mesh is named CapitalShip_TechCarrier but the textures are named CapitalTechCarrier. The later is what will be used because the string strShipName will look for ...

strShipName & "-nm.dds"

strShipName & "-cl.dds"

strShipName & "-da.dds"

The only thing that needs work on the script is renaming the mesh points and picking the tangent. The second UV is in the script but some message saying ...

' INFO : Pick texture coordinate

DeleteObj "CapitalTechCarrier.polymsh.cls.Texture_Coordinates_AUTO.Tangents.TangentOp2"

' INFO : The CAV is already using the specified datatype. There is no need to install an operator

ChangeVertexColorDatatype "CapitalTechCarrier.polymsh.cls.Texture_Coordinates_AUTO.Tangents", 1

ApplyOp "TangentOp2_cpp", "CapitalTechCarrier.polymsh.cls.Texture_Coordinates_AUTO. Tangents; CapitalTechCarrier.polymsh.cls. Texture_Coordinates_AUTO.Texture_Projection1", siUnspecified, siPersistentOperation, , 2

' INFO : The CAV is already using the specified datatype. There is no need to install an operator

 

ChangeVertexColorDatatype "CapitalTechCarrier.polymsh.cls.Texture_Coordinates_AUTO.Tangents", 1

 

All this is generated by the pick and can't be reproduced in the script.  X(

Other than that it does almost everything in the main post and the pdf documents in about 2 seconds. It does rename a few mesh points and changes all the mesh point sizes and icons as per the documentation. 

 

Reply #4 Top

Hi guys , i got a strange error while progressing on this tutorial. Everything was nice until i came to this tutorial section 'Press 8 (not number pad 8) to open the explorer. Rename the mesh which will be SOASE_MESH by double clicking it and renaming it in the Scene Root properties window, press Enter and close the window.' i changed SOASE_MESH name to Frigate_PsiLight than its start to giving me this error :S. What can be wrong guys ,maybe i missed something on progress can anybody help me for this?

Thx

 

Strange error

Reply #5 Top

Need more info because I dint think you followed the tut at all or you would see this after importing the FBX. 

Here is the PsiLight scene file so you can see what it looks like when done

Reply #6 Top

EDİT: I found what was wrong...İf somebody will get same error ' FBX import error' make sure you set FBX file Format  Version : FBX 2010 not FBX 2011 on 3ds max FBX export pop up  x)

Reply #7 Top

My first video tutorial showing off my XSI script that imports the .obj (model & UVs) and .fbx (mesh points). Connects the textures. Creates the rootpoint and moves all the mesh points renaming them in the process. Creates the second UV to connect the tangent to. Connecting the tangent must be done manually.