6
$\begingroup$

I am having trouble getting the Record Animation setting to work in the BGE. Is it possible to record animated characters that are controlled using BGE's logic bricks with some script? In my script I change the positions of the characters bones.

$\endgroup$
2
  • $\begingroup$ I don't think the Record Animation option records armature. I think it's only the position/rotation of rigid bodies. $\endgroup$ – CharlesL Apr 25 '14 at 15:05
  • $\begingroup$ It doesn't seem to record rigid bodies in the BGE. The joint constraints fail to work. $\endgroup$ – Anthony Forwood Jun 5 '16 at 22:23
3
$\begingroup$

Sadly the Record Animation does not record logic bricks. It only records the actions for physics. Example: a tower falling down and all the pieces scattering across the ground.

$\endgroup$
1
  • $\begingroup$ Ah that is unfortunate, would be a great feature to record come complex systems that could take ages to animate... Thanks anyways! $\endgroup$ – CubeBot88 Apr 28 '14 at 14:37
1
$\begingroup$

This is an older question, but according to this it now does record logic bricks:

https://docs.blender.org/manual/en/dev/game_engine/physics/introduction.html

$\endgroup$
1
  • $\begingroup$ Indeed, it says so in the document,... but it doesn't work, does it? $\endgroup$ – Ideogram Nov 10 '18 at 8:51
0
$\begingroup$

This is not intented as an answer, but it's too elaborate for a comment.

I had the same situation. I wanted a couple of objects to 'tumble' keeping their original location. This would have been really easy to accomplish using logic bricks and the game engine. Instead, I choose to write a very simple Python script. I just post here in case some one else finds it useful.

(That being said, this can ofcourse also be accomplished using keyframe animation. I found Python to be more effective)

import bpy, math, random

scene = bpy.context.scene

for actFrame in range(1,250):

    bpy.context.scene.frame_set(actFrame)

    i=0 

    for ob in scene.objects:

        if "dark" in ob.name: # or any other condition that suits your needs

            i=i+1

            rotx = actFrame / 30
            rotx = rotx*(1+i/6)

            rotz = actFrame/180
            rotz = rotz*(2.5-i)

            ob.rotation_euler = (rotx, 0, rotz)
            ob.keyframe_insert(data_path="rotation_euler", index=-1)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.