Les bases de l'édition dans ARMA 3

Les scripts et les missions des [V]Vétérans

Vous pouvez poser vos questions et poster vos scripts, le forum est ouvert à tous.
Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Les bases de l'édition dans ARMA 3

Message par Tyrghen » 27 oct. 2014, 13:06

Mise à jour:04/06/2015

Les bases de l'édition dans ARMA 3

Le but de ce fil est d'introduire l'édition pour ceux qui ne l'ont jamais essayé, parce que finalement c'est plus simple qu'il n'y parait et avec peu de choses on peut faire des missions tout à fait convenables.
Les différents thèmes abordés ici serviront de base pour les soirées édition que j'organiserai quand je le peux.

J'ajouterai des tutoriels au fur et à mesure du temps pour couvrir les différents aspects liés à l'édition dans ArmA 3.
Ces tutoriels s'appliquent pour la plupart à ArmA 2 et ArmA (Operation Flashpoint).
Cependant, il y a des choses qui ont évolué au cours des versions et certains fonctionnalités décrites ici ne sont pas présentes dans les anciennes versions.

Le code de scripts très simples est aussi donné et expliqué pas à pas, pour que vous puissiez vous familiariser avec la programmation dans ArmA. Le langage est relativement simple et les exemples donnés ici sont très basiques, donc à la portée de tous.

IMPORTANT
Ce fil n'est pas exhaustif, il ne couvre que les bases.
Ce fil n'est pas complet, je le remplirai au fur et à mesure.

VOUS NE POUVEZ PAS REPONDRE DANS CE FIL!
Si vous avez une question sur un point en particulier, il suffit de la poser dans le forum "Edition et Scripts" c'est pour ça qu'il est là...
Ce fil est simplement un petit manuel d'introduction et n'est pas destiné à des questions/réponses.

Les commentaires, corrections et discussions concernant ce tutoriel sont à poster dans le fil dédié.


Les tutoriels
  1. L'éditeur de mission
  2. Placer des unités et des groupes sur carte
  3. Placer des objets sur la carte, placer des objets en hauteur
  4. Mettre des unités ou des joueurs dans un véhicule
  5. Points de passages et créer des patrouilles, point de passage "réitérer"
  6. Les points de passage spéciaux: Tenir, Garder, Sentinelle, Rechercher et détruire, Vol en attente
  7. Les paramètres des points de passage
  8. Les déclencheurs
  9. Bloquer un point de passage par un déclencheur, créer des renforts
  10. Activer un déclencheur depuis un point de passage
  11. Réapparition des joueurs
  12. Créer et mettre à jour une tâche avec les commandes d'ArmA
  13. Créer et mettre à jour une tâche avec les modules
  14. Sauvegarder/Publier sa mission
  15. Répertoire de mission, description.ext et init.sqf
  16. Objets et variables dans ArmA
  17. Les commandes d'ArmA
  18. Notions de base du scripting dans ArmA (en cours...)
  19. Script: déplacer le point de réapparition
  20. Script: téléportation vers le leader du groupe
  21. Script: action sur un objet et déclencheur lié
  22. Script: déplacer un marqueur avec un véhicule
Quelques tutoriels plus avancés qui demandent un minimum de pratique...
  1. Ecrire un script et le tester, pas à pas
  2. L'explorateur de fonctions
  3. Localité des scripts
  4. Temps d'exécution des scripts et ordre d'exécution

Mission pas à pas
  1. Détruire le camion de munitions / Assassiner le général ennemi
  2. Prendre le contrôle d'une ville

Liens utiles
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

L'éditeur de mission

Message par Tyrghen » 27 oct. 2014, 13:07

Mise à jour:27/10/2014

L'éditeur de mission

Dans le menu principal du jeu, sélectionner Editeur:

Image

Ensuite choisir l'île sur laquelle doit se dérouler la mission:

Image

La carte de l'île va se charger dans l'éditeur et sera entièrement vide.
J'ai choisi Stratis parce que l'île est petite, se charge vite et lorsqu'on doit lancer la mission pour tester chaque changement, c'est pratique.

Voici à quoi doit ressembler votre interface:

Image

Ci-dessous je vais résumer les différentes options qui nous intéresseront et dans les tutoriels suivants on utilisera chacune de ces fonctions pour créer des missions ou des bouts de mission.


Le menu du haut

Ce menu permet entre autre de charger, sauvegarder et nommer la mission, c'est le menu que vous utiliserez le moins.
Voici un bref résumé des différents boutons:
  • Image Effacer: Remet la carte à zéro et efface tout le contenu. Je ne l'ai jamais utilisé depuis que je fais de l'édition, mais ça peut servir pour des tests.
  • Image Charger: Permet de sélectionner une mission déjà sauvegardée pour continuer le développement ou pour étudier une mission créée par quelqu'un d'autre.
  • Image Enregistrer: Sauvegarde les derniers changements effectués. Je ne clique jamais ce bouton, à la place j'utilise le raccourci [CTRL + S] du clavier pour enregistrer mes changements.
    Si le répertoire de mission n'a pas encore été créé, l'éditeur demandera le nom à donner à la mission. Consultez le point "Sauvegarder sa mission" pour plus de détails.
  • Image Enregistrer sous: Permet de sauvegarder la mission sous un autre nom, pour en créer une copie par exemple. Consultez le point "Sauvegarder sa mission" pour plus de détails.
  • Image Informations: Ce bouton permet de donner un nom et de régler les conditions météo de la mission. C'est aussi là qu'on choisit avec quel camp les indépendants sont en guerre. J'ai repris l'écran en bas de ce tuto et on va le parcourir brièvement.

Le menu d'édition

Ce menu permet de créer le contenu de la mission, les seuls éléments dont on a vraiment besoin sont là, accessibles au travers 7 boutons.
  • Image Unité ou objet: Permet de placer un objet ou une unité sur carte
  • Image Groupes: Permet de placer un groupe sur carte ou de grouper des unités déjà placées sur carte.
  • Image Déclencheurs: C'est ce qui permet de créer des événements dans les missions. Un déclencheur comme son nom l'indique va permettre de déclencher une action sur une condition... on y reviendra.
  • Image Points de passage: C'est ce qui permet d'indiquer aux IAs ce qu'elles doivent faire. On reviendra sur l'utilisation des points de passage et sur ceux à ne surtout pas manquer...
  • Image Liens/Synchro: On utilise les liens pour synchroniser des éléments ensemble. Par exemple, une unité et une véhicule, un module et un déclencheur, un point de passage et un déclencheur etc.
    On en reparlera dans les tutoriels sur les points de passage et les tâches.
  • Image Marqueurs: Les marqueurs servent à indiquer des points clés sur carte pour les joueurs, mais les marqueurs invisibles sont aussi très utile pour une multitude de choses, même si les joueurs ne les voie pas. Pour les points de réapparition par exemple.
  • Image Modules: Les modules sont en fait des scripts simplifiés. Plutôt que de devoir entrer des lignes de code, on remplit les champs d'une interface prédéfinie et le code des modules fait le reste.
  • Image Mission, intro, outro: Il faut toujours que la première option soit sélectionnée. Si jamais vous perdez tout le contenu de votre mission, vérifier que vous n'avez pas cliqué sur l'une de ces options. En gros, elles servent à créer des introductions animées pour les missions.

Renseignements de mission

Les éléments les plus importants de cette interface sont:
  • Le nom de la mission, en haut à gauche, elle servira à identifier facilement la mission dans le Lobby. Si vous voulez utiliser un système de version, c'est ici que je marque le numéro de version.
  • La date et l'heure, très importants pour régler les conditions de la mission. Elle aura une influence sur les heures de nuit entre autre.
  • La partie principale de cette interface est prise par les conditions météo. A gauche ce sont les conditions au départ de la mission et à droite les conditions vers lesquelles évoluera la météo. Si vous ne voulez pas de changement, mettez les mêmes valeurs des deux côté.
    A noter que vous ne pouvez régler le niveau de pluie que si vous mettez assez de nuages.
  • En bas, on a le "Moment des changements", c'est le rythme auquel la météo va évoluer. Par défaut, 30 min, ce qui donne un temps très instable sur la durée de la mission. Je règle systématiquement sur 8 heures comme on le voit ici.
  • Tout en bas, on a l'affiliation des indépendants. Là, c'est selon le contexte de la mission. Mais si vous voulez utiliser toutes les unités existantes comme ennemis (et pouvoir les locker depuis les véhicules) il faut mettre les indépendants amis avec le camp ennemi.
Image

Le nom de la mission et sa description dans le Lobby, tel que définit dans l'écran précédent.

Image



Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Placer des unités et des groupes sur carte

Message par Tyrghen » 27 oct. 2014, 13:08

Mise à jour:27/10/2014

Placer des unités et des groupes sur carte

Avoir une carte c'est bien... avoir des unités dessus, c'est mieux.
Avant de pouvoir prévisualiser sa mission, il faut d'abord placer une unité "joueur". Lorsque la mission est jouée en solo, c'est cette unité que le joueur incarnera.

On pourra aussi placer des unités "jouables", qui pourront être jouées par d'autre joueurs en multijoueur ou qui seront accessibles en "Teamswitch" en solo. Mais bon, pour le moment ce n'est pas primordial... concentrons-nous sur le commencement.



Placer le joueur

Il faut tout d'abord sélectionner l'option "placer une unité" Image
Ensuite il suffit de double cliquer sur la carte, n'importe où (de préférence sur terre si vous ne voulez pas vous noyer d'entrée de jeu...).
Une nouvelle fenêtre va s'ouvrir, intitulée "Insérer unité".

Image

Passons en revue les points les plus importants de cette fenêtre.



Choix du type d'objet

Tous les objets d'ArmA sont classés suivant une hiérarchie précise, ce qui permet de "vite" les retrouver.
La hiérarchie est répartie en 4 points:
  • Camp: Blufor, Opfor, Vide, etc.
    Le camp vide est très important, c'est lui qui permet de placer des éléments de décor ou des véhicules vides que les joueurs peuvent utiliser.
  • Faction: Dans chaque camp on a plusieurs factions, par exemple, dans les BLUFOR on a les NATO et les FIA. Pour le moment les autres camps n'ont qu'une seule faction, mais il faut espérer qu'on en verra bientôt plus... A noter que certains addons vont ajouter des camps et des factions avec de nouvelles unités.
  • Catégorie: Ce qui nous intéresse au début c'est surtout la catégorie "Hommes" pour placer des unités d'infanterie, que ce soit alliées ou ennemies.
  • Unité: C'est l'unité ou l'objet que vous aller finalement placer sur carte.
    Notez que le type de cette unité apparaît dans le coin supérieur droit de l'interface: Image
    Ca peut être très utile pour des scripts.
Image



Grade, joueur ou non et autres

Cette partie de l'interface est un mélange de plusieurs options assez utiles. Je vais donc vous assommer avec pleins de petits détails...

Image

Spécial
Cette option sert à plein de choses... pour une unité, ça permet de dire si elle est en formation ou non, pour une véhicule aérien, ça permet de dire s'il est en vol ou non.
Mais, cette option a plus d'impact qu'on peut le penser.
Quand vous placez un groupe d'ennemis sur carte, par défaut, toutes les unités sont en "En formation". Ce n'est pas un problème, sauf si vous voulez placer manuellement les unités à des points de garde par exemple. Si vous laissez "En formation", au lancement de la partie, les unités sont téléportées en formation. Finis vos placements minutieux...
C'est aussi vrai pour les véhicules et les armes statiques.
Si vous placez manuellement des unités qui forment un groupe, choisissez "Néant" comme option.

Contrôle
Trois choix, Non Joueur, Joueur, Jouable.
Lorsqu'on place la première unité de la carte, cette option est automatiquement mise sur "Joueur". Toutes les autres unités auront "Non joueur" comme valeur par défaut.
Plus tard, pour placer des unités que d'autres joueurs pourront utiliser, il faudra donc manuellement sélectionner "Jouable" pour en faire une unité sélectionnable depuis le lobby.
Si par erreur vous sélectionnez "Joueur", l'unité qui était pour le moment l'unité du joueur, deviendra une unité "Non joueur".

Verr véhicule
Le vérrouillage véhicule permet de bloquer l'accès à un véhicule pour les joueurs.
Ca peut être utile pour placer par exemple une voiture ou des armes statiques comme décor mais sans laisser les joueurs y accéder.

Grade
Le grade a son importance lorsque vous créez un groupe de joueur, ça déterminera quelle unité est leader du groupe.
En adoptant des grades descendants, vous pouvez passer le commandement d'une unité à l'autre dans un ordre précis lorsque le leader du groupe se déconnecte. Personnellement, je ne mets jamais qu'une unité avec un grade élevé et je laisse le reste par défaut.

Age info
C'est le niveau de connaissance qu'ont les unités placées sur carte à propos de l'objet.
Ca sonne compliqué... mais c'est tout simple, quoique peu utile... je ne l'ai jamais utilisé depuis les années que je fais des missions.
Donc inutile de s'étendre sur le sujet dans le cadre de ce tutoriel.



Azimut et élévation

Ces deux cases permettent de sélectionner la direction à laquelle l'unité ou l'objet fait face, mais aussi sa hauteur par rapport au sol.
Noter que vous pouvez aussi choisir l'orientation sur le cadran horaire à droite ou alors, sur la carte.

Pour choisir l'orientation d'un objet sur carte:
  1. sélectionnez un ou plusieurs objets
  2. placez le curseur de la souris sur un objet sélectionné
  3. pressez shift
  4. enfoncez et maintenez enfoncé le bouton gauche de la souris
  5. ensuite tournez autour de l'objet et il tournera en même temps
Image



Nom de l'unité

Probablement l'un des éléments les plus importants pour vos premiers scripts. Ce champ permet de donner un nom unique à l'objet, qui permettra de référencer cet objet dans les scripts.
Quand je place les joueurs, je leur donne toujours un nom, "p1", "p2", etc. (pour player 1, player 2,..). Ce qui me permet en cours de mission de facilement agir face à un problème, comme un joueur buggé dans un mur, etc.

Image


Initialisation

Le champ d'initialisation permet d'exécuter du code lorsque l'unité est initialisée. Ca permet par exemple, d'ajouter un élément à l'inventaire des joueurs. Comme dans l'exemple ci-dessous où j'ajoute des jumelles de vision de nuit.
La commande linkItem permet d'équiper les objets "liés", ce qui regroupe les objets qui ont un slot spécifique dans votre inventaire (NVG, radio, carte, etc.). Si on utilise simplement la commande addItem, on place l'objet dans le sac à dos, sans l'équiper, d'où l'intérêt de la commande linkItem. A noter que cette commande remplacera automatiquement l'objet qui se trouverait déjà là (comme par exemple, un terminal drône à la place d'un GPS).

Image

Attention Le code est exécuté par chaque client qui se connecte. Ce qui veut dire que si vous exécutez ici une commande qui a un effet global, elle s'exécutera à chaque connexion, ce qui peut avoir un effet imprévisible sur la mission.
Pour savoir si votre commande peut avoir un effet, il faut consulter le Wiki de BIS.

Prenons par exemple la commande "removeAllWeapons". Imaginez si cette commande s'exécutait pour tous les joueurs à la connexion de chaque joueur... on se retrouverait régulièrement tout nus...
Mais en regardant le wiki on voit que l'argument (la cible) doit être locale au PC qui l'exécute pour que la commande soit exécutée. Ce qui veut dire que si je me connecte, cette commande ne s'exécutera que pour moi, car seul mon unité est locale à mon PC.
Par contre, l'effet est global, ce qui veut dire que tous les joueurs me verront sans arme.
Image


Paramètres supplémentaires

Je pense que la plupart des paramètres ci-dessous parlent d'eux-même.
Celui qui par contre mérite un peu plus d'explication est celui de "probabilité de présence".

On l'utilise habituellement pour gérer le fait que l'unité sera instanciée ou non (pour avoir plus ou moins de gardes quand on joue la mission par exemple). Mais ça ne fonctionne pas sur un groupe, c'est chaque unité individuellement.

Par contre, on va souvent voir sur des missions des unités de chaque camp avec une probabilité de présence de 0% cachées dans un coin de la carte. C'est une astuce pour permettre de démarrer la carte sans aucune autre unités et d'ensuite générer les unités à la volée.
Si vous n'utilisez pas cette astuce, les OPFOR et les BLUFOR ne se battront pas...
Le fait de placer au moins une unité sur carte, crée le camp de cette unité.

Image


Rayon de placement

Il est principalement utilisé pour placer aléatoirement l'unité dans ce rayon en début de mission.
Si vous placez un groupe et que chaque unité à la valeur "Spécial" (voir plus haut) sur "Formation", seul le leader du groupe doit recevoir le rayon de placement. Toutes les autres unités seront téléportées en formation autour du leader en début de mission.

Image



Le joueur est placé!

Bon, maintenant qu'on a parcouru les différents options, il est temps de placer le joueur et de lancer la mission pour la première fois.

Cliquez simplement sur OK ou pressez [Entrée] pour placer le joueur sur carte.
Image

Un nouveau bouton apparaît en haut de l'écran, vous pouvez maintenant prévisualiser la mission.
Image
Appuyez sur ce bouton et vous vous retrouverez sur la carte.



Placer un groupe

Il faut tout d'abord sélectionner l'option "placer un groupe" Image
Ensuite il suffit de double-cliquer sur la carte là où on veut placer le groupe.

Le nouvel écran qui apparaît est très simple, il n'offre pas énormément d'options.
Sur la partie gauche on peut sélectionner un groupe à partir du camp, de la faction et de la catégorie, tout comme dans le placement des unités.
A droite, on voit la composition du groupe actuellement sélectionné.
Et en bas à gauche on peut choisir l'orientation de placement du groupe. Personnellement, je place le groupe sur carte, puis je le fais tourner à la souris après avoir placé les unités comme je le souhaite.
Image

Une fois le groupe placé, vous pouvez éditer individuellement les unités en double cliquant sur chacune d'elle.
Image

L'écran d'édition des unités s'ouvrira (cet écran aura le titre "Modifier l'unité" dans ce cas) et vous pourrez y faire les modifications que vous souhaitez.
Image




Ajouter des unités à un groupe

Il est souvent utile de pouvoir ajouter des unités placées à la main à un groupe déjà existant. Par exemple pour avoir plus de soldats dans le même groupe. Ou alors pour lier une arme statique à un groupe, s'il y a bien une chose qu'il faut toujours faire... c'est lier une arme statique à un groupe à pied qui sert d'observateur. C'est la meilleure façon d'avoir une statique efficace et pas juste une cible statique :)

Il faut tout d'abord sélectionner l'option "placer un groupe" Image

Ensuite, avec la souris, il faut:
  • faire un clic gauche sur l'unité à ajouter
  • maintenir le bouton gauche de la souris enfoncé
  • déplacer le curseur vers le leader du groupe auquel s'ajouter
    A noter qu'une ligne gris clair est affichée entre l'unité sélectionné et le curseur
  • une fois que le curseur est sur le leader du groupe (le type de l'unité s'affiche ou son nom), relâcher le bouton gauche
Image

Une ligne bleu clair devrait relier l'unité et le leader du groupe. Comme ci-dessous.
Image




Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Placer des objets sur la carte ou en hauteur

Message par Tyrghen » 27 oct. 2014, 13:09

Mise à jour:13/11/2014

Placer des objets sur la carte ou en hauteur

Placer des objets sur carte

Il faut tout d'abord sélectionner l'option "placer une unité" Image

Dans cet exemple on va placer quelques murs de sacs de sable.
Donc, dans l'écran d'insertion, on va sélectionner:
Camp: vide
Faction: /
Catégorie: Objets (Fortification)
Unité: Murs de sacs et barrières en H
Image

A noter que si vous activez des addons avec des objets supplémentaires (par exemple All In ArmA), il est probable que vous aurez plus de catégories et/ou un contenu différent!

La fenêtre devrait ressembler à ça:
Image

Une grande partie des fortifications se trouvent sous:
Image
Mais pas toutes... il faudra donc apprendre à connaître les catégories et leur contenu.

Cliquez sur OK pour placer le premier sac.
Ensuite répétez l'opération en double cliquant à côté. Vous remarquerez que l'interface a gardé en mémoire le dernier objet placé.
Ce qui permet d'aller plus vite.



Copier des objets

Si vous devez entourer une base complète, une autre option est de copier les objets. Vous commencez par créer une petite ligne de sacs de sable qui sont bien placés/alignés, ensuite vous utilisez les raccourcis clavier pour copier ces éléments.:
  • Appuyez sur le bouton CTRL (control) du clavier
  • Clic gauche sur les objets à copier (ils devraient prendre une teinte plus foncée)
  • Enfoncez les touches CTRL + C
  • Cliquez un peu à côté sur la carte
  • Enfoncez les touches CTRL + V
Et voilà, les objets sont copiés.
Image
Vous pouvez les déplacer en faisant un clic gauche sur l'un des objets sélectionnés et vous pourrez le déplacer.
ATTENTION! Avant de cliquer, assurez vous que le nom de l'objet s'affiche comme dans l'image ci-dessus, sinon vous annulerez la sélection.


Pour sélectionner un groupe d'objet, une autre option est de faire une zone de sélection.
  • Clic gauche sur le coin supérieur gauche de la zone de sélection (le petit carré rouge ci-dessous)
  • Maintenez le bouton gauche enfoncé et glissez pour que le cadre vert englobe l'ensemble des objets
  • Relâchez le bouton gauche une fois que la zone a la bonne taille (le grand carré rouge ci-dessous)
  • Enfoncez les touches CTRL + C
  • Cliquez un peu à côté sur la carte
  • Enfoncez les touches CTRL + V
Les objets sont copiés... même principe que le point précédent.



Superposition des objets dans l'éditeur

Petite remarque, la représentation des objets sur l'éditeur est parfois trompeuse en terme de taille.
Avec l'expérience vous saurez qu'il faut parfois légèrement superposer les objets comme dans l'exemple ci-dessous.
Image

Le résultat est une ligne de sacs qui se touchent tout juste. Si vous regardez attentivement, au centre de l'écran vous verrez l'espace entre les deux blocs.
Pourtant dans l'éditeur ils sont superposés... eh oui... dur dur.
Bienvenue dans le monde de l'édition.
Image

Vous remarquerez aussi que les sacs ont un sens, que d'un côté il y a ces passerelles en bois et de l'autre pas. Dans l'éditeur ça ne se voit pas....
Donc il faut souvent tester pour être sûr de ne pas avoir inversé des sacs :)



Placer une unité en hauteur

C'est bien de placer des sacs, des miradors, etc. Mais il faut aussi placer des unités. Par exemple, une statique en haut d'un bunker!

Commencez par placer le bunker, vous le trouverez dans la catégorie ci-dessous:
Image

Ensuite placer à l'intérieur du bunker la statique avec les options ci-dessous.
Le plus important c'est de régler l'azimut et le niveau. Dans notre cas, 3m.
Il n'y a pas vraiment de règles pour les hauteurs, mais en moyenne, un étage fait 3m.
Image

Placer ensuite l'unité sur carte à la verticale du point où elle doit se trouver.
Image

Prévisualisez et... tadaam :)
Vous avez votre statique!
Image



Placer une unité ou une arme statique faisant partie d'un groupe

Il arrivera souvent que vous souhaitiez placer les unités à un endroit précis, comme la mitrailleuse statique ci-dessus.
Dans le cas où cette unité fait partie d'un groupe, il faut faire attention à ce que l'unité ne soit pas en formation.
Plaçons par exemple une arme statique.

L'écran d'insertion devrait ressembler à ce qui suit.
Faites attention à sélection "Néant" pour l'option "Spécial".
Image

Ensuite, vous pouvez relier l'arme statique à un groupe d'unités à pied, en utilisant l'outil "Groupes" Image.
Image
Prévisualisez, l'arme statique est là où vous l'avez placée.

Vous oublierez souvent de sélectionner "Néant" au début... et vous remarquerez que vos unités ne sont pas là où elles devraient. Comme je l'ai dis dans le point "Placer un groupe", toutes les unités d'un groupe sont téléportées en formation (en V) derrière leur leader.
Ca inclut les statiques et les véhicules...



Placer un sniper

Une chose qui manque souvent dans ArmA, c'est la présence de Snipers sur les toits.
Un moyen simple de placer des unités sur les toits, c'est de les déposer sur le bâtiment et de mettre un niveau supérieur à zéro (généralement 4-6).

MAIS, ce n'est pas suffisant..
En effet, dès que l'unité sera prise pour cible ou qu'elle détectera une autre unité, elle va se déplacer et descendre du toit, généralement vers une fin tragique :)

Pour remédier à cela, il faut ajouter une initialisation à l'unité.
Tapez simplement la commande suivante:

Code : Tout sélectionner

this forceSpeed 0;
La commande forceSpeed comme son nom l'indique, force l'unité à respecter une certaine vitesse. Dans notre cas... 0Km/h. Du coup, elle ne peut pas se déplacer, mais elle peut tourner, se lever, se coucher, etc.

Image

Si vous voulez que le sniper reste dans une direction bien précise, vous pouvez utiliser la commande suivante:

Code : Tout sélectionner

this disableAI "MOVE";
Le sniper pourra se lever et s’asseoir, mais pas tourner.

Placez l'unité sur le toit du bâtiment.
Remarquez comme l'unité est presque au milieu dans l'éditeur, pourtant elle sera près du bord inférieur dans le jeu.
Image

Prévisualisez et... voilà, un sniper :)
Image

Petite remarque...
Pensez à créer des groupes pour vos snipers, simplement pour que les autres unités lui servent d'observateur pour détecter les ennemis.
Et dans ce cas... n'oubliez surtout pas de mettre "Néant" dans l'option "Spécial" du sniper, pour éviter qu'il soit téléporté ailleurs en début de mission.


Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Mettre des unités ou des joueurs dans un véhicule

Message par Tyrghen » 27 oct. 2014, 13:10

Mise à jour:13/11/2014

Mettre des unités ou des joueurs dans un véhicule

Parfois on peut vouloir placer des unités dans un véhicule qui n'est pas directement disponible dans l'éditeur. Comme par exemple, un véhicule civil rempli avec des CSAT.
Ou bien on peut vouloir placer des joueurs dans un véhicule au début de la mission.

Pour cela, la méthode la plus simple est la suivante.

On commence par placer un véhicule vide et lui donner un nom unique dans l'éditeur

Image

Ensuite, on édite l'initialisation de l'unité et on utilise une commande d'assignement suivie par une commande pour placer l'unité.
Le jeu de commande est le suivant: Dans l'exemple ci-dessous, je crée une unité qui servira de pilote au véhicule.
Image

Dans l'éditeur je place un lien avec l'option "Synchroniser" Image simplement pour que ce soit facile à visualiser.
Image

Ensuite je crée une nouvelle unité "Jouable" (au bas de l'image) ce qui permettra à un joueur de prendre ce poste. Et dans l'initialisation je le place dans n'importe quel poste avec "moveInAny".
Image


Le résultat en image:

Image


Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Points de passage, patrouilles et "réitérer"

Message par Tyrghen » 27 oct. 2014, 13:10

Mise à jour:27/10/2014

Points de passage, patrouilles et "réitérer"

Placer des unités dans l'éditeur c'est bien... mais laisser ces unités se déplacer, c'est mieux. Pour cela on utilise les points de passage.
Il en existe de nombreux types et certains sont décrits dans un autre tutoriels.
Ici on va faire très simple...


Placer un point de passage

Pour placer un point de passage, il faut tout d'abord sélectionner le leader d'un groupe (ou une unité isolée... qui par définition est leader de son groupe).
Ensuite, on clique sur l'icône des points de passage Image

Pour placer le point, il suffit ensuite de simplement double cliquer sur la carte là où on veut faire passer l'unité.
Ce qui ouvrira l'écran d'édition des points de passage.

Image

Je ne vais pas rentrer ici dans le détail des options des points de passage, ce n'est pas le but. On va créer une patrouille très simple.
Pour plus de détail, un tutoriel est consacré aux paramètres des points de passage.

Par défaut, le point de passage est de type "Se déplacer". Et c'est ce qu'on veut...
Image

Cliquez simplement sur OK pour placer le point. Ensuite double-cliquez sur un deuxième endroit, étant donné que le leader est toujours sélectionné, ça placera un deuxième point de passage, puis un troisième, ainsi de suite.
On arrive à quelque chose du genre:
Image

Vous pouvez déplacer vos points de passage en faisant un clic-gauche sur le point, en maintenant le bouton gauche et en glissant la souris.
Comme pour les unités.


Créer une patrouille

Vous aurez sans doute remarqué que le parcours s'arrête au dernier point... petit problème... les unités s'arrêteront là et n'iront pas plus loin.
Pas terrible comme patrouille...
On pourrait continuer à ajouter des points, mais ça va vite devenir ingérable avec beaucoup d'unités.

Pour remédier à ce problème, on a utiliser un autre type de point de passage, le type "Réitérer". Ce type de point de passage, permet de se connecter au point de passage existant le plus proche.
Image

Si on reprend le parcours précédent et qu'on ajoute le point de passage Réitérer, on voit qu'une ligne supplémentaire rejoint ce point et le point de passage le plus proche.

Image

Vous pouvez déplacer ce point de passage et vous verrez qu'il se reconnectera au point existant le plus proche.
Même si on ne le voit pas, chaque unité créée possède un point de passage par défaut qui se situe sur la position du leader du groupe.

Et voilà, une patrouille très simple...


Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Points de passage spéciaux

Message par Tyrghen » 27 oct. 2014, 13:11

Mise à jour:13/11/2014

Points de passage spéciaux

Il existe un certain nombre de points de passage spéciaux qu'on peut assigner à un groupe ou une unité. Le but de ce tutoriel est d'expliquer le fonctionnement et l'utilisation de certains d'entre eux (mais pas tous)

Quand vous placez un point de passage, le menu déroulant "Choix Type" vous offre une large gamme de possibilités.
Image


Se déplacer / Move
Les unités se déplacent vers ce point... rien de plus.


Tenir / Hold
Les unités qui reçoivent un point de passage de ce type vont tenter de défendre la zone autour de ce point.
C'est donc le type à privilégier pour placer des unités défensives.


Sentinelle / Sentry
Le groupe va rester en position jusqu'à ce qu'il aperçoive un ennemi confirmé. A partir de là, il va attaquer ou poursuivre l'ennemi en question.
Idéal donc pour un groupe en embuscade mais aussi pour des défenseurs.


Garder / Guard
Selon moi, c'est l'un des points de passage les plus puissants d'ArmA.
Un groupe qui reçoit ce point de passage, va rester en place, mais lorsque des unités alliées (de son camp donc) sont attaquées dans un rayon de 2km (approximatif), le groupe va se mettre en route pour prêter main forte à ses alliés.
Une fois la menace traitée, le groupe retourne vers sa position initiale.

Les possibilités offertes par ce point de passage sont nombreuses!
Quelques exemples:
  • Des groupes défendent un complexe assez large, vous voulez qu'ils se regroupent lorsqu'un ennemi est détecté, mais qu'ils reviennent en position ensuite (par exemple pour éviter une attaque de diversion).
  • Vous avez une groupe d'unité qui défend un point et vous souhaitez faire venir des renforts lorsqu'ils sont attaqués. Placez simplement des véhicules ou des unités avec un point de passage "Garder" à moins de 2km et vous aurez des renforts sans efforts (et qui riment...)
  • Vous pouvez disperser des petits groupes (2-3 unités) sur la carte en leur donnant ce point de passage. Quand les joueurs avancent et engagent des ennemis, au fur et à mesure qu'ils s'approchent de ces petits groupes, les unités vont s'activer pour prêter main forte aux groupes centraux. Ce qui créera des prises à revers, etc.
C'est l'un des principaux points de passage que j'utilise. Pour le reste, j'utilise plutôt des scripts pour les patrouilles.


Rechercher et détruire / Search and destroy
Lorsque le groupe arrive sur un point de passage de ce type, il va passer en mode combat et commencer à fouiller la zone à la recherche d'ennemis.
Si vous créé des patrouilles, utilisez ce point de passage de manière sporadique dans le parcours, pour que les unités cherchent des joueurs à cet endroit.


Réitérer / Cycle
Lorsque le groupe arrive à ce point, il reprendra le parcours au point de passage le plus proche. Ce qui permet de faire des boucles dans les patrouilles.


Vol en attente / Loiter
A n'utiliser que pour les véhicules aériens, ce point de passage fera tourner le véhicule autour de la zone, sous la forme d'une patrouille, mais sans devoir définir un cycle de points de passage.


Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Paramètres des points de passage

Message par Tyrghen » 27 oct. 2014, 13:11

Mise à jour:27/10/2014

Paramètres des points de passage

Si vous ne l'avez pas fait, je vous conseille de lire les deux autres tutoriels sur les points de passage, parce que je fais ici référence aux notions vue dans ces tutoriels.
Le but ici est de voir à quoi servent les paramètres des points de passage et comment les utiliser de manière pratique.



Placement, achèvement, hauteur

Image

Le rayon de placement d'un point de passage défini la zone dans laquelle ce point sera créé de manière aléatoire au début de la mission.
Ce qui signifie qu'à chaque fois que vous lancez la mission, le point de passage sera à un point différent dans ce cercle.
Lorsque vous entrez un rayon de placement, sur la carte vous voyez un cercle autour du point qui vous indique la zone ainsi définie.
Image

Le rayon d'achèvement d'un point de passage défini la distance à laquelle l'unité peut commencer à considérer qu'elle a atteint le point. Ca peut être utile si par exemple le point est dans une zone inaccessible, comme des rochers ou un zone largement entourée de barrières.

Concrètement, on utilisera le rayon de placement pour rendre le parcours des patrouilles imprévisible. Idéalement, si la distance entre 2 points de passage est de 100m, le rayon de placement sera entre 50 et 100m, ce qui vous assure de belles variations.

Le rayon d'achèvement lui a DEUX utilités, premièrement, il empêche que le groupe ne reste bloqué face à un point qu'il ne peut pas atteindre. Donc si vous donnez un rayon de placement à vos points, je vous conseille de mettre un rayon d'achèvement égal à 1/5 du rayon de placement (10-20m dans notre exemple).

La deuxième utilité d'un rayon d'achèvement, c'est que si les unités sont attaquées en cours de route vers ce point, si elles sont déjà à une distance inférieure au rayon d'achèvement, elles s'arrêteront directement pour riposter. En revanche, s'il n'y a pas de rayon d'achèvement, le groupe continuera à essayer de d'abord atteindre son point cible (Bon... sauf si vous avez un script type ASR AI qui tourne et qui change le comportement des IAs).

Dans une patrouille créée dans l'éditeur, je recommande donc de mettre un grand rayon d'achèvement, comme la moitié de la distance entre 2 points.



Dépasser le délai

Image

Ces trois valeurs forcent le groupe a attendre un certain temps sur ce point de passage avant de passer au suivant.
Le temps est aléatoire et est compris entre Min et Max, mais s'approchera le plus souvent de Moy.

Pour mieux comprendre, si vous mettez par exemple les valeurs:
Min: 5
Moy: 10
Max: 20
La valeur créée sera le plus souvent proche de 10 et rarement en dessous de 7 ou au dessus de 13 (Valeurs données à titre d'exemple, rien de scientifique).



Mode de combat, comportement, etc.

Image
  • Mode de combat: Ca permet de définir le comportement du groupe lorsqu'il se trouve face à un ennemi. Je pense que les options sont suffisamment descriptives par elles-mêmes.
  • Formation: Ca vous permet de choisir la formation adoptée par le groupe, V, Ligne, Colonne, etc.
  • Vitesse: Ce paramètre est plus important qu'il n'y parait... un véhicule qui se déplace vite est moins précis, enfin... surtout quand ce sont des IAs qui pilotent :)
  • Comportement: Je pense que c'est un point qui est assez mal compris par les débutants. Les différentes options sont: Inconscient, Sûr, Conscient, Combat, Discrétion.
    L'impact sur les déplacements du groupe est énorme.
    Si vous voulez qu'un véhicule suive les routes, il faut impérativement mettre les points de passage en "Inconscient" ou "Sûr". Dans les autres cas, le véhicule coupera à travers champs et forêts. Idem pour les unités.
    Un point en type "Discrétion" poussera les unités à avancer en utilisant un maximum de couvert, donc elles iront par des chemins détournés, etc. Plus lent.
    Pour une patrouille, je recommande "Conscient" ou "Combat"


Script d'un point de passage

Image

Lorsque le leader d'un groupe atteint son point de passage, Le script inscrit dans cette case va s'exécuter, mais parfois ça peut prendre du temps, par exemple si le groupe est sous le feu d'un ennemi. Dans ce cas le script ne sera exécuté que lorsque le leader considérera que le groupe est hors de danger et qu'il reprendra la progression vers le point de passage.

Ca peut donc être assez frustrant.... dans la mesure du possible j'essaye plutôt d'utiliser un déclencheur. Dans la partie script d'un point de passage je ne met généralement rien de critique pour la mission.
Si ça s'exécute, tant mieux... sinon... tant pis.


Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Bloquer un point de passage par déclencheur

Message par Tyrghen » 27 oct. 2014, 13:12

Mise à jour:14/11/2014

Bloquer un point de passage par déclencheur

Il est parfois utile de bloquer un convoi ou des unités jusqu'à ce qu'un événement précis se produise.
Et lors du déclenchement, lancer une suite de points de passage.

Deux exemples concrets:
  • des renforts: vous placez 4 ou 5 groupes dans la ville voisine avec un point de passage tout près du groupe et une série de points de passage de type "Rechercher et détruire" dans la ville où se passe l'action.
    Lorsque le déclencheur de type "Détection par l'est", les renforts arriveront de la ville voisine.
  • des unités qui se déploient sur une zone: vous avez des unités groupées autour de baraquements (ou dans les baraquements) et lorsque l'alarme sonne, elles vont se poster sur les zones à garder. Pour cela, vous avez un premier point de passage tout près du leader et un deuxième point de type "Garder". Plusieurs déclencheurs avec le type "Gardé par l'est" sont disposés sur la base.
    Lorsque l'alarme sera donnée, les unités passeront au point de passage de type "Garder" et iront se répartir autour de la base.

Etablir un parcours

Dans cette exemple, je garde les choses très simples... parce que c'est le principe qui nous intéresse.
Dans l'image ci-dessous vous voyez que j'ai placé une point de passage à côté du véhicule et un autre plus loin. Dans un cas réel, on aura plusieurs autres points de passage ou un point de passage spécial.
Image


Créer un déclencheur

La deuxième étape consiste à créer le déclencheur qui nous intéresse.
Ici je fais un simple déclencheur par radio pour appeler des renforts.
Image


Lier le déclencheur

La dernière étape consiste à synchroniser le déclencheur et le point de passage en utilisant l'outil de synchronisation.
  • cliquez sur l'icône de synchronisation Image
  • faites un clic gauche sur le déclencheur
  • maintenez le bouton gauche enfoncé et tirez une ligne jusqu'au point de passage
  • relâchez le bouton une fois que vous êtes sur le point de passage
Un trait bleu devrait relier les deux.

Image


Chauffez 5 minutes au micro-onde et ouvrez

Vous pouvez maintenant prévisualiser... et le véhicule ne bouge pas, tant que vous n'actionnez pas le renforts par radio.

Image


C'est une technique relativement simple, mais très utile.
On utilise le même principe pour synchroniser un déclencheur et un module par exemple.


Retour à la table des matières
Image

Avatar de l’utilisateur
Tyrghen
Membre des [V]Vétérans
Messages : 4119
Inscription : 14 oct. 2012, 22:47

Activer un déclencheur par un point de passage

Message par Tyrghen » 27 oct. 2014, 13:12

Mise à jour:17/11/2014

Activer un déclencheur par un point de passage

Parfois on veut pouvoir lier les déplacements de certains groupes par rapport à d'autres.
Généralement, mon conseil est de se baser uniquement sur des déclencheurs si possible... mais parfois c'est plus simple d'utiliser les points de passage.

Pourquoi est-ce que j'évite les points de passage?
Simplement parce que les IAs d'ArmA sont bien connues pour n'en faire qu'à leur tête. En plus, si vous avez des scripts d'IA qui tournent (comme l'ASR AI3), leur comportement peut être totalement imprévisible.
Du coup, rien ne vous garantit que le groupe passera effectivement par le point de passage prévu. Et donc rien ne garantit que l'objectif sera déclenché.

Cependant, il arrive que ce soit exactement ce qu'on recherche... que si tous les membres du groupe meurent ou se perdent, que rien ne se passe. Mais je pense que ça reste assez rare...



Insérez un point de passage avec un script d'activation

Il faut tout d'abord ajoutez un point de passage pour un groupe.
Dans la zone "Sur act." du point de passage, il faut ajouter le code qui va nous permettre de lier le point de passage au déclencheur.
On ne peut pas utiliser l'outil de Synchronisation, parce que celui-ci ne sert qu'à lier un déclencheur à un point de passage mais pas l'inverse.

Dans l'activation on va donc écrire le code suivant:

Code : Tout sélectionner

OBJ1 = true;
Ce qui veut simplement dire: Créer une variable globale nommée "OBJ1" (pour objectif 1) et lui donner la valeur "true" (vrai donc).

Image



Insérez un déclencheur qui utilise la variable

Maintenant, nous avons un point de passage qui crée une variable globale, qu'on peut utiliser dans d'autres scripts.
Et c'est ce que nous allons faire ici.
Si vous n'avez pas lu le tutoriel sur les déclencheurs... c'est peut être le bon moment.

On crée un déclencheur sans zone de détection (Axe A et Axe B égaux à 0), qui n'a pas de type, ni d'activation (parce que nous n'utilisons pas la variable spéciale "this" du déclencheur) et dont la condition d'activation va être modifiée pour utiliser la variable globale créée précédemment.

Pour rappel, le champ "Condition" doit contenir des commandes qui renvoie une valeur "true" (Vraie) pour que le déclencheur s'active.
Dans notre cas, nous donnons simplement la variable "OBJ1".

Image

Au début de la mission, la variable OBJ1 n'existe pas. Donc le déclencheur ne peut pas s'activer parce que sa condition renvoie une valeur qui n'est pas "True".
Une fois que le groupe passe par le point de passage, la variable devient vraie et donc le déclencheur s'activera.



Résultat dans le jeu

Prévisualisez et vous verrez que le déclencheur s'activera quand le groupe atteint son objectif.

Image



Problème de localité

La localité (locality en anglais) dans ArmA 3 fait référence à l'ordinateur sur lequel un script, une commande ou un objet réside.
Un tutoriel sur ce sujet est en cours d'écriture.

En résumé, pour le cas des déclencheurs, ceux-ci sont créés sur chaque Ordinateur qui charge la mission.
Ce qui veut dire que lorsque vous placez un déclencheur dans l'éditeur, ce déclencheur sera en fait créé localement sur le serveur, mais aussi sur chacun des ordinateurs qui vont exécuter la mission (les joueurs et les clients headless).

On a donc l'impression lorsqu'on joue, qu'un déclencheur a un effet global (qu'il s'exécute sur tous les PCs à la fois) mais c'est faux... il s'exécute en fait sur chacun des ordinateurs. Et le déclenchement n'est JAMAIS synchronisé.

Le résultat, c'est que lorsqu'un joueur rejoint la mission en cours de partie (parce qu'il est arrivé en retard ou bien qu'il a perdu la connexion et a dû se reconnecter), tous les déclencheurs seront créés à neuf pour ce joueur.
Ce qui fait que le joueur verra la mission dans l'état où elle a démarré et aucun des déclencheurs activés entre temps ne seront exécutés.

Prenons un exemple concret.

On a un déclencheur qui détecte que la ville d'Agios Dyonisos a été prise par les BLUFOR (avec un déclencheur de type "Pris par Ouest").
Lorsque ce déclencheur s'active, il crée la tâche suivante dans Telos. Tous les joueurs se rendent donc à Telos.

C'est à ce moment qu'arrive notre joueur (JIP - Join In Progress).
Il charge la mission... les déclencheurs sont créés... mais il ne reçoit pas la tâche lui indiquant de rejoindre Telos.
Pourquoi?
Parce qu'il n'y a plus de joueurs dans Agios Dyonisos, du coup... le déclencheur "Pris par Ouest" ne peut pas s'activer sur son PC, puisque ce déclencheur nécessite la présence d'unités BLUFOR sur place.

Voilà, typiquement un problème de localité. Les événements des déclencheurs étant locaux, ils ne sont pas synchronisés.

L'exemple du point de passage ci-dessus aura exactement le même problème... Le groupe ayant déjà atteint le point de passage avant que le joueur ne se connecte, le code ne sera JAMAIS exécuté sur l'ordinateur du joueur.

Comment résoudre ce problème?

Il n'y pas de solution à toute épreuve. Mais la solution la plus simple est de passer par une variable publique. Les variables publiques sont des variables globales, synchronisées entre tous les ordinateurs. Lorsqu'un joueur se connecte, toutes les variables publiques sont synchronisées avec son ordinateur.

Dans notre cas, le code du point de passage devient:

Code : Tout sélectionner

OBJ1 = true; publicVariable "OBJ1";
Premièrement on crée la variable OBJ1 et on lui donne la valeur "true".
Ensuite on rend cette variable publique à l'aide de la commande publicVariable.
ATTENTION il faut absolument écrire la variable entre guillements (") si vous voulez utiliser la commande publicVariable.

Le résultat, c'est que le déclencheur s'exécutera dès que la variable est synchronisée avec l'ordinateur du joueur qui se connecte.
Et donc la tâche s'affichera comme prévu.

Mais bon... attention quand même à ne pas abuser des variables publiques. Plus vous en créez, plus il y aura de choses à synchroniser entre les ordinateurs, ce qui peut nuire aux performances du serveur.



Retour à la table des matières
Image

Verrouillé