Pantomime Motor-function Reference (updated 10/4/2000)

This table lists all the motor functions that can be executed by the current set of drivers. The parameters are listed with their default values. Other possibilities for each parameter are listed under "Description." Unless specified otherwise, approach is the time to reach the destination in seconds and duration is the time to hold a pose in seconds.
larmIK

rarmIK 

Driver

IKArmDriver

Parameters

:x 0.0 :y -0.75 :z 0.0
:phi 0.0 :rho 0.0
:approach 1.0 :duration 0.0
:coord "as"

Description

Inverse kinematics for the arm. x, y, z, specifies the position of the wrist in the coordinate space specified by coord. phi is the elbow rotation around the vector from the shoulder to the wrist, starting from the lowest point of the circle. rho is the twist of the forearm. Coord currently supports "as" and "gs". "as" is arm space, absolute coordinates, where the origin is at the shoulder. "gs" is gesture space, relative coordinates, where the origin is in between the shoulders, 1.0 in y and z is arm length, and 1.0 in x is arm length + half shoulder width.

larmkfmotion

rarmkfmotion

Driver

ArmKFMotionDriver

Parameters

:name ""
:repeat 1
:msg ""

Description

If msg is "stop", stops the current keyframe animation. Otherwise, starts a keyframe animation sequence name for the appropriate arm. Repeats the sequence repeat times. If repeat is less than zero, then the sequence is repeated until explicitly stopped.

The key frame sequences are storied in default.kfm (specified in CAnimator.cpp).

larmmoveto

rarmmoveto

Driver

ArmMoveToDriver

Parameters

:target ""
:duration 1.0
:handmotion "stationary"

Description

Moves the appropriate hand directly to target's location, over duration seconds. While in motion, it executes handmotion, which can be any HandKFMotion. It uses an IKArmDriver to calculate the arm position.

larmshape

rarmshape

Driver

ArmShapeDriver

Parameters

:shape ""
:approach 1.0 :velocity -1.0 :duration 1.0
:interpolator ""
:msg ""

Description

If msg is "stop" it stops the current arm shape. Otherwise, it sets the arm to the armshape shape. Takes approach seconds to reach the shape or moves to the shape at velocity radians/sec, whichever one is not negative. Results are undefined if both are the same sign. Uses interpolator to calculate the approach. Holds the shape for duration seconds.

The shapes are stored in shapes.shp (specified in CAnimator.cpp).

lbeat

rbeat

Driver

BeatDriver

Parameters

:msg "beat"
:approach 0.3 :retract 0.3
:interpolator "linear"

Description

If msg is "stop", all beating stops. If msg is "end" the current beat comes to an end, but the driver is still ready to do the next one. If msg is "start" the beat driver prepares to beat, and if msg is "beat" the driver actually does a beat, with approach time approach (in seconds) and retract time retract (also in seconds).

interpolator can be any of "linear", "sinusoid" or "quadratic".

Note: this documentation is probably right, but should be double-checked.

blinkreflex Driver

EyeBlinkReflex

Parameters

:msg "on"

Description

Blinks the eyes randomly every so often.

Turn the blinking reflex "on" or "off" by specifying msg.

DIRECT-<DOF> Driver

DirectDriver

Parameters

:position 0.0
:duration 1.0

Description

Direct control of a single DOF. DOF ID is in the form of <L|R>_<Joint>_<ROT|XL>_<X|Y|Z>.

eyeblink Driver

EyeBlinkDriver

Parameters

:which "both"

Description

Forces an eye blink. Which is currently ignored (i.e. eyeblink always blinks both eyes), but in theory it would allow you to specify left, right, or both eyes.

eyebrows Driver

EyebrowsDriver

Parameters

:approach 0.3
:amount 0.5
:hold 0.1

Description

Raises the eyebrows amount over approach seconds, holds them for hold seconds, then releases them over approach seconds.

If hold is negative, the eyebrows are left raised, but the DOFs are released when the eyebrow raising is completed.

eyetrack Driver

TrackingDriver

Parameters

:target ""
:msg ""
:tol 0.1

Description

Sets the eyes to track the target, if msg is "stop", then the tracking is stopped. tol is currently ignored, but the tolerance (how far the eyes turn before the head moves), can be set with the eyetrack-tol behavior.

eyetrack-tol Driver

TrackingDriver

Parameters

:val 0.2

Description

Sets the limit on how far the eyes will turn without moving the head to val. If the target being followed is beyond the limits of that tolerance, the head will also be moved.

facing Driver

FacingDriver

Parameters

:dir ""
:duration 1.0
:amount 1.0

Description

Sets the facing of the character. If dir is left unspecified, the body is turned to amount. Dir may be "full" (corresponding to amount of 1), "half" (amount of .75), or "away" (amount of 0).

The direction the character ends up facing is not relative to the character’s current facing, but is specified in an absolute coordinate system.

lhandkfmotion

rhandkfmotion

Driver

HandKFMotionDriver

Parameters

:name ""
:repeat 1
:msg ""

Description

If msg is "stop", stops the current key frame animation. Otherwise, starts a keyframe animation sequence name for the hand. Repeats the sequence repeat times. If repeat is less than zero, then the sequence is repeated until explicitly stopped.

The key frame sequences are storied in default.kfm (specified in CAnimator.cpp).

lhandrelaxer

rhandrelaxer

Driver

HandRelaxer

Parameters

:msg "on"

Description

If msg is "on", starts the HandRelaxer, if it is "off", stops it.

lhandshape

rhandshape

Driver

HandShapeDriver

Parameters

:shape ""
:approach 1.0 :velocity -1.0 :duration 1.0
:interpolator ""
:msg ""

Description

If msg is "stop", stops the handshape from running. Otherwise, sets the hand to the handshape shape. Takes approach seconds to reach the shape or moves to the shape at velocity radians/sec, whichever one is not negative. Results are undefined if both are the same sign. Holds the shape for duration seconds.

The shapes are stored in shapes.shp (specified in CAnimator.cpp).

headaway Driver

HeadDriver

Parameters

:dYRot 0.2 :dXRot 0.0
:approach 0.5 :vel -1.0

Description

Turns the head dYRot and dXRot radians away from the current direction sideways and vertically. Currently ignores vel (so don’t use it), and takes approach seconds to move the head.

headnod Driver 

HeadNodDriver 

Parameters 

:amt 0.3
:vel –1.0
:duration 1.0

Description 

Performs a head nod down to amt of full head tilt and back in duration seconds. Ignores vel

headtowards Driver

HeadDriver

Parameters

:object ""
:x 0.0 :y 0.0 :z 1.0
:approach 0.5

Description

If object is "", turns the head towards the point x, y, z in world coordinates, otherwise, turns the head towards object. In either case, takes approach seconds to do so.

idleattending Driver

IdleAttendingDriver

Parameters

:msg "start"

Description

Performs the idle behavior of alternately staring off into space and looking at the user. Also makes a somewhat impatient motion with the hands.

"start" or "stop" this behavior by specifying msg.

idlenotattending Driver

IdleNotAttendingDriver

Parameters

:msg "start"

Description

Performs the idle behavior of alternately staring off into space and looking at the user.

"start" or "stop" this behavior by specifying msg.

lipshape Driver

LipDriver

Parameters

:viseme "CLOSED"
:index –1

Description

If index is greater than zero, then the lips are set to that shape, otherwise, viseme is used to select the shape. viseme can be (in order, with CLOSED=0): "CLOSED", "D", "F", "TH", "B", "R", "E", "A", "O", "OO", "SMILE".

lpoint

rpoint

Driver

DeicticDriver

Parameters

:msg ""
:object ""
:extend 0.7
:approach 1.0 :duration –1.0

Description

If msg is "stop", ends the pointing.

Otherwise, points at object, extending the arm extend. Take approach seconds to get there, and holds the arm for duration seconds.

This driver may not be working right now.

lreach

rreach

Driver

ReachDriver

Parameters

:target ""
:duration 1.0
:handmotion "stationary"

Description

Moves the appropriate hand to target's location, over duration seconds. While in motion, it executes handmotion, which can be any HandKFMotion.

To get to its destination, the hand first moves straight back, then sideways until it's directly behind its destination, then forwards. It uses an IKArmDriver to calculate the arm position.

saccade Driver

GazeDriver

Parameters

:target ""
:coord "eyespace"
:x 0.0 :y 0.0 :z 0.5
:hold 0.5
:dYRot 0.0 :dXRot 0.0

Description

Makes the eyes saccade to a particular position and hold for hold seconds.

If target is not "", focuses on target.

If dXRot or dYRot are non-zero, turns the eyes dXRot and dYRot from the current position.

Otherwise (target is "", dxRot is 0.0, and dyRot is 0.0) focuses on a point specified by x, y, z in the coord coordinate space. coord can be "eyespace" or "worldspace". "eyespace" is in absolute coordinates where the origin is between the eyes and z points outwards in the direction of the nose and y is up.

toy Driver

ToyDriver

Parameters

:msg "show"

Description

Will "show" or "hide" the toy.

Works by flipping a SoVRMLSwitch named TOYSWITCH (specified in CAnimator.cpp).

script Executes a script consisting of a list of primitive commands, each at a specified time. Conditions include absolute time in seconds (:starttime), relative time in seconds (:offsettime), or wait until a TTS event occurs (:event). 

Parameters
:id <int>
:content [ <step>* ]

Where,
<step> ::= (step <condition> :content <primitive>)
<condition> ::= :starttime <float> | :offsettime <float> | :event "<TTSevent>"
<TTSEvent> ::= speech_start | speech_end | word_<int>
<primitive> ::= any non-script animator command