Animation

In Autodesk Softimage, there are basically three types of animation, generally grouped into the following animation levels:

Low-Level (Parameter-Based) Animation

Character Animation

Nonlinear Animation

Low-Level (Parameter-Based) Animation

This type of animation involves some kind of data directly attached to a parameter driving its value. Since it happens at the parameter level, which is the lowest customizable element in Softimage, it is generally called low-level animation.

Typical examples of low-level animation are:

FCurves (keyframing)

Constraints

Linked Parameters

Expressions

Custom Operators

 

These types of animation form the building blocks of the third type of animation, Nonlinear Animation.

Basic Animation Tasks

Basic animation tasks involve working at the parameter level. For example, setting keys on an FCurve. The following table provides links to the reference pages for many of the SDK tools you can use to help accomplish these tasks:

Type of Task

Commands Available

Object Model

C++ API

Keyframing (setting and removing keys, working with fcurves)

SaveKey

SaveKeyOnKeyable

SaveKeyOnMarkedKeyable

SaveKeyOnPath

SavePivotKey

SetKeyUsingMarkingSet

SetKeyableAttributes

CopyKeys

CutKeys

GetKeyInfo

PasteKeys

SaveActionKey

KeyAllBoneRotations

RemoveKey

RemoveKeyOnKeyable

RemoveKeyOnMarkedKeyable

FCurve

FCurveKey

FCurveEditor

FCurve

FCurveKey

Locking parameters and objects

Lock

Unlock

InspectLocks

Parameter.IsLocked

Parameter.SetLock

Parameter.UnSetLock

Parameter.LockLevel

Parameter.LockType

ProjectItem.IsLocked

ProjectItem.LockOwners

ProjectItem.SetLock

ProjectItem.UnSetLock

ProjectItem.LockLevel

ProjectItem.LockMasters

ProjectItem.LockType

FCurve.Locked

FCurveKey.Locked

Parameter::IsLocked

Parameter::SetLock

Parameter::UnSetLock

Parameter::GetLockLevel

Parameter::GetLockType

ProjectItem::IsLocked

ProjectItem::GetLockOwners

ProjectItem::SetLock

ProjectItem::UnSetLock

ProjectItem::GetLockLevel

ProjectItem::GetLockType

FCurve::GetLocked

FCurveKey::GetLocked

Tagging parameters

Tag

Untag

TagObject

Parameter.Tags

ProjectItem.TaggedParameters

Parameter::GetTags

ProjectItem::GetTaggedParameters

Ghosting animation (onion-skinning or lightboxing)

ToggleGhosting

UnghostAll

n/a

n/a

 

Character Animation

Character Animation involves building skeletons and enveloping them, setting IK/FK constraints on their joints to simulate natural movement, and then keyframing their movement. Some issues pertaining to Envelopes are covered in this chapter.

When creating more complex characters, usually control rigs are used. You can make your own character rigs using the SDK’s Character Development Kit (CDK).

Nonlinear Animation

Nonlinear Animation is another layer of abstraction: it basically involves wrapping low-level and shape animation in a special container called a source and then using that source to instantiate a clip in the Animation Mixer. That is, a version of the source animation that can be modified independently of the original source. The other benefit of the mixer is that, as its name suggests, you can use it to build transitions between clips, apply weighting, cycle and warp clips, etc.

High-Level Animation Tasks

High-level animation tasks are often related to the Animation Mixer and its basic components, Sources and Clips. For example, creating clip effects. The following table provides links to the reference pages for many of the SDK tools you can use to help accomplish these tasks:

Type of task

Commands Available

Object Model

C++ API

Copying and pasting animation

ApplyDeformKey

ApplyShapeKey

ReplaceShapeKey

SaveDeformKey

SaveShapeKey

SelectShapeKey

StoreShapeKey

ShapeKey

ShapeClip

ActionSource

ShapeKey

ShapeClip

ActionSource

Clip effects

SaveOffsetKeys

CreateOffsetEffect

OffsetValueMap

ResetOffset

SaveOffsetKeys

ClipEffect

ClipEffectItem

MappedItem

ClipEffect

ClipEffectItem

MappedItem

Merging animation (copies only existing keys into action)

MergeClips

Clip

ActionSource

FCurve

Clip

ActionSource

FCurve

Plotting (or freezing) animation (creates one key for each frame in the action)

PlotAndApplyAction

PlotConstrainedTransforms

PlotShape

PlotToAction

FreezeAndReplaceClips

FreezeClips

 

Radians vs. Degrees (Rotations)

Something important to remember when working with rotations is that scripting commands process rotation data as degrees whereas the object model and the C++ API process rotation data as radians. To help cope with converting between these systems, the SDK provides some conversion functions:

XSIMath.RadiansToDegrees

XSIMath.DegreesToRadians



Autodesk Softimage v7.5