FaceFX integration with Mecanim in Unity 4

Hey Guys,

I was curious what the current status of FaceFX integration with Mecanim is? Also, if there currently isn't any integration, what's the best way to use the FaceFX/xml pipeline in Unity and still be able to use the Mecanim system for the character controller? If it's possible.

We're getting ready to throw voice over into our whole game, and at the same time would like to upgrade our character controller to Mecanim as it allows for more fluid and complex animation systems within Unity. Thanks for the update.

Dave Cavitt
AT&LT Games
www.atltgames.com

You can download the integration from the unity forum thread.

Basically, you need to use both the old animation controller and Mecanim, and you select "keep additional bones" so that FaceFX can drive the face bones. Then you need to turn off the Mecanim jaw controller. If you want head rotations, you will need to have an additional bone since the Mecanim head bone is required and FaceFX can't drive Mecanim directly.

Permalink

Thanks Doug. So are you saying if we want FaceFX to control head rotations then we'll need an extra bone? And if so, would it be basically just a duplicate head bone and then we just need to make sure that the extra bone is the one that we animate in the default character setup phonemes? And the regular head bone is the one we asign in Mecanim? Thanks again for all your help.

That's exactly right. I'd make a "Head_FaceFX" bone with "Head" as the parent and keep them in the same position. Animate Head_FaceFX for FaceFX, and specify Head as the mecanim head bone, and you should be good to go.

Permalink

Hey Doug,

So I'm running into some issues with exporting my model with the bone poses into FaceFX. I'm getting some weird scaling issues on like the jaw and eyes and before I send you our fbx model to troubleshoot, I wanted to see if maybe it's because we're using 3ds Max 2014? Does FaceFX support the 2014 FBX format yet or do I need to export with an older FBX format?

Also, another question about the extra bone required for FaceFX to utilize Head rotations. If you have 2 head bones, both of which are skinned to the head, and you have the Parent Head bone be the one assigned in Mecanim and the Head_FaceFX bone be the one that is animated and controlled by FaceFX, what would happen if I tried to control the head with a FaceFX animation playing? Would the 2 bones fight each other since they're both skinned to the same Mesh? I don't think that is something that we would try to do, we'd rather just let FaceFX control pretty much all our Head rotations for the moment, but I was just curious.

If we're not going to be using the Mecanim system to control Head movement, can we just leave the Parent Head Bone unskinned to the character and only skin the FaceFX bone to the mesh or do both bones need to be skinned? Thanks for all your great responses, hopefully this thread will help others out as well.

(We spoke offline, but I have included a response here for everyone else.)

This case helped us fix a scaling issue in version 2013.2 (due out shortly). If a bone is scaled in the bind pose, it is not displayed correctly in FaceFX Studio version 2013.1 and prior. Scale in the bind pose is generally best to avoid, and you can work around the problem if you do a "Collapse Transform" operation in Max from the Motion menu (select Trajectories). But with version 2013.2, this workaround is not necessary.

As far as the extra head bone, you only need to bind the child to the mesh. The parent will drive the child, which will in turn drive the mesh.

Even if you aren't using Mecanim to control head movement, Mecanim requires a Head bone, and it is not an optional bone that you can turn off. So FaceFX can not drive the bone that is specified as the Mecanim head bone. That is why you need an extra bone in the head if you want to use FaceFX head rotations and Mecanim together. But once again, only skin one of the bones to the mesh (the child bone). It should not matter if the parent or the child is specified as the Mecanim head bone, assuming the bones are in the same location.