Jump to content

[Tuto] Création d'un NPC


Suuk

Recommended Posts

Introduction

Dans ce tuto, je vais survoler la création de:
-Une Maison dans un environnement ouvert(le Wasteland), avec son extérieur et son intérieur.
-Un NPC avec un simulacre de train de vie pour vous apprendre les bases. Ce NPC sera aussi vendeur à ses heures perdues.

Dans ce tuto, vous n'apprendrez pas:
-A faire des dialogues.
-A réaliser des scripts et a les utiliser
-Qui a tué Kennedy.

Posez toutes les questions que vous voulez, hormis celles interférant avec mon paragraphe ATTENTION :). Si par mégarde j'aurai oublié de dire ou de faire des choses, merci de me le préciser également!

Avant de créer n'importe quel NPC, il faut se demander ce que l'on veut en faire. On se lance pas comme ca en se disant: allez c'est parti, je fais un NPC, on verra ce que ça donne. Il faut d'abord se demander qui il va être, comment il se comporte, quelles sont ses occupations. Si c'est un NPC sans grande importance, vous n'avez pas à être extremement précis. Mais si c'en est un crucial dans une quete/dialogue, il vaut mieux qu'il soit cohérent. Je vous invite bien évidemment à ne pas recopier les erreurs de Bethesda: Le copier/coller. Si vous allez a Megaton, vous trouverez une dizaine de vrais PNJs, les autres sont tous des copies les uns des autres (Megaton Settler) Donc, même si un PNJ n'est pas important, essayez de lui donner une réelle consistance, du dialogue, un train de vie, des choses qu'il aime et qu'il déteste, etc etc...
Dans ce tutorial, nous allons juste créer un seul NPC. On va l'appeler Joe. Joe n'est ni intéressant, ni important, alors je ne vais pas lui écrire une histoire. Joe sera le personnage éphémère qui nous servira de tutoriel ambulant.

ATTENTION: Je conseille et meme je recommande vivement, de suivre les tutoriaux vidéos(ou écrits) de Bethesda avant de voir ce tutorial la. De plus, j'aborde les dialogues mais je ne dit pas comment les faire, regardez le tutorial de Rivs la dessus si vous voulez en apprendre plus. Je n'ai pas très envie de répondre à des questions alors que tout est déjà dit autre part. Par contre, si vous avez regardé les vidéo de Beth mais que l'anglais c'est pas votre truc, alors ok, je veux bien vous éclaircir, mais sinon, non. De plus, j'aborde les Packages, mais vite fait. Pourquoi? Car tous les Packages se ressemblent beaucoup dans leur création. Tout ce qui change, c'est ce qu'ils font réellement dans le jeu, et ca, ce n'est pas nous qui le programmons. Donc je n'aborde que le Package "Eat", et je fait des allusions a d'autres. Si vous avez des questions sur un Package Précis, alors la, je veux bien rajouter a la suite de ce tutorial des infos sur ce package en particulier. Mais je n'ai pas envie d'user mes doigts si tout le monde sait déja ce à quoi servent les différents Packages :P.


La Maison:

La premiere chose à faire est de trouver où notre NPC va s'installer. J'ai choisis la cellule (-4, -8), que j'ai renommé NTShack pour le tutorial. Il ne reste plus qu'à lui installer son petit chez-lui. J'ai choisis de le mettre dans une maison style bidonville, cet homme n'est pas très riche, on va pas lui offrir Tenpenny Tower. N'oubliez pas de donner de la "vie" a votre mod, et donc, on ne va pas juste poser une maison en plein milieu d'une plaine. Ajoutez quelques rochers, des buissons, des arbres, tout ce qu'il faut pour que ca ressemble a quelque chose.

Vous pouvez éditez le terrains pour qu'il soit plus ou moins plat, et refaire les textures qui le composent. Pour cela, appuyez sur la touche "H". Ca vous met une nouvelle fenetre, et quand vous passez la souris sur la fenetre de Rendu, un cercle rouge apparait.

Image IPB

-Pour changer le rayon du cercle, changer la valeur dans Radius.
-Pour faire un endroit plat, selectionnez un rayon et cochez la case "Flatten Vertices"
-Pour faire des pentes lisses, cochez la case "Soften Vertices"
-Pour changer la texture appliquée, séléctionnez la dans la liste.
-Le bouton gauche de la souris sert a modeler le paysage, tandis que le bouton droit applique la texture.

Voila ce que ça donne chez moi:

Image IPB

Dans mon WoodShackPile01, je l'ai rempli avec des objets comme des étagères(Shelf), une tondeuse a gazon et des lames(Lawnmower et Lawnmower blade), des ustensiles en tout genre(que l'on peut trouver sous: Items>Misc Items). J'ai aussi rajouté des arbres sur les cotés de la maison, ainsi que des tas de rochers. On peut voir aussi en haut a gauche et en bas à droite que j'ai rajouté des barrières. Bref, meublez votre environnement.

Maintenant, la partie chiante, c'est de refaire le NavMesh. Pour ceux qui n'auraient pas suivit les tuto vidéo de Bethesda, le Navmesh sert aux PNJ a trouver leur chemin. Sans ça, ils resteraient tout le temps sur place. Cliquez sur le bouton Navmesh Image IPB. Ca va ramer un petit moment, car dans les endroit en extérieur, vu le nombre de Navmesh, il a beaucoup a enregistrer. Minimisez votre vue en regardant le sol pour que ca soit plus fluide.

Image IPB

-Appuyez sur la touche "W" pour voir le navmesh à travers les objet(donc a travers la maison).
-Maintenant, il faut le modifier pour que les PNJs ne puissent pas passer la ou il y a des objets(sinon ils se cognent dedans). Pour cela, supprimer les triangles en dessous de votre maison, et modifier le Navmesh pour en faire le tour.
-Faites également le tour des armres/rochers/objets statics que vous avez crée. Pas besoin d faire le tour des objets que l'on peut bouger en jeu par contre (Misc Items/Weapons, etc...).

Voila le résultat(Dur de prendre un screen d'ensemble qui montre bien tout^^, donc on croirai que j'ai mal fait, mais je suis bien passé a coté de tous les Statics):

Image IPB

Avant de Finaliser le Navmesh(pour rajouter les traits Verts qui signifient les limites des différentes Cells, et le navmesh entre l'intérieur et l'extérieur de la maison), nous allons nous occuper de tout le reste. On y reviendra a la fin.


Après avoir réalisé l'extérieur et le Navmesh, on passe à l'intérieur, qui est à peu près la même chose. Trouver la pièce maitresse(l'intérieur de maison), et le remplir de tout ce qui colle à l'environnement. Pour cela, on va utiliser une piece qui existe déja. Pour garder les informations concernant les lumieres Prenez donc une cell intérieure qui ressemblerait à ce que vous voulez réaliser(Le vault 101 pour un vault neuf, la maison de Jericho pour une maison bidonville, le vault 108 pour un vault saccagé, etc...) On va donc utiliser la maison de Jericho. Dans la fentre "Cell View", choisissez Interiors dans le World Space. Puis dans la liste, trouvez MegatonJerichoHouse. Click droit dessus>Duplicate Cell. Vous avez ensuite juste en dessous de cette cell, une nouvelle cell qui s'appelle MegatonJerichoHouseCOPY000. Renomez la avec le nom de votre futur intérieur. J'ai choisis: NTShackInterior. Ensuite, Click droit>Edit sur notre nouvelle cell, et dans l'onglet Interior Data, mettez le nouveau nom de la maison a la Place de Jericho's House. J'ai choisis "Maison de Joe", pour faire simple. Enlever aussi Jericho du menu déroulant concernant le "Owner NPC". Mettez NONE à la place. Faites OK et double cliquez sur votre Cell dans la liste.

Dans la fenetre de rendu, S'il y des choses que vous voulez garder, mettez les de coté et supprimer le reste. Il faut aussi supprimer l'ancien NavMesh. Pour cela, entrez dans le mode Navmesh, mettez vous en mode Vertex(points) et sélectionnez entierement le NavMesh. Ensuite, dans la Barre de Menu, choisissez le menu NavMesh, et sélectionnez: "Remove Cell Navmeshes". Ca y est, vous êtes prêt à faire votre intérieur. N'oubliez pas de mettre des lumières et des "fx" sinon vous ne verrez rien dans votre pièce en jeu :).

Voila le mien:

Image IPB
(La piece maitresse est un WoodShack3Interior, les lumieres sont pour la plupart de la famille des Vault87Light, et les rayon de lumières sont des FxLightBeam)

Puis vous faites le Navmesh
Rappel sur le Navmesh:
V: Selectionner l'outil Vertex(points)
G:Sélecionner l'outil Edges(lignes)
T:Selectionner l'outil Triangle (Triangle :D).
Ctrl+Click Droit: Créer un nouveau Vertex
A:En ayant trois vertex séléctionnés, crée un Triangle entre les trois.
W: changer le mode de vue(Normal/Static transparent/Navmesh uniquement)

Voila le mien:
Image IPB

A la fin, cliquez sur le bouton ressemblant a un carré noir a coté d'un point d'interrogation jaune(Find covers for current cell). Il permet de déterminer ls endroits où les NPCs peuvent se mettrent à couvert. Ca nous sert a rien dans ce tuto, mais vaut mieux prendre l'habitude :). On ne finalise pas tout de suite le Navmesh. On le fera tout à la fin, comme pour l'extérieur.


Le NPC

On passe à la partie qui nous concerne le plus, le NPC en lui-même.
Allez dans l'Object Window et séléctionnez: Actors>NPC. Dans la liste à droite, Click droit>New.
Première chose à faire, donner un ID(NTJoe), et un Nom(Joe) au NPC. Une fois que c'est fait, cliquez sur OK pour que le GECK enregistre l'ID du NPC. Retrouvez ensuite votre ID dans la liste et Double-Cliquez dessus. Tout ce que je choisit pour mon pnj Joe est sur les Screenshots, si vous voulez voir comment je le compose.

Onglet Traits:

Image IPB

Nous faisons un NPC unique. Donc la partie Template Data ne nous interesse pas.

Dans les cases à gauche, vous avez:
Script: Pour attacher un script à votre personnage. On ne s'y interessera pas dans ce tutorial, qui est
un tutorial sur le Geck, et non le Scripting.
Essential: Permet de mettre le NPC essentiel dans le jeu (il ne peut pas mourir).
Respawn: Cochez si vous voulez que votre personnage Respawn(3 jours par defaut). Non conseillé pour un NPC unique.
Quest Item: Si le personnage meurt, son cadavre sera toujours conservé la ou il est mort. Il ne disparait pas.
Is CharGen Face Preset: Si vous cochez cette case, le Joueur peut choisir cette tete lorsqu'il crée son personnage.
No Low Level Processing: Si le joueur n'est pas dans la meme Cell que le NPC, celui-ci restera inactif, sans s'occuper de ses Packages(voir onglet Packages)
No KnockDowns: Le PNJ ne peut pas être renversé(par exemple par un coup de SledgeHammer).
No VATS Melee: Le joueur ne peut pas utiliser le VATS contre le NPC, s'il a une arme de melee.
Can be All Races: Le NPC peut changer de race en cours de jeu.(Utilisé par le père du joueur pour déterminer sa race en fonction de celle du joueur).

Cases en bas de la fenetre:
-Full: Permet de voir le personnage en entier dans la fenetre à droite, avec ses vetement et son arme.
-Head: Permet de voir seulement la tête du personnage. Utile pour créer son apparence(Voir onglet Face)


Race: Vous pouvez choisir une des 4 race du jeu(African/Asian/Hispanic/Caucasian), ainsi que Ghoul. Les 4 races du jeu sont déclinées en 4 versions concernant l'age(avec exemple): Child(Enfant de Lamplight)/Normal(Le joueur)/Old(Dad)/OldAged(Tenpenny)
Female: A cocher si vous voulez que le PNJ soit une femme.
Height & Weight: Ne pas changer. Les races ont déjà une taille et une corpulence.
VoiceType: A ne pas changer. Ca ne sert à rien, même si vous prévoyez de faire des voix.
Class: C'est une classe générique de personnage qui n'apparait pas dans le jeu. Elle détermine les 3 compétences principales du personnage, ainsi que ses caractéristiques. A tester selon vos envies.
Alignment: Alignement général du personnage. C'est utilisé pour les calculs de Karma.
Base Disposition: C'est la disposition que le NPC a envers le Player la premiere fois qu'il lui parle. Plus c'est haut, plus il l'aime, ca va de soi.
Combat Style: Vous pouvez choisir un mode de combat pour votre NPC. Cependant, pour un Humain basique, il est conseillé de laisser par Default. La création de styles de combat devra faire part d'un autre tutorial car ce n'est pas simple^^.
Death Item: C'est si vous voulez mettre un item a votre NPC qu'il lootera lorsqu'il mourra. Cet objet ne peut etre vu par le joueur que dans le cas de la mort du NPC. Il ne peut pas être volé.


Onglet Stats:

Image IPB

Il y a deux cadre dans cet onglet. Le premier traite du Niveau du PNJ. Le second de ses caractéristiques.

Leveling Data:
-Level: Si vous voulez changer manuellement le niveau de votre PNJ. Il restera à ce niveau durant toute la partie.
-PC Level Mult: Si vous cochez la case, la partie Level se transforme en Lvl Mult et vous avez accez à Calc Min/Max.
-Level Mult: Le niveau du NPC est égal au niveau du joueur multiplié par le nombre entré dans cette case.
-Calc Min/Max: Permet de limiter le niveau du pnj entre deux bornes.

Auto calc stats: Cocher cette case calcule automatiquement les stats/vie/compétences du PNJ en fonction de sa Classe et de son niveau.
-Attributes: Ce sont les stats du PNJ, son S.P.E.C.I.A.L.
-Skills: Ce sont ses compétences.
-Base Health: Si vous voulez changer la vie de votre PNJ, c'est ici. A cette base est additionnée les PVs qui lui sont alloués en fonction de son Endurance.
-Speed Mult %: Vitesse de course de votre PNJ. 100% est la vitesse normale, celle du joueur.
-Fatigue: Non utilsé dans le jeu.


Onglet Factions:

C'est juste une liste ou vous pouvez entrer la faction à laquelle appartient le PNJ. Il peut appartenir à plusieurs Factions.
Vous pouvez aussi choisir son Rang.
Click droit>New pour entrer une nouvelle faction.


Onglet AI Data:

Image IPB

AI Attributes:

-Aggression
Unaggressive: Le NPC ne commencera jamais un combat de lui-même.
Aggressive: Le NPC attaque à vue les NPC/joueur qui lui sont Ennemi.
Very Aggressive: Le NPC attaque à vue les NPC/joueur qui lui sont Ennemi ou Neutre.
Frenzied: Le NPC attaque la personne la plus proche, qu'elle soit amie ou ennemie.

-Assistance:
Helps Nobody: Reste en dehors du combat, sauf si on l'attaque.
Helps Allies: Si un Allié est attaqué, le NPC l'aide.
Helps Friends and Allies: Si un Allié ou un Ami est attaqué, le NPC l'aide.

-Confidence:
Cowardly: Le NPC n'entre jamais en combat, même s'il est attaqué. Il essayera toujours d'éviter ou de fuir une menace.
Cautious: Le NPC essayera toujours d'éviter ou de fuir la menace, sauf s'il se sent plus fort que celle-ci.
Average: Le NPC ne fuiera que les menaces plus fortes que lui.
Brave: Le NPC fuiera seulement s'il est gravement blessé.
Foolhardy: Le NPC ne fuit jamais. Il combat jusqu'à la mort.

-Energy:
Il faut y entrer une valeur entre 0 et 100. Ca détermine la fréquence à laquelle le NPC changera de Sandbox Item(Voir Onglet Packages).

-Responsibility:
Pas utilisé dans le jeu.

-Mood:
Pas utilisé dans le jeu.

Aggro Radius Behavior:
Si vous cochez cette case, a chaque fois qu'un ennemi du NPC entrera dans l'Aggro Radius(que vous déterminez à coté), le NPC arrêtera tout ce qu'il est en train de faire et se mettra en alerte(il sort son arme). Si cet ennemi reste trop longtemps dans ce Radius ou s'il s'approche du NPC de la moitié de celui-ci, le NPC l'attaquera.

Autocalc Services:Si vous cochez cette case, les Services que propose le NPC sont automatiquement séléctionnés en fonction de sa Faction.

Vous pouvez aussi déterminer ce que le NPC pourra vendre séparément. Vous pouvez aussi déterminer si le NPC peut réparer des objets.
(Voir la partie Vendeur pour voir comment faire ouvrir un écran de réparation ou de vente).
-Barter Gold: C'est l'argent qu'a le NPC lorsque vous ouvrer un menu de vente ou de réparation avec lui. Il n'est pas déterminé ici. (Voir section Inventory).

Onglet AI Packages:

C'est sans doute la partie la plus importante dans la création d'un NPC. C'est avec les Packages que le NPC peut mener sa petite vie. Cet onglet fait la liste de tous les Packages accrochés au PNJ. Lorsqu'un PNJ se demande quel Package il doit effectuer, celui qui est le plus haut dans la liste est évalué en premier. Utile à savoir pour les Scripts.
Cependant, cette partie est trop longue, alors j'en parlerai après avoir fini cette partie sur le NPC en lui-même.


Onglet Inventory:

Image IPB

Glissez-déposez des objets depuis l'Object Window jusqu'ici pour ajouter un objet au NPC.
-Count: Détermine le nombre de l'objet sélectionné que possède le PNJ.
-Health %: Détermine la condition de l'objet séléctionné. En pourcentages.
Owner: Détermine le propriétaire de l'objet.
-NPC: détermine le NPC à qui appartient l'Objet séléctionné.
-Faction: Pareil mais pour toute une faction.
-Global Variable: Non utilisé.
-Rank: Rang minimum a avoir dans la Faction concernée pour être considéré comme propriétaire de l'objet dans la Faction.

Si le joueur vole un objet qui a un propriétaire, c'est considéré comme un acte d'aggression contre ce propriétaire. Et contre la faction entière si celui-ci est une faction.

Si vous voulez que votre personnage soit un vendeur, nous verrons cela après la création du NPC. Assurez vous juste de cocher ce qu'il peut vendre dans l'AI Data.

Onglet Actor Special Effect:

C'est la liste des Effets spéciaux que possède le NPC. C'est grace à ca par exemple que les boss ghoul(Glowing One) font leur sorts de radiation, que les Ghouls résistent mieux que les humains aux radiations, ou que le Radscorpion fait son attaque de dard empoisonné.

Onglet Animation:

C'est la liste des Animations appliquées au NPC. Ils sont automatiquement mis à la création d'un NPC en fonction de si c'est un humain, ou autre. Je suis pas spécialiste de l'animation, et ce n'est pas le sujet du Tuto. On passe :P.

Onglet Face:

Age: Changez l'ascenseur horizontale pour déterminer l'apparence du NPC en fonction de son Age.
Complexion: Change la teinte de la peau entre les deux extreme pour la race choisie.
Hair length: Non utilisé dans le jeu. C'était la longueur des cheveux dans Oblivion.
Les boutons Lock servent à garder ce parametre comme vous l'avez décidé, dans le cas ou vous feriez un Generate.
Hair Color: La couleur des cheveux. Cliquez sur le bouton Select Color pour avoir une grande liste de choix.
Generate: Génère une face au hasard en gardant les parametres séléctionnés plus haut si le boutons Lock est coché.
Save: Sauvegarde une face temporairement pour y revenir plus tard si vous avez envie de voir d'autres Generate.
Restore: Reviens à la tête sauvegardée.
Apply: Applique les changement. Ne sert que pour la couleur des cheveux.

Onglet Face Advanced:

Exactement pareil que celui d'avant, en plus détailé
Geometry: Pour former le visage.
-Symmetry: Pareil que dans l'editeur de visage du jeu.
-Asymmetry: Pour donner plus de réalisme au visage en mettant des défauts pour pas que le visage soit égal à gauche et a droite.
Texture: Changer la couleur de la peau en fonction des différentes parties du visage. Attention, la Race détermine la couleur de la peau en générale. ALors si vous prenez un AfricanAmerican et que vous lui texturez la tete très pale, ca va faire très bizare.


Onglet Head Parts:

Image IPB

Pour changer:
-Les Cheveux
-La couleur des yeux.
-Les rajouts(Head Parts): Click Droit>New pour ajouter une barbe ou une moustache. Vous pouvez en ajouter autant que vous voulez, mais faites attention à rester réalistes^^. Pour actualiser le visage dansla fenetre de rendu, changez d'onglet et revenez dans l'Onglet Head Parts.

Les Onglets suivants n'ont pas trop d'interet dans notre cas:
Blood: Sert a déterminer quel type de substance sort du NPC quand il est touché. Si on veut rester réel, on va laisser du sang hein ^^.
Destruction: Ce sont les morceaux qui sont crées quand la créature est tuée. Par exemple, un robot détruit se cassera en plusieurs petits morceaux. C'est cet onglet la. Rien a changer pour un
humain.
Scripts: La liste des scripts qui font référence de l'acteur.


Les Packages

Les Packages sont ce qui dictent ce que fait votre NPC en fonction de sa situation. Les Packages peuvent être appelés par une valeur temporelle(A 6heure du matin, il fait ca), ou par un script(si il se passe ca, alors le NPC doit executer ce Package).
Nous allons étudier seulement la premiere facon d'appeler un Package.

Image IPB

Pour créer un Package, Object Window>Actor Data>Package>Click Droit>New.
Une nouvelle fenetre apparait et la premiere chose à faire comme toujours et de lui donner un nom. Il faut un nom explicite. Et je vais faire un Package dans lequel Joe ira manger dehors sur sa petite chaise tous les jours à midi pendant deux heures.
Donc je vais appeler mon Package: NTJoeEat12x2.
On choisit le type de Package a droite dans le menu déroulant. Nous allons donc prendre Eat.
Chaque Package a son interface différente. On voit donc qu'ici, on nous propose de choisir le type de nourriture, l'endroit où il mangera, et la possibilité de chercher sa nourriture avant de manger.

Specify Food Type: Si vous voulez spécifier un type de nourriture spécifique, c'est possible, mais dans le monde de Fallout, il ne vaut mieux pas faire la fine bouche, alors Joe mangera ce qu'il pourra.

Eat Location: On va dire que Joe va manger à cette heure sur sa chaise que je lui ai placé hors de sa maison. Je choisit donc "Near Reference", et je choisit la référence de ma chaise(n'oubliez pas de mettre votre chaise en Persistent Reference).

Je vais ensuite dans l'onglet Schedule, et je précise l'heure(Time): 12, et le durée du Package(Duration):2

Image IPB

Il ne me reste plus qu'a glisser-déposer mon package(croix noire sur carré rouge), dans le Liste de Package de mon NPC. Et voila, tous les jours a midi, Joe ira manger sur sa chaise. pas besoin de s'occuper de la nourriture, les NPCs s'en fabriquent automatiquement.
Cependant, si vous cochez Allow Search, le PNJ cherchera de la nourriture avant de la manger, en l'achetant, la volant, ou en tuant pour l'avoir, selon ce que vous avez coché. C'est plus réaliste, mais préférez la premiere méthode si vous voulez voir votre NPC manger quoi qu'il arrive. S'il ne trouve rien a manger, il ne mangera rien.


Onglet Flags:

Image IPB

-Must Complete: Le Package ne se termine pas tant que ce qui est demandé dans le Package n'est accompli. Donc s'il n'a pas mangé pendant 2 heures, Joe ne fera rien d'autre.
-Must Reach Location: Le Package ne se terminera jamais tant que la Location du Package n'est pas atteinte. Donc si un autre Package est appelé pour Joe, celui-ci ne le commencera que lorsqu'il aura au moins atteint l'endroit où il doit manger.
-Continue if PC Near: Le NPC continue son Package si le joueur est proche de lui. La plupart du temps, c'est pour autoriser le NPC a continuer de garder son magasin ouvert si le joueur est encore la.
-Once Per Day: Le package ne se lancera jamais deux fois le même jour, quoi qu'il arrive.
-Always Run/Sneak: Durant toute la durée du Package, le NPC se mettra a courir, ou a se camoufler, selon la case cochée(vous pouvez mettre les deux).
-Allow Swimming/Falls: Le NPC a la possibilité de nager pour le premier, et de tomber de hauteurs qui lui font perdre de la vie, pour le deuxieme.
-Offer Services: Durant toute la durée de ce package, le NPC pourra vendre et acheter au joueur. Obligatoire pour un vendeur.
-No Idle Anims: Le NPC ne performe aucune animation durant ce Package(uniquement utile dans les Packages de type Sandbox, ou dans les Packages d'Idle Anims).
-HeadTracking Off: Le NPC ne regarde pas les gens qu'il croise durant ce Package, il garde la tete droite.
-No Combat Alert: Si vous cochez ça, le NPC ne se mettra jamais en état d'alerte s'il ressent quelque chose d'anormal. Il le fera SEULEMENT s'il voit un ennemi directement dans sa ligne de vue.
-Weapon Drawn: Le NPC a son arme dans ses mains durant la durée du Package.
-Weapon Unnequiped: Le NPC a son arme dans l'inventaire durant le Package(et non dans son dos/a sa ceinture).
-Pretend in Combat: Le NPC entre en état de Combat quand le Package est lancé. Ca permet par exemple que le NPC se déplace en se mettant à couvert à chaque fois, jusqu'a qu'il atteigne sa destination. S'il trouve un ennemi durant le Package, il s'arretera d'aller vers sa direction et se comportera comme dans un combat normal. Puis il continuera a faire comme avant une fois le combat fini.
-Continue During Combat: Le NPC continue de faire son Package quoi qu'il arrive, meme si les ennemis sont proche, il ne les attaquera pas. Cependant, s'il est personnelement attaqué, il contre-attaquera, tout en continuant d'aller dans la direction initiale(et en utilisant les couvertures).

Enable Fallout Behavior: Cocher cette case coche toutes les cases suivantes:
-Hello to Player: Le NPC dit bonjour au Joueur lorsqu'il passe à coté de lui.
-Random Conversation: Le NPC pourra parler a d'autres NPC durant ce Package(utile seulement avec les packages: Sandbox, Guard, Eat et Patrol).
-Observe Combat behavior: Le NPC regardera comme un idiot un combat qui se passe à coté de lui s'il n'est pas impliqué dedans.
-Reaction to player actions: Permet au NPC de dire des phrases pré-enregistrées lorsque le joueur fait des actes particuliers(du genre quand un PNJ vous dit:"Et ca t'amuse?" lorsqu'on fait mumuse avec les objets ;p).
-Friendly Fire comments: Permet au NPC d'utiliser des phrases pré-enregistrées lorsque le joueur lui tire dessus par mégarde(ou pas^^).
-Aggro Radius Behavior: Permet son utilisation(si vous en avez spécifié un dans l'AI Data).
-Idle Chatter: Permet au NPC d'utiliser des mouvements avec son corps et ses bras lorsqu'il parle au joueur/autre NPC.
-Avoid Radiation: Premet au NPC d'éviter les zones radioactives.

Door Flags:
Vous pouvez dire au NPC de fermer a clef/ouvrir une serrure lorsque le Package commence ou finis(start/end). Dans ce cas, il fermera toutes les serrures dont il possède les clefs.


Voila. Ca marche a peu pres de la même manière pour tous les Packages, hormis que la page principale des Package change en fonction des besoin d'informations de celui-ci. Mais le principe reste le même: Ou aller, Quoi faire, etc... Si vous voulez que j'explique un Package en particulier, demandez et je rajouterai a ce post original.

Les Vendeurs

Pour qu'un NPC propose ses services, il y a plusieurs choses à accomplir:

1) Déterminer dans l'ongler AI Data du NPC en question, les services qu'il propose.

2) Créer un coffre dans lequel seront stockés les objets qu'il vend.

Image IPB

Pour cela, allez dans: Object Window > World Objects > Container. Dans Filters, mettez: VendorChest. Puis cliquez droit sur un des VendorChest > Edit.
Changez son ID, Mettez un Nom si vous voulez, de toute facon, le joueur ne le verra pas. Laissez bien la case Respawns cochée!
Maintenant, vous pouvez virer tout ce qu'il y a dans l'ITEM LIST, et aller dans Object Window >All et mettre comme Filtre: VendorChest.
Tous les objects qui s'affichent alors avec un icone de cube vert sont ce que vous allez pouvoir mettre dans votre coffre. Choisissez ce que votre vendeur vends.
S'il vend des armures: VendorChestArmor. S'il vend des boissons mais pas de nourriture: VendorChestDrinksOnly, etc... Cliquez déplacez ce que votre vendeur vends dans votre Container.
Maintenant, il lui faut de l'argent pour pouvoir vendre et acheter. Prenez au choix:
VendorChestCapsLarge OU VendorChestCapsMedium OU VendorChestCapsSmall, en fonction de ce que vous souhaitez. Ces trois indications ne sont pas générales. Si vous voulez un vendeur qui ai moins d'argent, trouver un cube vert dans Items>Leveled Items (Filtre:Caps), qui satisfasse vos envies. Et cliquez-déposez le dans le coffre.

Si vous voulez mettre des référence uniques dans votre coffre, vous pouvez aussi (du genre, mettre WeapHuntingRifle seulement, et pas le reste des armes qui se trouveraient dans le VendorChestWeapons). Juste un glissé-déposé.
Cliquez ensuite sur OK dans votre coffre. Il vous demandera si vous voulez créer un nouvel Objet(vu que vous avez changé l'ID). Faites Oui.
Placez ensuite votre coffre dans la Render Window à un endroit que le joueur ne peut pas atteindre(Pour simplifier les choses, on le placera dans la Cell du magasin du vendeur, mais vous pouvez le placer n'importe ou). Double-Cliquez ensuite dessus, et cochez la case: Persistent Reference. Pour que notre PNJ puisse l'utiliser comme coffre de Vente.

3) Dire au coffre qui est le boss.
Image IPB
Placez ensuite votre NPC quelque part dans la Render Window(si ce n'est déjà fait). Double cliquez dessus, et dans l'onglet "Merchant Container", Sélectionnez votre coffre. Faites OK.

4) Permettre l'interaction Vendeur/Joueur.
Image IPB
Pour cela, dans le dialogue du PNJ, lorsque celui ci est sensé montrer son inventaire(genre quand vous lui avez demandé de vous vendre des choses), mettez dans le Result Script de la réponse:
ShowBarterWindow. C'est la meme chose pour ouvrir le menu de réparation(si au préalable vous avez autorisé la réparation dans l'AI Data), mais avec la commande: ShowRepairMenu.

5) Créer un Package de vente a votre NPC.

Créez un package tout simple a votre NPC du genre un Travel, avec comme destination un XMarker que vous aurez placé a l'endroit ou vous voulez qu'il se place pour vendre, mettez ensuite son heure de commencement
et la durée du Package. Puis cochez le Flag: Offer Services. Oubliez pas d'ajouter le Package a la liste de votre NPC.
Vous pouvez bien evidemment permettre a votre NPC de vendre a tout moment, vous avez juste a cocher Offer Services durant tous ses Packages.


Finaliser

Voila, vous n'avez plus qu'a connecter l'intérieur de votre maison a l'extérieur par des portes(en les mettant bien en Persistent Reference).

Image IPB

Et a finaliser le NavMesh des deux coté(extérieur et intérieur), pour que les NPC puissent utiliser les portes. Pour finaliser, entrez en mode Navmesh et cliquez juste sur le bouton en forme de V:Image IPB.


Je met ci-joint ma copie de l'esp qui m'a servit a faire le tutoriel. Prenez le si vous voulez vérifier quelque chose qui ne marche pas chez vous. Le mien marche bien, bien que je ne l'ai testé qu'une fois et en vitesse. Mais Joe me vend bien de le nourriture et va bien manger pendant deux heures a midi. L'intérieur et l'extérieur sont connectés et le Navmesh marche impécablement.
Link to comment
Share on other sites

Object inventory : pourquoi diantre veux-tu fiare un copier coller via l'object window alors qu'il suffit de faire clic droit/new de faire défiler les objets dans le "bandeau" object, de sélectionner l'objet voulu, de rentrer le nombre d'objets voulus (surtout pour la nourriture, les caps et les munitions) dans le "bandeau" count ?onglet head parts: dans le topic "Charon descendant de Sulik ?" vous pourrez voir, de façon (très) succinte, comment éditer un nouveau head part

Link to comment
Share on other sites

Moi je fait un déplacer, ça va plus vite pour retrouver l'ojet que l'on veut, au moin ya les noms des objets trié.
Sinon trés bon tutos SUUK, bien éxpliquer, les novices auront de nouvelle base, le reste viendra avec les bidouillages dans le tesc et l'éxpérience.

C'est quand le prochain tutos? ;)
Moi je tenterais bien les pakages mais c'est long et je connait pas tous tous je pense.

Link to comment
Share on other sites

Moi je fait un déplacer, ça va plus vite pour retrouver l'ojet que l'on veut, au moin ya les noms des objets trié.

Pas sûr t'as les noms aussi dans ma technique, tu peux taper la première lettre de l'objet pour vers les objets commençant par la lettre ... tapée. Pas besoin de se faire chier avec plusieurs fenêtres.Sinon mais qui a donc assassiné JFK ?Sinon si des bonnes âmes en fonctions de leurs expérimentations pouvaient indiquer les effets des différentes classes se serait, me semble-t-il, un plus non négligeable.Sinon (merdre çà fait trois "sinon" à la suite!!!) le tuto est parfait.ps : un tuto (ou éventuellement des liens) sur le scripting appliqué aux pnj serait, selon moi, une bonne chose.
Link to comment
Share on other sites

Oui c'est sur, mais dans la fenétre de l'arbre, tu as le choix de voir que les armes si tu veut, puis de feuilleté le catalogue et de choisir celle qui convient, ça sert si tu ne sais pas vraiment quoi mettre.

Vu comme ça oui, mais l'autre me semble plus efficace si on a une idée précise du pnj (ce qui devrait être le cas). Les deux se complètent.
Link to comment
Share on other sites

Oui j'ai pas dit le contraire Mr de la cave ;).Mais par exemple moi je fait un mode sur des survivants dans DC, ba yen a 6, ba crois moi que arrivé au 4eme, ça devient dur de trouver une armure sans fair du grosbilisme.Alors en triant c'est plus facile.Aprés si c'est des choses précise, ba ta methode est plus rapide.

Link to comment
Share on other sites

Adhérent

Superbe tuto, très complet, je pense que je vais faire une section à part spécial tutos..

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...
  • 4 weeks later...
Mais de rien !

Si tu veux que ton NPC reste la ou il est, tu lui mets un Package "Guard" (Il me semble que c'est ca... Ca fait longtemps que j'ai pas touche au Geck).
Avec ca, tu peux lui indiquer un rayon dans lequel il restera a garder cette zone. Si tu met 0, il restera la ou il est. Tu peux aussi par la meme occasion lui mettre une serie d' Idle Animations a lui faire faire grace a ce Package.
Link to comment
Share on other sites

  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...