# Animated Mouth Keyframe using Geometry Nodes Loops Through Each Expression

So I have a geometry node that contains 12 mouth expressions. When I try to keyframe one expression, then switch to another it loops through every expression in between until it reaches the expression I set for the keyframe.

Example: Smiling ID 1 -> then I switch to Neutral ID 5, my animation would show every expression including mouths 2, 3, and 4 and then finally 5

Here's my geometry nodes

How to I make it only show the 2 expressions and not loop through every single expression I have?

• could you pls upload your file?I'll have a try. Commented Mar 15, 2022 at 12:23
• My guess is that you have not switched the Interpolation Type in the Graph Editor. By default it is set to Bezier, then the values are calculated by the number of frames (something like 1.1, 1.2, 1.4, 2.0, ..., 4.7, 4.9, 5.0). For the switch values you need constant values (1.0, 1.0, 1.0, ..., 1.0, 5.0). In the GE you can switch it to Constant with the shortcut key T. Commented Mar 15, 2022 at 13:01
• ah wow that worked! thanks Commented Mar 15, 2022 at 14:33
• @Blunder could you elaborate on that and post it as an actual answer? Thanks Commented Mar 16, 2022 at 15:37

The problem here is the default Interpolation Type that is Bezier and used in the Graph Editor for the keyframes.

For an animation, you want to move an object smoothly from A to B. To simulate the inertia of the object, the movement at the beginning and at the end is done with some acceleration and deceleration, respectively. The position between the keyframes is calculated. That's the interpolation and the Bezier curve adds the acceleration and deceleration.

For switches that control facial expressions like in this question this behavior is bad because when you create a keyframe at frame 1 with a value of 1 for expression "neutral" and another at frame 60 with a value of 5 for "smile" then Blender will make this switch value count over 60 frames from 1 to 5.

It goes something like 1.000, 1.0085, 1.0337, 1.0743, 1.1317, 1.2033, ..., 4.9914, 5.0000.

But you want to have 1, 1, 1, 1, 1, 1, ..., 1, 5.

To get this you need to set the Interpolation Type to Constant in the Graph Editor. Select the keyframe and press T, a shortcut for the menu entry Key > Interpolation Type. In the popup select Constant.

In animation, this will make the cube jump from position A to position B at frame 60.

Switch values will work like on/off switches with this setting. (There is no switch like on/a little bit off/more off/almost off/completly off ;-)