This list is NOT 100% complete. More advanced commands and advanced optional parameters are possibly not included.
Official SmartBody wiki - Commands
Command variables are presented between angle brackets, < and >.
Optional arguments are presented between square brackets, [ and ].
Clears any currently pending BML acts, thus freeing their act ids for reuse. Outside of debugging with .seq files, all BML acts should have unique character and act id key pairs, so this should not be an critical issue. Also, once all the failure cases are checked with timeouts, this command should not be necessary anymore.
bp speech_ready <character id> <request id> SUCCESS
A SmartBody::SpeechInterface callback, informing the BML processor that speech data is ready.
bp speech_ready <character id> <request id> FAILURE <error message or reason>
A SmartBody::SpeechInterface callback, informing the BML processor that speech data failed to be compiled.
camera eye <x> <y> <z>
Sets the camera position in the scene.
camera center <x> <y> <z>
Sets the point that the camera looks at in the scene.
camera scale <scale>
Sets the camera scale.
Restore the camera to its default configuration.
char <name> init <skeleton file> <class>
Creates and initializes a character with the <skeleton file> (found on the ME path) and the <class>. The class is evaluated by a renderer, such as BMLR.
char <name> remove
Removes the character from the scene.
char <name> inspect
Prints out debug information about the character.
char <name> prune
Prunes the controller trees of unused/overwritten controllers.
char <name> ctrl
Adds or removes a named test controller.
char <name> viseme <viseme id> <weight> <rampin duration>
Sets the weight of a character's viseme. The <rampin duration> (in seconds) enables the viseme weight to change gradually.
char <name> bone <bone id> <w> <x> <y> <z>
Sets the quaternion rotation of the character's bone named <bone id>.
set char <name> world_offset [x <x>] [y <y>] [z <z>] [h <h>] [p <p>] [r <r>]
Sets the characters position and orientation in the world. XYZ is the position and HPR is the orientation, where h is heading (yaw), p is pitch and r is roll. Any combination of xyzhpr in any order can be specified. See the coordinate systems section.
set char <name> voice <remote> <voiceID>
Sets the characters voice, using a speech synthesizer.
set char <name> voice <audiofile> <voicePath>
Sets the characters voice, using pre-recorded audio files.
Commands to create, initialize and destroy named controllers. These commands are primarily test commands available for controller programmers.
Prints contents of:
srHashMap <SkPosture> pose_map; srHashMap <SkMotion> motion_map; srHashMap <MeCtPose> pose_ctrl_map; srHashMap <MeCtMotion> motion_ctrl_map; srHashMap <MeCtSimpleNod> snod_ctrl_map; srHashMap <MeCtAnkleLilt> lilt_ctrl_map; srHashMap <MeCtScheduler2> sched_ctrl_map; srHashMap <MeController> controller_map;
Prints <text> to the console.
Starts or stops the joint logger.
set joint_logger joints [< +/- >] <joints>
Adds or removes a joint from being logged. If +/- are not specified, the complete list is defined.
set joint_logger duration <time>
Starts the joint logger for <time> seconds.
gaze <ctrl_name> target point <x y z> gaze <ctrl_name> target euler <p h r> gaze <ctrl_name> smooth <basis> gaze <ctrl_name> speed <deg-per-sec> gaze <ctrl_name> bias <key> <p h r>
lilt <controllerID> <duration> <magnitude>
Creates a named lilt controller.
load motion[s] <path>
Loads all .skm motion files from <path> into SBM's list of known animations.
load pose[s] <path>
Loads all .skp pose files from <path> into SBM's list of known animations.
Helpful in resyncing TCP socket connection to renderer.
To create a pawn:
pawn PawnName init
To change the location of a pawn:
set pawn PawnName world_offset x 0 y 160 z 45
As with characters, world_offset can be any combination of x y z h p r
path <path id> <pathname>
Appends <pathname> to a path list <path id>.
Currently valid <path id>s are:
|seq||Used to search for .seq files during a seq command.|
|me||Used by MotionEngine to load .me MeContent files and .sk skeleton files.|
|bp||Unused, but reserved by the BML processor for loading configuration data.|
Print various internal variables to the console.
Resets initial variables in mcuCBHandle class (mcu).
sbm [id <process-id>] <sbm command>
Loopback command that calls the following arguments as another SBM command. It exists as a way for the elvin listener to trigger any command from the message type 'sbm'. Optional process-id supports targeting a specific SBM process. A non-matching process will discard the message.
sched <schedulerControllerID> add <controllerID> <time> [<ease in> <ease out>]
Adds controller <controller id> to schedule <schedulerControllerID> at time <time> (in seconds). <Ease in> and <ease out> are schdeule duration (in seconds) for interpolating into and out of the controller.
Set various internal variables.
send <elvin message>
Transmits <elvin message> using the ttu elvin wrapper.
seq <seq name> at <time> <sbm command>
Schedules <sbm command> at time <time> (in seconds) in the sequence <seq name>.
seq <seq name> [begin]
Starts running the sequence <seq name>. If the sequence was not generated at runtime by seq <seq name> at … commands, the system will search the seq path for a file named <seq name>.seq.
seq <seq name> abort
Stops running the sequence <seq name>.
seq <seq name> print
Prints the scheduled time and commands of sequence <seq name>.
snod <controller id> <duration> <magnitude> [<repitiions> [<affirmitive>]]
Creates a named SimpleNod controller named <controller id> with the following parameters:
duration, in seconds
magnitude, in degrees
repitiions, where one repitition includes both up and down (or both left and right) components. Defaults to 1.0.
affirmative as an integer, so non-zero implies an vertical affirmative nod and zero is a horizontal head shake.
This command is primarily a test command available for controller programmers.
test bml [char <charname>] <bml>
Simple interface for building and sending basic BML requests
test fml <fml>
Simple interface for building and sending basic FML requests
viewer open <width> <height> <x> <y>
Opens the viewer with dimensions <width>,<height> and at pixel position <x>,<y>.
Opens the SBM scene viewer window with previously set size and position.
Closes the SBM scene viewer window.
Notifies the renderer that SmartBody is ready to accept commands/BML.
Partially implemented replacement to the vrSpeak messages. This message specification should not be considered final, and should not be used in production environments.
Request to SBM for a new BML performance, similar to vrSpeak.
vrAgentBML <character-id> <audience-id> <message-id> request <XML-act>
<character-id> Character identifier <audience-id> Unused recipient or audience identifier <message-id> Per-character unique message identifier <XML-act> BML inside <act> element, prefixed with XML prolog
Signals SBM has begun performance a BML request.
vrAgentBML <character-id> <audience-id> <message-id> start
<character-id> Character identifier <audience-id> Unused recipient or audience identifier <message-id> Per-character unique message identifier
Signals SBM has halted processing of a BML request. This could be because the perfromance completed normally, was interrupted, or caused an error during processing.
vrAgentBML <character-id> <audience-id> <message-id> end <reason-id>
<character-id> Character identifier <audience-id> Unused recipient or audience identifier <message-id> Per-character unique message identifier <reason-id> One of complete, interrupted, or error
vrSpeak <charID> <audienceID> <actID> <BML>
Commands <charID> to perform the act specified in <BML>. <charID> and <actID> should be a unique key pair over the life of the SBM process. <audienceID> is effective ignored.
<BML> is an XML message that should be of the form:
<?xml version="1.0" encoding="UTF-8"?> <act> <!-- siblings to <bml> are ignored --> <bml> <!-- BML behaviors --> </bml> </act>
Including the XML prolog (but not necessarily a DTD reference).
vrSpeak <charID> <audienceID> <actID> <BML_filename>
A variant of the normal vrSpeak used in testing where the BML is retrieved from a file instead of inline with the message.
Sends string over UDP to the renderer.
World State Protocol for the distributed version of SmartBody.