Kit de NPC

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Los NPCs (personajes no jugadores) pueden agregar mucha profundidad a una experiencia. Todos los siguientes NPCs pueden ser visualmente personalizados, su comportamiento modificado, y los zombis/soldados incluso pueden defender un área atacando a jugadores u otros personajes utilizando un sistema de etiquetas para establecer el comportamiento.

Para usar un NPC en tu juego:

  1. Selecciona uno de los siguientes kits de NPC:

    Zombi Baboso
    Soldados
    Robots RO-01
    Robots NP-C 9000
  2. En la página del elemento del NPC, haz clic en el botón verde Obtener y confirma la transacción.

  3. En Studio, abre la Caja de herramientas.

  4. Selecciona la sección de Inventario de tu caja de herramientas.

  5. Localiza el NPC y haz clic en él para agregarlo al lugar.

Estructura del personaje

Cada modelo de NPC típicamente contiene los siguientes objetos:

Nombre del objeto o [Tipo]TipoDescripción
AnimacionesFolderContiene Animaciones, como una AnimaciónDeAtaque o AnimaciónDeMuerte.
Poses InicialesFolderContiene información de posado.
AnimateScriptCarga y reproduce animaciones en el esqueleto del personaje. Consulta Animate para más detalles.
[Accesorio]AccessoryUno de los posibles múltiples Accesorios para el NPC, como sombreros, armas, etc.
SaludScriptRegenera típicamente la salud de Humanoid con el tiempo. Desactivar esto evitará que el personaje regenere salud.
HumanoideHumanoidManeja propiedades relacionadas con Humanoid, como Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType, etc.
NPCScript

Define comportamientos específicos del personaje, como deambular, atacar, etc. Parentea los siguientes objetos:

Maid (ModuleScript) define una clase útil para liberar recursos utilizados.

Ragdoll (ModuleScript) define una función que transforma un personaje en un cuerpo suelto afectado por la física (parentea un RigTypes ModuleScript que define varias funciones auxiliares).

RbxNpcSoundsScriptDefine y gestiona el comportamiento relacionado con los efectos de sonido del personaje, como correr, morir, etc.
CuerposBasePartVarios partes del cuerpo del personaje unidas al HumanoidRootPart o partes del cuerpo vecinas a través de Motor6D o objetos de restricción. Consulta Cuerpos para más detalles.
HumanoidRootPartBasePartUna parte especial invisible que se considera la raíz del esqueleto; esta es también la PrimaryPart del Model del personaje.
ConfiguraciónConfigurationContiene objetos de valor que ajustan varios comportamientos. Consulta Configuración para más detalles.

Notas de diseño

Al utilizar el kit de NPC, ten en cuenta las siguientes notas de diseño:

  • La apariencia visual de un NPC puede ser personalizada añadiendo/modificando varios objetos de [Cuerpos] y añadiendo objetos de Accessory.

  • Los Soldados, Zombi Baboso, y Robots NP-C 9000 utilizan Rthro como base de su esqueleto. Sin embargo, los Robots RO-01 utilizan una base Rthro modificada que agrega partes de propulsión conectadas al UpperTorso mediante WeldConstraints. Utilizar juntas simples de esta manera te permite incluir geometría adicional para tus personajes sin cambiar el esqueleto base original.

  • A nivel básico, las animaciones de los NPC pueden ser personalizadas modificando el AnimationId de los objetos de animación existentes dentro de las poses del script Animate, o aquellos dentro de la carpeta Animaciones. Tal cambio es esencialmente un intercambio de activos; para cambiar los detalles más finos, puedes crear copias personalizadas de animaciones existentes, y para reproducir animaciones bajo diferentes condiciones, puedes editar los scripts Animate o NPC directamente. Para más información, consulta Animación.

Animate

El script Script Animate en el Model del NPC maneja configuraciones relacionadas con animaciones y contiene los siguientes objetos:

Nombre del objeto o [Tipo]TipoDescripción
ScaleDampeningPercentNumberValueDefine cómo se modifican las velocidades de animación a medida que el personaje se escala (menos de 1 implica que la reproducción de la animación se escala inversamente a medida que se escala un personaje).
PlayEmoteBindableFunctionEsto puede ser invocado por otros scripts para forzar la asunción de una pose.
[Pose]StringValueReferencia a una categoría de animación reproducible, como estar de pie, saltar, caminar, etc. Este objeto puede parentar cualquier número de Animaciones.

Estas Animaciones parentan un Peso (NumberValue) que prioriza una de múltiples animaciones para reproducir mientras se asume la pose; típicamente utilizado para añadir variedad a las poses de estar de pie y bailar.

Cuerpos

La parte del cuerpo BasePart en el Model del NPC representa las diversas partes del cuerpo del personaje y contiene los siguientes objetos:

Nombre del objeto o [Tipo]TipoDescripción
AvatarPartScaleTypeStringValueDetermina cómo se escalará la parte; los valores pueden ser Clásico, ProporcionesNormales, o ProporcionesDelgadas.
OriginalSizeVector3ValueDetermina el tamaño de la parte cuando la escala del personaje es 1.
[Attachment]AttachmentDefine un punto relativo a la parte individual que scripts, efectos, y objetos como un Tool o Accessory pueden utilizar durante la posicionamiento.
[Motor6D]Motor6DUna junta animada entre dos partes del cuerpo. Ten en cuenta que Animator depende del nombre de Motor6Ds para ser consistente con el de Motor6Ds utilizado cuando se creó una animación, así que evita renombrar este objeto.
[Joint]WeldConstraint, Constraint, JointInstanceUna junta no animada entre dos partes del cuerpo.
[Sound]SoundComúnmente encontrado en la cabeza o HumanoidRootPart; reproduce sonidos desde dentro del modelo, como lo controla el script RbxNpcSounds.

Configuración

Cada NPC incluye un objeto Configuration dentro de su jerarquía que actúa como un contenedor de objetos de valor. Estos son utilizados por el script NPC para ajustar varios comportamientos. A menos que se especifique lo contrario, estos se aplican a todos los personajes.

Nombre del objeto o [Tipo]TipoDescripción
DestroyOnDeathBoolValueHace que todo el NPC sea destruido poco después de morir. Desactiva esto para que los ragdolls sean persistentes.
PatrolEnabledBoolValueHace que el NPC deambula en un área alrededor de su posición inicial.
PatrolRadiusNumberValueDefine la distancia máxima que un NPC puede deambular de su posición inicial, asumiendo que PatrolEnabled es verdadero.
RagdollEnabledBoolValueHace que el NPC se relaje cuando muere, en lugar de desmoronarse.
AttackDamageNumberValueDefine cuánto salud pierde una víctima cuando es atacada por el NPC. Esto se aplica solo a kits de Zombi y Soldado.
AttackDelayNumberValueDefine el número mínimo de segundos entre disparos. Esto se aplica solo a kits de Soldado.
AttackModeNumberValueEspecifica qué atacará el soldado, basado en el sistema de etiquetado. Esto se aplica solo a kits de Soldado.
AttackRadiusNumberValueDefine la distancia máxima que el NPC debe estar de una potencial víctima antes de intentar atacar. Esto se aplica solo a kits de Zombi y Soldado.
ClipCapacityNumberValueDefine cuántas balas puede disparar el soldado antes de necesitar recargar. Esto se aplica solo a kits de Soldado.
ReloadDelayNumberValueDefine cuántos segundos deben pasar antes de que se recargue el clip del arma del soldado. Esto se aplica solo a kits de Soldado.

Asignar etiquetas

El script NPC utiliza etiquetas de CollectionService para gestionar la agresión hacia otros personajes y jugadores. Varias etiquetas de la siguiente tabla pueden ser asignadas de la siguiente manera:

  • Para asignar etiqueta(s) a otro NPC, asígnalas al Model de nivel superior del NPC utilizando la sección de Etiquetas de sus propiedades.

  • Para asignar una etiqueta a un personaje de Player, puedes agregar un Script a StarterCharacterScripts con una llamada a CollectionService:AddTag(). Por ejemplo:


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
EtiquetaPropósito
SoldierEnemy o SoldierFriendDetermina si un soldado, según su valor de configuración AttackMode, debería atacar a otro personaje. Cuando el AttackMode del soldado está configurado a 1, otros personajes deben estar etiquetados con SoldierEnemy para ser considerados atacables. Cuando el AttackMode del soldado está configurado a 2, todos los objetos sin la etiqueta SoldierFriend son considerados atacables. Cuando el AttackMode del soldado está configurado a 3, estas etiquetas se ignoran por completo y el soldado atacará a todos los personajes.
ZombieFriendEsta etiqueta es utilizada por el zombi para determinar si no debería atacar a un personaje. Cuando se aplica, el zombi se vuelve dócil hacia el personaje etiquetado.
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.