GECK : 9 - Créatures et Personnages
Implémenter des créatures de base
Dans notre mod, nous allons utiliser plusieurs types de créatures : créatures génériques, créatures de niveau, et créatures uniques. Cela permet d'affiner le levelling des monstres du mod. Au lieu d'avoir 100% des créatures de niveau, certaines seront fixes, d'autres pas.
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éritiques (c'est le cas la plupart du temps).
Par exemple, mettons un rataupe de base dans la station effondrée. Dans la fenêtre Cell View, double-cliquez sur la cellule qui correspond à la station effondrée (MONMetro03 dans MonPremierModSimple).
Dans l'arborescence des objets, allez dans Actors/Creature/MutatedAnimal/Molerat et faites glisser un "CrMoleRat" près des voies de la station. Ce rataupe réapparaitra à intervalles réguliers, toujours à cet endroit.
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 de votre rataupe dans la station, mais pas son 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". Dans la liste des Molerat, faites glisser un DeadMoleRat à un autre endroit de la station. Il apparaitra une fois (case respawn décochée), et déjà mort.
Créatures uniques :
Les créatures uniques sont des créatures avec des caractéristiques spécifiques, pour les besoins d'une quête, ou juste pour varier le type de créature. Par exemple, créons un "Rataupe brutal". Double-cliquez sur CrMolerat dans la liste des objets de la fenêtre Object, et changez son ID en "MONCrMolerat". Validez avec OK et répondez oui à la question qui vous est posée pour créer votre propre objet de base.
Double-cliquez sur MONCrMolerat dans la liste et mettez Rataupe Brutal dans le champ "Name", décochez la case "Respawn" pour qu'il n'apparaisse qu'une fois.
Dans l'onglet Stats, changez sa force (Strength à 8), son Endurance à 8, sa chance à 8, son Combat Skill à 60, sa santé (health) à 80.Son attack Damage à 30 et son Attack reach à 40. Baissez sa Turning speed à 100 et foot weight à 7 pour le rendre plus lourd. Base scale à 1.30 pour le rendre plus gros, fatigue à 60, et speed mult à 80 pour qu'il soit moins rapide.
Dans son inventaire, rajoutez une viande miracle de rataupe "MoleRatWonderMeat" (dans Game Effects/Ingestible), qui donnera une petite récompense.
Validez avec OK.
Faites glisser un MONCrMolerat de la fenêtre Objet à un tunnel éloigné de votre station.
Maintenant allez tester dans le jeu : vous devez trouver un rataupe mort, un rataupe normal qui réapparaitra plus tard une fois mort, et un Rataupe brutal unique.
Gérer les Créatures de Niveau
Créatures de Niveau :
En concevant le mod, il faut se demander quels niveaux doivent avoir les montres, particulièrement ceux qui sont sur l'île. Quelle opposition rencontrera un joueur de niveau 1 ? Un joueur de niveau 10 ? un joueur de niveau 20 ? Mettre des monstres de niveaux fixe peut rendre le challenge trop facile ou trop ardu selon le niveau du joueur. C'est pour cela qu'on été créés les mosntres de niveau. En fonction du niveau du joueur, c'est tel monstre qui apparaitra.
Nous allons mettre par exemple un monstre de niveau existant dans le jeu : un fangeux de niveau, le lvlmirelurk. En fonction du niveau du joueur, ce sera un fangeux, un chasseur de fangeux, ou un roi fangeux qui sortira.
Chargez le worldspace contenant votre île, et centrez la vue sur 0,0. Cherchez un coin humide pour les fangeux, ici, au bord de l'eau. Allez dans l'arborescence de la fenêtre Object du GECK sous Actors/Creature/Animal, et cherchez un lvlMirelurk. Faites le glisser derrière la station de métro, près de l'eau. Ensuite, mettez à d'autres endroits au bord de l'eau une créature fangeux de base CrMirelurk1 ou CrMirelurk2(Actors/Creature/MutatedAnimals/...), pour que tous vos fangeux n'aient pas le même niveau.
Pour plus de réalisme, mettez des oeufs de fangeux à certains endroits au bor de l'eau. Dans le filtre de la fenêtre Object, ecrivez mirelurk et cliquez sur All tout en bas de la fenêtre pour voir tous les objets en rapport avec les fangeux. Placez quelques oeufs (containers) MirelurkEggClutchCont01, ou des coquilles cassées MirelurkEggBroken01.
Procédez de même en mettant quelques radscorpions de base et de niveau dans le canyon vers l'abri, et quelques bestioles plus inoffensives sur la route entre la station et pale pass (rataupe, chien,...).
Encounter Zones :
Pour limiter la montée en niveau des monstres, nous allons utiliser une encounter zone que nous créérons pour l'occasion. Allez dans le menu World et selectionnez Encounter Zones. Cliquez droit sur la liste et selectionnez New. Rentrez une ID unique, par exemple MONEncounterZone. A Minimum Level, mettez 2, Cochez "Never Resets" pour que le niveau des monstres reste le même que lors de votre première visite. Appuyez sur OK pour valider.
Maintenant, allez dans le menu World, puis dans Worldspaces : selectionnez celui de votre île (ici MONPawnIsland5cells). Dans le menu déroulant EncounterZone, selectionnez celui que vous venez de créer. Validez par OK.
Dans le menu World, selectionnez Cells : Ensuite, selectionnez les cellules correspondant aux deux stations de métro que nous avons faites au début : MONMetro01 et MONMetro03. Dans l'onglet "Interior Data", ouvrez le menu Encounter Zone, et remplacez "NONE" par celui que vous venez de créer.
Ainsi, toutes ces zones de votre mod obéiront aux règles de niveau que vous avez défini avec votre encounter zone.
Testez l'Equilibrage des monstres :
En testant le mod, vous remarquerez que les lvlWastelandMolerat ne donnent pas que des rataupes, mais aussi des YaoGuai et même des robots de l'enclave. Or, sur une île où il n'y a pas trop d'allées et venues (venant de nulle part), les robots de l'enclave font tache. Double cliquez sur un des lvlWastelandMolerat, puis sur Edit Base pour voir l'objet de base. Dans la partie template, cliquez sur Edit pour voir la liste de niveau EncWatelandMolerat et voir les monstres générés suivant les niveaux. Vous pouvez d'ailleurs simuler la génération : Rentrez le niveau du joueur dans Preview Level, puis appuyez sur le bouton "Preview calculate result" pour voir ce que l'ordinateur a généré. Faites plusieurs essais à plusieurs niveaux.
Pour arranger cela, créons nos propres monstres et listes de niveau en partant de ceux du lvlWastelandMolerat. Si vous avez gardé la fenêtre d'edition de la liste de Niveaux EncWastelandMolerat, rajoutez votre préfixe (par exemple MONEncWastelandMolerat), puis validez avec OK. A la question vous demandant si vous voulez copier l'objet, répondez Yes ! Maintenant ouvrez votre liste de niveaux MONEncWastealndMolerat (dans Actors/Creature/levelled Creature), et faites un clic droit sur le EncRobotArmyWasteland, puis selectionnez "delete" pour l'effacer de votre liste de niveaux. Procédez de même pour l'autre robot EncWastelandTough. Décochez la case "calculate from All Levels =>PC level". Appuyez sur OK pour valider votre liste de niveaux.
Maintenant que la liste de niveaux est faite, ouvrez la fenêtre d'édition de votre monstre de niveau MONlvlWastelandMolerat, et dans la partie template, cherchez et selectionnez MONEncWastelandMolerat dans la liste déroulante.
Créez un Boss
Ceux qui ont jeté un oeil au mod MonPremierModSimple ces derniers temps ont pu voir un magnifique SuperBéhémoth dans la salle de l'Atrium de l'Abri 666. Dans le mod, ce sera le père d'une famille de l'abri que s'est injecté une dose massive de JEK pour ouvrir la porte de l'abri.
Dans l'arborescence de la fenêtre Object, allez dans Actors/Creature/SuperMutant et double cliquez sur CrSuperMutantBehemoth. Changez son ID en rajoutant le préfixe de votre mod (MONCrSuperMutantBehemoth), validez avec OK et confirmez ensuite la demande avec Yes. Ouvrez votre nouveau "MONCrSuperMutantBehemoth", et changez son nom en Béhémoth affaibli. Dans le champ script, allez en haut de la liste et mettez "NONE", car ce n'est pas un "vrai" béhémoth du jeu, il ne comptera pas pour les achievements.
Dans l'onglet Stats, changez le level à 1 (ce sera bien suffisant dans l'espace confiné de l'abri !), mettez sa santé (Health) à 1000, baissez Attack Damage à 10, Attack Reach à 70, Fatigue à 10, et rapetissez le en mettant Base Scale à 0.77.
Dans l'onglet Inventory, enlevez tout ce qui n'est pas sensé appartenir à un habitant d'abri : l'arme BehemothFireHydrant, lootammomissiles, lootammofatman,... laissez juste un lootgunpistolsall75, un lootammogeneric100, un lootcaps75levelled,...
Une fois qu'il est terminé, chargez la cellule de l'Abri 666 et placez-le au centre de la grande salle de l'Atrium.
Implémenter des personnages
Comme les créatures, les personnages peuvent être uniques, ou de niveau. De la même manière, varier les types de NPC est essentiel.
Créer un NPC simple : le chef du village
- Dans la fenêtre Object, cliquez dans l'aborescence sur Actors/NPC.
- Faites un clic droit dans la liste des EditorID, dans le menu contextuel, selectionnez New.
- La fenêtre NPC Apparait : rentrez une ID unique pour votre NPC, avec le préfixe de votre mod, par exemple "MONPalePassChefDonStark". Si vous faites beaucoup de NPC pour votre mod, il serait judicieux de hierarchiser les ID pour vous y retrouver. Après le préfixe de votre mod, vous pouvez préciser avec quelques lettres la ville du NPC (ici palepass pour retrouver tous les habitants de la ville), sa faction, son grade, etc...et son nom.
- Dans le champ Name, rentrez le nom du NPC tel qu'il apparaitra dans le jeu.
- Validez la création de votre NPC avec OK.
Vous pouvez maintenant retrouver votre NPC dans l'arborescence de la fenêtre Object, soit dans Actors/NPC. Double cliquez sur l'EditorID pour terminer l'edition et retrouver votre fenêtre NPC :
Onglet Traits :
- Choisissez sa race dans le menu déroulant Race (par exemple, CaucasianOld).
- Selectionnez dans le menu déroulant Voice la voix appropriée (Par exemple, MaleOld01).
- Dans le menu déroulant Class, choisissez la classe de votre NPC, suivant ce qu'il fait dans le jeu, ici, VillageLeader, chef de village.
Onglet Stats
- Dans de cadre Levelling, mettez le niveau du NPC dans le champ Level, par exemple 15 (si vous voulez qu'il suive le niveau du joueur, cochez PC Level Mult).
- COmpétences : soit vous les rentrez une à une, soit vous cochez la case auto calculate stats. Une bonne méthode est de cocher la case pour voir les stats correspondant au niveau choisi, puis de décocher la case et de modifier les valeurs qui vous semblent mal adaptées à votre perso.
Onglet Ai Data
Cet onglet est très important car il gère le comportement de votre NPC :
AI Attributes : Le chef du village est aussi chef des gardes, et défendra les habitants jusqu'à son dernier souffle. Mettez Aggression à Aggressive, Confidence à Foolhardy, et Assistance à Helps Firends and Allies.
Onglet Inventory
Cet onglet détermine l'inventaire du joueur. Dans Fallout3, la majorité des NPC utilisent des levelled lists de vêtements ou d'armures, et les items divers. Nous utiliserons pour commencer les objets de base, qui sont plus parlants visuellement. Dans l'arborescence de la fenêtre Object, cherchez Item/Armor qui contient toutes les armures et les vêtements du jeu. Allez dans WastelandClothing01 et faites glisser l'objet OutfitMerc01 dans l'inventaire du NPC (il peut y avoir quelques messages d'erreur, validez par oui à chaque fois). Allez dans Hair et faites glisser des lunettes GlassesShade dans l'inventaire. Une fois notre chef de village habillé (une touche improbable !), rajoutons une arme, dans Items/Weapon/Weapons faites glisser un fusil calibre 12 "WeapShotgunCombat". Dans Items/Ammo, faites glisser un ou deux AmmoShotgunShell Enfin, rajoutez des ingrédients de la section Game Effect/Ingestible, un PorknBeans dont vous mettrez le Count à -1, pour qu'il ne manque jamais de nourriture.
Pour chaque objet de l'inventaire, vous pouvez modifier son nombre (count, -1 pour renouvellage infini de l'objet), son éventuel propriétaire (owner : NPC ou faction), et sa santé (health) en pourcentage (pour les armes et armures).
Onglet Face
Ces onglets servent à modeler le visage de votre NPC :
Curseur Age : déplacez-le pour voir les changements opérés sur le visage, puis laissez le à 60 par exemple.
Curseur Completion : donne un teint plus ou moins clair ou foncé.
Curseur Hair Lenght : donne des cheveux plus ou moins longs.
Hair color : couleur de cheveux.
Bouton Generate : génère un autre visage au hasard.
Bouton Save : Sauve le visage pour le rétablir éventuellement ensuite avec Restore.
Restore : Rétablit le dernier visage sauvé.
Apply : Applique les changements opérés.
Onglet Face Advanced
Cet onglet permet de modifier un par un tous les paramètres du visage en détail. Par exemple, il y a 4 réglages pour les yeux, 5 réglages pour les joues, 9 pour la bouche,...
S'il serait fastidieux de passer par cet onglet pour tous vos NPC, n'hésitez pas à personnaliser ici vos personnages les plus importants, pour qu'ils aient "une vraie gueule" ! Un petit conseil aussi pour qu'un personnage soit plus reconnaissable, c'est de forcer un peu le trait vers la caricature : poussez un peu les curseurs vers les extrèmes pour certains paramètres (ex une machoire très carrée),...
Onglet Head Parts
Choisissez ici parmi les coiffures pour garnir le crâne de piaf de votre NPC, et aussi les moustaches, boucs, ou favoris. Cliquez droit dans la liste, selectionnez New, et choisissez parmi les ajouts listés dans la nouvelle fenêtre. Vous devrez revenir à l'onglet Face pour voir le changement.
Créer les deux gardes du village
Pour nous simplifier la tâche, nous allons les créer à partir du chef du village : Dans la fenêtre Object, retrouvez le chef MONPalePassChefDonStark, et double cliquez dessus. Changez son ID MonPalePassGarde01 et validez. Répondez Yes à la fenêtre qui suit pour créer un nouveau NPC.
Double cliquez sur le garde nouvellement créé, et changez son champ name : Garde de Pale Pass, sa race (par exemple Asian), sa voix Voice Type en MaleAdultDefault01, sa classe en Security Officer. Dans l'onglet Stats, mettez son Level à 8, cochez la case Auto calculate stats. Dans l'onglet Inventory, changez son arme (dans la catégorie Item/Weapon/Weapons) en WeaponAssaultRifle, et son ammo en Ammo556mm (catégorie Items/Ammo). Rajoutez 3 grenades WeapGrenadeFrag. Vous pouvez aussi changer sa nourriture dans la catégorie Game effects/Ingestibles.Diminuez son nombre de capsules à une poignée.
Ensuite allez dans l'onglet Face et cliquez sur Generate pour générer aléatoirement un autre visage.
Validez vos choix.
Pour le Deuxième garde, ouvrez la fenêtre d'édition du premier garde que vous venez de faire, et changez son ID. Procédez à quelques changements.
Placez le garde 01 au premier étage de la banque, et le garde 02 au milieu du croisement, il patrouillera dans le village.
Faire d'un NPC un Marchand
Le marchand du village se tiendra dans la cellule MONPalePassMagasin. Chargez cette cellule, et crééz un NPC avec comme ID "MONPalePassVendeur". Validez par OK. Donnez lui un nom, une race (je l'ai mis asiatique, avec pour nom Chi Woo).
- Dans son Onglet AI, vérifiez bien qu'il est noté Unaggressive, et que dans le cadre Autocalc Services (non coché), cochez les cases Food, Chems, Stimpacks, Alcohol, miscenalleous. Validez avec OK.
- Ajoutez lui un package de vente. Ouvrez la fenêtre d'edition du Vendeur (de l'objet de base), et selectionnez l'onglet AI Package. Faites un clic droit dans la liste vide et selectionnez new. Donnez une ID à votre package : MONPackageVendeur, et selectionnez comme type de package Travel, Near Editor Location. Dans l'onglet Flags, cochez Continue if PC near, Must Reach Location, and Offers Services. Pour qu'il ouvre et ferme les portes du magasin à clé mettez When At Location : Unlock Doors et pour Package End : Lock Doors. Dans l'onglet Schedule, mettez une heure de début : 8, et une duration de 12.
- Créez une clé qui servira à fermer le magasin : Double cliquez sur une clé existante (dans Item/Key) et changez sin ID en MONKeyPalePassVendeur. Comme nom, mettez Clé de Chi Woo. Validez et répondez oui à Create a New Form. Allez dans l'intérieur MONPalePAssMagasin et double cliquez sur la porte d'entrée. Dans l'ognglet Lock, cochez Locked et mettez le level en facile. Dans la liste déroulante Key, mettez votre clé, et validez avec OK. Pas la peine de le faire pour la porte extérieure, c'est automatique.
- Pour qu'un marchand vende des objets, il doit avoir un coffre contenant tous ces objets, dans la cellule ou il vend, et hors de portée du joueur. Nous devons donc prendre un container, dans WorldObjects/Container, parmi ceux qui commencent par Vendorchest... Double cliquez l'un d'eux pour l'éditer. Renommez son ID en "MONVendorChestBuriedChiWoo" par exemple, et validez avec OK. A la question vous demandant "Create a new Form", répondez Yes. Double cliquez sur votre nouveau container dans la fenêtre Objet pour l'éditer et changer son inventaire. Supprimez tout ce qu'il contient pour l'instant et repérez les objets qui figurent dans le magasin. Dans le champ Filter, mettez VendorChest, puis cliquez sur All tout en bas de l'arborescence. Parmi les VendorChests Verts, faites glisser dans l'inventaire du container 1 VendorChestCapsMedium (il faut obligatoirement des caps), 1 VendorChestFoodAndDrink, 1 VendorChestStimpacks. Allez aussi dans la section Misc Item de la fenetre Object pour y mettre des exemplaires des objets dans l'étalage. Vous pouvez mettre des objets à l'unité en les glissant dans le container. Vérifiez que la case Respawns est bien cochée, et fermez la fenêtre avec OK.
- Faites glisser ensuite le coffre de la fenêtre Objet à la fenêtre Render, près du magasin ( et en dehors). Double cliquez dessus dans la fenêtre Render pour éditer sa référence : cochez la case "Persistent Reference". Appuyez sur OK.
- Relions ensuite le coffre au vendeur : Double cliquez sur ensuite sur la référence du Vendeur dans la fenêtre Render pour l'éditer, et cliquez sur l'Onglet Merchant Container. Cliquez sur le bouton Select Reference in Render Window, pour faire apparaitre une cible rouge. Double cliquez sur le coffre dès qu'elle est blanche. Appuyez sur OK.
Quête et Dialogue pour le marchand : showbartermenu
Pour accéder au dialogue de marchand, il faut créer une quête. Dans Fallout3, ce sont généralement les quêtes relatives aux lieux (DialogMegaton, Etc...) qui contiennent les dialogues appelant le menu de marchant, via la commande ShowBarterMenu.
Cette quête contiendra un topic réservé au dialogue de notre marchand, et nous nous en servirons plus tard pour ajouter des infos relatives à PalePass.
- Dans la fenêtre Object, allez dans Actor Data/Quest. Faites un clic droit dans la liste des quêtes, et selectionnez New. La fenêtre de Quete s'ouvre. Dans le champ Name, mettez le nom de la quête : Pale Pass. Rentrez en dessous l'ID de cette quête : MONDialogPalePass. Mettez Priority à 25, cochez Start Game Enabled, et Allow Conversation Topics. Validez avec OK.
- Toujours dans la liste de quêtes de la fenêtre Object, double-cliquez sur votre nouvelle quête. Cliquez sur l'onglet Topic. DAns la liste des Editor ID de l'Onglet Topic, faites un clic-droit et selectionnez Addtopic, puis dans la liste qui vient d'ouvrir, faites un clic droit, New, et rentrez l'ID du topic de marchand de palepass : MONTopicPalePassMarchand. Validez avec OK. Retrouvez le dans la liste de topics toujours ouverte et cliquez dessus : Rentrez la demande du joueur : "Qu'est-ce que vous avez à vendre ?". Mettez Priority à 30, et cochez Top Level. Appuyez sur OK.
- Dans l'Onglet Topic de la fenêtre Quest, votre nouveau topic figure dans la liste d'EditorID : Cliquez dessus pour le selectionner, et faites un clic droit dans la liste vide Info, et selectionnez New.
- La fenêtre New Response s'ouvre : entrez dans Response Text la réplique du NPC Marchand : "Faites votre choix.". Cliquez sur OK. Une fenêtre de correction s'ouvre, fermez-la avec le bouton Cancel. Dans le champ Emotion, choisissez Happy, et mettez à 50. Cliquez sur OK. Il faut maintenant indiquer dans le cadre conditions qui dit la phrase, sinon tous les NPC du jeu la diront ! Mettons comme condition à cette info que le NPC doit être notre marchand : Faites un clic droit dans la liste des conditions, et faites New. Dans la fenêtre Condition Item qui s'ouvre, selectionnez GetIsID comme Condition parameter, MONPalePassVendeur comme Function Parameter, et == 1. Votre permière info est créée !
- Dans la partie Prompt de la fenêtre ou figure votre info (cliquez dessus), entrez la phrase que le joueur dira en réponse à la question "Vous voulez acheter quelque chose ?" : "Montrez-moi ce que vous avez."
- Il ne reste qu'à indiquer le résultat de ce dialogue : l'ouverture de la fenêtre d'achats. Dans le cadre ResultScript (begin), marquez la commande ShowBarterMenu.
- Cliquez sur OK pour valider vos changements et fermez la fenêtre Quest.
- Sauvez votre Mod
Vous pouvez aller tester votre Marchand Ingame.