|  | 
| 
			 
			#1  
			
			
			
			
			
		 | |||
| 
 | |||
|  Vizard Collision (ON) issue 
			
			Hi,  I'm trying to enable the collision in my world. However, when I use the line viz.collision(viz.ON) something strange happens and I'm not sure what it is. Could someone give me a tip about what is happening? My guess is that there's something wrong with the view, but I don't know what to do. Here is the code: Code: import viz
import viztask
import vizmat
import AvatarCamera
viz.go()
viz.MainView.getHeadLight().disable()
#add sun-like directional light
l = viz.addLight()
l.position(0, 1, -.2, 0) #sets light direction
#root encapsulates all world geometry
#root = viz.addGroup()
#viz.setOption('viz.model.apply_collada_scale',1)
#viz.add('Bairro_c_passeio_4.dae', pos=[-1, 0, -1])
ground = viz.add('tut_ground.wrl')
avatarRoot = viz.addGroup()
avatarRoot = viz.add('marker.wrl')
cameraLookAtNode = viz.addGroup(parent=avatarRoot, pos=[0, 1.5, 0])
avatar = viz.add('vcc_male.cfg', parent=avatarRoot)
#Turn on collision
viz.collision(viz.ON)
#setup physics system so viewpoint does not move through walls
viz.phys.enable()
avatar.collideMesh(bounce=0, hardness=1, friction=0)
																																
def moveAvatar():
	avatar_speed = 1
	running = False
	jump =  False
	while True:
		#get user input
		newPos = vizmat.Vector()
		newPos.set([0,0,0])
		if viz.iskeydown(viz.KEY_SHIFT_L):
			avatar_speed = 10
			running = True
		else:
			avatar_speed = 4
			running = False
	
		if viz.iskeydown('w'):
			#walk forward
			newPos = newPos + [0, 0, avatar_speed]
		if viz.iskeydown('s'):
			newPos = newPos + [0, 0, -avatar_speed]
		if viz.iskeydown('a'):
			newPos = newPos + [-avatar_speed, 0, 0]
		if viz.iskeydown('d'):
			newPos = newPos + [avatar_speed, 0, 0]		
		isJumping = False
		isAttacking = False
		if viz.iskeydown(' '):
			#jump
			isJumping = True
		elif viz.iskeydown('v'):
			isAttacking = True
		
		if isAttacking:			
			avatar.state(6)
			yield viztask.waitTime( 1.5 )
		if newPos.length() > 0 or isJumping:
			if newPos.length() == 0:
				#jumping but no direction key, use current heading
				t = vizmat.Transform()
				t.setTrans([0, 0, 1.8])
				t.postEuler(avatar.getEuler()[0],0,0)
				newPos = vizmat.Vector( t.getTrans() )
			newYaw = vizmat.AngleToPoint(0, 0, newPos[0], newPos[2])
			avatar.setEuler(newYaw, 0, 0)
			if not isJumping:
				#just walking				
				cameraEuler = viz.MainView.getEuler()
				avatarRoot.setEuler(cameraEuler[0], 0, 0)
				newPos = newPos * viz.getFrameElapsed()
				avatarRoot.setPosition(newPos, viz.REL_LOCAL)
				if running == False:	
					avatar.state(2)
				else:
					avatar.state(11)
			else:
				#jumping
				avatar.state(7)
				yield viztask.waitTime( avatar.getDuration(7)+.01 )
				#compute jump direction
				newJumpPos = vizmat.Transform()
				newJumpPos.setTrans([0, 0, 1.8])
				newJumpPos.postEuler(avatar.getEuler(viz.ABS_GLOBAL)[0], 0, 0)
				avatarRoot.setPosition(newJumpPos.getTrans(), viz.REL_GLOBAL)
		
		
		if not (viz.iskeydown(' ') or viz.iskeydown('w') or viz.iskeydown('s') or viz.iskeydown('a') or viz.iskeydown('d') ):
			avatar.state(1)
			
		yield None
		
viztask.schedule(moveAvatar())
import vizcam
camera = vizcam.PivotNavigate()
camera.setDistance(5)
def moveCamera():
	while True:
		lookAtPos = avatar.getBone('Bip01 Pelvis').getPosition(viz.ABS_GLOBAL)
		lookAtPos[1] = lookAtPos[1] + .5
		camera.setCenter(lookAtPos)
		camera.updateCenter()
		
		yield None	
viztask.schedule(moveCamera())Last edited by kovitch; 08-08-2011 at 08:36 AM. | 
| Thread Tools | |
| Display Modes | Rate This Thread | 
| 
 | 
 | 
|  Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| Realistic Light and Shadows Using Vizard and 3DS Max | jde | Vizard | 4 | 07-13-2012 10:58 AM | 
| Vizard 4 Beta Testing | farshizzo | Announcements | 0 | 02-01-2011 10:46 AM | 
| Vizard 4 Beta Testing | farshizzo | Vizard | 0 | 02-01-2011 10:46 AM | 
| Vizard tech tip: Using the Python Imaging Library (PIL) | Jeff | Vizard | 0 | 03-23-2009 11:13 AM | 
| vizard 2.5 compatability issue | shai | Vizard | 3 | 08-10-2005 04:35 PM |