Animation script

Hi guys,

I’m looking for help with the following issue: I wanna make animations employing scripting only without “Action” actuator. But there is a catch – I’m unable to stop this animation from inside a script before i start the next one on a layer.

Using the actuator, it might look light this:

# start


if own['prop'] == 1:
    cont.activate('act')






#stop


else:
    cont.deactivate("act")

But without the actuator, it seems to be possible to stop the whole layer only:

#start


if key_w == press:
    sce.objects['arm'].playAction('act1', 1, 40, layer=1, priority=0, blendin=5, play_mode=1, layer_weight=0.0, ipo_flags=0, speed=1.0, blend_mode=5)


#stop


else:
    sce.objects['arm'].stopAction(1)



Due to this I can’t use more than a single animation on a layer, and, as such, mix animations. Do you have any ideas on how to stop a specific animation?

P.S. All animations are using “loop stop” playback mode.

stopAction(1) will stop all animations on layer one

to get around this

a. use more layers

b. stop all, and start the one you wish to continue at the current frame value

http://www.blender.org/documentation/blender_python_api_2_67b_release/bge.types.KX_GameObject.html?highlight=gameobject#bge.types.KX_GameObject.stopAction

Thank you. I understood.