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 > Les déplacements > Lecture du tutoriel

Les déplacements

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
Visualisations : 4 110

Plus d'informations Plus d'informations
Le fait de mettre des NPCs sur une map n'est pas suffisant pour rendre le tout réaliste et utiliser à sa pleine mesure l'intelligence artificielle des NPCs. Donc pour commencer voyons un peu le minimum syndical à faire au niveau d'une map comportant des NPCS.
Sommaire du chapitre :
Icône du chapitre
Sommaire Chapitre suivant

Les déplacements simples

Dans une map le joueur peut se déplacer sans problèmes car il voit tout ce qui se passe autour de lui (en principe :p ), mais les NPCs ne voient un mur (ou un trou) que lorsqu'ils le heurte (ou tombent dedans). Il est donc nécessaire de les informer sur la configuration de la carte, on utilise pour cela les info_node.

Les info_node de base



info_node


Image utilisateur
L'entité de base indispensable dans une map solo.
Elle permet aux NPC de se repérer dans le niveau. Il faut en placer dans tous les endroits (escalier, rue, etc) où les NPCs pourront aller. La façon dont vous placer vos info_node sur votre map peut tout changer: il ne faut pas qu'ils soient collés les uns aux autres (ça sert à rien et ça provoque des bugs), ils ne doivent pas non plus être trop éloignés les uns des autres sinon les NPC auront du mal à se déplacer (les citoyens n'arriveront pas à vous suivre).

L'entité se place au niveau du sol (la hauteur n'est pas trop importante, mais éviter de les mettre au plafond ;) ), mais c'est la disposition au sol qui fait que la map peut être très intéressante (les NPCs se déplacent sans problèmes) ou alors complètement ratée (les NPCs ne font que venir vers vous en ligne droite, et ne font plus rien dès qu'ils ne vous voient plus).


info_node_hint


Image utilisateur

Cette entité n'est pas indispensable dans une map solo mais elle permet d'informer les NPC sur des lieux précis, ce qui rendra les combats plus intenses: pour cela placer un info_node_hint sur le sol et éditez ses propriétés (Alt+Entrée ou double clic gauche).
Tout d'abord regardons la case Hint Group, si vous voulez que votre NPC utilise cet info_node_hint vous devez y inscrire un mot (combine, citoyen, banane, carotte, zozor, etc...), et ce mot vous devez aussi l'inscrire dans la case Hint Group du NPC pour que celui-ci puisse l'utiliser, (En règle générale on créé 2 Hint Group, combine et citoyen).

Ensuite regardons la case Hint qui comme vous pouvez le voir peut prendre de nombreuses valeurs, je vais vous expliquer les principales:

Crouch Cover Medium: cela sert à indiquer qu'à cet endroit, le NPC (combine ou citoyen) peut s'abriter derrière quelque chose d'assez haut (un éboulis, une grosse caisse, une poubelle, etc...).Si il passe à proximité, il pourra se mettre à l'abri, il faut en mettre quelques uns pour que les combines vous résistent un peu plus longtemps et que les citoyens s'abritent des tirs de sniper et de mitrailleuses.

Crouch Cover Low: comme précédemment, cela indique que le NPC peut se mettre à l'abri, mais cette fois ci, il s'agenouillera pour s'abriter, on va donc placer cette entité derrière un abri de faible hauteur (un muret, des tonneaux placés par vos soins, etc...).

Enemy Disadvantage Point: le nom vous dit tout mais bon je vais quand même vous l'expliquer ;) . En entrant cette valeur, le NPC saura qu'en étant à ce point, sa position lui donnera un avantage sur l'ennemi (latéral, par dessus). Mais il ne faut pas en abuser car les NPCs ont la fâcheuse habitude de foncer vers cet info_node_hint dès qu'ils peuvent en atteindre un.

Entrance / Exit Pinch: cette clef permet d'empêcher les bouchons sur le periph que les NPCs restent tous coincés dans un passage étroit, ils sauront qu'ils doivent y aller un par un (on en met surtout à l'intérieur des bâtiments au niveau des portes).

Override jump permission: cette fois ci, il faut placer 2 info_node_hint, (un pour le départ et un pour l'arrivée). Cela permet d'informer les NPCs sur le fait qu'ils peuvent sauter d'un point en hauteur (pas trop haut sinon le NPC ne sautera pas ou il se blessera); On en trouve un certain nombre dans les chapitres Anti citoyen et Suivez Freeman de HL2.


Les autres info_node



Info_nodeImageFonction
Info_node_air Image utilisateur Il a la même fonction que l'info_node normal, mais il est utilisé par les NPC volants (scanners, hélico, pigeon).
Info_node_air_hint Image utilisateur Il a la même fonction que l'info_node_hint normal, mais il est beaucoup moins utilisé que son équivalent terrestre.
Info_node_climb Image utilisateur Cet info_node est utilisé par les npc_fast_zombie, cela leur indique qu'ils peuvent grimper à cet endroit.





Les patrouilles

Bon maintenant que vous savez informer les NPCs sur l'environnement, ce serait bien de les obliger à suivre un chemin prédéfini afin d'animer un peu vos maps, c'est ce que nous allons voir ici. J'ai appelé cette partie patrouille mais on peut faire faire bien d'autres choses à votre NPC avec ce que je vais vous apprendre.

Pour faire suivre un chemin prédéfni à votre NPC, il faut tout d'abord définir (c'est à dire tracer) ce chemin :D , on utilise pour cela les path_corner, ils sont très simple à utiliser: seule deux champs doivent êtres remplis (pour l'instant):

KeyValue
Name nom de l'entité
Next Stop Target nom de l'entité suivante

Leur hauteur n'est pas importante pour les NPCs terrestres mais les NPCs aériens eux essayeront d'être le plus proche possible des path_corner, donc là leur hauteur à une importance.

Image utilisateur

Comme vous pouvez le voir, les path_corner sont reliés entre eux, ce qui permet de vérifier le chemin du NPC (ici il va tourner en rond), mais il ne faut pas oublier de mettre quelques info_node pour permettre au NPC de retrouver le path_corner suivant si il s'écarte du chemin à cause d'obstacles comme le joueur ou autre chose.

Bon maintenant passons à la configuration de notre NPC (je prends un citoyen pour que ça soit plus facile, je vous expliquerai un peu plus tard comment faire avec un ennemi).
Dans l'onglet Class Info:
KeyValue
Target Path Corner nom du path_corner de destination

Ca va c'est pas trop dur :D , maintenant passons à l'onglet Flags, vous devez cocher les cases:

Chaque fois qu'un NPC passe par un path_corner celui fait office de trigger; ça nous ouvre des perspectives, je vais vous en expliquer une: la suppression d'une entité.
Nous sommes dans une ville de votre création, il y a des npc_strider en patrouille, l'ennui c'est que une fois que ce dernier est arrivé au bout du chemin, il peut faire ce qu'il veut, pour empêcher cela on va le supprimer lorsqu'il arrive au dernier path_corner grâce à l'onglet Outputs:

My output nameTargets entities namedVia this input
OnPass strider_1 Kill

Le npc_strider sera ainsi supprimé de la map, de plus cela permet de soulager un peu le moteur du jeu (moins d'entités à gérer quand il y en a des centaines c'est important).

Pour faire encore mieux

Contrairement à l'intelligence humaine, l'intelligence artificielle des NPCs montre parfois ses limites lors des déplacements.
Les NPCs peuvent êtres bloqués par des éléments du décor, pour cela on utilise la texture npcclip:

Image utilisateur

Cette texture à la propriété de bloquer le NPC, en la plaçant autour des éléments qui seraient amenés à bloquer les NPCs vous empêcherez ces derniers de se bloquer.

Vous voulez un exemple, bon je suis gentil en voici un:
Dans ce couloir (créé à l'arrache rien que pour vous :-° ), ce grillage tordu peut bloquer les NPCs:

Image utilisateur


On va donc créer un bloc avec le texture npcclip qui recouvre le bloc de façon à empêcher les NPCs de l'approcher de trop près.

Image utilisateur

C'est avec ce petit truc qu'on arrive à faire des maps avec des NPCs qui ne sont pas bloqués toutes les 30 secondes par un élément du décor.

Q.C.M.

Quelle entité est indispensable dans une map solo?
Comment faire pour que les NPCs ne soient pas bloqués par des éléments du décor?

Statistiques de réponses au QCM


Maintenant que vous savez déplacer les NPCs selon vos désirs et qu'ils savent eux se déplacer de manière autonome, on va pouvoir passer aux choses sérieuses, les faire combattre :D .
Sommaire Chapitre suivant
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

1 commentaire

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 82 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.022s (0.0113s)