LifePlay-Revival/Docs/Migration/etat/OPT/BC/BC-R6.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

9.3 KiB

BC-R6 : pilotage d'Unreal par agent (MCP éditeur, Remote Control, Python, commandlets, headless)

Date 2026-10-15 / auteur : sous-agent Sonnet OPT0-R / 15 entrées / établi 13, estimé 2, non vérifié 0. Toutes les pages Epic consultées sont celles de la documentation 5.8 (titre de page) sans date de publication affichée ; leur valeur pour 5.6 / 5.7 n'est pas vérifiée.

id affirmation source (URL, date, version UE) niveau application à LifePlay action proposée skill de destination
R6-01 Le plugin Unreal MCP (identifiant ModelContextProtocol) embarque un serveur MCP dans l'éditeur ; les outils viennent du plugin All Toolsets, Toolset Registry est une dépendance automatique. https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-mcp-in-unreal-editor / date inconnue / UE 5.8 établi Pilotage de l'éditeur par agent (config des plugins du projet). Vérifier que les deux plugins sont activés dans le .uproject de la copie 5.8 et documenter la dépendance. lp-mcp
R6-02 Le serveur démarre avec le drapeau -ModelContextProtocolStartServer (éditeur ou commandlet) ; -ModelContextProtocolPort=N change le port ; préférences éditeur : démarrage auto (défaut non), port 8000, chemin /mcp. idem R6-01 établi Lancement headless / script de démarrage de l'éditeur. Consigner ces drapeaux dans la procédure de lancement et dans le script de démarrage. lp-mcp
R6-03 Le serveur n'écoute que sur la boucle locale, rejette les en-têtes Origin non locaux, n'a aucune authentification et n'est pas prévu pour un usage distant. idem R6-01 établi Sécurité du poste (ne pas exposer le port 8000 ni le rediriger). Interdire toute exposition réseau du port ; règle écrite dans la skill. lp-mcp
R6-04 Les appels d'outils sont exécutés en série sur le thread jeu : les clients ne doivent pas chevaucher les appels. Seuls HTTP et SSE sont gérés (ni stdio ni WebSocket). idem R6-01 établi Orchestration multi-agents sur une seule connexion éditeur. Garder la règle « pas de chevauchement » et la file d'attente entre sous-agents. lp-mcp
R6-05 Ajouter un outil (nouvelle UFUNCTION) n'est pas pris en compte par Live Coding : redémarrage de l'éditeur nécessaire ; l'adaptateur Toolset Registry est réservé à l'éditeur. L'API est annoncée instable. idem R6-01 établi Outils C++ maison exposés à l'agent. Prévoir un redémarrage éditeur après tout ajout d'outil ; tester à chaque montée de version. ue-cpp-build
R6-06 Un build cuit ou shipping peut héberger un serveur MCP via IModelContextProtocolModule::StartServer() ; les outils du registre ne sont pas découverts automatiquement dans ce cas, il faut les enregistrer explicitement. idem R6-01 établi Build empaqueté : l'inspection par agent n'existe pas par défaut. Ne pas compter sur le MCP en build empaquetée ; si besoin de test, ouvrir une fiche dédiée (code de démarrage en module de test, jamais en shipping). lp-autotest
R6-07 Remote Control est en bêta ; il est désactivé par défaut en build empaquetée et en -game ; on l'active avec -RCWebControlEnable -RCWebInterfaceEnable. La page met en garde sur son embarquement dans un produit livré. https://dev.epicgames.com/documentation/en-us/unreal-engine/remote-control-for-unreal-engine / date inconnue / UE 5.8 établi Contrôle à distance d'une build de test ; réglage de plugin et de ligne de commande. Ne jamais l'activer dans la build publiée ; l'autoriser seulement dans une build de test interne. lp-autotest
R6-08 L'API HTTP expose PUT remote/object/call (fonction appelable en Blueprint), remote/object/property (lecture/écriture, avec option de transaction annulable), remote/batch (requêtes groupées dans l'ordre) et GET remote/info (liste des routes). https://dev.epicgames.com/documentation/en-us/unreal-engine/remote-control-api-http-reference-for-unreal-engine / date inconnue / UE 5.8 établi Lectures/écritures de propriétés d'objets en mémoire (acteurs, assets chargés) ; pas d'accès aux fichiers. Utiliser /remote/info pour lister les routes réellement présentes avant tout script ; préférer le batch. lp-autotest
R6-09 L'accès aux propriétés par Remote Control exige des propriétés publiques sans accesseur personnalisé ; en éditeur EditAnywhere, en jeu/PIE BlueprintVisible ; les écritures excluent EditConst et BlueprintReadOnly. idem R6-08 établi Visibilité des variables Blueprint et C++ : une variable non exposée est invisible pour l'agent. Lors d'un audit Blueprint, noter les variables à exposer (EditAnywhere / BlueprintVisible) si un test à distance les requiert. lp-bp-audit
R6-10 Le port WebSocket par défaut de Remote Control est 30020 et les routes HTTP peuvent être appelées en messages WebSocket (d'après un extrait de résultat de recherche ; page de référence non ouverte). https://dev.epicgames.com/documentation/en-us/unreal-engine/remote-control-api-websocket-reference-for-unreal-engine / date inconnue / version non précisée estimé Réglage de port, risque de collision avec d'autres outils. Vérifier le port dans Project Settings avant usage ; ouvrir la page pour confirmer. lp-autotest
R6-11 Les tests d'automatisation se lancent en ligne de commande avec -ExecCmds="Automation RunTest A+B;Quit" (commande RunTest, sans s), par section ou par groupe (Group:Nom) ; -ReportExportPath écrit un rapport JSON + HTML ; -ResumeRunTest reprend après arrêt. https://dev.epicgames.com/documentation/en-us/unreal-engine/run-automation-tests-in-unreal-engine / date inconnue / UE 5.8 établi Batterie de tests automatiques (VAL) : sortie lisible par machine. Écrire le gabarit de commande avec -ReportExportPath dans la skill de test et parser le JSON. lp-autotest
R6-12 Python éditeur : plugin à activer par projet (avec Editor Scripting Utilities), puis -ExecutePythonScript (éditeur complet, exécute puis quitte) ou -run=pythonscript -script=... (commandlet, rapide, sans chargement de niveau automatique). https://dev.epicgames.com/documentation/en-us/unreal-engine/scripting-the-unreal-editor-using-python / date inconnue / UE 5.8 (expérimental) établi Scripts d'audit d'assets et de tests hors interface. Choisir le commandlet pour les audits d'assets, l'éditeur complet pour ce qui exige un niveau ou le rendu. lp-autotest
R6-13 Python n'existe que dans l'éditeur : absent en PIE, en jeu autonome et en exécutable cuit ; interpréteur 3.11.8 embarqué. idem R6-12 établi Tout test Python est impossible sur la build empaquetée ; seuls Remote Control (si activé) ou des tests C++ y fonctionnent. Séparer dans le plan de test ce qui se fait en éditeur (Python) et ce qui se fait en build (tests C++ / Remote Control). lp-validate
R6-14 EditorAssetLibrary (Editor Scripting Utilities) : opérations lentes, éditeur hors PIE, niveaux non gérés ; les suppressions forcées sautent la vérification des références et peuvent vider l'historique d'annulation ; la consolidation supprime les sources et laisse des redirecteurs ; la recherche de référenceurs peut donner des faux positifs tant que les assets ne sont pas rechargés et resauvés. https://dev.epicgames.com/documentation/en-us/unreal-engine/python-api/class/EditorAssetLibrary / date inconnue / UE 5.8 établi Audits et correctifs en masse d'assets (hérités UE4) : risque de perte sans instantané. Imposer instantané avant toute suppression/consolidation par script et ne pas se fier seul aux référenceurs. lp-bp-audit
R6-15 Pratique de forum : si le commandlet (éditeur -Cmd) échoue, on peut lancer l'éditeur complet avec -nullrhi et récupérer la sortie avec -stdout ; ces drapeaux sont peu documentés. Une sortie négative indique un plantage. Fil de 2018 à 2024, sans réponse d'employé Epic. https://forums.unrealengine.com/t/interacting-with-ue4-editor-by-commandline-best-practice/437852 / 2018 à 2024 / UE 4 puis 5.x non précisé estimé Lancement headless (pas de rendu) depuis des scripts de build. Valider -nullrhi -stdout -unattended sur la copie 5.8 avec une mesure avant de l'écrire dans la skill ; capturer le code de sortie. lp-build

Lacunes et doutes

  • Aucune page consultée ne porte de date ; toutes sont étiquetées 5.8. Rien ne confirme le comportement en 5.6 / 5.7 (surtout Unreal MCP, qui semble propre à 5.8 ; une recherche signale des plugins tiers pour 5.6 / 5.7, non retenus faute d'ouverture).
  • Les drapeaux -unattended et -nullrhi : aucune page Epic ouverte ne les décrit ; la page des tests d'automatisation ne les mentionne pas. Seul le forum (estimé) les cite.
  • Exécution de commandes console à distance : non confirmée. La page HTTP ouverte n'en parle pas (l'appel d'une fonction statique par chemin d'objet par défaut est décrit, mais pas la fonction d'exécution de console). Non traité, pas d'entrée.
  • Remote Control : sécurité (phrase secrète), WebSocket et préréglages non vérifiés dans les pages ouvertes. Exécution à distance de Python (remote_execution.py) seulement mentionnée par un forum, sans entrée.
  • Codes de sortie des commandlets et des tests : non documentés dans les pages ouvertes.
  • Les notes de version 5.6 à 5.8 n'ont pas été consultées (recherche limitée aux pages de référence).