Channel Drivers Reference

Channel Drivers Reference


Channels are links between SOFTIMAGE 3D and real-time processes which are usually external devices. Channels are especially useful for:

Stop-frame animation and capturing the digital signals from real-time animation from live action, voices, music, or other digital signals.

Capturing and closely reproducing the natural motions of people and live-action models.

Linking SOFTIMAGE 3D to other animation files and function curves.

Controlling external devices, such as an electronic puppet, using the animation data output from SOFTIMAGE 3D.

Loading pre-recorded motion files (with different formats).

A channel driver is a program which imports or exports the stream of data between the device and SOFTIMAGE 3D. Some channel drivers can also import animation data from other animation files that are saved on your hard disk.

A channel driver may be an input driver, that has only input channels, an output driver that has only output channels, or an input/output driver with both types of channels.

Each channel driver gives you a set of named channels, which usually represent the degrees of freedom of the device. For example, if you are making an input connection, and your input device is a mouse, you have two degrees of freedom. You can move the mouse horizontally on the x-axis, or vertically on the y-axis.

A channel setup consists of a group of drivers, the drivers' available channels, and a set of channel connections. A channel setup may contain an arbitrary number of channel drivers, all of which may run simultaneously. All the channels for all the drivers can be connected to any object's function curve.

Refer to the Channel commands for detailed information about selecting channel drivers and assigning function curves.

Animating with Channels

This appendix describes the drivers available with SOFTIMAGE 3D: you can also develop your own channel drivers. For more detailed information on developing your own drivers, refer to the Channel Drivers Developer's HTML files on the On-Line Documentation CD.

Channel Connections

The principle behind all channel-driven animation is to define a source of animation data and connecting it to a destination element. You can make three types of channel connections in SOFTIMAGE 3D: channel to function curve, function curve to channel, and channel to channel.

Channel to Function Curve Connections

Also called Input connections, this type of connection is used to capture animation from an external device. For example, assume you want to use your mouse to rotate an object around its y-axis in SOFTIMAGE 3D. The source of the animation data is the mouse channel driver, and the destination is the y-axis rotation parameter of the selected object:

SOFTIMAGE 3D automatically generates raw function curves from the stream of captured data. These function curves can then be connected or constrained to objects, lights, the camera, or any other parameter that can be animated in a scene.

When a channel driver captures animation, the stream of data is fed into SOFTIMAGE 3D one frame at a time. SOFTIMAGE 3D sets a keyframe for each frame of animation data as it enters from the channel driver. As many keyframes as possible per frame are created; it may be one keyframe per frame or one keyframe for every six frames, depending on the type and speed of the input devices. In other words, the channel driver interprets the animation data and sets key points automatically, generating function curves as fast as the driver can receive the information from the input device.

An advantage to using channels for motion capture is that you can process up to 1,000 channels simultaneously for any number of external devices, allowing you to generate raw function curves very quickly. Channels also permit you to view the resulting animation on screen simultaneously with the capture, for immediate feedback. Afterwards, you can edit the function curves to achieve precisely the effects you want.

Function Curve to Channel Connections

Also called Output connections, this type of connection is used for motion control, where a function curve controls an external device:

Channel to Channel Connections

These are other forms of Output connections, sometimes called Direct connections. In this type of connection, one channel driver inputs information into SOFTIMAGE 3D, and another channel driver exports the data to another external device:

Doing a Channel Run

Once you have defined your channel setup and made your channel connections, you can test the device by choosing the Channel -> Channel Run -> Frame I/O command.

The Channel -> Channel Run commands allow you to create animation generated by all active input devices for a single frame, and record animation generated by all active input devices for a sequence of frames in real time.

The Frame I/O command activates the frame input/output mode. This creates a single keyframe from one frame of animation data from the channel driver, allowing you to preview the connection and modify the channel setup, if necessary. When you are ready to capture a complete sequence of data, you can select the sequence input mode, to set a sequence of keyframes for generating the function curve.

When generating function curves, you can switch visual feedback off by selecting the Fast Sequence Input option in the Channel Setup dialogue box; the resolution of the captured data is then increased as SOFTIMAGE 3D does not have to refresh the screen. This allows you to generate more precise function curves. This command is normally used when you are confident that all drivers, objects (or lights, camera, effects) are set up correctly to achieve the desired results. You can generate your basic animation quickly, and then edit the function curves to perfect it.

You can convert raw function curves to spline interpolated function curves using the FcrvEdit -> Fit Spline to Fcurve command. This also filters out unnecessary keyframes.

When working with channels, the Constraint -> Orientation command can be very useful. For example, if you have a pair of hands located at the end of a chain or hierarchy, you can constrain their rotation to a null, which is connected to the rotation data taken from a motion capture device.

Here's a trick for people doing channel capture with very fast devices. 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 every bit of incoming data from the channel driver is kept.


SOFTIMAGE 3D Reference - 19 APR 1996