I got a question from one of the new Reykjavik PandaBMLR developers on
controlling the face. I think this is of interest to all SmartBody
users, so I'm reposting my answer:
Regarding the face, we've been using commands
passed to the renderer
for some time, but we intend to control the face with bones, like the
rest of the body. You can enable face bone control with the -facebone
command line argument to sbm-fltk.exe.
You may note in SbmCharacter, we have a MeCtFace controller registered
at the end of init. This controller takes in channels like "au_4_left"
and "viseme_er" as input weights for each facial pose, and adds the
weighted sum of each pose to a neutral face configuration. Most of the
code has been in the system for a while, but we now have a programmer
revisiting the problem.
I should note, when I say channels "au_4_left" and "viseme_er", I am
refering to the XPos of dynamically generated joints, assumed to have a
value between 0 and 1. These joints are created in
SbmCharacter::init_skeleton based on the AuMotionMap and
VisemeMotionMap of the MCU at the time of the character's creation.
With respect to Panda, here are the issues I expect:
* Our BoneBus (network connection to the renderer) outputs a hard-coded
set of channels/bone joints. If there is any discrepancy between our
face bones and the bones in your characters, we will need to explore
some new bone handshake protocol. Ed and I have had some preliminary
talks about this, and I CC'd him in case he has anything to add.
See BoneBusCharacter::NetworkMapBoneNames(..) in
lib/bonebus/src/bonebus.cpp (or
https://svn.ict.usc.edu/svn_vh_public/trunk/lib/bonebus/src/bonebus.cpp).
* Panda needs single framed .skm files for each face pose. Each pose
should adjust the channels of the head (i.e. higher than skullbase in
the skeleton hierarchy) with the exception of the eyeballs. See
data/sbm-test/common-sk/face/ for examples (but they mistakenly have
the eyeballs). Of course, if the face bones of your characters do
match up, try the sbm-test/face/motions first. It often helps play a
modified version with a second keyframe to give the animation some
duration, as in data/sbm-test/common-sk/zero_10sec.skm and
viseme_er_10sec.skm. I created these by manually copying the first
(and only) frame of the original animation and modifying the frame time
(the number following "kt").
* The new system does not need to have a matching set of action units
and visemes as our characters. This is configurable via "set face au
..." and "set face viseme ..." commands. You can find an example
configuration in data/sbm-test/scripts/default-init-face.seq. Now that
Panda is officially included, I'd be happy to include a data/sbm-panda
directory for this sort of PandaBMLR specific configuration.
Anm
|
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Smartbody-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/smartbody-developer