Le guide suivant est destiné aux utilisateurs qui ont téléchargé et compilé la version d'Unreal Engine à partir de son code source, disponible sur GitHub. Pour en savoir plus, consultez la page Télécharger le code source de l'Unreal Engine.
Si vous téléchargez le dernier code de l'Unreal Engine (UE), vous remarquerez peut-être qu'aucun fichier de projet Visual Studio (VS) ou Xcode n'est disponible pour la compilation et l'exécution du moteur ou des exemples de jeux. Vous devrez exécuter un script qui génère les fichiers de projet en vue de les charger :
Exécutez le fichier
GenerateProjectFiles.batqui se trouve dans le répertoire racine de l'UE.L'outil de génération de projet analyse les fichiers de module et de build cibles, puis génère de nouveaux fichiers de projet. Cette opération peut prendre un certain temps.
Pour les développeurs VS, cette option génère un fichier UE5.sln dans le même répertoire. Utilisez ce fichier de solution pour compiler et exécuter des programmes et des jeux dans l'UE. Pour votre première compilation, nous vous recommandons d'utiliser la configuration de développement avec la plateforme Win64.
Par défaut, nous générons des projets compilables pour toutes les plateformes disponibles pour lesquelles nous avons détecté des kits SDK. Vous pouvez ainsi compiler et déboguer des consoles et des plateformes mobiles. Si vous souhaitez générer des projets uniquement pour la plateforme sur laquelle vous travaillez actuellement (par exemple, Windows), exécutez GenerateProjectFiles.bat avec l'argument -CurrentPlatform. Les fichiers du projet seront un peu moins volumineux.
N'oubliez pas d'exécuter à nouveau le fichier GenerateProjectFiles.bat après avoir synchronisé les nouveaux changements de code du contrôle de source. Si vous omettez cette étape, il est fort probable que des problèmes surviennent lors de la compilation ou de l'exécution de votre jeu.
Si vous apportez des modifications locales aux modules, notamment l'ajout ou la suppression de fichiers sources, vous devez réexécuter le fichier GenerateProjectFiles.bat. Il est déconseillé de modifier manuellement les fichiers de projet.
Options de ligne de commande
Le générateur de projet dispose d'arguments de ligne de commande facultatifs que vous pouvez utiliser pour personnaliser les fichiers de projet générés en fonction de vos besoins. Ces options ne sont généralement pas nécessaires ou recommandées.
| Option | Description |
|---|---|
| Cet argument génère des projets compilables uniquement pour la plateforme de bureau actuelle (Windows ou Mac), plutôt que pour toutes les plateformes cibles détectées disponibles. |
| Cet argument génère des projets dans un format natif de VS 2022. Le compilateur Visual C++ 2022 est utilisé pour la compilation lorsque cette option est activée. |
| Cet argument ajoute des en-têtes et d'autres fichiers de bibliothèques tiers au projet. Cela peut s'avérer utile si vous souhaitez voir les symboles et les fichiers dans Visual Assist pour PhysX, Steamworks ou Bink, par exemple. Cependant, cet argument ralentit le chargement des fichiers du projet. |
| Cet argument indique au générateur de projet de générer des projets qui incluent uniquement du code et du contenu correspondant au nom de projet spécifié, à l'exception de tous les autres projets détectés. Veillez également à spécifier un nom de projet. Par exemple, |
| Cet argument ignore la génération des données IntelliSense utilisées pour la saisie automatique et les marques d'erreur dans l'EDI. |
| Cet argument inclut la documentation du moteur dans toutes les langues. Par défaut, seuls les fichiers en anglais sont inclus dans le projet. |
| Lorsque cet argument est spécifié, seuls les fichiers d'en-tête publics sont inclus dans les projets générés pour les modules du moteur. Par défaut, tous les fichiers sources sont inclus dans les modules du moteur. Cela permet de charger un projet plus rapidement, mais il peut être plus difficile de naviguer dans le code de l'Unreal Engine. |
| Cet argument ouvre les configurations de build de |
| Cet argument remplace l'ensemble de plateformes par défaut pour lesquelles générer des projets compilables, et génère à la place des projets pour la ou les plateformes spécifiées. Vous pouvez spécifier plusieurs plateformes en les séparant par un caractère "+". Cet argument entraîne également l'ajout d'un suffixe incluant le ou les noms de la ou des plateformes au nom du fichier de solution généré. |
Informations supplémentaires
Le script GenerateProjectFiles.bat est un simple wrapper autour de l'outil Unreal Build Tool, lancé dans un mode spécial qui génère les fichiers du projet plutôt que les fichiers exécutables du programme. Il appelle Unreal Build Tool avec l'option de ligne de commande -ProjectFiles.
Le système de build de l'UE n'a pas besoin des fichiers de projet pour compiler le code. Unreal Build Tool localise systématiquement les fichiers sources à l'aide de fichiers de modules et de build cibles. Pour cette raison, si vous ajoutez un nouveau fichier source et déclenchez une compilation, le nouveau fichier source peut être inclus dans le build même si les fichiers du projet n'ont pas encore été actualisés.
Pour les projets VS, le fichier de solution généré est UE5.sln ; il est enregistré dans le répertoire racine de l'UE. Les fichiers du projet sont toutefois enregistrés dans le répertoire UNREAL_ENGINE_ROOT/Engine/Intermediate/ProjectFiles/. Vous pouvez supprimer ces fichiers à tout moment et régénérer les projets en toute sécurité. Cependant, vous risquez de perdre certaines préférences propres au projet, notamment les chaînes d'arguments de ligne de commande, si vous supprimez ces fichiers.
Avantages de la génération de fichiers de projet
Bien que la génération de fichiers de projet présente à la fois des avantages et des inconvénients, nous avons décidé de générer des fichiers de projet pour l'UE pour les raisons suivantes :
L'UE a certes été conçu pour fonctionner avec de nombreuses plateformes, mais différentes équipes ne peuvent travailler qu'avec certaines plateformes spécifiques. En générant des fichiers de projet, il est possible d'omettre les fichiers spécifiques à la plateforme et les configurations de build qui ne sont pas pertinentes.
La méthodologie de programmation de l'UE intègre de nombreux sous-modules. Il était donc primordial de faciliter l'ajout de nouveaux modules aux programmeurs.
Le générateur de projet émet des définitions très précises et inclut des chemins utilisés par VS IntelliSense lorsque vous travaillez sur le code de l'UE.
Il est bien plus simple de configurer un nouveau projet lorsque les fichiers sont générés automatiquement.
Nous souhaitons prendre en charge plusieurs plateformes et environnements de développement (par exemple, VS et Xcode). La gestion manuelle de plusieurs ensembles de fichiers de projet est fastidieuse et peut entraîner des erreurs.
Nous souhaitons permettre aux programmeurs de générer des fichiers de projet hautement personnalisés.
La structure de répertoire des fichiers sources est automatiquement répliquée dans la hiérarchie de la solution des fichiers de projet. Bien que cette fonction soit très pratique pour parcourir les fichiers sources, elle est difficile à gérer avec des projets créés manuellement.
Les configurations de build de l'UE sont très complexes et difficiles à gérer manuellement. Le générateur de projet rend le processus quasi transparent pour les développeurs.
Autres fichiers ajoutés avec la fonction Générer les fichiers de projet
Outre le code source pour les modules C++, nous avons ajouté automatiquement plusieurs autres fichiers aux projets générés. Il est ainsi plus facile de retrouver ces fichiers lors de recherches. Voici d'autres exemples de fichiers ajoutés aux projets générés :
Code source de shader (fichiers
*.usf)Fichiers de documentation du moteur (
fichiers *.udn)Fichiers de configuration du programme (fichiers
*.ini)Fichiers de localisation (fichiers
*.int)Fichiers de ressources de programme et manifestes (
*.rc, .manifest)Certains fichiers de projet externes (non générés) (par exemple, UnrealBuildTool et Clean)
Fichiers de projet et contrôle de source
Les fichiers de projet ne sont pas archivés dans le contrôle de source. La fusion des conflits de contrôle de source dans les fichiers de projet était fastidieuse et source d'erreurs. Le nouveau système évite cet écueil en traitant les fichiers du projet comme des fichiers intermédiaires. De plus, les fichiers de solution sont différents pour chaque équipe travaillant sur différents projets de jeux. Il est fort probable que les fichiers de projet que nous utilisons au sein d'Epic ne soient pas utiles à d'autres équipes sans être modifiés.
Déboguer le code du générateur de projet
Voici quelques conseils utiles pour vous aider à déboguer les modifications apportées au code du générateur de projet :
Utilisez UnrealBuildTool comme projet de démarrage.
Définissez les paramètres de débogage de ligne de commande sur
-ProjectFiles.Définissez le répertoire de travail sur votre chemin d'accès local
UNREAL_ENGINE_ROOT/Engine/Source/.Compilez et déboguez normalement.
Notez que le générateur de projet peut supprimer les fichiers de projet que vous utilisez dans VS lorsque vous travaillez. Pour cette raison, il est parfois utile de charger le projet Unreal Build Tool directement dans VS au lieu de procéder au débogage via le fichier de solution habituel de l'UE.
Compiler plusieurs configurations
Vous pouvez utiliser la fonctionnalité Batch Build de VS. Celle-ci se trouve dans le menu Build. Il vous suffit de sélectionner toutes les configurations que vous souhaitez compiler et de cliquer sur Build.
Intégration de l'extension UnrealVS
L'extension UnrealVS pour VS comprend un bouton sur la barre d'outils sur lequel vous pouvez cliquer pour générer à nouveau les fichiers de projet correspondant à la solution actuellement chargée.
Vous pouvez également associer une touche de raccourci à cette fonctionnalité. Dans VS, ouvrez Tools > Options > Environment > Keyboard, puis recherchez UnrealVS.RefreshProjects.
Notez que cette fonctionnalité n'est activée qu'après avoir chargé une solution (car l'outil doit connaître la branche de code pour laquelle générer les projets). Si vous n'avez pas encore généré de fichier UE5.sln, vous devez commencer par exécuter directement le script GenerateProjectFiles.bat.