Atlas de Bretonnie

Journal de l'atelier · · 10 min de lecture

Tutoriel : porter une carte de Warhammer I dans Warhammer III

Porter une carte de campagne d'un Total War à l'autre n'est pas un copier-coller : deux moteurs, deux formats, deux repères. Voici l'ordre que j'ai suivi avec Claude pour La Saison de la Révélation, le pourquoi de chaque étape, et les pièges qui nous ont coûté des heures.

La carte de campagne en jeu : le Chêne des Âges, la Clairière Royale et des bois sous la neige
Capture en jeu : la carte de la Saison dans Warhammer III.

Avant de commencer

Ce tutoriel décrit une méthode, pas un bouton magique, et tout y a été vérifié sur notre portage, du 20 au 23 septembre 2026. Il faut être à l'aise avec les fichiers du jeu, et patient.

  • Warhammer III et son Assembly Kit, les outils officiels de CA (section Outils de Steam), avec les DLC des factions de votre carte : sans eux, elles existent dans la base mais pas en jeu.
  • Warhammer I et son Assembly Kit.
  • CAIME (Campaign AI Map Editor), l'éditeur du Campaign Map Toolkit, pour la carte logique, et RPFM pour les packs et les tables.
  • Un débogueur, cdb (livré avec WinDbg) : c'est lui qui fait parler les plantages.

Le vocabulaire en une minute

  • Hex : la case du damier de la carte de campagne. Notre carte en compte 400 × 440.
  • map.hex : le projet CAIME, c'est-à-dire la carte logique, couche par couche (régions, sols, climats, rivières, routes, villes).
  • ESF : le format binaire de CA, pour la carte logique comme pour le startpos.
  • Startpos : le fichier qui fige l'état de départ d'une campagne (factions, personnages, villes, diplomatie).
  • Table de base : une table de la base de données du jeu (régions, campagnes, factions…).
  • Pack : l'archive du mod, posée dans le dossier data du jeu.
  • Terry : l'éditeur de terrain de l'Assembly Kit. BOB : le compilateur qui transforme les données brutes en fichiers du jeu.

Étape 0 : l'inventaire

Avant de toucher à quoi que ce soit, on mesure. Le kit de Warhammer I livre la carte logique de la mini-campagne (son map.hex) et sa base de données, mais pas son terrain de campagne. Tout le visuel sera donc à refaire dans un projet Terry.

L'inventaire dit aussi ce qui a changé de nom. Les clés de faction changent de préfixe d'un opus à l'autre : on les apparie sur la culture et la fin de la clé, jamais sur le préfixe. Chez nous, presque tout avait une contrepartie ; seule une tribu orque manquait.

Enfin, on écrit un plan par phases, avec un critère de sortie pour chacune. Le nôtre visait d'abord un essai en jeu, avec le minimum de contenu.

Étape 1 : la carte logique avec CAIME

La carte logique dit au jeu où sont les régions, les villes, les rivières, les routes et les zones infranchissables. On déclare d'abord la carte dans la base (campagne, zone jouable, régions, provinces), puis on reprend dans CAIME les couches du map.hex de Warhammer I. Prenez CAIME 1.0.1 (23 septembre) ou plus récent : il contient nos deux correctifs, la lecture des cartes des mini-campagnes de Warhammer I, que la 1.0.0 du 19 septembre n'ouvrait pas, et celle de la base sur les Windows dont le séparateur décimal est la virgule (en français, par exemple), où la 1.0.0 ouvrait tout en lecture seule.

Les index des couches ne survivent pas au changement de jeu : Warhammer I a 13 types de sol terrestres et 24 climats, Warhammer III 15 et 40. On recale donc par nom, jamais par numéro. Les emplacements de ville grandissent aussi : 7 hex dans Warhammer I, 19 dans Warhammer III, dont 16 sur terre et 3 côté mer pour un port.

On valide, puis on exporte. La ligne de commande de CAIME fait les deux, et le moindre hex modifié impose de tout réexporter :

CAIME.exe validate --map map.hex --all
CAIME.exe process --map map.hex --all

On obtient les fichiers de jeu de la carte : map_data.esf, pathfinding.ppd, borders.pbd, trade_routes.ptd et les images de correspondance. Quelques pièges à connaître :

  • La ligne 0 du damier est en bas de la carte : retournez vos images avant de les encoder.
  • Dans la couche Impassable, 1 veut dire franchissable. Ne déduisez jamais le sens d'un drapeau de son nom.
  • Si la zone jouable de votre carte est la dernière ligne de sa table, l'export de la carte logique plante. Une ligne après la vôtre suffit.
  • Le validateur de l'étalement des villes est plus sévère que CA : sa propre carte des Empires Immortels échoue sur cinq villes. Ce n'est pas bloquant.

Étape 2 : le startpos

Le startpos se génère à partir des tables de départ de l'Assembly Kit : factions, régions, personnages, bâtiments. C'est le jeu lui-même qui le fabrique, puis on l'embarque dans le pack. Les tables de départ, elles, ne partent jamais dans le mod.

Notre premier mur est venu de là : un fichier de carte logique dans une variante du format ESF que le jeu ne lit pas, à convertir (voir Les 9 murs). Les règles à respecter :

  • Chaque ville a un emplacement primary. Sans lui, le startpos se génère quand même, et le jeu plante au chargement.
  • Chaque faction a un groupe d'IA qui contient une personnalité : celui que CA lui donne dans les Empires Immortels, sinon celui de sa culture.
  • Un personnage placé en (0, 0) doit être lié à sa ville ; sinon, le jeu le pose dans le coin de la carte.
  • Générez avec les données de carte de l'IA (hlp_data.esf et spd_data.esf) : sans elles, plantage au réglage du joueur.
  • Après chaque génération : copie dans le projet, pack reconstruit, puis essai. Le startpos du pack passe devant une copie posée à côté.
  • La génération fait quitter le jeu tout seul : remettez ensuite votre user.script.txt d'origine, sinon le jeu se fermera à chaque lancement.

Étape 3 : le terrain avec Terry et BOB

L'Assembly Kit de Warhammer III ne livre pas le terrain brut de ses campagnes. ChaosRobie l'a reconstitué pour Immortal Empires Expanded et a partagé son projet : c'est le modèle à suivre. Un projet Terry de campagne vit dans raw_data/terrain/campaigns/, dans un dossier au nom de la carte, avec un fichier .terry, des rasters à 8 pixels par hex (plus 4 lignes) et un calque par région.

Dans ce projet, la mer se déclare par la carte des tuiles (tile_map.png), pas par la hauteur. BOB compile le tout en une minute environ : on peut itérer sans lancer le jeu.

  • Pour une carte que la base du jeu (celle des packs de CA) ne connaît pas, BOB ne lance que 6 de ses 15 actions, sans message ; l'ajouter à la base du kit ou à un pack de mod n'y change rien. C'est une limite de l'outil : faites un témoin, puis demandez à la communauté (le Discord de CAIME, tw-modding), sans décortiquer l'outil de CA ni le contourner.
  • Son étape de hauteur de caméra plante : fabriquez camera_heightmap.png vous-même.
  • La normal map de Warhammer I se reprend telle quelle (conseil de ChaosRobie), à condition d'inverser son canal vert.
  • Chaque fichier compilé a son propre sens de rangement, du sud au nord ou l'inverse : vérifiez-le un par un.
  • Une campagne a deux terrains : celui de la carte et un terrain de bataille, lu dès la première bataille. Sans lui, plantage en fin de tour.
  • Fermez Terry avant de lancer BOB ou de construire le pack : il verrouille les fichiers.

Étape 4 : objets, arbres et montagnes

C'est là que la carte prend sa personnalité. Le sol de Warhammer I, ce sont ses maillages, pas seulement sa carte de hauteur, et c'est sur eux que ses objets reposent. Warhammer III lit encore les modèles de Warhammer I, mais pas toujours leurs matériaux.

  • Calez chaque conversion sur les objets que CA a lui-même convertis de Warhammer I.
  • N'écrasez jamais un fichier de Warhammer III : le pack le remplacerait dans toutes les campagnes. Rangez les versions de Warhammer I à part.
  • Seul le décor naturel est visible de tous ; les décors du Chaos ou des vampires s'affichent selon la culture, comme chez CA.
  • Les objets vivent dans l'espace des hex, le relief dans une grille de pixels carrés : un point (x, z) lit le relief à la ligne z × √3/2. C'est notre mur des objets volants.
  • Les Empires posent leurs montagnes comme des objets : on a fait de même avec les 514 montagnes de Warhammer I.
  • Jugez un objet « volant » avec le bas réel de sa boîte et la surface de son support, jamais avec son point d'origine.

Étape 5 : rivières, côte et eau

L'eau a deux cartes : height porte la surface de l'eau, sea_height le fond. Si les deux se confondent, le jeu ne dessine ni mer, ni rivières, ni lacs, alors que Terry les montre. L'eau se juge donc en jeu.

Les rivières de Warhammer III sont des maillages qui portent le matériau d'eau de la mer. On a reconstruit celles de Warhammer I en surfaces continues, l'eau un centimètre sous la berge la plus basse, avec un courant calculé le long du réseau jusqu'à l'embouchure.

Pour la côte, les tuiles de rivage de Warhammer III n'acceptent qu'une bande régulière : une pointe de terre d'un seul hex laisse un trou. On a fini par reprendre la côte de Warhammer I au pixel, telle qu'il la construit.

Étape 6 : scripts et textes

Notre règle : gameplay de Warhammer III, histoire de Warhammer I. Les scripts de campagne sont réécrits en Lua sur les bibliothèques de CA. Bonne surprise : les voix de l'histoire de Warhammer I sont toujours dans les fichiers de Warhammer III, en anglais comme en français.

  • Un mod ne pose que les clés de texte que le jeu ne connaît pas. Sinon, il remplace le texte à jour de CA, dans toutes les langues.
  • Deux langues, deux packs : le second ne contient que ses textes et passe devant le premier.
  • Vérifiez chaque nom dans les textes français du jeu : c'est Gasconnie, Aquitanie et Bastogne, pas Carcassonne, Aquitaine et Bastonne.
  • Prenez des clés à vous et ne remplacez jamais une table de CA : les autres campagnes doivent rester intactes, mod actif.
  • Régénérez le startpos après tout changement de scripts, sinon chaque nouvelle partie se prend pour une sauvegarde.

Étape 7 : les essais

Tout pack qui ajoute ou change une table de base passe un essai de démarrage avant d'être annoncé : le jeu doit tenir 45 secondes. Chez nous, une seule table de trop a suffi à fermer le jeu en huit secondes, sans message. Ensuite, on relit les rapports de plantage à chaque reprise.

Pour les parties longues, Claude a mis en place des parties automatiques. Elles se lancent par l'interface, comme un joueur, et passent les notifications avant chaque fin de tour. Le mode où l'IA joue tout teste la stabilité, pas l'histoire : les scripts qui attendent le début de tour d'une faction n'y reçoivent rien.

Dernier conseil : si quelqu'un est devant l'ordinateur, prévenez-le avant de lancer le jeu. J'ai moi-même cliqué dans des parties d'essai, et on a cru à des plantages.

Le récapitulatif

  1. Inventaire et plan par phases.
  2. Carte logique : base déclarée, CAIME, index recalés par nom, validation, export.
  3. Startpos : tables complètes, données de l'IA, pack reconstruit, essai.
  4. Terrain : projet Terry, BOB, terrain de bataille.
  5. Objets et montagnes : fichiers d'origine convertis à la manière de CA, repère vérifié.
  6. Eau : surface et fond distincts, rivières continues, jugement en jeu.
  7. Scripts et textes : clés à vous, noms vérifiés, startpos régénéré.
  8. Essais : démarrage, rapports de plantage, parties automatiques.

Le récit de ces quatre jours est dans cet article, et les leçons de méthode dans celui-ci. La suite se dessine sur la carte de la Bretonnie entière.

Proposer une idéeVoir la carte