# UnrealEd

UnrealEd (Unreal Editor, ou UEd en abrégé) est un logiciel permettant la création de carte de jeu (map en Anglais) pour les jeux de la série Unreal, et des jeux basés sur le moteur UnrealEngine, tel Deus Ex. Epic Games fut parmi les premiers développeurs à inclure un éditeur de niveaux gratuitement dans leurs jeux. Ceci permis la création de nombreuses communautés de modélisme et la création d'une vaste quantité de cartes pour les jeux incluant UnrealEd. De plus, le jeu incorpore un langage de script, UnrealScript, qui permet aux modeleurs de paramétrer les niveaux au-delà du modélisme (élaboration d'automatismes, modification des propriétés des décorations et des armes, etc.). Ce logiciel permet donc d'accroître la longévité des jeux avec lesquels il est livré, puisque les communautés les complètes constamment avec de nouvelles cartes.
Ce logiciel est gratuit (avec obligation d'achat du jeu) et représente une référence en matière de level design. Plate-forme commune à un grand nombre de projets, il fédère une grande communauté de créateurs de cartes. En effet, le système de création des cartes de jeu est devenu une base à tous les éditeurs de niveau de jeu FPS (First Person Shooter ou jeu de tir à la première personne) aussi appelé « Doom-like » ou « Quake-like ». Le moteur d'UnrealEd permet la création de niveaux à haut niveau de polygones, l'intégration de scripts et de séquences animées de type Machinima grâce à l'outil Matinée, et permet de compiler les niveaux en quelques minutes (moins d'une demi-heure pour de très grandes cartes).

## Versions

UnrealEd a subi plusieurs mises à jour du fait des nombreux opus de la série Unreal, ce qui s'est traduit par une multitude de versions. Unreal était livré avec UnrealEd 1.0, qui proposait de nombreuses fonctionnalités d'édition pour l'époque. Toutefois, cette version souffrait de nombreux bugs, notamment lors de la compilation des cartes.
Unreal Tournament était livré avec UnrealEd 1.0, mais la nouvelle version UnrealEd 2.0 fut ajoutée plus tard avec un correctif. L'interface graphique du logiciel perdit en couleurs, les boutons arborant désormais une coloration vert terne. De nouvelles fonctionnalités furent ajoutées (tel qu'un outil de recherche et le nouveau 2D Shape Editor) et sa stabilité grandement améliorée, bien que quelques crashes inexplicables subsistaient encore.
Unreal Tournament 2003 était livré avec UnrealEd 3, une version très stable du logiciel. L'interface graphique est identique à celle de la version précédente.
La dernière version du logiciel est celle fournie avec l'UDK, en version 4.0. D'autres versions avec des fonctions supplémentaires ou manquantes sont disponibles avec les jeux utilisant la troisième version de l'Unreal Engine, comme Gears of War ou Unreal Tournament 3.
UnrealEd a également été adapté pour d'autres jeux, tel Deus Ex. Cela signifie qu'en plus des versions basées sur la série Unreal, UnrealEd existe en versions propres à chaque jeu basé sur l'UnrealEngine. Certains éditeurs ont décidé de distribuer eux aussi le logiciel avec leur jeu, sous forme de SDK.

## Interface

L'interface utilisateur d'UnrealEd présente une barre de boutons verticale, une barre de menus horizontale, une interface en ligne de commande et quatre vues de la carte. La barre verticale gauche permet de modeler la carte, les menus de dessus permettent de configurer les propriétés de la carte et la ligne de commande permet d'exécuter des instructions non disponibles sur les deux barres.
Les quatre vues affichent des représentations de la carte. Chaque vue peut afficher la carte selon un mode différent :
* vue filaire en perspective ;
* vue filaire projetée dans le plan (x, y ou z) ;
* vue en rendu normal ;
* vue en rendu normal avec prise en charge des effets de lumière ;
* affichage des zones ;
* affichage des BSP ;
* affichage des types de texture (chaque texture est remplacée par une couleur primaire ; permet de voir les occurrences et répétitions).

## Fonctionnement

UnrealEd repose sur le concept des brushes. Les brushes peuvent être des formes primitives (cubes, sphères et cônes), des formes prédéfinies (telle une portion d'escalier) ou des formes personnalisées (issues de la fusion de plusieurs formes primitives). Une forme primitive est segmentée en plusieurs surfaces, ce qui signifie qu'une sphère ne sera jamais qu'un polyèdre. Par le biais d'opérations CGS (CSG en Anglais), des modélisations complexes peuvent être réalisées en additionnant, soustrayant et intersectant des brushes. Les brushes additif peuvent être solides, semi-solides (pas de découpage BSP) ou non-solides (utilisés pour les portails et certaines décorations), ce qui varie les possibilités de construction.
UnrealEd considère l'environnement 3D comme une masse sans limites. Pour créer de l'espace, des brushes doivent être soustraits (excavés) de la masse. Réciproquement, l'addition d'un brush (bossage) permet de remplir les trous. Une carte est construite à partir de brushes additionnés et soustraits. Ainsi, pour créer un bâtiment, il est d'abord nécessaire de soustraire un cube pour l'environnement extérieur, d'additionner un cube pour l'immeuble, puis de soustraire une à une toutes les pièces qui le composent, avant d'additionner tous ses composants (bureaux, chaises, portes, lampes, ...). UnrealEd est donc un éditeur basé sur la soustraction, à la différence des éditeurs basés sur l'addition, tels Quake et Quake II. Toutefois, chaque type d'éditeur possède ses propres avantages et inconvénients.
Les brushes peuvent encore se décliner en trois variétés : les brushes statiques, qui forment l'environnement 3D, les brushes dynamiques et les brushes de portail. Un brush dynamique est par définition un brush dont la position selon les trois axes (x, y, z) est variable. Un tel brush est nommé mover, et est employé pour les ascenseurs, portes, mécanismes dynamiques ou tout autre application nécessitant un mouvement de translation et/ou de rotation. Il peut également servir à paramétrer certains évènements sonores, lorsque la fonction (l'acteur) dédié n'est pas capable de le faire. Un brush de portail, appelé Zone Portal, permet de « découper » une carte pour spécifier les zones aux propriétés physiques particulières : faible gravité à l'extérieur d'un vaisseau spatial, zone liquide pour les piscines, propulsion pour les courants d'air forts, brouillard, neige, etc. De cette manière, une grande variété d'environnements naturels (ou irréalistes) peuvent être créés.
Une fois la modélisation terminée, les brushes sont compilés suivant un arbre BSP, pour le rendu des textures et la détection des collisions. Malheureusement, plus une carte est complexe et plus elle est encline aux erreurs BSP, ce qui provoque des erreurs d'affichage et de calcul de collisions. Il existe plusieurs formes d'erreurs BSP, dont les plus courants sont les « trous BSP » et les effets « HoM ». Dans le cas des « trous BSP », le découpage d'une zone est trop forte et une partition peut être « oublié » par le moteur ; le joueur peut soit voir à travers un morceau de mur ou de plafond, passer à travers le trou, être bloqué par un obstacle invisible, mourir sans raison lorsqu'il marche dessus ou apercevoir un effet HoM. Un effet HoM (de l'anglais Hall of Mirrors) survient lors d'une erreur BSP, et aucune texture n'est affichée sur la partition. Lorsqu'une image (frame) doit s'afficher à l'écran, elle se superpose à la précédente. Or, lorsqu'un effet HoM est généré, aucune image ne peut se superposer puisqu'il n'y a pas de texture, ce qui provoque l'affichage des frames précédentes. C'est pour cette raison que furent introduits les static meshes dans l'UnrealEngine 2, des décorations dont le processus d'affichage est indépendant de l'architecture BSP.
Les static meshes sont des formes précalculées, créés avec des logiciels comme Maya ou 3D Studio Max et importées dans les cartes. Ces formes permettent de décorer facilement l'environnement, sans passer par l'intersection d'une multitude de brushes (ce qui permet donc de réduire le risque d'erreur BSP). Un static mesh a également la particularité de n'être chargé en mémoire qu'en un seul exemplaire, même s'il est présent en plusieurs exemplaires dans la carte, d'où un gain de mémoire non négligeable. Les niveaux des jeux utilisant le moteur dans sa version 3, telUnreal Tournament 3, sont majoritairement constitués de static meshes.
Selon une idée fausse, généralement répandue, construire des structures complexes à partir d'une multitude de petits static meshes (plutôt qu'en un seul morceau) permet de gagner en mémoire. En réalité, cette pratique conduit à une plus grande consommation de mémoire, puisque plus de polygones doivent être dessinés, ce qui signifie plus de calculs et de mise en mémoire d'images par frame.

## Utilisation d'UnrealEd en architecture

Dans le but de tester des projets de bâtiments, des architectes ont adopté UnrealEd. Cela leur permet de construire des modèles et de tester leurs idées. En présentant ces maquettes virtuelles au public, des améliorations répondant aux attentes peuvent être ajoutées avant de passer à la construction réelle. Un problème persiste toutefois : celui de la conversion de la taille des éléments provenant de logiciels tels AutoCAD et 3D Studio Max.