 | |  |
| diccy | Bonsoir à tous ^^!
Je travaille actuellement sur un projet d'action aventure, et je galère pas mal sur ma caméra à la 3ème personne.
Mon problème principal est de gérer les collisions avec les murs. La faire glisser sur ceux-ci (ou en donner l'illusion en tout cas), éviter qu'elle pénètre dans les murs, puis qu'elle se replace en s'éloignant, le tout sans cahots no déplacements brutaux qui font mal aux yeux.
Je voulais savoir si quelqu'un pouvait m'éclairer sur une manière de gérer ceci, de me montrer un exemple ou une méthode d'approche du problème... quelque chose, aussi infime soit-il, qui pourrait m'aider à avancer .
Merci d'avance ! |
Aego Obi Wan Profil : Pilier du Forum
| Ca dépend du moteur TR, mais en général, tu peux associer à ta caméra une box transparente qui servira de box de collision ---------------
Un mec qui parle trois langues c'est un trilingue, un mec qui parle deux langues c'est un bilingue, un mec qui parle une seule langue c'est un Anglais
Mon nouveau site : www.aego-prod.fr
Mon nouveau blog : http://aegozone.blogspot.com
|
vinc3r | Il suffit ensuite de bien penser ses boites de col dans le décor, et ça devrait être bon, avec un peu d'inertie sur la caméra (je mettrais une sphère plutot qu'une box pour la col dédiée à la caméra ). ---------------
Nothing-is-3d.com
|
diccy | En fait, comme la position de ma caméra dépend du positionnement du joueur, ainsi que de certains scripts de déplacement de la caméra, c'est dans la pratique pas aussi facile que dans la théorie. J'arrive pas à la faire slider sur les obstacles.
Pour l'instant, j'ai un script qui ressemble à ça:
-Une spline en forme de cercle dont le centre est le PJ.
-La caméra est sur le cercle, avec un position on curve, et se déplace de haut en bas en se déplaçant sur le cercle.
-Et un script pour faire tourner le cercle sur lui-même, pour le déplacement latéral de la caméra.
Pour la collision, j'ai essayé de mettre un cube sur la caméra, et lorsqu'il y avait collision, je faisais un scale sur le cercle pour le rapetisser, jusqu'à ce qu'il n'y ait plus collision. A l'emplacement de la toute dernière collision, j'y faisait poper une 3Dframequi servait de repère, j'attendais une seconde, et je faisais tester la distance entre cette frame et la caméra. Si elle était assez grande, le cercle reprenait peu à peu sa taille normale.
C'était la solution qui marchait le mieux, parmi mes différents essais, avant de venir demander de l'aide ici ^^. Mais le problème majeur était que ca rendait un effet assez épileptique à l'écran, et ce n'était pas du tout confortable. Les mouvements de rapetissement étaient trop brusques, et le "retour à la normale" trop lent. Mais cette lenteur était contrainte par le fait que lorsque je n'avais pas mis les une seconde d'attente et le test de distance, la caméra passait son temps à avancer et à reculer sans cesse, quand elle était en collision, et c'était encore pire.
Donc voilà, c'est un vrai bazar cette histoire de caméra 3ème personne, et je n'arrive pas à m'en dépêtrer...
Peut être que mon système de base (avec le cercle) n'est pas adapté... mais je n'ai pas trouvé mieux (le keep at constant distance n'étais pas super pratique à mon goût... mais peut-être que je me trompe).
Je ne l'avais pas précisé avant, mais je travaille sous Virtools 4.0 .
|
| |
| | |