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, 2014 at 15:05
  • $\begingroup$ It doesn't seem to record rigid bodies in the BGE. The joint constraints fail to work. $\endgroup$ Jun 5, 2016 at 22:23

3 Answers 3

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, 2014 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, 2018 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$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .