TSX plugin developer needed to make XSI exporter.

User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas
Contact:

TSX plugin developer needed to make XSI exporter.

Post by BNG »

How much would you charge to create a version 1 Softimage XSI TSX based exporter plugin for my exclusive use? I would want the source code and the plugin itself to be my property at the end of the contractual agreement. 1. Can it be done? 2. I need a cost estimate of the code and the plugin itself. You can contact me at lppena@hotmail.com. The basic requirements are the plugin be fully compatible with Truespace 6 and must include export support for animation, and 2x2 texture squaring. If interested please let me know with any details that need to be discussed. Thanks, BNG.
chamaeleon
Seaman
Posts: 8
Joined: 10 Jun 2009, 13:44

Re: TSX plugin developer needed to make XSI exporter.

Post by chamaeleon »

$150,000 - $250,000.
User avatar
richlevy
Senior Chief Petty Officer
Posts: 162
Joined: 17 Aug 2009, 20:08

Re: TSX plugin developer needed to make XSI exporter.

Post by richlevy »

Doesn't Ultimate Unwrap3D work with TS formats and XSI format? I never tried to convert those specific formats, but 50.00 is far cheaper than hiring a programmer to do it...

Just a thought.

Rich
My Flickr site, here you can see some of the photography I do:
http://www.flickr.com/photos/rich-l/" onclick="window.open(this.href);return false;
User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by BNG »

chamaeleon wrote:$150,000 - $250,000.
Ouchy! Guess that one's a no brainer. Plan B would be to attempt to compile a TSX myself with maybe FreeBasic or Visual Studio C++. Is there any way to extract model infomation using the Python scripter in TS 6? Thanks for the feedback. BNG.
:bananahi:
User avatar
clintonman
Captain
Posts: 5422
Joined: 21 May 2009, 21:08
Type the number ten into the box: 0
Location: California
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by clintonman »

BNG wrote:
chamaeleon wrote:$150,000 - $250,000.
Ouchy! Guess that one's a no brainer. Plan B would be to attempt to compile a TSX myself with maybe FreeBasic or Visual Studio C++. Is there any way to extract model infomation using the Python scripter in TS 6? Thanks for the feedback. BNG.
:bananahi:
I think you can read face, vertex and uv information of a mesh using Python. I've never done it myself, but all the pieces seem to be in place for it. The first step would be to define exactly what you need beyond the basics. What kind of animation translation, rotation, vertex animation... Is there any information on the XSI version 1 file format available? What kind of material transfer did you have in mind?
Clinton Reese

http://clintons3d.com
User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by BNG »

clintonman wrote:
BNG wrote:
chamaeleon wrote:$150,000 - $250,000.
Ouchy! Guess that one's a no brainer. Plan B would be to attempt to compile a TSX myself with maybe FreeBasic or Visual Studio C++. Is there any way to extract model infomation using the Python scripter in TS 6? Thanks for the feedback. BNG.
:bananahi:
I think you can read face, vertex and uv information of a mesh using Python. I've never done it myself, but all the pieces seem to be in place for it. The first step would be to define exactly what you need beyond the basics. What kind of animation translation, rotation, vertex animation... Is there any information on the XSI version 1 file format available? What kind of material transfer did you have in mind?
I can say for sure that it's a standard ASCII text based format very similar to the DirectX text version. Here's a simple 2 cube model in the old XSI Version 1 format. I would most likely be happy with simple move and rotate animation. Only basic texture support would be required. The format in no longer supported by Softimage's current XSI format. I have access to the basic available Here Perhaps you could browse it to let me know how to extract this information and format it using the Python scriptor or some other means. Thanks.

Code: Select all

xsi 0101txt 0032

SI_CoordinateSystem coord {
  1;
  0;
  1;
  0;
  2;
  5;
  }

Frame NoName_1-0 {
     FrameTransformMatrix {
  1.000000,0.000000,0.000000,0.000000,
  0.000000,1.000000,0.000000,0.000000,
  0.000000,0.000000,1.000000,0.000000,
  0.000000,0.000000,0.000000,1.000000;;
   }
  Frame Cube-1 {
       FrameTransformMatrix {
    1.000000,0.000000,0.000000,0.000000,
    0.000000,1.000000,0.000000,0.000000,
    0.000000,0.000000,1.000000,0.000000,
    0.000000,0.000000,0.000000,1.000000;;
     }
    Mesh CubeMesh {
       8;
      1.000000;-1.000000;1.000000;,
      1.000000;1.000000;1.000000;,
      -1.000000;-1.000000;1.000000;,
      -1.000000;1.000000;1.000000;,
      1.000000;-1.000000;-1.000000;,
      -1.000000;-1.000000;-1.000000;,
      -1.000000;1.000000;-1.000000;,
      1.000000;1.000000;-1.000000;;
      
       12;
      3;1,3,2;,
      3;0,1,2;,
      3;2,5,4;,
      3;0,2,4;,
      3;2,3,6;,
      3;5,2,6;,
      3;1,7,6;,
      3;3,1,6;,
      3;4,5,6;,
      3;7,4,6;,
      3;4,7,1;,
      3;0,4,1;;
      
      MeshMaterialList {
        1;
        12;
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0;
        SI_Material {
          0.776471;0.776471;0.776471;1.000000;;
          44.000004;
          0.100000;0.100000;0.100000;;
          0.000000;0.000000;0.000000;;
          1;
          0.000000;0.000000;0.000000;;
          TextureFilename {
            "Simplexsicubecombo_0.bmp";
          }
        }
      }
      
      SI_MeshNormals {
        6;
        0.000000;0.000000;1.000000;,
        0.000000;-1.000000;0.000000;,
        -1.000000;0.000000;0.000000;,
        0.000000;1.000000;0.000000;,
        0.000000;0.000000;-1.000000;,
        1.000000;0.000000;0.000000;;
        
        12;
        0;3;0,0,0;,
        1;3;0,0,0;,
        2;3;1,1,1;,
        3;3;1,1,1;,
        4;3;2,2,2;,
        5;3;2,2,2;,
        6;3;3,3,3;,
        7;3;3,3,3;,
        8;3;4,4,4;,
        9;3;4,4,4;,
        10;3;5,5,5;,
        11;3;5,5,5;;
      }
      
      SI_MeshTextureCoords {
         6;
        0.000000;-0.345278;,
        1.000000;-0.345278;,
        1.000000;-1.000000;,
        0.000000;-1.000000;,
        1.000000;-2.000000;,
        0.000000;-2.000000;;
        
        12;
        0;3;0,1,2;,
        1;3;3,0,2;,
        2;3;2,4,5;,
        3;3;3,2,5;,
        4;3;3,0,1;,
        5;3;2,3,1;,
        6;3;5,3,2;,
        7;3;4,5,2;,
        8;3;2,3,0;,
        9;3;1,2,0;,
        10;3;3,0,1;,
        11;3;2,3,1;;
      }
     }
  }
  Frame Cube_1-2 {
       FrameTransformMatrix {
    1.000000,0.000000,0.000000,0.000000,
    0.000000,1.000000,0.000000,0.000000,
    0.000000,0.000000,1.000000,0.000000,
    -0.001375,1.526345,0.001375,1.000000;;
     }
    Mesh Cube_1Mesh {
       8;
      0.528389;-0.528389;0.528389;,
      0.528389;0.528389;0.528389;,
      -0.528389;-0.528389;0.528389;,
      -0.528389;0.528389;0.528389;,
      0.528389;-0.528389;-0.528389;,
      -0.528389;-0.528389;-0.528389;,
      -0.528389;0.528389;-0.528389;,
      0.528389;0.528389;-0.528389;;
      
       12;
      3;1,3,2;,
      3;0,1,2;,
      3;2,5,4;,
      3;0,2,4;,
      3;2,3,6;,
      3;5,2,6;,
      3;1,7,6;,
      3;3,1,6;,
      3;4,5,6;,
      3;7,4,6;,
      3;4,7,1;,
      3;0,4,1;;
      
      MeshMaterialList {
        1;
        12;
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0;
        SI_Material {
          0.776471;0.776471;0.776471;1.000000;;
          44.000004;
          0.100000;0.100000;0.100000;;
          0.000000;0.000000;0.000000;;
          1;
          0.000000;0.000000;0.000000;;
          TextureFilename {
            "Simplexsicubecombo_0.bmp";
          }
        }
      }
      
      SI_MeshNormals {
        6;
        0.000000;0.000000;1.000000;,
        0.000000;-1.000000;0.000000;,
        -1.000000;0.000000;0.000000;,
        0.000000;1.000000;0.000000;,
        0.000000;0.000000;-1.000000;,
        1.000000;0.000000;0.000000;;
        
        12;
        0;3;0,0,0;,
        1;3;0,0,0;,
        2;3;1,1,1;,
        3;3;1,1,1;,
        4;3;2,2,2;,
        5;3;2,2,2;,
        6;3;3,3,3;,
        7;3;3,3,3;,
        8;3;4,4,4;,
        9;3;4,4,4;,
        10;3;5,5,5;,
        11;3;5,5,5;;
      }
      
      SI_MeshTextureCoords {
         16;
        0.236493;-1.000000;,
        0.764882;-1.000000;,
        0.764882;-1.345948;,
        0.236493;-1.345948;,
        0.764882;-0.235118;,
        0.764882;-0.763507;,
        0.236493;-0.763507;,
        0.236493;-0.235118;,
        0.235118;-1.345948;,
        0.235118;-1.000000;,
        0.763507;-1.000000;,
        0.763507;-1.345948;,
        0.236493;-0.764882;,
        0.236493;-0.236493;,
        0.764882;-0.236493;,
        0.764882;-0.764882;;
        
        12;
        0;3;0,1,2;,
        1;3;3,0,2;,
        2;3;4,5,6;,
        3;3;7,4,6;,
        4;3;8,9,10;,
        5;3;11,8,10;,
        6;3;12,13,14;,
        7;3;15,12,14;,
        8;3;11,8,9;,
        9;3;10,11,9;,
        10;3;3,0,1;,
        11;3;2,3,1;;
      }
     }
  }
}
User avatar
clintonman
Captain
Posts: 5422
Joined: 21 May 2009, 21:08
Type the number ten into the box: 0
Location: California
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by clintonman »

BNG wrote:
I can say for sure that it's a standard ASCII text based format very similar to the DirectX text version. Here's a simple 2 cube model in the old XSI Version 1 format. I would most likely be happy with simple move and rotate animation. Only basic texture support would be required. The format in no longer supported by Softimage's current XSI format. I have access to the basic available Here Perhaps you could browse it to let me know how to extract this information and format it using the Python scriptor or some other means. Thanks.
You have a lot of work ahead of you. The file format isn't documented anywhere I could find, so it's going to be a reverse engineer job.

Code: Select all

xsi 0101txt 0032
is some kind of header so just copy it into your file

Code: Select all

SI_CoordinateSystem coord {
  1;
  0;
  1;
  0;
  2;
  5;
  }
No idea what this does so just copy this too

Code: Select all

Frame NoName_1-0 {
     FrameTransformMatrix {
  1.000000,0.000000,0.000000,0.000000,
  0.000000,1.000000,0.000000,0.000000,
  0.000000,0.000000,1.000000,0.000000,
  0.000000,0.000000,0.000000,1.000000;;
   }
  Frame Cube-1 {
       FrameTransformMatrix {
    1.000000,0.000000,0.000000,0.000000,
    0.000000,1.000000,0.000000,0.000000,
    0.000000,0.000000,1.000000,0.000000,
    0.000000,0.000000,0.000000,1.000000;;
     }
NoName_1-0 looks like the top item holding the 2 cubes, their parent
Frame Cube-1 is the first cube
The FrameTransformMatrix is where the rotation, location and scale will go in matrix format

Code: Select all

Mesh CubeMesh {
       8;
      1.000000;-1.000000;1.000000;,
      1.000000;1.000000;1.000000;,
      -1.000000;-1.000000;1.000000;,
      -1.000000;1.000000;1.000000;,
      1.000000;-1.000000;-1.000000;,
      -1.000000;-1.000000;-1.000000;,
      -1.000000;1.000000;-1.000000;,
      1.000000;1.000000;-1.000000;;
     
       12;
      3;1,3,2;,
      3;0,1,2;,
      3;2,5,4;,
      3;0,2,4;,
      3;2,3,6;,
      3;5,2,6;,
      3;1,7,6;,
      3;3,1,6;,
      3;4,5,6;,
      3;7,4,6;,
      3;4,7,1;,
      3;0,4,1;;
8=number of vertices, the xyz values of each vertex follow
12=number of triangles, "3;" no idea, but following numbers look like vertex index from the vertices list above it

Code: Select all

MeshMaterialList {
        1;
        12;
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0;
        SI_Material {
          0.776471;0.776471;0.776471;1.000000;;
          44.000004;
          0.100000;0.100000;0.100000;;
          0.000000;0.000000;0.000000;;
          1;
          0.000000;0.000000;0.000000;;
          TextureFilename {
            "Simplexsicubecombo_0.bmp";
          }
        }
1= number of materials
12 = count of triangles using the material
list of 0 shows each face using the first material(only material)
0.776471;0.776471;0.776471;1.000000;; looks like rgba(red,green,blue,alpha) values, other numbers are a mystery

Code: Select all

SI_MeshNormals {
        6;
        0.000000;0.000000;1.000000;,
        0.000000;-1.000000;0.000000;,
        -1.000000;0.000000;0.000000;,
        0.000000;1.000000;0.000000;,
        0.000000;0.000000;-1.000000;,
        1.000000;0.000000;0.000000;;
6 unique vertex normal values

Code: Select all

12;
        0;3;0,0,0;,
        1;3;0,0,0;,
        2;3;1,1,1;,
        3;3;1,1,1;,
        4;3;2,2,2;,
        5;3;2,2,2;,
        6;3;3,3,3;,
        7;3;3,3,3;,
        8;3;4,4,4;,
        9;3;4,4,4;,
        10;3;5,5,5;,
        11;3;5,5,5;;
12 triangles, "3" and a normal index for each vertex of each triangle
11;3;5,5,5 means triangle at index 11, mystery "3", first vertex uses normal index 5, second vertex uses normal index 5,third vertex also uses normal index 5
I didn't see any nornal export via python so you'll have to calculate all your own normals

Code: Select all

SI_MeshTextureCoords {
         6;
        0.000000;-0.345278;,
        1.000000;-0.345278;,
        1.000000;-1.000000;,
        0.000000;-1.000000;,
        1.000000;-2.000000;,
        0.000000;-2.000000;;
       
        12;
        0;3;0,1,2;,
        1;3;3,0,2;,
        2;3;2,4,5;,
        3;3;3,2,5;,
        4;3;3,0,1;,
        5;3;2,3,1;,
        6;3;5,3,2;,
        7;3;4,5,2;,
        8;3;2,3,0;,
        9;3;1,2,0;,
        10;3;3,0,1;,
        11;3;2,3,1;;
      }
     }
This is the uv information for each vertex of each face
6 unique uv values
list of u and v values
12 triangles
list of each triangle vertex pointing into the uv(SI_MeshTextureCoords) list

and then the second cube

Like I said. You have a lot of work ahead of you. You will need to get as many sample XSI files as you can get to reverse engineer the file format.
Clinton Reese

http://clintons3d.com
User avatar
Finis
Captain
Posts: 5256
Joined: 21 May 2009, 18:26
Type the number ten into the box: 0
Location: North Venezuela or West Korea
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by Finis »

I don't know anything about XSI format but here is something I found searching the web. Maybe useful maybe not.
http://www.bz2md.com/fishdotxsi/xsi.htm" onclick="window.open(this.href);return false;
Mice die in traps because they don't know why the cheese is free. -- seen on a bumper sticker
User avatar
clintonman
Captain
Posts: 5422
Joined: 21 May 2009, 21:08
Type the number ten into the box: 0
Location: California
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by clintonman »

Finis wrote:I don't know anything about XSI format but here is something I found searching the web. Maybe useful maybe not.
http://www.bz2md.com/fishdotxsi/xsi.htm" onclick="window.open(this.href);return false;
Good find. It has some version 1 info mixed in with the newer version info. It also shows that the mystery 3's are for the number of vertices in a face. The one sample above had cubes made of triangles so I thought the xsi 1.0 format was only for triangles.
Clinton Reese

http://clintons3d.com
User avatar
BNG
Chief Warrant Officer
Posts: 684
Joined: 16 Oct 2009, 03:26
Type the number ten into the box: 0
Location: Texas
Contact:

Re: TSX plugin developer needed to make XSI exporter.

Post by BNG »

clintonman wrote:
Finis wrote:I don't know anything about XSI format but here is something I found searching the web. Maybe useful maybe not.
http://www.bz2md.com/fishdotxsi/xsi.htm" onclick="window.open(this.href);return false;
Good find. It has some version 1 info mixed in with the newer version info. It also shows that the mystery 3's are for the number of vertices in a face. The one sample above had cubes made of triangles so I thought the xsi 1.0 format was only for triangles.
Wow, that information is quite extensive, but should help me to set things up. I have a python based Blender 2.39 XSI V1 export script written by another programmer that got it mostly working. Unfornunately the poor guy got side tracked before it was completed but it could export/translate most of the model information minus textures or animation.

Question: Can this XSI PY script be adapted/modified for Truespace usage? I know they're different but is it possilbe using the 7.61 SDK information to change the script itself so that Truespace can either read it or perhaps even somehow extract the same model information as the Blender equivelent?
modeling softwares, but know they both share some common
Post Reply