View Single Post
  #3  
Old 12-20-2010, 08:05 PM
psykoko psykoko is offline
Member
 
Join Date: Dec 2010
Posts: 9
Hi,

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?
Reply With Quote