Dans le cadre du processus d'empaquetage, l'outil d'automatisation (parfois appelé UAT, qui signifie Unreal Automation Tool, à savoir outil d'automatisation de l'Unreal) permet d'utiliser un ensemble de scripts d'utilitaire pour manipuler les projets Unreal Engine (UE). Lors du processus d'empaquetage, l'outil d'automatisation utilise une commande particulière appelée BuildCookRun. Cette commande peut préparer le contenu pour une plateforme, l'empaqueter dans le format natif d'une plateforme à des fins de distribution, le déployer sur l'appareil et exécuter automatiquement le projet (le cas échéant). Cependant, l'empaquetage de votre projet ne nécessite pas uniquement l'utilisation directe d'UAT. Utilisez le bouton Plateformes de la barre d'outils de l'UE pour sélectionner l'une des plateformes disponibles ou la ligne de commande pour préparer et empaqueter le contenu d'une plateforme.
Dans le cadre de la commande BuildCookRun d'UAT, les étapes suivantes décrivent les différentes phases du pipeline d'empaquetage :
- Build : cette étape compile les exécutables pour la plateforme sélectionnée.
- Préparer : cette phase prépare le contenu en exécutant l'UE dans un mode spécial.
- Mettre en place : cette phase copie les exécutables et le contenu dans une zone de mise en place, c'est-à-dire un répertoire autonome en dehors du répertoire de développement.
- Empaqueter : cette phase empaquette le projet dans le format de distribution natif d'une plateforme.
- Déployer : cette phase déploie le build sur un appareil cible.
- Exécuter : cette phase démarre le projet empaqueté sur la plateforme cible.
Pour obtenir une liste de tâches prédéfinies, consultez la page de référence Tâches du script BuildGraph.
Méthodes d'empaquetage
Dans la mesure où vous pouvez déployer le contenu de plusieurs manières différentes sur une plateforme cible à des fins de test, de débogage ou de préparation avant publication, vous pouvez tester vos paquets de différentes façons :
- Utilisez la barre d'outils de l'UE pour tester rapidement une partie de votre niveau chargé à des fins de test et de débogage.
- Utilisez le lanceur de projet pour recourir à un profil par défaut ou en personnaliser un et exécuter diverses actions telles que le profilage ou le débogage pour la dernière version de votre projet.
- Sélectionnez un jeu déjà empaqueté et déployez-le sur une plateforme, par exemple une console ou un appareil mobile.
Suivez les sections ci-dessous pour en savoir plus sur ces méthodes d'empaquetage et sur la façon dont vous pouvez empaqueter vos jeux lorsque vous les utilisez.
Barre d'outils de l'UE
Utilisez le bouton Plateformes de la barre d'outils de l'UE afin de sélectionner une plateforme pour laquelle empaqueter votre projet. Lorsque vous empaquetez un projet à l'aide de cette option, les paquets du projet sont enregistrés dans un dossier de votre choix, mais ne sont pas déployés sur l'appareil.
Dans le menu déroulant situé sous Plateformes, vous pouvez effectuer les actions suivantes :
-
Créer et lancer un projet sur l'appareil disponible dont vous avez besoin. Lorsque vous cliquez dessus, le processus de lancement prépare automatiquement le contenu nécessaire, crée le code et se lance sur la plateforme sélectionnée. Le build est un moyen rapide de tester les fonctionnalités pendant le développement actif, sans avoir à compiler et exécuter l'intégralité du projet chaque fois que vous devez tester une fonction.
-
Choisissez la plateforme cible et ajustez la configuration du build correspondante (développement, expédition, etc.).
Il existe un problème connu dans la version 5.4.0 de l'UE : lorsque vous tentez d'empaqueter avec l'option "Utiliser les paramètres du projet", l'UE utilise la configuration définie dans Paramètres du projet > Empaquetage lors du démarrage de l'éditeur, même si vous la modifiez. Afin d'y remédier, redémarrez l'éditeur pour vous assurer que la nouvelle configuration de build prend effet ou choisissez l'une des configurations binaires du menu Plateformes au lieu d'utiliser les paramètres du projet. Ce problème a été résolu dans la version 5.4.1 de l'UE.
-
Accédez au lanceur de projet, au gestionnaire d'appareils, aux paramètres d'empaquetage et aux plateformes prises en charge.
Si la plateforme sur laquelle vous souhaitez effectuer le déploiement n'est pas disponible ou si elle est grisée dans ce menu :
- Assurez-vous d'avoir installé le bon kit SDK pour cette plateforme (si nécessaire) et qu'il est pris en charge par la version du moteur que vous utilisez actuellement. Pour cela, consultez le fichier UEBuild.cs de la plateforme, qui se trouve à l'emplacement suivant : Engine/Source/Programmings/UnrealBuiltTools/Platforms. Par exemple, si vous souhaitez savoir quel SDK est pris en charge pour Android, consultez le fichier UEBuildAndroid.cs.
- Assurez-vous que toutes les extensions Visual Studio ou tous les fichiers nécessaires sont installés.
- Certaines plateformes (comme les consoles) nécessitent un outil externe pour connecter l'appareil. Assurez-vous de son bon fonctionnement et de la détection de l'appareil.
- Utilisez le gestionnaire d'appareils dans le moteur pour "revendiquer" les appareils selon vos besoins et garantir que ces appareils ne peuvent être utilisés que pour votre machine locale.
Lanceur de projet
Le lanceur de projet vous permet d'effectuer le déploiement sur différentes plateformes à partir d'un seul emplacement, voire d'un seul profil de lancement. Pour ouvrir le lanceur de projet, cliquez sur Plateformes > Lanceur de projet.
Chaque plateforme déployée possède son propre profil de lancement par défaut (répertorié dans la fenêtre principale). Vous pouvez également choisir d'en personnaliser qui vous permettra de créer un projet d'une manière spécifique, avec de nombreux paramètres avancés. Vous serez en mesure d'appliquer des arguments de ligne de commande, de tester le contenu téléchargeable (DLC), de corriger les versions, entre autres.
Pour en savoir plus, consultez la page de référence Lanceur de projet.
Profil de lancement personnalisé
Dans le lanceur de projet, vous pouvez créer un Custom Launch Profile (profil de lancement personnalisé) en vue de l'utiliser sur toutes les plateformes ou uniquement sur celles que vous spécifiez. Ces profils vous permettent de créer votre contenu de manière spécifique en définissant la manière dont il est préparé, empaqueté et déployé à l'aide d'opérations de création disponibles.
Pour ajouter votre propre profil de lancement personnalisé, cliquez sur le bouton Ajouter sur le côté droit de la fenêtre.
Vous accédez directement au profil de lancement personnalisé. Assurez-vous de lui donner un nom et une description afin de pouvoir l'identifier rapidement plus tard.
Ligne de commande
L'outil d'automatisation vous permet de préparer et d'empaqueter votre jeu en utilisant la ligne de commande. Par ailleurs, toutes les opérations de construction étant effectuées par l'UAT, vous pouvez l'exécuter directement sur la ligne de commande avec le fichier RunUAT.bat lorsque celui-ci est fourni avec des arguments valides.
Le fichier RunUAT se trouve à l'emplacement Engine/Build/BatchFiles. Sous Windows, utilisez le fichier RunUAT.bat, et sous macOS/Linux, utilisez le fichier RunUAT.sh.
Il est possible de procéder à une préparation de base à l'aide des arguments de ligne de commande suivant le fichier UnrealEditor.exe ou UnrealEditor-cmd.exe :
UnrealEditor.exe [GameName or .uproject] -run=cook -targetplatform=[Platform] -cookonthefly -map=[Map Name]
Vous devez spécifier la commandlet via -run=cook, ainsi que la plateforme pour laquelle préparer le contenu. Elle génère les données préparées pour la plateforme spécifiée et les enregistre à l'emplacement suivant :
[UnrealEditor Project]/Saved/Sandboxes/Cooked-[Platform]
La rédaction manuelle de vos arguments de ligne de commande peut s'avérer complexe et risque d'entraîner des erreurs. Il est donc recommandé d'utiliser un profil de lancement personnalisé pour générer avec précision une ligne de commande pour votre build. Tout paramètre saisi dans le profil de lancement personnalisé génère automatiquement la ligne de commande et l'affiche dans la fenêtre Journal de sortie lorsqu'elle est utilisée pour préparer et créer le projet. Tout texte qui suit BuildCookRun peut être directement transmis en tant qu'argument de ligne de commande à l'aide de RunUAT.bat.
Voici un exemple de sortie générée par le lanceur de projet et de ligne de commande équivalente à rédiger manuellement en vue d'une utilisation pour RunUAT.bat :
-
Fenêtre de journal du lanceur de projet
Automation.ParseCommandLine: Parsing Command Line: -ScriptsForProject=MyProject.uproject BuildCookRun -project=MyProject.uproject -clientconfig=Development -
Rédigé manuellement
[UnrealEngineRoot]/Engine/Build/BatchFiles/RunUAT.bat BuildCookRun -project=MyProject.uproject -clientconfig=Development
Pour en savoir plus, consultez la page Préparation de contenu.
Préparation de contenu
Dans l'UE, le contenu est stocké dans certains formats pris en charge (PNG pour les données de texture ou WAV pour l'audio) par une plateforme. Il est cependant possible que le format de ce contenu ne soit pas compatible avec la plateforme que vous utilisez. Le processus de préparation convertit les ressources utilisées par l'UE dans un format lisible sur la plateforme de déploiement. Dans certains cas, le contenu préparé est converti dans un format propriétaire (notamment sur les consoles) lisible uniquement sur cette plateforme.
Pour préparer le contenu pour différentes plateformes, utilisez la ligne de commande ou le lanceur de projet et son interface UE. Dans le cas de certaines plateformes, tout le contenu doit être préparé avant de pouvoir l'utiliser sur l'appareil afin qu'il fonctionne correctement. Vous devrez peut-être vous en assurer auparavant auprès de la plateforme que vous utilisez.
Il existe deux modes de préparation du contenu de votre projet : Selon les règles et À la volée.
Préparation selon les règles
La préparation selon les règles (CBTB) exécute l'intégralité du processus de préparation en amont, ce qui permet au build de déployer les ressources préparées en une seule fois et non à la demande pendant la lecture du niveau (si vous utilisiez un serveur de préparation). Cette option est utile pour les développeurs qui n'itèrent pas sur des ressources individuelles ou pour ceux qui souhaitent que le jeu fonctionne à pleine vitesse sans attendre qu'un serveur fournisse le contenu préparé nécessaire. En règle générale, cette méthode est utilisée lors de tests de performances et de tests de jeux.
Lors de l'exécution d'une CBTB, aucune configuration supplémentaire n'est requise pour le build. Utilisez le lanceur de projet pour créer un profil de lancement personnalisé et, dans la section Préparer, utilisez le menu déroulant pour choisir Selon les règles.
Si vous souhaitez ajouter des lignes de commande propres au jeu, vous pouvez développer les paramètres avancés et ajouter les arguments aux Options de préparateur supplémentaires.
Un exemple serait :
-nomcp
Pour en savoir plus sur cette méthode de préparation et ses paramètres, consultez la page de référence Lanceur de projet.
Préparation à la volée
Lorsque vous choisissez de préparer du contenu à la volée (COTF), la préparation du contenu est différée jusqu'à ce que le jeu ait été déployé sur la plateforme. Seuls l'exécutable et certains autres fichiers de base, qui utilisent la communication réseau avec un serveur de préparation pour effectuer des requêtes à la demande à mesure que le contenu est nécessaire, sont installés. La méthode COTF permet une itération plus rapide pour les développeurs qui souhaitent apporter régulièrement des modifications au contenu ou pour ceux qui explorent uniquement quelques sections du jeu.
Pour effectuer une préparation à la volée, vous devez tout d'abord démarrer un serveur de préparation sur une machine disposant du projet complet. Il peut s'agir de votre machine locale ou d'un serveur distant qui effectue la préparation. Pour exécuter le serveur de préparation, vous pouvez démarrer l'UE en mode Ligne de commande à l'aide des arguments suivants avec l'UnrealEditor-cmd.exe :
UnrealEditor-cmd.exe [FullAbsolutePathToProject.uproject]-run=cook -targetplatform=Windows -cookonthefly
Sur la machine locale du développeur, accédez à un profil de lancement personnalisé depuis le lanceur de projet puis, dans la section Déployer, définissez la méthode sur Serveur de fichiers. Vous pouvez éventuellement utiliser la plateforme de déploiement par défaut pour sélectionner une seule plateforme ou utiliser les boutons bascules et activer plusieurs plateformes sur lesquelles créer et déployer.
Pour que le fichier exécutable sache d'où charger le contenu, il doit connaître l'adresse IP de la machine qui exécute le serveur de préparation. Pour ce faire, vous devez transmettre l'argument de ligne de commande suivant sur la ligne de commande du client (xxxx représentant l'adresse IP de votre hôte) :
-filehostip=123.456.78.90
Vous pouvez spécifier l'argument dans votre profil de lancement personnalisé sous la section Lancement de la zone de texte Paramètres de ligne de commande supplémentaires. Si l'adresse IP n'est pas spécifiée, le build se charge à partir des fichiers locaux et ne tente pas de se connecter au serveur de préparation.
Pour en savoir plus sur cette méthode de préparation et ses paramètres, consultez la page de référence Lanceur de projet.
Déployer un build
Pour déployer un build depuis le lanceur de projet, le projet en question doit être préparé et empaqueté. Il existe plusieurs façons de déployer ce type de build sur une plateforme. Dans votre profil de lancement personnalisé, définissez la méthode de déploiement du build sous la section Déployer.
- Le serveur de fichiers prépare et déploie le contenu au moment de l'exécution selon les besoins de l'appareil.
- L'option Copier sur l'appareil permet de copier l'intégralité de la version préparée sur l'appareil.
- L'option Ne pas déployer ne déploie le build sur aucun appareil une fois la préparation et l'empaquetage terminés.
- L'option Copier le référentiel permet de copier un build à partir d'un emplacement de fichier spécifié en vue de le déployer sur n'importe quel appareil.
Pour en savoir plus sur cette méthode de déploiement et ses paramètres, consultez la page de référence Lanceur de projet.