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 NPC (personnages non-joueurs) peuvent apporter 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 à l'aide d'un système de tags pour définir le comportement.

Pour utiliser un NPC dans votre jeu :

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

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

  3. Dans Studio, ouvrez le Toolbox.

  4. Sélectionnez la section Inventaire de votre toolbox.

  5. Localisez le NPC et cliquez dessus pour l'ajouter dans l'endroit.

Structure du personnage

Chaque modèle NPC 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 pose.
AnimateScriptCharge et joue des animations sur le rig du personnage. Voir Animate pour plus de détails.
[Accessoire]AccessoryUn des plusieurs Accessories possibles pour le NPC, tels que des chapeaux, des armes, etc.
SantéScriptRé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 sa santé.
HumanoïdeHumanoidGère les propriétés liées à Humanoid, telles que Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType, etc.
NPCScript

Définit des comportements spécifiques au personnage, tels que vagabonder, attaquer, etc. Parent les objets suivants :

Maid (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 affecté par la physique (parent d'un RigTypes ModuleScript qui définit plusieurs fonctions d'assistance).

RbxNpcSoundsScriptDé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 HumanoidRootPart ou à des parties du corps voisines par l'intermédiaire d'objets Motor6D ou de contrainte. Voir BodyParts pour plus de détails.
HumanoidRootPartBasePartUne partie spéciale invisible considérée comme la racine du rig ; c'est aussi la PrimaryPart du Model du personnage.
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, gardez à l'esprit les notes de conception suivantes :

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

  • Les Soldats, le Zombie Baveux, et les Robots NP-C 9000 utilisent Rthro comme base de leur rig. Cependant, les Robots RO-01 utilisent une base Rthro modifiée qui ajoute des pièces de propulseur connectées au UpperTorso à l'aide de WeldConstraints. L'utilisation de joints simples de cette manière vous permet d'inclure une géométrie supplémentaire pour vos personnages sans changer le rig de base original.

  • À un niveau de base, les animations des NPC peuvent être personnalisées en modifiant l'AnimationId des objets Animation existants dans les poses du script Animate, ou ceux dans le dossier Animations. Un tel changement est essentiellement un échange d'actifs - pour changer les détails plus fins, vous pouvez créer des copies personnalisées des animations existantes, et pour jouer des animations sous différentes conditions, vous pouvez modifier les scripts Animate ou NPC directement. Pour plus d'informations, voir Animation.

Animer

Le script Script Animate dans le Model des NPC gère les configurations liées à l'animation et contient les objets suivants :

Nom de l'objet ou [Type]TypeDescription
ScaleDampeningPercentNumberValueDéfinit comment les vitesses d'animation sont modifiées à mesure que le personnage est redimensionné (moins de 1 implique que la lecture des animations se redimensionne de manière inverse à celle du personnage).
PlayEmoteBindableFunctionCela peut être invoqué par d'autres scripts pour forcer l'adoption d'une pose.
[Pose]StringValueRéférence à une catégorie d'animation jouable, comme idle, jump, walk, etc. Cet objet peut parent toute un nombre Animations.

Ces Animations parent un Poids (NumberValue) qui priorise l'une des plusieurs animations à jouer pendant que la pose est adoptée ; utilisé typiquement pour ajouter de la variété aux poses d'attente et de danse.

BodyParts

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

Nom de l'objet ou [Type]TypeDescription
AvatarPartScaleTypeStringValueDétermine comment la partie sera redimensionnée ; les valeurs peuvent être Classic, ProportionsNormal, ou ProportionsSlender.
Taille originaleVector3ValueDétermine la taille de la partie lorsque le redimensionnement du personnage est 1.
[Attachment]AttachmentDéfinit un point par rapport à la partie individuelle que les scripts, effets et objets tels qu'un Tool ou Accessory peuvent utiliser lors du positionnement.
[Motor6D]Motor6DUn joint animé entre deux parties du corps. Notez que Animator dépend du nom des Motor6Ds pour être cohérent avec ceux des Motor6Ds utilisés lors de la création d'une animation, donc évitez de renommer cet objet.
[Joint]WeldConstraint, Constraint, JointInstanceUn joint non animé entre deux parties du corps.
[Son]SoundSouvent trouvé dans la tête ou HumanoidRootPart ; joue des sons à l'intérieur du rig comme contrôlé par le script RbxNpcSounds.

Configuration

Chaque NPC inclut un objet Configuration dans sa hiérarchie qui sert de conteneur d'objets de valeur. Ceux-ci sont utilisés par le script NPC pour ajuster divers comportements. Sauf indication contraire, ceux-ci s'appliquent à tous les personnages.

Nom de l'objet ou [Type]TypeDescription
DestroyOnDeathBoolValueFait que l'ensemble du NPC est détruit peu après sa mort. Désactivez ceci pour que les ragdolls soient persistants.
PatrolEnabledBoolValueFait que le NPC vagabonde dans une zone autour de sa position de départ.
PatrolRadiusNumberValueDéfinit la distance maximale qu'un NPC errera de sa position de départ, en supposant que PatrolEnabled est vrai.
RagdollEnabledBoolValueFait que le NPC devient inerte lorsqu'il meurt, au lieu de se disloquer.
AttackDamageNumberValueDéfinit combien de santé est perdue par une victime lorsqu'elle est attaquée par le NPC. Cela s'applique uniquement aux kits Zombie et Soldat.
AttackDelayNumberValueDéfinit le nombre minimum de secondes entre les tirs. Cela s'applique uniquement aux kits Soldat.
AttackModeNumberValueSpécifie quel soldat attaquera, basé sur la configuration du système de tagging. Cela s'applique uniquement aux kits Soldat.
AttackRadiusNumberValueDéfinit la distance maximale à laquelle le NPC doit être d'une potentielle victime avant d'essayer d'attaquer. Cela s'applique uniquement aux kits Zombie et Soldat.
ClipCapacityNumberValueDéfinit combien de balles le soldat peut tirer avant de devoir recharger. Cela s'applique uniquement aux kits Soldat.
ReloadDelayNumberValueDéfinit combien de secondes doivent passer avant que le chargeur de l'arme du soldat soit rechargé. Cela s'applique uniquement aux kits Soldat.

Assigner des tags

Le script NPC utilise les tags CollectionService pour gérer l'agression envers d'autres personnages et joueurs. Divers tags du tableau suivant peuvent être assignés comme suit :

  • Pour attribuer un ou plusieurs tag(s) à un autre NPC, attribuez-les au Model de niveau supérieur du NPC à l'aide de la section Tags de ses propriétés.

  • Pour attribuer un tag à un personnage Player, vous pouvez ajouter un Script à StarterCharacterScripts avec un appel CollectionService:AddTag(). Par exemple :


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
TagObjectif
SoldierEnemy ou SoldierFriendDétermine si un soldat, basé sur sa valeur de configuration AttackMode, doit attaquer un autre personnage. Lorsque le AttackMode du soldat est défini sur 1, d'autres personnages doivent être tagués avec SoldierEnemy pour être considérés comme attaquables. Lorsque le AttackMode du soldat est défini sur 2, tous les objets sans le tag SoldierFriend sont considérés comme attaquables. Lorsque le AttackMode du soldat est défini sur 3, ces tags sont complètement ignorés et le soldat attaquera tous les personnages.
ZombieFriendCe tag est utilisé par le zombie pour déterminer s'il ne doit pas attaquer un personnage. Lorsqu'il est appliqué, le zombie devient docile envers le personnage tagué.
©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.