Table des matières

Ici, on apprend comment créer des missions Arma Reforger avec le World Editor, Reforger Lobby et le framework de mission de TilW

Créer une mission avec TilW Mission Framework

Ce tutoriel explique la façon de créer une mission avec les mods TilW Mission Framework et Reforger Lobby. La façon de créer des missions avec d’autres modes de jeu (par exemple le Scenario Framework de Bohemia) est différente.

Nous avons fait une série de vidéos avec RackBoy qui couvrent les mêmes points :

Pour ceux d’entre vous qui préfèrent les explications concises mais efficaces, Til a fait un excellent tuto là : TilW Mission Framework

J’en profite pour envoyer plein de bisous à TilW, qui a créé (entre autres) ce framework simple, souple et puissant pour la communauté Global Conflict.

Préparer le matos (à ne faire que la première fois)

Quand j’étais en 6e, ma prof principale me disait souvent : “un bon ouvrier a toujours ses outils”. Il faut reconnaître que j’oubliais ma trousse au moins une fois par semaine. Quand on commence à faire du mission making, oublier ses mods ou ses sauvegardes de mission, ça peut vite tourner au drame. Voici comment éviter cela.

Installer Arma Reforger Tools

Installez-le à partir de Steam. Pour afficher Arma Reforger Tools, vous devez cocher la case “Outils” (ou Tools) de la bibliothèque, comme indiqué sur la copie d’écran.

[image perdue]

Configurer ses répertoires

Le répertoire des mods (addons)

La méthode simple, conseillée si vous débutez

Quand vous lancez Arma Reforger Tools pour la première fois et que vous créez un nouveau projet, vous pouvez scanner le répertoire où vous irez chercher les mods. Au départ, nous vous conseillons de scanner le répertoire par défaut d’Arma Reforger : %user\Documents\My Games\ArmaReforger\addons

La méthode compliquée, mais qui permet de contrôler les versions des mods utilisés

Les mods du jeu sont mis à jour automatiquement (et très fréquemment). Dans certains cas, on préfère contrôler la version des mods.

Les mods sont téléchargés dans %user\Documents\My Games\ArmaReforger\addons

Le répertoire des missions

Techniquement parlant, une mission est un mod. Vous allez donc créer un projet et publier le mod comme pour tout autre mod. Pour des raisons de bonne organisation, et surtout si vous n’avez pas séparé votre répertoire de mods du jeu de celui du WB, créez un répertoire de travail distinct, où vous voulez du moment que c’est bien rangé.

Créer votre projet

En bon directeur de projets, j’ai coutume de dire qu’un projet qui n’a pas de date de début ou pas de date de fin, ce n’est pas un projet. Ce qu’il y a de bien avec l’atelier Enfusion, c’est qu’on peut créer un projet sans date de début et sans date de fin. Voici comment.

[image perdue]

Les 3 derniers mods fournissent en particulier :

Enregistrez votre projet dans votre répertoire de missions.

[image perdue]

Créer le monde de votre mission

Nous allons prendre comme exemple une mission que nous allons créer sur Everon.

Si vous n’avez jamais utilisé l'atelier Enfusion (Enfusion Workbench), aussi appelé “Arma Reforger Touls” ou “Touls” par les noobs ;-), reportez-vous à ce tuto pour comprendre en 5 minutes de quoi on parle : L'éditeur de monde (World Editor) en 5 minutes

Créer le monde en tant que subscene d’Everon

Dans le resource browser, vous allez vous retrouver avec tous les dossiers des mods du mod pack de Grèce de Canards. Pas de panique, on peut s’y retrouver facilement : les mods sont classés par ordre alphabétique et vous pouvez mettre des favoris.

[image perdue]

[image perdue]

[image perdue]

Le monde (la scène principale) contenant tout ce qu’il faut se charge. Vous ne pouvez rien modifier ici, puisque ce sont les données du mod Arma Reforger, qui n’est autre que le jeu lui-même.

[image perdue]

[image perdue]

Vous l’aurez compris, une mission est une subscene (un monde dans le jargon Enfusion) d’une scène principale (un monde dans le jargon Enfusion) contenant déjà a minima un terrain et ses entités (ex. Everon) et votre monde à vous, appelé MaPremiereMission où vous pouvez faire tout ce que vous voulez (y compris les pires conneries).

[image perdue]

C’est bon, vous pouvez commencer à créer votre mission. Pas d’inquiétude si cela vous paraît compliqué la première fois. Avec un peu d’habitude, tout ça prend 1 ou 2 minutes.

Créer la mission proprement dite

Quand j’étais petit, ma mère me disait souvent : “range ta chambre, mon fils. Tu trouveras tes jouets plus facilement.” Elle avait raison, voici pourquoi.

Organiser son chantier

On va mettre plein d’entités dans la scène (le monde). En permanence, vous devrez sélectionner des entités pour pouvoir paramétrer leurs attributs. C’est toujours plus simple de les sélectionner dans la hiérarchie que de les chercher (et surtout d’arriver à cliquer au bon endroit) dans la scène 3D. Donc, organisez la hiérarchie de façon à ce qu’il soit facile de retrouver une entité donnée.

Il y a plein de façons d’organiser sa hiérarchie. Au bout de quelques missions, vous trouverez celle qui vous convient le mieux. Pour commencer, nous vous proposons une structure de base qui a fait ses preuves.

Votre chantier avant de commencer :

[image perdue]

Votre chantier préparé pour les travaux :

[image perdue]

Pour créer un folder ou un layer, faites simplement un clic droit dans la hiérarchie. Par exemple, pour créer un folder à la base de la hiérarchie (MaPremiereMission), faites un clic droit sur cette entité.

Quelques explications sur cette hiérarchie :

Voilà, vous avez pris 10 minutes (et 2 minutes pour votre seconde mission) pour organiser proprement votre travail : vous vous économiserez énormément de charge cognitive pour la suite. Et au plus votre mission contiendra d’entités, au plus ces 2 minutes auront de retour sur investissement.

Construire la base de la mission

Pour la base de la mission, vous allez :

On va jouer les gentils américains contre les méchants communistes russes. Notre base de départ sera l’aéroport de Saint-Philippe.

Par la suite, nous ajouterons progressivement de la richesse.

Si vous n’avez pas encore compris cette foutue interface du World Editor, c’est le moment d’investir 15 minutes de votre précieuse vie pour la prendre en main.

Allez, on y va.

On pose les managers

Paramétrage du ''SCR_AIWorld_Eden.et''

Ce prefab affecte les navmeshes (les maillages de navigation) aux IA. Sans ce paramétrage, vos IA ne se déplaceront tout simplement pas, ou de façon sporadique et inutile.

Vous allez donc paramétrer les attributs de deux composants comme suit :

[image perdue]

1: les composants de l’entité 2: les attributs (ou les propriétés) du composant sélectionné.

On va paramétrer comme suit :

On pose le mode de jeu

⇒ Nous allons pas mal tripoter ces deux entités par la suite, car c’est avec elles qu’on fait le plus gros de gestion de la mission.

On pose un groupe pour les joueurs

Voilà, vous avez vos joueurs !

[image perdue]

On pose un groupe d’IA

Voilà, vous avez déjà une mission fonctionnelle !

C’est le moment de vérifier que tout fonctionne correctement avant de se lancer dans des trucs plus sophistiqués.

Lancez la mission en vous assurant que l’option Play from Camera Position est désactivée

[image perdue]

Si vous n’avez pas merdé, vous allez atterrir là :

[image perdue]

Un clic sur la flèche verte et vous verrez le joli lobby de Reforger Lobby

[image perdue]

Ajouter du sel et du poivre : les IA hostiles

Nous allons faire des choses simples pour commencer :

Tout cela va se faire tout simplement avec des waypoints.

Les IA sans waypoint : renforts progressifs sur les zones de combat

Dans l’étape précédente, nous avons posé un groupe d’IA hostiles sur Saint-Philippe sans waypoint défini. Ce groupe sera plutôt offensif : il se portera au combat si la zone de combat est relativement proche de sa position (quelques centaines de mètres) et si le combat dure plusieurs minutes. Si vous ne mettez que des groupes de ce type, toutes les IA finiront par converger sur les combats et videront progressivement la zone qu’elles occupent initialement.

Poser les IA sans waypoint permet de mettre une certaine pression offensive sur les joueurs. Mais une fois ces IA neutralisées, il n’y aura plus d’hostiles sur le terrain à plusieurs centaines de mètres à la ronde autour de la dernière zone de combat, à part peut-être un ou deux pax qui se sont perdus.

Les IA en défense

Vous voulez souvent que certaines zones soient défendues. Pour cela, il suffit d’affecter un waypoint de défense à un groupe d’IA.

  1. Pensez à sélectionner le layer AI/OPFOR. Posez le groupe d’IA. Ici, nous voulons qu’il défende le carrefour à l’arrière de l’église de Saint-Phillipe.
  2. Renommez ce groupe. Adoptez une convention de nommage qui vous permettra de vous y retrouver dans les quelques dizaines de groupes d’IA que vous allez poser dans votre mission. Ici, j’ai nommé le groupe grp_def_1 car ce groupe aura un rôle de défense. Chaque entité du monde doit avoir un nom unique, raison pour laquelle j’ai suffixé le nom du groupe par un numéro.

[image perdue]

  1. Posez un waypoint de type AIWaypoint_Defend.et sur la zone à défendre. Renommez-le en vous donnant une convention de nommage pratique. Ici, je l’ai appelé WP_def_1.

[image perdue]

  1. Affectez ce waypoint au groupe de défense en paramétrant l’attribut Static Waypoints du groupe grp_def_1 avec le nom du waypoint (WP_def_1) :
  1. Je sélectionne le groupe grp_def_1 dans le panneau de hiérarchie
  2. J’appuie sur le bouton + à côté de l’attribut Static Waypoints
  3. Dans la zone de texte qui vient d’être ajoutée par le bouton +, je saisis WP_def_1.

[image perdue]

Vous pouvez modifier le rayon de la zone de défense en paramétrant l’attribut Completion Radius du waypoint. Par défaut, il est paramétré à 30 mètres.

Si vous réduisez le rayon d’un waypoint Defend à la taille d’un bâtiment, les IA affectées à ce waypoint resteront dans ce bâtiment, en occupant potentiellement les étages (et éventuellement ses alentours immédiats). Il faudra donc venir les déloger.

Voilà : sauvegardez et faites-vous plaisir en testant. Les IA hostiles vont se répartir sur les différents couverts de la zone de défense et tenir leurs positions même en cas d’attaque proche.

En mode Game Master, testez différentes situations pour voir comment elles se comportent.

Poser des patrouilles à pied

Quand j’étais petit, mon père me disait souvent : “tu as deux jambes, mon fils. Elles sont faites pour marcher. Et marcher, c’est bon pour la santé.” Alors j’ai marché, donc j’étais en bonne santé, donc j’ai grandi. Et alors, vers l’âge de 16 ans, j’ai entendu cette chanson à la radio qui disait : “these boots are made for walking, and that’s just what they’ll do. One of these days, these boots are gonna walk all over you”. Tout ça pour dire que les patrouilles à pied, y’a que ça de vrai. Voici comment faire.
Si vous avez nommé le WP avec en dernier caractère un chiffre, vous pouvez copier/coller les WP patrol suivants, Arma va se charger de les nommer proprement (WP_patrol_2, WP_patrol_3, etc.), ce qui va vous faire gagner de précieuses heures de vie.

[image perdue]

En cas d’engagement, les IA en patrouille vont se comporter comme les IA sans WP : si elles sont à quelques centaines de mètres de la zone de combat, elles vont monter au combat.

Spawner un véhicule actif

Pour le moment (AR 1.6.108), BI ne fournit pas de moyen de poser un prefab de véhicule avec son équipage. Nous allons donc utiliser le spawner de TilW.

Poser vs spawner Jusqu’à présent, nous avons posé des prefabs dans le monde (le groupe de joueurs, les groupes d’IA hostiles). Ces entités seront donc créées dès l’initialisation du jeu telles quelles.

Une autre façon de procéder est d’utiliser un spawner qui va faire apparaître (en anglais : to spawn) les entités dans le jeu avec certains paramètres et/ou selon certaines conditions. Pour les véhicules, pour le moment, nous n’avons pas le choix : il faut paramétrer l’équipage, ce qui n’est possible qu’avec un spawner. Nous verrons plus loin que spawner des entités permet de faire plein de choses intéressantes (QRF, spawn aléatoire, spawn sur condition, etc.).

Paramétrer le spawner

[image perdue]

[image perdue]

1: On choisit le prefab du véhicule

2 : On paramètre son équipage, sans oublier de cocher No turret dismount pour forcer le tireur à rester à son poste pour nous pourrir la gueule.

Au passage, on en profite pour donner un nom qui pourra être réutilisé par la suite en paramétrant la propriété Entity Name. Saisissez, par exemple vehA. :!: Attention, vous ne devez pas mettre ici le même nom que le nom que vous avez choisi dans la hiérarchie (veh_1), sinon le framework de TilW va merder.

Ajouter du piment : les triggers (déclencheurs)

Mon grand-oncle Barnabé avait l’habitude de dire : “les triggers, c’est le piment de la vie, petit”. Il avait parfaitement raison. Voici pourquoi.

Un trigger (déclencheur, en français) est une entité qui vérifie à intervalle périodique une condition dans le volume qu'il occupe dans le monde. Une fois que cette condition est remplie, le trigger lève un drapeau (“flag”, en anglais). D’autres entités peuvent surveiller ce drapeau et, une fois ce drapeau levé, faire des choses.

Nous allons utiliser des triggers du framework de TilW parce que ce sont les entités de son framework qui vont réagir à leur levée de drapeau.

Le framework de TilW fournit trois prefabs de triggers qu'on trouve dans TilwMissionFramework>Prefabs>Logic>Triggers :

Nous allons prendre comme exemple le prefab TILW_FactionTrigger.et, c'est celui qui sera le plus souvent utilisé.

Comme à l'accoutumée, faites glisser le prefab dans le viewport. Placez votre gizmo (le centre du trigger) au centre de la zone que vous voulez tester avec le trigger. Ci-dessous, le détail des attributs du trigger.

[image perdue]

1: Trigger Query. Ici, vous pouvez paramétrer le rayon (radius) du trigger. La demi-sphère dans le viewport matérialise la zone testée.

2: Trigger Condition. Ici, ce sont les conditions testées par le trigger :

3: Trigger Status.

4: Trigger Effect.

D'autres entités du framework de TilW permettent de lever un drapeau, par exemple selon le ratio de blessures d'une IA ou d'un joueur. La référence des entités qui lèvent un drapeau (en) est consultable sur le wiki GitHub du framework.

Le cœur du réacteur : les événements de mission du TilW Mission Framework

Le framework de TilW repose sur la notion d'événement de mission. Chaque événement déclenche une ou plusieurs actions, telles que spawner un prefab, afficher un message, modifier des drapeaux, etc. Un événement est lui-même déclenché par une condition. Dans le cas le plus courant et le plus simple, il s'agit de la levée d'un drapeau par un trigger… Vous voyez où je veux en venir, je pense :-P.

Ce que nous allons faire :

Définir le point de spawn de la QRF

Pour définir où va spawner la QRF, le plus simple est de poser une generic entity sur la position en question.

[image perdue]

1: Sélectionnez l'onglet Create en bas du panneau de gauche

2: Sélectionnez une generic entity

3: Faites-la glisser dans le viewport sur la position où vous voulez que la QRF spawne.

Souvenez-vous : cette entité sera créée dans le layer actif dans votre hiérarchie. Dans mon cas, je la range dans game/triggers, mais libre à vous de vous organiser comme cela vous semble le mieux.

Nommez cette entité, par exemple QRF_Spawn_Pos car nous devrons utiliser le nom de cette entité par la suite.

Poser un WP SAD sur lequel la QRF et le véhicule vont converger

Faites comme à l'accoutumée :

Ajouter un événement

On va maintenant paramétrer l'entité TilW_MissionFramework_1 (le _1 est généré automatiquement, il peut être différent si, par exemple, vous avez posé plusieurs fois le prefab) :

[image perdue]

Paramétrer la condition de déclenchement de l'événement

Pour ce tuto, on fait simple. Et je vous conseille, pour vos premières missions, de faire simple :-P. Ajoutez une condition de type TILW_LiteralTerm.

[image perdue]

En clair, l'événement attend qu'un drapeau avec un certain nom (un “Literal Term”) se lève. Dès qu'un drapeau avec ce certain nom est levé, l'événement va exécuter les instructions que nous allons paramétrer juste après. Si vous avez bien suivi, ce drapeau va être levé par le trigger paramétré précédemment. Ce drapeau a le nom de US_PRESENCE, si vous avez un peu de mémoire (sinon, remontez quelques lignes plus haut dans Trigger Effect). Entrez donc US_PRESENCE dans la propriété Flag Name de la condition.

Ajouter des instructions

Nous allons aller un peu plus vite parce qu'il est 11h30 et que le cours finit à midi (et qu'on a tous la dalle !!!).

Le paramétrage de l'entité TILW_MissionFramework_1 devrait ressembler à ça :

[image perdue]

Vous pouvez trouver la référence de toutes les instructions (en) sur le wiki GitHub de TilW

Nous avons vu les bases pour la mécanique de mission.

Le briefing

Un bon briefing, ça s'appuie sur du texte et sur des marqueurs.

[image perdue]

Rien de magique : on va glisser des prefabs dans le monde, en sélectionnant le bon layer dans notre hiérarchie, genre le layer briefing.

Texte du briefing

Dans Reforger Lobby > PrefabEditable > Mission Description, on va chercher le prefab EditableMissionDescription.et et le glisser dans le monde.

[image perdue]

1 : le nom de l'onglet dans le briefing

2 : le texte de l'onglet

3 : la visibilité en fonction de la faction et du niveau de briefing

Et on ajoute l'ordre d'affichage dans le briefing par la propriété Order.

Le fichier de configuration de mission

Ce fichier est indispensable pour publier la mission. Le plus simple est de dupliquer un fichier de mission existant…

[image perdue]

…puis, de le modifier :

[image perdue]

Ci-dessous, la correspondance entre les champs du fichier de configuration et les différents écrans de preview. Attention, ces éléments ne s'affichent qu'une fois le mod publié et chargé sur un serveur !

[image perdue]

[image perdue]