bake keyframes from game engine transformation (not physics!)

does anyone know how I can “record” the movement of an object out of the Blender game engine?
I have built a simple creature wtih two shape keys (mouth open/close) which I can control by pressing and releasing a key.
Now I need Blender to set a keyframe on every move I´m doing to get an animation curve. I found out, that Game Engine is able to bake physics animation out of bge…

Is there a python script which does the same trick for shapekey animation - or any other idea?


I think* you go to the menu Game > tick Record Animation… but I have no idea what else from there :spin:

In this example, I use fracture and ‘Animation Joiner’. to create shape key with a single click after animating fracture.
…It will create shapekeys automatically.
…using multiple objects to become 1 object.
…that can be use in BGE.
Hope it helps.
Have fun.
mzShapekey.blend (827 KB)

Thx for your replies, but I´m afraid they do not quite hit the target
… I had thought that I expressed myself again not really clear …
Let me go a bit more into detail - I hope I do not bore :-D:

I don´t need this for a game … I´m more into animations and want to use gameengine to save time:

I have a fully rigged character which I animate regularly for small (comedy) clips.
Animation works fine, I have a lot of poses and actions already available … everything cool.

The lip sync animation (which I do with 2 shape keys only: “mouth-open” and “mouth-closed”) always needs the steps

record .wav-file
use “papagayo” to break it down into phonemes
use “lip sync importer” to import it into blender

In order to shorten the whole, I used GE and put both shapekeys on my keyboard – like “press arrow-key” opens the mouth and “release arrow-key” closes it again. Now I can move my characters mouth already while talking (=recording the .wav). You can call it animating “real time” or “live”

This works absolutely fine, but now I need to “record” theses clicks ( =the mouth movement = ShapeKey values) somehow. That is, create (transform them into) keyframes to use it for my further animation .

This means something “interactive lip sync animation”, which not only saves real time, but also in terms of spontaneity is very very cool.

And this is where I´m stuck … Does anybody know if this is possible at all and how to do this trick – baking my “game action” into an F-curve … I know blender does it with physics but can you do it with other parameters too?

Would help me a lot !!!


Bumping this, as I need to be able to bake the results of the BGE (I’m using UPBGE for something) and I know you used to be able to do this.

Does anyone have any clues?

just dropping by again to say it’s been solved (in case google sends someone here again):

You need create vertex keyframes - edit vertex mesh first solution - create in panel object data in shape keys starter morph - model not deformation, create secondary shape group - and make need for you deformation - close open eye, smile face or angry face, and go to animation window - select shape key editor - an you see all keyframe shapes - assign frame and move toolbar for assign weight and make frames, secondary method create shape keys - modificator’s displacement, weave, ocean, simple deform - if you setup this modificator’s and apply as keyframe in panel shape key editor you see ready toolbar for make keyframes, for play animation need actuator action or script - need assign to object actuator or script and start play animation key shapes -
player_body = scene.objects[‘PlayerMesh’]
player_body.playAction(“Face_Smile”, 0, 50, blendin= 5, layer=1)
its simply example how play animation for player models - key shape animation play for mesh objects not for armature because animation shape keys recording for meshs and vertex, this type animation use more fps in game and need play this is animation be carefully

For generation terrain need use modificator displacement - and recording key shapes from displacement modificator and reinstance physics for mesh if animation generation terrain finished -
terrain = scenen.objects[‘Terrain_Level’]
this method good for generation planets - mix animation vertex and generation terrains and recalculation physics collision objects use animation key shapes, just remember - all mesh use animation shape keys stand in physics collision how start bounds object collision - for recalculation collision bounds need use python script