Channel Drivers Reference

Channel Drivers


The general categories of channel drivers include: Desktop, Process, Audio, Magnetic, Mechanical, and File.

Desktop Device Drivers

Mouse Driver

The mouse channel driver outputs two degrees of freedom for the mouse x and y screen position. These values are normalized to lie between 0 and 1, where (0,0) is the lower-left corner of the screen, and (1,1) is the upper-right corner of the screen.

To activate the mouse channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box is displayed.

The mouse channel driver is active by default. If you have deactivated the mouse driver and wish to reactivate it, click New and select the driver from the browser.

Degrees of Freedom

Two degrees of freedom.

DOF 0: xpos - normalized mouse x position (0..1)

DOF 1: ypos - normalized mouse y position (0..1)

Note:
The mouse driver cannot be reconfigured, so double-clicking on the mouse entry in the driver list of the Channel Setup dialogue box simply toggles the active state of the mouse driver (rather than displaying a configuration dialogue box).

Tip:
Here's a trick for people doing channel capture with very fast devices like the mouse. You can obtain denser function curves if you set the Overlapping Keys Distance parameter to 0 in the Animation Preferences dialogue box (to open the dialogue box, choose Preferences -> Animation). This ensures that no keys are overlapped, and keeps every bit of incoming data from the channel driver.

Dialbox Driver

Eight channels are written by the dialbox channel driver. There is one dial for each channel.

You must use the SGI System Manager tool to initialize the serial port that is used with the dialbox. To verify that the dialbox is operating correctly, use the SGI Dial and Button Confidence Test.

To activate the dialbox channel driver, choose the Channel -> Channel Run command in the Motion module. The Channel Setup dialogue appears.

To add the dialbox driver to the Driver list, click New and select the driver from the browser.

Eight Degrees of Freedom

DOF 0: dial1

DOF 1: dial2

...

DOF 7: dial8

Note:
The dialbox driver cannot be reconfigured, so double-clicking on the dialbox entry in the driver list of the Channel Setup dialogue box simply toggles the active state of the dialbox driver (rather than displaying a configuration dialogue box).

Spaceball Driver

The spaceball driver outputs 12 degrees of freedom corresponding to the pressures and twists applied to the spaceball. The spaceball buttons and some of the keyboard keys are programmed to restrict the translation and rotation values, but they do not correspond to degrees of freedom and do not send data to SOFTIMAGE 3D.

You must use the SGI System Manager tool to initialize the serial port to be used with the spaceball. To verify that the spaceball is operating correctly, use the SGI Spaceball Confidence Test.

To activate the spaceball channel driver, choose the Channel -> Channel Run command in the Motion module. The Channel Setup dialogue appears.

To add the spaceball driver to the Driver list, click New and select the driver from the browser.

Twelve Degrees of Freedom

DOF 0: x accumulated x translation values

DOF 1: y accumulated y translation values

DOF 2: z accumulated z translation values

DOF 3: rotx accumulated x rotation values

DOF 4: roty accumulated y rotation values

DOF 5: rotz accumulated z rotation values

DOF 6: abs_x absolute x translation value

DOF 7: abs_y absolute y translation value

DOF 8: abs_z absolute z translation value

DOF 9: abs_rotx absolute x rotation value

DOF 10: abs_roty absolute y rotation value

DOF 11: abs_rotz absolute z rotation value

Spaceball Buttons

(Buttons 1 to 7 are toggles)

1: lock/unlock x translation (beeps once/twice)

2: lock/unlock y translation (beeps once/twice)

3: lock/unlock z translation (beeps once/twice)

4: lock/unlock x rotation (beeps once/twice)

5: lock/unlock y rotation (beeps once/twice)

6: lock/unlock z rotation (beeps once/twice)

7: unlock all/lock rotation/lock translation (beeps once/twice/thrice)

8: reset to default values

Keyboard Keys

1 - 8: like the Spaceball buttons above

9, T: reset translation (beeps once)

0, R: reset rotation (beeps once)

Note:
The spaceball driver cannot be reconfigured, so double-clicking on the spaceball entry in the Driver list of the Channel Setup dialogue box simply toggles the active state of the spaceball driver (rather than displaying a configuration dialogue box).

Keyboard Channel Driver

This driver allows you to use the keyboard as a channel device.

To activate the keyboard channel driver, choose the Channel -> Channel Run command in the Motion module. The Channel Setup dialogue box appears.

To add the keyboard driver to the Driver list, click New and select the driver from the browser.

If you double-click on the Keyboard driver name in the Driver scroll box, the Keyboard Channel Driver dialogue box is displayed:

The dialogue box allows you to select the keys that are to be activated and interpreted as degrees of freedom. The output values range between 0.0 and 1.0 inclusively.

The driver has also ramping capabilities that you can control with three floating point values. The Global attack time value is the time, in seconds, in which the degree of freedom passes from 0.0 (base value) to 1.0 (maximum value). When the key is released, the Global delay time specifies how long the degree of freedom retains its value. Then the degree of freedom value is ramped down to 0.0 in the time specified by the Global decay time.

Note:
If during the attack stage you release the key, it retains its current value in the delay stage. The interpolation used in the attack and decay stages is linear.

Tip:
You can activate keys immediately without any ramping (for example, enter 0.0 as the attack, delay and decay values).

Degrees of Freedom

The keys supported range from a to z, 0 to 9, and F1 to F12. The values controlling the ramping effect are global to all keys.

Magellan (Input Driver)

Support as a channel driver for the Logitech Magellan(TM) device. The Magellan should be configured as a spaceball for this driver to work, as described in the Logitech manual.

The magellan driver outputs 12 degrees of freedom corresponding to the pressures and twists applied to the device. The buttons can be connected to various elements in SOFTIMAGE 3Dand output zero when not pressed and a value of one when pressed.

To activate the magellan channel driver, choose the Channel -> Channel Run command in the Motion module. The Channel Setup dialogue box appears.

To add the magellan driver to the Driver list, click New and select the driver from the browser.

Twelve Degrees of Freedom

DOF 0: x accumulated x translation values

DOF 1: y accumulated y translation values

DOF 2: z accumulated z translation values

DOF 3: rotx accumulated x rotation values

DOF 4: roty accumulated y rotation values

DOF 5: rotz accumulated z rotation values

DOF 6: abs_x absolute x translation value

DOF 7: abs_y absolute y translation value

DOF 8: abs_z absolute z translation value

DOF 9: abs_rotx absolute x rotation value

DOF 10: abs_roty absolute y rotation value

DOF 11: abs_rotz absolute z rotation value

Buttons

Process Drivers

Defer (Input/Output) Driver

Accepts a number of degrees of freedom and acts as a buffer before outputting them. You can change the number of degrees of freedom and the buffer size.

To activate the defer channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the defer driver to the Driver list, click New and select the driver from the browser.

Double-click on defer in the Driver list to display the Defer I/O Driver dialogue box.

In this dialogue box, set the number of degrees of freedom and a delay. The delay is not in real-time units - you may have to experiment with the values to get the results that you need.

For example, you could load a mouse driver and connect its DOF to the output driver part of the defer driver (using a through connection). Then, connect the corresponding input DOF from the defer driver to move the object. This sets a lag between the time you move your mouse and the time movement appears on your display.

Eventgen (Input/Output) Driver

This channel driver outputs a stream of user-defined values at specified time intervals. Almost everything within SOFTIMAGE 3D can be controlled to reflect the key values you have specified. You can also have an "input" trigger to start off the sequence, or use a wall clock trigger.

For example, you can connect an eventgen OutValue setting to the scaling of your object, set a sequence of key values and then do a channel run. The object changes size according to the values you have entered and the frequency you have specified. This channel driver is also useful to create events such as an eye blink.

To activate the eventgen driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the eventgen driver to the Driver list, click New and select the driver from the browser.

Double-click on eventgen in the Driver list to display the Eventgen Generator dialogue box.

In this dialogue box, you can specify the key values, the trigger frequency, the randomness of the key values, the initial output, and the sequence length.

Parameters

Additive: adds the last value in the list of key values to subsequent initial output values. This effect is cumulative.

Interpolate Keys: when this option is selected, if the sequence length is not 0, then the eventgen driver uses linear interpolation between key values. However, even when you activate the Interpolation option, there is no interpolation between the value just before the sequence and the first key value. This also applies to the last key value and the value immediately following. To achieve smooth interpolation between your initial output values and the key value sequence, the initial value must be included as part of the sequence (first and last value).

External Trigger: when this option is selected, the degrees of freedom from another driver trigger the sequence. When the value of the other driver is not equal to zero, the sequence is triggered. To trigger yet again, the driver must not return to zero.

Clock Trigger: when this option is selected, the sequence is triggered by the time that has elapsed.

Trigger Frequency: sets the time interval in which the key values you have entered are output.

Fuzziness: sets randomness of the sequence of key values. A higher Fuzziness value indicates a greater degree of randomness.

Initial Output: sets the initial value of whatever you have connected to the driver (for example, the scaling of your object).

Sequence length: spreads the key values that you have specified over a greater time period. This allows you to lengthen or shorten the sequence.

Degrees of Freedom

Klocker (Input Driver)

This real-time driver allows you to use wall clock time in SOFTIMAGE 3D, which is especially useful in a performance environment. This driver has:

To activate the klocker channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the klocker driver to the Driver list, click New and select the driver from the browser.

Double-click on klocker in the Driver list to display the Clock Channel Driver dialogue box.

Degrees of Freedom

Rat (Output Driver)

The rat driver allows you to control the keyframing process externally, by using the arrow keys on the keyboard, the mouse buttons, or the cursor x and y position.

This driver allows you to trigger the start of motion capture remotely. For example, you can use a button beside the motion capture device to emulate keyframe control so that you don't have to leave the capture to go from mouse to keyframe. This driver also provides a stopgap solution possibility and control of the four arrow keys used to move the frame pointer.

To activate the rat driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box is displayed.

To add the rat driver to the Driver scroll list, click New and select the driver from the browser.

Select the options you want to use in the Rat - the Mouse Simulator dialogue box.

Degrees of Freedom

Testinout

This driver is provided as sample source code for individuals that wish to develop their own channel drivers. It has four degrees of freedom: 2 test inputs and 2 test outputs. See the Channel Developer's Guide HTML file on the On-line Documention CD for more information.

Broadcast Drivers/Listen

The listen driver is a special driver that uses an unsupported feature of channels called Broadcast Drivers. In brief, any normal input driver can be instructed to run from the command line, and broadcast its data (set using SetDofValue and/or SetDofTime) to multiple sessions of SOFTIMAGE 3D or the SOFTIMAGE Live viewer at the same time, which are listening in to that driver using the listen channel driver. The broadcast drivers are the same programs as the standard ones - they just run in a different mode at run time.

To use this experimental feature, follow these steps:

1. Type the following on the command line in a shell to enable the feature:

setenv SI_DRIVER_ALLOW_BROADCAST 1
2. Run the input driver you wish to broadcast with:

mouse -SI_RUN -mode BROADCAST <port_number>
where <port_number> is a TCP port that you just pick within the user range (such as 2000). This should be different for each broadcast driver on the same machine. The driver then waits for listen drivers running within SOFTIMAGE 3D or the SOFTIMAGE Live viewer to connect.

3. To connect to this broadcast driver from a session in SOFTIMAGE 3D, load the listen channel driver. Adjust the number of DOF to match that of the broadcast driver (optional), type in the port number and the machine name (it can be on a different machine than the one you are on), then use that driver as you would any normal channel driver. When you start any kind of channel run, the listen driver listens in to the broadcast driver, and you get the broadcast driver's data. Multiple instances of SOFTIMAGE 3D can be listening to the same broadcast driver at the same time.

This is a prototype and unsupported feature. Use it at your own risk. Contact Developer Support for more information or to provide feedback.

It does not matter in which order you start the listen and broadcast drivers. If you start a listen first, and the broadcast driver isn't running, the channel run proceeds as usual, periodically checking to see if the broadcaster has started.

The same features work from the SOFTIMAGE Live viewer.

You can try doing loopback listens/broadcasts between two incidences of SOFTIMAGE 3D.

Since SOFTIMAGE 3D is not running to supply drivers with custom dialogue box data, try to use only those drivers that don't need dialogue boxes as broadcast ones (or add a default setting when no data is forthcoming in your driver).

Audio Drivers

Micro_vol Driver

The micro_vol driver is an input driver which sends a single value to SOFTIMAGE 3D, representing the current volume. Use the SGI Audio Control Panel to set the audio source to either Microphone, Line In, or Digital In. Adjust the input level to alter the range of volume values received from the micro_vol driver.

To activate the Micro_vol channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the Micro_vol driver to the Drivers scroll list, click New and select the driver from the browser.

Double-click on micro_vol in the Driver list to display the Microphone Volume Channel Driver Setup dialogue box.

Audio Filtering Level

In this dialogue box, a Filter parameter specifies the noise filtering level. There are six discrete levels, numbered 1 to 6. Level 1 represents the lowest filtering level, and level 6 represents the highest filtering level.

A low filtering level means that the value received for volume is noisy. At high filtering levels, the data is much smoother, but sound processing is more time-consuming. At levels 5 and 6, you may also notice a decrease in the refresh rate. The default value is 4, which represents a good compromise between speed and filtering.

One Degree of Freedom

DOF 0: volume

Micro_freqs Driver

The micro_freqs driver outputs up to 64 channels, representing the volumes of up to 64 different frequencies.

Use the SGI Audio Control Panel to set the audio source to either Microphone, Line In, or Digital In. Adjust the Input Level to alter the ranges of frequency volumes received from the channel driver

To activate the micro_freqs channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the Micro_freqs driver to the Driver scroll list, click New and select the driver from the browser.

Double-click on micro_freqs in the Driver list to display the Microphone Frequency Channel Driver Setup dialogue box.

Audio Filtering Level

In the Microphone Frequency Channel Driver Setup dialogue box, the Filter parameter specifies the noise filtering level. There are six discrete levels, numbered 1 through 6;. Level 1 represents the lowest filtering level, and level 6 represents the highest.

A low filtering level means that the value received for volume is noisy. At high filtering levels, the data is much smoother, but sound processing is more time-consuming. At levels 5 and 6, you may also notice a decrease in the refresh rate. The default value is 4, which represents a good compromise between speed and filtering.

Frequency Range

The frequency range is affected by both the Input Rate (specified in the SGI Audio Control Panel), and the Filtering Level (specified in micro_freqs.drv). Increasing the Input Rate and/or decreasing the Filtering Level scales down all the frequencies to the low end of the range of 64.

Number of Frequencies

In the configuration dialogue box, the number of markers value may be between 1 and 64. Use a value less than 64 to distribute the entire range of 64 frequencies evenly over the number of degrees of freedom.

Degrees of Freedom

1 to 64

DOF 0: freq1 - volume for frequency 1

DOF 1: freq2 - volume for frequency 2

...

DOF 63: freq64 - volume for frequency 64

soundOut Driver

The soundOut channel driver is an output driver which plays .aiff, .aifc, .next, and .wave (all files that are supported by the sfplay command) sound files depending on the function curve values received from SOFTIMAGE 3D.

This driver has four output channels. For each channel, you may specify two .aiff sound files: one which is triggered to play when the channel goes from positive to negative values (down), and the other plays when the data goes from negative to positive values (up).

To activate the soundOut channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the soundOut driver to the Driver scroll list, click New and select the driver from the browser.

Double-click on soundOut in the Driver list to display the Sample Play Channel Setup configuration dialogue box.

In the dialogue box, specify the sound files you want to be associated with your channels. To use expressions to calibrate the output channels, switch from a positive to a negative value or vice-versa, and a channel's associated sound file starts to play.

Degrees of Freedom

Eight degrees of freedom:

Snd 0 dn

Snd 0 up

Snd 1dn

Snd 1up

Snd 2dn

Snd 2up

Snd 3dn

Snd 3 up

MIDI Driver

MIDI stands for Musical Instrument Digital Interface, a standard that has been defined to allow electronic musical instruments and other devices to exchange information with each other in real-time. It was initially designed for live performance, though it is now used in recording, production, and even as a means of composition.

For example, assume you have a MIDI electronic piano. There are 88 keys on a typical piano keyboard, and each key is assigned a unique midi note value - low numbers for low notes and high numbers for high notes. For example, the middle C note has a MIDI note value of 60. Note values from 0 to 127 are permitted, though most MIDI devices only produce a subset of these possible values.

As well, a key can also have a velocity value which indicates how hard the key is pressed. This number ranges from 0 (off) to 127 (very loud).

When a key is pressed, its note number and velocity are sent to the instruments/computers connected to MIDI. When it is released, a second message is sent to say it was turned off. This allows one MIDI device to control other MIDI devices. There are many types of MIDI messages (note on/off, controller value, program changes, etc.), but the MIDI channel driver deals with on/off messages.

Using the MIDI Channel Driver

The MIDI driver waits for MIDI data, and sends out data on any of 127 different channels, one for each possible MIDI note.

The conversion of MIDI data to channel data works as follows: assume someone pressed middle C (MIDI note number 60) on a keyboard connected to the MIDI channel driver. At the moment the key is pressed, the channel named midi.C4_ _60 starts ramping up in value from 0.0 to 1.0. The time this takes is called the Attack Time. Once it reaches 1.0 in value, it holds there until the note is released. The delay until the key is released is called the Delay Time. The channel starts ramping from 1.0 back down to 0.0; the time this takes is called the Decay Time.

Attack Time, Delay Time, and Decay Time can be specified globally for all the MIDI notes. The values used to specify them are in seconds.

If velocity sensitivity is turned on, the maximum value that the channel ramps up to is proportional to the velocity at which the key was pressed. If the key is pressed very hard, it ramps up to 1.0. If it is pressed at half-force, it ramps up to 0.5.

As long as the key that a channel is monitoring is not pressed, the channel continues to output a value of 0.0.

Procedure

1. To use the MIDI driver, you must first obtain a MIDI device
(for example, a keyboard, drum set, or other instrument), and an
SGI-compatible MIDI interface, such as the Opcode MIDI Translator II.

2. Connect a MIDI cable from the MIDI-Out port of the MIDI device to the MIDI-In port of the MIDI interface. Connect a serial cable from the serial port of the MIDI interface to serial port 2 of your SGI computer. Turn everything on, then type in the following in a shell:

startmidi -d /dev/ttyd2

This starts the SGI MIDI daemon to monitor any MIDI data coming from the MIDI device.

Note:
You can use other serial ports, but it is not recommended to use serial port number 1 because SGI has noted that MIDI may sometimes hang on that port. If you want to use another port, such as port 3, just type /dev/ttyd3 in place of /dev/ttyd2 in the previous command.

3. In SOFTIMAGE 3D, activate the MIDI channel driver: choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the MIDI driver to the Driver list, click New and select the driver from the browser.

4. In the Driver list, double-click on the midi channel driver name. The MIDI Channel Driver dialogue box appears:

5. Select the MIDI channels which are to be active. You can also choose whether the driver is velocity-sensitive, non-velocity-sensitive, or a combination of the two.

6. Once the driver is set up, the MIDI channels can be connected to your models in the same way you use other channels. When capturing from a MIDI drum set, keyboard, or sequencer, you may want to get velocity values on some notes, and ignore them on others. For example, a note might cause a character to jump a certain height depending on the velocity, but change their expression in the same way no matter how hard the drum is hit.

Note:
Channels that are not velocity-sensitive are identified by the note name and number (for example, midi.C4_ _60), while velocity-sensitive channels are identified by the note name and number and the word "velocity" (for example, midi.C4_ _60_velocity).

7. When you need to use the serial port for something else, quit SOFTIMAGE 3D, and type the following in a shell:

stopmidi

This frees up the serial port.

Magnetic Device Drivers

Polhemus Driver

The Polhemus Fastrak is an electromagnetic tracking device. Each Fastrak unit consists of a transmitter and up to four receivers which output position and orientation data. Each unit is capable of operating at any of four discrete carrier frequencies. You may use up to four units simultaneously, as long as they are on different frequencies.

The Polhemus driver, with its accompanying polhemus.cus file, can be configured for up to four Polhemus units. In other words, you can have up to 16 receivers, where each receiver sends data for six degrees of freedom - three for position in x, y, and z, and three for rotation in x, y, and z.

The following paragraphs describe how to configure Polhemus units operating on one or more RS232 ports. Please refer to the Polhemus documentation for more information on setting up the device.

To activate the Polhemus channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the Polhemus driver to the Driver list, click New and select the driver from the browser.

Polhemus Configuration

Double-click on Polhemus in the Channel Driver list in the Channel Setup dialogue box to display the Polhemus Channel Driver Setup dialogue box.

Degrees of Freedom

DOF 0: 1_x - X position (inches) for receiver 1

DOF 1: 1_y - Y position (inches) for receiver 1

DOF 2: 1_z - Z position (inches) for receiver 1

DOF 3: 1_xrot - X rotation (degrees) for receiver 1

DOF 4: 1_yrot - Y rotation (degrees) for receiver 1

DOF 5: 1_zrot - Z rotation (degrees) for receiver 1

DOF 6: 2_x - X position (inches) for receiver 2

DOF 7: 2_y - Y position (inches) for receiver 2

...

Receivers

Set the number of receivers using the slider in the Polhemus configuration dialogue box.

Each operating receiver sends six degrees of freedom (position and rotation) to SOFTIMAGE 3D.

For each receiver you are using, set the appropriate dip switch on the Polhemus unit. To maximize performance, turn off all unused receivers.

Ports and Baud Rate

Ensure that the RS232 ports are properly specified.

In the previous example, two Polhemus units are in use. They are connected to /dev/ttyd1 and /dev/ttyd2.

In this case, BAUD_RATE 38400 is being used. The dip switches on the Polhemus units must be set to 9600 Baud. If you want to run at a faster baud rate (such as 38400), make the change in the Polhemus dialogue box only.

Polling Mode

Polling mode indicates the way in which information is sent from the Polhemus system to SOFTIMAGE 3D. In Normal polling, the Polhemus driver sends a request to the Polhemus system to obtain the position of animation.

In Stream polling mode, the Polhemus device sends the data continuously to the driver. Since there is more information sent in this mode, the lag time (the delay between the time the sensor is moved and the time it is refreshed on screen) is greater than in Normal polling mode. Nevertheless, when capturing in Stream mode at full speed (38400 baud rate), you can achieve a maximum capture rate of 30Hz, as compared to a 15Hz maximum capture rate in normal polling mode.

Frequency Synchronization

If you are using more than one Polhemus unit, their frequencies must be synchronized by linking the units together with a synchronization cable.

The unit connected to PORT 1 is free-running. It is known as the master unit. The other units are "slaved" to the master's frequency by daisy-chaining them together. Using the synchronization cables, connect the master's sync out to the next unit's sync in, and that unit's sync out to the next unit's sync in. Continue these steps until all the units are connected.

Powering Up the System

If you have made changes to the dip switches, you must turn the power off and on again. If this is not done, your changes are not registered and the results are unpredictable.

Note:
Wait a few seconds after powering up before running the Polhemus driver.

Ascension Driver

The Ascension Flock of Birds® (FOB) is an electromagnetic tracking device which tracks the positions of up to 13 receivers with an Extended Range Transmitter (ERT). The ERT has an operating range of eight feet (compared to the three-foot range of a regular transmitter).

In Ascension terminology, each bird in a flock corresponds to a receiver or an ERT. They are interconnected via a Fast Bird Bus (FBB). Each flock typically has one transmitter and one or more receivers.

The FOB hardware operates either with all the birds connected together from a single RS232 port, or with each bird attached to its own RS232 port. However, the Ascension driver supports only the first configuration. The Ascension driver also assumes that only one transmitter is being used (it may be either an ERT or a regular transmitter). The transmitter must be at address 1 on the FBB and it must also be the bus master.

The following section shows you how to configure the Ascension channel driver. Please refer to the Ascension documentation for more detailed information on setting up the device.

To activate the Ascension driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the Ascension driver to the Driver list, click the New button and select the driver from the browser.

Double-click on Ascension in the Driver list to display the Ascension Channel Driver Setup dialogue box.

Degrees of Freedom

DOF 0: 1_x - X position (inches) for receiver 1

DOF 1: 1_y - Y position (inches) for receiver 1

DOF 2: 1_z - Z position (inches) for receiver 1

DOF 3: 1_xrot - X rotation (degrees) for receiver 1

DOF 4: 1_yrot - Y rotation (degrees) for receiver 1

DOF 5: 1_zrot - Z rotation (degrees) for receiver 1

DOF 6: 2_x - X position (inches) for receiver 2

DOF 7: 2_y - Y position (inches) for receiver 2

...

In this case, BAUD_RATE 38400 is being used.

Ports and Baud Rate

Ensure that the RS232 ports are properly specified.

The baud rate for each bird must be set by using dip switches 1, 2, and 3. The baud rate set in this dialogue box must match the dip switch baud rate.

Flock Setup

The number of receivers in a flock is specified by the number of receivers entry in the menu. If you are using an Extended Range Transmitter (ERT), make sure you select the Extended Range Transmitter option in the Ascension configuration dialogue box.

Set up the flock so that the transmitter is at address 1 on the FBB. Set up the transmitter so it becomes the bus master by connecting the RS232 cable to the bird with the transmitter. Connect the remainder of the flock as a chain on the FBB. Set the bird addresses using dip switches 4, 5, 6, and 7. These addresses must be unique and run from 1 to the number of receivers + 1.

Ultratrak Driver

The Polhemus Ultratrak is a magnetic tracking system. Like its predecessors, the Polhemus Fastrak and Isotrak, it uses a electromagnetic transmitter (or source) and a number of sensors (receivers). It provides position and orientation of each sensor relative to the transmitter. Unlike the earlier systems, which send relatively small quantities of data to the user's host computer via a serial (RS-232C) interface, the Ultratrak system has its own dedicated host computer, which communicates with other machines on a local-area network via an Ethernet connection. Because of this fundamental difference in the communication scheme, there is a different driver for the Ultratrak than for the other Polhemus systems. This channel driver is named ultratrak.

The ultratrak driver works well when synchronized with SOFTIMAGE 3D. You should also be able to get good performance by setting the driver to free-running mode. It is not recommended that you run this driver as a frequency driver.

Hardware Connection and Configuration

Connecting an Ultratrak for use in SOFTIMAGE 3D with the ultratrak channel driver is quite straightforward. The Ultratrak system must first be connected and configured. See the Polhemus documentation for more information. Using the host computer software (running on the PC), the system can be tested in a standalone fashion, to confirm that it is functioning properly. The Ultratrak host computer must then be connected to the local area network via Ethernet.

The ultratrak driver requires an entry in the network service name database (in the file /etc/services on UNIX® workstations). The entry should be named ultratrak and should use the UDP protocol. An example of the entry you might add to the /etc/services file would be:

ultratrak5555/udp #ultratrak broadcast port
After setting this service up (as root), you must restart the network server - either by rebooting the machine or by executing:

/etc/killall -HUP inetd
The Ultratrak software (running on the host PC) must also be configured properly with the IP address of the remote (SGI) computer, and the same port as was entered in the network service name database must be specified as the remote port number.

Parameters

The Ultratrak Channel Driver Setup dialogue box allows you to toggle the state of the driver to either active or inactive.

It also allows you to select of the number of sensors to be used with the device. This number depends on your setup, and should be set to correspond to the number of magnetic sensors actually plugged into the control unit.

Degrees of Freedom

Like the driver for the Polhemus Fastrak, this driver offers six degrees of freedom per sensor. These DOF represent the x, y, z positions and the x, y, z rotation angles of each sensor relative to the transmitter. A typical setup with 16 sensors would result in 96 DOF. The default number of sensors is 8.

The names of the degrees of freedom are (where N represents the number of sensors):

Mechanical Device Drivers

AllEffects Drivers and Custom Effect

All Effects is a company specializing in special effects for movies. One of their creations is an animation device called Waldo. The system consists of two hand controllers composed of levers for each finger and some global articulations for hand rotations and positioning. These are used to puppeteer the facial animation on the animatronic heads that actors wear. The facial expressions are animated in real-time by animators using the Waldo input device, sending the servo motor information over radio waves. The data is then received and used to control the servo-motors which create the facial expressions on the heads.

The alleffectsCapt driver can be used as a powerful way of generating facial expressions for virtual characters in SOFTIMAGE 3D. There is also an output driver called alleffectsCntl which outputs data to drive the head servo-motors.

All Effects System Overview

The All Effects hardware is organized as follows:

Proprietary All Effects software on the laptop computer is used for defining expressions and character behaviour and for calibrating the hand controllers. A single axis input may be defined as a transition between complex servo configurations, for example to transition from a smile to a frown. All Effects calls this kind of mapping an expression.

Do not confuse the All Effects facial expressions with SOFTIMAGE 3D channel expressions. They are completely unrelated.

The round puck on the control panel is used with the laptop software for creating a facial expression. The expression may then be associated with any of the Waldo levers.

A character is defined as a set of facial expressions. Once a character has been created, the expression set is then downloaded to the main computer and used to map the Waldo data into servo data. During a real-time facial animation session, no data exchange is made between the lap-top and the main computer. The laptop is only used for creating the expressions, and to download the expression data when the system is first initialized.

The animation is captured through the left and right hand Waldo devices. These devices can generate up to 32 degrees of freedom, but only 16 are currently used. Starting and stopping is controlled via the laptop (enable/disable transmission). Of the eight switches above the round puck, the leftmost switch disables the output of servo data, even if the laptop is in enable transmission mode. None of the other switches are used.

Cable Specifications

To use the All Effects channel drivers, the SGI is connected to the All Effects system as follows:

alleffectsCapt Channel Driver

To activate the alleffectsCapt channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the alleffectsCapt driver to the Driver scroll box, click New and select the driver from the browser.

If you double-click on alleffectsCapt in the Driver list, the Waldo Capture Channel Driver Setup dialogue box appears.

This dialogue box allows you to toggle the activation state of any of the facial parameters.

Degrees of Freedom

The alleffectsCapt channel driver reads the data emitted by the All Effects system. For each data record it receives, it passes the following degrees of freedom to SOFTIMAGE 3D. The range of values for the degrees of freedom is from 0.0 to 1.0. The driver can receive 16 degrees of freedom.

Please refer to All Effects Operating Procedure for detailed instructions on how to use this driver with the hardware.

alleffectsCntl Channel Drivers

The alleffectsCntl channel drivers allows you to output animation information to a device that can usually be controlled directly by a Waldo unit. For example, you can do a sequence I/O run with capture OFF and control ON, and directly control a head from the function curves already captured in SOFTIMAGE 3D.

You can also use the alleffectsCapt and alleffectsCntl drivers simultaneously.

To activate the alleffectsCntl channel driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the alleffectsCntl driver to the Driver list, click New and select the driver from the browser.

If you double-click on alleffectsCntl in the Driver list, the Waldo Control Channel Driver Setup dialogue box appears.

This dialogue box allows you to toggle the activation state of any of the facial parameters. Connect your function curves to the facial parameters and calibrate the values (the channel driver uses values between 0 and 1).

When some of the facial animation parameters are turned off, the driver sends REST position values to the corresponding servo motors. When the driver starts, it sends a first packet to the device (the head) to tell it to activate itself in a rest position.

Degrees of Freedom

The range of values for the degrees of freedom is from 0.0 to 1.0. The driver can send 16 degrees of freedom.

Please refer to All Effects Operating Procedure for detailed instructions on how to use this driver with the hardware.

alleffectsInit Custom Effect

The alleffects custom effect is designed for use in conjunction with the alleffects Waldo device. Channel -> alleffectsInit initializes the alleffects servomotors for receiving data from the alleffectsCntl channel driver. This must be run before running alleffectsCntl, but is not required for running alleffectsCapt driver.

The Channel -> alleffectsInit custom effect can be used to initialize the offset values for the servo motors in the device controlled by the Waldo. It is imperative that it be used when doing motion control; otherwise, the servo motor limits are incorrect and unpredictable results are produced.

When you choose the Channel -> alleffectsInit custom effect, the Waldo Initialisation Tool dialogue box appears:

Make sure your source and destination serial ports are properly configured (source is the Waldo unit, destination is the device). Also, be sure that the laptop on the Waldo is not in transmission enable mode. Click Ok, change the battery on the laptop, and then wait a few seconds. To see the result of the operation, click Status in SOFTIMAGE 3D.

Refer to the All Effects Operating Procedure (next section) for detailed instructions on how to use this driver with the hardware.

All Effects Operating Procedure

Before starting SOFTIMAGE 3D, ensure that the path specified by the SI_CUSTOM_MOTION environment variable contains:

alleffectsInit
alleffectsInit.cus 
and the path specified by SI_CHNLDRIVER contains:

alleffectsCapt
alleffectsCapt.cus
alleffectsCntl
alleffectsCntl.cus
To activate the All Effects hardware for using both alleffectsCapt and alleffectsCntl, follow these steps. Make sure that all the hardware is properly set up and that you have a SOFTIMAGE 3D scene connected to the All Effects channel driver(s):

1. Inside the Waldo hand controller unit there are two switches on the left side. Turn on the one farthest from the door.

2. Turn on the laptop computer. The system boots and automatically enters the Windows 3.1 environment and starts the Animatronic System 1.01 software.

3. (Skip this step if you are not using alleffectsCntl.)
In SOFTIMAGE 3D, choose the Channel -> alleffectsInit command. Specify the source and destination serial ports (source being the port receiving data from the All Effects main computer and the destination being the port sending data out to the RF transmitter). Specify a timeout delay in seconds. If you do not perform the following download steps within the time out delay you have set, the custom effect times out. Click Ok on alleffectsInit.

4. On the laptop, choose the File -> Download command, click Input Channels, click Servo Channels, click Channel Data, and click Download.

5. (Skip this step if you are not using alleffectsCntl.)
In SOFTIMAGE 3D, alleffectsInit should finish processing after a few seconds. Check to see if any errors occurred during the initialization by clicking on Status. If no problem occurred, you should see the following message:

Waldo system successfully initialized.
6. On the laptop, click Ok to close the Download system data window. Now that the character setup is chosen, the download is done, and the device is initialized, you're ready to start controlling. Make sure the hardware switch is on (the left switch on the Waldo controllers, under the round puck).

7. In SOFTIMAGE 3D, choose the Channel -> Channel Run command and choose the Frame I/O or Sequence I/O command. Everything should now come alive.

If you are using alleffectsCntl, then the alleffectsInit command must be used each time you either power up the device (such as the head), or open a new character on the laptop. In each case, do the following:

1. Make sure transmission is turned off on the laptop.

2. Choose the Channel -> alleffectsInit command. Specify the source and destination serial ports, and click Ok. Specify a time out delay in seconds. If you do not perform the next step (the battery change step) within the time out delay, the custom effect times out.

3. On the laptop, click BTRY CHG or press Alt-B to start the battery change process.

4. After a few seconds alleffectsInit should finish processing. Click Status and make sure the message indicates a successful operation.

To open a new character on the laptop:

1. If transmission is enabled, turn it off (click Enable S or press Alt-E).

2. If a character is already present, close it by double-clicking on the window close box (top-left, under the File menu).

3. Choose the Character -> Open command and choose the setup in the list.

4. Click Download or press Alt-D to update the expression mapping data in the main computer.

Initialize the head with the alleffectsInit custom effect. For more information on using the alleffectsInit custom effect, refer to alleffectsInit Custom Effect.

Note:
Make sure the head is powered up before initializing it.

Hybrid Vision Driver

This driver is used with INA's Hybrid Vision motion capture camera system. It communicates with INA's "collector" software program through shared memory, and transmits all the required camera parameters as degrees of freedom to SOFTIMAGE 3D. This channel driver is used with the SOFTIMAGE Live viewer for the Virtual Theatre application (see the Animating User's Guide).

Degree of Freedom

These parameters should be connected directly to the corresponding SOFTIMAGE camera parameters. See the Animating User's Guide for more information.

Monkey Driver

The "monkey" is a human model armature standing about 1.5 feet high. It has articulated joints, each of which sends rotational data to SOFTIMAGE 3D via an RS232 interface.

To activate the monkey driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the monkey driver to the Driver list, click New and select the driver from the browser.

Double-click on monkey in the Driver list to display the Monkey Channel Setup dialogue box.

In this dialogue box, set the baud rate for data output to the device.

Ports and Baud Rate

Ensure that the RS232 ports are properly specified. In the previous example, the monkey is connected to /dev/ttyd2.

In this case, BAUD_RATE 38400 is being used. If you want to run at a slower baud rate (such as 19200), select one of the other baud rate options.

Degrees of Freedom

The joint degrees of freedom are:
neck_xneck_yneck_zspine_x
spine_yspine_zl_clavicle_yr_clavicle_y
l_shoulder_xr_shoulder_xl_shoulder_yr_shoulder_y
l_shoulder_zr_shoulder_zl_elbow_xr_elbow_x
l_wrist_yr_wrist_yl_wrist_zr_wrist_z
l_hip_xr_hip_xl_hip_yr_hip_y
l_hip_zr_hip_zl_knee_xr_knee_x
l_ankle_xr_ankle_xl_ankle_yr_ankle_y
base_xbase_ybase_z 

File Drivers

Some of the file drivers correspond to data file formats for optical motion capture systems such as Superfluo, motionAnalysis, and Biovision. The rawfcurve and kissdvr drivers are exceptions.

Superfluo Driver

The Superfluo file driver reads a Superfluo data file and transmits the animation data to SOFTIMAGE 3D.

Note:
For most purposes, it may be more convenient to use the Channels -> Get Animation File -> Superfluo_Animation custom effect. The Superfluo_Animation custom effect reads a Superfluo file and loads an animated set of nulls into your scene.

To activate the Superfluo driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the Superfluo driver to the Driver list, click New and select the driver from the browser.

Double-click on superfluo in the Driver list to display the Superfluo Channel Driver Setup configuration dialogue box.

The path and name of the Superfluo data file are specified in the Superfluo Channel Driver Setup.

Degrees of Freedom

DOF 0: 1_x - x position of marker 1

DOF 1: 1_y - y position of marker 1

DOF 2: 1_z - z position of marker 1

DOF 3: 2_x - x position of marker 2

DOF 4: 2_y - y position of marker 2

DOF 5: 2_z - z position of marker 2

Superfluo Markers

In the configuration dialogue box, be sure to specify enough degrees of freedom to suit your needs. By default, the driver is configured for 32 superfluo markers, which provide 96 degrees of freedom:

DOF_NUM 96

DOF_NAME 0 1_x

DOF_NAME 1 1_y

DOF_NAME 2 1_z

DOF_NAME 3 2_x

DOF_NAME 4 2_y

DOF_NAME 5 2_z

...

To read a Superfluo data file for more than 32 markers, adjust the number of markers you need.

The Superfluo data file must be formatted as shown in this example:

frames = 800 markers = 26 Hz = 50

x y z

x y z

The first line states the number of frames, the number of markers, and the frame rate (in Hz). All other lines specify the xyz position of each marker, at a given time.

Rawfcurve Driver

The rawfcurve channel driver reads a SOFTIMAGE 3D raw function curve data file and transmits the animation data to SOFTIMAGE 3D.

To activate the rawfcurve file driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the rawfcurve file driver to the Driver list, click New and select the driver.

Double-click on rawfcurve in the Driver list to display the rawfcurve Channel Driver Setup configuration dialogue box.

The path and name of the rawfcurve data file are specified in the configuration dialogue box.

Degrees of Freedom

DOF 0: data - rawfcurve data

Kissdrv Driver

Kiss is a lip-sync program that lets you synchronize mouth movements to a speech soundtrack and accompanying text. It is a standalone tool produced by Neurone Cartoon with its own graphical interface. The mouth animations may be imported into SOFTIMAGE 3D using the kissdrv channel driver which reads Kiss-generated data files.

The Kiss System and Its Output Format

There are three basic mouth shapes: closed, A, and U. All the mouth positions are described as weighted interpolations of these shapes. The mouth interpolations are computed from the phonemes extracted from the text, and the soundtrack is used for synchronization. The text and soundtrack may contain speech for several named characters (actors in Kiss terminology) so that it is easy to lip-sync multiple characters engaged in conversation. When saving the final animation, the user specifies a file name for each actor in the dialogue box.

By default, the file name is the same as the actor name. Three raw function curve files are created for each actor. They are named actorC.fraw, actorA.fraw, and actorU.fraw and contain the weighted function curves for each of the basic mouth positions.

Using the channels utility in SOFTIMAGE 3D, this animation data can be retrieved and applied to a SOFTIMAGE 3D model.

Procedure

1. Create a model. Typically, Kiss-generated animation is applied to a model representing a face or mouth. To do this, first create a model with three shapes corresponding to the closed, A, and U mouth positions. Set the shape interpolation mode to weighted, using the Shape -> Shape Interp -> Weight Interp command.

2. Setup the channels. To activate the kiss driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the kiss file driver to the Driver scroll list, click New and select the driver.

3. Double-click on kissdrv in the Driver list to display the Kiss Channel Driver Setup configuration dialogue box.

Specify the paths and names of the Kiss data files for each actor in the configuration dialogue box.

4. Set the Channel Connection Setup. Select a model with the appropriate mouth shapes and open the Channel Selection Setup dialogue box. At the bottom of the models Function Curve list, there are three weighted shape fcurves probably named wshp_0, wshp_1, wshp_2. (You must know which function curve corresponds to the closed, A, and U shapes). In the Channel list, the Kiss actor channels are listed by name. You now only have to connect the weighted shape fcurves to the corresponding channels.

5. Initiate a Channel Frame/Sequence. Performing a Frame or Sequence input reads all the raw function curve files in parallel, and applies the Kiss animation to your models.

Degrees of Freedom

There are three degrees of freedom for each actor. Assuming you have an actor named "fred," these degrees of freedom would be named as follows:

DOF 0: fred_A - animation for fred's A mouth shape

DOF 1: fred_U - animation for fred's U mouth shape

DOF 2: fred_C - animation for fred's closed mouth shape

MotionAnalysis Driver

Motion Analysis is a company that uses optical technology to capture motion data. They have a proprietary file format for motion capture data with the suffix of .trc -- the motionAnalysis driver reads these files.

Note:
For most purposes, it may be more convenient to use the Channels -> Get Animation File -> MotionAnalysis_Animation custom effect. The MotionAnalysis_Animation custom effect reads a Superfluo file and loads an animated set of nulls into your scene.

To activate the motionAnalysis driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears:

To add the motionAnalysis driver to the Driver list, click New and select the driver.

Double-click on motionAnalysis in the Driver list to display the motionAnalysis Channel Setup configuration dialogue box.

If you specify more markers here than the file contains, a warning message appears and the capture will use all markers in the file. Markers are simply the reflectors attached to the subject from which the motion data information is being captured.

Biovision Driver

The biovision file driver reads a Biovision data file and transmits the animation data to SOFTIMAGE 3D.

Note:
For most purposes, it may be more convenient to use the Channels -> Get Animation File -> Biovision_Animation custom effect. The Biovision_Animation custom effect reads a Superfluo file and loads an animated set of nulls into your scene.

To activate the biovision driver, choose the Channel -> Channel Setup command in the Motion module. The Channel Setup dialogue box appears.

To add the biovision driver to the Driver list, click New and select the driver.

Double-click on biovision in the Driver list to display the Biovision Channel Driver Setup configuration dialogue box.

In the dialogue box, you specify the name of the biovision file from which you want to capture data.

After selecting the file, the biovision driver loads an animated set of nulls under a single parent. You can then constrain these nulls to an existing model. For more information on using constraints with channel-captured data, refer to the Animating User's Guide.


SOFTIMAGE 3D Reference - 19 APR 1996