So I’ve ran into an easy problem but with no obvious solution: I have a rigged character which moves and does various things, but I also want it to speak and have the voice lip-synced. Unlike most models however, the mouth animation is not a shape key, and instead the lower and upper parts of the mouth are rigged to two bones. This would be easier if I was willing to do the lip-syncing manually, but I want to generate it using “bake sound to f-curve” from the voice file. I have two problems with that:
First is that the character is already animated and has an armature action applied to all bones. I want lip syncing to influence the mouth bones of the same armature, but without interfering the animation. Only solution is if I can play two armature actions on the same rig in the timeline, which I heard should be possible via the NLA editor.
Second problem is how to apply the intensity of the baked f-curve to the mouth bones, and have it change their rotation by a given amount. I assume I could keyframe the X rotation of the mouth bones at frame 0, then bake the sound as a modifier to that. But such might not work, since rotation is stored as WXYZ and I’d need to change XYZ precisely. A better solution is for the action to contain only the animation of the mouth opening, the f-curve applying it like a shape key (0 = action start, 1 = action end). But does Blender let you key the influence of an armature action between 0 and 1 on the timeline, instead of interpreting each keyframe of that action based on its position?
It seems tricky, but I’m hoping some way can be found. Bone constraints might work too, but I’m not sure how.