Eyebrow movement

I'm having trouble with eyebrow movement once I add additional custom targets to the default mapping. If I use the default mapping, the eyebrows animate. If I add additional targets, the eyebrows stop animating. Any ideas why? Is there a way to "activate" the eyebrows or a way to force a solve?

Thanks in advance!

Permalink

We'll need more information to figure out what is going on.

There are several things that could cause eyebrow raises to stop animating

1) The "Eyebrow Raise" curve doesn't exist
2) The curve has no keys, or all keys are at or near 0
3) The face graph node "Eyebrow Raise" does not exist
4) The face graph node exists, but does not drive the eyebrow target when you activate it with the workspace sliders in the preview tab.

Can you tell us which one of these applies?

I'm also unsure of what you mean by "add additional custom targets". Do you mean add targets to the mapping tab, or add new bone poses / morph targets by modifying the batch export text file?

Permalink

Hi Doug,

After re-exporting my face rig from Max and processing the animation again in FaceFX, the brows are animating again.

That said, I'm not certain what part of my process is preventing the eyebrow raise curves from generating from time to time. The following information might clarify what I'm currently trying to do:

In the documentation on the site, it states that you recommend using the "Default Mapping" setup which only uses a couple of targets to create lip sync. I'm currently attempting to create specific targets in addition to the default targets in order to achieve better shapes. For example, I want to feed it unique F, V , B, Sh, Ch, etc. I tried a couple of things but it seems to be best if I create the default mapping and then append the unique shapes I want. Then, I would adjust the values on the mapping tab accordingly. Is that correct? Also, I'm manually entering each one by adding it on the mapping tab, but I'm hoping I can find some way to populate that mapping list faster using a text document.

Hopefully this all makes sense. I'm new to the software, so I'm just trying to wrap my head around it all.

Permalink

We'll need exact steps to reproduce the eyebrow raise problem in order to help with that. I can't see how anything you are doing with the mapping would impact the Eyebrow Raise curve. It seems more likely that your actor did not have an Eyebrow Raise target setup properly and that caused the Eyebrow Raise curve to do nothing. It is also possible that for a short enough audio file, no eyebrow raise even happened to trigger the eyebrow raise target.

As far as modifying the default mapping, I will warn that this is a fairly "advanced" operation. Our samples and many triple-A games use the default mapping. If you aren't able to achieve a level of quality equivalent to or better than our samples, your time is probably better spent iterating on the targets and/or the rig than it is messing with the default mapping. If you can achieve a quality level equivalent to our samples, but want to push further, and you have a very good understanding of how FaceFX works, that is when I would look into making a custom mapping. At that point, here are a few tips to help along the way:

1) In Tools->Application Options, there is a setting for "use new coarticulation" that you should turn off. This setting messes with phonemes behind the scenes and helps with fast speech, but it can produce unexpected results when you are trying to edit the mapping and you are expecting a fully transparent relationship between phonemes and curves.

2) Use the visual mapping mode in the Preview tab

3) Another common mapping has targets for "Eat Earth If Ox Oat Wet Size Church Fave New Roar Bump Cage" They still use the same targets for F and V (and I think that is a good approach) but it gives you a bit more control at the expense of having more targets to set up. I can also send you the mapping if you email us directly, perhaps saving some work

As far as your specific questions are concerned, adding targets to the default mapping will work. As far as automating things, you could look at our XML actor format, which writes out the mapping into an XML format and reads it back in. You can also use the "map" command to change the mapping, and use that command from within a python script to do other tasks like read from the existing mapping, parse a text document, etc.

Permalink

Is there a way to turn off "use new coarticulation" when using a command line Python script and using the "analyze" function to create the animsets?

Permalink

There are no hooks inside the analyze command, but you can use .fxanalysis config files to configure specific audio/text files or entire directories to turn the option on or off.

Care must be taken when tweaking animations however. If the animation is ever re-solved (by moving a phoneme boundary for example), the current FaceFX Studio-wide setting will be used to do the solve.