How do I add speech shape keys to a Rigify rig?

I’m trying to create poses for different speech phonemes for lip syncing. I’ve created a rigify rig for my human character and am trying to figure out how to create extra bones I can use to drive shape keys.

I’d prefer to use shape keys for my lip poses because I feel the bones generated by Rigify do not give me enough expression. My plan so far is to add an extra bone for each pose to my meta rig by creating a basic.super_copy, parenting it to the head bone and unchecking it’s Deform option. I can then constrain the generated bone to only move along the Y axis and use that to drive my shape key. The trouble with this is that I lose my constraint and driver info whenever I regenerate the rig, and I can’t add any extra info such as a label that indicates what the bone does or a box to indicate its boundary. I also cannot find any way to add the bone to the facial bone group.

Anyhow, this setup works for custom rigs, but Rigify is doing enough weird stuff behind the scenes that it’s not obvious how to get it to work with Rigify. I was wondering if there might be a better way to go about getting facial expression keys to work with Rigify?

Well, let me start off by saying I don’t use rigify…

I doubt that rigify wouldn’t give you what you need for phonemes. I say that because this animation was done with a rig not as advanced as rigify. Since I made that animation (9 yrs ago), rigify has continued to evolve and improve. So I can’t understand why rigify wouldn’t be able to accomplish this. (please note that I was away from blender for a few years after that animation)… But if you want to do shape keys…

This is kind of the direction you want to go in, but you are going about it wrong. Generate the rigify rig, then enter edit mode for that rig and add in your extra bones. Lock down all rotation & scale channels and 2 of the 3 location channels. Now you have a bone that will only move in 1 direction without constraints. Overcomes this problem…

For this -

You have to look back in time.This is how is was done back in the Big Buck Bunny (blender 2.46 ~ 2.49ish days). You use a custom bone shape, which is just a mesh object. This mesh object can contain boxes and text and anything else you want. Generally it’s all verts & edges, no faces. (and I regret that I don’t have an old file to show you a screenshot of this)

Basically, add a bone in edit mode and make it a child of head bone. This bone shows the bone shape that is the boxes and text, indicating what the bone does. Then add in the bones you locked down to move in only one direction in the right places and make them a child of the bone with the custom shape.

Anyway, feel free to ask questions, and if you want a quick example, I’ll make one…
Randy

1 Like

Not sure if this is the best solution, but it’s what I’m currently doing.

Don’t add it to the metarig, since then things can get messy when there’s future updates to Rigify, or you re-generate the rig etc.

Instead, just create a new simple rig with single bones and setup the driver keys on those.

Then what I do for the final model/rig file that I link into layout/animation scenes is I join the two rigs together and it all works as one.

If I need to make changes then I can always go back to my working files, adjust as need be and recreate/replace the final linked file.

2 Likes