Comment Kluge Interactive a réussi à intégrer la reconnaissance de gestes VR dans FINAL FURY

Kluge Interactive développe des jeux immersifs depuis 2008. Leur titre phare, Synth Riders, un jeu de rythme en VR, a été publié en 2018 et l'équipe a passé les sept dernières années à livrer un flot régulier de packs de musique. Ces mises à jour de contenu divertissant ont hissé la propriété intellectuelle au rang de stratosphère de musiciens de liste A et d'événements sportifs nationaux.
L'équipe ne prévoit pas de ralentir. Ils ont combiné leur expérience VR et leur passion pour les jeux de combat pour créer FINAL FURY. Le titre Multiplayer mêle mécanique classique et combats réels. Les joueurs font en sorte que chaque coup de poing compte, soit en sparring solo, soit en défiant le meilleur de la galaxie.
Nous avons discuté avec Rob Alvarez, producteur de FINAL FURY, et David Montesdeoca, programmeur en chef du jeu, pour discuter de la façon dont l'équipe harmonise l'immersion et la vitesse pour créer un jeu de combat en VR de niveau supérieur.
Comment décririez-vous FINAL FURY ?
Rob Alvarez : Le concept derrière FINAL FURY est né d'un profond amour pour les jeux d'arcade classiques, réinventés à travers le prisme de la technologie VR moderne. Dès le début, nous n'avons cessé de nous poser une question essentielle : « Comment pouvons-nous faire en sorte que chaque action, des coups de poing à l'esquive des attaques, soit aussi réelle et viscérale que possible ? »
Transformer cette Vision en une expérience entièrement jouable comportait son lot de défis, en particulier pour trouver le bon équilibre entre la nature immersive de VR et le combat intense et rapide qui définit le genre. Très tôt, il n'a pas été facile d'adapter ces mécanismes à la VR, mais grâce à une itération constante, nous avons fini par trouver le point délicat.

Comment le système de caméras unique du jeu augmente-t-il l'immersivité de l'expérience de jeu ?
David Montesdeoca : FINAL FURY utilise un système modulaire multi-caméras conçu spécifiquement pour prendre en charge l'immersion dans différents états, perspectives et expériences de jeu.
Nous prenons en charge plusieurs types de caméras : à la première personne, à la troisième personne, en spectateur, 2D et une caméra « Out of Body » utilisée lors des moments cinématographiques comme les prises de contrôle ou les situations dans lesquelles le joueur n'a pas de contrôle. Au lieu de les traiter comme des systèmes isolés, nous avons créé un service de caméras unifié qui les gère soit comme une seule entité logique, soit comme des caméras distinctes lorsque des effets spécifiques sont nécessaires.
Voici comment cela fonctionne :
- Chaque caméra est pilotée par un système d'événements partagés, mais peut choisir si et comment réagir aux événements. Par exemple, lorsqu'une prise est déclenchée, les caméras à la première personne et « Out of Body » peuvent activer des effets, mais de différentes façons.
- Le système est basé sur les données et hautement évolutif. Nous pouvons ajouter de nouveaux comportements de caméra sans impact sur d'autres systèmes ou sans logique particulière.
- Nous avons divisé le monde en trois couches visuelles principales : HMD, 3rdPerson et HMDAnd3rd. Cela nous permet de contrôler la visibilité en déplaçant les couches d'objet lors de l'exécution et permet à certains éléments d'apparaître uniquement dans les vues à la première personne tout en étant cachés des perspectives à la troisième personne ou cinématiques.
Grâce à cette configuration, nous pouvons équilibrer l'agencement du joueur en VR (donner des coups de poing et faire des gestes et des pouvoirs depuis une vue à la première personne) avec des moments plus cinématiques qui rapportent plus de satisfaction lorsqu'ils sont vus à l'extérieur.

Pourquoi perfectionner les gestes de combat était-il si important ?
Rob : Les gestes de combat sont au cœur de l'expérience de combat immersive que nous souhaitons offrir. Bien que FINAL FURY soit une lettre d'amour à tout ce que nous aimons dans les jeux d'arcade classiques, c'est aussi un défi de donner aux joueurs l'impression d'être dans l'arène pour les combats.

Comment l'équipe a-t-elle implémenté le système de contrôle par gestes ?
David : La reconnaissance des gestes a été l'un des aspects les plus complexes de la conception de FINAL FURY sur les plans technique et créatif. Notre objectif a toujours été de nous assurer que les joueurs se sentent comme le combattant, pas seulement quelqu'un qui en contrôle un.
Les éléments clés de notre système sont :
- Suivi des entrées : Au cœur de ce projet, nous avons conçu un système léger qui suit en continu la position et l'orientation de chaque main par rapport à un point de référence central. Il est généralement situé à la tête du joueur (centre de masse). Cela nous aide à normaliser les entrées, en minimisant les mouvements de la tête ou l'orientation du corps comme variables qui pourraient affecter la précision de la détection des gestes.
- Utilitaires de gestes : Nous utilisons un ensemble d'utilitaires mathématiques de bas niveau pour détecter des motifs comme « La main avance-t-elle ? » ou « La main est-elle sur le côté gauche d'une zone de détection ? ».
- Système ActionTrigger : Nous définissons les gestes complexes à travers ce que nous appelons les ActionTriggers. Chaque ActionTrigger écoute des séquences de gestes spécifiques à l'aide de nos utilitaires.
- Le processus de détection comprend un système d'états avec trois états possibles :
- Échec : Les entrées ne répondent pas aux exigences
- Partiel : La gestuelle semble démarrer correctement
- Compléter : Le geste a été exécuté avec succès
L'état partiel est très important car il nous aide à hiérarchiser les gestes en fonction du contexte, à fournir un retour en temps réel au joueur pour qu'il sache qu'il est sur la bonne voie et à télégraphier l'intention à ses opposants.
Voici un exemple du fonctionnement de notre « Geste de préhension » :
- Le système vérifie que les deux mains sont éloignées et positionnées symétriquement de part et d'autre du centre de masse. Ceci déclenche l'état partiel (le « début de la saisie »)
- Si le joueur rassemble rapidement ses mains, le geste est terminé et l'action se déclenche
- Si le mouvement est trop lent ou incohérent, le système entre dans l'état Failed et le geste est annulé
Cette approche nous a permis d'associer une saisie fluide à des actions précises, et nous continuons à l'affiner en fonction des commentaires de la communauté.

Comment Unity a-t-il pu en arriver là ?
Rob : Honnêtement, ce n’était même pas une question de notre part. Nos équipes utilisent Unity depuis des années pour Synth Riders et c'est une expérience formidable. Cela nous permet de travailler en toute fluidité sur toutes les plateformes.
Le moteur nous permet de réunir une large gamme d'outils et de systèmes pour créer quelque chose de dynamique et réactif lorsque nous créons FINAL FURY. En conséquence, nous pouvons itérer assez rapidement, ce qui est passionnant pour nous. Elle nous offre la flexibilité de tester de nouveaux concepts de jeu avec un minimum de stress.
L'écosystème de plug-ins Unity a été un gros avantage. Des outils comme NodeCanvas ont été d'une aide précieuse pour créer des comportements d'IA complexes de manière visuelle et modulaire. Nous utilisons également la prise en charge OpenXR de Unity et l'intégration s'est faite de manière étonnamment fluide. C'est pratiquement du plug and play, ce qui a rendu le développement VR beaucoup moins pénible que prévu.
La prise en charge intégrée de PlasticSCM par Unity nous a aidés à trouver le bon équilibre entre simplicité et puissance dont nous avons besoin pour gérer la base de code de notre projet.

L'équipe a fait appel au gamer Pro Justin Wong comme consultant pour le jeu. Quelle est son implication ?
Rob : Nous avons discuté très publiquement de notre besoin de changer d'approche à mesure que le développement initial de FINAL FURY changeait. Nous l'approfondissons dans notre premier blog FINAL FURY. Au fur et à mesure que nous entrions dans le processus, nous voulions nous assurer que nous étions non seulement sur la bonne voie, mais que nous pouvions également contrôler les choses de façon encore plus étroite. Au-delà de mettre le joueur à la place du combattant, nous voulions explorer ce qui fait un bon jeu de combat compétitif. Donc, c'était logique d'approcher Justin pour sa contribution.
Lors de sessions de jeu multiples, nous nous mettions au jeu avec Justin, montrions nos conceptions et avions quelques matchs. Ses commentaires sur l'équilibrage et la lutte contre les mécaniques ont été très précieux. Il couvrait généralement des domaines que seul un joueur de jeu de combat expert évoquerait. En fait, il nous a aidés à voir ce que nous n'aurions pas vu autrement, et son implication a amélioré certains des mécanismes du jeu. Il nous a battus à notre propre jeu.
Quelle est la prochaine étape pour FINAL FURY ?
Rob : Nous avons de grands projets pour ce que nous cherchons à ajouter au jeu lors de l'accès anticipé. L'équipe FINAL FURY continue d'explorer de nouvelles idées et améliorations, poussant l'expérience de jeu plus loin à chaque mise à jour. De nouveaux combattants, de nouvelles arènes, de nouveaux mouvements ajoutés pour tous les combattants, ce n'est que le début. Une partie est déjà en cours de construction, d'autres fonctionnalités vont en fait dépendre des joueurs.
Notre équipe de développement prévoit de rejoindre les combats, d'écouter ce que les joueurs disent et de continuer à améliorer le jeu. La méthode « release→play→listen→iterate » est la façon dont nous avons expédié Synth Riders en 2018 et elle nous a très bien fonctionné.
Notre ambition est de devenir la référence incontournable des jeux de combat de type arcade en réalité virtuelle, et grâce au dévouement de notre équipe, nous sommes convaincus que nous pouvons faire de cela une réalité.
Pour en savoir plus sur les projets Made with Unity, consultez la page Ressources Unity.
