Créer un premier niveau Unreal jouable avec Claude Opus 5.5

Une méthode par étapes pour les créateurs indépendants : vérifier la connexion réelle à Unreal, construire et tester un niveau avec trois objets, victoire et redémarrage, puis décider si Meshy et Blender sont utiles.

Sommaire
Créer un premier niveau Unreal jouable avec Claude Opus 5.5

La règle pratique est de ne pas connecter Claude Code, Unreal, Meshy et Blender dès le premier jour. Commencez par prouver que Claude Code lit réellement l’instance d’Unreal Editor ouverte. Construisez ensuite un greybox que vous pouvez parcourir, dans lequel vous ramassez trois objets, gagnez et redémarrez. Validez vous-même chaque étape dans Play. Ce n’est qu’une fois cette boucle stable qu’il faut décider si un asset 3D généré ou un nettoyage dans Blender justifie les dépendances supplémentaires.

Ce guide repose sur la documentation actuelle ; il ne prétend pas que l’auteur a exécuté votre projet. Epic classe toujours Unreal MCP comme Experimental et précise que les fonctions, API et formats de données peuvent changer. Une connexion MCP, un résultat d’outil réussi et un jeu réellement jouable constituent donc ici trois preuves différentes.

Vérifiez que cette méthode vous convient

Elle convient surtout à une personne qui comprend les bases d’Unreal, conserve son projet sous contrôle de version et accepte de lancer Play après chaque petite modification. Claude peut accélérer une opération que vous savez décrire et inspecter ; il ne peut pas décider seul si les déplacements, la caméra, les collisions ou les sensations sont corrects.

SituationRecommandation
Vous comprenez la structure, relisez les changements et testez dans PlayCommencez par le greybox minimal ci-dessous
Vous voulez seulement valider la boucle de jeuGardez les primitives Unreal ; reportez Meshy et Blender
Le projet n’a ni copie ni point de retourArrêtez-vous et créez une copie avec des checkpoints
Vous attendez un jeu fini à partir d’un promptDécoupez l’objectif en systèmes observables
Il faut seulement déplacer un Actor ou changer une valeurUne modification manuelle est généralement plus rapide

Anthropic présente Opus 5.5 pour le code complexe et les tâches agentiques longues. Cela ne rend pas un résultat visuel auto-validant. Laissez le modèle inspecter, planifier et exécuter ; gardez l’approbation, l’observation et le test Play côté humain.

Définissez le plus petit résultat jouable

La cible n’a que quatre exigences :

  1. Le joueur apparaît à Player Start et suit une route claire jusqu’à l’arrivée.
  2. Trois objets visibles incrémentent chacun une seule fois un compteur de 0 à 3.
  3. L’arrivée déclenche la victoire uniquement après les trois objets.
  4. La touche R restaure position, compteur, objets et état de victoire.

Inscrivez-les dans le brief du projet. Pour chaque lot, notez le changement, le résultat attendu, le résultat réel et la décision accepté/refusé. Connected ne signifie pas jouable. Compilé ne signifie pas jouable. Une requête acceptée par un outil ne signifie pas jouable. Seul un test manuel dans Play valide chaque étape.

Étape 1 : connecter Claude Code au MCP officiel d’Unreal

Créez d’abord un point de récupération

Enregistrez le projet, puis faites un commit ou un shelve. Le plugin officiel d’Epic donne à Claude un accès large et en direct à l’éditeur, y compris l’exécution de Python dans son processus. Son README recommande de traiter cet accès comme l’exécution de code arbitraire généré par un assistant, d’enregistrer avant les longues sessions et de relire le diff.

N’utilisez pas --dangerously-skip-permissions dans un projet important. Apprenez sur une copie, un sandbox ou une branche jetable.

Activez les deux plugins Unreal

Ce guide suit la page officielle Unreal MCP, actuellement publiée sous Unreal Engine 5.8 Documentation. Il suppose que votre build contient réellement Unreal MCP (ModelContextProtocol) et All Toolsets (AllToolsets). N’en déduisez pas que toutes les versions d’UE5 disposent des mêmes plugins. Si l’un manque, arrêtez-vous et utilisez un build couvert par la documentation Epic, sans le remplacer par un MCP communautaire.

Suivez la configuration officielle :

  • Dans Edit → Plugins, activez Unreal MCP.
  • Activez également All Toolsets. Le serveur peut exister sans exposer d’outils utilisables s’il manque.
  • Redémarrez l’éditeur.
  • Activez Auto Start Server dans Editor Preferences ou exécutez dans la console :
ModelContextProtocol.StartServer

L’endpoint local par défaut est http://127.0.0.1:8000/mcp. Il n’a pas d’authentification par défaut et n’est pas destiné à un accès distant. N’exposez pas ce port sur Internet et ne l’utilisez pas sur une machine partagée.

Générez la configuration Claude Code

Dans la console Unreal, exécutez :

ModelContextProtocol.GenerateClientConfig ClaudeCode

Une installation Launcher écrit généralement .mcp.json à côté du .uproject ; une build source peut l’écrire à la racine du workspace, à côté de Engine/. Régénérez-le après un changement de port. Démarrez Claude Code depuis la racine qui contient cette configuration.

Installez le plugin officiel d’Epic :

/plugin install unreal-engine-skills-for-claude-code@claude-plugins-official

Si le marketplace officiel manque, ajoutez-le d’abord :

/plugin marketplace add anthropics/claude-plugins-official

Séparez accès au modèle, éditeur et génération d’assets

Claude Code peut utiliser un compte Anthropic ou une API compatible. Avec BetterToken, le guide Claude Code actuel demande de définir ANTHROPIC_BASE_URL sur https://bettertoken.ai sans /v1, et de fournir ANTHROPIC_AUTH_TOKEN localement. Ne collez jamais une vraie clé dans le chat, le dépôt ou le paquet de matériaux.

L’ID officiel du modèle Anthropic est claude-opus-5-5. Si vous passez par BetterToken, copiez l’ID exact depuis le Model Plaza en vigueur et confirmez sa disponibilité pour le groupe de clé choisi ; après le démarrage, vérifiez le routage réel avec /model et les journaux du fournisseur plutôt que de faire confiance à une ancienne configuration copiée.

Vérifiez une vraie lecture en direct

Contrôlez les quatre niveaux :

  • /plugin affiche le plugin Unreal officiel ;
  • /mcp affiche unreal-mcp ;
  • l’Output Log ne montre aucune erreur de port ou de dépendance ;
  • un prompt en lecture seule renvoie le vrai nom du niveau, les principaux Actor et la présence de Player Start.

Le dernier point prouve que l’éditeur répond. Epic précise qu’un proxy connected ou un catalogue d’outils en cache ne garantit pas qu’un appel Unreal en direct fonctionne.

Étape 2 : construire uniquement un greybox parcourable

Partez d’une base third-person déjà jouable. Player Start marque un point d’apparition, mais ne fournit pas à lui seul personnage contrôlable, GameMode, inputs ou caméra. Pour un nouveau projet, utilisez le template Unreal Third Person. Dans un projet existant, vérifiez que le GameMode actif fait apparaître un pawn third-person contrôlable, que le déplacement et la caméra de suivi fonctionnent et que le niveau contient un Player Start.

Avant toute modification de géométrie par MCP, cliquez sur Play, pas Simulate. Vérifiez qu’un personnage apparaît réellement, que WASD le déplace et que la souris contrôle la caméra ; arrêtez ensuite PIE. Si un point échoue, réparez d’abord cette base au lieu de masquer le problème dans le prompt du greybox.

Après validation, demandez à Claude de lire le niveau, le GameMode, le personnage et les toolsets disponibles, puis d’énumérer son plan et les assets modifiés. Un outil manquant doit arrêter la tâche. Limitez-la ainsi :

À partir de la base third-person déjà validée en Play, construis un greybox minimal dans le niveau actuel. Conserve le personnage, le GameMode, les input mappings et la caméra existants ; ne les remplace pas et ne les reconstruis pas. Utilise des primitives pour le sol, les limites, un chemin clair et un marqueur d’arrivée. N’ajoute ni ennemi, ni asset artistique, ni UI complexe. Indique chaque asset créé ou modifié. Arrête-toi si un outil manque, si la compilation échoue ou si le résultat n’est pas un succès explicite.

Pendant l’exécution :

  • Sérialisez les mutations dépendantes sur le même asset ou état de l’éditeur.
  • Attendez la fin de la compilation C++, Blueprint ou shader ; une requête acceptée n’est pas une compilation terminée.
  • Lisez chaque statut et arrêtez-vous en l’absence de succès explicite.

Test Play A : cliquez de nouveau sur Play, partez avec le personnage apparu au Player Start et parcourez tout le chemin. Il ne doit ni sortir des limites, ni se bloquer dans un passage, ni franchir un obstacle invisible. Corrigez uniquement l’échec observé sans redessiner caméra, matériaux ou parcours.

Sauvegardez, committez et marquez un point de récupération après validation.

Étape 3 : ajouter trois objets à ramasser

Le lot suivant ajoute seulement la collecte et protège la route déjà validée :

Ajoute trois objets clairement visibles et séparés le long de la route. Le contact doit se déclencher une fois, masquer ou supprimer l’objet et faire passer un compteur lisible de 0 à 3. Ne déplace ni Player Start, ni la route, ni les limites, ni l’arrivée. Indique les Blueprints, variables, événements et assets UI concernés, puis fournis une checklist Play.

Test Play B : ramassez-les dans l’ordre normal puis inverse ; chacun compte une fois ; la suite est 1, 2, 3 ; repasser sur un ancien emplacement n’ajoute rien ; une nouvelle session Play recommence à 0.

Si Claude annonce « terminé » mais que le compteur ne change pas dans Play, l’étape échoue. Notez le comportement et l’Output Log, demandez d’abord un diagnostic puis une seule correction ciblée.

Étape 4 : victoire et redémarrage

Le dernier lot ajoute seulement la fin et la remise à zéro :

L’arrivée affiche la victoire uniquement lorsque le compteur vaut 3. Avec moins d’objets, aucune victoire. La touche R redémarre le niveau et restaure la position, les trois objets, le compteur et l’UI de victoire. Conserve la route et les inputs. Indique les changements et fournis une checklist Play en cinq étapes.

Test Play C :

  1. Arriver avec deux objets : pas de victoire.
  2. Ramasser les trois puis arriver : victoire visible.
  3. Appuyer sur R à mi-parcours : tout est restauré.
  4. Appuyer sur R après la victoire : tout est restauré.
  5. Changer l’ordre de collecte : comportement identique.

Vous avez seulement maintenant un premier niveau jouable. Enregistrez, commitez et gardez une version stable sans art externe.

Ajouter Meshy ou Blender uniquement après validation du greybox

Ce sont des branches facultatives, pas des prérequis.

Meshy seulement lorsqu’un objet distinct en vaut la peine

Cette branche reste facultative. Le serveur MCP officiel Meshy exige un MESHY_API_KEY valide ; la clé nécessite une offre payante éligible et les requêtes API utilisent des crédits API prépayés. L’offre ou le solde affiché dans l’application Web ne prouve pas à lui seul l’accès ni le solde API. Avant toute génération, appelez meshy_check_balance.

Pour Claude Code sous Bash, utilisez cette configuration locale. Saisissez la clé sans l’afficher, ne la collez pas dans le chat et ne committez pas la configuration locale obtenue :

read -rs MESHY_API_KEY && export MESHY_API_KEY
claude mcp add-json meshy "{\"command\":\"npx\",\"args\":[\"-y\",\"@meshy-ai/meshy-mcp-server\"],\"env\":{\"MESHY_API_KEY\":\"${MESHY_API_KEY}\"}}"
unset MESHY_API_KEY

Utilisez ensuite /mcp pour confirmer que meshy est connecté, demandez la liste des outils Meshy et appelez meshy_check_balance. Ces contrôles ne créent aucune tâche de génération. Arrêtez-vous si la clé, l’offre ou le solde API n’est pas utilisable.

Suivez une seule route text-to-3D simple pour l’objet :

  1. Appelez meshy_text_to_3d avec un prompt court et précis et target_formats: ["glb"]. Cela crée un preview non texturé. N’appelez meshy_text_to_3d_refine qu’après réussite du preview et seulement si la texture justifie une tâche distincte. Refine renvoie un nouveau task ID : conservez les ID du preview et du refine, puis utilisez l’ID du refine avec le task type text-to-3d pour suivre et télécharger le résultat texturé.
  2. Notez le task ID retourné et le task type text-to-3d. Ne conservez pas uniquement la réponse en langage naturel.
  3. Appelez meshy_get_task_status avec le même ID et type. PENDING, IN_PROGRESS ou un TIMEOUT de l’outil ne sont pas un échec. Une coupure réseau, 429 ou 5xx pendant le statut ne transforme pas non plus la tâche en FAILED : interrogez plus tard le même task ID sans créer une tâche payante en double.
  4. Téléchargez uniquement après SUCCEEDED. Lisez task_error après FAILED et arrêtez-vous après CANCELED. Enregistrez le résultat dans un chemin local explicite d’assets sources, par exemple :
meshy_download_model
task_id: <same task ID>
task_type: "text-to-3d"
format: "glb"
save_to: "<absolute-project-path>/SourceAssets/Props/CollectibleMarker/marker.glb"

Vérifiez l’existence du fichier avant Blender ou Unreal. Selon Asset Retention, les assets API des clients non Enterprise sont conservés au maximum trois jours ; ne gardez pas seulement l’URL.

Test asset D, uniquement si Meshy est choisi : le GLB local s’ouvre de façon répétable et task ID, task type, prompt, statut final et chemin local sont consignés. Cela ne prouve pas encore que l’asset est prêt pour Unreal.

Blender seulement avec une tâche de nettoyage précise

Un nettoyage manuel suffit ; un autre MCP n’est pas obligatoire. Seulement si vous choisissez Blender piloté par Claude, installez add-on, LLM client et MCP server officiels depuis la page Blender MCP, puis commencez par un inventaire read-only des objets de la scène. Ne mélangez pas ports, noms d’outils ou installation du projet communautaire ahujasid/blender-mcp. Blender avertit que son MCP exécute du code généré par le LLM sans protection des données ; utilisez une VM ou un système sans données sensibles.

Pour un objet statique, suivez cette route minimale :

  1. Dans Blender, choisissez File → Import → glTF 2.0 (.glb/.gltf) et ouvrez marker.glb. Gardez uniquement l’objet voulu, supprimez manuellement la géométrie parasite et vérifiez échelle, orientation, origine, noms et matériaux.
  2. Sauvegardez la source propre sous <absolute-project-path>/SourceAssets/Props/CollectibleMarker/marker-clean.blend afin de conserver une version modifiable et récupérable.
  3. Sélectionnez uniquement l’objet statique nettoyé, choisissez File → Export → glTF 2.0, définissez le format sur glTF Binary (.glb), activez Selected Objects et Apply Modifiers, puis enregistrez marker-clean.glb à côté du .blend.
  4. Dans le Content Browser d’Unreal, créez ou ouvrez /Game/Assets/Props/Collectibles/ et importez marker-clean.glb. Dans l’aperçu d’import Interchange, confirmez que l’entrée voulue est un Static Mesh, importez uniquement cet objet statique et sauvegardez l’asset. Vérifiez sa taille dans Static Mesh Editor ; ajoutez une collision simple seulement si nécessaire sans remplacer ni casser l’overlap trigger existant.
  5. Ouvrez le Blueprint ou Actor collectable déjà validé en Play et remplacez uniquement la référence du composant Static Mesh visible. Conservez trigger, collecte unique, compteur, victoire, redémarrage et instances placées. Compilez, sauvegardez et relancez Play.

Test asset E, uniquement si la branche Blender/import est choisie : .blend, le .glb nettoyé et le Static Mesh s’ouvrent ; échelle, orientation, origine et collision sont explicables ; le mesh visible change sans modifier la logique ; les tests Play A–C passent toujours.

Diagnostiquer par niveau de preuve

SymptômeVérifier d’abordNe pas confondre avec
/mcp est connected mais le niveau est illisibleÉditeur ouvert, Output Log, vrai appel read-onlyConnexion jouable
Le serveur démarre sans outilsAllToolsets, puis ModelContextProtocol.RefreshTools si nécessaireIncapacité du modèle
Les appels bloquentCompilation, chargement du niveau ou PIE actifProblème réseau certain
L’outil Blueprint répond mais le jeu échoueStatut, compilation, Output Log, Play manuelTravail terminé
Le statut Meshy finit en timeout, coupure, 429 ou 5xxConserver task ID/type et réinterroger la même tâcheFAILED ou raison de créer une autre tâche payante
Une URL expireCopie locale, task ID, durée de rétentionLien permanent
Échelle ou collision incorrecteUnités, origine, export, collision UnrealModèle généré forcément mauvais

Après deux corrections infructueuses du même symptôme, revenez au dernier checkpoint accepté et réduisez la tâche. N’empilez pas une troisième hypothèse sur deux réparations non vérifiées.

Tenir trois comptes d’usage séparés

Ne convertissez pas « 19 % d’un Max hebdomadaire » en tokens API. Un créateur a rapporté environ quatre heures et 19 % de son Max hebdomadaire pour une première build complète. C’est un témoignage individuel, pas une promesse de durée, prix ou quota.

VoieÉlément obligatoire à vérifier séparémentCe qui n’est pas inclusPreuve
Claude Code avec abonnement ClaudeOffre, limite session/semaine, modèle actifCredits Meshy ou facture APIVues modèle et usage de Claude Code
Claude Code avec API de modèleAPI key, vrai model ID, tokens entrée/sortie/cache, soldeMax hebdomadaire ou MeshyJournaux et facturation ; BetterToken affiche modèle et tokens
Meshy facultatifMESHY_API_KEY, offre payante éligible/accès API, solde API prépayé et consommation par tâcheTokens de l’API modèle ; le quota de l’app Web ne prouve pas le solde APImeshy_check_balance, tâches et facturation
Unreal, Blender, plugins et contenuLicences actuelles, matériel, marketplace, plugins tiersSupposition que toute la pile est gratuiteConditions et achats de chaque fournisseur

Avant de passer à l’échelle, mesurez un niveau : prompts, reprises, requêtes modèle, éventuels task ID Meshy, fichiers téléchargés et temps humain de Play. Le cœur doit répéter A–C de façon fiable ; D n’est requis que si Meshy est choisi et E seulement pour la branche Blender/import. Étendez après stabilisation des branches réellement utilisées.

Checklist finale

  • Un point de retour existe avant la session et après chaque étape acceptée.
  • En plus de /mcp, un vrai appel Unreal en lecture seule a réussi.
  • Dans Play, vous pouvez parcourir, ramasser exactement trois objets, gagner correctement et redémarrer depuis tout état.
  • PIE est arrêté avant les changements d’assets et la compilation finit avant l’étape suivante.
  • Meshy et Blender restent facultatifs jusqu’au fonctionnement du greybox.
  • Si Meshy a été utilisé, le résultat est local et task ID, task type et statut final sont consignés.
  • Si un asset externe a remplacé une primitive, les tests Play A–C ont été répétés.
  • Modèle réel, tokens, quota Claude et credits Meshy sont vérifiés séparément.

Le résultat n’est plus seulement une démonstration d’IA séduisante : c’est un processus récupérable, observable et extensible, sans perdre de vue ce qui fonctionne réellement.

Prêt à optimiser votre workflow LLM ?

Connectez vos modèles via une API unique, gérez les clés et maîtrisez vos dépenses d’IA.

Commencer gratuitement