Welcome, Guest! Log In | Create Account

BML Face Element

From smartbody

Jump to: navigation, search

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.