1er mars 2023

Physique des véhicules 

Avec cette release d’Evergine, les développeurs peuvent désormais créer facilement des simulations de physique des véhicules. Le modèle physique des véhicules est simplifié : il n’est plus nécessaire de simuler chaque roue et le châssis comme des corps rigides distincts reliés par des joints. Le véhicule entier est au contraire représenté par un seul Rigid Body, ce qui simplifie le modèle physique et améliore aussi les performances.

Pour simuler la détection de collision des roues, Evergine utilise le ray-casting, qui reproduit de manière approchée le comportement des véhicules réels. Cette solution simule aussi avec précision la friction entre le pneu et la surface.

Les développeurs disposent d’une grande flexibilité pour créer différents types de véhicules avec un nombre arbitraire de roues, des propriétés de suspension, des axes de rotation, et bien plus. Il est ainsi possible de créer des simulations de véhicules réalistes et complexes.

Pour se lancer dans la physique des véhicules avec Evergine, les développeurs doivent utiliser deux composants : PhysicVehicle3D et PhysicWheel3D.

 

Composant PhysicsVehicle3D

Le composant PhysicVehicle3D doit être ajouté au rigid body du châssis que le développeur souhaite transformer en véhicule. Ce composant applique au corps physique les forces qui simulent la suspension, le couple moteur et le freinage.

Propriétés utiles

Les propriétés suivantes permettent de personnaliser votre véhicule :

  • SuspensionStiffness : la raideur de la suspension mesure la force nécessaire pour comprimer la suspension d’un véhicule.
  • SuspensionCompression : cette propriété détermine dans quelle mesure la suspension se comprime lorsque la roue rencontre une bosse ou un obstacle.
  • SuspensionCompression : cette propriété détermine la vitesse à laquelle le ressort de suspension se comprime et se détend. Elle contrôle la force d’amortissement appliquée à la suspension lorsque le véhicule rencontre des bosses ou un terrain irrégulier.
  • MaxSuspensionTravel : représente la distance maximale de compression ou d’extension de la suspension. Elle s’exprime en unités de longueur.
  • FrictionSlip : correspond au glissement qui se produit entre le pneu et le sol pendant le mouvement. Le glissement par friction est généralement modélisé à l’aide d’un coefficient de friction qui représente le rapport entre la force tangentielle et la force normale entre le pneu et le sol. Ce coefficient peut être ajusté pour simuler différents niveaux de glissement et d’adhérence selon les types de véhicules et de surfaces.
  • MaxSuspensionForce : indique la force maximale que la suspension peut appliquer au châssis du véhicule. Elle sert à limiter l’effet de la suspension lorsqu’elle est comprimée ou étirée, afin d’éviter que le véhicule ne rebondisse trop ou ne perde en stabilité.

Pilotez le véhicule !

Pour commencer à piloter le véhicule, les méthodes suivantes vous seront utiles :

  • ApplyEngineForce(force) : cette méthode applique la force moteur au véhicule. Elle peut être ajustée pour augmenter ou réduire la vitesse du véhicule, et définie avec une valeur négative pour faire marche arrière. La force moteur n’est appliquée qu’aux roues motrices.
  • SetSteeringValue(steering) : cette méthode définit l’angle de braquage du véhicule. Utilisez-la pour changer la direction du véhicule. La valeur de braquage n’est appliquée qu’aux roues directrices.
  • SetBrake(brake) : indique la force de freinage appliquée par le véhicule. Cette valeur n’est appliquée qu’aux roues freinées.

Composant Physic Wheel

Le composant PhysicWheel3D doit être ajouté à chaque entité que le développeur souhaite utiliser comme roue du véhicule.

Les propriétés suivantes permettent notamment de définir les directions de suspension et de rotation de la roue :

  • WheelRadius : détermine le rayon de la roue.
  • RotationAxis : définit l’axe autour duquel tourne la roue. Il indique aussi la direction d’avancement lorsque la force moteur est appliquée. Il est exprimé dans l’espace local de l’entité de la roue.
  • SuspensionDirection : indique la direction dans laquelle agit la suspension de la roue. Elle définit aussi la direction de braquage. Elle est exprimée dans l’espace local de l’entité de la roue.
  • SuspensionRestLength : définit la longueur de la suspension de la roue lorsque le véhicule est au repos.

Conclusions

Les composants PhysicVehicle3D et PhysicWheel3D sont entièrement intégrés au système physique d’Evergine. Les développeurs peuvent donc tirer parti de toutes les fonctionnalités et capacités du moteur physique d’Evergine pour créer leurs simulations de véhicules.

En conclusion, le modèle de physique des véhicules d’Evergine simplifie la création de simulations de véhicules en permettant aux développeurs de représenter le véhicule entier par un seul Rigid Body. Cette approche simplifie le modèle physique tout en améliorant les performances. Les développeurs disposent d’une grande flexibilité pour créer différents types de véhicules aux propriétés personnalisables, ce qui permet de réaliser des simulations de véhicules réalistes et complexes. Les composants PhysicVehicle3D et PhysicWheel3D sont entièrement intégrés au moteur physique d’Evergine, ce qui permet aux développeurs de tirer facilement parti de toutes ses fonctionnalités et capacités. Avec cette nouvelle release, Evergine rend la création de simulations de véhicules de haute qualité plus simple que jamais.

David avila
Auteur
David Ávila
Plain Concepts Research