XSI DTS Exporter Beta 2 Download
by Matt Summers · in Artist Corner · 02/02/2009 (10:14 pm) · 333 replies

Whats New:
This is an updated version of the XSI DTS exporter which corrects issues with exported animation transforms, adds support for exporting .DSQ animation files, and fixes several other small bugs. This version of the exporter now also requires adjustment of the bounds axes for proper export. (see basic setup section below for more information)The file download includes the new plugin, 2 sample scenes in XSI 7 and XSI Modtool 6 format, and 2 sample DTS shapes exported from XSI 7 using the exporter for reference.
The 2 sample files that are included with the exporter are the TGE Orc rigged with a simple null based skeleton that will export and work with the default player .DSQ files, and a simple example of an animated object using XSI bones. More sample files are in the works and will be made available as they are completed.
XSI Modtool Support:
The XSI DTS exporter is fully compatible with the latest version of [ XSI Modtool ]. Modtool is lightly stripped down version of Softimage XSI 6.x that is free for non-commercial use. View the full list of Modtool Version Limitations [ here ].
The default UI of Modtool has been setup to be more first time user friendly, but you can also choose to use the stock XSI UI instead by going to the Modes menu and choosing the "XSI default (pro mode)" UI preset.

Basic Scene Setup:
Scene setup needs to be done manually until the exporter UI is completed. This involves creating a DTS shape using nulls, creating a bounds mesh, detail markers, and a mesh object with a detail size number at the end of its name. Scene setup is almost identical to the that of the Max and Maya DTS exporters.Create two null objects named "base01" and "start01" parent them so that "base01" is the parent node and "start01" is the child node. Parent your mesh object to "start01" and then add a bounding box around your object and name it "bounds". The bounds mesh should be either at the scene root or parented to one of the nodes or mesh objects in the scene.
Bounds Axes Orientation
You must also rotate the center of your bounds so that the Z axes points up, the Y axes points forward, and X axes points to the right. Your shape should face forward in the Y axes of your bounds. (as in the image to the right)
Detail Markers
You then need to add a detail marker to the scene named "detail(x)" where (x) = the pixel size value that this detail level should be displayed. The detail maker is just a named null object that is parented to the "base01" node. You will also need to make sure your mesh objects have a detail size at the end of their name. You can then go to file menu / export and choose export DTS.
Example: simple object scene setup
Scene Root
|
+ -bounds {mesh}
|
+ -Base01 {null}
|
+ -Start01 {null}
| |
| + -mesh2 {mesh} (detail size 2)
|
+ -detail2 {null} (detail marker for size 2)[ Orc player scene setup ] | [ Simple bone animation scene setup ]Exporting Animation
To export animation from your scene you must add one or more sequence markers to the root of your scene. A sequence marker is a named null object with a Custom Parameter Set that contains at minimum 2 custom parameters; an integer property named startFrame and an integer property named endFrame.Sequence markers should be named "sequence_" followed by the name you would like to give the animation. (example: sequence_ambient)
If a sequence marker is present in the scene, on export to DTS the named animation sequences will be embeded into the DTS shape. You can optionally click the "export DSQ" button on the exporter window to export the animation(s) seperately as .DSQ files.
Quote:Note: make sure to freeze the transforms on your bounds and mesh objects before exporting. Because the exporter supports scale animation object scale is read by the exporter and as a result if there are scale transforms on the exported shape when the object is loaded as a static shape it will appear at its un-scaled state and If it is loaded as an animated shape it would shrink down to its scaled size.
This build of the XSI DTS exporter is compiled using the XSI 6.x SDK and is compatible with the 32-bit versions of XSI 6.x, 7.x and XSI Modtool version 6.x and 64-bit versions of XSI 7.x.
[ Download The Exporter (Beta 2.5) ]
About the author
#22
02/12/2009 (9:06 am)
Also, just a heads up I should have a new build of the exporter ready for testing this weekend. The update will add TwoSided Materials, Material Properties and fixes to Visibility Animation. Possibly more depending on my schedule this weekend.
#23
Rock on!
mine does it just pops up a box and asks me what version of XSI I want to open it with.
02/12/2009 (2:18 pm)
Rock on!Quote:
You cannot open scn files with double-click, copy the file under your Scenes folder in the current Project (or your Project, however you set it).
mine does it just pops up a box and asks me what version of XSI I want to open it with.
#24
02/12/2009 (5:53 pm)
Thank you so much! I will try it out this afternoon.
#25
Did not get to spend as much time as I would have liked this weekend on the exporter given the holiday, but I have made some progress on exporting materials.
The next update to the exporter is now several magnitudes faster after some tweaking to how materials are handeled internally. As an example I can now export the TGE Orc scene with 4 detail levels (6-7k polys counting the detail level meshes) in about 5 seconds.
The update should be ready for wider testing in the next few days.
02/16/2009 (7:47 am)
Update:Did not get to spend as much time as I would have liked this weekend on the exporter given the holiday, but I have made some progress on exporting materials.
The next update to the exporter is now several magnitudes faster after some tweaking to how materials are handeled internally. As an example I can now export the TGE Orc scene with 4 detail levels (6-7k polys counting the detail level meshes) in about 5 seconds.
The update should be ready for wider testing in the next few days.
#26
I updated the download link to point to an updated version of the XSI DTS exporter. This version fixes visibility animation and several small problems with material handeling. This update also improves export speed substantially.
I have one more material performance enhancement that I am working on which will probably double the export speed again. Tomorrow I should have material properties completed which should make the exporter feature complete sans morph animation.
I also have several more sample scenes that I have been using to test various features of the exporter. I will make them available as they are completed.
Try out the update and let me know your thoughts.
02/17/2009 (1:05 pm)
Beta 2.1 updateI updated the download link to point to an updated version of the XSI DTS exporter. This version fixes visibility animation and several small problems with material handeling. This update also improves export speed substantially.
I have one more material performance enhancement that I am working on which will probably double the export speed again. Tomorrow I should have material properties completed which should make the exporter feature complete sans morph animation.
I also have several more sample scenes that I have been using to test various features of the exporter. I will make them available as they are completed.
Try out the update and let me know your thoughts.
#27
I worked with mine and i still cant get it right.
02/18/2009 (12:25 am)
wait, Am i able to see what you did to your config file?I worked with mine and i still cant get it right.
#28
It is the one for the TGE Orc scene.
The exporter will look for the .cfg file in 3 ways in the following order:
What I generally do is always have a "dtsScene.cfg" in the directory where I export dts shapes with my default settings. If I need to do something specific for a special shape I will go the scene name or dts filename route.
If you look in the "dump.html" that is created by the exporter after each export. (It is located in the directory where the dts file was exported to.) You can see the first few lines where the exporter is looking for the .cfg file.
02/18/2009 (10:27 am)
I used the .cfg file that is included with the exporter sample scenes.It is the one for the TGE Orc scene.
The exporter will look for the .cfg file in 3 ways in the following order:
1.) a file named: "<scene_name>.cfg" in the directory the dts is exported to. 2.) a file named: "<dts_filename>.cfg" in the directory the dts is exported to 3.) a file named: "dtsScene.cfg" in the directory the dts is exported to. Where "<scene_name>" = the name of your scene in XSI or Modtool or where "<dts_filename>" = the name of your exported dts file.
What I generally do is always have a "dtsScene.cfg" in the directory where I export dts shapes with my default settings. If I need to do something specific for a special shape I will go the scene name or dts filename route.
If you look in the "dump.html" that is created by the exporter after each export. (It is located in the directory where the dts file was exported to.) You can see the first few lines where the exporter is looking for the .cfg file.
[b]Exporter Report[/b] Torque Game Engine (DTS) Exporter v1.2.1 Build 8 Setting up for full export (dts) -- turning on optimized meshes Config file "C:\dts_test\fishingBox_vis.cfg" not found. Config file "C:\dts_test\fishingBox_vis.cfg" not found. Begin reading config file "C:\dts_test\dtsScene.cfg". Always export node: "eye" Always export node: "cam" Always export node: "mount0" Never export node: "Bip01" Never export node: "Bip01 L Finger*" Never export node: "Bip01 R Finger*" Never export node: "Dummy*" ...
#29
This is the complete text from the .cfg file that I used to export your scene. My .cfg file is named "dtsScene.cfg" and it is located in the destination directory where my dts files are exported to.
02/18/2009 (10:36 am)
@Null Volkmar:This is the complete text from the .cfg file that I used to export your scene. My .cfg file is named "dtsScene.cfg" and it is located in the destination directory where my dts files are exported to.
AlwaysExport: eye cam mount0 NeverExport: Bip01 Bip01 L Finger* Bip01 R Finger* Dummy* Bip01 L Toe* Bip01 R Toe* start01 mountpoint DELETE* Light0 Light1 base* eff root +Error::AllowUnusedMeshes -Param::CollapseTransforms +XSI::ReplaceUnderscoresWithSpacesInNodeNames
#30
Last night I was able to finish rewriting the material processor and it has been working great in my tests so far. This was the last major restructure needed in the code. I started adding material properties support last night and should have them all exporting properly later this evening.
If anyone was wondering the most recent update that I posted a few days ago supports the following features.
The current exporter supports:
There is still a bit of testing that needs to be done on all of these features but they are all currently exported to the DTS shape. Many of these things require that you add the appropriate custom parameters to objects in the scene. I haven't fully documented these parameters but they are identical to those used by the Maya DTS exporter. So untill my docs are completed you can use the maya docs as a guide.
As soon as material properties are done ( twosided materials, transparency, environment map, detail map, selfIllumination ) the XSI exporter is feature complete except for Morph animation. Last I looked the only exporter that supported Morph Animation was the original Max Exporter and that generally Morph Animation is not recommended to be used.
What are your thoughts on the need to support morph animation?
02/19/2009 (9:33 am)
Update:Last night I was able to finish rewriting the material processor and it has been working great in my tests so far. This was the last major restructure needed in the code. I started adding material properties support last night and should have them all exporting properly later this evening.
If anyone was wondering the most recent update that I posted a few days ago supports the following features.
The current exporter supports:
- Static meshes
- Skeletal animation
- Node/Object animation
- IFL
- DSQ exort
- Billboards
- Billboard-z
- Auto Billboards
- Manual Detail Levels
- Auto Detail Level Generation (via decimation in the exporter)
- Triggers
- Visibility animation
- Collision
There is still a bit of testing that needs to be done on all of these features but they are all currently exported to the DTS shape. Many of these things require that you add the appropriate custom parameters to objects in the scene. I haven't fully documented these parameters but they are identical to those used by the Maya DTS exporter. So untill my docs are completed you can use the maya docs as a guide.
As soon as material properties are done ( twosided materials, transparency, environment map, detail map, selfIllumination ) the XSI exporter is feature complete except for Morph animation. Last I looked the only exporter that supported Morph Animation was the original Max Exporter and that generally Morph Animation is not recommended to be used.
What are your thoughts on the need to support morph animation?
#31
I managed to get my model and animations into Showtool but when I choose to load dsq and select my file nothing happens.
I tried exporting the dts with the dsq (uncheck the dsq box) and when i open it up the guy is posed in the first frame but refuses to be animated.
I followed the correct steps and i have a sequence marker and everything; so here are my files: http://www.mediafire.com/?sharekey=f827f393da231bfb4012e8015643d9c8040f89647e869f37.
Thank you, I really appreciate the help!
02/19/2009 (10:02 pm)
Thanks for the help again, sorry for all the trouble, I am only 14 and learning the basics of torque with some friends.I managed to get my model and animations into Showtool but when I choose to load dsq and select my file nothing happens.
I tried exporting the dts with the dsq (uncheck the dsq box) and when i open it up the guy is posed in the first frame but refuses to be animated.
I followed the correct steps and i have a sequence marker and everything; so here are my files: http://www.mediafire.com/?sharekey=f827f393da231bfb4012e8015643d9c8040f89647e869f37.
Thank you, I really appreciate the help!
#32
I updated the link in the first post to point to a new build of the XSI exporter that adds partial support for DTS Material properties.
This update adds support for the following features:
Materials in XSI exported to DTS now have the following behavior:
If the material on an object has a texture attached to the diffuse port of the material, that image name minus the file extension is used as the exported material name. ("player.png" becomes a DTS material named "player"). If the material has no texture attached to the diffuse port the name of the material in XSI is used for the DTS material name. (i.e the name of the material node or in the scene material library.) Keep in mind that the material name stored in the DTS is the file name without the extension.
One special case for material names is that if any material is found that is named Scene_Material (the default name of the root scene material) it is excluded from the exported DTS file. Otherwise every exported DTS would contain a material named Scene_Material that is most likely not used by any meshes in the DTS.
If you do nothing to your material aside from attach a texture to the diffuse port of your material it will result in a texture with SWrap, TWrap and Never Env Map flags set. (Just as the exporter has been doing up to this point.)
In order to export material settings you must add a custom property set to your material and this custom property set must be named DTSMaterial or the DTS material settings will not be found by the exporter. (This required naming convention is also a performance benefit to the exporter.) After Adding the custom parameter set to your material you will need to add the following custom parameters with the following types:
if Transparent = true:
TransType: 0 = normal : TransType: 1 = additive : TransType: 2 = subtractive
After adding these custom parameters you can easily manage these settings from the material edit window. The scripted exporter UI will eventually automate adding all of the required custom properties that are used by the exporter.
The remaining material properties (EnvironmentMap and DetailMap) are nearly completed but have some additional overhead that is still being tested.
Please try this version out and let me know if you run into any problems or issues.
02/20/2009 (12:13 pm)
Beta 2.2 update:I updated the link in the first post to point to a new build of the XSI exporter that adds partial support for DTS Material properties.
This update adds support for the following features:
- TwoSided
- Transparent
- Additive Transparent
- Subtractive Transparent
- Self Illumination
- SWrap
- Twrap
Materials in XSI exported to DTS now have the following behavior:
If the material on an object has a texture attached to the diffuse port of the material, that image name minus the file extension is used as the exported material name. ("player.png" becomes a DTS material named "player"). If the material has no texture attached to the diffuse port the name of the material in XSI is used for the DTS material name. (i.e the name of the material node or in the scene material library.) Keep in mind that the material name stored in the DTS is the file name without the extension.One special case for material names is that if any material is found that is named Scene_Material (the default name of the root scene material) it is excluded from the exported DTS file. Otherwise every exported DTS would contain a material named Scene_Material that is most likely not used by any meshes in the DTS.
If you do nothing to your material aside from attach a texture to the diffuse port of your material it will result in a texture with SWrap, TWrap and Never Env Map flags set. (Just as the exporter has been doing up to this point.)
In order to export material settings you must add a custom property set to your material and this custom property set must be named DTSMaterial or the DTS material settings will not be found by the exporter. (This required naming convention is also a performance benefit to the exporter.) After Adding the custom parameter set to your material you will need to add the following custom parameters with the following types:
- Transparent: (boolean)(true/false)
- TransType: (integer)(0-2)
if Transparent = true:
TransType: 0 = normal : TransType: 1 = additive : TransType: 2 = subtractive
- TwoSided: (boolean)(true/false)
- SelfIlluminate: (boolean)(true/false)
- SWrap: (boolean)(true/false)
- TWrap: (boolean)(true/false)
After adding these custom parameters you can easily manage these settings from the material edit window. The scripted exporter UI will eventually automate adding all of the required custom properties that are used by the exporter.
The remaining material properties (EnvironmentMap and DetailMap) are nearly completed but have some additional overhead that is still being tested.
Please try this version out and let me know if you run into any problems or issues.
#33
There is still an issue where when you use the flag
in your .CFG file it will replace the "_" in your scene's sequence markers and cause no sequences to be exported. This is only an issue if you need to use an existing .DSQ file that contains nodes with space characters in their names.
For your purposes you should be able to simply change the setting in the .CFG file to
and it should fix your problem. I will change the string replace code to take special node names into consideration in one of the next updates. Let me know how it goes.
02/20/2009 (2:00 pm)
@Null Volkmar:There is still an issue where when you use the flag
+XSI::ReplaceUnderscoresWithSpacesInNodeNames
in your .CFG file it will replace the "_" in your scene's sequence markers and cause no sequences to be exported. This is only an issue if you need to use an existing .DSQ file that contains nodes with space characters in their names.
For your purposes you should be able to simply change the setting in the .CFG file to
-XSI::ReplaceUnderscoresWithSpacesInNodeNames
and it should fix your problem. I will change the string replace code to take special node names into consideration in one of the next updates. Let me know how it goes.
#34
When i set the sequence marker i made sure 1 was my default and minimum and 1000 was my max. I then set the startframe to 1 and endframe to 25.
02/20/2009 (6:17 pm)
The sequence plays though now but the guy doesnt move, down the bottom the Frame count is 0.0 to 1.0.When i set the sequence marker i made sure 1 was my default and minimum and 1000 was my max. I then set the startframe to 1 and endframe to 25.
#35
I'm using XSI 6.5.
1. Is the Bounding Object
2. Is the Mesh And 3 is me rotating it on the x Axis
shape.Rotation2 = new Vector3(angle, 0, 0);

Is this Correct?
02/22/2009 (11:58 am)
Hello I have a question about axis. I am trying to rotate a test object that I exported, I'm rotating on the X axis but it looks like its rotating on the Y. I'm not sure what I'm doing wrong here.I'm using XSI 6.5.
1. Is the Bounding Object
2. Is the Mesh And 3 is me rotating it on the x Axis
shape.Rotation2 = new Vector3(angle, 0, 0);

Is this Correct?
#36
02/23/2009 (7:26 am)
XSI is Y up so I think you need to rotate on Y not X
#37
The first post in this thread has an image of how the bounds axes should look in XSI. What I generally do with the bounds is select the bottom 4 vertexes of the bounds object and then go to the transform menu and choose "move center to selection" which moves the center of the bounds to bottom of the bounds mesh. I then change the selection mode from object to center and then rotate the bounds center (pivot, axes or whatever your 3d app calls it.) -90 in the X axes and -180 in the Y.
Keep in mind that in Torque the Y axes points forward so you will want to orient your objects so that they face forward in the Y axes of your bounds. I usually adjust my bounds position so that it matches to camera views in XSI. To do so make sure that the Y axes points towards the screen in the Front Camera, the Z axes points up and the X axes of the Bounds points to the Right. You dont need to do anything special to your mesh objects just make sure that they match the camera views after you adjust the bounds axes.
I am writing a tool to automate the bounds adjustment, but it is a pretty simple step once you know what you are doing.
02/23/2009 (8:55 am)
Quote:
Bounds Axes Orientation
You must also rotate the center of your bounds so that the Z axes points up, the Y axes points forward, and X axes points to the right. Your shape should face forward in the Y axes of your bounds. (as in the image to the right)
The first post in this thread has an image of how the bounds axes should look in XSI. What I generally do with the bounds is select the bottom 4 vertexes of the bounds object and then go to the transform menu and choose "move center to selection" which moves the center of the bounds to bottom of the bounds mesh. I then change the selection mode from object to center and then rotate the bounds center (pivot, axes or whatever your 3d app calls it.) -90 in the X axes and -180 in the Y.Keep in mind that in Torque the Y axes points forward so you will want to orient your objects so that they face forward in the Y axes of your bounds. I usually adjust my bounds position so that it matches to camera views in XSI. To do so make sure that the Y axes points towards the screen in the Front Camera, the Z axes points up and the X axes of the Bounds points to the Right. You dont need to do anything special to your mesh objects just make sure that they match the camera views after you adjust the bounds axes.
I am writing a tool to automate the bounds adjustment, but it is a pretty simple step once you know what you are doing.
#38
Cool stuff though!
02/25/2009 (8:32 am)
Quote:An error occurred on the server when processing the URL. Please contact the system administrator.
Cool stuff though!
#39
02/25/2009 (8:43 am)
@Stefan: The link should work now. I was restarting my webserver a few minutes ago. Everything should be back up now. Let me know if you have any problems.
#40
I updated the exporter to support Environment Mapping. If you add a boolean custom property named "EnvironmentMap" that is set to true, the exporter then looks for a custom property named "EmapAmount" that is a value between 0.0 and 1.0
if EnvironmentMap = true:
Also, keep in mind that most of the material settings only really apply to TGE as in TGEA you can set most of them in your "material.cs" file.
02/25/2009 (12:55 pm)
Update:I updated the exporter to support Environment Mapping. If you add a boolean custom property named "EnvironmentMap" that is set to true, the exporter then looks for a custom property named "EmapAmount" that is a value between 0.0 and 1.0
- EnvironmentMap: (boolean)(true/false)
if EnvironmentMap = true:
- EmapAmount: (float)(0.0-1.0
Also, keep in mind that most of the material settings only really apply to TGE as in TGEA you can set most of them in your "material.cs" file.
Associate Matt Summers
Dark Industries
The bounds transformations are not frozen. (it still has a scale transfrom applied to it.) Your bounds axes rotation is incorrect. Its Z axes is pointing up correctly but its Y axes should be pointing forward and its X axes should be pointing to the left. See the bounds section in the original post on this topic for an image of what it should look like.
The skin mesh in your scene has no detail size. There is a detail marker named detail2, but your skin mesh is named "Man1". It should named "Man2" to match your detail marker size.
When exporting your scene you will need to use a .CFG file to control node export. Look at the one in directory with the Orc sample scene included with the exporter. Without a .CFG file any number of nodes or bones in your scene could get culled from your scene and will result in your skeleton missing bones. (as in your image.)
Also, the size of your object is pretty huge by Torque scale standards, I know this is just a test scene but at some point you might want to reduce the size of this object to be more in line with the Orc scene, depending on your intended use.
I fixed just enough in your scene to get it to export. Here is what it looks like. This is your skinned mesh with its XSI bones based skeleton.