1 points par GN⁺ 2025-09-28 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Présentation d’un mod créé en 2021 qui améliore la synchro labiale et les clignements d’yeux de Deus Ex 1
  • Le développeur a découvert que l’implémentation d’origine de la synchro labiale ne fonctionnait pas correctement depuis la sortie du jeu
  • Il a analysé que Deus Ex utilisait lui aussi une méthode d’extraction des phonèmes et de correspondance des mouvements de bouche, similaire à Half-Life 2 de Valve
  • En corrigeant un mauvais contrôle de fréquence d’images et un problème de timing de blending dans le code Unrealscript, il est parvenu à obtenir une animation naturelle
  • Pour une implémentation parfaite, il reste toutefois à résoudre le problème de fréquence de mise à jour des phonèmes

Introduction et contexte

  • Ce mod est un projet visant à améliorer la synchro labiale des dialogues des personnages et les animations de clignement des yeux dans Deus Ex 1
  • Dans le jeu d’origine, la synchro labiale et les clignements d’yeux étaient anormaux dès la sortie
  • L’auteur présente ici une synthèse du travail qu’il avait publié sur son compte Twitter
  • Le téléchargement du mod est proposé via un lien séparé (ModDB)

Enquête sur l’implémentation existante

  • En jouant, il a identifié des problèmes de transition des mouvements de bouche dans la synchro labiale, ainsi que d’étranges comportements d’animation
  • Référence à une interview de Chris Norden (développeur de Deus Ex) : le système initial de synchro labiale était sophistiqué, mais a été simplifié pour des raisons de performances
  • Il a examiné jusqu’où l’implémentation allait dans la partie Unrealscript, ainsi que les possibilités de correction
  • Le code source n’est pas disponible, seuls les scripts sont accessibles

Fonctionnement de la synchro labiale

  • L’auteur avait déjà acquis de l’expérience en analysant auparavant le système de synchro labiale de Half-Life 2
  • Valve utilise une méthode consistant à extraire les phonèmes d’un fichier audio, à ajouter les informations linguistiques à la fin du fichier .wav, puis à basculer les formes de bouche (visèmes) au moment approprié pendant l’exécution
  • Cette approche a l’avantage de réduire la charge à l’exécution grâce à une extraction préalable des phonèmes

Problèmes structurels de Deus Ex

  • Dans Deus Ex, les informations de phonèmes ne semblent être stockées nulle part, ce qui laisse penser à une extraction en temps réel lors de l’exécution
  • L’analyse de l’Unrealscript montre un fonctionnement basé non pas sur des skeletal animations, mais sur des vertex animations, avec seulement 7 formes de bouche et 1 animation de clignement des yeux
  • Depuis le système audio externe, nextphoneme est défini sur A, E, F, M, O, T, U ou X (bouche fermée), puis le script du personnage change la forme de bouche en conséquence

Bugs et améliorations

  • Dans le code d’origine, la logique de détection de la fréquence d’images fonctionnait à l’envers, si bien que les formes de bouche changeaient immédiatement même à fréquence élevée
  • La durée du blending (tweentime) était réglée beaucoup trop court (0,1 seconde), ce qui supprimait toute sensation de transition naturelle
  • Il a ignoré la condition de vérification de la fréquence d’images et allongé suffisamment tweentime (à 0,35 seconde)
  • Le résultat est une synchro labiale bien plus fluide

Fermeture de la bouche et clignements d’yeux

  • Une logique supplémentaire a été ajoutée pour appliquer un blending naturel lors de la fermeture de la bouche après la fin d’une réplique
  • La logique d’animation ne vérifiait auparavant que bIsSpeaking, mais a été améliorée pour que l’animation de synchro labiale fonctionne en permanence
  • La vitesse des clignements d’yeux a également été ajustée afin qu’ils restent perceptibles pour l’utilisateur

Limites structurelles et frustrations

  • La fréquence de mise à jour de nextphoneme elle-même est irrégulière, avec une limite structurelle empêchant une mise à jour à chaque tick
  • En conséquence, même en appliquant correctement tous les blendings, il est impossible d’obtenir une synchro labiale parfaite
  • Si la mise à jour se faisait à une fréquence constante, il serait possible d’optimiser la vitesse de blending en conséquence, mais ce n’est pas faisable avec la structure actuelle
  • Le code présente aussi des inefficacités, comme une implémentation dupliquée de la même logique dans les classes des PNJ et du personnage joueur

Exemple final de code modifié

  • Le bas de l’article fournit le code complet de la fonction de synchro labiale améliorée
  • Principales améliorations : suppression de la prise en compte du contrôle de fréquence d’images, forte augmentation de tweentime, fermeture de bouche plus douce après les dialogues, ajustement de la fréquence et de la vitesse des clignements d’yeux

Conclusion

  • Avec ce mod, on peut profiter d’une synchro labiale et d’animations de clignement des yeux nettement plus naturelles et améliorées par rapport à la version d’origine
  • Malgré les limites structurelles qui empêchent une synchro labiale parfaite, il s’agit de la meilleure solution actuellement accessible

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.