VR Stories : Avatars, Bots et AI sur Unity

Un jeu c’est aussi ses personnages, et en VR vous en incarnez un directement. Il faut les animer, les faire réagir aux événements, éviter qu’ils traversent des objets, leur faire trouver un chemin. Il s’agit d’une partie relativement complexe dans un jeu car cette tâche demande souvent de nombreux ajustements. Il est facile de sous-estimer le temps à y consacrer, et pourtant c’est une partie essentielle au réalisme et au gameplay. N’hésitez pas à faire appel à des Asset du Store Unity, certains vous feront gagner énormément de temps !

Le Joueur et ses mouvements

Kinématic inverse

En multijoueur, on doit pouvoir voir les autres joueurs, il faut donc pouvoir animer correctement leurs avatars, leurs jambes, leurs bras, que tout soit à la bonne position ! En VR nous avons généralement que la position de la tête des deux contrôleurs. Il faut donc déduire les positions des pieds, du tronc, des épaules, coudes et genoux. C’est là qu’entre en jeu la kinématic inverse ! Il s’agit d’un ensemble d’algorithmes basés sur les contraintes du corps humain. Si vous avez à faire ça en VR, ne cherchez pas des heures : utilisez le plugin Final IK et notamment sa sous partie “VRIK“, c’est simplement le meilleur du marché !

Tracking des mains

Les technologies de tracking de main tendent à devenir courantes dans les nouveaux casques de VR (Oculus Quest). Mais il est aussi possible de l’ajouter avec une Leap Motion par exemple. Des plugins de kinematic de mains existent, notamment pour les interactions comme attraper ou toucher un objet. Dans ces cas il faudra choisir si on veut exactement reproduire la forme de la main VR, au risque de traverser les objets, ou plutôt adapter l’emplacement des doigts aux objets qu’ils touchent, quitte à ne pas position exactement la main où elle est réellement.

Le deuxième choix est souvent préférable, mais demande plus de travaille. Il faut aussi gérer les pertes de tracking afin que l’expérience reste visuellement agréable.

Les ennemis, Bots, AI

Path Finding

Le path finding est une technique consistant à trouver le chemin que peuvent emprunter les “bots” en évitant les obstacles. Un bon algorithme de pathfinding est important pour éviter que les bots suivent tous le même chemin, ce qui n’est pas très naturel.

Unity inclus un système de Navmesh et quelques exemples de path finding, cependant on arrive très vite à ses limites. Je vous conseille fortement un bon plugin de path finding. Souvent ces plugins vont de pairs avec des plugins dit d’enemy AI comme dans l’exemple à gauche. Dans cet exemple les ennemis détectent si on fait du bruit est sont attirés par les joueurs à proximité ou dans leur champs de vision. Ils se mettent en position pour pouvoir nous tirer dessus mais aussi se cacher.

Animations et Réactions

Les bots devront en plus de leur déplacement avoir des animations. Cela fonctionne avec le système d’Animator et de Rig de Unity. La création d’animations peut être un travail à part entière, heureusement pour nous des packs d’animations et de Mo-Cap existent !

Les animations sont la première étape, il faudra les enchainer correctement, mais si on veut gagner en réalisme il est important que les animations puissent s’adapter automatiquement à l’environnement et aux interactions. Allez jeter un œil au plugin Puppet Master par les même créateurs que Final Ik, il permet exactement cela et peut amener vos animations à un prochain niveau. A surveiller ausi : le package en preview de Unity sur le Animation Rigging.

Voilà qui fait un premier tour sur l’ensemble des techniques liés aux personnages et avatars. Si vous souhaitez en savoir plus ou avoir un tutoriel plus en détail sur certaines parties, faites le savoir en envoyant un message.