Channels in SOFTIMAGE|XSI 2.0
Written By Gordon Cameron

Converted by Ed Harriss

To do this tutorial, you will need to download this file:


Here are a couple of things that I thought it'd be worthwhile communicating
if you didn't know this stuff already. First off, I'll be honest and say
that neither solve the problem completely (of Channels and doing captures),
but each on it's own may be useful as they exist now in XSI 2.x :

1) Autokey playback allowing capture when scrubbing on GPIs

2) Connecting a mouse driver (from 3.x :-) to drive stuff in the scene.


First off, already built-in is the ability to do a fresh parameter capture
with a parameter marked. or in the GPI. e.g. get a sphere, set last frame
for capture as long as you want the 'session' then press on Autokey, and
with the property page open, press play and start scrubbing with the mouse
on the sliders. Your changes will be recorded. Note that there is no fancy
curve merging as in 3.x channels (so you should clear the curve before
capturing), but it affords you a rudimentary way of grabbing scrubs.


intuitive, but I thought I'd throw it out there for the adventurous folks...

Using the mouse driver (or other 3.x ones, or midi). As some of you already
know, there is a way of setting up, say, the midi driver in XSI by using the
Channel Manager, which is now exposed under Project->Data in XSI 2.x. There
is also the ability to use any of the Soft 3.x drivers to control
parameters, scrub time, switch cameras etc in XSI albeit jumping through a
few hoops. (as Ral mentioned elsewhere, work is ongoing to formalize the
whole driver process in a forthcoming release).


Anway - here is how to use this stuff in XSI 2.x (as shipping) - it's
unsupported, but might work for you as is....

First off, in both cases you need to have two text files somewhere on your
machine (I've attached samples to this mail).

One file is the drivers.chn file that tells XSI which drivers you will be
using in a session. This needs to contain the info you want at startup XSI
time, as it is not read subsequently. You must set the environment variable
SI_CHN_DRIVERS to the location of this file.

The second file is the map.chn file that dictates what each of the degrees
of freedom in the channel drivers (midi, mouse, etc) actually *DO* when
connected. This can be altered at runtime from within an XSI session. You
should set the environment variable SI_CHN_MAP to point at this file.


In the sample drivers.chn file I've attached, I've said there is ONE driver,
and it is the generic "SOCK" driver (there are two available - midi and
sock). SOCK stands for socket, and what it does is listen to a softimage 3.x
driver that is running in broadcast mode (you can read more on that mode in
the 3.x documentation if you're not familiar - that was actually one of the
first things I worked on at soft). The sample attached says to listen to
'localhost' (the same machine - you can listen to drivers on other machines
on the network also), and listen on port number 2000. We also say we are
interested in listening for 2 degrees of freedom.


In the sample map.chn file, I've simply said, for driver zero, drive the
current object's X & Y position with degree of freedom 0 and 1, scaling the
values by 10 and substracting 5.


Now, how to get this to work. Set the envirovars to point to the files, then
start XSI. Then get, say, a simple object......

To get the broadcasting mouse driver up and running, go to the location
where you have your channel drivers in a command prompt, and type

mouse -SI_RUN -mode BROADCAST 2000

This instructs the mouse driver to braodcast on socket 2000 so listening
sessions can connect.

Now, look for the Channel Manager under Project->Data and open the GPI.
You'll see a few checkboxes - switch Channels to Active, and you'll see the
mouse socket driver appear as the first entry. Toggle it on (and if you look
in your command prompt, you'll see the mouse driver connecting). Now, with
your object selected, Press Connect, and you should now see your sphere move
around and get driven by the mouse driver.

You can disconnect and connect on the fly, edit the maps, drive time and a
bunch of other stuff, but since this is unsupported I'll suggest for now
that if you are interested in knowing more to take a look at the comments at
the head of the files attached for more info.

If you want to attach the midi driver, you do not need to go through the XSI
driver as a native built-in one is supplied and you say "midi" in the
drivers file.

Note that autokey does NOT WORK when you are driving something externally
currently, but this is something that is being looked at.


Anyway - I know that's a bit involved, but you can get your midi board up
and running, and you can get your 3.x drivers driving stuff in XSI with a
little bit of effort (without needing to put XSI into a special mode, so the
'channels' can be always active, unlike in 3.x).

Fear not - a 'proper' version of channels will be coming down the line in a
forthcoming relase, and I'm not trying to pretend that we have something
that is good right now ;-)