Kit NPC

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Les PNJ (personnages non joueurs) peuvent ajouter beaucoup de profondeur à une expérience. Tous les PNJ suivants peuvent être personnalisés visuellement, leur comportement modifié, et les zombies/soldats peuvent même défendre une zone en attaquant des joueurs ou d'autres personnages en utilisant un système de balise pour définir le comportement.

Pour utiliser un PNJ dans votre jeu :

  1. Sélectionnez l'un des kits NPC suivants :

    Zombie salivant
    Soldats
    RO-01 Robots
    Robots NP-C 9000
  2. Sur la page de l'article de l'PNJ, cliquez sur le bouton vert Obtenir et confirmez la transaction.

  3. Dans Roblox Studio, ouvrez la boîte à outils ( afficherboîte à outils ).

  4. Sélectionnez votre boîte à outils Inventaire section.

  5. Localisez le PNJ et cliquez dessus pour le rajouter à l'emplacement.

Structure du personnage

Chaque modèle de PNJ contient généralement les objets suivants :

Nom de l'objet ou [Type]TypeDescription
AnimationsFolderContient Animations, comme une AttackAnimation ou DeathAnimation.
Poses initialesFolderContient des informations de posage.
AnimerScriptCharge et joue des animations sur le personnage. Voir Animation de chargement et de jeu pour plus de plateforme.
[Accessoire]AccessoryL'un des possibles plusieurs Accessories pour le PNJ comme les chapeaux, les armes, etc.
SantéScriptGénère généralement la santé Humanoid au fil du temps. En désactivant ceci, le personnage ne pourra plus régénérer de santé.
HumanoïdeHumanoidGère les propriétés liées Humanoid, telles que Humanoid.Health, Humanoid.WalkSpeed, 1> Class.Humanoid.DisplayDistanceType1>, etc.
PNJScript

Définit des comportements spécifiques aux personnages tels que le roaming, l'attaque, etc. Les parents les objets suivants :

Maid ( Class.ModuleScript ) définit une classe utile pour libérer les ressources

RbxNpcSonsScriptDéfinit et gère le comportement lié aux effets sonores du personnage, comme courir, mourir, etc.
BodyPartsBasePartDiverses parties du corps du personnage attachées à la partie du corps humanoïde ou voisine par le biais de Motor6D ou d'objets de contrôle. Voir BodyParts pour plus de détails.
Partie racine humanoïdeBasePartUne partie invisible spéciale qui est considérée comme la racine du plateforme; c'est également la PrimaryPart du modèle de caractère de la classe Model.
ConfigurationConfigurationContient des objets de valeur qui ajustent divers comportements. Voir Configuration pour plus de détails.

Notes de conception

Lors de l'utilisation du kit NPC, tenez compte des notes de conception suivantes :

  • L'apparence visuelle d'un PNJ peut être personnalisée en ajoutant/modifiant divers objets [BodyPart] et en ajoutant Accessory objets.

  • Les Soldats, Drooling Zombie et NP-C 9000 Robots utilisent Rthro comme base de leur plateforme. Cependant, les RO-01 Robots utilisent une base Rthro modifiée qui ajoute des parties de poussée connectées au supérieur du torse en utilisant WeldConstraints. En utilisant des joints simples de cette façon, vous pouvez inclure une géométrie supplémentaire pour vos personnages

  • À un niveau de base, les animations NPC peuvent être personnalisées en modifiant la AnimationId des objets d'animation existants dans le script poses Animate ou dans le dossier Animations . Un tel changement est essentiellement un échange d'

Animations

L'Animate Script dans le NPC Model gère les animations liées et contient les objets suivants :

Nom de l'objet ou [Type]TypeDescription
ScaleDampeningPercenteNumberValueDéfinit comment les vitesses d'animation sont modifiées à mesure que le personnage est échelonné (moins de 1 implique que la lecture d'animation se modifie inversément à mesure que le personnage est échelonné).
JouerEmoteBindableFunctionCeci peut être invoqué par d'autres scripts afin de forcer l'假 de la position.
[Pose]StringValueRéférence à une catégorie d'animation jouable telle que l'inactif, le sauter, la marche, etc. Ce objet peut parent n'importe quel nombre de Animations . Ces Animations parent un 2> Poids2> ( 5> Class.NumberValue 5>) qui priorise l'une des animations à jouer

Parties du corps

Le BodyPart BasePart dans le NPC Model représente les différentes parties du corps du personnage et contient les objets suivants :

Nom de l'objet ou [Type]TypeDescription
Type d'échelle d'avatarStringValueDétermine comment la partie sera mise à l'échelle ; les valeurs peuvent être Classique, ProportionsNormal, ou ProportionsSlender.
Taille d'origineVector3ValueDétermine la taille de la partie lorsque l'ajustement du personnage est 1.
[lien]AttachmentDéfinit un point relativement à la partie individuelle que les scripts, effets et objets tels qu'un Tool ou un Accessory peuvent utiliser pendant le positionnement.
[Motor6D]Motor6DUne jonction animée entre deux parties du corps. Remarquez que Animator dépend du nom de Motor6Ds pour être cohérent avec celui de la Motor6Ds donc évitez de renommer cet objet.
[Joint]WeldConstraint , Constraint , JointInstanceUne jonction non animée entre deux parties du corps.
[Son]SoundTrouvé couramment dans la tête ou HumanoidRootPart ; joue des sons à partir du rig contrôlé par le script RbxNpcSounds.

Configuration

Chaque NPC inclut un objet Configuration dans sa hiérarchie qui agit comme un conteneur d'objets de valeur. Ces derniers sont utilisés par le script NPC pour ajuster divers comportements. À moins d'être autrement spécifié, ils s'appliquent à tous les personnages.

Nom de l'objet ou [Type]TypeDescription
Destruction à la mortBoolValueCause la destruction de tout le NPC peu après qu'il meure. Désactivez ceci pour que les ragdolls soient persistants.
Patrouille activéeBoolValueCause le PNJ de se promener dans une zone autour de sa position de départ.
Rayon de PatrouilleNumberValueDéfinit la distance maximale qu'un PNJ parcourra de sa position de départ, en supposant que PatrolEnabled est vrai.
RagdollActivéBoolValueCausez que le PNJ parte en lâche quand il meurt, au lieu de se briser.
Dégâts d'attaqueNumberValueDéfinit la quantité de santé perdue par une victime lorsqu'elle est attaquée par le PNJ. Cela s'applique uniquement aux kits Zombie et Soldat.
Délai d'expiration de l'attaqueNumberValueDéfinit le nombre minimum de secondes entre les tirs. Cela s'applique uniquement aux kits Soldier.
Mode d'attaqueNumberValueSpécifie ce que le soldat attaquera, en fonction du système de suivi des véhicules. Cela s'applique uniquement aux kits Soldier.
Rayon d'attaqueNumberValueDéfinit la distance maximale que le PNJ doit être d'une victime potentielle avant qu'il ne s'attaque. Cela s'applique aux kits Zombie et Soldat seulement.
Capacité de bandeNumberValueDéfinit le nombre de balles que le soldat peut tirer avant de recharger. Cela s'applique uniquement aux kits de soldat.
Délai de rechargementNumberValueDéfinit le nombre de secondes avant que l'arme du soldat soit rechargée. Cela s'applique uniquement aux kits Soldier.

Attribution de tags

Le script NPC utilise des balises CollectionService pour gérer l'agression envers d'autres personnages et joueurs. Plusieurs balises de la table suivante peuvent être attribuées comme suivant :

  • Pour attribuer des balises à un autre PNJ, attribuez-les au PNJ de niveau supérieur Model en utilisant la section balises de ses propriétés, ou Studio's Éditeur de balises.

  • Pour attribuer une étiquette à un personnage Player, vous pouvez ajouter un Script à StartercharacterScripts avec un 2>Class.CollectionService:AddTag()2> appel. Par exemple :


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
BaliseBut
SoldatEnemy ou SoldatFriend

Détermine si un soldat, en fonction de sa configuration Mode d'attaque , doit attaquer un autre personnage. Lorsque la configuration

ZombieFriend Cette étiquette est utilisée par le zombie pour déterminer si il ne devrait pas attaquer un personnage. Lorsqu'elle est appliquée, le zombie devient docile envers le personnage étiqueté.