GECK : Créatures et NPC : gestion du levelling et Packages génériques

De Wiwiki
Aller à la navigation Aller à la recherche


Nous allons étudier les différents moyens d'implémenter des ennemis dans le monde de Fallout3 : Créatures simples, créatures de niveau, Boss. Nous étudierons aussi comment utiliser l'IA pour faire des déplacements aux créatures (patrouille), et générer des comportements pour celles-ci (Packages). Avant de commencer, veillez à ce que les endroits où vous mettrez les créatures et NPC aient un Navmesh correctement fait.



Généralités et types de créatures

Les créatures sont une classe d'acteurs qui ne peuvent pas porter d'armure ou de vêtements,et ne peuvent pas apparaître dans des listes de niveau de NPCs. Elles bénéficient du même système squelettal et d'animation que les NPC,ce qui permet plus de variations dans leur apparence,et les possibilités de ciblage du VATS, ainsi que d'autres aspects. Cependant, ce manque de standardisation signifie que leur usage d'amres est très limité ou inexistant, leurs armes étant intégrées et intrinsèques. Contrairement aux acteurs créatures dans Oblivion, les créatures de Fallout 3 ont la capacité de dialogue intégrée dans leur caractéristiques.


Créatures de base :

Chaque type de créature du jeu, radscorpion, brahmine, etc... a une créature de base. Son ID commence généralement par "Cr". C'est la créature "à sec", sans modifications d'aucune sorte. Elle ne s'adaptera pas au niveau du joueur, sera de niveau fixe, avec un inventaire déterminé. Si elle est tuée dans le jeu elle ne réapparaitra que si la case "Respawns" n'est pas cochée dans ses caractéristiques (c'est le cas la plupart du temps). Attention à ne pas modifier la créature de base, car vous risqueriez de modifier toutes les créatures du jeu. Vous pouvez modifier les caractéristiques de la Référence d'une créature de votre mod, mais pas son objet de base. Si vous voulez le modifier, changez l'ID de la créature de base avec le préfixe de votre mod, validez, répondez oui à la question pour créer votre propre objet de base.


Créatures Mortes :

Il existe aussi des créatures déjà mortes dès le début du jeu. Leur ID commence souvent par "Dead". Pour faire une créature morte, faites une créature avec une santé à 0 : Dans l'onglet Stats, Health à 0.


Créatures de Niveau

Les créatures de Niveau sont choisies par le jeu parmi une liste de créatures prédéfinie, suivant le niveau du joueur et le niveau de l'Encounter Zone de la cellule.



La fenêtre de Créature :

La fenêtre Creature

ID: nom unique de la créature dans le jeu.

Name: Nom de la créature visible par le joueur.

Script: Script actif pour toutes les références de cet objet. Select the elipses marks (...) to edit or view the script.

Bouton de dialogue : Ouvre une fenêtre qui montre tous les dialogues que cette créature peut dire.

Preview: Cochez cette case pour avoir un aperçu de la créature dans la droite de la fenêtre.


Données Template Chaque case correspond à un onglet de la créature. Si une case est cochée, la créature prend les données de cet onglet à partir de la créature spécifiée dans le champ "ActorBase".

Ces données ne comprennent pas les : quest items, No Knockdowns, No VATS Melee, Is Ghost, ou Invulnerable flags.

"Use Model/Animation" inclut le sang de la créature, ses sons, et ses paramètres de Destruction.



Flags : fonctions :

Quest item : La créature est mise à jour plus souvent. Le cadavre ne se retire pas quand la cellule est regénérée.

Can't Open Doors : La créature ne peut pas utiliser les portes et reste bloquée par une porte fermée.

No Low Level Processing : La créature ne met pas à jour son IA tant que le joueur n'est pas dans la même cellule qu'elle.

Essential : Une créature essentielle ne peut pas mourrir. Aucun message n'apparait si on l'active quand elle est inconsciente, mais son inventaire peut être visité.

No Knockdowns : Si cette case est cochée, la créature ne peut pas être mise KO.

No VATS Melee : Le joueur ne peut pas utiliser le VATS pour cette créature s'il utilise une arme de mêlée.

Respawn : Une nouvelle Référence de cette créature dans le monde sera recrée dans 3 jours de jeu, si elle meurt.

Allow PC Dialogue : Si elle est cochée, cette case permet à la créature de parler au joueur.

Allow Pickpocket : Le joueur peut voler cette créature.

Is Ghost : La créature a un état de fantôme, XXX (supprimé?).

Invulnerable : La créature n'est pas affectée par les combats.


Onglets :

Traits, Stats, Faction, AI Data, AI Packages, Inventory, Actor Effect List, Animation, ModelList, Blood, Sounds, Destruction, Scripts




Les Créatures de Niveau

La fenêtre Levelled Creature
La fenêtre Creature pour une créature de niveau

Le système de levelling de Fallout3 est issu de celui d'Oblivion, lui-même issu du système simple de Morrowind. Cependant, pour Fallout3 l'emploi de l'auto-levelling a été enrichi et affiné. Le résultat est une population de créatures plus cohérente et réaliste, même s'il est possible d'améliorer largement cet aspect.

Encounter_Zone : Les Encounter Zones permettent de gérer les niveaux de difficultés des créatures dans une zone donnée. Par exemple, si un joueur de niveau 2 entre dans une Encounter zone de niveau minimum 10, les listes de Niveau dans la zone feront apparaître des créatures comme s'il était de niveau 10.

No Recalculation : Quand le joueur entre dans une Encounter Zone pour la première fois, le niveau de cette zone is fixé de manière permanente. Cela signifie que lorsque le joueur entre dans un intérieur géré de cette manière, les créatures générées par les listes de Niveau ne se réinitialiseront jamais ou n'augmenteront pas en difficulté.

Thin Leveled Lists : Contrairement à Oblivion, les listes de Niveaux sont composées de peu de sortes d'ennemis. Les créatures de niveau sont, non pas dans levelled creatures, mais dans Actors/Creatures/Animal, et commencent par "lvl...".Par exemple, regardons la créature de Niveau "lvlMirelurk". Elle a comme acteur de base la liste de niveau EncMirelurk : Il y a seulement trois créatures "mirelurk" dans la liste. Les caractéristiques de chacun de ces monstres n'évolueront pas avec celles du joueur. Ce sont les changements d'ennemis qui se font par paliers.


Pour la créature de niveau lvlMirelurk (liste de niveau EncMirelurk) :

Joueur Niveau 1 -> Fangeux (CrMirelurk1)

Joueur Niveau 9 -> Chasseur de Fangeux (CrMirelurk2)

Joueur Niveau 16 -> Roi Fangeux (CrMirelurk3King)



A cause de cela, bien qu'une Encounter Zone recherchera une creature de niveau 10, elle choisira dans la liste le Chasseur de Fangeux de niveau 9, comme créature la plus proche.



Encounter Zone : adaptation au niveau du joueur

Les Encounter Zones regroupent des cellules, worldspaces, and références individuelles pour leur attribuer un niveau similaire pour les ennemis.

Niveau de la Zone :

Le niveau de la Zone est une valeur calculée la première fois que le joueur entre dans un des éléments de cette Encounter Zone. Cette valeur est alors attribuée à l'Encounter Zone et n'est plus recalculée. Si le joueur retourne dans la zone après avoir passé de nombreux niveaux, le niveau des ennemis de la zone reste le même que la première fois qu'il l'a visité.

les listes de Niveaux (Leveled Lists) utilisent le niveau attribué à la zone, qui est basée sur le niveau du joueur, et sur le niveau minimum de l'Encounter Zone. Si le niveau du joueur est au delà de celui de la zone, seul un pourcentage du niveau du joueur est pris en compte. La variable du jeu "fLevelScalingMult" controle ce pourcentage.


Les Encounter Zones peuvent être vues, modifiées, et crées avec la fenêtre Encounter Zone, dans la barre d'outils principale du GECK sous World>Encounter Zones. Les cellules sont ajoutées aux Encounter Zones individuellement grâce à leur onglet "Interior Data", dans World>Cells.


Les Encounter Zones sont listées dans le menu World (et dans la fenêtre Object dans la section WorldObjects ). La fenêtre Encounter Zone comporte les champs suivants:

La fenêtre Encounter Zone

Editor ID: L'ID unique à donner pour la zone. Elle doit être spécifiée pour chaque cellule pour qui doit faire partie de cette Zone.

Minimum Level (integer(?), defaut 0): Le niveau minimum pour la zone.

Match PC level below minimum: Si la case est cochée, le niveau de la zone correspond au niveau du joueur s'il est en dessous du niveau minimum de l'encounter zone.

Never Resets: Si la case est cochée, les cellules dans l'encounter zone ne sont jamais réinitialisées. Elles gardent leur statut pour toujours. Cela peut-être modifié par script dans votre mod avec la commande SetZoneRespawns.

Analyze Loot:Cela génère une liste de loot que le joueur peut obtenir de cette zone, incluant ce qui peut être trouvé sur les containers, NPCs, créatures, ou perdu dans le monde.

Ownership: Si la zone est propriété d'un NPC, ou d'une faction Faction (peut nécessiter un certain rang dans la faction).



Personnages : NPC

Tutoriel Vidéo de Bethesda "NPC Patrols" dispo sur YouTube

... A SUIVRE


Personnages de Niveau : Levelled NPC

... A SUIVRE


Placer un marqueur de NPC de Niveau (Leveled NPC Marker) :

Plutôt que de placer de nombreux ennemis uniques, nous utiliserons des listes de Niveau pour placer nos NPC hostiles. Les listes de niveau font apparaître au hasard un des ennemis prédéfinis dans une liste, basé sur la combinaison du niveau actuel du joueur et l'Encounter Zone associée à cette cellule.


un Leveled List Marker sans modificateur de difficulté
un Leveled List Marker en Easy(facile)

Nous utiliserons en premier un "lvlRaiderGun", qui fait apparaitre un raider avec une arme à feu. Le type d'arme, d'armure , le sexe du NPC ne sont pas importants pour ce qui nous interesse. Vous pouvez trouver cet objet en fitrant avec "raider" dans la fenêtre object ou en naviguant manuellement dans Actors>NPC dans l'arborescence de la fenêtre Object.


Une fois que vous avez repéré l'objet "lvlRaiderGun" dans la liste, faites en glisser une nouvelle référence dans la Render Window. Le nouveau marker apparaitra comme un M avec une flèche qui le traverse, comme montré ici.


Les Modificateurs de difficulté sont utilisés pour adapter la difficulté à celle de l'Encounter Zone du lieu. Le marqueur que nous venons de placer utilise par défaut "None", changeons le en "Easy" : facile. Pour changer le modificateur, double-cliquez sur le marqueur et allez sur l'onglet Leveled Actor. Dans celui-ci changez le level modifier de none à Easy. Appuyez sur OK pour valider.

Le modificateur Easy est special, il choisira n'importe quel acteur dans la liste de niveau qu'il considère comme facile. Cela tend à augmenter la variété d'ennemis, en particulier pour les joueurs de haut niveau. Une bonne règle de conduite est de mettre environ 50% de listes de niveau en modificateur "Easy" dans une zone donnée.

Vous avez pu remarquer que le marqueur est devenu vert. Chaque difficulté is représentée par une couleur différente, qui permet de jauger la difficulté d'un lieu d'un coup d'oeil. La couleur du marqueur dépend du niveau de difficulté.


Modificateur de difficulté Couleur de Marqueur


None Blanc Easy Vert Medium Jaune Hard Orange Boss Rouge


Packages AI et patrouilles génériques

Maintenant que nous avons placé notre premier raider (de niveau), nous allons pouvoir nous occuper de son comportement.

Les comportements des NPC sont donnés par des "AI Packages", qui sont des sets customisables de buts à atteindre et de tâches. Alors que les packages peuvent être utilisés pour des comportements faciles à mettre en oeuvre, ils peuvent aussi être aussi complexes à mettre en place.

Le Geck introduit de nouvelles fonctions qui permettent d'assigner rapidement un comportement à des NPC comme ces raiders. Ce sont les packages de type "generic patrol" and "sandbox". Grâce aux "generic packages", qui sont inclus par défaut sur la plupart des Listes de Niveaux basiques d'ennemis, nous sommes capables de leur attribuer des tâches usuelles sans éditer leurs packages.


Source de l'article : traduction du Wiki Officiel de bethsoft