L'Unreal Engine 5.2 s'accompagne d'une prise en charge native des processeurs Apple Silicon et d'autres améliorations pour macOS

Michael Prinke, rédacteur technique et Zack Neyland, chef développeur plateforme |
30 mai 2023
Avec l'arrivée de l'Unreal Engine 5.2, l'Unreal Editor pour macOS est intégré et distribué en tant que fichier binaire universel, offrant dans un seul paquet une prise en charge native pour les anciens Macs équipés de processeurs Intel et la nouvelle génération d'appareils équipés de processeurs Apple Silicon. Ce blog technologie vous présente ces nouveautés en détail, leur impact sur vos flux de travail avec macOS et les exigences futures pour les développeurs. Nous vous donnerons également un aperçu des nouveautés proposées sur macOS, notamment de nouvelles ressources sur le Marché de l'Unreal Engine et une prise en charge expérimentale de Nanite. Nous ferons également un tour d'horizon des limitations de l'Unreal Engine sur la plateforme.
Modèle A5 Cabriolet fourni par Audi Business Innovation, désormais disponible sur macOS dans le cadre du projet "Car Configurator" téléchargeable sur le Marché de l'Unreal Engine.

Que sont les fichiers binaires universels pour macOS ?

En 2020, Apple a présenté Apple Silicon, sa propre gamme de processeurs destinés aux futurs appareils mobiles et ordinateurs de bureau Mac. Pour les Macs, cette annonce marquait l'abandon des processeurs x86-64 d'Intel au profit d'une architecture ARM64. Pour faciliter cette transition et continuer à utiliser les anciennes applications x86 sur la nouvelle architecture, les Macs équipés d'un processeur Apple Silicon utilisent le traducteur d'instructions Rosetta 2. Mais cette compatibilité occasionne une surcharge du processeur.

Pour vos futures applications, il est préférable de créer les projets en tant que fichiers binaires universels : en d'autres termes, des fichiers binaires incluant à la fois des partitions x86-64 et ARM64. De cette façon, les applications peuvent être exécutées nativement sur les anciens Macs équipés de processeurs Intel et sur les Macs Apple Silicon à partir d'un seul distribuable.
"Automotive Bridge Scene", maintenant disponible pour macOS sur le Marché de l'Unreal Engine.

Où en est la prise en charge de l'Unreal Engine pour les processeurs Apple Silicon dans la version 5.2 ?

L'Unreal Engine 5.0+ prenait en charge les fichiers binaires universels pour Mac, mais il était impératif d'empaqueter séparément les builds des projets UE. Avec l'UE 5.1, nous avons ajouté une prise en charge en version bêta permettant d'exécuter les versions "Source" de l'UE avec des fichiers binaires natifs ARM64, tout en conservant Rosetta pour les builds "Editor" de l'UE. Avec l'UE 5.2, nous préintégrons officiellement des fichiers binaires universels pour l'Unreal Engine lors du téléchargement via le lanceur Epic Games.
 

Quelles sont les conséquences futures pour l'utilisation de l'Unreal Engine sur macOS ?

Les utilisateurs exécutant la version "Source" de l'Unreal Editor devront effectuer quelques actions supplémentaires, présentées ci-après, pour générer les fichiers binaires universels. Le flux de travail ne devrait pas trop changer, mais la publication de projets ou de plug-ins est soumise à de nouvelles règles.

Tout d'abord, les développeurs exécutant l'Unreal Engine 5.2 sur macOS doivent répondre aux exigences logicielles suivantes :
  • Version minimum de macOS : 12.5 Monterey ou ultérieure
  • Version de macOS recommandée : macOS Ventura
  • Version de Xcode minimum : 14.1

Ceci correspond à la nouvelle configuration requise pour l'App Store.

Ensuite, avec l'Unreal Engine 5.2 et les versions ultérieures, les vendeurs publiant des plug-ins de code sur le Marché de l'Unreal Engine devront inclure des fichiers binaires universels pour être compatibles avec macOS. Cela concernera principalement les plug-ins s'appuyant sur des bibliothèques tierces, comme la bibliothèque Web Services d'Amazon (lib.AWS), par exemple libaws-checksums.dylib.
 

Quelles conséquences sur la disponibilité des ressources dans le Marché de l'Unreal Engine pour macOS ?

Avec ces évolutions et les nouvelles exigences mises en place, les utilisateurs de l'Unreal Engine 5.2 sur macOS auront désormais accès à davantage de ressources sur le Marché de l'Unreal Engine. Ils pourront notamment accéder aux ressources gratuites proposées par Epic Games, telles que les packs de ressources Paragon.
De nouvelles ressources du Marché de l'Unreal Engine sont désormais disponibles sur macOS, comme ce personnage, Muriel, issu du pack "Paragon".

Comment profiter de la prise en charge des processeurs Apple Silicon pour l'Unreal Editor ?

Les utilisateurs qui téléchargent l'Unreal Engine via le lanceur Epic Games sur macOS recevront automatiquement un distribuable incluant les fichiers binaires universels. Lorsque vous exécutez une instance de l'Unreal Editor depuis le lanceur, celle-ci utilisera la slice adaptée à l'architecture native de votre appareil. Ainsi, si vous avez un appareil équipé d'un processeur Apple Silicon, l'éditeur utilisera automatiquement la prise en charge native d'Apple Silicon.

Pour créer des fichiers binaires universels lorsque vous générez l'éditeur à partir du code source, vous devez explicitement sélectionner l'architecture "x64+arm64", car les builds générés en lignes de commande utilisent par défaut l'architecture x64 et les builds Xcode utilisent par défaut l'architecture de la machine hôte. Pour plus de détails sur ce processus, référez-vous à cet article dans la documentation.
 

Quel est l'avantage de la prise en charge native d'Apple Silicon dans l'éditeur ?

Si vous exécutez l'Unreal Editor avec la prise en charge native d'Apple Silicon, vous devriez bénéficier d'une diminution de la surcharge du processeur et d'une amélioration des performances puisque la traduction via Rosetta 2 n'est plus nécessaire.

Par ailleurs, nous avons peaufiné l'expérience utilisateur de l'éditeur sur les Macs Apple Silicon, avec notamment des corrections pour la gestion des fenêtres et une meilleure prise en charge de l'encoche en haut des écrans des Macs dernière génération.
Scène "Infinity Blade: Grass Lands" du Marché de l'Unreal Engine, exécutée dans l'Unreal Editor pour macOS.

Quelles sont les limites de l'Unreal Engine sur macOS ?

La prise en charge de macOS est un processus continu et d'importantes limitations persistent lors de l'exécution de l'Unreal Editor ou de projets indépendants sur les appareils macOS.
  • Nanite s'appuie sur un découpage atomique des images et son fonctionnement "forward-progress" empêche toute compatibilité avec les appareils équipés d'une Apple M1. Une prise en charge expérimentale est disponible pour les Macs équipés d'une Apple M2, mais celle-ci est désactivée par défaut et s'accompagne de quelques inconvénients (plus de détails ci-dessous). Nous espérons proposer une prise en charge complète de Nanite sur les appareils équipés de processeurs Apple Silicon, mais ce n'est pas encore le cas.
  • Les ressources Quixel reposant sur Nanite seront remplacées par leur version classique (non Nanite). Sinon, elles fonctionneront comme prévu.
  • Les mèches, la fourrure et la pilosité ne sont pas prises en charge sur macOS, car la structure capillaire nécessite une prise en charge des images au niveau atomique. Les cartes capillaires et les maillages sont cependant pris en charge.
  • Le ray tracing par accélération matérielle n'est actuellement pas pris en charge sur macOS. Ainsi, Lumen peut uniquement utiliser le ray tracing logiciel sur Apple Silicon. Le ray tracing logiciel produit des résultats de qualité inférieure (par exemple, des reflets moins détaillés avec des maillages dynamiques invisibles) au ray tracing matériel.
  • Performances d'anticrénelage : le mode d'anticrénelage par défaut, Temporal Super Resolution (TSR), est confronté aux limitations logicielles et matérielles des processeurs Apple Silicon, ce qui rend leur exécution bien plus gourmande en ressources que sur les autres plateformes. Nous travaillons sur ce point et espérons vous proposer des améliorations de performances dans nos prochaines versions. En attendant, si vous souhaitez utiliser un autre mode d'anticrénelage, vous pouvez le faire en cherchant "Anti-aliasing" dans les paramètres de votre projet et en sélectionnant une autre méthode.
 

Comment utiliser la prise en charge expérimentale de Nanite sur les appareils M2 ?

En attendant la prise en charge complète de Nanite sur macOS, la prise en charge expérimentale est désormais disponible dans les branches ue5-main et 5.2 sur GitHub, même si elle est désactivée par défaut. Pour l'activer, vous devrez effectuer les modifications suivantes dans le code source de l'Unreal Engine :
  1. Configurer PLATFORM_MAC_ENABLE_EXPERIMENTAL_NANITE_SUPPORT=1 dans UEBuildMac.cs (Engine/Source/Programs/UnrealBuildTool/Platform/Mac/UEBuildMac.cs). 
  2. Activer UE_EXPERIMENTAL_MAC_NANITE_SUPPORT dans spirv_msl.hpp.
  3. Régénérer ShaderConductor en suivant les instructions disponibles dans UEBuildMac.cs.
  4. Configurer bSupportsNanite=true et bSupportsUInt64ImageAtomics=true dans Data Driven PlatformInfo.ini (Engine/Config/Mac/DataDrivenPlatformInfo.ini).

Faites attention lorsque vous activez cette prise en charge, car elle s'accompagne de quelques limitations. Tout d'abord, elle ne fonctionne qu'avec les puces M2. Ensuite, en l'absence de tests approfondis, nous n'offrons aucune garantie en matière de performance et de fiabilité. Comme nous l'avons évoqué, cette prise en charge est expérimentale et doit servir de tremplin pour améliorer la compatibilité de nos futures versions et des futures générations de processeurs Apple Silicon. Nous aimerions connaître votre avis, alors n'hésitez pas à nous le donner sur les forums de la communauté de développeurs Epic.

    Obtenez l'Unreal Engine 5.2 pour macOS maintenant !

    Si vous utilisez déjà l'Unreal Engine, vous pouvez télécharger le fichier binaire universel de l'Unreal Engine 5.2 pour macOS depuis le lanceur Epic Games. Si vous faites vos premiers pas dans l'univers de l'Unreal Engine, cliquez sur le lien ci-dessous pour commencer. Dans tous les cas, nous espérons que les nouvelles fonctionnalités et améliorations vous plairont.