Re: un jeu de tir a l'arc (wiimote inside)

Posté par sebz le 10/2/2008 17:15:09


j'ai bossé un peu la mecanique du jeu , enfin pour etre precis , l'IA de mon "Gruken"

Je l'ai realisé en logic bricks uniquement (j'ai tendance a faire trop de scripts mal faits) en partant de ce qui a deja été fait sur ce forum et ailleurs ex: ici)

voici donc 2 video de demo vite fait:

-video 1 evitement de murs simple: trajet en ligne droite

-video 2 evitement d'obstacle avec deplacement et evitement aleatoire

le systeme de detections est donc constitué de 3 "ray" : 2 lateraux d'une portée de 3 et un frontal d'une portée de 8
les regles d'evitement:


-tourne aleatoirement a droite ou gauche toutes les 60ms
-si il se retrouve en face d'un obstacle et que la voie est libre a droite et a gauche il choisit aleatoirement de tourner a gauche ou a droite
-si il y a un obstacle en face et d'un coté,il tournera du coté opposé
- s'il se retrouve entouré d'obstacle (à gauche,à droite, en face) il tourne aleatoirement

je n'utilise que des rays car ce sont les seuls a ne pas me provoquer de p tain d'erreurs " BtCollisionDispatcher " qu'apparemment personne ne sait resoudre pour l'instant
(ca me casse le FPS ce truc)

j'ai aussi decouvert 2-3 trucs concernant les collisions et comment eviter que les objets volent quand ils se rencontrent (pb frequent quand on debute comme moi ) , par exemple:



-pour tous les objets a but decoratifs qui sont parenté a une armature , je décoche "collision" dans le menu UV face select afin qu'ils soient totalement ignorés par le moteur physique ( en "ghost" les collisions sont toujours présentes : on le voit quand on lance la simu avec la visualisation de la physique ) ca evite certains bugs

-ainsi seule l'armature est soumise a la physique: on lui met "actor" et "dynamic", on lui regle le poids du perso "Mass" et le rayon "Radius" qui definit la sphere de collision de l'objet (quand on lance la simu avec la visualisation de la physique ,celle ci est représenté par un octaèdre )

Radius doit donc etre la distance entre le centre de l'objet/armature et son point le plus bas (les pieds du perso) pour que les pieds du perso reposent sur le sol

- un truc que je n'arrive toujours pas a gérer c'est le bouton "bounds" qui permet d'attribuer une autre forme de collision que la sphere (cylindre , cube, geometrie complete du mesh )
ca marche tres bien vue de dessus mais sur le coté, il y a un gap constant de ~0.2 blender entre l'objet et le sol , qu'on ne peut reduire car le "Radius" ne marche pas dans ce cas

D'apres ce que je sais ce serait un ptit defaut dans la physique , qui est surtout visible quand on utilise une petite echelle comme moi ( 1m = 1 unité blend dans mon cas)

pour l'instant je garde donc tous mes persos animés dans cette config pour que leurs pattes /pieds touchent le sol

Ainsi quand vous faites différents persos qui doivent interagir entre eux ( se bousculer, se pousser, etc..)
veillez a ce que les centres de leurs armatures soient a peut pres a la meme hauteur et qu'ils aient le meme radius
explication:





voila aidez moi a completer ou a corriger si ça ne va pas

@ + sebz

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=11932&post_id=150614