Medieval Game Environment

Mise à jour de Medieval Game Environment pour l'UE5

Salut à tous ! Nous avons le plaisir de vous annoncer la mise à niveau de notre environnement de jeu médiéval, initialement publié pour l'Unreal Engine 4.26 en février 2021. 

Nous l'avons mis à jour pour qu'il bénéficie de toutes les fonctionnalités de l'Unreal Engine 5, et nous avons intégralement actualisé son audio. Vous pouvez télécharger Medieval Game Environment ici sur le Marché de l'Unreal Engine.
 

Mais au fait, c'est quoi, cet environnement de jeu médiéval ? 

Medieval Game Environment est une expérience jouable de qualité next-gen créée par l'équipe Quixel d'Epic. Vous la connaissez peut-être à travers Megascans. L'environnement a initialement été publié en février 2021 pour l'Unreal Engine 4.26. La version 5.3 étant maintenant disponible, nous avons décidé de lui donner un coup de jeune pour tirer parti des dernières fonctionnalités du moteur. 

Voici plus en détail les améliorations apportées et le travail effectué en coulisses.
 

Mise à niveau vers l'UE5

Convertir un projet à partir de l'UE4 signifie qu'il utilise toujours les paramètres par défaut de cette version, mais que certains paramètres importants ont changé entre les versions 4.26 et 5.3. Si vous avez consulté notre guide de mise à niveau d'un projet pour l'UE5, vous connaissez déjà les principes de la procédure. 

Nous avons adapté tous les paramètres du projet à l'environnement : DX12, SM6, méthode d'ombrage, méthode d'éclairage global dynamique, méthode de réflexion et éclairage statique désactivé. Les performances sont ainsi meilleures qu'avec l'original. 
(À gauche) Unreal Engine 5 | (À droite) Unreal Engine 4

Exploitation de Nanite

Nous sommes d'avis que tout est un peu plus joli avec les dernières innovations en matière de géométrie virtualisée. Tous les aspects du projet qui pouvaient être gérés par Nanite le sont désormais, et nous avons remplacé certains objets par leur version de qualité Nanite dans la bibliothèque Megascans. 

Et comme ça, c'est parfait ? Pas exactement. Des arbres qui présentaient un problème (ils semblaient perdre toutes leurs feuilles à distance) avaient dans leurs paramètres Nanite l'option "Preserve Area" activée. Des maillages de spline devaient être remplacés par des maillages statiques instanciés, notamment parce que la prise en charge des maillages de spline par Nanite est encore au stade expérimental. 

Nous avons également modifié les paramètres World Position Offset du projet. Le but était ici de réduire les invalidations de cache de VSM causées par ces paramètres à distance. 
 

Gestion de l'éclairage par Lumen

Nous avons confié la méthode d'éclairage global dynamique et la méthode de réflexion à Lumen, ce qui les porte au niveau de performance standard de l'UE 5.3 et améliore nettement le photoréalisme de la scène. Comme nous avons passé la végétation dans Nanite, elle peut également contribuer à Lumen. Autrement dit, l'éclairage de la scène reflète plus fidèlement le monde. L'exposition locale a également été réglée pour un meilleur éclairage en intérieur. 
(À gauche) Unreal Engine 5 | (À droite) Unreal Engine 4

Ajustement des cartes d'ombres virtuelles 

Nous avons fait passer le projet de Cascading Shadow Maps à Virtual Shadow Maps pour améliorer la résolution des ombres. Les performances s'en voient améliorées à plusieurs niveaux. D'abord, les problèmes d'ombres de contact sont résolus. De nombreux petits maillages de végétation causaient des invalidations de cache superflues, notamment, et n'utilisent désormais plus que des ombres de contact. Pour remédier au problème, nous avons réglé plusieurs paramètres (par exemple, pour que l'éclairage directionnel ne projette des ombres de contact que sur les maillages qui ne projettent autrement pas d'ombre).

Nous avons aussi fait en sorte que tout ce qui pouvait invalider les pages de cache des ombres soit défini comme mobile. Par conséquent, le WPO, les maillages squelettiques et autres utilisent tous les nouveaux paramètres dans tout le projet. 
 

Partition du monde

Le projet original ne présentait aucune capacité de diffusion. Nous avons donc adapté le niveau à World Partition grâce aux outils intégrés de l'UE, et défini les niveaux de détail hiérarchiques (HLOD) pour réduire les coûts de calcul à distance. Le passage à World Partition permet au moteur de mieux diffuser le contenu en entrée et en sortie, et le HLOD autorise de meilleures performances sur la géométrie distante.


Conversion à Niagara

En toute transparence, depuis l'UE5, Cascade est devenu obsolète et n'est plus pris en charge. Il était donc nécessaire de procéder à cette conversion. Dans la manœuvre, notre artiste en effets visuels a réussi à condenser certaines des ressources Cascade originales en un seul système Niagara, pour un gain de performance supplémentaire.
 
(À gauche) Unreal Engine 5 | (À droite) Unreal Engine 4

Temporal Super Resolution

Le projet a été adapté au système TSR et à la résolution dynamique sur consoles. Les autres fonctionnalités graphiques next-gen dépendant de la résolution, l'utilisation du TSR permet de rendre moins de pixels en qualité supérieure tout en conservant une résolution de sortie en 4K. En somme : c'est mieux, plus rapide et plus efficace pour tout le monde.
 

Révision totale de l'audio

Nous n'étions pas totalement satisfaits de l'audio de notre première version et nous savions que nous pouvions nettement l'améliorer. Pour ce faire, nous avons remplacé beaucoup de nos systèmes hérités pour tirer parti de MetaSound, le système audio procédural inauguré par l'UE5. Ce que cela implique :

D'abord, nous avons supprimé toutes les classes sonores du projet qui utilisaient exclusivement des bus de sous-mixage et des modulations audio pour pouvoir repartir de zéro en matière de gain, de routage et d'approche générale du processus de mixage. 

Ensuite, nous avons fait le ménage en renommant tous les fichiers de façon homogène pour chaque type de ressource, et en supprimant les ressources audio non référencées. Côté utilisateur, vous ne le remarquerez peut-être pas mais le projet est de ce fait moins volumineux et les ressources inutilisées n'encombrent plus le dossier de contenu.

Nous bénéficions également de paysages sonores liés à l'heure du jour dynamique. Ces déclencheurs temporels sont intégrés aux blueprints du gestionnaire SoundScape, avec de nouvelles versions nocturnes des palettes SoundScape pour la forêt et le champ de culture. Pour nous, cette approche adaptative du son rend la scène plus dynamique et immersive que dans la version précédente. 

    Et maintenant ?

    Medieval Game Environment 2.0 est désormais disponible sur le Marché de l'Unreal Engine. Testez-le et rendez-vous sur le forum pour nous donner votre avis.