...
The NVBG also allows us to configure facial expressions for a particular character using FACS units and then based on xml tags in the input messages, can trigger those facial animations.
Quick facts:
- Location: \core\NVBG
- Language: C#
- Distribution: binary-only
- Platform(s): Windows
- Main paper: Jina Lee and Stacy Marsella, "Nonverbal Behavior Generator for Embodied Conversational Agents", in 6th International Conference on Intelligent Virtual Agents, 2006, pp. 243-255. link
...
- create_character [char name] [config-filename] - You can specify multiple characters one after the other
- data_folder_path: specifies Specifies the folder path to the xslt files and the rule_input_[culture].xml file.
Optional:
- write_to_file: specifies Specifies whether the output bml is to be sent out as a VH message or if it should be written to a file with the name given here. Default is "false."
- write_to_file_path: Path of the file to be written with write_to_file.
- parsetree_cachefile_path: specifies Specifies the file path to the file used for caching the response from the parser used by NVBG. If this doesn't exist, it is created.
- hide_GUI: Hides the GUI if set as true.
- storypoint: specifies Specifies which story-point should be loaded from the saliency-map xml and the saliency map is updated accordingly with priorities to appropriate pawns etc.
- -writelog: (no arguments) If specified, NVBG will write all debugging messages to log.txt in the same folder as the binary.
Configuring the Character
...
Developers
Functional Block Diagram
Configuring Rules
...
<storyPoints>
<storyPoint name = "toolkitsession">
<SaliencyMapInit>
<pawn name = "user" recency = "0" primacy = "3"/>
<pawn name = "upright" recency = "0" primacy = "2"/>
<pawn name = "upleft" recency = "0" primacy = "1"/>
</SaliencyMapInit>
<keywordToObjectMap>
<keyword name = "I">
<pawn name = "upleft" primacy = "10"/>
<pawn name = "upright" primacy = "10"/>
<pawn name = "user" primacy = "3"/>
</keyword>
</keywordToObjectMap>
<emotionInit name = "normal"/>
</storyPoint>
</storyPoints>
As we can see, the saliency map can contain multiple story-points each specifying which objects in the scene are of importance , the relation between spoken words and object in the scene and the emotion of the character.for that point in the story or scene. So if NVBG is notified of a change in the scene/story, it can update the saliency map accordingly. The above example contains only one story-point but in general it can contain many. NVBG can be notified of which story-point it should load so that the appropriate priorities are assigned to the objects in the scene.
The relation between spoken words and objects in the scene can be specified with the <keywordToObjectMap> block, which contains the keyword and specifies which pawns map to it. When the character speaks those words, NVBG will make him/her gaze towards the pawn. This generates the impression that the character is aware of his environment.
You can also specify the emotion of the character using the <emotionInit> tag as shown. This emotion value can be used to change behaviors of the character, such as idle animations, facial expressions etc.
You can specify the saliency map when configuring the character. Please refer to the section above for configuring a character.
Message API
Sends:
nvbg_set_option
These are control messages to set options for NVBG. They are as shown below:
nvbg_set_option [char-name] all_behavior true/false - sets/unsets flag that allows all behavior generated by NVBG.
nvbg_set_option [char-name] saliency_glance true/false - sets/unsets flag that allows saliency map generated gazes. These gazes are based on content in the speech tag and the information in the saliency map.
nvbg_set_option [char-name] saliency_idle_gaze true/false - sets/unsets flag that allows idle gazes generated by the saliency map. These idle gazes are based on the priority of pawns in the saliency map and are generated when the character is idle.
nvbg_set_option [char-name] speaker_gaze true/false - sets/unsets flag that allows for the character to look at the person he's speaking to.
nvbg_set_option [char-name] speaker_gesture true/false - sets/unsets flag that allows gestures to be generated when speaking.
nvbg_set_option [char-name] listener_gaze true/false - sets/unsets flag that allows the listener to gaze at the speaker when he speaks.
nvbg_set_option [char-name] nvbg_POS_rules true/false - sets/unsets flag that allows behavior to be generated based on parts of speech returned by the parser.
nvbg_set_option [char-name] saliency_map [filename] - lets you dynamically specify the saliency map that the character will use
nvbg_set_option [char-name] rule_input_file [filename] - lets you dynamically specify the behavior map that the character will use
Receives:
Known Issues
FAQ
See the Main FAQ. Please use the Google Groups emailing list for unlisted questions.