# 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.

Page : https://bretonia.dev/atelier/terry/ · Atlas de Bretonnie, atelier des moddeurs · mis à jour le 2026-09-25. Version en texte brut, pour les lecteurs et les IA ; les schémas y sont décrits en mots. Relu le 25 septembre 2026, mise à jour 9.0. Écrit contre ses sources, l'Assembly Kit au patch 8.1, le wiki de CA et tw-modding ; ce que la 9.0 a changé sur notre chantier y est ajouté, le reste n'a pas été revérifié point par point.

## 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**.

> **Ce qu'en dit Creative Assembly** : CA présente Terry comme « the primary tool for developing campaign maps and battlefields » : l'outil principal des cartes de campagne comme des champs de bataille. Mais pour le kit public, CA prévient qu'il ne prend en charge que la création de **tuiles de bataille**. En clair : pour la bataille, le kit a ce qu'il faut ; pour la campagne, ce que l'on sait vient de la communauté.

- **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/terrain/` ne contient que `battles/` et `tiles/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 :

1. **Terry** : Vous peignez la tuile (relief, textures, objets, zones logiques) et la posez dans une tile map. (`.terry`, `.layer`, `.tif`, `tile_map.png` dans `raw_data`)
2. **BOB** : Il compile la tile map, puis la tuile, en fichiers du jeu. (`working_data/terrain/…`)
3. **RPFM** : Le pack : les fichiers compilés, une ligne de `battles_tables`, un texte, une image. (`ma_carte.pack`)
4. **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.

> **Avant de commencer** : Il vous faut l'**Assembly Kit** de Warhammer III (Steam → Bibliothèque → Outils), installé sur le même disque que le jeu, comme le demande RPFM ; **RPFM** ; une *vista*, c'est-à-dire une tile map toute faite qui servira de décor (le tutoriel de tw-modding en fournit, tirées de Warhammer II) ; un **logiciel de dessin** qui affiche la position du pointeur en pixels (le tutoriel cite GIMP).

## Les mots de Terry

Quelques mots reviennent partout. Voici le sens que leur donne ce guide.

*Schéma : Des mots emboîtés.*

Dans le schéma : Des mots emboîtés · une carte de bataille, de l'extérieur vers l'intérieur · Tile map · le décor tout autour de la tuile, emprunté à une vista (une tile map toute faite) : on en reprend tile_map.png et climate_map.png · Tuile · `.terry` · le terrain où l'on se bat, que vous peignez · Rasters · `.tif` · des images dont chaque pixel porte une valeur : relief, mélange des textures… · Calques · `.layer` · des groupes d'entités : un File Layer est un fichier .layer ; un Logical Layer, un simple rangement · Entités · objets, prefabs (des assemblages prêts à poser) et entités logiques : zones de déploiement, zone jouable, points de capture…

Les mots de Terry s'emboîtent : la tile map, le décor emprunté à une vista, entoure la tuile ; la tuile, c'est un projet .terry, ses rasters (des images .tif) et ses calques ; un calque porte des entités.

| 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](https://bretonia.dev/atelier/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/tweak.modder.x64.exe`, dans le dossier du kit, puis le menu **Plugins → Terry**. (D'après la même page.)
- **En ligne de commande** : Depuis le dossier `binaries` du 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.

> **Jamais d'options devinées** : N'essayez pas d'autres options que celle-ci. « Illegal option format » a été constaté sur BOB (`-h`, `--help`) : une boîte qui bloque le programme, et un script qui l'attend reste suspendu. Ne l'essayez pas non plus sur Terry ni sur Tweak.

### 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` (fichier `working_data/Terry/entity_configuration.xml`). Les deux autres icônes correspondent donc sans doute à la tuile et à la tile map (non vérifié à 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.

*Schéma : La fenêtre de Terry et ses neuf zones.*

1. **Menus et barres d'outils** : File, View, Tools ; les barres s'ouvrent par View → Toolbars.
2. **La barre Basic** : outils 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).
3. **Scene Hierarchy** : les entités, rangées en calques ; un double-clic rend un calque actif (en rouge).
4. **Entity Properties** : les propriétés de la sélection, modifiables pour plusieurs objets à la fois.
5. **Project Errors** : ce qui empêcherait la carte de marcher en jeu.
6. **Le viewport** : la 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).
7. **Tool Properties** : les réglages de l'outil actif : brosse, ou choix d'un prefab.
8. **Map Properties et Settings** : les réglages du projet ; ceux de Terry lui-même (autosauvegarde, BOB, caméra).
9. **Les messages de BOB** : en bas à droite, pendant un passage : des fenêtres surgissantes, selon tw-modding.

La fenêtre de Terry, dans une disposition courante (schéma) : les panneaux se détachent et s'ancrent, la vôtre peut différer.

| 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** (*Export Map* dans le premier Warhammer). 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 `.tif` par 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*), où l'on peut donner des ordres de mouvement, qui fixe aussi d'où les unités fuient et arrivent en renfort, et les bords de la minicarte (CA ; selon sa page d'introduction, ses bords bornent aussi la caméra). 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 du kit de Warhammer III (`working_data/Terry/local/keyboard.xml`) ; ceux de la souris, dans les pages de CA et les bulles d'aide du kit (`working_data/Terry/status_tooltips.xml`). Ctrl+S et Ctrl+Maj+S manquent : le fichier liste « enregistrer sous » sans touche, et « enregistrer » pas du tout.

> **Clavier AZERTY** : Le fichier nomme les touches par leur lettre, sur le modèle d'un clavier QWERTY (W, A, S, D pour la caméra). Nous ne savons pas si Terry lit la lettre ou la position de la touche : sur un clavier AZERTY, essayez les deux (Z, Q, S, D occupent les places de W, A, S, D).

*Schéma : Aide-mémoire clavier et souris.*

Dans le schéma : Aide-mémoire : clavier et souris · le clavier d'après keyboard.xml et CA ; la souris d'après CA · Caméra · W · A · S · D · se déplacer · Maj : plus vite · Q · E · pivoter · C · monter · descendre · R · vue du ciel, au centre · Z · zoom sur la sélection · Lettres d'un clavier QWERTY. Sur AZERTY, essayez les deux : W A S D, puis Z Q S D. · Outils et vue · sélection · déplacement · rotation · échelle · Tab · éditer l'entité · aligner le terrain sous la sélection · Maj · + · le monter · Alt · + · l'abaisser · G · vue monde / d'édition · H · relief en couleurs · Brosse · [ · ] · taille · O · P · opacité − / + · N · M · autre valeur − / + · , · . · palette ← / → · Souris · clic gauche : sélectionner, peindre · clic droit ou Échap : sortir de l'outil (en sélection : menu) · molette : zoom · milieu · glisser : déplacer · Alt · + milieu : pivoter · Maj · + milieu : monter, descendre · Ctrl · + · P · Process with BOB · (ou le globe) · Ctrl · + · S · non confirmé dans Warhammer III · enregistrez par File → Save · Aussi dans le fichier ; sens à vérifier · Maj · + · C · changer de caméra · L · repère local ou monde · Maj · + · T · coller et orienter au terrain · Maj · + · outil de pose

Les touches de Terry que le kit de Warhammer III déclare, et la souris selon CA. Les lettres sont celles d'un clavier QWERTY : voir l'encadré « Clavier AZERTY ». Ctrl+S n'y figure pas : enregistrez par le menu File.

| 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) |

> **Ctrl+S : non confirmé dans Warhammer III** : La documentation de CA donne Ctrl+S (ou **File → Save**) pour enregistrer et Ctrl+Maj+S pour enregistrer sous. Dans le fichier des raccourcis du kit de Warhammer III, « enregistrer sous » (`SaveProjectAs`) figure sans touche, et « enregistrer » n'y figure pas ; nous ne les avons pas confirmés. Tant que vous ne les avez pas essayés chez vous, enregistrez par le menu **File**.

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**.

*Schéma : Les quatre modes de peinture.*

Dans le schéma : Les quatre modes de peinture · Height · `Terrain Height Painting` · peint le relief · `<projet>.height.<id>.tif` · `Add · Subtract · Absolute · Smooth · Erase` · Texture · `Terrain Texture Painting` · peint les textures, un canal chacune (grass01, mud01…) · `<projet>.blend.<id>.tif` · `Normal · Smooth · Erase · Replace` · flow bas : les textures se fondent · Forest · `Terrain Forest Painting` · peint la texture de forêt : des arbres au-dessus de 60 % · `<projet>.blend.<id>.tif` · canal forest01 (tuile d'exemple du kit) ; déduit : le kit n'a pas de raster de forêt. · un mode de texture « hybride », pour les forêts (CA) · `60 %` · Other · `Terrain Painting (Other)` · remplace le type de sol logique calculé · `raster GroundType` · nom du fichier à vérifier · `Set · Clear` · même texture, deux types de sol · A · B · Les gestes de la brosse · clic gauche · peindre · clic droit · Échap · sortir · Maj · lisser · [ · ] · taille · O · P · opacité · Ctrl · + · Alt · + souris : taille, rotation · Alt · + clic : prélever (textures)

Les quatre modes de peinture de la barre Basic : ce que chacun peint, le fichier qu'il écrit et ses opérations (tool_state.xml du kit), puis les gestes de la brosse.

### 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.

### 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. Un projet de campagne a la sienne : `CampaignSettlement`.

*Schéma : Le champ de bataille vu du ciel.*

- A. **Tile map** : le décor tout autour, emprunté à une vista ; dessiné jusqu'à 8 km du centre (CA).
- B. **Votre tuile 8 × 8** : le terrain où l'on se bat, que vous peignez, au centre de la tile map.
- C. **Usable Area** : le 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).
- D. **Playable Area** : la 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.
- E. **Deployment Zones** : Alliance 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).
- F. **Points de capture** : pour une carte de domination : type domination 1, 2, 3 ; importance score ; de 80 × 80 à 180 × 180 (tutoriel).
- G. **Lignes de renfort** : AI Hint attacker ou defender teleport reinforcement line : une ligne courte de deux points ; une vingtaine d'unités de long suffit (tutoriel).
- H. **Procedural Exclusion Zone** : posé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).
- I. **No-Go** : un polygone fermé qui marque une zone infranchissable (CA).
- J. **Defensive Hill** : un AI Hint qui montre à l'IA une position défensive : un polygone fermé ; ouvert, plantage probable (CA).

Une carte de bataille vue du ciel : votre tuile au centre d'une tile map empruntée à une vista, et ce que l'on pose dessus (entités logiques, zone d'exclusion), repéré par des lettres.

### 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/Terry/local/autosave/` et note ses erreurs dans `working_data/Terry/local/terry_error_log.txt`, dans le dossier du kit.

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.

*Schéma : Les fichiers d'une carte de bataille.*

Dans le schéma : raw_data · ce que vous faites · La tile map · `terrain/battles/<carte>/<carte>.terry · tile_map.png` · `climate_map.png · explicit_tiles` · créée une fois, après la tuile : Tools → Create battle for tile… · La tuile · `terrain/tiles/battle/<jeu de tuiles>/<carte>/<carte>.terry · .layer` · `<carte>.height.<id>.tif` · `<carte>.blend.<id>.tif` · ce que vous peignez : relief, textures, objets, zones · `explicit_tiles : x,y` · = la place de la tuile · BOB : 1. la tile map puis 2. la tuile · working_data · ce que le jeu lit · Les sorties · `terrain/battles/<carte>/ : tile_map.bmd,` · `tile_list.bin, map_info.xml…` · `terrain/tiles/battle/… :` · `tile_height_map.compressed_map, blend0.dds…` · RPFM : la déclarer · `battles_tables : key · type · specification` · `= terrain/battles/<carte>/battle_environment · screenshot_path` · `(image 3:1)` · `battles_localised_name_<key>` · puis : le pack installé, sans la carte d'exemple du kit, coché au lanceur, en bataille personnalisée

Une carte de bataille : la tile map (le décor, créé une fois) place la tuile (ce que vous peignez) ; BOB compile la tile map puis la tuile ; RPFM la déclare dans battles_tables.

*Schéma : Une carte de bataille, geste par geste.*

Dans le schéma : Une carte de bataille, geste par geste · enregistrez souvent, par le menu File : Terry plante parfois (CA) · Terry : la tuile, puis la tile map · l'étiquette grise : le projet ouvert dans Terry · Créer la tuile · la tuile · Project Wizard → New : une tuile de bataille · L'enregistrer aussitôt · la tuile · File → Save As… : nom de la carte et jeu de tuiles en minuscules, taille 8x8, climat · `<carte>.terry` · `.layer` · `.tif` · La peindre · la tuile · relief, textures, forêts, puis les objets · Poser la logique · la tuile · Tools → Entity Creation (Logical) : une Playable Area, deux Deployment Zones · Alliance 0 · attaquant · Alliance 1 · défenseur · Le panneau Project Errors ne signale rien. · Créer la tile map : une fois suffit · la tuile · Tools → Create battle for tile… · `tile_map.png` · `climate_map.png` · `explicit_tiles` · Y poser votre tuile · hors de Terry · tile_map.png et climate_map.png : ceux d'une vista ; explicit_tiles : changez x,y (coin du carré noir) · BOB : la tile map, puis la tuile · après chaque passage, bob.log se termine par Exit code: 0 · Un passage sur la tile map · la tile map · l'ouvrir, Process with BOB (Ctrl+P), puis la recharger · Votre tuile est à sa place. · Un passage sur la tuile · la tuile · la rouvrir ; dans Map Properties, décocher la génération de végétation legacy ; Ctrl+P · RPFM, puis le jeu · La déclarer avec RPFM · le pack, une ligne de battles_tables, le nom, l'image · La tester · en bataille personnalisée, le pack activé dans le lanceur

Les dix gestes d'une première carte de bataille, dans l'ordre : dans Terry, la tuile puis la tile map ; deux passages de BOB, la tile map d'abord ; RPFM déclare la carte, et l'on teste en bataille personnalisée.

1. **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.
2. **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 dans `raw_data/terrain/tiles/battle/<jeu de tuiles>/<carte>/`. Le bouton *Show in Explorer* ouvre le dossier : un `.terry`, au moins un `.layer`, des `.tif`.
3. **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.
4. **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.
5. **Créez la tile map** par **Tools → Create battle for tile…** : Terry crée son projet dans `raw_data/terrain/battles/<carte>/`. Une fois suffit, dit le tutoriel ; ensuite, vous travaillez dans les fichiers qu'elle a créés. *Vérifiez* : le dossier contient un `.terry`, `tile_map.png`, `climate_map.png` et `explicit_tiles`.
6. **Posez votre tuile dans la tile map.** Dans ce dossier, remplacez `tile_map.png` et `climate_map.png` par ceux d'une *vista* existante, une tile map déjà faite qui servira de décor. Puis, dans `explicit_tiles`, changez les deux premiers nombres de la ligne `x,y,chemin de la tuile,0` (voir juste après la liste) : x,y est le coin haut-gauche de votre tuile dans `tile_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.
7. **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.
8. **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.
9. **Déclarez la carte au jeu avec RPFM** : voir la section suivante.
10. **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,0
```

Changez 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.

*Schéma : Poser la tuile dans la tile map.*

Dans le schéma : Poser la tuile dans la tile map · `tile_map.png d'une vista · 64 × 64 pixels` · x → · y ↓ · carré noir 8 × 8 : la place de votre tuile · `explicit_tiles` · `28 , 28 , terrain/tiles/battle/<jeu de tuiles>/<carte> , 0` · x = la colonne, comptée depuis la gauche. · y = la ligne, comptée depuis le haut. · le chemin de votre tuile : vérifiez-le (depuis terrain/, en barres obliques). · le 0 final du tutoriel : gardez-le. · Lire x,y · ouvrez l'image dans un logiciel de dessin et pointez le coin haut-gauche du carré noir · La carte d'exemple du kit · elle peint sa tuile de la couleur de la tuile, (0, 255, 127), au même endroit, sans explicit_tiles. · un passage de BOB sur la tile map, puis rechargez-la : votre tuile est au centre · à éviter : un chemin qui part de raw_data/, des barres inversées

Dans la tile map d'une vista, votre tuile prend la place du carré noir : explicit_tiles donne son coin haut-gauche en pixels, puis son chemin. Une tuile 8 × 8 au centre d'une tile map de 64 × 64 se pose en 28,28.

La carte d'exemple du kit, elle, pose sa tuile autrement : sa tuile (`raw_data/terrain/tiles/battle/test_tiles/assembly_kit_example_tile/`) 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`.

> **Comment vérifier que ça a marché** : Après chaque passage de BOB : son message s'affiche en bas à droite de Terry ; `bob.log`, dans le dossier `binaries` du kit, annonce en première ligne le nombre d'actions choisies (`N action(s) were selected for execution.`) et se termine par `Exit code: 0` ; et les sorties sont là, sous `working_data`, au même chemin que leur source. Pour la tile map : `tile_map.bmd`, `tile_list.bin`, `lf_normal.dds`, `full_lf_logic_map.compressed_map` et `map_info.xml`. Pour la tuile : `tile_height_map.compressed_map`, `blend0.dds`, `bmd_data.bin` et les listes d'herbe et d'arbres. Lisez aussi `bob_warnings.log`, au même endroit : les journaux de BOB ne gardent que le dernier passage.

## 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](https://bretonia.dev/atelier/rpfm/).

*Schéma : Déclarer la carte : une ligne, quatre renvois.*

Dans le schéma : Une ligne, quatre renvois · battles_tables : une ligne classic copiée, la clé changée d'abord · `battles_tables` · fichier jamais nommé data__ · `key` · `monprefixe_ma_carte` · une clé à vous · `type · classic` · `specification` · `terrain/battles/ma_carte/` · barre finale comprise · `screenshot_path` · `ui/frontend ui/battle_map_images/ma_carte.png` · l'espace est voulu · `team_size_1 · 1` · `team_size_2 · 1` · `singleplayer · 1` · `multiplayer · 1` · `battle_environment` · `weather/battle/wh_day_clear_04.environment_group` · Le nom (.loc) · `battles_localised_name_<key>` · ce que voit le joueur · La tile map · produite par BOB, dans votre pack · L'image, 3:1 · dans le pack · L'ambiance · à ne pas confondre avec battle_environment_audio · la taille des deux camps, et où la carte est proposée · Puis, du pack au jeu · Le pack · sans la carte d'exemple du kit · PackFile → Install · puis activé au lanceur · Bataille personnalisée · la carte, avec son nom et son image

Une ligne de battles_tables déclare la carte : sa clé donne le nom (en .loc), specification désigne la tile map, screenshot_path l'image, battle_environment l'ambiance. Puis le pack, sans la carte d'exemple du kit, s'installe, et la carte s'essaie en bataille personnalisée.

1. **Créez un pack** et ajoutez-y le dossier `working_data/terrain`, comme le tutoriel, puis retirez-en tout ce qui n'est pas à vous : la carte d'exemple du kit (`assembly_kit_example_tile_map`, `assembly_kit_example_tile`, `_tile_database/TILES/test_tiles_assembly_kit_example_tile.*`) 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ée `_tile_database/TILES/<jeu de tuiles>_<carte>.*`.
2. **Ajoutez une ligne** à `battles_tables` : clic droit sur le pack → **Create… → Create DB** → `battles_tables`, un fichier à votre nom (jamais `data__`, qui remplacerait la table du jeu) ; copiez une ligne `classic` du jeu, **Paste as New Row**, et changez **d'abord** la clé ([le guide RPFM](https://bretonia.dev/atelier/rpfm/)). Vous gardez ainsi toutes les colonnes ; remplissez-les d'après le tableau ci-dessous.
3. **Ajoutez le texte** `battles_localised_name_<key>` : c'est le nom que le joueur verra.
4. **Ajoutez l'image** au chemin que donne `screenshot_path` : trois fois plus large que haute (tutoriel). L'espace de `frontend ui` est voulu.
5. **Enregistrez le pack**, puis **PackFile → Install** dans RPFM, qui le copie dans le dossier `data` du 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.
6. **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\battles\<carte>\` : si vous copiez une ligne de CA, gardez sa forme | `terrain/battles/ma_carte/` |
| `screenshot_path` | l'image de la carte ; elle doit être dans le pack | `ui/frontend ui/battle_map_images/ma_carte.png` |
| `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/battle/` (CA la laisse vide sur 715 de ses 1 216 lignes) ; à ne pas confondre avec `battle_environment_audio`, juste à côté | `weather/battle/wh_day_clear_04.environment_group` |
| `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 (259 lignes de CA la laissent vide) |

> **Comment vérifier que ça a marché** : Dans RPFM, le pack contient `terrain/battles/<carte>/`, le dossier de la tuile sous `terrain/tiles/battle/` et son entrée dans `terrain/tiles/battle/_tile_database/TILES/`, la table, le texte et l'image, et rien de la carte d'exemple. En jeu, la carte figure dans la liste de la bataille personnalisée, avec son nom et son image, et la bataille s'ouvre sur votre terrain, chaque armée dans sa zone de déploiement.

## Le terrain d'une carte de campagne : ce qu'on sait

> **Niveau avancé** : Pour une carte de bataille, vous avez fini. La suite est pour qui veut toucher au terrain d'une carte de campagne. En cinq lignes : le kit ne livre aucun projet de campagne (on part de celui de ChaosRobie) ; les rasters se dimensionnent sur le nombre d'hex ; mer, côtes et routes se déclarent dans `tile_map.png` ; les passages de BOB suivent un ordre précis ; une carte que la base du jeu ne connaît pas s'arrête à 6 actions sur 15.

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 type campagne**. 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/terrain/campaigns/<carte>/` | absent des kits : c'est lui qu'il faut créer |
| `<carte>.terry` | le projet, en XML (version 27) : les réglages de la carte, **une entité par région**, nommée comme sa clé dans la base, et dix couches de terrain |
| `<carte>.terry.user` | les réglages d'aperçu : sans lui, Terry ne montre ni eau ni arbres |
| `rules.bob`, deux fichiers | la recette de BOB est dans le dossier parent, `raw_data/terrain/campaigns/rules.bob` : `[Terrain]` avec `PrefabRoot = art\prefabs\campaign` (valeur du projet de ChaosRobie ; `battle` pour une bataille), `TileDatabase = terrain\tiles\campaign\_tile_database`, `HeightPatch = true`… ; celui du dossier de la carte ne contient que `[Copy]` et `[+AssetGraph]`, qui recopient le projet brut dans le dossier `retail` du kit à chaque passage. Qui ne recrée que le dossier de la carte perd la recette. |
| `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, brouillard, arbres, corruption, neige, visibilité des parcelles |
| un `.layer` par région | les objets posés : décors, montagnes, eau |

*Schéma : Le projet de campagne, dossier par dossier.*

Dans le schéma : Le projet de campagne, dossier par dossier · d'après le projet partagé par ChaosRobie · `raw_data/terrain/campaigns/` · absent du kit : à créer · `rules.bob` · la recette de BOB, dans le dossier parent · `[Terrain]` · `PrefabRoot = art\prefabs\campaign` · `TileDatabase = terrain\tiles\campaign\_tile_database` · `HeightPatch = true` · `…` · `<carte>/` · le dossier de la carte, à créer aussi · `<carte>.terry` · le projet, en XML (version 27) : dix couches de terrain, une entité par région, nommée comme sa clé dans la base · `<carte>.terry.user` · les réglages d'aperçu : sans lui, ni eau ni arbres · `tile_map.png` · une couleur par type : terre, mer, côte, falaise, route · `*.tif` · dix rasters : relief, fond marin, mélange des textures, couleurs, brouillard, arbres, corruption, neige, visibilité des parcelles · `*.layer` · un par région : les objets posés, décors, montagnes, eau · `rules.bob` · `[Copy]` · `[+AssetGraph]` · ne fait que recopier le projet brut dans le dossier retail du kit, à chaque passage · Qui ne recrée que <carte>/ perd la recette. · Une région de plus : une entité dans le .terry, et un .layer de plus.

Le kit ne livre aucun projet de campagne : on le reconstitue sur le modèle de celui de ChaosRobie. La recette de BOB est dans le rules.bob du dossier parent ; celui du dossier de la carte ne fait que recopier le projet.

Retenez que le projet est **lié à la liste des régions** de la carte : une région de plus, c'est une entité et un calque de plus. 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](https://bretonia.dev/atelier/caime/).

### 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).

*Schéma : Un hex, quatre résolutions.*

Dans le schéma : Un hex, quatre résolutions · 8 × 8 pixels · + 4 lignes en tout · `Height` · `HeightSea` · `BlendCampaign` · `ColorOverlay` · `ColorOverlaySea` · 4 × 4 pixels · + 2 lignes en tout · `HeightShroud` · 2 × 2 pixels · + 1 ligne en tout · `CampaignTree` · `CorruptionMask` · `SnowMask` · `tile_map.png` · `PatchVisibilityMask` · une case par parcelle de p × p pixels de tile_map.png : p = plafond(plus grand côté / 128) · ici p = 7 : une parcelle ≈ 3,5 hex · Notre carte : 400 × 440 hex · 8 px par hex, + 4 lignes · `3200 × 3524` · 4 px par hex, + 2 lignes · `1600 × 1762` · 2 px par hex, + 1 ligne · `800 × 881` · p = plafond(881 / 128) = 7 · `114 × 125` · 800 / 7 → 114 ; 881 / 7 → 125 : les parcelles entières · Grille trop petite : le sol dans un coin seulement ; ailleurs, les routes et le ciel au travers. · Relevé sur le projet de ChaosRobie, appliqué à notre carte.

Les rasters d'un projet Terry de campagne se dimensionnent sur le nombre d'hex : 8, 4 ou 2 pixels par hex, plus quelques lignes ; PatchVisibilityMask compte des parcelles. Vue schématique d'un hex.

> **Pourquoi PatchVisibilityMask compte** : Le sol n'est dessiné que sur les parcelles que couvre ce masque. Avec une grille trop petite, Terry ne dessine le sol que dans un coin de la carte ; ailleurs, on ne voit que les tuiles spéciales, comme les routes, et le ciel au travers. Cela nous est arrivé.

## Campagne : conventions, ordre de BOB et limites

### Les conventions

Elles ont été établies sur notre chantier et sur le projet de ChaosRobie ; 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.
- x pointe vers l'est, z vers le nord, et le monde est **l'espace des hex**. Terry étire les rasters de 2/√3 sur z : un point du monde (x, z) lit un raster à la ligne z × √3/2.
- **La mer se déclare dans `tile_map.png`** (tuile `sea`, couleur 83, 141, 213), pas par la hauteur. Le fond marin doit être sous 0 partout, même sous la terre, sinon l'eau ne se dessine pas.
- La surface de la mer est faite de **grands plans d'eau posés comme objets**, à la hauteur 0. Leur pivot doit être dans la carte, sinon BOB les écarte (« Failed to find valid quadtree node »).
- **La côte se peint en types de côte** : une bande d'un hex (`cliff_gen`, `sea_coast`) le long de toute la mer. Chaque hex de la bande doit avoir une seule série d'un à trois voisins de mer, sinon « Failed to find tile » et un trou dans le rivage. Peignez-la par hex entiers : tracée au pixel près, elle nous a valu 148 « Failed to find tile » ; par hex, aucun.
- **Les routes** : chaque hex de route est un bloc plein de 2 × 2 pixels de `tile_map.png` ; un tracé aminci laisse des trous.

*Schéma : Mer, côte, routes dans tile_map.png.*

Dans le schéma : Mer, côte, routes · `tile_map.png : 1 hex = 2 × 2 pixels` · La mer · `sea · 83, 141, 213` · en jaune : la côte (voir dessous) · plan d'eau à 0, pivot dans la carte fond sous 0 partout, même sous la terre · La côte · une bande d'un hex ; chacun, · 1 à 3 voisins de mer d'un seul tenant · une pointe d'un hex : « Failed to find tile », un trou · `sea_coast · 255, 255, 0` · `cliff_gen · 253, 3, 1` · rivage (sea_coast) ou falaise (cliff_gen) : même règle. · par hex entiers : 0 échec ; tracée au pixel : 148 (notre carte) · Les routes · un bloc plein de 2 × 2 pixels par hex · un trait d'un pixel : des trous · Après chaque passage de BOB, comptez les « Failed to find tile » de bob_warnings.log : objectif 0. · Établi sur notre chantier et le projet de ChaosRobie ; CA ne le documente pas.

Dans tile_map.png, chaque hex est un bloc de 2 × 2 pixels : la mer se déclare par sa couleur, la côte se peint en une bande d'un hex, les routes en blocs pleins. Tout écart donne des « Failed to find tile », donc des trous.

- **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](https://bretonia.dev/atelier/caime/) fait exporter `tile_map.png` par CAIME (**Tools → Export → Baseline Tilemap**) pour le projet Terry. Réserve : nous ne l'avons pas essayé (chez nous, `tile_map.png` est écrit par script) ; la documentation de CAIME se contredit sur ce que l'image contient ; et si elle porte des rivières, elles demanderont des tuiles de rivière, que Warhammer III n'a presque plus. Comptez les « Failed to find tile » après le premier passage.
- **Ce qui manque au kit** (la base des tuiles de campagne `terrain/tiles/campaign/_tile_database`, avec la légende des couleurs de `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 ; le détail, qui fait foi, est dans [le guide BOB](https://bretonia.dev/atelier/bob/) :

1. **Le relief** d'abord : les étapes suivantes en dépendent et le lisent dans votre pack. Mettez-le dans votre pack, dans `data` du jeu, puis fermez et rouvrez BOB.
2. **La tile map** : de nouveau dans le pack, puis fermez et rouvrez BOB.
3. **La global tile map** (routes et falaises).
4. **`global_props.bin`**, les objets posés : à refaire chaque fois qu'une région est ajoutée ou retirée (BOB lit alors le `map.hex` de CAIME) ; jusqu'à dix minutes sur une grande carte, selon le tutoriel.

*Schéma : Campagne : l'ordre des passages.*

Dans le schéma : Campagne : l'ordre des passages · pour une carte que la base du jeu connaît · Carte inconnue de la base du jeu (celle des packs de CA) : BOB ne lance que 6 actions sur 15, sans message. Un témoin, puis la communauté. · Le relief · les étapes suivantes le lisent dans votre pack · `full_height_map.dds` · `full_logic_map.compressed_map` · Le relief dans votre pack, le pack dans le dossier data du jeu, puis fermer et rouvrir BOB · La tile map · `tile_list.bin` · `tile_mask.dds` · `patch_mask.dds` · La tile map dans votre pack, puis fermer et rouvrir BOB · La global tile map · routes et falaises, tirées de la tile map de votre pack · `global_map/tile_list.bin` · Les objets posés · BOB lit le map.hex de CAIME, à jour avec la base ; à refaire à chaque région ajoutée ou retirée ; jusqu'à dix minutes, selon le tutoriel · `global_props.bin` · Generate Camera Height Map : cette action fait planter BOB ; camera_heightmap.png se fabrique à part (le tutoriel : une approximation tirée du relief, mise à l'échelle).

L'ordre du tutoriel de carte de campagne de tw-modding. BOB lit les packs du dossier data du jeu : après le relief, puis après la tile map, le pack y va, puis l'on ferme et rouvre BOB ; depuis Terry, chaque Process with BOB démarre un nouveau BOB.

Depuis Terry, chaque *Process with BOB* démarre un nouveau BOB. Après chaque passage, lisez `bob_warnings.log`, dans `assembly_kit/binaries/`, 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. Enfin, regardez dans `working_data/terrain/campaigns/<carte>/` : le relief compilé (`full_height_map.dds`), `tile_list.bin` et `global_props.bin`.

### Les limites connues

- **Six actions sur quinze.** Un passage complet sur un terrain de campagne compte 15 actions (chez nous, environ une minute une fois le relief compressé, 25 minutes la première fois). 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. 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.
- « Generate Camera Height Map » fait planter BOB (le tutoriel signale aussi ce plantage). La carte de hauteur de la caméra (`camera_heightmap.png`), le tutoriel l'approche à partir du relief, mis à l'échelle ; le masque de corruption se peint à la main ou par script (chez nous, par script).
- Tant qu'aucun terrain compilé n'existe, Terry plante en ouvrant le projet en 3D : 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`, dossier `terrain/battles/<dossier>/`). 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.

*Schéma : Une campagne, deux terrains.*

Dans le schéma : Une campagne, deux terrains · La zone jouable de campagne · `campaign_map_playable_areas` · `terrain_folder = <dossier>` · Le terrain de campagne · `terrain/campaigns/<carte>/` · le relief, les tuiles et les objets de la carte · Le terrain de bataille · `terrain/battles/<dossier>/` · une tile map de bataille ; celle de CA porte aussi des lieux de bataille et des cartes de captage · Sans ce terrain de bataille : plantage à la première bataille terrestre, même entre deux IA, donc souvent dès la première fin de tour.

Une carte de campagne a deux terrains : le sien, et un terrain de bataille, que nomme la colonne terrain_folder de sa zone jouable de campagne.

Le récit complet d'un portage, avec ses murs : [le tutoriel du portage](https://bretonia.dev/blog/tutoriel-porter-une-carte-warhammer-1-dans-warhammer-3.html).

## Les pièges de Terry

D'abord le verrou de `working_data`, en quatre cas :

*Schéma : Terry ouvert : ce qui passe, ce qui bloque.*

Dans le schéma : Terry ouvert : ce qui passe, ce qui bloque · Terry est un mode de Tweak : Terry ouvert, c'est Tweak ouvert · Terry ouvert verrouille working_data · et notamment les packs qu'on y pose · Process with BOB (Ctrl+P), lancé depuis Terry · pas concerné : c'est Terry qui lance BOB · BOB lancé depuis sa fenêtre · fermez d'abord Terry et le jeu, puis lancez BOB · Enregistrer un pack dans working_data · fermez d'abord Terry et le jeu, puis enregistrez · Exports Map Data et Dynamic Resources de CAIME · Tweak et Terry fermés. L'alerte de CAIME cherche · Tweak.AssemblyKit, pas tweak.modder.x64.exe : ne comptez pas sur elle. · BOB réécrit ses sorties à chaque passage : ne retouchez rien à la main dans working_data.

Terry est un mode de Tweak : ouvert, il verrouille working_data. Des quatre cas, seul Process with BOB, lancé depuis Terry, n'est pas concerné ; pour les autres, fermez-le d'abord.

- **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 dans `working_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'appelle `tweak.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 (2016 : 0 rouge, 1 bleu ; Warhammer III : 0 bleu, 1 rouge) : 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_data` disparaî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 le `snow_mask.dds` de 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\db`, mais n'a touché ni le terrain ni `working_data`) : revérifiez-les après une mise à jour.

- Demandez à l'humain avant de lancer le jeu, de piloter l'écran ou de publier ; ne supprimez rien : rangez, seul l'humain supprime.
- Ni rétro-ingénierie ni contournement d'un outil de CA : 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 /standalone TerrainMetadataEditor`, depuis `binaries` (fenêtre `TWeak - 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. En ligne de commande, on ne lui connaît que l'option `-no_console`, celle que passe le lanceur.
- Kit public : tuiles de bataille seulement. Tuile : `raw_data/terrain/tiles/battle/<jeu de tuiles>/<carte>/` ; tile map : `raw_data/terrain/battles/<carte>/`, créée par Create battle for tile… (une fois suffit) ; BOB sur la tile map, puis sur la tuile.
- `explicit_tiles` : la ligne `x,y,chemin,0` existe déjà (tutoriel) : on en change x,y, en pixels de `tile_map.png`, x depuis la gauche, y depuis le haut (coin haut-gauche de la tuile) ; chemin depuis `terrain/`, 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 (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_group` de `weather/battle/` ; image de `screenshot_path` au format 3:1 ; texte `battles_localised_name_<key>`.
- Journaux de Terry : `working_data/Terry/local/terry_error_log.txt` ; autosauvegardes dans `working_data/Terry/local/autosave/` (toutes les 15 minutes sur notre installation, réglage dans `settings.xml`).
- Campagne : projet à créer dans `raw_data/terrain/campaigns/<carte>/` (`.terry` version 27, une entité par région). La recette `rules.bob` est dans le dossier parent, `raw_data/terrain/campaigns/rules.bob` ; celui du dossier de la carte ne fait que recopier (`[Copy]`, `[+AssetGraph]`).
- Rasters : 8 px par hex (+ 4 lignes), `HeightShroud` 4 (+ 2), arbres, corruption, neige et `tile_map.png` 2 (+ 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 partout ; côte en bande d'un hex ; routes en blocs de 2 × 2 pixels (conventions établies sur notre chantier et le projet de ChaosRobie).
- Ordre des passages de campagne : le relief, le mettre dans le pack (dans `data` du jeu), 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 le `map.hex`). Le tutoriel dit *restart* : on ferme BOB et on le rouvre, on ne « relance » pas un passage.
- Un passage complet sur un terrain de campagne compte 15 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 ; l'ajouter à la base du kit ou à un pack de mod n'y change rien. Aucune voie officielle connue : un témoin, puis la communauté. Ne promettez jamais 15 actions pour une carte neuve.
- 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. Lire `binaries/bob.log` et `binaries/bob_warnings.log`. Juger en jeu, pas dans l'aperçu.
- Détails : [BOB](https://bretonia.dev/atelier/bob/), [RPFM](https://bretonia.dev/atelier/rpfm/), [CAIME](https://bretonia.dev/atelier/caime/), [les outils du moddeur](https://bretonia.dev/atelier/outils/), [modder avec une IA](https://bretonia.dev/atelier/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](https://wiki.totalwar.com/w/TWW_Assembly_Kit_Terry_Intro), [sommaire de Terry](https://wiki.totalwar.com/w/Total_War_WARHAMMER_Assembly_Kit_Terry), [interface](https://wiki.totalwar.com/w/TWW_Assembly_Kit_Terry_Interface.html), [raccourcis](https://wiki.totalwar.com/w/TWW_Assembly_Kit_Terry_Keys.html), [prise en main rapide](https://wiki.totalwar.com/w/TWW_Assembly_Kit_Terry_Quick_Start_Guide.html), dont [zones](https://wiki.totalwar.com/w/TWWAKT_Creating_Zones.html), [se déplacer](https://wiki.totalwar.com/w/TWWAKT_Navigating_the_Viewport.html), [peindre](https://wiki.totalwar.com/w/TWWAKT_Painting.html) et [enregistrer](https://wiki.totalwar.com/w/TWWAKT_Saving.html), et [Rules.bob](https://wiki.totalwar.com/w/Rules.bob_Documentation.html).
- Wiki tw-modding : [Map Making for WH3](https://tw-modding.com/wiki/Tutorial:Map_Making_for_WH3) (WakaWaka300), [Campaign Map Making for Warhammer III](https://tw-modding.com/wiki/Tutorial:Campaign_Map_Making_for_Warhammer_III), [Custom Campaign Settlement Skins](https://tw-modding.com/wiki/Tutorial:Custom_Campaign_Settlement_Skins) (partie Warhammer III, ChaosRobie), [RPFM For Dummies](https://tw-modding.com/wiki/Tutorial:RPFM_For_Dummies), et, pour Warhammer II, [Land Battle Maps](https://tw-modding.com/wiki/Battle_Maps:Land_Battle_Maps) et [Custom Vistas](https://tw-modding.com/wiki/Battle_Maps:Custom_Vistas).
- Les fichiers de l'Assembly Kit de Warhammer III, relus en lecture seule : les réglages et les raccourcis de Terry (`settings.xml`, `keyboard.xml`, `status_tooltips.xml`, `entity_configuration.xml`), les `rules.bob` du kit, la carte d'exemple, la table `battles` (`battles.xml`).
- Le projet Terry de campagne d'*Immortal Empires Expanded*, partagé par ChaosRobie, et notre propre chantier.
- Nos autres guides : [BOB](https://bretonia.dev/atelier/bob/), [RPFM](https://bretonia.dev/atelier/rpfm/), [CAIME](https://bretonia.dev/atelier/caime/), [les outils du moddeur](https://bretonia.dev/atelier/outils/), [modder avec une IA](https://bretonia.dev/atelier/ia/) ; et [l'atelier des moddeurs](https://bretonia.dev/atelier/).

## Questions fréquentes

### Terry peut-il éditer une carte de campagne ?

Il sait ouvrir un projet de type campagne, 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 /standalone TerrainMetadataEditor`, 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 ; 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/battles/<carte>/` 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 sur un terrain de campagne compte 15 actions (chez nous, environ une minute une fois le relief compressé, 25 minutes la première fois). 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. Nous ne connaissons pas de voie officielle pour lever cette limite : faites un témoin, puis demandez à la communauté.

### 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/Terry/local` 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/terrain/vistas`). D'une vista, vous reprenez `tile_map.png` et `climate_map.png`, que vous posez dans le dossier de votre tile map.
