Moving Armature without animations

Hi there guys,

I’m trying to move an armature in response to keyboard within the Game Engine.

I tryied to change the position of the bones programmatically through python scripting, but nothing moves in the scene.

I tryied to use armature.update(), and it didn’t work (In Editor I can, but in the Game Engine, I can’t).

Every tutorial I see in the internet include Animations for moving the armature.

I would like to know if and how can I move the armature in the Game Engine running without involving animations.

My goal is: move them according to external commands coming from the network.
Is always needed to create animation for this kind of stuff? Can’t I modify the scene programmatically in the Game Engine running?

Thanks in advance,

Pedro Ferreira.

Attachments

bast-environment.blend (1.28 MB)

Hmmm… I think I’ve done it before, but that was a long time ago, and I don’t quite remember how it was done.

However, BluePrintRandom should know, if I remember correctly he did a lot of that.

Have you tried searching the Game Engine section of the forum?

Hi John,

This is that section, no?

Just a motion actuator, if i understand you correctly!

This demo should show how to do it with python:
leg_ik.blend (464 KB)

press “w” to move the leg.
It’s pretty difficult to animate by bone, so it’s probably best to set up some IK chains and just move the pointers.

Here’s the relevant API entries:
http://www.blender.org/api/blender_python_api_2_72_1/bge.types.BL_ArmatureObject.html#bge.types.BL_ArmatureObject.update

http://www.blender.org/api/blender_python_api_2_72_1/bge.types.BL_ArmatureChannel.html#bge.types.BL_ArmatureChannel

I think a motion actuation doesn’t solve the problem.
What I want is write a python method to move/rotate the specified bone whose name that is passed as parameter.
I already did one version, but It works inside blender, and doesn’t work inside Game Engine.
Regards,
Pedro.

Hi, if you check the blend file I posted you’ll see all the required elements. I’m getting the foot_hook bone from the armature by name and moving it manually. The “armature” actuator just tells blender to update the pose each frame after I’ve made changes. You can get any bone by name, change its rotation and location and have it update in real time. No actions required.

Maybe you’re using bpy when you should be using bge?