You need to invoke your script from an actuator otherwise the scene will not be updated see image at the bottom of this post. I searched my old sources and found this very messy one that still works in BGE (today tested with Blender (2.68.5):

import sys import time import os import random import select from math import * import mathutils import bge import bpy import math from mathutils import Vector from mathutils import Quaternion def applyKinect(rot,name): scene = bge.logic.getCurrentScene() source = scene.objects main_arm = source.get('Armature') #q = Quaternion((rot.w,-rot.x,-rot.z,rot.y)) q = Quaternion((rot.w,rot.x,rot.y,rot.z)) main_arm.channels[ name ].rotation_quaternion = q.normalized() main_arm.update() v = rot.to_euler("XYZ") if name.startswith('head'): print("%s X:%r Y:%r Z:%r" % (name,math.degrees(v.x),math.degrees(v.y),math.degrees(v.z))) def map(): #print("map") for i in range(1, 11): user = bpy.nui.get_user(i) if not user: continue #print("Map Kinect Found User=" + str(i)) # rot = user.hip_center[1] # applyKinect( rot, 'hip_center' ) # print("hip_center %r" % rot ) #rot = user.neck[2] #applyKinect( rot, 'neck' ) rot = user.head[2] arm = applyKinect( rot, 'head' ) rot = user.r_shoulder[2] applyKinect( rot, 'shoulder_R' ) rot = user.r_elbow[2] applyKinect( rot, 'elbow_R' ) rot = user.r_wrist[2] applyKinect( rot, 'wrist_R' ) rot = user.r_hand[2] applyKinect( rot, 'hand_R' ) rot = user.l_shoulder[1] applyKinect( rot, 'shoulder_L' ) rot = user.l_elbow[1] applyKinect( rot, 'elbow_L' ) rot = user.l_wrist[1] applyKinect( rot, 'wrist_L' ) rot = user.l_hand[1] applyKinect( rot, 'hand_L' ) def dump(ctx, obj, level=0): for attr in dir(obj): print( "%s.%s = %s" % (ctx, attr, getattr(obj, attr))) map() #test()
I used quaternions (note that you can convert your euler angles to a quaternion using the methods from mathutils).
The data is provided by an addon (and polled by bpy.nui.get_user(i)), the script is executed with a logic block like this:
