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.



Share this post

Link to post
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.



Share this post

Link to post
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);

Share this post

Link to post
Share on other sites


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...


Share this post

Link to post
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").

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now