Action from the NLA editor sticks when I change frames

I’m getting a strange problem in Blender 2.68a. I have an armature that controls facial expressions through drivers. I have actions in the NLA editor for frames 50-100. When I change the frame to somewhere within 50-100 and then back outside that range, the bones remain posed as if they were still within that range. Is Blender supposed to work this way? I haven’t had this problem until today. Do I need to add an action to the NLA editor that poses all the bones at 0 rotation? It might be hard to find the armature that controls the facial expressions in the .blend file that I have attached. It is between the character’s feet.

Attachments

facebones_test_20130828.blend (1.68 MB)

After testing further, it appears that this problem exists also on the armature that controls the body, not just the armature that controls facial expressions.

This is a known bug in the current NLA implementation (I’m slightly surprised it’s taken so long for someone to notice actually).

Fortunately there is a workaround:

  1. Create an action which contains a keyframe which contains a suitable set of default/restpose values for each and every property animated in any of the strips
  2. Ensure that it is added as the bottom-most strip in the NLA. This can be done by adding the strip normally, then using the ordering tools to move the track downwards
  3. Make sure the strip is set to extend/hold its values both forwards and backwards in time beyond the strip extents.