Les PNJ (personnages non joueurs) peuvent ajouter beaucoup de profondeur à une expérience.Tous les NPC 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 :
Sur la page d'objet du PNJ, cliquez sur le bouton vert Obtenir et confirmez la transaction.
Dans Roblox Studio, ouvrez la boîte à outils ( Afficher → boîte à outils ).
Sélectionnez votre section boîte à outils Inventaire .
Localisez le PNJ et cliquez dessus pour l'ajouter à l'emplacement.
Structure du personnage
Chaque modèle NPC contient généralement les objets suivants :
Nom de l'objet ou [Type] | Type | Avertissement |
---|---|---|
Animations | Folder | Contient Animations , comme un AttackAnimation ou DeathAnimation . |
Poses initiales | Folder | Contient des informations de pose. |
Animations | Script | Chargement et lecture d'animations sur le plateformedu personnage. Voir Animer pour plus de détails. |
[Accessoire] | Accessory | L'une des possiblement plusieurs Accessories pour le PNJ comme des chapeaux, des armes, etc. |
Santé | Script | Régénère généralement la santé Humanoid au fil du temps. Désactiver cela empêchera le personnage de régénérer la santé. |
Humanoïde | Humanoid | Gère les propriétés liées Humanoid telles que Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType , etc. |
PNJ | Script > | Définit des comportements spécifiques au personnage tels que la navigation, l'attaque, etc.Les parents des objets suivants :: Fille ( ModuleScript ) définit une classe utile pour libérer les ressources utilisées.: Ragdoll ( ModuleScript ) définit une fonction qui transforme un personnage en un corps physiquement libre (parents un RigTypes ModuleScript qui définit plusieurs fonctions d'aide). |
Sons de RbxNpc | Script | Définit et gère le comportement lié aux effets sonores des personnages comme la course, le décès, etc. |
Parties du corps | BasePart | Diverses parties du corps de caractère attachées à la partie racine humanoïde ou à des parties du corps voisines par le biais de Motor6D ou d'objets de contrainte.Voir parties du corps pour plus de détails. |
Partie racine humanoïde | BasePart | Une partie invisible spéciale qui est considérée comme la racine du plateforme; c'est aussi le PrimaryPart de la caractéristique du personnage Model. |
Configération | Configuration | Contient 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 [BodyParts] et en ajoutant des objets Accessory.
Les soldats, le zombie salivant et les robots NP-C 9000 utilisent Rthro comme base de leur plateforme.Cependant, les robots RO-01 utilisent une base Rthro modifiée qui ajoute des parties de propulsion connectées au torse supérieur en utilisant WeldConstraints .L'utilisation de jointures simples de cette façon vous permet d'inclure une géométrie supplémentaire pour vos personnages sans modifier la plateformede base originale.
Au niveau de base, les animations de PNJ peuvent être personnalisées en modifiant le AnimationId des objets d'animation existants dans les poses du script Animer , ou celles du dossier Animations .Un tel changement est essentiellement un échange de ressources - pour modifier les détails fins, vous pouvez créer des copies personnalisées d'animations existantes, et pour jouer des animations sous des conditions différentes, vous pouvez modifier les scripts Animer ou NPC directement.Pour plus d'informations, voir Animation .
Animations
L'animation dans le NPC gère les configurations liées à l'animation et contient les objets suivants :
Nom de l'objet ou [Type] | Type | Avertissement |
---|---|---|
Pourcentage d'amortissement de l'échelle | NumberValue | Définit comment la vitesse d'animation est modifiée lorsque le personnage est redimensionné (moins de 1 implique une lecture d'animation inversée lorsque le personnage est redimensionné). |
Jouer une emote | BindableFunction | Cela peut être invoqué par d'autres scripts afin d'imposer l'hypothèse d'une pose. |
[Pose] | StringValue | Référence à une catégorie d'animation jouable telle que inactif, sauter, marche, etc.Cet objet peut parenter n'importe quel nombre de Animations . Ces Animations parents d'un poids ( NumberValue ) qui priorise une des nombreuses animations à jouer alors que la pose est supposée ; généralement utilisé pour ajouter de la variété aux poses inactives et de danse. |
Parties du corps
La partie du corps BasePart dans le NPC Model représente les différentes parties du corps des personnages et contient les objets suivants :
Nom de l'objet ou [Type] | Type | Avertissement |
---|---|---|
Type d'échelle d'avatar | StringValue | Détermine comment la partie sera mise à l'échelle ; les valeurs peuvent être classique , proportions normales , ou proportions minces . |
Taille originale | Vector3Value | Détermine la taille de la partie lorsque la mise à l'échelle du caractère est de 1. |
[Pièce jointe] | Attachment | Définit un point relatif à la partie individuelle que les scripts, les effets et les objets tels qu'un Tool ou Accessory peuvent utiliser lors de la positionnement. |
[Moteur6D] | Motor6D | Une articulation animée entre deux parties du corps.Notez que dépend du nom de pour être cohérent avec celui utilisé lorsqu'une animation a été créée, évitez donc de renommer cet objet. |
[Partagé] | WeldConstraint , Constraint , JointInstance | Une articulation non animée entre deux parties du corps. |
[Son] | Sound | Communément trouvé dans la tête ou HumanoidRootPart ; joue des sons à l'intérieur du rig comme contrôlé par le script RbxNpcSounds. |
Configération
Chaque PNJ inclut un objet Configuration dans sa hiérarchie qui agit comme un conteneur d'objets de valeur.Ceux-ci sont utilisés par le script NPC pour peaufiner divers comportements.À moins qu'il ne soit spécifié autrement, ils s'appliquent à tous les personnages.
Nom de l'objet ou [Type] | Type | Avertissement |
---|---|---|
Détruire lors de la mort | BoolValue | Fait en sorte que l'ensemble du PNJ soit détruit peu après sa mort. Désactivez cela pour que les ragdolls soient persistants. |
Patrouille activée | BoolValue | Fait que le PNB se promène dans une zone autour de sa position de départ. |
Patrouilleur de rayon | NumberValue | Définit la distance maximale qu'un PNJ se promènera à partir de sa position de départ, en supposant que PatrolEnabled est vrai. |
RagdollActivé | BoolValue | Fait en sorte que le PNJ devienne limpide lorsqu'il meurt, au lieu de se briser. |
Dégâts d'attaque | NumberValue | Définit la quantité de santé perdue par une victime lorsqu'elle est attaquée par le PNJ. Cela s'applique uniquement aux kits de zombie et de soldat. |
Retard d'attaque | NumberValue | Définit le nombre minimum de secondes entre les tirs. Cela s'applique aux kits de soldat uniquement. |
Mode d'attaque | NumberValue | Spécifie ce que le soldat attaquera, en fonction du système de balise .. Cela s'applique aux kits de soldat uniquement. |
Rayon d'attaque | NumberValue | Définit la distance maximale à laquelle le PNJ doit être d'une victime potentielle avant qu'il ne tente d'attaquer. Cela s'applique aux kits de zombie et de soldat uniquement. |
Capacité de clip | NumberValue | Définit le nombre de balles que le soldat peut tirer avant de recharger. Cela s'applique aux kits de soldat uniquement. |
Délai de rechargement | NumberValue | Définit le nombre de secondes qui doivent s'écouler avant que le chargeur d'armes du soldat soit rechargé. Cela s'applique uniquement aux kits de soldat. |
Attribuer des balises
Le script NPC utilise des balises CollectionService pour gérer l'agressivité envers d'autres personnages et joueurs.Les différentes balises de la table suivante peuvent être attribuées comme suit :
Pour attribuer une balise(s) à un autre PNJ, attribuez-la au niveau supérieur du PNJ en utilisant la section des balises de ses propriétés, ou l'éditeur de balises de Studio .
Pour attribuer une balise à un caractère Player , vous pouvez ajouter un Script à StarterCharacterScripts avec un appel CollectionService:AddTag(). Par exemple :
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
Balise | Objectif |
---|---|
Ennemi soldat ou Ami soldat | Détermine si un soldat, en fonction de sa valeur de configuration mode d'attaque , doit attaquer un autre personnage.Lorsque le mode d'attaque du soldat est réglé sur AttaqueMode, les autres personnages doivent être étiquetés avec SoldierEnemy pour être considérés comme attaquables.Lorsque le mode d'attaque du soldat est réglé sur AttackMode , tous les objets sans la balise SoldierFriend sont considérés comme attaquables.Lorsque le mode d'attaque du soldat est réglé sur AttackMode , ces balises sont ignorées entièrement et le soldat attaquera tous les personnages. |
Ami zombie | Cette balise est utilisée par le zombie pour déterminer s'il ne devrait pas attaquer un personnage.Lorsqu'il est appliqué, le zombie devient docile envers le personnage étiqueté. |