2
$\begingroup$

I'm trying to show / hide a multitude of mouth models to simulate talking (because the face has such poor geometry that a facial rig isn't possible).

Here is an image listing all the mouth models:

mouth models

I know that you can press i to insert a keyframe when you're hovering over visibility options, but that takes wayyy too long considering I cant copy and paste the visibility keyframes.

So I just want to know if there is a more efficient way of simulating talking by showing/hiding mouths instead of creating a facial rig.

Another thing I'm looking at is making an addon that does just that. I know a very small bit of python and not enough to make my own add-on so if there are any good resources to learning add-on creation that you know about I would appreciate it if you linked them.

Another idea that I think would be able to make this work is doing something with geometry nodes maybe?

Here is the blend file - let me know if textures are needed.

Also please let me know if any other info is needed.

Thanks!

$\endgroup$
1
  • 2
    $\begingroup$ "I can't copy and paste the visibility keyframes." there's plenty of options depending on what exactly is your problem... auto keyframe, keying sets, drivers... $\endgroup$ Commented Jan 15, 2022 at 14:53

1 Answer 1

4
$\begingroup$

version Auto-Keyframe

At frame one add keyframe to all expresions ... and enable Auto-keyframing

enter image description here

... now the only one thing you have to do is to show/hide object in Outliner.

BTW ... you can copy&paste or duplicated&move keyframes of visibility in Dope Sheet
(to se also unselected objects disable cursor icon).

enter image description here

version Driver

As pointed by Markus in comment ... you can manage mouth expressions by drivers. You can use another object's location or rotation (or what ever) to control show/hide appearance.

Here is object visibility controled by bone rotation ...

enter image description here

enter image description here enter image description here

enter image description here enter image description here

enter image description here enter image description here

By right click you can Copy-Paste driver from Scene to Render visibility ...

enter image description here

Note: By default drivers use rotation value in radians (even blender UI is set and displays degrees). Since it is more natural to use degrees use for angle 45° radians(45) or 45*(pi/180) ... scripted expression for Cube in this example looks like

0 if ((var > radians(-45)) and (var < radians(45))) else 1 

... this tells blender to display Cube in bone range -45 to 45.

$\endgroup$

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.