Jump to content

Softimage Xsi Camera Data To Houdini


Recommended Posts

I am about to work with a Student getting his SoftImage Xsi camera information into Houdini.

Xsi Cam to Houdini I guess.

Has anyone got any pointers that might save us a lot of work sorting this out on our own.

Its seem pretty much a given that will read the data into Chops, that will be easy.

I am just wondering about the best way to export it from SoftImage and then is there any differences we will need to be aware of in terms of SoftImage's apeture settings and that sort of thing.

If anyone has been through this, your advice would really be appreicated.



Link to comment
Share on other sites

Hi Ray,

You can try this link:


These are couple of scripts to exchanchge camera information between 3dsMax and other software - as far as I remember it was Maya and XSI...

I think it is good for start, to see how XSI deals with parsing parameters to a txt file.

Than, as you mentioned I would load this data through CHOPS - it's pretty simple. :)

It was the way I exchange camera info between MAX and Houdini.



Link to comment
Share on other sites

as always, best place you can start is wiki:


plus plenty of answers for your question at:

Houdini/XSI Forum page

what a surprise! ;)





I rewrote this script>


in Jscript for exporting animation from xsi.

var mySelObj= getValue ("selectionList");
Camera = mySelObj;

// Start Frame
Start = getValue("PlayControl.In");
// End Frame
End = getValue("PlayControl.Out");

//                       FUNCTION

function Export_HoudiniCam(Camera, iFile, Start, End) {
       XSI = Application;
	//abro el file para escritura
	var fso;
	fso = new ActiveXObject("Scripting.FileSystemObject");
	file = fso.CreateTextFile(iFile);
       for (var i=Start;i<=End;i++) {
               XSI.SetValue("PlayControl.Current", i, "")
  //Get Positions at current time
               Posz = XSI.GetValue( "Scene_Root." + Camera + ".kine.global.pos.posz", i);
               Posx = XSI.GetValue( "Scene_Root." + Camera + ".kine.global.pos.posx", i);
               Posy = XSI.GetValue( "Scene_Root." + Camera + ".kine.global.pos.posy", i);

  //Get Rotations at current time
               Roty = XSI.GetValue( "Scene_Root." + Camera + ".kine.global.roty", i);
               Rotx = XSI.GetValue( "Scene_Root." + Camera + ".kine.global.rotx", i);
               Rotz = XSI.GetValue( "Scene_Root." + Camera + ".kine.global.rotz", i);
              //Gather all the Positions and format for writing
               Pos = Posx+"\t"+Posy+"\t"+Posz+"\t";
  //Gather all the Rotations and format for writing
               Rot = Rotx+"\t"+Roty+"\t"+Rotz+"\t";
  // Information to write
               Info = Pos + Rot;
               // Write Info to file and enter a new line
               file.writeLine (Info + "\n");

  logmessage ("Done. Data was exported to: "+iFile);

       return 1;

//                       FUNCTION CALLER

//obtengo el file donde grabar la data
var oUIToolkit = new ActiveXObject("XSI.UIToolKit"); 
var oFileBrowser = oUIToolkit.FileBrowser; 
oFileBrowser.DialogTitle = "Select a file"; 
oFileBrowser.InitialDirectory = "\\"; 
oFileBrowser.Filter = "Houdini Channel File(*.chan)|*.chan||"; 
//oFileBrowser.Filter = "*.chan"; 
var myFile=oFileBrowser.FilePathName;
Export_HoudiniCam(Camera, myFile, Start, End);

Link to comment
Share on other sites

  • 7 years later...


I have a noob question - I'm trying to get my animated (plotted) camera from Softimage to Houdini, but FBX and Alembic don't work - the camera gets imported facing in the wrong direction.

So I tried this approach and I have the *.chan file with my camera data from Softimage (big thanks for the script, gaucho) and I created the CHOP network and inside I loaded the camera data with the file op.

Now what? :)

How do I apply this data to the camera?

I know this is a simple one, but I didn't find the info anywhere...


Link to comment
Share on other sites

There's a couple ways to do that. You can use an export chop to override parameters on a camera object. Or put expressions in the parameters of the camera object you want to use.

Usually I use expressions, in this case you'd probably want to use the "chop()" expression. So in for example the tx parameter of your camera you could put: chop("/ch/ch1/node_name_to_pull_info_from/channel_name_to_reference").

Link to comment
Share on other sites

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...