Atelier des moddeurs · guide · 68 min de lecture
Terry, le guide : l'éditeur de terrain de Total War: Warhammer III, de la première carte de bataille au terrain de campagne
Terry est l'éditeur de terrain en 3D de l'Assembly Kit de Total War: Warhammer III. Ce guide le prend en main pas à pas : l'ouvrir, lire sa fenêtre, s'y déplacer, peindre, faire une première carte de bataille et la voir en jeu. Il rassemble ensuite ce que l'on sait du terrain d'une carte de campagne, que le kit ne livre pas, appris en portant une carte entière dans Warhammer III.
Relu le 25 septembre 2026, mise à jour 9.0. Vérifié sur l'Assembly Kit au patch 8.1, le wiki de CA et tw-modding. Les changements de la 9.0 qui touchent notre chantier sont ajoutés ; le reste n'a pas été revérifié. Corrigé le 5 octobre 2026 : faits prouvés depuis sur le jeu en 9.0.2, et versions parues depuis (CAIME 1.1.0, RPFM 5.1.1). Corrections communautaires du 26 septembre 2026. Dans le doute, vérifiez, et dites-le-nous.
Ce qu'est Terry, et ce qu'il fait dans le kit public§
Terry (Terrain Metadata Editor) est l'éditeur de terrain en 3D de Creative Assembly (CA), livré avec l'Assembly Kit de Total War: Warhammer III. On y fabrique un terrain : le relief, les textures, la végétation, les objets, les zones logiques, l'éclairage et les sons. Ce n'est pas un programme à part : c'est un mode de Tweak, l'éditeur du kit.
Terry n'écrit pas les fichiers que lit le jeu, mais des sources, dans le dossier raw_data du kit. BOB, le bâtisseur du kit, les compile dans working_data ; RPFM les range dans un pack. Terry lance BOB lui-même : File → Process with BOB.
- Dans le kit public, Terry fait des tuiles et des cartes de bataille, avec leur logique (déploiement, zone jouable, points de capture), et des prefabs.
- Le kit ne livre aucun terrain de campagne : dans celui de Warhammer III,
raw_data/ne contient queterrain/ battles/ettiles/.battle/ - Aucune commande ne pilote Terry : on peut seulement l'ouvrir ; le reste se fait dans sa fenêtre.
Le trajet d'une carte de bataille, de Terry au jeu :
- Terry
Vous peignez la tuile (relief, textures, objets, zones logiques) et la posez dans une tile map.
.terry,.layer,.tif,tile_map.pngdansraw_data - BOB
Il compile la tile map, puis la tuile, en fichiers du jeu.
working_data/terrain/ … - RPFM
Le pack : les fichiers compilés, une ligne de
battles_tables, un texte, une image.ma_carte.pack - En jeu
La carte apparaît dans la bataille personnalisée.
Ce guide suit ce trajet, puis rassemble ce que l'on sait du terrain d'une carte de campagne.
Les mots de Terry§
Quelques mots reviennent partout. Voici le sens que leur donne ce guide.
| Mot | Sens |
|---|---|
| Tuile (tile) | un morceau de terrain fait dans Terry : relief, textures, objets, logique. Une carte de bataille, c'est une tuile posée dans une tile map. |
| Tile map | le grand terrain, assemblé à partir de tuiles, qui entoure le champ de bataille ; votre tuile y a sa place. En campagne, tile_map.png dit quelle sorte de tuile va sur chaque hex : terre, mer, côte, route. |
| Raster | une image dont chaque pixel porte une valeur : une hauteur, un mélange de textures, un masque. Un fichier .tif par raster enregistré (relief, mélange des textures…). |
| Vista | une tile map toute faite, reprise comme décor autour de votre tuile ; le kit de Warhammer III n'en livre pas (voir les questions fréquentes). |
| Calque (layer) | un groupe d'entités. Un File Layer est un fichier .layer ; un Logical Layer, un simple rangement. |
| Prefab | un assemblage d'objets prêt à poser, réutilisable ; de bataille ou de campagne. |
| Entité logique | ce que le jeu lit sans le montrer : zones de déploiement, zone jouable, indices pour l'IA, zones interdites, points de capture. |
| Zone jouable (Playable Area) | en bataille, l'entité logique qui délimite où l'on peut donner des ordres de mouvement ; elle fixe aussi d'où les unités fuient et arrivent en renfort, et les bords de la minicarte (CA). La page d'introduction de CA ajoute que ses bords bornent la caméra. |
| Zone jouable de campagne | la ligne de campaign_map_playable_areas qui décrit la carte d'une campagne ; sa colonne terrain_folder désigne un terrain de bataille. |
| BOB | le bâtisseur du kit : il compile les sources de raw_data en fichiers du jeu, dans working_data. Chaque exécution s'appelle ici un passage. Voir le guide BOB. |
raw_data / working_data | ce que les outils du kit lisent (vos sources) / ce qu'ils produisent (les fichiers du jeu). |
| Catchment | une variante d'export d'une même carte (catchment_01…), que choisit la colonne catchment_name de la table battles. En campagne, des cartes de captage choisissent la carte de bataille selon le lieu. |
Ouvrir Terry§
Terry étant un mode de Tweak, il a trois portes d'entrée, qui mènent à la même fenêtre.
- Par le lanceur du kit
Dans Steam (Bibliothèque → Outils), lancez l'Assembly Kit de Warhammer III, puis choisissez Play Battle Map Editor: Terry.
D'après la page Custom Campaign Settlement Skins du wiki tw-modding (partie Warhammer III, ChaosRobie).
- Par Tweak
Ouvrez
binaries/, dans le dossier du kit, puis le menu Plugins → Terry.tweak.modder.x64.exe D'après la même page.
- En ligne de commande
Depuis le dossier
binariesdu kit :tweak.modder.x64.exe /.standalone TerrainMetadataEditor C'est la commande que lance l'option du lanceur ; la seule connue pour Terry.
Comment vérifier. La fenêtre s'intitule TWeak - Terry. Elle met du temps à venir : environ 25 secondes chez nous. Au démarrage, le Project Wizard s'affiche.
Le Project Wizard§
Le Project Wizard s'affiche au démarrage (case Show on startup) et se rouvre par File → Project Wizard… : il présente les projets récents et l'onglet New, sur lequel il s'ouvre (tw-modding).
Dans Warhammer III, il montre trois icônes. Celle de droite, une boîte en pointillés, crée un prefab, de bataille ou de campagne (tw-modding, Custom Campaign Settlement Skins). Le kit ne connaît que trois types de projet : tile, tile_map et prefab, chacun sur une base de tuiles battle ou campaign (fichier working_data/). Les deux autres icônes correspondent donc sans doute à la tuile et à la tile map (voir l'encadré « Ce que nous n'avons pas vu à l'écran »).
La fenêtre de Terry§
La fenêtre de Terry est faite de panneaux qui se détachent et s'ancrent : la disposition se règle, et la vôtre peut différer. La figure en montre une disposition courante, avec des pastilles numérotées : menus et barres d'outils en haut, hiérarchie de la scène à gauche, propriétés en bas et à droite, vue 3D au centre, messages de BOB en bas à droite.
- 1Menus et barres d'outilsFile, View, Tools ; les barres s'ouvrent par View → Toolbars.
- 2La barre Basicoutils 1 à 4 (sélection, déplacement, rotation, échelle), quatre modes de peinture, le globe Process with BOB (Ctrl+P), World ou Editor View ; puis Entity Creation (Visual, Logical, Other).
- 3Scene Hierarchyles entités, rangées en calques ; un double-clic rend un calque actif (en rouge).
- 4Entity Propertiesles propriétés de la sélection, modifiables pour plusieurs objets à la fois.
- 5Project Errorsce qui empêcherait la carte de marcher en jeu.
- 6Le viewportla scène 3D : la grille des tuiles, la zone jouable, les zones de déploiement (Alliance 0 = attaquant, en bleu dans le Terry de Warhammer III ; 1 = défenseur, en rouge sombre ; la documentation de 2016 donnait l'inverse : fiez-vous au numéro).
- 7Tool Propertiesles réglages de l'outil actif : brosse, ou choix d'un prefab.
- 8Map Properties et Settingsles réglages du projet ; ceux de Terry lui-même (autosauvegarde, BOB, caméra).
- 9Les messages de BOBen bas à droite, pendant un passage : des fenêtres surgissantes, selon tw-modding.
| Panneau | À quoi il sert |
|---|---|
| Viewport | la scène en 3D. World View montre un aperçu façon jeu ; Editor View ajoute les lignes de débogage. La touche G passe de l'une à l'autre. |
| Scene Hierarchy | les entités, rangées en calques : un File Layer par fichier .layer (au moins un par projet), des Logical Layers pour ranger. Un double-clic rend un calque actif : il passe en rouge, et les nouveaux objets y tombent. Décocher Export en fait un calque de référence, qui n'est pas exporté. |
| Entity Properties | les propriétés de la sélection, modifiables pour plusieurs objets à la fois. En bas à gauche. |
| Tool Properties | les réglages de l'outil actif : la brosse, ou le choix d'un prefab, avec un champ de recherche. |
| Map Properties | les réglages du projet. En bas à droite. |
| Settings | les réglages de Terry lui-même, pas de la carte : autosauvegarde, options de BOB, surcouches, caméra, environnement d'aperçu (bouton Set As Default For Project Type). |
| Project Errors | ce qui empêcherait la carte de marcher en jeu. |
| Barres d'outils | par View → Toolbars, ou par le menu Tools. Basic : les outils 1 à 4, les quatre modes de peinture, Show in Explorer, World / Editor View, et l'export : le globe avec une flèche, Process with BOB. Puis Advanced, et Entity Creation (Visual, Logical, Other). |
Les fichiers d'un projet§
<projet>.terry: un XML qui décrit le type de projet, ses rasters et sa scène.- Un
.tifpar raster enregistré (<projet>.height.<id>.tif,<projet>.blend.<id>.tif…) : le relief, le mélange des textures… La tuile d'exemple du kit déclare huit rasters mais n'en enregistre que deux. - Les
.layer: un par File Layer, avec ses entités. <projet>.terry.user: les réglages d'aperçu.
Dans ces XML, une propriété porte le nom qu'elle affiche dans Terry, en minuscules, les espaces devenus des soulignés : Lighting File s'écrit lighting_file. Pratique pour retrouver dans un fichier ce que vous avez réglé dans la fenêtre.
Les coordonnées§
- L'axe Y est l'altitude, vers le haut.
- En bataille, trois étendues : l'Usable Area, un carré de 2 048 m centré sur le champ de bataille, où jouent la physique et le cheminement des unités ; la tile map, dessinée jusqu'à 8 km du centre ; la zone jouable (Playable Area, voir « Les mots de Terry »). Une tuile 8 × 8 mesure 2 048 m de côté (relevé sur la tuile d'exemple du kit) : posée au centre de la tile map, elle couvre exactement l'Usable Area.
- En campagne, les axes sont ceux de l'espace des hex : voir le terrain de campagne, plus bas.
Se déplacer : caméra et raccourcis§
Ces raccourcis viennent de la documentation de CA. Ceux du clavier figurent dans le fichier des raccourcis de Terry (working_data/) : un fichier local, que Terry réécrit et qui garde vos propres réglages ; nous citons ses touches par défaut. Ceux de la souris viennent des pages de CA et des bulles d'aide du kit (working_data/). Ctrl+S et Ctrl+Maj+S manquent : le fichier liste « enregistrer sous » sans touche, et « enregistrer » pas du tout.
| Touches | Action |
|---|---|
| W A S D (Maj : plus vite) · Q / E | se déplacer · pivoter |
| C / X · R · Z | monter / descendre · vue du ciel, au centre · zoom sur la sélection |
| molette · bouton du milieu · Alt + milieu · Maj + milieu | zoom · déplacer · pivoter · monter ou descendre |
| clic droit ou Échap | quitter l'outil en cours |
| 1 2 3 4 · Tab | sélection, déplacement, rotation, échelle · éditer l'entité |
| Maj + glisser · Ctrl + glisser | dupliquer · pivoter la sélection |
| Ctrl+G / Ctrl+U | grouper / dégrouper |
| Ctrl+A · Ctrl+D · Ctrl+I · Ctrl+H · F | tout sélectionner · ne rien sélectionner · inverser la sélection · masquer · figer la sélection |
| [ / ] · O / P · N / M · , / . | taille de la brosse · opacité − / + · « autre valeur » − / + · palette précédente / suivante |
| Maj maintenue · Alt + clic · Ctrl+Alt + souris | lissage rapide · prélever une valeur · taille et rotation de la brosse |
| 5 · Maj+5 · Alt+5 | aligner · monter · abaisser le terrain sous la sélection |
| H · G | relief en couleurs (topographie) · vue monde / vue d'édition |
| Maj+C · L · Maj+T · Maj+2 | changer de caméra (sans doute perspective ou orthographique) · repère local ou monde · coller et orienter au terrain · outil de pose (sens déduits des noms des commandes du fichier : à vérifier) |
| Ctrl+N · Ctrl+O · Ctrl+P | nouveau · ouvrir · Process with BOB |
| Ctrl+S · Ctrl+Maj+S | enregistrer · enregistrer sous (non confirmés dans Warhammer III) |
Deux commandes n'ont pas de touche par défaut : CopyCamera et PasteCamera. Elles copient et collent le point de vue par le presse-papiers, sous la forme camv3;œil x;y;z;cible x;y;z : de quoi comparer deux états d'un terrain sous le même angle. Pour leur en donner une, la commande ConfigureKeyset sert sans doute à régler les raccourcis (son libellé dans les menus reste à vérifier) ; les touches se rangent dans keyboard.xml.
Les modes de peinture et de création§
Terry travaille par modes : on choisit un mode, un outil, puis l'on peint ou l'on pose. Les quatre modes de peinture sont dans la barre Basic ; les modes de création, dans la barre Entity Creation et le menu Tools.
Le relief : Terrain Height Painting§
- Trois panneaux. Maps : les rasters et leurs calques (Add Layer au clic droit), qui se mélangent dans l'ordre. Operations. Brushes : New Round crée une brosse ronde, avec Scale, Hardness, Size Jitter…
- Opérations de Warhammer III : Add, Subtract, Absolute, Smooth, Erase.
- Pour voir en rouge les pentes de plus de 45° : Settings → View 3D → Overlay → Land No Gos.
Les textures : Terrain Texture Painting§
- Chaque canal est une texture du projet (
grass01,mud01…). - Un flow bas fond les textures l'une dans l'autre.
- Opérations : Normal, Smooth, Erase, Replace.
Les forêts : Terrain Forest Painting§
On ne pose pas les arbres un à un : on peint la texture de forêt, et la forêt pousse là où cette texture dépasse 60 %.
Le sol logique : Terrain Painting (Other)§
Ce mode peint les types de sol logiques : ce que le jeu sait du sol, indépendamment de la texture que l'on voit.
En campagne : d'autres rasters, d'autres opérations§
Un projet de campagne peint d'autres rasters que la tuile de bataille, et chacun a ses opérations. Terry les garde dans working_data/ (relevé le 25.09.2026, kit 9.0) ; les valeurs neutres sont celles du projet des Empires (relevées le 21.09.2026).
| Raster | Opérations | À savoir |
|---|---|---|
Height, HeightSea, HeightShroud | Add, Subtract, Absolute, Smooth, Erase | les mêmes que le relief d'une tuile |
BlendCampaign | Set, Clear | un numéro de texture par pixel, pas des canaux mélangés (chez nous, de 0 à 143) |
ColorOverlay, ColorOverlaySea | Normal, Smooth, Erase | neutre aux Empires : (115, 117, 115) ; l'eau profonde de ColorOverlaySea : (25, 32, 41) ; le calque de ColorOverlay y a une opacité de 0,5 |
CampaignTree | Set, Clear, Replace | une couleur d'arbre par pixel ; 255 = pas d'arbre |
CorruptionMask, SnowMask | Normal, Erase, Absolute | — |
PatchVisibilityMask | Set, Clear Visibility, Reset Visibility | 255 partout aux Empires |
La végétation posée (Vegetation) et la Procedural Exclusion Zone sont réservées à la bataille (entity_configuration.xml) : en campagne, les arbres viennent du raster CampaignTree.
- La palette de
CampaignTreeest la tablecampaign_tree_ids(une couleur = une famille d'essences) ; BOB en tire la liste des arbres de la carte. BOB ne connaît que les identifiants dedb.pack: pour des arbres neufs, peignez une famille que la base connaît, puis renommez après BOB. - Un numéro de
BlendCampaignest un groupe de sol : un groupe neuf n'existe pour le jeu que s'il est déclaré dans un catalogue de variantes (warscape_asset_variation_db/) ; sinon il prend la dernière texture du tableau (sol gris). Chez nous, un catalogue à nous, sous un nom à nous, qui ne porte que nos clés (le jeu lit tous les*.assetdb .assetdbdu dossier) ; jamais une copie deterrain_textures_campaign.assetdbde CA, qui écraserait celle d'un autre mod de carte.
Les objets : Entity Creation (Visual)§
- Entités : Prefab, Building, Prop, Decal, VFX, Polygon Mesh, Terrain Hole, Vegetation (Place ou Paint), Procedural Exclusion Zone, et les lumières.
- Pendant la pose, [ et ] règlent l'échelle ; Maj + souris, la rotation.
- Un lac est un prop
water_plane, option Surface Oriented décochée, posé dans un creux du relief. Une eau de moins de 0,5 m reste franchissable, avec une pénalité ; plus profonde, elle est infranchissable (CA).
La logique : Entity Creation (Logical)§
- Entités : AI Hint, No-Go / Go Region, Deployment Zone, Deployment Zone Region, Playable Area, et, dans Warhammer III, les points de capture.
- Le kit réserve ces entités aux projets de bataille (
entity_configuration.xml). Un projet de campagne a les siennes :CampaignSettlementetCameraConstraintVolume; les zones d'éclairage (EnvironmentVolume) y sont permises, comme dans toute tile map.
- ATile maple décor tout autour, emprunté à une vista ; dessiné jusqu'à 8 km du centre (CA).
- BVotre tuile 8 × 8le terrain où l'on se bat, que vous peignez, au centre de la tile map.
- CUsable Areale même carré que la tuile (B) : une tuile 8 × 8 mesure 2 048 m de côté (relevé sur la tuile d'exemple du kit) ; posée au centre, elle couvre exactement l'Usable Area, 2 048 m centrés sur le champ de bataille, seul lieu de la physique et du cheminement des unités (CA).
- DPlayable Areala zone jouable, où l'on donne les ordres de mouvement ; ses bords fixent d'où l'on fuit et arrive en renfort, et ceux de la minicarte (CA, Creating Zones) ; selon la page d'introduction de CA, ils bornent aussi la caméra.
- EDeployment ZonesAlliance 0 = attaquant, 1 = défenseur ; dans le Terry de Warhammer III, 0 en bleu et 1 en rouge sombre (la documentation de 2016 donnait l'inverse) : fiez-vous au numéro. Chaque zone a sa région additive (+), créée avec elle (tutoriel) ; une région soustractive (−), facultative, en retire un morceau (CA).
- FPoints de capturepour une carte de domination : type domination 1, 2, 3 ; importance score ; de 80 × 80 à 180 × 180 (tutoriel).
- GLignes de renfortAI Hint attacker ou defender teleport reinforcement line : une ligne courte de deux points ; une vingtaine d'unités de long suffit (tutoriel).
- HProcedural Exclusion Zoneposée entre la zone jouable et le bord de la tuile, pour alléger la carte : plus de végétation procédurale hors jeu, herbe mais aussi arbres des forêts ; repeignez à la main les forêts voulues (tutoriel).
- INo-Goun polygone fermé qui marque une zone infranchissable (CA).
- JDefensive Hillun AI Hint qui montre à l'IA une position défensive : un polygone fermé ; ouvert, plantage probable (CA).
Les outils avancés : Advanced et Other§
Une règle pour mesurer ; Snap BBox et Snap Verts pour aligner ; la grille et l'aimantation ; la caméra en perspective ou orthographique ; Sound Marker pour placer des sons ; Camera Bounds, qui borne la caméra de l'éditeur seulement, pas celle du jeu.
Plusieurs variantes d'une même carte§
Un calque peut porter un type d'export (catchment_01…). La colonne catchment_name de la table battles choisit alors la variante que le jeu charge. C'est ainsi qu'un même terrain donne une carte de domination et une bataille classique.
Première carte de bataille, pas à pas§
Ce pas-à-pas suit le tutoriel de Warhammer III du wiki tw-modding, complété par la documentation de CA. Deux conseils d'abord. Enregistrez souvent : CA prévient que Terry plante parfois. Et réglez l'autosauvegarde dans Settings (sur notre installation, elle était réglée à 15 minutes). Terry range ses autosauvegardes dans working_data/ et note ses erreurs dans working_data/, dans le dossier du kit.
Une autosauvegarde est un dossier numéroté (001, 002…) qui contient une copie complète du projet, ses fichiers renommés autosave.* (autosave.terry, ses .tif, ses .layer) ; settings.xml en prévoit 100 et prévient 15 secondes avant chacune (réglages de notre installation). Nous n'avons pas encore restauré de projet depuis une autosauvegarde : avant tout essai, copiez son dossier ailleurs, et gardez l'original de votre projet.
Un premier essai : la carte d'exemple du kit§
Avant de faire votre propre carte, vous pouvez voir le trajet Terry → BOB sur la carte d'exemple que livre le kit. Ce que nous avons vérifié dans les fichiers : sa tuile est raw_data/ (8x8, un seul File Layer, textures grass01, grass02, mud01, mud02, forest01) ; sa tile map est raw_data/, qui pose déjà la tuile en son centre (pas de vista ni d'explicit_tiles à régler) ; leurs fichiers compilés sont livrés dans working_data, datés du jour de l'installation du kit. Elle n'a aucune ligne dans la table battles : elle n'apparaît pas en jeu d'elle-même.
- Rangez une copie des deux dossiers de la carte d'exemple, hors du kit, avant d'y toucher.
- Ouvrez la tuile (File → Open…, Ctrl+O), levez une colline avec Terrain Height Painting, puis enregistrez (File).
- Compilez : Process with BOB sur la tile map, puis sur la tuile.
- Vérifiez :
binaries/se termine parbob.log Exit code: 0, et les sorties de la tuile dansworking_data/portent la date du jour.terrain/ tiles/ battle/ test_tiles/ assembly_kit_example_tile/
Cet essai applique les règles du pas-à-pas qui suit ; nous ne l'avons pas fait tel quel, ni mené jusqu'au jeu. Pour voir une carte en jeu, il faut la déclarer comme dans la section RPFM, plus bas ; le pas-à-pas fait une carte à vous, sur le même modèle.
Votre carte, pas à pas§
Une carte de bataille, ce sont deux projets Terry. La tuile est le terrain où l'on se bat, que vous peignez en détail ; la tile map est le décor qui l'entoure, dessiné jusqu'à 8 km (CA), que vous empruntez à une vista. Seul un carré de 2 048 m au centre, l'Usable Area, a la physique et le cheminement des unités (CA). La figure montre les deux projets l'un au-dessus de l'autre, avec leurs fichiers, les deux passages de BOB et la ligne de battles_tables qui relie le tout au jeu.
- Créez le projet. Dans le Project Wizard, sur l'onglet New, choisissez une tuile de bataille. Le libellé exact de ce choix n'est pas confirmé dans Warhammer III.
- Enregistrez-le aussitôt (File → Save As…) : la boîte demande le nom de la carte, en minuscules (un nom de dossier, pas le nom affiché en jeu) ; le jeu de tuiles, un nom de dossier à vous, en minuscules (le tutoriel, qui fait une carte de domination, l'appelle
domination) ; la taille, 8x8, pour rester compatible avec les tile maps de Warhammer II ; le climat (qui règle notamment les herbes et les arbres). Laissez cochée la case du bas, comme le demande le tutoriel (son libellé n'est pas confirmé ici). Vérifiez : d'après la carte d'exemple du kit, la tuile se range dansraw_data/. Le bouton Show in Explorer ouvre le dossier : unterrain/ tiles/ battle/ <jeu de tuiles>/ <carte>/ .terry, au moins un.layer, des.tif. - Peignez le relief, les textures, les forêts, puis posez les objets. Pour alléger la carte, le tutoriel pose une Procedural Exclusion Zone entre la zone jouable et le bord de la tuile : plus d'herbe hors jeu, mais plus d'arbres non plus dans les forêts de cette bande ; il les repeint à la main. Vérifiez en World View (touche G), l'aperçu façon jeu, et avec H, le relief en couleurs.
- Posez la logique, par Tools → Entity Creation (Logical). Une Playable Area (la zone jouable) : de 2x2 à 3x3, conseille le tutoriel, sans préciser l'unité ; sans elle, le jeu la fixe entre 800 et 1 300 m selon le nombre d'unités, ou l'ajuste aux zones de déploiement, la plus grande des deux (CA). Deux Deployment Zones, chacune avec sa Deployment Zone Region additive : Alliance ID 0 pour l'attaquant, 1 pour le défenseur, Zone ID à 0. Dans Terry de Warhammer III, l'alliance 0 s'affiche en bleu et la 1 en rouge sombre (la documentation de CA de 2016 donnait l'inverse) : fiez-vous au numéro. Pour une carte de domination, des points de capture : type domination 1/2/3, importance score, de 80 × 80 à 180 × 180 ; le tutoriel ajoute à chaque zone de déploiement une seconde région, de type guerilla exclusion additive, pour le déploiement d'avant-garde (l'alliance adverse ne peut pas s'y déployer), et veille à ce qu'aucun joueur ne puisse se déployer en avant-garde sur un point de capture. Et des lignes de renfort : un AI Hint attacker ou defender teleport reinforcement line, une ligne courte de deux points ; une vingtaine d'unités de long suffit, selon le tutoriel. Vérifiez : les zones sont visibles dans la vue 3D, et le panneau Project Errors ne signale rien.
- Créez la tile map par Tools → Create battle for tile… : Terry crée son projet dans
raw_data/. Une fois suffit, dit le tutoriel ; ensuite, vous travaillez dans les fichiers qu'elle a créés. Vérifiez : le dossier contient unterrain/ battles/ <carte>/ .terry,tile_map.png,climate_map.pngetexplicit_tiles. - Posez votre tuile dans la tile map. Dans ce dossier, remplacez
tile_map.pngetclimate_map.pngpar ceux d'une vista existante, une tile map déjà faite qui servira de décor. Puis, dansexplicit_tiles, changez les deux premiers nombres de la lignex,y,chemin de la tuile,0(voir juste après la liste) : x,y est le coin haut-gauche de votre tuile danstile_map.png, en pixels. Une tuile 8 × 8 au centre d'une tile map de 64 × 64 se pose en 28,28 ; la carte d'exemple du kit a la sienne au même endroit. - Compilez la tile map : ouvrez-la dans Terry, lancez File → Process with BOB (Ctrl+P, ou le globe de la barre Basic), puis rechargez-la. Vérifiez : votre tuile est à sa place.
- Compilez la tuile. Rouvrez-la. Dans Map Properties, décochez la génération de végétation legacy (dans le
.terry, la propriétéuse_legacy_procedural_vegetation). Puis Process with BOB. La tile map passe toujours avant la tuile ; ensuite, quand vous retouchez la tuile, seule la tuile se réexporte. - Déclarez la carte au jeu avec RPFM : voir la section suivante.
- Testez-la en bataille personnalisée, le pack activé dans le lanceur.
Par défaut, dit le tutoriel, explicit_tiles contient à peu près ceci :
3,3,terrain/tiles/battle/lzd_hills_infield/chaqua_pit,0Changez seulement les deux premiers nombres. x,y se lisent en pixels de tile_map.png, x depuis la gauche, y depuis le haut : ouvrez l'image dans votre logiciel de dessin et pointez le coin haut-gauche du carré noir de la vista, soit 28,28 dans une tile map de 64 × 64 (tutoriel). Vérifiez que le chemin est celui de votre tuile, depuis terrain/, en barres obliques ; gardez le 0 final.
La carte d'exemple du kit, elle, pose sa tuile autrement : sa tuile (raw_data/) déclare dans son .terry la couleur (0, 255, 127), et le tile_map.png de sa tile map, de 64 × 64 pixels, en porte un bloc de 28,28 à 35,35, sans explicit_tiles.
La déclarer dans le jeu avec RPFM, et la tester§
BOB a produit les fichiers du jeu. Il reste à les mettre dans un pack et à dire au jeu que la carte existe : c'est le rôle d'une ligne de la table battles_tables, d'un texte et d'une image. RPFM fait tout cela ; ses gestes de base sont dans le guide RPFM.
- Créez un pack et ajoutez-y le dossier
working_data/, comme le tutoriel, puis retirez-en tout ce qui n'est pas à vous : la carte d'exemple du kit (terrain assembly_kit_example_tile_map,assembly_kit_example_tile,_tile_database/) et tout fichier du jeu que vous y auriez extrait. Vérifiez dans RPFM qu'il ne reste que vos dossiers : la tile map, la tuile et son entréeTILES/ test_tiles_assembly_kit_example_tile.* _tile_database/.TILES/ <jeu de tuiles>_<carte>.* - Ajoutez une ligne à
battles_tables: clic droit sur le pack → Create… → Create DB →battles_tables, un fichier à votre nom (jamaisdata__, qui remplacerait la table du jeu) ; copiez une ligneclassicdu jeu, Paste as New Row, et changez d'abord la clé (le guide RPFM). Vous gardez ainsi toutes les colonnes ; remplissez-les d'après le tableau ci-dessous. - Ajoutez le texte
battles_localised_name_<key>: c'est le nom que le joueur verra. - Ajoutez l'image au chemin que donne
screenshot_path: trois fois plus large que haute (tutoriel). L'espace defrontend uiest voulu. - Enregistrez le pack, puis PackFile → Install dans RPFM, qui le copie dans le dossier
datadu jeu. Une image carrée du même nom que le pack lui sert de vignette (le tutoriel la prévoit pour le Workshop). Puis activez le pack dans le lanceur. - Testez par une bataille personnalisée. Une carte de domination se teste en multijoueur, ou avec un mod de la communauté (voir le tutoriel de tw-modding).
| Colonne de battles_tables | Ce qu'elle reçoit | Exemple |
|---|---|---|
key | la clé de votre carte : une clé à vous, jamais celle d'une carte du jeu | monprefixe_ma_carte |
type | classic ou domination | classic |
specification | le dossier de la tile map, avec la barre finale, comme le tutoriel ; CA écrit le plus souvent terrain\ : si vous copiez une ligne de CA, gardez sa forme | terrain/ |
screenshot_path | l'image de la carte ; elle doit être dans le pack | ui/ |
team_size_1, team_size_2 | la taille des deux camps | 1, 1 |
singleplayer, multiplayer | où la carte est proposée | 1, 1 |
battle_environment | l'ambiance : un fichier .environment_group de weather/ (CA la laisse vide sur 808 de ses 1 319 lignes, au patch 9.0) ; à ne pas confondre avec battle_environment_audio, juste à côté | weather/ |
catchment_name | la variante d'export à charger (voir les modes, plus haut) | le type d'export de vos calques ; sans type d'export, à vérifier (258 lignes de CA la laissent vide, au patch 9.0) |
Le terrain d'une carte de campagne : ce qu'on sait§
Pour une carte de campagne, le kit ne livre rien : ni projet Terry, ni données brutes de terrain. C'est vrai du kit de Warhammer III comme de celui de Warhammer I. Pourtant, Terry sait ouvrir un projet de campagne : pour lui, c'est une tile map (QTU::ProjectTileMap) posée sur la base de tuiles campaign, avec terrain_setup="terrain/ ; ChaosRobie parle de « campaign-type Terry project ». ChaosRobie, l'auteur d'Immortal Empires Expanded, l'a prouvé : il a reconstitué la carte des Empires Immortels en projet Terry, et il a partagé ce projet avec la communauté. Le voici disséqué : c'est le plan à suivre.
| Élément | Ce qu'il est |
|---|---|
le dossier raw_data/ | absent des kits : c'est lui qu'il faut créer |
raw_data/ | la recette de BOB, dans le dossier parent : [Terrain] avec PrefabRoot = art\ (valeur du projet de ChaosRobie ; battle pour une bataille), TileDatabase = terrain\, HeightPatch = true… |
<carte>/ | une copie seulement : [Copy] recopie le projet brut dans assembly_kit/ à chaque passage, et [+AssetGraph] l'accompagne. Qui ne recrée que le dossier de la carte perd la recette. |
<carte>.terry | le projet, en XML (version 27) : les réglages de la carte, dix couches de terrain, et **un File Layer par région** (une entité ECFileLayer nommée comme la clé de la région dans la base) |
<carte>.terry.user | les réglages d'aperçu : sans lui, Terry ne montre ni eau ni arbres |
tile_map.png | la carte des tuiles : terre, mer, côtes, falaises, routes, une couleur par type |
dix rasters .tif | relief, fond marin, mélange des textures, couleurs, hauteur du brouillard de guerre, arbres, corruption, neige, visibilité des parcelles (tableau plus bas) |
un .layer par File Layer | les objets posés : décors, montagnes, eau ; un par région, plus ceux que vous ajoutez (notre projet en a sept de plus : mer, montagnes, éclairage…). Pour des montagnes ou des falaises posées en objets, CA n'emploie que les matériaux 68, 86 ou 97 ; les nôtres, au matériau 49 des tuiles de terrain, sont la cause désignée d'un plantage de rendu intermittent (jeu en 9.0.2) : une piste encourageante, pas encore une preuve |
lighting/ | les éclairages (.environment) ; le .terry en cite un comme éclairage global |
Retenez que le projet est lié à la liste des régions de la carte : une région de plus, c'est un File Layer de plus, c'est-à-dire une entité ECFileLayer dans le .terry et son fichier <carte>.<id>.layer. La moitié logique, elle (régions, sols, routes, villes), se fait dans CAIME (Campaign AI Map Editor), l'éditeur du Campaign Map Toolkit : le guide CAIME.
Les réglages du projet§
Le premier bloc du .terry, QTU::ProjectTileMap, porte notamment ces quatre réglages, relevés dans les deux projets (septembre 2026) :
| Attribut | Ce qu'il porte |
|---|---|
terrain_setup | le dossier du terrain : terrain/ |
world_width | la largeur du monde : chez nous, le maxx de la zone jouable de campagne (266,53) ; aux Empires, 961,3. L'action Campaign Trees de BOB ne place aucun arbre au-delà de z = world_width × 2/√3 : sur une carte plus profonde que cela, les arbres se tassent sur une rangée ; contrôlez la liste d'arbres après chaque passage |
global_lighting | l'éclairage global, un .environment du dossier lighting/ ; BOB écrit environment_collection.xml d'après lui et les entités EnvironmentVolume (constat de septembre 2026, kit 8.1) ; sans aucune zone EnvironmentVolume, BOB n'écrit pas ce fichier |
water_plane_material | le jeu ne le lit pas : le matériau de la mer d'une campagne vient de warscape_asset_variation_db/ (clé water_plane_material de campaign_texture_terrain/), constat du 23.09.2026, patch 8.1 |
La taille des rasters se déduit du nombre d'hex§
Toutes les résolutions sont proportionnelles au nombre d'hex de la carte, celui de CAIME (relevé sur le projet de ChaosRobie et appliqué à notre carte). La dernière colonne donne l'exemple de notre carte, 400 × 440 hex.
| Couches | Pixels par hex | Exemple, 400 × 440 hex |
|---|---|---|
Height, HeightSea, BlendCampaign, ColorOverlay, ColorOverlaySea | 8 (plus 4 lignes) | 3200 × 3524 |
HeightShroud | 4 (plus 2 lignes) | 1600 × 1762 |
CampaignTree, CorruptionMask, SnowMask, et tile_map.png | 2 (plus 1 ligne) | 800 × 881 |
PatchVisibilityMask | une case par parcelle de p pixels de la carte de tuiles, p = plafond(plus grand côté / 128) | 114 × 125 |
Le calcul : 400 × 8 = 3200 pixels de large, 440 × 8 + 4 = 3524 de haut. Pour les parcelles, la carte de tuiles fait 800 × 881 : p = plafond(881 / 128) = 7, et l'on compte les parcelles entières (800 / 7 donne 114, 881 / 7 donne 125).
Dans le dossier, chaque raster a son fichier <carte>.<nom>.<id>.tif, où le nom n'est pas celui du type (relevé sur les deux projets) :
| Raster (type) | Fichier | Ce qu'il porte |
|---|---|---|
Height | .height. | le relief |
HeightSea | .sea_height. | le fond marin |
BlendCampaign | .blend. | la texture du sol |
ColorOverlay, ColorOverlaySea | .color_overlay., .color_overlay_sea. | les couleurs, sur terre et en mer |
HeightShroud | .height_shroud. | la hauteur du brouillard de guerre |
CampaignTree | .tree. | les arbres |
CorruptionMask, SnowMask | .corruption_mask., .snow_mask. | la corruption, la neige |
PatchVisibilityMask | .patch_visibility_mask. | les parcelles où le sol est dessiné |
Campagne : conventions, ordre de BOB et limites§
Les conventions§
Elles ont été établies en lisant le projet de ChaosRobie et en les essayant sur notre chantier (septembre 2026) ; CA ne les documente pas.
- Les rasters sont rangés du nord vers le sud ; les hauteurs sont en unités du monde, l'eau à 0. Les fichiers compilés ont chacun leur sens :
full_height_map.ddsva du sud au nord,lf_normal.ddsetcamera_heightmap.pngdu nord au sud ; vérifiez-le par corrélation avec les hauteurs avant d'en fabriquer un. - x pointe vers l'est, z vers le nord, et le monde est l'espace des hex. Les rasters ont des pixels carrés, mais le monde de campagne est plus profond qu'eux : Terry les étire de 2/√3 en z. Un point du monde (x, z) correspond donc, dans le raster, à la position z × √3/2 (en unités du monde, pas en pixels). Chez nous : 338,9 unités de profondeur de monde pour 293,5 unités de raster.
- La mer se déclare dans
tile_map.png(tuilesea, couleur 83, 141, 213), pas par la hauteur. Le fond marin (HeightSea) doit rester sous 0 là où il y a de la mer : s'il dépasse les maillages d'eau, il les masque. Sous la terre, il n'y a pas de tuile de fond marin et sa valeur ne change rien (ChaosRobie, 26.09.2026). - La surface de la mer est faite de grands plans d'eau posés comme objets : des Polygon Mesh (entités
ECPolygonMesh) au matériau d'eau de la carte, à la hauteur 0 ; les Empires en ont 997. Sans eux, pas d'eau sur la mer, même avec le fond sous 0 (constat du 23.09.2026). Leur pivot doit être dans la carte, sinon BOB les écarte (« Failed to find valid quadtree node »). Tracez chaque plan d'eau entier, puis découpez-le exactement : des pavés tracés séparément laissent une fente sans eau d'un quart d'hex aux coupures. - La côte de la tile map : exportez
tile_map.pngdepuis CAIME (Tools → Export → Baseline Tilemap), sans peinture ni retouche. Avec CAIME 1.1.0 ou plus, l'image sort nord en haut ; jusqu'à la 1.0.1, elle sort à l'envers (sud en haut) : retournez-la verticalement, et seulement cela (contrôle : sa côte se superpose à l'export PNG de la couche Ground Types). Pour Warhammer III, l'export donnecliff_gen(253, 3, 1) aux hex de terre qui touchent la mer,cliff_gen_ends(84, 230, 84) aux transitions avec une plage etsea_coast(255, 255, 0) aux plages sans route. Les anciennes retouches au pixel nous avaient valu 148 « Failed to find tile » ; le fond visuel de la côte se règle dans Terry, puis se juge en jeu. - Les bouts de falaise : CAIME pose deux
cliff_gen_endsautour de chaque plage, alors que la carte des Empires de CA n'en a que 36 pour 412 plages, la plupart raccordées directement à la falaise. Un bout a deux poses possibles ; lié à la plage, il laisse un trou de tuile côté falaise (chez CA, les 36 sont liés à la falaise, aucun trou). « Exportée sans retouche » reste la règle générale ; sur notre carte Saison Expanded, ces bouts sont repeints encliff_gen, un écart que nous assumons. Ni falaise ni plage sur la rangée 0, la dernière rangée ou la dernière colonne de la grille, ni isthme d'un hex où deux falaises se croisent : aucune tuile de côte n'y existe. - Une embouchure se marque Beach ET River dans CAIME : à l'export, tout hex de terre côtier qui n'est pas une plage devient une falaise, rivière comprise ; sans cela, la rivière finit sur une falaise et n'arrive pas à la mer.
- Les routes : CAIME exporte un bloc plein de 2 × 2 pixels
roads(93, 66, 24) par hex de route retenu après priorité de la mer et des falaises côtières. Une route sur une plage prime sur la plage.
La légende de tile_map.png est dans la base des tuiles de campagne, terrain/, un fichier binaire. Les couleurs que nous y avons lues (21.09.2026, patch 8.1) :
| Type de tuile | Couleur (R, G, B) |
|---|---|
generic (terre) | 223, 180, 145 |
sea | 83, 141, 213 |
sea_coast · sea_rock_coast · sea_coast_sand | 255, 255, 0 · 220, 180, 0 · 255, 255, 170 |
roads · roads_light · roads_grey | 93, 66, 24 · 125, 100, 65 · 125, 120, 110 |
cliff_gen · cliff_gen_ends · cliff_custom | 253, 3, 1 · 84, 230, 84 · 254, 0, 0 |
river | 0, 0, 255 |
river_mesh · river_mesh_start · river_mesh_mouth · river_mesh_crossing | 253, 160, 37 · 255, 100, 10 · 255, 200, 22 · 147, 20, 20 |
Une couleur de la légende ne suffit pas : seules les familles présentes dans working_data/ ont des tuiles, et la base n'a qu'une tuile river.
- Les rivières : Warhammer III n'a presque plus de tuiles de rivière. Ses rivières sont des maillages posés comme objets, ou des chenaux de mer bordés de côte.
- Partir de CAIME : le guide CAIME fait exporter
tile_map.pngpar CAIME (Tools → Export → Baseline Tilemap) pour le projet Terry. Dans Warhammer III, les rivières ordinaires prennent la couleurgeneric, leurs embouchures (hex marqués Beach et River) la couleursea_coast: aucune tuile de rivière n'est demandée (BaselineTilemapExporter.cs). Comptez les « Failed to find tile » après le premier passage. - Ce qui manque au kit (la base des tuiles de campagne
terrain/, avec la légende des couleurs detiles/ campaign/ _tile_database tile_map.png; les éclairages ; les matériaux de la mer) s'extrait des packs du jeu avec RPFM.
L'ordre des passages§
Le tutoriel de tw-modding sur les cartes de campagne donne cet ordre, passage par passage dans la fenêtre de BOB ; le détail, qui fait foi, est dans le guide BOB. Depuis Terry, un seul Process with BOB sélectionne d'un coup toutes les actions du terrain (12 dans un passage complet qui aboutit ; 15 le 21.09.2026, quand Generate Camera Height Map était demandée, et elle fait planter BOB) :
- Le relief d'abord : les étapes suivantes en dépendent et le lisent dans votre pack. Mettez-le dans votre pack (le tutoriel dit « votre pack » ; chez nous, BOB monte les packs de
<jeu>\et ceux dedata assembly_kit\), puis fermez et rouvrez BOB.working_data - La tile map : de nouveau dans le pack, puis fermez et rouvrez BOB.
- La global tile map (routes et falaises).
global_props.bin, les objets posés : à refaire chaque fois qu'une région est ajoutée ou retirée (BOB lit alors lemap.hexde CAIME) ; jusqu'à dix minutes sur une grande carte, selon le tutoriel.
Depuis Terry, chaque Process with BOB démarre un nouveau BOB. Après chaque passage, lisez bob_warnings.log, dans assembly_kit/, et comptez les « Failed to find tile » : chacun est un trou dans le terrain. Vérifiez aussi bob.log : sa première ligne annonce le nombre d'actions choisies (N action(s) were selected for execution.), et chaque action terminée a sa ligne (STATUS: Finished) ; combien en attendre : voir les limites, ci-dessous. Visez zéro « Failed to find tile », sauf sur la dernière rangée du terrain de bataille d'une campagne, hors de la grille et sans effet (1 chez nous pour la Saison, 3 pour Expanded). Enfin, regardez dans working_data/ : le relief compilé (full_height_map.dds), tile_list.bin et global_props.bin.
Les limites connues§
- Six actions sur douze. Un passage complet qui aboutit sur un terrain de campagne compte 12 actions (nos passages réussis de septembre, kit 9.0, et d'octobre, kit 9.0.2 ; 15 si Generate Camera Height Map est demandée, et cette action fait planter BOB). Durées relevées chez nous (patch 8.1) : le 21.09.2026, la première compilation complète a pris environ 26 minutes, dont environ 25 pour compresser le relief ; le soir même, moins d'une minute, relief compris d'après nos notes ; le 22.09.2026, de 53 à 64 secondes. Pour une carte que la base du jeu (celle des packs de CA) ne connaît pas, BOB n'en lance que 6, sans message : les objets posés (
global_props.bin,global_props_sound.bin) et cinq masques, sans relief, tuiles, textures, carte logique ni brouillard (les objets seuls prennent de 11 à 24 secondes chez nous). D'après notre enquête du 21.09.2026 (kit 8.1), BOB cherche le nom du dossier de terrain dans la tablecampaign_map_playable_areasde cette base, celle dedb.pack; l'ajouter à la base du kit ou à un pack de mod n'y change rien. Conséquence : un projet qui modifie une carte de CA, dans un dossier au nom de cette carte (commewh3_main_combi_map_1pour Immortal Empires Expanded), devrait obtenir toutes ses actions (déduit de la DLL de BOB, non essayé) ; une carte neuve, non. Nous ne connaissons pas de voie officielle pour lever cette limite : faites un témoin, puis demandez à la communauté. Un témoin, c'est un projet connu pour bon, copié sous un autre nom : s'il s'arrête aussi à 6 actions, votre projet n'est pas en cause (le projet de ChaosRobie, copié sous un autre nom, s'y arrête). Nos cartes neuves ont obtenu leurs 12 actions par un outil à nous, hors des voies officielles, assumé comme tel : BOB lancé sous débogueur (le guide BOB). - « Generate Camera Height Map » : notre constat (21.09.2026, kit 8.1) est que cette action fait planter BOB ; le tutoriel écrit, lui, que Terry devrait savoir produire cette carte, mais plante quand on essaie. La carte de hauteur de la caméra (
camera_heightmap.png), le tutoriel l'approche à partir du relief, mis à l'échelle, en réglant à la bonne valeur un bloctEXtdu PNG ; le masque de corruption se peint à la main ou par script. - Tant qu'aucun terrain compilé n'existe, Terry plante en ouvrant le projet en 3D (constat du patch 8.1, non revérifié depuis) : décochez 3D View dans la boîte d'ouverture (Open…).
- Une campagne a deux terrains : le sien, et un terrain de bataille déclaré par sa zone jouable de campagne (colonne
terrain_folder, dossierterrain/). Sans lui, le jeu plante à la première bataille terrestre, même entre deux IA, donc souvent dès la première fin de tour. C'est une tile map de bataille, que BOB compile comme telle ; celle de CA porte aussi des lieux de bataille et des cartes de captage.battles/ <dossier>/
Le récit complet d'un portage, avec ses murs : le tutoriel du portage.
Les pièges de Terry§
D'abord le verrou de working_data, en quatre cas :
- Terry ouvert verrouille
working_data, et notamment les packs qu'on y pose. Avant de lancer BOB depuis sa fenêtre, ou d'enregistrer un pack dansworking_data, fermez Terry et le jeu ; Process with BOB, lancé depuis Terry, n'est pas concerné. - Tweak et Terry fermés pendant les exports de CAIME : pendant les exports Map Data et Dynamic Resources de CAIME, Tweak et Terry doivent être fermés (Terry est un mode de Tweak). Ne comptez pas sur l'alerte de CAIME : elle cherche un programme nommé
Tweak.AssemblyKit, alors que celui du kit de Warhammer III s'appelletweak.modder.x64.exe. - L'aperçu n'est pas le jeu : toutes les variantes de culture s'affichent à la fois ; les décalques sont des sphères blanches ; les forêts de la carte des arbres ne s'affichent que si l'option d'aperçu correspondante est active (
show_campaign_tree_map, dans les Settings ; désactivée chez nous), et seulement pour les familles d'arbres que la base du kit connaît ; les textures propres à la carte sont ignorées ; l'eau est rendue autrement. Tout cela se juge en jeu. - Create battle for tile… : une fois par carte suffit. Ce que ferait un second lancement sur un dossier déjà retouché n'est pas documenté : ne le relancez pas sur une tile map modifiée.
- Sans
.terry.user, l'aperçu d'une campagne n'a ni eau ni arbres : ce petit fichier, à côté du.terry, porte les réglages d'aperçu. - La documentation de CA date du premier Warhammer. Son Export Map est devenu Process with BOB, suivi de RPFM ; et les couleurs des zones de déploiement se sont inversées (voir l'étape 4 du pas-à-pas) : fiez-vous à l'Alliance ID, jamais à la couleur.
- L'AI Hint Defensive Hill doit être un polygone fermé, sinon plantage probable.
- BOB réécrit ses sorties à chaque passage : une retouche faite à la main dans
working_datadisparaît au passage suivant. - La neige depuis la 9.0 : le matériau de neige des Empires Immortels (
combi_campaign_snow.xml.material) ne cite plus de masque ; le jeu lie lui-même lesnow_mask.ddsde la campagne. Ne copiez pas un matériau de neige par carte.
Pour une IA qui lit cette page§
Si vous êtes une IA qui aide quelqu'un à se servir de Terry, voici l'essentiel, vérifié sur un vrai chantier. Ces faits ont été relevés sur le patch 8.1 du jeu (septembre 2026), puis relus pour la mise à jour 9.0 (chez nous, la mise à jour du kit a réécrit les tables de raw_data\, des fichiers de working_data (dont Terry/ et le modèle de tuile Terry/) et les DLL de BOB ; nos projets de raw_data/ n'ont pas bougé). La 9.0.2 a de nouveau remplacé BOB et Terry et réécrit raw_data\ ; un passage de terrain y a été revérifié le 04.10.2026 (12 actions, code 0). Chaque mise à jour peut recommencer : comptez vos lignes, puis faites un passage témoin, et revérifiez ces faits.
- Demandez à l'humain avant de lancer le jeu, de piloter l'écran ou de publier ; ne supprimez rien : rangez, seul l'humain supprime.
- Lire et documenter un format de fichier, comme le font RPFM et CAIME : oui. Modifier les programmes de CA ou contourner leurs limites : non, avec une exception assumée de l'atelier, dite franchement dans le guide BOB : BOB lancé sous débogueur pour le terrain d'une carte neuve. Quand un outil bute, un témoin, puis la communauté (Discord de CAIME, tw-modding).
- Terry est un mode de Tweak. Lanceur Steam de l'Assembly Kit : Battle Map Editor: Terry =
tweak.modder.x64.exe /, depuisstandalone TerrainMetadataEditor binaries(fenêtreTWeak - Terry, 25 s environ) ; Exporter: BOB =bob.modder.x64.exe -no_console; Database Editor: Dave (Dave, que CA écrit DaVE). Aucune commande ne pilote Terry ; aucune option devinée. - BOB s'ouvre par le lanceur Steam de l'Assembly Kit (Exporter: BOB), par son exécutable
bob.modder.x64.exe, ou depuis Terry (Process with BOB, Ctrl+P), qui lui passe le travail. BOB n'a pas d'aide en ligne de commande ; on connaît deux commandes officielles, celles de ses lanceurs :-no_console(lanceur Steam) et celle que Terry lui passe (voir le guide des outils). - Kit public : tuiles de bataille seulement. Tuile :
raw_data/; tile map :terrain/ tiles/ battle/ <jeu de tuiles>/ <carte>/ raw_data/, créée par Create battle for tile… (une fois suffit) ; BOB sur la tile map, puis sur la tuile.terrain/ battles/ <carte>/ explicit_tiles: la lignex,y,chemin,0existe déjà (tutoriel) : on en change x,y, en pixels detile_map.png, x depuis la gauche, y depuis le haut (coin haut-gauche de la tuile) ; chemin depuisterrain/, en barres obliques. Tuile 8 × 8 au centre d'une tile map de 64 × 64 : 28,28, comme dans la carte d'exemple du kit.- Alliance ID 0 = attaquant, affiché en bleu dans Terry de Warhammer III ; 1 = défenseur, en rouge sombre (la documentation de CA de 2016 dit l'inverse). Se fier au numéro, jamais à la couleur.
battles_tables: copier une ligne du jeu, Paste as New Row, changer d'abord la clé ; fichier de table jamais nommédata__.specification=terrain/;battles/ <carte>/ battle_environment= un.environment_groupdeweather/; image debattle/ screenshot_pathau format 3:1 ; textebattles_localised_name_<key>.- Journaux de Terry :
working_data/; autosauvegardes dansTerry/ local/ terry_error_log.txt working_data/(toutes les 15 minutes sur notre installation, réglage dansTerry/ local/ autosave/ settings.xml). - Campagne : projet à créer dans
raw_data/; pour Terry, une tile map (terrain/ campaigns/ <carte>/ QTU::ProjectTileMap) sur la base de tuilescampaign(.terryversion 27, un File Layer par région, nommé comme sa clé ; d'autres File Layers sont permis). La recetterules.bobest dans le dossier parent,raw_data/; celui du dossier de la carte ne fait que recopier (terrain/ campaigns/ rules.bob [Copy]).world_width= chez nous lemaxxde la zone jouable de campagne ; le jeu ne lit pas lewater_plane_materialdu.terry(matériau de la mer :terrain_textures_campaign.assetdb). - Rasters : 8 px par hex (+ 4 lignes),
HeightShroud4 (+ 2), arbres, corruption, neige ettile_map.png2 (+ 1).PatchVisibilityMask: une case par parcelle de p pixels de la carte de tuiles, p = plafond(plus grand côté / 128), soit (largeur // p) × (hauteur // p) cases. - Mer déclarée dans
tile_map.png(sea, 83, 141, 213), fond sous 0 en mer (sans effet sous la terre), surface en Polygon Mesh au matériau d'eau à 0, chaque plan tracé entier puis découpé.tile_map.pngvient de l'export CAIME, sans retouche manuelle (nord en haut depuis CAIME 1.1.0 ; jusqu'à la 1.0.1, la retourner verticalement, et seulement cela) : côtes et transitions, routes en blocs de 2 × 2 pixels, rivières engeneric, embouchures marquées Beach et River. CAIME pose deuxcliff_gen_endsautour de chaque plage (CA : 36 pour 412 plages) ; un bout lié à la plage laisse un trou côté falaise. Pas de côte sur la rangée 0, la dernière rangée ou la dernière colonne, ni d'isthme d'un hex entre deux falaises. Côte lisse : pour une côte sans tuile de côte (generic), berge en pente d'environ une unité, ni marche d'un pixel ni falaise sur le trait de côte (ChaosRobie et notre chantier) ; avec les tuiles de côte de CAIME, relief continu et lisse sous la mer, trait de côte dans les tuiles et le fond seulement, aucun chenal creusé dans le relief (comme CA). - Objets : montagnes et falaises en objets aux matériaux de CA (68, 86 ou 97) ; le matériau 49 des tuiles est la cause désignée de notre plantage de rendu (9.0.2, piste, pas une preuve). Arbres : palette de
CampaignTree=campaign_tree_ids, identifiants dedb.packseulement ; aucun arbre au-delà de z =world_width× 2/√3. Sol : un groupe neuf se déclare dans un catalogue.assetdbà vous. Sens :full_height_map.ddsdu sud au nord,lf_normal.ddsetcamera_heightmap.pngdu nord au sud. - Ordre des passages de campagne : le relief, le mettre dans le pack (BOB monte les packs de
dataet deworking_data), fermer et rouvrir BOB ; la tile map, dans le pack, fermer et rouvrir BOB ; la global tile map ;global_props.bin, à refaire à chaque région ajoutée ou retirée (il lit lemap.hex). Le tutoriel dit restart : on ferme BOB et on le rouvre, on ne « relance » pas un passage. - Un passage complet qui aboutit sur un terrain de campagne compte 12 actions (15 si Generate Camera Height Map est demandée, et elle fait planter BOB). Pour une carte que la base du jeu (celle des packs de CA) ne connaît pas, BOB n'en lance que 6, sans message ; l'ajouter à la base du kit ou à un pack de mod n'y change rien (constat du 21.09.2026 : BOB cherche le nom du dossier de terrain dans
campaign_map_playable_areasdedb.pack; une carte de CA modifiée sous son nom devrait obtenir toutes ses actions, non essayé). Aucune voie officielle connue : un témoin, puis la communauté ; notre voie, hors des voies officielles, est BOB sous débogueur (le guide BOB). Ne promettez jamais 12 actions pour une carte neuve par les voies officielles. - Avant de lancer BOB depuis sa fenêtre, ou d'enregistrer un pack dans
working_data, fermer Terry et le jeu ; Tweak et Terry fermés pendant les exports Map Data et Dynamic Resources de CAIME. Lirebinaries/etbob.log binaries/. Juger en jeu, pas dans l'aperçu.bob_warnings.log - Détails : BOB, RPFM, CAIME, les outils du moddeur, modder avec une IA.
Sources et liens§
- Wiki de Creative Assembly, pages écrites pour le kit du premier Total War: WARHAMMER (certains libellés ont changé depuis) : Terry, introduction, sommaire de Terry, interface, raccourcis, prise en main rapide, dont zones, se déplacer, peindre et enregistrer, et Rules.bob.
- Wiki tw-modding : Map Making for WH3 (WakaWaka300), Campaign Map Making for Warhammer III, Custom Campaign Settlement Skins (partie Warhammer III, ChaosRobie), RPFM For Dummies, et, pour Warhammer II, Land Battle Maps et Custom Vistas.
- Les fichiers de l'Assembly Kit de Warhammer III, relus en lecture seule : les réglages, les outils et les raccourcis de Terry (
settings.xml,tool_state.xml,keyboard.xml,status_tooltips.xml,entity_configuration.xml), lesrules.bobdu kit, la carte d'exemple, la tablebattles(battles.xml, au patch 9.0). - Le projet Terry de campagne d'Immortal Empires Expanded, partagé par ChaosRobie, et notre propre chantier.
- Nos autres guides : BOB, RPFM, CAIME, les outils du moddeur, modder avec une IA ; et l'atelier des moddeurs.
Questions fréquentes
Terry peut-il éditer une carte de campagne ?
Oui : un projet de campagne est, pour Terry, une tile map sur la base de tuiles campaign. Mais le kit public n'en livre aucun, ni aucune donnée de terrain de campagne : il faut en reconstituer un, sur le modèle de celui que ChaosRobie a partagé pour Immortal Empires Expanded.
Comment ouvrir Terry ?
Par le lanceur de l'Assembly Kit dans Steam (Play Battle Map Editor: Terry, qui lance la commande ci-après), par Tweak (Plugins → Terry), ou par la commande tweak.modder.x64.exe /, depuis le dossier binaries du kit. N'essayez pas d'autres options.
Peut-on piloter Terry en ligne de commande ?
Non : on peut seulement l'ouvrir. Tout le reste se fait dans sa fenêtre, au clavier et à la souris ; BOB se lance depuis Terry par File → Process with BOB.
Alliance ID 0 ou 1 : qui attaque ?
0 est l'attaquant, 1 le défenseur. Dans Terry de Warhammer III, 0 s'affiche en bleu et 1 en rouge sombre ; la documentation de CA de 2016 donnait l'inverse. Fiez-vous au numéro, jamais à la couleur.
Pourquoi ma carte n'apparaît-elle pas en bataille personnalisée ?
Vérifiez que le pack est dans le dossier data du jeu et activé dans le lanceur, qu'il contient les fichiers compilés de la tile map et de la tuile, que la specification de battles_tables désigne le dossier de la tile map (terrain/ avec la barre finale, comme le tutoriel ; si vous avez copié une ligne de CA, gardez sa forme), et que le texte battles_localised_name_<key> et l'image existent.
Pourquoi Terry ne montre-t-il pas ma carte comme le jeu ?
Son aperçu n'est pas le jeu : toutes les variantes de culture à la fois, des sphères blanches à la place des décalques, pas les textures propres à la carte, une eau rendue autrement. Les forêts de la carte des arbres ne s'affichent que si l'option show_campaign_tree_map est active dans les Settings, et seulement pour les familles d'arbres que la base du kit connaît. La fidélité se juge en jeu.
Pourquoi BOB ne compile-t-il qu'une partie du terrain de ma carte de campagne neuve ?
Un passage complet qui aboutit sur un terrain de campagne compte 12 actions. Pour une carte que la base du jeu (celle des packs de CA) ne connaît pas, BOB n'en lance que 6, sans message : les objets posés et cinq masques. D'après notre enquête du 21.09.2026 (kit 8.1), BOB cherche le nom du dossier de terrain dans la table campaign_map_playable_areas de db.pack ; l'ajouter à la base du kit ou à un pack de mod n'y change rien. Nous ne connaissons pas de voie officielle pour lever cette limite : faites un témoin, puis demandez à la communauté. Nos cartes neuves ont eu leurs 12 actions par BOB lancé sous débogueur, une méthode à nous, hors des voies officielles (le guide BOB la décrit).
Terry plante à l'ouverture de mon projet de campagne : que faire ?
Tant qu'aucun terrain compilé n'existe pour cette carte, Terry plante en l'ouvrant en 3D : décochez 3D View dans la boîte d'ouverture (Open…).
Faut-il fermer Terry avant de lancer BOB ?
Avant de lancer BOB depuis sa fenêtre, ou d'enregistrer un pack dans working_data, fermez Terry et le jeu : Terry ouvert verrouille working_data. Process with BOB, lancé depuis Terry, n'est pas concerné.
Terry a planté : où regarder ?
Dans le dossier working_data/ du kit : terry_error_log.txt, où Terry note ses erreurs, et le dossier autosave, où il range ses autosauvegardes (toutes les 15 minutes sur notre installation ; le délai se règle dans les Settings). Enregistrez souvent : CA prévient que Terry plante parfois.
Ma tuile n'apparaît pas dans la tile map : que vérifier ?
La ligne de explicit_tiles : x,y en pixels de tile_map.png, x depuis la gauche, y depuis le haut, au coin haut-gauche du carré noir de la vista ; un chemin qui part de terrain/, en barres obliques, jusqu'au dossier de la tuile ; le 0 final. Puis lancez Process with BOB sur la tile map et rechargez-la dans Terry, comme le demande le tutoriel. Lisez enfin bob_warnings.log, dans le dossier binaries du kit.
Les armées se déploient au mauvais endroit : pourquoi ?
Vérifiez l'Alliance ID des deux zones de déploiement : 0 pour l'attaquant, 1 pour le défenseur, quelle que soit leur couleur. Chaque zone a sa Deployment Zone Region additive, Zone ID à 0. Puis refaites le passage de BOB sur la tuile et remettez ses fichiers dans le pack.
Où trouver une vista ?
Le kit de Warhammer III n'en livre pas. Le tutoriel de tw-modding pour Warhammer III en fournit, tirées de Warhammer II ; la page Custom Vistas du même wiki, écrite pour Warhammer II, explique comment en faire une à partir de celles du kit de Warhammer II (raw_data/). D'une vista, vous reprenez tile_map.png et climate_map.png, que vous posez dans le dossier de votre tile map.
Ce guide en texte brut (Markdown), pour les IA et la lecture hors ligne
Ce guide est communautaire
Une erreur, un piège vécu, une astuce ou un outil plus récent : dites-le, et chaque correction sera vérifiée, puis ajoutée avec sa source.