Collada plugin for After Effects

More info here
trueSpace Plugins and Scripts - Import/Export
ASE Mesh Exporter for trueSpace7.61

Nov 22, 2009 Update:
New version 1.5 uses the save-as function from the plugin package.

Installs a button to open the exporter in the panel view.  A script for exporting ASE format mesh files for use in creating static meshes for the Doom3/Quake4 and Unreal game engines. Supports Unreal collisions and provides a means to simulate 3dsmax smoothing groups.  Support for 2 uv sets. The second uv set is good for Unreal light maps.
Material names come from the material chunk nodes. Good for Doom3 material names. "%" in the material name is converted to "/" on export.
Bitmap file name is used if an ImportBitmap node(from the System - Import library) is used to define the texture color in the D3D material.

It changes from trueSpaces right handed to left handed coordinate systems by making X,Y or Z values negative. It looks like ut3 likes the Y coming from trueSpace to be negative.

1 trueSpace meter = 10 unreal units

Some usage notes can be found at this link.

The plugin package is required to use this script.  Download the plugin package here

November 22, 2009
 

Collada Export fix for trueSpace7.61

Script for modifying the exported dae file so that the textures and the collada file are in the same folder.  The behavior of the trueSpace Collada exporter varies based on whether it is exporting workspace or modelspace materials.  See some notes here.  This script gives it a more consistent behavior.

This script only works when  using the file menu.  Dragging to a library will not work because the script uses the most recent saved file information which is bypassed when drag saving to a library.

The Vertex colors option on the export dialog does not work, so it is used by the script to activate the post save processing of the files.  If it's checked the script is active and the files will be modified, if not it will export the same as it always has.

Install by dragging into a 3d view or the link editor.  Automatic installation.

January 01, 2012
 fbx panel


truespace fbx import panel
FBX for trueSpace7.61

Plugin and scripts for importing and exporting to the FBX file format.  There is also some support for working with obj, 3ds, dxf and collada files.  It will export lights, cameras, meshes and their transformation animations.  It will import nulls, some skeletal mesh data, some camera info, some light data and simple meshes and their material definitions.  The plugin has been tested with Unity and UDK game engines and Carrara 7 and uses the FBX SDK version 2011.2.

Plugin imports meshes and their materials.  Some camera, light and skeletal mesh data.

Nurbs surfaces are converted to triangle meshes. One uv set is imported.  Both uv sets will export.

Error checking still not in place yet.  Still beta and the source code is still very rough.

Translation values from 3ds files are not read.  This results in a location of (0,0,0) all the time.  If file has a hierarchy of elements then they will not be in the proper location relative to each other.

Both uv sets will export.

new skeleton - create a skeleton starting point

export mode - (wip) control over export behavior

export as triangles - check to export triangles, uncheck to export polygons

If nothing is selected then the entire scene will export.  Push the DE-SELECT for scene export button so nothing is selected.

Use the "skin and transfer animations" button to complete the import process.  It reads in a text file created by the plugin that has the skinning information need to bind the mesh to it's skeleton then it transfers the animation stored in a proxy node to the skeleton.

Lights and camera exported rotations are all wrong. The import mode(WIP) is designed to solve this problem.  Light color, type and spot angle are exported.

Only materials derived from BlankDX Material will fully export.  Compiled materials will have simple placeholders.

Alpha value, alpha texture, color, color texture, constant color and texture export to emissive channel, model shader shininess and specular color or texture, normal textures export to the bump channel.

Library textures included with truespace will not work for export, because they are not stored in texture file formats.

Sample items from the standard libraries will crash truespace when exporting.  Several items were never updated for the final release of truespace.  They can be made safe by assigning a new material and point editing the mesh.

If a file has too many elements then it can be imported in pieces, I call partitions, and use boolean operation to reduce the number of meshes.  There is a short note in the zip archive, but this needs more documentation.

prefilename - experimental feature for batch importing

import animation - turn animation import off and on

no texture no normal - material normalmap node will be removed if no diffuse material node is created for the mesh

simple fan polygon - simple triangulation method good for most cases, when unchecked concave polygons will import properly, but is unstable and may crash truespace in some cases.  not good for skeletal meshes.

partition mode - switch to activate partition mode(off by default).  Truespace seems to be limited to importing about 450 scene items(meshes, lights, cameras).  This check is used with partition number and nodes per partition.

nodes per partition - maximum number of items to import from the fbx file.  The partition size

partition number - choose a section of the file to import. 0 imports the first section 0 to nodes per partition.  1 imports nodes per partition to 2 * nodes per partition.  2 imports from 2*max to 3*max etc. 

25 November 2011 Changes:

  • export polygons or triangles
  • fixed bug on polygon edge import
  • import concave polygons - can be unstable, not for skeletal meshes - based on code found here: http://alxr.usatlas.bnl.gov/lxr/source/atlas/DetectorDescription/GeoModel/GeoModelKernel/src/ by Thomas Kittelmann adapted from code poly2tri by Liang, Wu 
  • fix material shininess import
  • option to delete the normalmap node if no diffuse import
  • started camera and light animation import based on import mode
  • started export modes - lightwave mode use truespace normals to fix lw export
  • started import modes - current active modes are udkfbx, daz3d, lightwavefbx - cameras and lights use blenderfbx, blendercollada and lightwavefbx
  • option to import lights

Version 0.97 Changes:

  • fixed the "no uv" or "no normals" export crash
  • fixed truespace limbs causing exporter crash
  • very basic camera and light import
  • nulls import as cubes
  • beginnings of skeletal mesh import - requires the new SkeletonStart node
  • name imported object from the file name instead of "Fbx_Root"
  • extra uv layers export experiment

Version 0.975 Changes(Feb 9 2011):

  • automatic smoothing group generation for vertex normals on export
  • new unity compatible checkbox for Y-up applications(maybe best option for all apps Y-up or not)
  • script installer now includes placement of the FBX Material List and the SkeletonStart files
  • button highlighting is fixed

Version 0.99 Changes(Feb 28 2011)

  • animation import
  • skinning import
  • auto normals option
  • some ui cleanup
  • bare skeleton import for fbx files without a mesh
  • import different animations takes based on integer index

August 22 2011 Changes

  • import and export in separate panels
  • partitioned import for scenes with too many elements for truespace
  • script for converting parent structures to groups structures
  • left and right click on button for export/import
  • new skeleton - for starting a new skeleton that starts at the origin
  • prefilename - for possible future batch importing
  • animation import checkbox
  • import mode - wip, adjusts the import behavior for the source of the fbx file, the "udkfbx" mode seems to work best for most cases.  More testing is needed.
  • clear scene - empty the scene before importing

August 23 2011 Change

  • FBX camera and light nodes were missing from the installer

September 5 2011 Changes

  • export has a checkbox for using relative paths in the texture references
  • added daz3d mode to the import
  • fixed uv error in the export
  • fixed a problem with material counts from a change in May
  • cleaned up the ui a little bit

 

Downloads and Installation Notes:

  1. click to get the rsx plugin, material list node and script installer

  2. copy the rsx file to a convenient location and install the rsx plugin

  3. run the install script to create a toolbar button, copy the FBX Material List node into the Materials - DX9 folder and copy the SkeletonStart node into the Biped Limbs folder

  4. Two custom shader nodes for an Alpha value and a ModelTexture shader are included as a convenience.  The model texture shader can be used for specular texture maps.

  5. click to get the source code(for programmers) - the code is very rough, only good for bits of knowledge

A sample video on how to install an rsx plugin for truespace can be found here.  The video is for installing the Indigo Renderer, but it uses a similar rsx plugin. 

Usage notes:

  • The flipx, flipy and flipz must be checked for compatibility.
  • Lightwave 10.1 does not export nulls
  • UDK import scale 0.01 is good, fbx from udk  no textures, export from udk scene not the object browser
  • Unity needs an export scale of 100 for proper scaling.
  • If the mesh has a pivot use the flatten pivot tool on it before exporting.
  • Import and export can take a long time to execute especially with long animations or complex meshes.
  • 'embed media' is for embedding textures in the fbx binary format file.
  • To match the PSK export use an export scale of 10 and inside the UnrealEd AnimSet editor change yaw from -90 to 0 and change roll from 0 to -90.
  • To automatically load textures into Unity use the embedmedia with a binary fbx export.
  • UDK will create a material and import the textures, but the TexCoord node needs to have it's Coordinate index changed from -1 to 0.  Also png files crash the UDK importer.  Plugin works with the UDK collision mesh feature.
  • The importer will replace all non-alphanumeric characters with underscores.
  • A high take value will result in the last animation take of the file being imported.
  • To see a list of takes in an fbx file look inside the Output console after the first import.
  • Wavefront OBJ meshes import with no shared vertices.  Each face has it's own unique vertices giving very large vertex counts.  This is a problem with the FBX SDK 2011.2 .  Use the Heal Vertices tool to weld the common vertices.
  • Sometimes skin weights will not add to one and the skin may slide.  Use the Heal skin tool to fix these cases.
  • The importer cannot read skeletal meshes when the mesh is in the middle of the skeleton hierarchy.
  • Some 3DS files have a hierarchy and it seems that the FBX SDK cannot read the transforms in those cases.  Everything ends up at 0,0,0.
  • For programmers: RcTopologyExample7 and myfbx contain the code for the FBX exporter which uses the FBX SDK from Autodesk.  RcTopologyExample6 has the code for importing.

Skeletal mesh export:

  • The IK handles and stops must be removed before exporting.  Select the character and push the "Delete IK nodes" button to delete them.
  • Unencapsulate any limbs before exporting.
  • "export end joints" - Joints at the end of a skeleton chain don't influence the mesh deformation.  Check to export these joints.
  • "skip skeleton root" - The truespace skeleton root node acts as a kind of invisible joint.  Use this option when a skeleton with a specific structure is needed.  This option also turns off the export end joints option.  It won't remove the skeleton root from the export if it is in the middle of 2 or more chains of bones.
  • The frame 0 of animation must contain the actor in a pose with all joints rotations set to zero.  The plugin reads the positions of the vertices in this pose to store the relative positions and orientations relative to the skeleton bones.  Use the Joint Orientation Helper script found half way down the animation plugins page to automatically set all joints to zero rotations, then set a keyframe at frame zero.
  • Truespace must be at frame zero to read the mesh values properly before the plugin is called.  Use the "Go to bind pose - frame 0" button or manually set timeline to frame zero before pushing the 'export fbx file' button.
  • Animation starts at frame 1 because frame 0 is for the bind pose of the skeletons in the scene.
  • If the skeleton does not line up with the mesh, detach the skin by using the Attach Skin to Skeleton tool, rotate the first joint (usually -90 degrees) in X then re-skin the skeleton.  The first joint is the joint directly connected to "MyBone", but not named "Joint" or "MyJoint".
February 09, 2011
 import dialog
Collada DAE Importer for trueSpace7.61

A  plugin and script for reading Collada mesh and animation data into truespace.  The plugin has been tested with trueSpace, Blender2.5, Spore Creatures and Lightwave.  It will read in lights, cameras, meshes, nulls, light color, spot light cone angle, camera fov and basic animations.  It will not read in morphs or physics.

Meshes are limited to 16 materials, 2 uv texture maps and must be made of triangles or convex polygons.  Only one skeleton per file is allowed.

The Post Import Utilities are used to apply animation and skinning and to convert and clean the node structures imported.  The presentation order below and on the ui is the general order these utilities would be applied.

  • compress hierarchy - reduces the nodes to simple parenting relationships.  During the import several helper nodes are created to account for different rotation orders that might be encountered and to help with truespace rotation limits.  This process transfers the transform data from the helpers to the base nodes(meshes, lights cameras etc) and deletes the helpers resulting in a cleaner scene.
  • copy skeleton transforms - copies the transform values from the fake skeleton to the real skeleton
  • skin mesh - reads any skinning files that were created as a part of the import process and applies that information to the mesh skinning for the skeleton.
  • convert to groups - converts the parenting relationships of the nodes to group relationships.  Truespace does not natively support parenting and this process converts to a truepace compatible format.

Update August 21 2011:

  • imports a real skeleton and skinning data(no animations yet)
  • will import skeletal meshes composed of more than one mesh
  • new functions for cleaning up the node structures
  • limited support for collada matrix tags
  • fixed bug that prevented model side compatibility
  • after import frame at 0 instead of some crazy number

Update June 13 2011:

  • more stable - no need to restart after an import
  • reads polygon tags
  • material limit raised to 16
  • uv limit raised to truespace maximum of 2
  • will read a fake skeleton
  • button highlighting fixed
  • user interface with scale value and import filters
  • button to empty the scene
  • reads skeletal meshes(but not the skeletons)
  • loads a fake skeleton
  • improved hierarchy building
  • works with Blender2.49

Todo:

  1. option to use yafaray materials and lights
  2. real skeleton animations

Downloads and Installation Notes:

  1. click to get the rsx plugin

  2. click to get the script

  3. click for the source code(for programmers)

A sample video on how to install an rsx plugin for truespace can be found here.  The video is for installing the Indigo Renderer, but it uses the same rsx plugin. 

 

Usage notes:

  • The importer works best with the link editor view not visible.  A lot of nodes are created and that slows down the process if the link editor is updating to accommodate the display of all these nodes.
  • The process for importing skeletal meshes is like so:  Import the collada file then compress the hierarchy then copy the skeleton transforms and finally push the skin mesh button.
  • Spore Creature skeletons import in a mirrored state.  To fix go through the process of importing skeletal meshes and as a final step select the mesh inside the actor node, enter point edit mode and mirror across the x axis.
  • The plugin does not check for preexisting items with the same names as imported items and may crash if that is the case.  Empty the scene using the "clear scene" button before import or be sure all names will be unique or 3d encapsulate the existing scene before importing.
  • Truepace does not export the correct value for the spot light cone angle.  It exports the hotspot angle value which is not used.  That's for your information since there is no reason to export collada from truespace just to read it back in again.
  • Mesh normals don't always come in properly.
  • All imported items are connected to a "collada scene" node.  This is used to make Y-up collada files have the proper orientation and maybe for scaling an entire scene after importing.
  • The camera from the After Effects exporter may be reversed in the x direction.  Connect this node between the camera's OwnerMatrix and the WldMatrix of the node connected to it.
  • For programmers: RcTopologyExample5 contains the code for the Collada importer and uses ColladaDOM version 2.2
February 18, 2010
Unreal T3D Map Import for trueSpace7.61

Installs a button to open the importer in the panel view.  Truespace7.61 script for importing Unreal t3d map and brush files.  Should be compatible with t3d files from ut2k3 and up to the latest UDK at this time.  It imports lights, brushes, volumes and placeholders for kactors, static and skeletal meshes.  It has a lights aspect panel for adjusting the attenuation values for all the lights in the scene.

  • import scale - used to resize the scene to fit inside the truespace 3D work area
  • import lights - include lights
  • import brushes - load the csg brushes for the level
  • flatten brush booleans - import the brushes as a single mesh instead of as a series of boolean operations
  • import staticmesh - imports placeholders for static meshes in the form of cubes
  • import skeletal mesh - imports placeholders
  • import volumes - import special volume brushes
  • import kactors - import placeholders for level kactors
  • externalstaticmeshB - does nothing

Mesh Replacement controls are used to replace the imported placeholders with another mesh.  Static meshes can be exported from the UDK in the FBX format.  So you can take one of the static meshes in a level, zero out it's rotation and location values, set scale to 1 and export an fbx file.  Load this into truespace using the FBX importer found on this page, add a pivot, normalize the pivot's location and then replace all placeholder instances with this mesh.

  • set source - select the new mesh in the scene and push this button
  • set destination - select one of the instances to be replaced and push this button
  • replace mesh - will search the scene for all meshes that have an internal name that matches the destination and replaces the mesh with the new source mesh.

T3D maps have a lot of lights in them.  The Lights aspect of the panel can be used to decrease the brightness of the lights to a reasonable value.

September 05, 2011
Unreal Tournament 3 Import Export for trueSpace7.61

Aug 7, 2011 Update:
version 1.3.3
Fixed psk import bug from version 1.3.2 update
Button highlighting fixed

Nov 11, 2010 Update:
version 1.3.2
Added a button for creating the start of a compatible skeleton
Added a button to remove IK handles and locks for the PSK export

Jan 28, 2010 Update:
version 1.31
Bug that prevented native truespace skeletons from being exported has been fixed.

Jan 5 fixed the link(Thank you, danperk)

Jan 4, 2010 Update:
New version 1.3
Fix PSA export to work with IK handles and locks
The first joint above the root joint (b_Hips) will now automatically export translation animations from IK motions.  Truespace IK on the hips moves the root joint.  The script compiles the animation so the root does not move and acts as an origin for the skeletal animations.

 

Dec 18 2009 Update:
New UDK version was crashing when importing PSK file.  The updated rsx plugin fixes the problem.  Download.

Nov 22, 2009 Update:
New version 1.2 uses the save-as function from the plugin package.
Fix PSA export flipping
Fix PSA import overlapping animation frame zero bug
Works with truespace standalone version

Installs a button to open the importer/exporter in the panel view.  Truespace7.61 plugin and script for importing and exporting Unreal psk psa mesh and animation files.  This plugin has been tested with ut3 and should work with earlier version of unreal.  This script comes in 2 parts.  There is the script itself and a rsx plugin for reading and writing the binary PSK and PSA file formats.  The script installs with the push of a button, the plugin requires manual installation.

Notes:
UDNMale psk sample has import skinning problems, fixed by heal skin with autoskin holes and normalize skin selected.
Truespace standalone version needs a tsx folder.  This can be created from the setup aspect of the script.
Truespace standalone version does not have a status line so you must wait to be sure the plugin script run is completed.
PSA export uses the timeline play range.

More Notes:
When importing PSK or PSA files use the 2 buttons.  "..." and "Load PSK" to load a mesh file  and use "..." and "Load PSA" to load an animation file.
When exporting just use the single buttons "Save PSK" and "Save PSA".
The PSK exporter does not work with IK handles and locks.
The PSA exporter will make a copy of the mesh without IK handles and locks and will bake the animation into the copy before saving it.
The PSK export uses the default pose.
When assigning IK handles for the hips also assign IK handles for the feet.  The feet tend to float around if they don't have handles.  The IK full stop is not enough to stabilize their motion.
Recommend for each handle to set interpolation to IK, posing only unchecked and global locks unchecked.
Truespace IK does not work with translation animation of the hip joint and proper limits must be set to work with other joints reliably.  The PSK importer creates joints with no rotation limits on the joints.  It may be best to set these limits on IK chains though the imported models seem to already be bent to a preferred angle.

When importing animation to UDK/UT3 editor uncheck Anim Rotation Only(bAnimRotationOnly or add the "b_Hips"(assuming the ut3 psk format) joint to the list of translation bones.

Some installation and usage notes can be found at this link.

The plugin package is required to use this script.  Download the plugin package here

January 04, 2010
SynthEyes  Camera Tracking Import  for trueSpace7.61

Installs a button to open the importer in the panel view.  The script is used to load a camera and tracking points from a SynthEyes text files.  The camera's position, rotation and field of view animations are imported.  Click the text above or the image to the left to download the installer.  Click the remaining images to download the image loader and composite render nodes. 

The script installs automatically.

Usage Notes:

  • track an image sequence with SynthEyes and save as text files
    • Export Camera/Object File
    • Export Plain Trackers File
  • Camera/Object Export Settings:
    • Axis Mode = Z Up
    • Rotation Order = XYZ
    • Zoom Channel = Vertical FOV
  • load composite render and image loader nodes into a scene
  • check the "isaSequence" checkbox on the image loader node
  • click "..." on the image loader to select and load the image sequence
  • push "setup keyframes" button to automatically set keyframes for the image sequence
  • connect the image loader bitmap connector output to the composite render bitmap connector input
  • set the composite render xsize and ysize to match the image loader xres and yres
  • select the camera and tracker files individually using the corresponding "..." buttons then click the import buttons
  • the scale sizes the data at import time so it can fit nicely in the workspace
  • select the camera and push the "connect to camera" button on the composite render node.  this will bind the image plane to the camera.
  • adjust the Composite Render distanceIn to move the image plane behind the tracking points
  • open a new 3d view, set it to the camera view and set its size to match the image loader xres and yres or drag the corner till it looks nice.
  • the camera path and tracking points mesh can be scaled interactively by using the link editor to connect their OwnerMatrix to the WldMatrix of a third object.  Uniformly scaling the third object scales it all.

If you close a scene and reload it some of the tracking points will disappear.  You can get them back by opening the tracking points mesh in the link editor, locate the object render attributes node and check the "show hidden lines".  This needs to be checked to see all the points.

The Camera/Object file may export more than just a camera.  I need to investigate that one.

Update:

July 29, 2011 new version 1.1
Fixed/Improved camera animation import.  All animations now on the camera without any extra helper nodes. 

 

July 3, 2011
Voodoo Camera Tracking Import  for trueSpace7.61

Installs a button to open the importer in the panel view.  The script is used to load a camera and tracking points from a Voodoo text file.  The camera's position, rotation and field of view animations are imported.  Click the test above or the image to the left to download the voodoo import installer.  Click the remaining images to download the image loader and composite render nodes.  The Voodoo camera tracker can be downloaded from here.

Usage Notes:

  • track an image sequence with voodoo and save as a text file
  • load composite render and image loader nodes into a scene
  • check the "isaSequence" checkbox on the image loader node
  • click "..." on the image loader to select and load the image sequence
  • push "setup keyframes" button to automatically set keyframes for the image sequence
  • connect the image loader bitmap connector output to the composite render bitmap connector input
  • set the composite render xsize and ysize to match the image loader xres and yres
  • click the voodoo button to open the voodoo panel
  • any tracking point that is further away than maxvalue won't be imported
  • the scale sizes the imported data so it can fit nicely in the workspace
  • click "..." to choose the voodoo text file then press import voodoo text to load it.
    an animated camera and a mesh with only points showing will be created
  • select the camera and push the "connect to camera" button on the composite render node.  this will bind the image plane to the camera.
  • open a new 3d view, set it to the camera view and set its size to match the image loader xres and yres or drag the corner till it looks nice.
  • -
  • if the image does not lineup with the tracking points change the xsize or ysize of the composite render node to make it fit.  the biggest misalignment seems to be caused by non-square image pixels.  the "distanceIn" determines how far the image plane is from the camera.  adjust it so the tracking points are between the camera and the plane.

the system can be rotated to make the mesh match the ground plane by either grouping

  • group the camera by itself(camera group)
  • group the camera group to the tracking points object
  • add a composite render inside the camera group and connect the camera to it
  • set the camera group yaw value for the matrix to 180 degrees using expanded matrix connector
  • now  move and rotate the main group to a good orientation

or by parenting

  • create a long thin cube, don't scale to make the shape (actually any shape will do so long as you can select it and the camera in the 3d view.
  • move it to 0,0,0 with 0 rotations
  • parent the camera to the cube using the parenting script, select the camera then ctrl select the cube and left click the Pu button to parent
  • set the cube Z rotation to 180 degrees
  • parent the cube to the tracking points object
  • move and rotate the tracking point object into position and the camera will follow

More Notes:

If you plan to use the Voodoo tracker for commercial purposes do not use SIFT keypoints.  That feature is the reason for the "not for commercial use" warning in the software.

If you close a scene and reload it some of the tracking points will disappear.  You can get them back by opening the tracking points mesh in the link editor, locate the object render attributes node and check the "show hidden lines".  This needs to be checked to see all the points.

http://www.lfi.uni-hannover.de/digilabforum/viewtopic.php?t=676

truespace voodoo import
Sample image sequence from the Voodoo website.  Image loader shows an image size of 720x576.  The xsize of the composite render node has been tweaked from 720 to 750 to get a good fit with the image sequence.

July 2011 - autoinstaller and fixed button highlighting

 

 

March 22, 2010
September 4, 2009