BML Face Element
From smartbody
BML <face> Element
The following BML behavior documentation covers the limited implementation found in SmartBody BML. Our current implementation requires a BoneBus rendering client that supports facial visemes. We intend to complete the transition to bone-based control over the face by the end of the summer 2008, removing this constraint.
Facial Action Units
Example:
<?xml version="1.0" encoding="UTF-8"?>
<act>
<bml>
<face type="FACS" au="4" amount="0.5"/>
</bml>
</act>
The value of the au attribute is the unit id of the Facial Action Coding System. The amount attribute is optional, and its value is a number from zero to one, where zero removes any existing expression of the action unit and one is at full strength. If omitted, amount is assumed to be 0.5.
The following is a list of implemented action units:
| Action Unit | FACS Name |
|---|---|
| 1 | Inner Brow Raiser |
| 2 | Outer Brow Raiser |
| 4 | Brow Lowerer |
| 5 | Upper Lid Raiser |
| 6 | Cheek Raiser |
| 7 | Lip Tightener |
| 9 | Nose Wrinkler |
| 10 | Upper Lip Raiser |
| 12 | Lip Corner Puller |
| 15 | Lip Corner Depressor |
| 20 | Lip stretcher |
| 23 | Lip Tightener |
| 25 | Lips part |
| 26 | Jaw Drop |
| 27 | Mouth Stretch |
| 38 | Nostril Dialator |
| 39 | Nostril Compressor |
Timing Hack
Because of deficiencies in SmartBody's behavior timing code (specifically, dealing with more than two sync points per behavior), we currently offer a temporary hack to assist timing the transitions of action units and visemes.
The attributes sbm:rampup and sbm:rampdown prescribe transition durations at the start and end (respectively) of each <face> behavior. For example:
<head type="nod" id="b1"/>
face type="facs" au="27" start="b1:start" end="b1:end"
sbm:rampup="0.2" sbm:rampdown="0.2" />
We should probably implement a default transition duration.
