← Retour au blog

Créer un RPG 3D avec Unity MCP : Contrôle à la troisième personne, Combat et Quêtes

Guide pratique Unity MCP pour un prototype RPG 3D jouable : mouvement à la troisième personne, mêlée en temps réel, machines à états ennemies et quêtes dans Cursor ou autres IDE IA MCP. Peaufinez l'UI plus tard.

Publié le
  • Unity MCP
  • 3D RPG
  • Unity
  • combat
  • AI game development

Un prototype de RPG 3D prêt pour la démo nécessite généralement ces éléments en premier : un déplacement et une caméra à la troisième personne réglables, une boucle de mêlée en temps réel, un ennemi avec une petite machine à états, une quête ou un dialogue déclenchable, et un HUD affichant la santé ou la progression de la quête. Ce guide suit cet ordre de construction. Supposez que vous pilotez un projet Unity ouvert depuis Cursor, Claude Code, Codex, ou un autre IDE IA compatible MCP via Unity MCP—en lisant et écrivant des scènes, des GameObjects et du C#, pas seulement en collant des fichiers sur le disque.

Installez et connectez : Guide d’installation Unity MCP. Les versions d’éditeur prises en charge suivent la page produit (généralement Unity 2022.3+ / Unity 6).

Définir une tranche jouable minimale

Ne livrez la v1 que si vous pouvez accepter :

  1. Déplacement WASD, regard à la souris, saut ; le sol et les pentes douces sont stables
  2. Une attaque de mêlée (animation placeholder OK) qui touche un collider et inflige des dégâts
  3. Un ennemi : patrouille → détecte le joueur → poursuite / attaque ; désactivez ou détruisez à la mort
  4. Un PNJ : approchez pour parler ou accepter une quête ; objectif « vaincre cet ennemi », puis mettez à jour le journal
  5. HUD simple : barre de santé + une ligne de quête

Bloquez l’art avec des primitives si nécessaire. Traitez le menu principal, les grilles d’inventaire, le HUD poli comme une passe UI ultérieure (voir ci-dessous).

Préparation du projet et MCP

Avant les invites de gameplay :

  • Projet Unity ouvert ; la scène cible peut passer en mode Play
  • Serveur Unity MCP en cours d’exécution ; l’IDE IA peut lister les racines de la hiérarchie (test de fumée en lecture seule)
  • Commit de base effectué ; refaites un commit avant les modifications importantes

Vérification en lecture seule :

Listez les GameObjects racines dans la scène active. Ne modifiez rien.

Ensuite seulement, écrivez. Gardez le pont sur localhost—n’exposez pas le port publiquement. Astuce de prompt : Unity MCP avec Claude Code et Cursor.

Joueur : contrôle à la troisième personne d’abord

Squelette minimal (renommez pour correspondre à votre projet) :

Player
├── CharacterController ou Rigidbody + CapsuleCollider
├── CameraPivot (lacet)
│   └── CameraArm (tangage) → Main Camera
└── AttackHitbox (trigger, désactivé par défaut)

Soyez explicite sur l’entrée, la caméra et les chemins :

Créez Assets/Scripts/Player/PlayerController.cs : troisième personne ; WASD relatif à l’avant de la caméra ; lacet/tangage à la souris (tangage limité à −30°–60°) ; Espace pour sauter ; attachez à Player. Sol via CharacterController.isGrounded ou équivalent.

Ensuite, ajustez la sensation :

Vitesse de déplacement ~5 avec un léger lissage d’accélération ; saut ~1,2 m ; léger amorti de suivi de caméra—pas de panoramique brusque.

Révisez les pentes, le contrôle en l’air et le clipping de la caméra avant de célébrer « script généré ».

Combat : une boucle de mêlée acceptable

Sautez les arbres de compétences dans la v1. Objectif : appuyez sur attaque → activez la hitbox pendant N frames → dégâts → rafraîchissez le HUD.

Ajoutez PlayerCombat.cs : attaque au clic gauche, cooldown de 0,6 s ; activez AttackHitbox pendant la fenêtre ; infligez 15 dégâts à IDamageable. Les ennemis implémentent IDamageable et ont des PV actuels.

Améliorations facultatives toujours simples :

Verrouillez brièvement le mouvement lors de l’attaque ; court hitstun sur les ennemis ; 0,4 s d’i-frames avec clignotement après les dégâts du joueur.

Remontez les changements de santé comme événements/callbacks pour que la liaison HUD reste propre—évitez que les scripts UI Find le monde.

Ennemis : Idle / Patrol / Chase / Attack

Pas besoin d’arbre de comportement. Quatre états couvrent un mob de terrain :

Idle → Patrol → Chase → Attack
         ↑________________↓ (cible perdue)

Créez Assets/Scripts/Enemy/EnemyAI.cs : patrouille à deux points ; entrez en Chase à moins de 12 m ; Attack à moins de 2 m (cooldown de 1,2 s, 8 dégâts) ; retour à Patrol 3 s après avoir perdu le joueur ; à 0 PV, jouez la mort ou SetActive(false).

Préférez NavMeshAgent si vous avez déjà cuit la navigation ; sinon, un simple mouvement de recherche/face pour que la première semaine ne soit pas bloquée par la navigation. Animator facultatif—faire face et un retour de couleur suffisent au début.

Quêtes et PNJ : un fil principal

La « sensation de quête » est déclenchement → suivi → complétion, pas un éditeur de quêtes complet.

Gardez les données simples :

  • QuestId, titre, description, compteur de progression, indicateur de complétion
  • PNJ Interact (E ou trigger) ouvre un dialogue et StartQuest
  • La mort d’un ennemi appelle QuestManager.NotifyKill(enemyId)

Créez un singleton QuestManager : acceptez slay_wolf_01 (vaincre 1 Loup) ; avancez à la mort du Loup ; mettez à jour le texte du journal de quête quand c’est terminé. PNJ Magicien : le joueur entre dans le trigger, appuie sur E pour démarrer cette quête.

TMP/Text convient pour le dialogue v1 ; les branches viendront plus tard.

HUD : placeholders d’abord, UI polie plus tard

Tant que le gameplay est inachevé, connectez Slider / TMP_Text du moteur :

Liez OnHealthChanged du joueur à la barre HUD ; liez le titre actuel de QuestManager à une ligne TMP en haut de l’écran.

Lorsque les menus, l’inventaire ou les barres de compétences nécessitent une UI de qualité design (PSD/Figma en couches, panneaux générés par NL, découpés et exportés en prefabs Unity), utilisez un workflow canvas tel que VberAI Studio :

  1. Générez ou importez le HUD / menu RPG
  2. Décomposez en composants et exportez vers e.g. Assets/UI/
  3. Revenez à l’IDE IA + Unity MCP pour lier boutons, barres et texte de quête aux événements de gameplay existants

Gérez les découpes dures pour l’alpha d’abord si nécessaire. La structure peut venir du canvas ; les liaisons et la logique de combat restent dans Unity via MCP—n’attendez pas que l’outil canvas crée une FSM de combat complète.

Détail d’import : Figma vers UI Unity.

Ordre de construction suggéré

MCP : contrôle joueur → une boucle de mêlée → une FSM ennemie → une quête + PNJ
        ↓
MCP : câblage HUD placeholder (PV / ligne de quête)
        ↓ (optionnel)
Outil canvas : menu / HUD poli → export vers Unity
        ↓
MCP : lier l'UI polie aux événements existants

Sensation, chiffres, IA, navigation → continuez à utiliser Unity MCP.
Hiérarchie visuelle plein écran, reskins, prefabs ré-exportés → revenez à l’outil canvas.

Limites de prompt qui aident réellement

Les prompts vagues gaspillent des cycles. Épinglez :

  • Chemins et points d’attache — quel dossier, quel objet
  • Critères d’acceptation — par ex. « dans les 10 s de Play, tuez un loup et voyez la quête terminée »
  • Hors périmètre — par ex. « ne reconstruisez pas toute la pile d’entrée ; ne supprimez pas la caméra »
  • Un seul souci par prompt — contrôle, puis combat, puis ennemi

Testez toujours en Play vous-même. MCP élimine les clics répétitifs ; il ne remplace pas le jugement de conception.

Liste de contrôle d’acceptation

  • Le déplacement/caméra à la troisième personne reste contrôlable pendant ~2 minutes sans clipping évident ni perte de contrôle
  • La mêlée touche de manière fiable ; le cooldown est perceptible
  • Patrouille vs poursuite est lisible ; la mort a un retour clair
  • La quête peut être acceptée et terminée ; le texte HUD se met à jour
  • Les changements de santé atteignent l’UI (placeholders OK)

Prochaines étapes

  1. Terminez le guide d’installation Unity MCP et un test de fumée en lecture seule
  2. Livrez « mouvement + un ennemi + une quête » dans cet ordre
  3. Ajoutez l’export UI poli uniquement lorsque le HUD doit sembler fini

D’autres guides qui pourraient vous intéresser