Présentation
Unreal Engine est un moteur de création 3D en temps réel développé par Epic Games.
Il est principalement connu comme moteur de jeu vidéo, mais son champ d’utilisation est aujourd’hui beaucoup plus large.
Unreal Engine peut notamment servir à produire :
- des jeux vidéo ;
- des mondes ouverts ;
- des expériences multijoueurs ;
- des applications interactives ;
- des cinématiques ;
- des films d’animation ;
- des effets visuels ;
- des décors virtuels ;
- des visualisations architecturales ;
- des configurateurs automobiles ;
- des simulations ;
- des formations immersives ;
- des expériences de réalité virtuelle ou augmentée ;
- des jumeaux numériques ;
- des événements diffusés en direct.
Le moteur réunit dans un même environnement :
- programmation ;
- rendu 3D ;
- gestion de scènes ;
- animation ;
- physique ;
- intelligence artificielle ;
- audio ;
- interfaces ;
- effets visuels ;
- outils cinématographiques ;
- construction de mondes ;
- export vers plusieurs plateformes.
Cette intégration permet de concevoir un projet interactif sans devoir reconstruire séparément tous les systèmes fondamentaux.
Unreal Engine fournit déjà les éléments nécessaires pour gérer :
- les personnages ;
- les contrôleurs ;
- les caméras ;
- les entrées clavier, souris et manette ;
- les collisions ;
- la gravité ;
- les animations ;
- les interfaces ;
- les niveaux ;
- les sauvegardes ;
- le réseau ;
- la compilation ;
- la publication.
Le moteur peut être utilisé par des programmeurs, artistes 3D, animateurs, designers, architectes, réalisateurs, techniciens d’effets visuels et spécialistes de la simulation.
Les projets peuvent être développés grâce au langage C++, au système de programmation visuelle Blueprints ou à une combinaison des deux.
Unreal Engine se distingue également par son accès au code source.
Le moteur n’est pas open source au sens d’une licence libre comme MIT, GPL ou Apache, mais Epic permet aux utilisateurs autorisés d’accéder à son code C++ complet.
Ils peuvent ainsi :
- étudier son fonctionnement ;
- modifier certains systèmes ;
- créer leur propre version ;
- développer des plugins ;
- adapter le moteur à des besoins spécifiques ;
- proposer des corrections.
Ces possibilités restent encadrées par la licence propriétaire d’Epic Games.
Au moment de la vérification, Unreal Engine 5.8 constitue la version majeure actuelle.
Epic la présente comme la dernière grande version planifiée de la génération Unreal Engine 5 avant une transition progressive vers Unreal Engine 6.
Unreal Engine est disponible sur Windows, macOS et Linux.
Ces plateformes correspondent aux systèmes sur lesquels l’éditeur peut fonctionner.
Les projets créés peuvent ensuite cibler d’autres appareils et systèmes, notamment Android, iOS, consoles et différentes plateformes XR.
L’installation, les projets et les caches peuvent occuper beaucoup d’espace disque.
Unreal Engine demande également une machine relativement puissante, particulièrement pour utiliser ses fonctions de rendu avancées, ses mondes ouverts, ses personnages réalistes ou ses outils cinématographiques.
Fonctionnalités
Création de jeux et d’applications interactives
Unreal Engine fournit une architecture complète pour développer des expériences interactives.
Un projet peut contenir :
- plusieurs niveaux ;
- des personnages ;
- des véhicules ;
- des objets interactifs ;
- des interfaces ;
- des systèmes de jeu ;
- des animations ;
- des sons ;
- des effets ;
- des données ;
- des scripts ;
- des ressources importées.
Le moteur gère notamment :
- les collisions ;
- la physique ;
- les entrées utilisateur ;
- les caméras ;
- les événements ;
- les composants ;
- les classes ;
- les sauvegardes ;
- le chargement des niveaux ;
- le multijoueur ;
- la réplication réseau ;
- la gestion des plateformes cibles.
Unreal Engine peut être utilisé pour créer :
- un jeu de plateforme ;
- un jeu de rôle ;
- un jeu de stratégie ;
- un jeu de course ;
- un jeu de tir ;
- une simulation ;
- une expérience narrative ;
- un jeu mobile ;
- une expérience multijoueur ;
- un prototype expérimental.
Il n’impose pas un genre particulier.
Le moteur fournit des modèles de projets permettant de démarrer avec une structure déjà configurée, par exemple :
- personnage à la troisième personne ;
- vue à la première personne ;
- véhicule ;
- réalité virtuelle ;
- projet architectural ;
- scène cinématographique.
Ces modèles accélèrent la prise en main, mais un projet sérieux demande ensuite une organisation adaptée à ses propres besoins.
Interface, projets et ressources
L’éditeur Unreal Engine est organisé autour de plusieurs espaces de travail.
Le viewport affiche la scène en temps réel.
Il permet de :
- placer des objets ;
- déplacer des éléments ;
- modifier les caméras ;
- visualiser les lumières ;
- tester les collisions ;
- lancer le projet ;
- observer les effets ;
- naviguer dans le monde.
Le Content Browser regroupe les ressources du projet :
- modèles 3D ;
- textures ;
- matériaux ;
- sons ;
- animations ;
- Blueprints ;
- niveaux ;
- données ;
- effets ;
- interfaces.
Chaque ressource est enregistrée sous la forme d’un asset Unreal.
Cette organisation centralisée facilite l’intégration entre les différents systèmes, mais elle demande de conserver une structure de dossiers cohérente.
Un projet mal organisé peut rapidement accumuler :
- des fichiers inutilisés ;
- des doublons ;
- des références cassées ;
- des noms incompréhensibles ;
- des versions concurrentes ;
- des dépendances difficiles à identifier.
Unreal Engine contient également de nombreux éditeurs spécialisés accessibles depuis le projet, notamment :
- éditeur de matériaux ;
- éditeur de Blueprints ;
- éditeur d’animations ;
- éditeur Niagara ;
- éditeur MetaSounds ;
- Sequencer ;
- Control Rig ;
- outils de terrain ;
- outils PCG ;
- éditeur d’interfaces.
Cette richesse évite de quitter constamment l’application, mais augmente aussi la courbe d’apprentissage.
Blueprints et programmation visuelle
Blueprints est le système de programmation visuelle d’Unreal Engine.
Il permet de construire de la logique en reliant des nœuds.
Ces nœuds peuvent représenter :
- un événement ;
- une condition ;
- une fonction ;
- une variable ;
- un calcul ;
- une boucle ;
- une action ;
- une référence vers un objet ;
- une communication entre plusieurs systèmes.
Blueprints peut être utilisé pour créer :
- une porte interactive ;
- un inventaire ;
- un système de dialogue ;
- une interface ;
- une caméra ;
- un personnage ;
- une mécanique de combat ;
- une quête ;
- un prototype complet ;
- un outil destiné à l’équipe.
La programmation visuelle rend le moteur accessible aux personnes qui ne maîtrisent pas encore le C++.
Elle permet aussi aux artistes et designers de modifier des comportements sans demander chaque changement à un programmeur.
Blueprints reste néanmoins une véritable forme de programmation.
Pour l’utiliser correctement, il faut comprendre :
- les variables ;
- les types de données ;
- les fonctions ;
- les événements ;
- les classes ;
- les références ;
- les tableaux ;
- les structures ;
- les composants ;
- les dépendances ;
- l’héritage.
Un Blueprint complexe peut devenir difficile à lire lorsqu’il contient trop de nœuds ou de connexions.
Il faut alors :
- diviser la logique en fonctions ;
- créer des composants réutilisables ;
- utiliser des interfaces ;
- limiter les dépendances ;
- nommer clairement les variables ;
- documenter les systèmes importants.
Blueprints convient très bien au prototypage, aux interactions et aux outils de production.
Pour certains systèmes lourds ou très sollicités, le C++ reste plus adapté.
Programmation en C++
Unreal Engine utilise principalement le langage C++ pour sa programmation native.
Le C++ permet de créer :
- des systèmes de gameplay ;
- des classes personnalisées ;
- des composants ;
- des plugins ;
- des outils ;
- des systèmes réseau ;
- des intégrations avec des services externes ;
- des modifications profondes du moteur.
Le framework Unreal ajoute ses propres concepts au langage C++, notamment :
- UObject ;
- Actor ;
- Component ;
- Pawn ;
- Character ;
- GameMode ;
- Controller ;
- propriétés exposées à l’éditeur ;
- fonctions accessibles aux Blueprints ;
- système de réflexion ;
- gestion mémoire spécifique.
Un programmeur peut développer les fondations d’un système en C++, puis exposer certaines options aux Blueprints.
Cette combinaison permet aux designers de modifier les paramètres ou comportements sans recompiler l’ensemble du code.
Le C++ offre davantage de contrôle, mais demande une bonne compréhension :
- de l’architecture du moteur ;
- de la compilation ;
- des pointeurs ;
- de la mémoire ;
- des dépendances ;
- des modules ;
- des performances ;
- du débogage.
Les temps de compilation peuvent également ralentir le travail sur les projets importants.
Accès au code source et personnalisation du moteur
Les utilisateurs disposant d’un compte Epic Games peuvent associer leur compte GitHub afin d’accéder au dépôt privé d’Unreal Engine.
Le code source permet notamment de :
- comprendre le fonctionnement interne du moteur ;
- corriger un problème ;
- ajouter une fonctionnalité ;
- modifier un système existant ;
- compiler une version personnalisée ;
- suivre les évolutions techniques ;
- créer une intégration spécifique.
Cette accessibilité est particulièrement importante pour :
- les grands studios ;
- les équipes techniques ;
- les chercheurs ;
- les entreprises de simulation ;
- les développeurs de plugins ;
- les projets utilisant du matériel spécialisé.
Un fork personnalisé peut toutefois devenir difficile à maintenir.
Chaque nouvelle version d’Unreal Engine peut demander de :
- réappliquer les modifications ;
- résoudre des conflits ;
- recompiler le moteur ;
- adapter les plugins ;
- vérifier les performances ;
- tester toutes les plateformes.
L’accès au code source constitue donc une possibilité puissante, mais pas une obligation pour utiliser le moteur.
Nanite et géométrie virtualisée
Nanite est le système de géométrie virtualisée d’Unreal Engine.
Il permet d’afficher des modèles 3D très détaillés en adaptant automatiquement le niveau de géométrie réellement nécessaire à l’image.
Nanite peut être utilisé avec :
- environnements ;
- bâtiments ;
- rochers ;
- statues ;
- objets photogrammétriques ;
- sculptures ;
- décors complexes ;
- certaines végétations.
Dans un workflow traditionnel, un artiste doit souvent créer plusieurs versions d’un même modèle, appelées niveaux de détail.
Le moteur affiche ensuite une version plus simple lorsque l’objet est éloigné.
Nanite réduit une partie de ce travail en gérant dynamiquement la densité géométrique.
Cela facilite l’utilisation :
- de scans 3D ;
- de modèles très détaillés ;
- de décors cinématographiques ;
- d’environnements complexes.
Nanite ne supprime toutefois pas toutes les contraintes d’optimisation.
Il faut toujours surveiller :
- la mémoire ;
- les textures ;
- les matériaux ;
- les animations ;
- les transparences ;
- les ombres ;
- la plateforme cible ;
- le nombre d’objets.
Une scène peut contenir une géométrie impressionnante tout en restant trop lourde à cause de ses matériaux, textures ou effets.
Lumen et éclairage dynamique
Lumen est le système d’éclairage global et de réflexions dynamiques d’Unreal Engine.
Il permet d’observer rapidement la manière dont la lumière rebondit dans une scène.
Lorsqu’un utilisateur :
- déplace une lumière ;
- ouvre une porte ;
- modifie le soleil ;
- ajoute un objet ;
- change un matériau ;
Lumen peut mettre à jour une grande partie de l’éclairage sans demander un précalcul complet.
Cette technologie convient particulièrement aux :
- mondes dynamiques ;
- cycles jour-nuit ;
- environnements destructibles ;
- intérieurs ;
- scènes interactives ;
- productions virtuelles.
Lumen peut utiliser différentes méthodes selon le matériel.
Les meilleurs résultats nécessitent une carte graphique moderne et une configuration compatible.
Le système peut également produire :
- du bruit ;
- des réflexions approximatives ;
- des fuites de lumière ;
- des performances insuffisantes ;
- des différences entre l’éditeur et la plateforme finale.
Pour certains projets, un éclairage précalculé ou une solution hybride reste plus approprié.
Matériaux et shaders
L’éditeur de matériaux permet de construire l’apparence des surfaces grâce à un système de nœuds.
Un matériau peut contrôler :
- la couleur ;
- la rugosité ;
- le métal ;
- les normales ;
- la transparence ;
- l’émission lumineuse ;
- la déformation ;
- les reflets ;
- le déplacement ;
- les masques.
Il peut servir à créer :
- bois ;
- métal ;
- verre ;
- peau ;
- tissu ;
- eau ;
- lave ;
- neige ;
- hologrammes ;
- effets stylisés ;
- post-traitement.
Les Material Instances permettent de créer plusieurs variantes d’un matériau sans dupliquer toute sa logique.
Un même système peut ainsi générer différentes couleurs, textures ou niveaux de brillance.
Les matériaux très complexes peuvent cependant devenir coûteux à afficher.
Il faut surveiller :
- le nombre d’échantillons de textures ;
- les opérations mathématiques ;
- les transparences ;
- les effets par pixel ;
- la quantité de lumières ;
- la résolution de l’écran.
Un matériau impressionnant dans une démonstration peut devenir trop lourd lorsqu’il est appliqué à des centaines d’objets.
World Partition et grands mondes
World Partition est un système destiné à gérer les environnements de grande taille.
Il divise automatiquement le monde en cellules.
Ces cellules peuvent être chargées ou déchargées selon :
- la position du joueur ;
- la position de la caméra ;
- les sources de streaming ;
- les besoins du projet.
Cette approche convient particulièrement aux :
- mondes ouverts ;
- grandes villes ;
- paysages ;
- simulations ;
- territoires explorables ;
- projets architecturaux étendus.
World Partition fonctionne avec plusieurs autres systèmes, notamment :
- Data Layers ;
- One File Per Actor ;
- Hierarchical Levels of Detail ;
- outils procéduraux ;
- streaming du monde.
Les Data Layers permettent de conserver différentes variantes ou états dans un même environnement.
Elles peuvent par exemple représenter :
- une ville intacte ;
- la même ville détruite ;
- une version nocturne ;
- une version saisonnière ;
- différents scénarios de simulation.
World Partition simplifie la gestion des grandes cartes, mais ne rend pas automatiquement un monde performant.
Il faut toujours optimiser :
- les textures ;
- la végétation ;
- les acteurs ;
- les collisions ;
- l’intelligence artificielle ;
- les ombres ;
- les effets ;
- les données chargées.
Terrain, végétation et création procédurale
Unreal Engine contient des outils de terrain permettant de créer et sculpter des paysages.
L’utilisateur peut :
- relever ou creuser le sol ;
- peindre des couches ;
- ajouter des routes ;
- créer des montagnes ;
- définir des zones de végétation ;
- importer des cartes d’altitude ;
- intégrer des données géographiques.
Le système de végétation permet de distribuer :
- arbres ;
- herbes ;
- rochers ;
- buissons ;
- objets de décor.
Le framework Procedural Content Generation, souvent abrégé PCG, permet de construire des graphes procéduraux.
Ces graphes peuvent générer :
- végétation ;
- bâtiments ;
- routes ;
- objets ;
- variations ;
- points d’intérêt ;
- populations ;
- éléments de terrain.
Les règles peuvent dépendre :
- de la pente ;
- de l’altitude ;
- du matériau du sol ;
- d’un volume ;
- d’une distance ;
- de données personnalisées.
PCG peut accélérer énormément la création d’un monde.
Il permet aussi de produire plusieurs variantes à partir des mêmes règles.
Une génération procédurale ne remplace cependant pas la composition artistique.
Un environnement entièrement automatisé peut sembler :
- répétitif ;
- uniforme ;
- artificiel ;
- difficile à parcourir ;
- dépourvu de lieux mémorables.
Les meilleurs résultats combinent généralement génération procédurale et retouches manuelles.
Animation, squelettes et retargeting
Unreal Engine peut importer des personnages et animations provenant de logiciels comme :
- Blender ;
- Maya ;
- Cinema 4D ;
- Houdini ;
- 3ds Max.
Les personnages utilisent généralement un squelette composé d’os.
Le moteur permet ensuite de :
- lire des animations ;
- mélanger plusieurs mouvements ;
- gérer les transitions ;
- contrôler les poses ;
- adapter les animations à différentes situations ;
- réutiliser des animations sur plusieurs personnages.
Les Animation Blueprints permettent de construire la logique d’animation d’un personnage.
Ils peuvent gérer :
- marche ;
- course ;
- saut ;
- attaque ;
- chute ;
- posture ;
- direction du regard ;
- réactions ;
- changements d’état.
Le retargeting permet de transférer des animations entre plusieurs squelettes ou personnages.
Il ne produit pas toujours un résultat parfait.
Les différences de :
- taille ;
- proportions ;
- longueur des membres ;
- orientation des os ;
- morphologie ;
peuvent demander des corrections.
Control Rig
Control Rig permet de créer et manipuler des rigs directement dans Unreal Engine.
Il peut servir à :
- ajouter des contrôleurs ;
- créer des contraintes ;
- modifier une pose ;
- corriger une animation ;
- produire une animation procédurale ;
- animer un personnage dans Sequencer ;
- adapter un mouvement.
Control Rig réduit le besoin de retourner dans un logiciel 3D externe pour chaque modification.
Il est particulièrement utile pour :
- les cinématiques ;
- les corrections rapides ;
- les poses ;
- les animations secondaires ;
- les ajustements liés au décor.
Il ne remplace pas toujours les outils spécialisés de Maya ou Blender pour la création complète d’un rig complexe.
Sequencer et mise en scène
Sequencer est l’environnement de mise en scène temporelle d’Unreal Engine.
Il fonctionne selon une logique proche d’une timeline de montage ou d’animation.
Sequencer peut organiser :
- caméras ;
- personnages ;
- animations ;
- lumières ;
- sons ;
- événements ;
- effets ;
- propriétés ;
- transitions.
Il peut servir à créer :
- une cinématique ;
- une bande-annonce ;
- un film d’animation ;
- une publicité ;
- une prévisualisation ;
- une séquence narrative ;
- un événement interactif.
L’utilisateur peut créer plusieurs caméras puis choisir le plan affiché à chaque moment.
Sequencer permet également d’animer directement certains paramètres, comme :
- la position ;
- la rotation ;
- l’intensité lumineuse ;
- la profondeur de champ ;
- la visibilité ;
- la couleur ;
- les effets.
Les séquences peuvent être rendues sous forme d’images ou de fichiers vidéo grâce aux outils de rendu cinématographique.
Pour le montage final, le son, l’étalonnage et la postproduction, un logiciel comme DaVinci Resolve reste généralement nécessaire.
MetaHuman
MetaHuman est le framework d’Epic Games consacré aux humains numériques réalistes.
Il permet de créer des personnages comprenant :
- visage ;
- corps ;
- peau ;
- cheveux ;
- vêtements ;
- squelette ;
- rig facial ;
- animations ;
- contrôleurs.
MetaHuman Creator est intégré à l’écosystème Unreal Engine.
Il permet de personnaliser :
- les traits du visage ;
- la morphologie ;
- l’âge apparent ;
- la peau ;
- les cheveux ;
- les yeux ;
- certaines tenues.
MetaHuman Animator permet de transformer une performance filmée en animation faciale.
Selon le matériel et le workflow, la capture peut utiliser :
- une caméra ;
- un smartphone compatible ;
- un système de capture professionnel ;
- des données audio et vidéo.
MetaHuman peut servir aux :
- jeux ;
- films ;
- avatars ;
- simulations ;
- présentations ;
- formations ;
- foules numériques.
Les personnages MetaHuman sont techniquement avancés, mais leur réalisme demande beaucoup de ressources.
Ils peuvent également présenter une certaine uniformité lorsque les visages, vêtements, lumières et animations ne sont pas suffisamment personnalisés.
Niagara et effets visuels
Niagara est le système d’effets visuels d’Unreal Engine.
Il peut produire :
- fumée ;
- feu ;
- poussière ;
- pluie ;
- neige ;
- étincelles ;
- magie ;
- explosions ;
- fluides stylisés ;
- particules ;
- effets abstraits.
Niagara repose sur des émetteurs, modules et systèmes.
Les particules peuvent réagir :
- au mouvement ;
- aux collisions ;
- à la lumière ;
- aux événements ;
- aux paramètres du gameplay ;
- à la position d’un personnage.
Niagara peut servir aux jeux comme aux productions cinématographiques.
Les effets complexes peuvent néanmoins consommer beaucoup de ressources.
Il faut surveiller :
- le nombre de particules ;
- leur durée de vie ;
- les collisions ;
- les transparences ;
- les simulations ;
- la quantité d’effets visibles simultanément.
Chaos et simulation physique
Chaos regroupe plusieurs technologies physiques d’Unreal Engine.
Elles couvrent notamment :
- corps rigides ;
- collisions ;
- destruction ;
- véhicules ;
- tissus ;
- cheveux ;
- champs physiques ;
- fragments ;
- contraintes.
Le système de destruction permet de fracturer des objets et de simuler leur effondrement.
Chaos Vehicles fournit des outils pour créer des véhicules.
Les simulations de tissus et de cheveux peuvent être utilisées avec les personnages.
Ces outils permettent de produire des effets convaincants, mais ne garantissent pas une précision scientifique.
Les résultats dépendent :
- des paramètres ;
- du nombre d’éléments ;
- du framerate ;
- de la taille des objets ;
- des collisions ;
- de la plateforme cible.
Audio et MetaSounds
Unreal Engine permet d’importer et de lire des fichiers audio.
Le moteur gère notamment :
- spatialisation ;
- atténuation ;
- réverbération ;
- zones acoustiques ;
- sons liés aux objets ;
- mixage dynamique ;
- événements audio.
MetaSounds est un système audio nodal.
Il permet de construire :
- sons procéduraux ;
- variations ;
- effets réactifs ;
- instruments ;
- musiques interactives ;
- systèmes audio liés au gameplay.
Un son MetaSounds peut réagir à :
- la vitesse ;
- l’environnement ;
- la position ;
- l’état d’un objet ;
- une action du joueur ;
- une variable du jeu.
Cette approche convient particulièrement aux expériences interactives dans lesquelles le son doit évoluer en temps réel.
Pour :
- l’enregistrement multipiste ;
- l’édition musicale détaillée ;
- le mixage ;
- le mastering ;
- la restauration sonore ;
un véritable logiciel audio reste plus adapté.
Intelligence artificielle et comportements
Unreal Engine contient plusieurs outils pour créer des comportements contrôlés par le moteur.
Les développeurs peuvent utiliser :
- Behavior Trees ;
- Blackboard ;
- navigation ;
- perception ;
- State Trees ;
- systèmes de foule ;
- requêtes environnementales ;
- logique personnalisée.
Ces outils peuvent contrôler :
- ennemis ;
- alliés ;
- animaux ;
- personnages non joueurs ;
- véhicules ;
- agents de simulation.
Un Behavior Tree organise les décisions d’un agent.
Le Blackboard conserve les informations nécessaires, comme :
- la position d’une cible ;
- un état d’alerte ;
- une destination ;
- une ressource ;
- une priorité.
L’intelligence artificielle de jeu ne doit pas être confondue avec les modèles génératifs modernes.
Elle repose principalement sur des règles, états, arbres de décision et systèmes de navigation.
Des modèles externes peuvent être intégrés, mais ils ne constituent pas le fonctionnement par défaut du moteur.
Interfaces avec UMG
Unreal Motion Graphics, généralement appelé UMG, permet de créer des interfaces.
Il peut servir à produire :
- menus ;
- inventaires ;
- barres de vie ;
- cartes ;
- dialogues ;
- boutons ;
- écrans de paramètres ;
- interfaces tactiles ;
- éléments intégrés au monde.
L’éditeur UMG utilise des widgets organisés dans une hiérarchie.
Le comportement peut être contrôlé avec Blueprints ou C++.
Les interfaces complexes demandent une attention particulière aux :
- résolutions ;
- ratios d’écran ;
- langues ;
- tailles de texte ;
- manettes ;
- écrans tactiles ;
- performances ;
- règles d’accessibilité.
Multijoueur et réseau
Unreal Engine comprend un système de réplication permettant de synchroniser des informations entre un serveur et plusieurs joueurs.
Il peut gérer :
- positions ;
- états ;
- actions ;
- animations ;
- objets ;
- événements ;
- propriétés.
Un projet peut utiliser :
- serveur dédié ;
- serveur hébergé par un joueur ;
- services en ligne ;
- sessions ;
- matchmaking ;
- comptes ;
- sauvegardes distantes.
Epic Online Services peut fournir certaines fonctions en ligne, mais son utilisation reste distincte du moteur lui-même.
Le multijoueur constitue l’un des domaines les plus complexes du développement.
Un prototype fonctionnant en local ne garantit pas :
- une bonne latence ;
- une sécurité suffisante ;
- une synchronisation correcte ;
- une infrastructure stable ;
- une capacité à accueillir beaucoup de joueurs.
L’architecture réseau doit être pensée dès le début du projet.
Cinéma, animation et production virtuelle
Unreal Engine est largement utilisé pour les productions linéaires.
Il peut servir à créer :
- films d’animation ;
- cinématiques ;
- publicités ;
- effets visuels ;
- décors virtuels ;
- prévisualisations ;
- contenus télévisés ;
- événements en direct.
Le rendu en temps réel permet de modifier une scène et d’observer immédiatement le résultat.
Une équipe peut ajuster :
- la caméra ;
- l’éclairage ;
- les décors ;
- les personnages ;
- les effets ;
- les matériaux ;
sans attendre plusieurs heures de rendu après chaque changement.
La production virtuelle peut utiliser des écrans LED affichant un environnement Unreal en temps réel.
La caméra physique peut être suivie afin d’adapter la perspective du décor virtuel.
Cette méthode peut réduire certains besoins de fond vert et permettre aux acteurs de voir une partie de l’environnement pendant le tournage.
Elle demande toutefois :
- du matériel spécialisé ;
- une synchronisation précise ;
- des écrans adaptés ;
- un suivi de caméra ;
- une équipe technique ;
- une préparation importante.
Architecture, automobile et visualisation
Unreal Engine est aussi utilisé pour transformer des données de conception en expériences interactives.
Il peut produire :
- visites architecturales ;
- configurateurs ;
- showrooms virtuels ;
- présentations immobilières ;
- démonstrations industrielles ;
- interfaces automobiles ;
- jumeaux numériques ;
- simulations.
Une architecture peut être explorée en temps réel plutôt que présentée uniquement sous forme d’images fixes.
L’utilisateur peut modifier :
- les matériaux ;
- les couleurs ;
- les meubles ;
- l’éclairage ;
- l’heure ;
- la configuration.
Les modèles provenant de logiciels de CAO ou de conception doivent souvent être préparés avant leur utilisation en temps réel.
Ils peuvent contenir :
- trop de polygones ;
- des hiérarchies complexes ;
- des matériaux incompatibles ;
- des objets dupliqués ;
- des données inutiles.
Des outils d’import et d’optimisation restent nécessaires.
Réalité virtuelle, augmentée et XR
Unreal Engine peut cibler plusieurs appareils de réalité virtuelle, augmentée ou mixte.
Il prend notamment en charge des standards et technologies comme :
- OpenXR ;
- ARKit ;
- ARCore ;
- différents casques VR ;
- contrôleurs de mouvement ;
- suivi des mains ;
- visionOS selon les configurations disponibles.
Le moteur peut servir à créer :
- jeux VR ;
- formations ;
- visites ;
- simulations ;
- expériences artistiques ;
- présentations ;
- interfaces spatiales.
Les projets XR doivent maintenir un framerate élevé et stable.
Une scène acceptable sur un écran classique peut devenir inconfortable en casque.
Il faut particulièrement surveiller :
- latence ;
- performances ;
- mouvements de caméra ;
- résolution ;
- lisibilité ;
- interactions ;
- confort ;
- accessibilité.
Export vers plusieurs plateformes
L’éditeur Unreal Engine fonctionne sur Windows, macOS et Linux.
Les projets peuvent ensuite être préparés pour différentes plateformes cibles.
Selon les outils, licences et kits disponibles, cela peut inclure :
- Windows ;
- macOS ;
- Linux ;
- Android ;
- iOS ;
- iPadOS ;
- consoles ;
- casques XR.
La publication sur console nécessite généralement :
- un compte développeur approuvé ;
- un accès au kit de développement ;
- les outils du constructeur ;
- le respect de ses conditions.
Un projet ne peut pas être exporté vers toutes les plateformes sans adaptation.
Chaque cible possède ses propres contraintes :
- performances ;
- mémoire ;
- architecture processeur ;
- interface ;
- système de fichiers ;
- formats ;
- règles de distribution.
Fab, ressources et plugins
Fab est la place de marché de l’écosystème Epic.
Elle regroupe des ressources provenant notamment de plusieurs anciens services et communautés créatives.
Les utilisateurs peuvent y trouver :
- modèles 3D ;
- environnements ;
- textures ;
- matériaux ;
- animations ;
- personnages ;
- sons ;
- effets ;
- plugins ;
- systèmes de gameplay ;
- projets d’exemple.
Certaines ressources sont gratuites, d’autres payantes.
Fab permet d’accélérer fortement la création d’un prototype ou d’un environnement.
Un projet peut toutefois perdre son identité lorsqu’il assemble des ressources provenant de nombreux packs sans les adapter.
Les différences peuvent apparaître dans :
- le style ;
- les proportions ;
- la qualité ;
- les matériaux ;
- les animations ;
- la direction artistique.
Chaque ressource possède également ses propres conditions de licence.
Une ressource peut généralement être intégrée à un projet, mais pas redistribuée seule comme un fichier téléchargeable concurrent.
Plugins et intégrations
Unreal Engine possède un système de plugins.
Un plugin peut ajouter :
- un format d’import ;
- un outil de développement ;
- un système de gameplay ;
- une intégration avec un service ;
- un nouveau type d’asset ;
- une fonction d’éditeur ;
- un outil de rendu.
Les plugins peuvent provenir :
- d’Epic Games ;
- de Fab ;
- d’un éditeur tiers ;
- de l’équipe du projet.
Ils accélèrent le développement, mais créent aussi des dépendances.
Lors d’une mise à jour du moteur, un plugin peut :
- ne plus compiler ;
- être abandonné ;
- devenir incompatible ;
- demander une nouvelle licence ;
- modifier ses fonctions.
Les plugins essentiels doivent donc être évalués avant d’être intégrés au cœur du projet.
Collaboration et contrôle de version
Les projets Unreal peuvent être utilisés par plusieurs personnes.
Le moteur fonctionne avec différents systèmes de contrôle de version, notamment :
- Perforce ;
- Git ;
- solutions compatibles avec les besoins du projet.
Perforce est souvent utilisé par les grandes équipes parce qu’il gère bien les fichiers binaires et le verrouillage.
Git peut convenir aux projets plus petits, mais demande une configuration adaptée aux fichiers lourds.
De nombreux assets Unreal sont binaires.
Ils ne peuvent pas être fusionnés aussi facilement qu’un fichier de code texte.
Deux personnes modifiant simultanément le même niveau ou le même asset peuvent donc créer un conflit difficile à résoudre.
Les systèmes comme One File Per Actor réduisent certains conflits dans les mondes importants.
Une équipe doit néanmoins définir :
- conventions de nommage ;
- organisation des dossiers ;
- règles de validation ;
- responsabilités ;
- gestion des branches ;
- sauvegardes ;
- procédures de mise à jour.
Versions et mises à jour
Epic publie régulièrement de nouvelles versions d’Unreal Engine.
Une version majeure peut introduire :
- nouvelles fonctions ;
- changements de rendu ;
- nouveaux outils ;
- améliorations de performance ;
- modifications d’API ;
- fonctionnalités expérimentales.
Mettre à jour un projet n’est pas toujours immédiat.
Une nouvelle version peut créer :
- incompatibilités de plugins ;
- changements de comportement ;
- problèmes de compilation ;
- différences visuelles ;
- nouvelles exigences matérielles ;
- régressions.
Il est prudent de :
- conserver une sauvegarde ;
- tester une copie du projet ;
- vérifier les plugins ;
- lire les notes de version ;
- éviter de migrer pendant une phase critique.
Un projet en production peut rester sur une version stable pendant longtemps.
Le numéro le plus récent n’est pas toujours le meilleur choix pour tous les projets.
Configuration matérielle et stockage
Unreal Engine peut fonctionner sur des machines relativement variées, mais les fonctions avancées demandent un matériel puissant.
Pour une utilisation confortable, les besoins peuvent inclure :
- processeur multicœur récent ;
- 32 Go de RAM ou davantage ;
- carte graphique dédiée ;
- plusieurs gigaoctets de mémoire vidéo ;
- stockage SSD ;
- espace disque important.
Les besoins augmentent avec :
- Lumen ;
- Nanite ;
- MetaHuman ;
- textures haute résolution ;
- mondes ouverts ;
- compilation C++ ;
- effets Niagara ;
- rendus cinématographiques ;
- plusieurs plateformes d’export.
Un projet Unreal génère également des fichiers intermédiaires et caches.
Le stockage peut être occupé par :
- l’installation du moteur ;
- les projets ;
- les ressources sources ;
- Derived Data Cache ;
- compilations ;
- builds ;
- sauvegardes ;
- versions archivées.
Un seul projet important peut occuper plusieurs dizaines ou centaines de gigaoctets.
Licence, redevances et abonnements
La licence d’Unreal Engine dépend du type de projet et des revenus de l’utilisateur ou de l’organisation.
Le moteur est généralement gratuit pour :
- les particuliers ;
- les étudiants ;
- les enseignants ;
- les établissements scolaires ;
- les indépendants ;
- les petites organisations situées sous le seuil de revenu prévu par Epic.
Cette version gratuite ne retire pas volontairement des fonctions techniques.
Elle comprend :
- l’éditeur ;
- les plateformes prises en charge ;
- les outils avancés ;
- le code source ;
- les fonctions de rendu ;
- les systèmes de gameplay.
Pour les jeux et applications distribués intégrant le moteur, Epic applique une redevance au-delà d’un certain seuil de revenu brut attribuable au produit.
Au moment de la vérification :
- le premier million de dollars américains de revenu brut par produit est exonéré ;
- le taux standard au-delà du seuil est de 5 % ;
- certaines conditions de distribution peuvent réduire ou exclure une partie de la redevance.
La redevance s’applique au revenu brut concerné, pas uniquement au bénéfice.
Pour certains usages professionnels hors jeu, les grandes entreprises dépassant le seuil annuel prévu par Epic doivent acheter une licence par poste.
Cela peut concerner notamment :
- architecture ;
- automobile ;
- cinéma ;
- simulation ;
- productions internes ;
- visualisations commerciales non distribuées.
Les conditions comportent plusieurs exceptions et cas particuliers.
Une entreprise ou un projet commercial important doit donc consulter directement la licence actuelle et, si nécessaire, obtenir un avis juridique.
Cas d’usage
Prototyper un jeu
Unreal Engine permet de construire rapidement une première version jouable.
Les modèles de projet, Blueprints et ressources disponibles peuvent aider à tester :
- déplacement ;
- caméra ;
- combat ;
- inventaire ;
- interaction ;
- niveau ;
- interface ;
- ambiance.
Le prototype permet de vérifier si l’idée fonctionne avant de produire tous les contenus définitifs.
La richesse du moteur peut cependant pousser à construire trop tôt des systèmes complexes.
Un prototype doit rester centré sur les mécanismes essentiels.
Développer un jeu complet
Unreal Engine peut accompagner un projet depuis son prototype jusqu’à sa publication.
Il convient aux :
- projets indépendants ;
- jeux mobiles ;
- productions PC ;
- jeux console ;
- projets multijoueurs ;
- productions de grande ampleur.
La puissance du moteur ne remplace pas :
- une direction claire ;
- une organisation de projet ;
- une conception cohérente ;
- des tests ;
- une optimisation ;
- une stratégie de publication.
Un petit jeu bien défini reste souvent plus réalisable qu’un vaste monde ouvert commencé sans équipe ni ressources suffisantes.
Construire un monde ouvert
World Partition, PCG, Nanite et les outils de terrain permettent de créer de grands environnements.
Ils peuvent servir à produire :
- territoires ;
- villes ;
- paysages ;
- forêts ;
- mondes explorables ;
- simulations géographiques.
Ces outils accélèrent la production, mais un monde ouvert exige aussi :
- contenu ;
- navigation ;
- narration ;
- activités ;
- optimisation ;
- streaming ;
- tests.
La taille du monde ne garantit pas son intérêt.
Créer une cinématique ou un film d’animation
Sequencer, Control Rig, MetaHuman, Niagara et les outils de rendu permettent de produire des séquences linéaires.
Un créateur peut :
- construire un décor ;
- placer des personnages ;
- animer des caméras ;
- gérer les lumières ;
- ajouter des effets ;
- rendre les plans.
Unreal Engine est particulièrement intéressant pour prévisualiser rapidement le résultat.
La postproduction finale peut ensuite continuer dans un logiciel de montage ou de compositing.
Préparer un storyboard animé
Un réalisateur ou auteur peut utiliser Unreal Engine pour tester une scène avant son tournage ou son animation définitive.
Il peut explorer :
- cadrage ;
- placement des personnages ;
- mouvements de caméra ;
- lumière ;
- rythme ;
- dimensions du décor.
Cette prévisualisation facilite la communication avec une équipe.
Elle demande néanmoins plus de préparation qu’un simple storyboard dessiné.
Créer une visualisation architecturale
Unreal Engine permet de transformer une architecture en expérience interactive.
L’utilisateur peut visiter le projet, changer les matériaux ou comparer plusieurs configurations.
Cette approche convient aux :
- bâtiments ;
- appartements ;
- espaces publics ;
- showrooms ;
- projets immobiliers ;
- présentations clients.
Les modèles architecturaux doivent être optimisés pour fonctionner correctement en temps réel.
Produire un configurateur
Le moteur peut servir à créer une application permettant de modifier un produit.
L’utilisateur peut changer :
- couleur ;
- matériau ;
- équipement ;
- éclairage ;
- environnement ;
- version.
Ce type de configurateur convient particulièrement à :
- automobile ;
- mobilier ;
- immobilier ;
- industrie ;
- commerce.
Les données commerciales, les options et les règles doivent être intégrées avec précision.
Développer une simulation ou une formation
Unreal Engine peut reproduire un environnement, une machine ou une situation.
Il peut être utilisé pour :
- formation professionnelle ;
- sécurité ;
- conduite ;
- maintenance ;
- médecine ;
- industrie ;
- préparation opérationnelle.
Le réalisme visuel ne garantit pas à lui seul la validité pédagogique ou scientifique de la simulation.
Les comportements et données doivent être vérifiés par des spécialistes du domaine.
Créer une expérience VR ou AR
Le moteur permet de construire des expériences immersives pour :
- jeu ;
- formation ;
- visite ;
- exposition ;
- architecture ;
- art ;
- communication.
La réalité virtuelle demande une attention particulière au confort.
Les déplacements, interfaces et performances doivent être conçus spécifiquement pour le casque.
Apprendre la création interactive
Unreal Engine peut servir de support pour apprendre :
- programmation ;
- logique ;
- design de jeu ;
- animation ;
- rendu ;
- effets visuels ;
- création 3D ;
- mise en scène ;
- optimisation.
Blueprints permet de commencer sans maîtriser immédiatement le C++.
La quantité de fonctions disponibles peut toutefois donner l’impression qu’il faut tout apprendre avant de créer.
Il est plus efficace de commencer avec un petit projet et d’apprendre les systèmes réellement nécessaires.
Créer des outils internes
Grâce au C++, aux Blueprints, aux plugins et aux fonctions d’éditeur, Unreal Engine peut aussi servir à construire des outils destinés à une équipe.
Il est possible de créer :
- générateurs ;
- validateurs ;
- interfaces de production ;
- automatisations ;
- importateurs ;
- outils de placement ;
- systèmes de prévisualisation.
Ces outils peuvent accélérer fortement la production d’un projet important.
Avis PANACHES
Unreal Engine est l’un des environnements créatifs les plus complets disponibles aujourd’hui.
Il ne réunit pas seulement des outils techniques destinés à fabriquer un jeu.
Il permet de faire fonctionner ensemble :
- le code ;
- l’image ;
- la 3D ;
- l’animation ;
- le son ;
- la narration ;
- la physique ;
- l’interaction ;
- la mise en scène.
Cette capacité à réunir plusieurs disciplines constitue sa plus grande force.
Un personnage peut être modélisé dans un logiciel 3D, animé dans Unreal Engine, intégré à un monde, contrôlé par le joueur, éclairé avec Lumen, accompagné d’effets Niagara et mis en scène dans Sequencer.
Peu d’outils permettent de parcourir une chaîne créative aussi large dans un seul projet.
Cette richesse constitue également la principale difficulté du moteur.
Unreal Engine contient tellement de systèmes, d’éditeurs et de possibilités qu’il est facile de :
- se disperser ;
- multiplier les plugins ;
- utiliser des technologies inutiles ;
- construire une architecture trop complexe ;
- créer un projet trop lourd ;
- suivre des tutoriels sans comprendre leur logique.
Le moteur donne accès à des technologies avancées, mais il ne transforme pas automatiquement une idée en projet réalisable.
Nanite ne remplace pas la direction artistique.
Lumen ne remplace pas le travail de lumière.
Blueprints ne remplace pas la compréhension de la programmation.
PCG ne remplace pas la composition d’un monde.
MetaHuman ne remplace pas la création d’un personnage.
Fab ne remplace pas la cohérence visuelle.
Pour Panaches, Unreal Engine est particulièrement intéressant comme atelier de mondes interactifs.
Il relie directement plusieurs domaines du projet :
- Développement ;
- Informatique ;
- Digital Art ;
- Art ;
- Musique ;
- Écriture ;
- Video Game.
Il permet de passer d’une idée ou d’un univers à une expérience dans laquelle l’utilisateur peut réellement se déplacer, agir et interagir.
Unreal Engine complète bien un environnement local dans lequel restent organisés :
- documents de conception ;
- scénarios ;
- références visuelles ;
- modèles 3D ;
- textures ;
- sons ;
- code ;
- versions ;
- builds ;
- sauvegardes.
La meilleure manière de commencer n’est pas de vouloir immédiatement maîtriser tout le moteur.
Il vaut mieux choisir un objectif concret :
- déplacer un personnage ;
- créer une pièce ;
- ouvrir une porte ;
- déclencher un son ;
- construire une courte scène ;
- publier un petit prototype.
Chaque système appris doit répondre à un besoin réel du projet.
Unreal Engine ne sert pas seulement à fabriquer des jeux aux graphismes impressionnants.
Il permet de construire des mondes dans lesquels le code, l’image, le son, l’animation et la narration peuvent fonctionner ensemble.
Points d’attention
- Unreal Engine est un logiciel complexe possédant une courbe d’apprentissage importante.
- Le moteur contient de nombreux systèmes qui ne sont pas nécessaires à tous les projets.
- Il est facile de se disperser entre les outils, plugins et technologies disponibles.
- L’installation complète peut occuper beaucoup d’espace disque.
- Les projets, caches, builds et fichiers intermédiaires peuvent atteindre plusieurs dizaines ou centaines de gigaoctets.
- Une machine disposant de peu de mémoire peut rencontrer des ralentissements importants.
- Les fonctions avancées demandent une carte graphique récente.
- Lumen, Nanite, MetaHuman et les rendus cinématographiques augmentent fortement les besoins matériels.
- Les performances observées dans l’éditeur ne correspondent pas toujours à celles du produit final.
- Une scène fonctionnant sur PC peut être trop lourde pour un appareil mobile ou un casque autonome.
- Nanite ne supprime pas tous les besoins d’optimisation.
- Lumen peut produire du bruit, des fuites de lumière ou des réflexions approximatives.
- Les matériaux complexes peuvent devenir très coûteux.
- Les textures haute résolution consomment beaucoup de mémoire.
- Les transparences, ombres et effets peuvent réduire fortement les performances.
- Les mondes ouverts demandent une gestion attentive du streaming et de la mémoire.
- World Partition ne rend pas automatiquement une grande carte performante.
- PCG accélère la production, mais peut créer des environnements répétitifs ou sans intention.
- Les MetaHumans sont exigeants en ressources.
- Les personnages MetaHuman peuvent sembler uniformes sans personnalisation approfondie.
- Le retargeting d’animations peut produire des poses ou mouvements incorrects.
- Control Rig ne remplace pas toujours un logiciel d’animation spécialisé.
- Les simulations Chaos ne garantissent pas une précision scientifique.
- Les effets Niagara complexes peuvent consommer beaucoup de ressources.
- MetaSounds ne remplace pas un DAW pour la production audio complète.
- Blueprints reste une forme de programmation et demande une architecture claire.
- Un grand graphe Blueprint peut devenir difficile à lire et maintenir.
- Utiliser uniquement Blueprints n’est pas toujours adapté aux systèmes les plus lourds.
- Le C++ Unreal possède ses propres conventions et une courbe d’apprentissage importante.
- Les temps de compilation peuvent ralentir le développement.
- Modifier le code source du moteur augmente les coûts de maintenance.
- Un fork personnalisé peut devenir difficile à mettre à jour.
- Les versions majeures peuvent casser certains plugins ou comportements.
- Il faut tester une copie du projet avant toute migration.
- Les fonctions expérimentales ne devraient pas être intégrées sans évaluation dans un projet critique.
- Les plugins tiers peuvent être abandonnés ou devenir incompatibles.
- Un projet dépendant fortement d’un plugin peut devenir difficile à maintenir.
- Les ressources Fab ne suivent pas toutes exactement la même licence.
- Les ressources achetées ne peuvent généralement pas être redistribuées seules.
- Assembler de nombreux packs peut produire une direction artistique incohérente.
- Les assets téléchargés doivent être vérifiés et optimisés avant utilisation.
- Les projets Unreal contiennent de nombreux fichiers binaires difficiles à fusionner.
- Le travail en équipe demande un contrôle de version correctement configuré.
- Git peut devenir lourd avec de nombreux fichiers binaires volumineux.
- Perforce demande une infrastructure et une organisation adaptées.
- Les conflits sur les niveaux et assets peuvent être difficiles à résoudre.
- Les sauvegardes régulières restent indispensables.
- Le multijoueur est beaucoup plus complexe qu’un prototype local.
- La sécurité et l’architecture serveur doivent être pensées dès le début.
- La publication sur console demande l’autorisation et les outils du constructeur.
- Chaque plateforme cible possède ses propres contraintes techniques.
- Un export multiplateforme demande généralement des adaptations.
- Les expériences VR doivent maintenir un framerate élevé et stable.
- Un mauvais déplacement en VR peut provoquer de l’inconfort.
- L’accessibilité doit être conçue, et non ajoutée uniquement à la fin.
- Unreal Engine n’est pas open source malgré l’accès au code source.
- Le code est soumis à la licence propriétaire d’Epic Games.
- Certaines licences copyleft ne sont pas compatibles avec les conditions d’Unreal Engine.
- La gratuité dépend du revenu, du type de projet et du mode de distribution.
- Les jeux et applications distribués peuvent être soumis à une redevance au-delà du seuil prévu.
- La redevance se calcule sur le revenu brut concerné et non uniquement sur le bénéfice.
- Certaines grandes entreprises doivent acheter des licences par poste pour les usages professionnels non distribués.
- Les seuils, taux et exceptions peuvent évoluer.
- Un projet commercial important doit consulter directement la licence actuelle.
- Unreal Engine accélère la production, mais ne remplace pas la conception, l’organisation, la programmation, l’optimisation et la direction artistique.
- Commencer par un monde ouvert, un MMO ou un projet photoréaliste très ambitieux augmente fortement le risque d’abandon.
- Un premier projet court et précisément défini reste la meilleure manière d’apprendre le moteur.