Game Development Community

XSI DTS Exporter Beta 2 Download

by Matt Summers · in Artist Corner · 02/02/2009 (10:14 pm) · 333 replies

www.darkindustries.com/gg/xsi/di_xsi_header.png
Whats New:

www.darkindustries.com/gg/xsi/dts_files.pngThis 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.

www.darkindustries.com/gg/xsi/modtool_ui.png

Basic Scene Setup:

www.darkindustries.com/gg/xsi/bounds.pngScene 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

www.darkindustries.com/gg/xsi/custom_parameters.pngTo 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) ]

#61
03/06/2009 (8:25 pm)
Actually, I had removed your sequence marker and added my own which then exported the animation fine. I did a bit more looking and it looks like the problem is actually the names of the start frame and end frame custom properties.

They should be integer properties and be named "startFrame" and "endFrame" and are case sensitive. (yours were named "StartFrame" and "EndFrame")

After making this change your animation exported fine for me.
#62
03/07/2009 (3:38 pm)
still having issues, can you send me your xsi scene and ill see if its to do with any of my software (showtool or xsi)
#63
03/08/2009 (10:36 am)
@Null: I am using XSI 7.01 so my saved scene file is not compatible with your XSI Modtool version 6.0.

What exactly are the issues are you having?

When I export your scene "tge_rig_human_Manskell_run1" all I do is remove your custom properties add properly named ones and then export the file as a DTS. When I load it into ShowTool pro it animates perfectly fine.

I noticed that you had uploaded 2 scenes one that is in a default "T" pose and one that is animated. If the problem that you are having is that you are exporting both files, the "T" pose as a DTS file and the animated version as a .DSQ and that your animation will not load into ShowTool.

That problem is caused by your skeletons being different in both scenes. In order for a DSQ file to load the nodes in both your DTS and DSQ file must match exactly. In the case of your two scenes they do not.

This is easy to see in showtool pro. If you hit the tilda key in showtool pro (~) it will open the Torque Console. After you try to load your .DSQ file onto your "T" pose skeleton you will see the error:

Quote:Sequence import failed: sequence node "GlobalSRT" not found in base shape.

I did a quick look and ther are a few other nodes missing from the "T" pose scene as well. (compared to your animated file) You will need to make sure both files have the same nodes with the same names for your .dsq file to work properly.

I did a test using your animated file to make both a DTS and a DSQ file. I made the DTS file only by deleting the sequence marker and then exporting to DTS, then I re-added the sequence maker and saved the animation only to .DSQ. When I load both files in Show tool it animates correctly.

Keep in mind that the animation only exported correctly after I had renamed the startFrame and endFrame custom properties on the sequence node.

When I export the animated scene to DTS after correcting the custom properties the result is a DTS file with its animation stored internally. This file animates correctly as well.

The following file contains 2 DTS files and a DSQ file. All of them were created using your scene "tge_rig_human_Manskell_run1". One of the DTS files has internal animation the other has no animation. The DSQ file is the same animation data just as a seperate file which can be loaded into the non-animated DTS file in show tool and will animate correctly.

The only change that was made to this scene was to fix the startFrame and endFrame custom properties.

Download the exported files here
#64
03/11/2009 (9:21 am)
I am working on a version of the Softimage exporter that changes the way that the scene root is walked by the exporter to allow for greater use of the XSI Model container.

Since each Model container in your scene is basically considered a separate scene root (Even the default scene root is just an XSI Model Container.) I made a change to the scene enumerator that lets you optionally choose which Model in the scene that you would like to export to DTS.

This means that you could potentially store multiple DTS shapes in one scene (each in their own Model Container) and then export them individually to DTS. (or all at once). This adds some setup complexity because you must make sure that all of the elements of your DTS shape are inside the appropriate Model container for it to export properly, but if you are not using Model containers it doesn't change anything setup wise from the current workflow at all.

This adds a bit of flexibility because things like imported .XSI files (from Crosswalk), character rigs, etc. use the Model container to store all their objects and settings. Currently you need to move all of the objects inside any Model container to the scene root in order for them to export correctly. This should eliminate the need to do that.

With this workflow you could theoretically, import a crosswalk file of a DTS scene exported from Max or Maya and then just export it from Softimage without really making any changes to the scene setup. (aside from possibly materials and sequence markers.)

Going this route will also mean that it would be possible to create a library of Models presets for things like; players, vehicles, weapons etc. which you could load into your scene modify for your needs and then easily export without having to move all the objects to the scene root.

Any thoughts on this approach?
#65
03/11/2009 (11:21 am)
64bit version now available for XSI 7.x

The file download for the XSI exporter has been updated to include a 64bit plugin compiled for XSI 7.x (64bit). The 64bit version was compiled with the help of James Brad Barnette.

The 32bit version is unchanged from the last update so unless you need the 64bit version of the exporter, there is no need to download the new files.

I am hoping to have the DTS Automation Utility available for greater testing next week. I will make a post or blog when it is available.

#66
03/11/2009 (11:29 am)
hmm what you just said you want to add will save me some time as i been working on walls all in one scene. now i don't have to export each one then re import them in there own scenes once you get that done.

just keep up the good work and keep saving me time on your exporter. :P
#67
03/11/2009 (6:36 pm)
I could potentially see several advantages to doing it that way.
#68
03/11/2009 (8:18 pm)
I actually have it working right now and I am in the process of updating the UI for the exporter to show a list of all of the Models in the scene and let you choose the one that you would like to export. (I have been testing it by manually typing the Model name into a text box up to this point.)

It is actually working really slick, and by default it selects the "Scene_Root" Model so if you don't wish to use the Model container in your work flow nothing changes from the current use of the exporter.

Seems pretty win, win to me. The only side effect so far is that I now need to make the exporter utility handel Model containers in the setup automation process.
#69
03/12/2009 (9:57 am)
I now have the exporter able to work with multiple Model conatainers in the same scene. Each Model container is considered a seperate scene root and from the exporter dialog you can select which Model you would like to export from the current scene.

As you can see in this screen capture, this example scene has three Models: The Scene_Root, Wheel and Wheel2. From the export dialog you can simply choose the Model that you would like to export from the drop downlist. Only the selected Model will be exported to DTS.

www.darkindustries.com/gg/model_root.png
This means that you can now have one model for the base mesh and one model that has sequence markers and animation data and store both in the same scene. Or you can simply just have multiple DTS shapes in the same scene and easily export them seperately from the same scene. The automation tool will also allow you to export all Models in the scene to DTS without needing to export them one at a time.

I still need to test this feature a bit more to make sure that nothing was broken in the process of adding this, but so far it is working really well.

The next thing I am looking into is too see how hard it will be to allow the exporter to support the Clone object in XSI. This would allow you to have multiple Models where one or more of them is actually a clone of another object or objects in the scene.

This would mean that any changes made to the original object would automatically be applied to all of the Clones in the scene. But also changes made to Clones would remain unique to each clone. I have to do a bit of testing to make sure that its even possible, but I think it would be a great feature to have if its not to big of a pain in the ass to add support for it.

I should have the next update to the exporter available in the next day or two after a bit more testing on my end.
#70
03/12/2009 (5:13 pm)
by clone are you referring instantiated models?
#71
03/12/2009 (6:48 pm)
With the changes that I have already made, Instantiated Models should work at present. (with the Model contianer changes) Cloning is a separate thing, This is taken from the XSI manual defining the Clone:

Quote:Creating a clone of an object allows you to keep a link between the original (master) object and its clone. Any change you make to the geometry of the master object is reflected in all clones of it. However, transformations (scaling, rotation, translation) and any change you make to the clone affect only it, and not the master nor other clones.

Any materials or textures on the original object are also be copied to the clones. You can further define how the original is cloned in the Duplicate/Instantiate Options property editor.

I see clones being really handy for things like detail levels. For example you would model, texture and skin your primary detail level mesh(es) for a character, then clone it several times. (the mesh only because it will have the same skinning as the master mesh and also use the existing skeleton) Then name each clone appropriately as a detail level, apply a polygon reduction operator to each clone and adjust the poly reduction amount for each clone.

The nice thing about this work flow is that any changes you make to the master mesh topography would automatically be applied to all of the clones. Instantiated Models work in a similar way but Clones are inside of the Model container. So an Instantiated Model could optionally include Clones as well.

It gets pretty complicated but when its all working together it can end up saving a lot of time. Again all of these things are optional so if you don't need the added complexity it is not required.
#72
03/12/2009 (10:48 pm)
I can confirm that Instantiated Models, Reference Models, etc do work after the changes that I added for the next update to the exporter.

Cloned objects do work also but only for static mesh objects. For skinned objects the there are some issues that I have run into. The main one is that Clones do not transfer the envelope operator, and even adding one after the fact doesnt work very well. XSI ModTool wont even let you apply an envelope to a Clone, and XSI 7 will but when you open the envelope weight editor there are no bones or weights listed.

The Clone still has its uses, and you can still accomplish a similar result for skinned meshes. Duplicated meshes maintain the envelope opperator perfectly and allow you to easily generate animated detail levels using the poly reduction operator.

Should have the update ready some time tomorrow.
#73
03/16/2009 (12:17 pm)
Still working on the next update which should be available in the next few days. The update adds support for the Model container, which allows you to have multiple DTS shapes in one XSI scene and the use of reference models and deltas in your DTS workflow. Clones are also now supported for static meshes.

www.darkindustries.com/gg/DTS_prefs_window.png
The update will also include the beta version of the DTS automation utility. It adds a "Torque" menu to XSI that includes various setup automation tools. It is not complete yet, but but does provide enough functionality in its current form that it is useful. Incomplete functionality is disabled in the menu but left there to show where it will be located.

The menu is dynamic and will enable/disable menu options based on wether or not tool wired to the menu option requires a selection or not. (based on if you have anything selected when you open the "Torque" menu.) For example options like the bounds and collision tools require a selection for them to work off of. The menu will also show keyboard shortcuts that are assigned to any of the custom commands that are used by the menu.

I am thinking that in 1-2 weeks the utility should be completed, which equates to a little over 2 months of my spare time since I picked the project back up again. That gets us to feature complete, fully automated but no documentation yet. I am guessing that the documentation stage will take almost as long from start to finish. Given what I would like to cover, possibly longer. But I will release it in stages as its available.
#74
03/20/2009 (8:17 am)
Update

I am working out a few issues related to the Model container support for setup automation. As of last night it is now working really well, but I would like to finish up material automation and sequence automation before I release it for greater use. So please bear with me just a bit longer.

The scripted tool now detects if you are using Model container in your scene and will automatically add all setup related objects to the approriate model. For instance if you select and object and use the bounds tool, it will correctly add the bounds to the model that the selected shape was in. The same goes for all of the other automation tools. (dts shape, collision, sequences, etc.)

If you use a tool that doesn't require a selection it attempts to figure out what Model to target and worst case will present you with a list of all of the models in the scene and let you pick the one to target.

If you do not use the Model container nothing changes. The tools will correctly add setup objects and related settings to the scene root as it did before. The update should be ready for greater testing tomorrow and I will be making a blog post with some detailed information about it as well.
#75
03/20/2009 (8:50 am)
awesome! can't wait!
#76
03/22/2009 (11:20 am)
Beta 2.4 update:

Just a heads up that I updated the download link to point to a new build of the XSI exporter. Which adds several new features a the first release of the DTS automation utility. More information is available in my blog post about it.
#77
03/22/2009 (10:43 pm)
I posted this same post on my recent blog post regarding beta version 2.4, sorry for the double post if you get notified by both topics.

Update

A few people were having problems with the exporter Utility registering its custom preferences into Softimage. As a result I posted an updated verson of the file download to correct this issue for Softimage 7.x versions. Find it here.

I am still working on a fix for Softimage ModTool as it appears that custom preferences are either bugged or broken in Modtool. If I can not find a fix in the next day or two I will modify the ModTool version of the Utility to store its exporter preferences in the scene root instead of in the application preferences util there is a fix.
#78
03/26/2009 (8:56 am)
Updated DTS Utility

An updated DTS Utility is now available. This update includes:

  • Improvements to Scene/Model detection for all tools.
  • Improvements to DTS Shape Creation to prevent hangs part way through the setup process.
  • New Command "DTS_SelectDetails" added.
  • DTS_SelectDetails can be passed a boolean value to remove collision meshes from the selection.
  • LosCollison meshes can now created from the utility.
  • Register Details now creates detail markers for details, collision and loscollsion meshes.
  • The Nodes Menu is now available.
  • Add Nodes by name or add Nodes by type. (Player, Vehicle, Weapon)

I should have billboards, triggers and visibility automation in the Utility in the next day or two. The exporter download file has been updated to include the updated Utility but you can also download the updated Utility seperately here.
#79
03/27/2009 (8:39 am)
Updated DTS Utility

An updated DTS Utility is now available. This update includes:

  • Automation for Billboards
  • Automation for BillboardZs
  • Automation for AutoBillboards
This update adds 4 new Custom Scripting Commands

  • DTS_AddBillboard
  • DTS_AddBillboardZ
  • DTS_AddAutoBillboard
  • DTS_RemoveBillboard

This leaves: Triggers, Visibility Aimation, and Sorting left to be automated. After these 3 features there are in a few other automation tools needed for the Bounds and Quick Setup/Quick Export.

As before the exporter download has been updated, but you can also download the updated Utility seperately here.
#80
03/27/2009 (7:25 pm)
will this exporter work with version 5.11