Download

Creating an animated character with facial hair

Hi there.

I’m currently creating my main protagonist for an interactive story and I’m just wondering how to make him more beardy.

He needs some small facial hair at least, since he’s been through some serious ****.

Well. But before I start spreading lots of alphas over his cheeks. I need to know the most efficient approch for this.

No other solution comes to my mind than blendshapes.
I’m thinking about Xgening some cards over his face, making the blendshapes, and for every facial pose afecting the hair position also making a geometrical copy of the facial hair as a whole, and blendshape that as well. Then I connect the animation controler to both blendshapes. That’s the only solution I come up with right now. (in my head, haven’t tested it yet)

(This might be a tough comparison. But do you know how they made nathan drakes facial hair move with his facial expressions in game? Was it with blendshapes? Did they have bones on the face of nathan like in last of us? And again… How do you make facial hair move with the polysurface of the skin if your facial animation relies on joints like in the last of us. Joels beard in last of us obviously didn’t move with the joints…)

If you have some other suggestions I’d be totally thankfull.

It moved with joints, you just copy skinning from face skin to hair geo and edit it a bit (unifying weights down the legnth of each hair geo)
That hassle with facial adds is why I dont use any blendshapes in my rigs anymore. Its all consolidated into a single skinCluster. That also makes maya to ue4 (facial) animation pipeline a lot easier.
Not sure about you, but Id look into doing the facial rig using bones only.

Cool. It seems to work quite well. Thanks. I can’t figure out how to unify the skin weights down every card properly though.

In maya there is a tool called weightHammer. That basically takes the weights of surrounding vertex selection, and averages that onto the selection.
So you could simply select the vertices of each strand down to the base, leaving some at the base out. When you then run weightHammer it will pretty much duplicate those weights down the length of that object.

Additionally you can use ngSkinTools to unify weights further which will take the weights of the vertex selection, average those and apply it back to the selection.