Objets

Comment attacher des objets à voler sur certains AI
Livres et parchemins
Comment équiper le joueur
Les passe-partout
Les échelles
Comment ajouter des propriétés physiques à des objets
Donner une arme différente à un Ai
Créer une potion d'invisibilité
Les lucioles (will-o-wisp, les boules de lumière)

Donner une arme différente à un Ai

(Crispy -- tr : Stefan Key)

Dans la plupart des cas, les armes fournies dans les jeux sont suffisantes. Mais il est toujours agréable d'ajouter sa petite touche et ce n'est pas très difficile.

Dans ce tutoriel, je vais fournir une baguette de prêtre Marteleur à une brigande et lui dire de frapper les gens autour d'elle. Normalement les baguettes magiques ne sont pas des armes de poing mais on peut changer cela facilement. Vous pouvez choisir un tout autre AI et une autre arme si l'idée de celle qui frappe les gens avec une baguette magique ne vous plaît pas.

Avant de commencer…

Il faut savoir que les armes de projections sont plus compliquées à faire et mériteraient un tutoriel bien à part. Pour l'instant, je m'en tiens aux armes "de poing".

Tous les AI ne peuvent porter des armes et tous les objets ne peuvent pas être utilisés comme arme.
Pour commencer, il faudra éviter les classes qui sont sous T3AIPawnHumanNonCombat. Ils ne doivent pas avoir d'animations (de mouvements) de combat.
A éviter également les classes d'objets qui ne sont pas sensés être tenus, c'est-à-dire qui n'ont pas de point d'attache (attachment point) bien défini ; essayez avec une skillet (poêle à frire), l'AI essaiera de la faire tenir en équilibre sur la paume de sa main au lieu de la tenir par la poignée.

En fait, j'ai tout d'abord essayé d'équiper la brigande avec une poêle. Cela n'a pas du tout marché. L'objet "Skillet" n'a pas un bon point d'attache, et la voleuse a eu beaucoup de mal à me frapper.
J'ai bien compris le premier problème (la Skillet ne peut pas être tenu), mais le deuxième est plutôt mystérieux pour moi. Peut-être qu'il y a un rapport avec les propriétés de AIWeapon (MeleeAttackAngleSweep, MeleeAttackNumberRays, MeleeWeaponRange).

Instructions

1. Il nous faut tout d'abord un AI à qui donner une arme. Ouvrez l'Actor Class Browser et placez le Ai de préférence au niveau du sol. J'ai choisi Pawn > AIPawn > T3AIPawn > T3AIPawnHuman > T3AIPawnHumanCombat > ThugFemale > ThugFemaleCity_FPants_01.

2. Nous avons besoin d'une arme. Avant d'aller droit au but, il faut savoir si vous allez implémenter vos modifications dans le gamesys (peut-être en créant une sous-classe pour l'objet que vous voulez transformer en arme) ou en modifiant un paramètre de la classe dans le niveau. Pour la simplicité, je vais choisir de ne modifier qu'un paramètre de la classe mais si vous devez utiliser votre nouvelle classe d'arme plus d'une fois, il est plus judicieux de modifier le gamesys.
Si vous avez choisi de modifier le gamesys, faites tous les changements de la classe d'armes dans l'Actor Class Browser au lieu de la boîte de dialogue Actor Properties. Si vous n'êtes pas sûr de ce que vous devez faire, faites comme moi pour le moment.

3. Si vous avez choisi de modifier le gamesys, faites une sous-classe pour votre nouveau type d'arme et placez-la près de votre AI sur la map (Peu importe où).
L'autre méthode est de placer une classe existante. J'ai choisi Actor > WorldObj > SetDressing > AIParts > MagicWand > MagicWandHammer.

4. Quand on change la fonction d'un objet existant comme celui-ci, il est sage de vérifier si il n'y a pas de Actor Links à effacer. Faites un clic droit sur l'arme ou sa sous-classe puis choisissez Actor Links. En effet, notre MagicWandHammer (baguette magique de Marteleur) a un Actor Link : c'est celui qui permet de faire l'effet magique habituelle de la baguette. Comme nous allons la convertir en arme de poing, nous n'avons pas besoin de ce link, vous pouvez l'effacer.

5. Ajoutons nos nouveaux paramètres. Faites un clic droit sur l'arme à nouveau, cette fois-ci choisissez Actor Properties. Déroulez le sous-menu de Properties qui est le plus bas, faites un clic droit dessus puis choisissez Add Property. La propriété que nous voulons ajouter se nomme bIsWeapon, vous pouvez la trouver dans la catégorie Weapons.

6. Paramétrez Weapon > bIsWeapon à True.

7. Ajoutez la propriété AIWeapon > bPerfectlyAccurateWeapon. Changez-la à False. C'est un paramètre de la baguette magique dont on ne se sert pas. Je ne sais pas si ce paramètre a un effet quelconque sur les armes de point, mieux vaut le désactiver.

8. Ajoutez 2 propriétés à votre future arme : Weapon > WeaponStimulus et Weapon > WeaponStimulusAmount. Paramétrez-les. Pour la baguette, je vais utiliser StimulusType_Blunt et 1. Pendant que vous y êtes, jetez un coup d'œil les autres types de stimuli disponibles, c'est une liste intéressante.

9. Ajoutez la propriété Weapon > WeaponStance. Paramétrez.
Il est important de savoir que tous les AI ne peuvent avoir toutes les positions "armées". S'il n'y a pas d'animation pour l'arme choisie, l'AI n'essaiera même pas de l'utiliser !
Par exemple, si on donne une matraque à un garde, cela n'a aucun effet car le garde n'a pas d'animation pour la position de la matraque eWS_BLACKJACK.
Pour la baguette magique, j'ai choisi eWS_SWORD (épée). La position eWS_MAGICWAND (baguette magique) aurait pu sembler plus appropriée, mais la voleuse n'a pas d'animations de baguette magique. Les animations de la baguette magique ne correspondent de toute façon pas à une arme de poing.

10. Maintenant nous sommes sur le point de donner l'arme à notre AI. Pas la peine d'aller dans l'écran d'équipement des armes (Weapon Loadout), cela ne marchera pas car notre arme n'est pas là. Ne me demandez pas pourquoi, c'est ainsi.

11. Faites un clic droit sur l'AI (pas l'arme !) et choisissez Actor Links. Une fenêtre apparaît avec toutes sortes de choses intéressantes comme les yeux et les dents. Cliquez sur Add Link. Choisissez RigidAttachment pour le type de link.

12. Nous devons à présent connaître le nom de l'arme (faites cela seulement si vous suivez ma méthode. Si vous avez créé une sous-classe, ce n'est pas la peine). Ouvrez les propriétés de votre arme, regardez la barre de titre de la fenêtre de propriétés. Il devrait y avoir un nom qui ressemble à ça
D_142 MyLevel.D_142__1(MagicWandHammer__1) (le vôtre différera légèrement). Le morceau qui nous intéresse se trouve entre parenthèses : dans mon cas, c'est MagicWandHammer__1.

13. Entrez le nom de l'arme dans le champ TO. Si vous avez fait une sous-classe, entrez le nom de la classe. (Grâce à la fonction Use Current Archetype, la classe qui est sélectionnée dans l'Actor Class Browser s'inscrit)

14. Cliquez sur OK. Comme par magie, l'arme se met entre les pieds de l'AI.

15. Sélectionnez le link dans la fenêtre Actor Links, cliquez sur Edit Selected Link. Dans la boîte de dialogue, déroulez l'entrée de la propriété qui se trouve le plus en bas, paramétrez m_parentBone sur M1 R Hand (c'est la main). C'est l'endroit du corps de l'AI où l'arme sera mise.

16. Paramétrez m_attachmentBone (c'est le point exact de l'arme qui sera attaché à l'AI) à HP_RightHand. Les points d'attaches (attachment bones) varient selon l'objet choisi comme arme.

17. Cliquez sur Done. Et encore une fois sur Done pour fermer la fenêtre Actor Links.

18. Sauvegardez et essayez votre niveau. Essayez d'esquiver l'attaque de votre AI, puis laissez-vous faire pour voir comment l'arme marche.

Notre arme n'est pas parfaite. L'animation est un peu étrange : la voleuse tend la baguette magique vers Garrett au lieu de le frapper ! Essayez avec d'autres armes si vous voulez pour en trouver une qui corresponde et que la voleuse peut avoir. (Désolé, la matraque ne fonctionne pas, j'ai essayé.)

Tutoriels sur T3ed
t3ed.tutoriel.free.fr