Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Mapping > [HL2] Général > Les NPC de Half Life 2 > Les bases > TP: un débarquement de soldats > Lecture du tutoriel

TP: un débarquement de soldats

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : Tortue facile
Note : 18 / 20 (2 votes)
Visualisations : 2 331

Plus d'informations Plus d'informations
Image utilisateur
On va maintenant mettre tout ce que vous avez appris jusqu'ici en application, pour cela on va réaliser un débarquement de soldats combine depuis un aéronef, en l'occurrence un npc_combinedropship. Cette entité est capable de suivre un chemin jusqu'à une zone où elle y dépose des soldats (6 maximum) puis repart.

Je vais tout d'abord vous expliquer le scénario car dans tous les bons jeux il y a un scénario, puis je vais vous apprendre quelques petites choses à savoir pour réaliser ce TP ; surtout sur le npc_combinedropship qui n'est pas un NPC comme les autres.

Enfin on passera à la réalisation du TP où je vous expliquerai pas à pas ce qu'il faut faire, libre à vous (c'est même conseillé) de l'améliorer par la suite.

Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire

Objectif du TP

Commençons par le début, ce que vous allez réaliser:

L'histoire est très simple vous êtes dans une petite maison avec une arme, vous sortez de la maison et à ce moment là vous apercevez un transport de troupe du cartel qui se dirige vers vous en vous canardant. Vous vous abritez dans la maison mais c'est alors que vous apercevez que l'engin s'est posé et est en train de débarquer ses soldats. Ils se mettent alors en position pour donner l'assaut à la maison dans laquelle vous vous trouvez.

Ce n'est pas un scénario terrible mais ça va vous faire travailler un petit moment pour réaliser ce combat qui mine de rien peut durer plusieurs minutes voir plus.

En premier lieu il nous faut une maison et comme je suis très gentil je vais même vous en fournir une, comme ça vous n'aurez plus aucune excuse pour réaliser ce TP:


Vous n'êtes absolument pas obligés de la télécharger, vous pouvez en créer une par vous même mais je préfère en proposer une comme cela vous pouvez vous concentrer sur la configuration de l'assaut et tout le monde part sur un pied d'égalité.

A partir de maintenant je pars du principe que vous avez téléchargé la map: comme vous pouvez le voir, elle est très basique (une maison sans meubles avec juste une porte et un trou à l'arrière de la maison, je vous laisse deviner pourquoi :D ) mais elle sera parfaite pour le TP.

Avec ce que vous avez appris dans les chapitres précédents vous êtes capables de réaliser un assaut mais pas de configurer un débarquement puis un assaut coordonné, on va tout de suite y remédier.

Des choses en plus

Avant de réaliser le TP il y a quelques petites choses qu'il faut que vous sachiez:

Configuration du débarquement



Pour réaliser cela il nous faut:

Configuration des soldats



Leur configuration est assez simple, il suffit juste de leur donner un nom (exemple: soldat1, soldat2, etc...), de les armer :D mais il faut aussi dans l'onglet Flags cocher la case Template NPC (used by npc_maker, will not spawn), il faut cocher cette case sinon le npc_combinedropship ne pourra pas débarquer de troupes, vous allez comprendre juste après lors de sa configuration.

Rassurez vous, dans le prochain chapitre on ne va parler que de ça mais pour le moment je vous demande de me faire confiance et de cocher la case ;)

Configuration du npc_combinedropship



Comme je l'ai dis précédemment, le npc_combinedropship (que l'on va nommer dropship) suit les path_corner et exécute des scripts donc on va lui tracer un chemin pour qu'il puisse se rendre sur le lieu où il doit débarquer les soldats puis un autre pour qu'il puisse repartir une fois sa mission accomplie.

Pour le chemin de départ: on place 2 path_corner, l'un au fond de la map qu'on appellera path1 et un autre au dessus de la zone de débarquement à une hauteur de 256 unités environ et on l'appellera path2.

Pour le chemin du retour: on en place un pas trop loin de la zone de débarquement (on l'appellera path3) et le dernier vers le fond de la map avec pour nom path4. Ensuite on relie entre eux path1 et path2 puis entre eux path3 et path4 mais surtout ne pas relier entre eux path2 et path3 sinon vous verrez le vaisseau qui suivra le parcours sans déposer sa cargaison :( . Je n'explique pas comment les relier entre eux car vous avez appris cela lors du cours sur les patrouilles, je vous invite à aller le relire si vous ne savez pas comment faire.

Pour le npc_combinedropship, vous allez mettre dans le champ Target path_track le nom du second path_track, c'est à dire path2.

o_O Ou j'ai rien compris aux patrouilles ou tu t'es trompés, ce serait pas plutôt path1 ?

Et bien non car en fait dans une vrai map le vaisseau surgit souvent de derrière une colline ou un immeuble et va suivre le chemin décrit par les path_track jusqu'au path_track indiqué car en fait il va remonter le chemin des path_track jusqu'à ce qu'il tombe sur celui qui contient les instructions suivantes:

Dans l'onglet Outputs:

My output namedTargets entities namedVia this inputWith a parameter override of
OnPass dropship FlyToSpecificTrackViaPath path2


Ces instructions demandent au npc_combinedropship de voler jusqu'au path_track indiqué en suivant le chemin tracé par les autres path_track, de plus il sait qu'en arrivant au path_track indiqué il aura autre chose à faire, ça lui permet d'anticiper et donc d'enchainer les actions sans problèmes.

Une fois qu'il arrive au path2, il va déclencher un script qui l'oblige à se poser et à débarquer ses troupes, pour cela dans l'onglet Outputs:

My output namedTargets entities namedVia this inputWith a parameter override of
OnPass dropship LandTakeCrate 4


Il va donc se poser et débarquer ses soldats (ici il en débarque 4 mais il peut en débarquer jusqu'à 6), mais il faut aussi lui indiquer où il doit les déposer. Pour cela on utilise un info_target que l'on nommera zonedeb et que l'on placera au sol pas trop loin du path2.

Ensuite chaque soldat qui débarque doit savoir où il doit se rendre, pour cela on va placer les 4 autres info_target pas trop loin du premier et leur donner à chacun un nom différent (exemple terre1, terre2, etc...). Ils resteront chacun à cet endroit jusqu'à ce qu'un script leur demande de faire autre chose.

Passons maintenant au npc_combinedropship, il va y avoir un certain nombre de champs à remplir:

ChampValeurExplication
Name dropship c'est plus la peine que j'explique pourquoi il faut lui donner un nom
Target path_track path2 le nom du path_track vers lequel il doit se diriger au final
Land target name zonedeb c'est le nom de l' info_target qui indique la zone d'atterrissage (attention à l'orientation)
Name of template NPC 1 soldat1 nom du premier soldat qui va sortir du vaisseau (faites pareil pour les autres npc)
Name of dustoff point for NPC 1 terre1 c'est le nom de l' info_target vers lequel le NPC va se diriger à sa sortie du vaisseau
Crate Type Soldier Crate c'est le container de transport de troupe pour le npc_combinedropship


Une fois qu'il a fini de débarquer ses troupes, le npc_combinedropship doit exécuter un script qui l'oblige à repartir en suivant un autre chemin (au bout duquel le npc est souvent supprimé pour soulager le moteur du jeu), pour cela on va faire comme à l'allée, donc dans l'onglet Outputs du npc_combinedropship :

My output namedTargets entities namedVia this inputWith a parameter override of
OnFinishedDropoff dropship OnFinishedDropoff path4


Cela indique qu'une fois le débarquement fini, le npc_combinedropship doit se diriger vers path_corner numéro 4 en suivant le chemin tracé par les autres path_corner.

Configuration du logic_relay



Image utilisateur
Le problème: c'est que une fois les npc_combine_s débarqués, ils restent là où ils sont ce qui n'est pas très bien, on va donc faire en sorte qu'à la fin du débarquement un assaut se déclenche et pour cela on va utiliser un logic_relay. En fait un logic_relay, c'est juste un relais, on le déclenche par un output et à son tour il va déclencher une série de scripts, il est juste là pour nous permettre de mieux nous organiser lorsqu'on mappe. Vous n'êtes pas obligé de faire comme moi et de l'utiliser mais c'est beaucoup plus pratique et ça permet de mieux s'organiser sur la map.

Tout d'abord il faut le déclencher ce logic_relay (on va aussi lui donner un nom par exemple relais1), et comme il doit être déclenché à la fin du débarquement, on va tout simplement le déclencher comme l'instruction précédente:

My output namedTargets entities namedVia this inputWith a parameter override of
OnFinishedDropoff relais1 Trigger <none>

Mais maintenant qu'est ce qu'on fait ? Il va déclencher quoi ton logic_relay?

Il va déclencher le début de l'assaut: si vous n'êtes pas au point sur les assauts je vous conseille d'aller relire le tuto qui en parle. Le logic_relay va activer les ai_goal_assault pour que chaque NPC se rende à son assault_rallypoint, puis il va attendre que les autres NPCs soient aussi en place afin de charger tous en même temps.

Image utilisateur

Mais pour déclencher un assaut à un autre moment qu'au chargement de la map il faut que l' ai_goal_assault qui gère cet assaut soit désactivé au démarrage (pour cela on met dans le champ Start Active la valeur No.

Configuration du math_counter



Image utilisateur
Certains vont faire "beeeeh" et je les comprends (en leur répondant y a pas de mais :p ). En effet cette entité à comme représentation des moutons qui sautent par dessus un barrière car c'est son rôle de compter les moutons. A chaque action dans le jeu (mort d'un NPC, porte ouverte, etc...) un output contenant une valeur (1, 2, 3, .. 37) peut être envoyé au math_counter et une fois arrivé au résultat voulu celui ci déclenche un autre output.
Ici on veut faire un assaut coordonné, c'est à dire qui se déclenche au moment où tous les NPCs sont en position. Et pour moi un NPC est en position lorsqu'il se place sur son assault_rallypoint, à ce moment là un output va être déclenché et ajouter +1 au math_counter, et lorsque celui ci aura atteint le nombre voulu il déclenchera l'assaut :-° (Ici j'appelle le math_counter: gogogo).

Un npc arrive sur un assault_rallypoint, cela va ajouter +1 au math_counter:

Image utilisateur


Il y ici 4 assault_rallypoint qui chacun vont ajouter +1 au math_counter, donc lorsque celui ci arrive à 4 il doit déclencher les assauts:

Image utilisateur


Et c'est parti: les 4 NPCs vont s'élancer tous en même temps, c'est à vous de jouer maintenant.

Réalisation

Maintenant que je vous ai tout expliqué vous pouvez vous lancez et essayer de réaliser ce TP. Vous n'êtes absolument pas obligé de faire comme moi, ce n'est qu'une méthode et c'est pareil pour la map que je vous ai proposé au début, vous pouvez en utiliser une de votre création ;)
Mais pour ceux qui bloqueraient quelque part je leur propose une correction de la map du début:



Elle reprend exactement ce que je vous ai dit juste avant: il ne tient qu'à vous de l'améliorer:

Si vous avez des problèmes avec la réalisation de ce TP n'hésitez pas à m'envoyer un mp ou exposez votre problème sur le forum où d'autres zmappeurs pourront vous aider :D

Et voilà le première partie de ce big tuto sur les NPCs est finie. Je vous ai appris les bases pour pouvoir insérer quelques NPCs dans vos maps et pour pouvoir comprendre les tutos de la deuxième partie :D où vous allez approfondir vos connaissances.
Chapitre précédent Sommaire
Retour en haut Retour en haut


Créé : le 14/12/2006 à 16:49:11
Modifié : le 22/08/2008 à 15:49:51
Avancement : 0%
Licence : Copie non autorisée

3 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 75 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0685s (0.0583s)