Facial animation not working in conjunction with bone animation in UE4

We have a character made up of two meshes. A head mesh and a body mesh.

The body has the main character animations applied to it and the head uses the "set master pose" node in the character blueprint to ensure the head follows the animation perfectly with the body.

This however seems to cause the facial animations to not work at all.

When I play the game you can hear the sound, but the facial animation does not work.

Now if I disconnect the "set master pose" and play the game again, then the facial animations work.

So it looks like the other node is stopping the facial animations.

Any ideas how to make the facial animation work with our standard character animations?

We are using UE4.

We haven't been able to reproduce this yet. Can you provide reproduction steps and/or reproduction content? Anything interesting in the log file?

Permalink

This is what the blueprint looks like. The construction script has the master post component node and facefx initialisation. The event graph just has an event that plays the facefx animation.

Construction script:
http://grab.by/OU6M

Event grah:
http://grab.by/OU6K

Any ideas?

Permalink

Tried to post my error log but my post was blocked by a spam filter or something. Trying again.

Im seeing this in the error log:
LogSkinnedMeshComp:Warning: GetBoneTransform : BoneIndex(0) out of range of MasterBoneMap for HeadMesh

Could be related to our code/blueprint. Anyone seen this before?

Sorry for the delay responding to this. Things have been hectic getting back from the Game Developers Conference.

I am looking into your posted files now. I am not familiar with that error message, but will have a look.

I'm using 4.8, and it doesn't appear that you can use the "Set Master Pose Component" in the Construction Script any longer. So I can't reproduce your setup exactly, but I'm assuming you could do the same thing in the Event Graph.

But from your setup, it appears that the FaceFX-driven skeleton is being set as the "slave". All animation comes from the "master" skeleton when using Set Master Pose Component, so it seems like expected behavior that the slave skeleton's animation is being ignored.

Am I missing something?

Permalink

Ah I see so that would explain it. I should clarify though that the facial animations are based on morph targets, not bones. There is a basic bone animation that simply positions the head and keeps the neck transition smooth but that's not driven by faceFX. Does that make a difference?

If the set master pose component node doesn't work due to the master/slave issue, is there another way to make facial animations work on an modular character mesh?

We need the head to be separate from the body so we can swap it but it still needs it to be influenced by the character's body animations so that the neck transition is smooth.

I'm not sure of the best way to handle that. But I would get your setup working with an FBX-based morph animation first, and then transition over to the FaceFX system once that is working. You will be able to get better answers on the UE4 support sites for this type of question if you are using an FBX-only pipeline. Once that setup is working, FaceFX should work too.

Permalink

Alright thanks for the help. I'll look into getting it working without face fx first.