wiki:IpaacaComponentInterfaces

List of currently provided Ipaaca component interfaces

interfacesend categoriesrecv categoriesimplementations
AnimatablejointDataConfigRequestjointDataConfigReply,jointDatabillie ogre environment, hmi.ipaacarenderenvironment
Animation ProviderjointDataConfigReply, jointDatajointDataConfigRequestAce, AsapRealizer (through an asap.ipaacaembodiments.IpaacaEmbodiment, setup with IpaacaEmbodimentLoader)
BML RealizerbmlfeedbackbmlAsapRealizer (with IpaacaToBMLRealizerAdapterLoader)
BML Provider (the part of the behavior planner that communicates with a realizer)bmlbmlfeedbackBMLRealizerToIpaacaAdapter (used in e.g. asap.realizerdemo.AsapRealizerPortToIpaacaDemo)
TTS Providermaryttsreplymaryttsrequestceretts, marytts
TTS UsermaryttsrequestmaryttsreplyACE, AsapSpeechEngine using asap.tts.ipaaca.IpaacaTTSGenerator
Scenesceneinfo-billie ogre environment
WorldObjectManager-sceneinfoTODO

List of currently provided categories and payloads

jointDataConfigRequest

A jointDataConfigRequests provides an Animation Provider information about the animation properties of an Animatable.

payloadpayload format
morphslist of available morph targets, separated by comma
jointslist of joint names, separated by comma
joint_parentslist of parent names for each joint, separated by comma, no parent is annotated as "-"
joint_translationscomma separated list of joint translations, local to their parent, each translation contains 3 floats separated by space
joint_rotationscomma separated list of joint rotations, local to their parent, each rotation contains 4 floats separated by space. The 4 floats represent the rotation quaternion in w x y z order

jointDataConfigReply

Provides an Animatable with information about the joints and morphs that are to be animated.

payloadpayload format
joints_providedcomma separated list of provided joints
joints_not_providedcomma separated list of not provided joints
morphs_providedcomma separated list of provided morph targets
morphs_not_providedcomma separated list of not provided morph targets

jointData

payloadpayload format
joint_dataComma separated list of joint transformations. Each joint transformation provide 2 4x4 matrices, first a 4x4 matrix specifying the local transformation, then one specifying the global transformation. Each transformation consists of 16 floats, separated by spaces, indicating the transformation matrix in column-order (that is, the first 4 floats form the top column etc.).
morph_datacomma separated list of integers indicating morph value in %. These morph values are for the morphs_provided in jointDataConfigReply.

bml

payloadpayload format
bml BML 1.0 XML string

bmlfeedback

payloadpayload format
bmlfeedback BML 1.0 feedback string, one of predictionFeedback, blockProgress, syncPointProgress or warningFeedback

maryttsrequest

payloadpayload format
namename of the speaking character
voicename of the voice that is to be used (only valid with tts.plan and tts.justSpeak)
typeone of: tts.plan (generate wav file and provide timing), tts.execute (execute previously planned text provide maryttsreply with status updates), tts.justSpeak (execute, no maryttsreply), tts.cancel (stop speaking)
fileabsolute filename for the wav file that is planned, if file starts with /. Otherwise the full filename for the generated wav file is /tmp/<name>_<file>)
texttext to be spoken (only valid with tts.plan and tts.justSpeak)
ignore_xmlremove all xml tags from text before speaking (default is true)

In a typical usage scenario, tts is planned with tts.plan and then executed with tts.execute (using the same filename). Message-type IUs are sent.

maryttsreply

payloadpayload format
phonems[(0)(0)(0)]#[(<phoneme id>(<start time in seconds>)(<end time in seconds>)]..[(<phoneme id>(<start time in seconds>)(<end time in seconds>)];[(<phoneme id>(<start time in seconds>)(<end time in seconds>)], where ; indicates word boundaries
markslist of spoken words and the bookmark (i.e. SSML marks) between them. For example: <word>[(bookmark id)(bookmark time in seconds)][(bookmark id)(bookmark time in seconds)]<word><word>
filefile name (same as file in the corresponding request)
namename, (same as file in the corresponding request)
stateexecution or done
typetype (same as type in the corresponding request)

Message-type IUs are sent.

maryttsinfo

payloadpayload format
speaking1 if the playback thread is currently playing audio data, 0 if not
end_timeestimated timestamp for the end of the current playback (system time, in float seconds since epoch)

This state information can be subscribed to by any component that needs playback / timing information from TTS. Message-type IUs are sent.

sceneinfo

cmdreport=>request sceneinfo, or reporting=>provide scene info
datae.g. (camera 0.12 0.12 0)(ent1 0 0 2), only if cmd is reporting

Object positions are of the form

(object xpos ypos zpos)

where xpos ypos zpos is the position of the center of the object in world coordinates.