Historique des modifications - Message

Message #9358

Sujet: Système de collisions de type RPG


Type Date Auteur Contenu
Dernière modification 19-01-2011 14:21:51 Metallizer
Bon ça fait quasiment un an que tu as posté ce message mais je tiens quand même à faire partager mon expérience à ce niveau car je suis exactement dans la même situation.

Au départ, je pensais que tout était prévu dans Irrlicht pour gérer des collisions, après tout, c'est une bibliothèque qui est censée faciliter le développement de jeux 3D. Et en effet, il y a le CollisionResponseAnimator qui permet de faire de la collision Objet/Terrain (ou Mesh de décor). Seulement voila, je la trouve extrêmement limitée, d'ailleurs c'est l'avis de tous sur ce forum.

Puis on m'a conseillé d'implémenter un moteur physique. Je suis parti sur Newton mais je ne suis arrivé à rien de bon avec ce moteur. Un simple cube qui tombe sur un plan et le cube passe au travers (il s'enfonce lentement dedans comme dans du sable mouvant) puis tourne sur lui même hmm

Je suis ensuite passé à Bullet, moteur plus apprécié on dirait, il est aussi plus concluant dans mon cas, le cube tombe et s'arrête bien au sol. Je ne suis pas allé plus loin que ça, le cube rebondit sur le sol en fonction de la hauteur à laquelle il a été lâché.
Ce comportement ne me convient pas, je n'ai pas encore trouvé comment paramétrer mes objets pour que le cube tombe et s'arrête net
sur le sol... J'espère seulement que c'est possible.
Autre problème que j'ai : collision Objet/Décor et là je n'ai toujours pas réussi à faire ce que je voulais, à savoir que le cube monte
la pente quand je le déplace. Au lieu de cela, il fonce droit dedans et passe au travers, comme si c'était resté plat. Autre soucis :
Le cube dévale la pente comme si elle était savonneuse, j'espère trouver un moyen de spécifier un seuil à partir duquel mon cube doit
glisser et à quelle vitesse...

Bref je suis un peu déçu de ces moteurs physiques qu'on nous vente à droite et à gauche et je me pose beaucoup de question sur
comment on peut arriver au résultat souhaité. Pourtant, je ne demande pas la lune mais seulement que mon personnage puisse marcher,
gravir les pentes, les descendre. Rien de plus. Mais visiblement ça à l'air super compliqué de mettre en place un tel système.
A moins qu'on m'en apporte la preuve du contraire, les anciens jeux 3D des années 90 n'utilisaient pas de moteurs physiques, j'aimerais
vraiment trouver un article sur le net qui explique le fonctionnement de collisions simples entre une primitive géométrique et un
mesh aux multiples triangles (et sans maths compliquées qui nécessitent un BAC+5 math spé).

En attendant, j'ai avancé sur d'autres aspects de mon jeu, pour le reste, son code source est disponible et mis à jour régulièrement,
si un jour quelqu'un me met le nez dans mes bêtises avec Bullet, ça me rendra un grand service :

http://www.is06.com/telecharger.php
Création du message 19-01-2011 14:20:51 Metallizer
Bon ça fait quasiment un an que tu as posté ce message mais je tiens quand même à faire partager mon expérience à ce niveau car je suis exactement dans la même situation.

Au départ, je pensais que tout était prévu dans Irrlicht pour gérer des collisions, après tout, c'est une bibliothèque qui est censée faciliter le développement de jeux 3D. Et en effet, il y a le CollisionResponseAnimator qui permet de faire de la collision Objet/Terrain (ou Mesh de décor). Seulement voila, je la trouve extrêmement limitée, d'ailleurs c'est l'avis de tous sur ce forum.

Puis on m'a conseillé d'implémenter un moteur physique. Je suis parti sur Newton mais je ne suis arrivé à rien de bon avec ce moteur. Un simple cube qui tombe sur un plan et le cube passe au travers (il s'enfonce lentement dedans comme dans du sable mouvant) puis tourne sur lui même hmm

Je suis ensuite passé à Bullet, moteur plus apprécié on dirait, il est aussi plus concluant dans mon cas, le cube tombe et s'arrête bien au sol. Je ne suis pas allé plus loin que ça, le cube rebondit sur le sol en fonction de la hauteur à laquelle il a été lâché.
Ce comportement ne me convient pas, je n'ai pas encore trouvé comment paramétrer mes objets pour que le cube tombe et s'arrête net
sur le sol... J'espère seulement que c'est possible.
Autre problème que j'ai : collision Objet/Décor et là je n'ai toujours pas réussi à faire ce que je voulais, à savoir que le cube monte
la pente quand je le déplace. Au lieu de cela, il fonce droit dedans et passe au travers, comme si c'était resté plat. Autre soucis :
Le cube dévale la pente comme si elle était savonneuse, j'espère trouver un moyen de spécifier un seuil à partir duquel mon cube doit
glisser et à quelle vitesse...

Bref je suis un peu déçu de ces moteurs physiques qu'on nous vente à droite et à gauche et je me pose beaucoup de question sur
comment on peut arriver au résultat souhaité. Pourtant, je ne demande pas la lune mais seulement que mon personnage puisse marcher,
gravir les pentes, les descendre. Rien de plus. Mais visiblement ça à l'air super compliqué de mettre en place un tel système.
A moins qu'on m'en apporte la preuve du contraire, les anciens jeux 3D des années 90 n'utilisaient pas de moteurs physiques, j'aimerais
vraiment trouver un article sur le net qui explique le fonctionnement de collisions simples entre une primitive géométrique et un
mesh aux multiples triangles (et sans maths compliquées qui nécessitent un BAC+5 math spé).

En attendant, j'ai avancé sur d'autres aspects de mon jeu, pour le reste, son code source est disponible et mis à jour régulièrement,
si un jour quelqu'un me met le nez dans mes bêtises avec Bullet, ça me rendra un grand service :

http://www.is06.com/telecharger.php

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
129 invités en ligne
membre en ligne: -
RSS Feed