University of Southern CaliforniaUSC
USC ICT TwitterUSC ICT FacebookUSC ICT YouTube

Animating the smartbody skeleton with facial markers | General SmartBody Discussion | Forum

Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Animating the smartbody skeleton with facial markers
August 7, 2014
8:06 pm
Avatar
Member
Members
Forum Posts: 21
Member Since:
July 16, 2014
sp_UserOfflineSmall Offline

Hi Ari,

I want to animate the smartbody skeleton with facial markers from mocap recording. I did not consider any bone for my facial skeleton. Therefore, all I have is the position of markers in 3D. Would you please tell me whether it is feasible to do that. And if so, what would be the best way of doing that? 

November 16, 2015
8:12 pm
Avatar
Member
Members
Forum Posts: 21
Member Since:
July 16, 2014
sp_UserOfflineSmall Offline

Hi,

Does anyone know how to animate the Smartbody skeleton with the 3D facial marker coordinates?

Thanks,

November 17, 2015
7:35 pm
Avatar
Admin
Forum Posts: 980
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

There are two parts to this:

1) You need to transfer the facial tracking information to SmartBody

2) You need to animate the skeleton from that tracking data

 

The easy way to do (1) is to have your tracking application send to data to the SBRealtimeManager. For this you need to run an ActiveMQ server on machine, include the VHMSG library in that application, then send data to the SBRealtimeManger like this:

 

send("sb", "scene.getRealtimeManager().setData("mychannel", "67")

 

you can then write a Python controller that access that data:

class MyController (PythonController):

   def evaluate(self):

      # every time step, get the value from one channel and then modify another
      realtimemanager = scene.getRealtimeManager()

      # eyebrows up
      self.setChannelValue("eyebrowsUp", realtimemanager.getDataDouble("mychannel")

myc = MyController()
# get the character
character = scene.getCharacter('char0')
# run this controller in position 15
character.addController(17, myc)

 

The challenge will be in how you map the data from your face tracker to the skeleton.

Ari

September 11, 2017
5:57 am
Avatar
Member
Members
Forum Posts: 21
Member Since:
July 16, 2014
sp_UserOfflineSmall Offline

Hi Ari,

How can I map the face tracker data which is in form of 3D position of markers (x,y,z), to facial joints in Smartbody?

Thanks,

September 17, 2017
8:19 am
Avatar
Admin
Forum Posts: 980
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

You need to figure out a retargeting scheme. Unfortunately, there is no short answer to this...

A 'simple' way would be to re-rig the SmartBody face so that the joints in the face match your 3D markers.

 

Ari

Forum Timezone: America/Los_Angeles

Most Users Ever Online: 733

Currently Online: mondayneedle1, huberdavidsen3, casey29english, andersen19eaton, kristensen00leblanc, bager59mayo, eric506784, t9rrzpi307
114 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

jwwalker: 80

jyambao: 51

rbaral: 47

adiaz: 30

WargnierP: 29

lucky7456969: 28

mbarros: 28

avida.matt: 26

JonathanW: 24

laguerre: 23

Member Stats:

Guest Posters: 65

Members: 52460

Moderators: 3

Admins: 4

Forum Stats:

Groups: 1

Forums: 5

Topics: 427

Posts: 2343