hi jeff,
i have solved my problem, thankyou. i did coding as follows
Code:
import socket
import struct
import viz
import viz
import vizmat
import vizinfo
viz.go(viz.PROMPT | viz.STEREO)
UDP_IP="localhost"
UDP_PORT=8000
sock = socket.socket( socket.AF_INET, # Internet
socket.SOCK_DGRAM ) # UDP
sock.bind( (UDP_IP,UDP_PORT) )
#Add an avatar to the scene
female = viz.add('vcc_female.cfg')
viz.clearcolor(0.5,0.5,1)
female.setPosition([-0.08,0,0.8])
female.setEuler([0,0,0])
female.scale(1.4,1,1)
#speed
MOVE_SPEED = 10
TURN_SPEED = 50
#view point
view = viz.MainView
#Get a handle to the Arm bone
Forearm = female.getBone('Bip01 R Forearm')
Forearm.lock()
Forearm.setEuler(0, -5, 0)
UpperArm = female.getBone('Bip01 R UpperArm')
UpperArm.lock()
UpperArm.setEuler(0, -30, -80)
Hand = female.getBone('Bip01 R Hand')
Hand.lock()
Head = female.getBone('Bip01 Head')
Head.lock()
Head.setPosition(-100,0,0)
Neck = female.getBone('Bip01 Neck')
Neck.lock()
Neck.setEuler(0,0,-15)
def example1():
while True:
data, addr = sock.recvfrom( 1024 ) # buffer size is 1024 bytes
udp = struct.unpack(">d", data)[0]
print udp
right = open('c:\\ownership\\test.txt', 'a+')
right.write(str(udp)+'\n')
if 0 < udp:
a = Forearm.getEuler()
A = a[2]
n = max(A -0.5,-90)
N = A + 90
Forearm.setEuler(0,0,n)
if n == -90:
Forearm.setEuler([0,0,N])
else :
b = Forearm.getEuler()
B = b[2]
n2 = min(B +0.2,0)
Forearm.setEuler(0,0,n2)
viz.director(example1)
but another problem is induced.
when i load my avartar, udp signal is losed.
but when i down(minimize "_") window seeing avartar, udp signal is receive perfectly,
i want to receive udp singal in window loaded avartar.
how can i?