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 :
Sélectionnez l'un des kits NPC suivants :
Sur la page de l'article de l'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 boîte à outils Inventaire section.
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] | Type | Description |
---|---|---|
Animations | Folder | Contient Animations, comme une AttackAnimation ou DeathAnimation. |
Poses initiales | Folder | Contient des informations de posage. |
Animer | Script | Charge et joue des animations sur le personnage. Voir Animation de chargement et de jeu pour plus de plateforme. |
[Accessoire] | Accessory | L'un des possibles plusieurs Accessories pour le PNJ comme les chapeaux, les armes, etc. |
Santé | Script | Gé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ïde | Humanoid | Gère les propriétés liées Humanoid, telles que Humanoid.Health, Humanoid.WalkSpeed, 1> Class.Humanoid.DisplayDistanceType1>, etc. |
PNJ | Script | 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 |
RbxNpcSons | Script | Définit et gère le comportement lié aux effets sonores du personnage, comme courir, mourir, etc. |
BodyParts | BasePart | Diverses 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ïde | BasePart | Une 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. |
Configuration | 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 [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] | Type | Description |
---|---|---|
ScaleDampeningPercente | NumberValue | Dé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é). |
JouerEmote | BindableFunction | Ceci peut être invoqué par d'autres scripts afin de forcer l'假 de la position. |
[Pose] | StringValue | Ré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] | Type | Description |
---|---|---|
Type d'échelle d'avatar | StringValue | Détermine comment la partie sera mise à l'échelle ; les valeurs peuvent être Classique, ProportionsNormal, ou ProportionsSlender. |
Taille d'origine | Vector3Value | Détermine la taille de la partie lorsque l'ajustement du personnage est 1. |
[lien] | Attachment | Dé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] | Motor6D | Une 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 , JointInstance | Une jonction non animée entre deux parties du corps. |
[Son] | Sound | Trouvé 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] | Type | Description |
---|---|---|
Destruction à la mort | BoolValue | Cause la destruction de tout le NPC peu après qu'il meure. Désactivez ceci pour que les ragdolls soient persistants. |
Patrouille activée | BoolValue | Cause le PNJ de se promener dans une zone autour de sa position de départ. |
Rayon de Patrouille | NumberValue | Définit la distance maximale qu'un PNJ parcourra de sa position de départ, en supposant que PatrolEnabled est vrai. |
RagdollActivé | BoolValue | Causez que le PNJ parte en lâche quand 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 Zombie et Soldat. |
Délai d'expiration de l'attaque | NumberValue | Définit le nombre minimum de secondes entre les tirs. Cela s'applique uniquement aux kits Soldier. |
Mode d'attaque | NumberValue | Spé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'attaque | NumberValue | Dé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 bande | NumberValue | Définit le nombre de balles que le soldat peut tirer avant de recharger. Cela s'applique uniquement aux kits de soldat. |
Délai de rechargement | NumberValue | Dé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.
Balise | But |
---|---|
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é. |