Il y a déjà plus d’un an, je commençais à expérimenter autour d’une nouvelle physique pour les véhicules de ManiaCrash, la probable suite de ManiaDrive. En effet, pour un jeu de caisses, l’essentiel de l’expérience utilisateur (voire du gameplay lui-même) passe par la physique des véhicules, ce qui en fait évidement l’un des éléments les plus travaillés pour cette catégorie de jeux : TrackMania, rFactor, Burnout, … autant de réponses complètement différentes autour d’une problématique pourtant identique : faire cohabiter 4 roues, un volant et la volonté du joueur.
Il existe essentiellement deux grandes orientations distinctes pour simuler le comportement d’un véhicule dans un jeu : se créer ses propres règles arbitraires ou suivre celles imposée par la physique.
La première option est évidement tout à fait adaptée aux conduites orientées arcade. On imagine mal, par exemple, Wipeout faire autrement que de s’inventer une physique complètement farfelue capable de gérer les virages en épingle à 800 km/h que propose le jeu. De la même manière, si vous avez déjà touché à un monument comme Daytona USA, je pense que vous voyez précisément ce que peut être une « physique custom ».
Concrètement, avec ce genre de solutions, on va par exemple remplacer les ensembles suspensions-pneus par un simple lancé de rayon sous la voiture pour déterminer sa position par rapport à la route et la déplacer sur l’axe de la hauteur en conséquence (les roues sont souvent dessinées dans un second temps à partir de ces informations), gérer le déplacement de la voiture sur un plan 2D, sans avoir besoin d’autre chose que de simples fonctions trigonométriques, etc.
A l’opposé, il est possible de se baser sur les règles « réelles » de la physique pour reproduire une comportement nettement plus proche de la réalité, à l’aide de la mécanique des corps rigides, de l’aérodynamique, voire de la pneumatique, de l’électronique, …
Au delà de l’énorme complexité de la simulation elle-même, le problème qui se pose très vite, c’est que créer un véhicule pour le jeu est à peu près aussi exigeant … que créer une véritable voiture ! Depuis la naissance de l’automobile, les constructeurs s’acharnent à inventer toutes sortes de choses pour améliorer le comportement des voitures : meilleur répartition des masses, suspensions Mac-Pherson, barres anti-roulis, évolutions pneumatiques, essieux directionnels, …
Dès lors, si l’on se contente de considérer une voiture dans un jeu comme une grosse boîte uniforme supportée par 4 cylindres, l’inévitable se produit dès les 100 premiers mètres : la voiture oscille violemment avant de se renverser lamentablement tel Richard Hammond dans un Suzuki Carry.
De son coté, pour la voiture, ManiaDrive utilise bien une « dynamique » basée sur un moteur physique (ODE), mais applique toutes sortes d’astuces pour offrir un comportement plutôt sain et assez simple d’accès pour le joueur. Une approche réaliste mais très assouplie, en somme.
L’astuce principale, liée à l’équilibrage général du véhicule (de mon point de vue, la chose la plus difficile à obtenir et de loin !), passe par un balancier invisible, placé nettement sous la voiture :
Ce balancier n’entre évidement pas en compte lors des calculs des collisions. Malgré sa faible taille, son effet est énorme, particulièrement parce qu’il est 4 fois plus dense que le corps de la voiture. Le centre de gravité est ainsi complément rabaissé, et la voiture contre très efficacement les efforts inertiels rencontrés lors des forts virages et les gros freinages, qui sont les situations les plus exigeantes pour l’équilibre de la voiture.
L’autre astuce très importante est liée à la friction des contacts roues-sol, qui se trouve être une constante dans ManiaDrive ! Cela signifie littéralement que « l’efficacité* » des pneus est la même quelle que soit la vitesse, les forces exercées sur le pneu, … Le pneu parfait, donc.
* Attention tout de même, cela ne signifie par pour autant que l’adhérence est constance, c’est un paramètre dépendant des forces appliquées (FDS : Force Dependent Slip).
Pour en revenir à la suite de ManiaDrive 1.x, je suis en train d’établir depuis quelques semaines maintenant une liste des points qui pourraient avoir un intérêt au niveau de la modélisation de la voiture :
- températures (pneus, freins, huile, embrayage, …)
- pression de gonflage des pneus
- contacts pneus-route utilisant un modèle type Pacejka
- différentiels ordinaires (central ? à glissement limité ?)
- courbes de couple / embrayage
- abs / esp / boite auto
- forces aérodynamiques (traînée et appuis)
- barres anti-roulis
- batterie (charge, décharge)
- retour de force (moment d’alignement)
- démarreur / noyade
- résistance tête pilote
- feu ? / buée ? / météo ? / « splashs » ?
- essuie-glace
- clignotants
- casse du par-brise / des rétros
Cette liste peut sembler ambitieuse et faire appel à des points à priori très futiles, mais il ne s’agit en aucun d’une « feature list » figée, mais bien d’un ensemble de directions qui semblent intéressantes à creuser pour ce que je souhaite faire pour ManiaCrash.
Reste que pour l’instant, le résultat, c’est ça :
C’est à dire une véritable savonnette absolument impossible à conduire, capable de partir dans un drift « fast & furious staïle » pendant une simple tentative de créneau. C’est simple, le machin rond en face du conducteur ne sert pas à diriger le véhicule, mais uniquement à émettre plus ou moins de fumée. Plutôt plus, d’ailleurs.
La suite de tout ça (et l’objectif de cette série d’article), c’est d’essayer d’une faire … une véritable voiture. A suivre !
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.