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 añadir mucha profundidad a una experiencia.Todos los siguientes NPCs se pueden personalizar visualmente, su comportamiento se modifica , y los zombis/soldados incluso pueden defender una área atacando a los jugadores o a otros personajes usando un sistema de etiquetas para establecer el comportamiento.

Para usar un NPC en tu juego:

  1. Seleccione uno de los siguientes kits de NPC:

    Zombi babeador

    Soldados
    >

    RO-01 Robots
    >

    Robots NP-C 9000
  2. En la página de elementos del PNJ, haz clic en el botón verde Obtener y confirma la transacción.

  3. En Roblox Studio, abra la Caja de herramientas ( VerCaja de herramientas ).

  4. Seleccione la sección de su caja de herramientas Inventario .

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

Estructura de caracteres

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

Nombre del objeto o [Tipo]TipoDescripción
AnimacionesFolderContiene Animations , como un AttackAnimation o DeathAnimation .
Poses inicialesFolderContiene información de posado.
AnimarScriptCarga y reproduce animaciones en el rigde personaje. Vea Animar para más detalles.
[Accesoria]AccessoryUna de posiblemente múltiples Accessories para el NPC como sombreros, armas, etc.
SaludScriptRegenera típicamente la salud Humanoid a lo largo del tiempo. Desactivar esto impedirá que el personaje regenere la salud.
HumanoideHumanoidAdministrar propiedades relacionadas Humanoid relacionadas, como Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType , etc.
NPCScript

Define comportamientos específicos de personajes como rastreo, ataque, etc.Padres de los siguientes objetos:

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

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

Sonidos de RbxNpcScriptDefine y gestiona el comportamiento relacionado con los efectos de sonido de personajes como correr, morir, etc.
Partes del cuerpoBasePartVarias partes del cuerpo de personajes unidas a la parte raíz humana o a las partes del cuerpo vecinas a través de Motor6D o objetos de restricción.Vea Partes del cuerpo para más detalles.
Parte de raíz humanoideBasePartUna parte invisible especial que se considera la raíz del rig; este es también el PrimaryPart de la Model del personaje.
ConfiguraciónConfigurationContiene objetos de valor que ajustan varios comportamientos. Vea Configuración para más detalles.

Notas de diseño

Al usar el kit NPC, tenga en cuenta las siguientes notas de diseño:

  • La apariencia visual de un NPC se puede personalizar agregando/modificando varios objetos [BodyParts] y agregando objetos Accessory.

  • Los soldados, zombis babosos y los robots NP-C 9000 usan Rthro como base de su rig.Sin embargo, los robots RO-01 utilizan una base modificada de Rthro que agrega piezas propulsoras conectadas al Torso superior usando WeldConstraints .El uso de uniones simples de esta manera te permite incluir geometría adicional para tus personajes sin cambiar el modelo base original.

  • A nivel básico, las animaciones de NPC se pueden personalizar modificando el AnimationId de los objetos de animación existentes dentro de las posiciones de guión Animar , o aquellas dentro de la carpeta Animaciones .Un cambio como ese es esencialmente un intercambio de activos - para cambiar los detalles más finos, puedes crear copias personalizadas de animaciones existentes, y para jugar animaciones bajo diferentes condiciones, puedes editar los Animate o NPC scripts directamente.Para obtener más información, vea Animación.

Animar

El Animate en el NPC maneja las configuraciones relacionadas con la animación y contiene los siguientes objetos:

Nombre del objeto o [Tipo]TipoDescripción
Porcentaje de amortiguación de escalaNumberValueDefine 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 animación se invierte inversamente a medida que se escala un personaje).
Reproducir emoteBindableFunctionEsto se puede invocar por otros scripts para forzar la asunción de una postura.
[Pose]StringValueReferencia a una categoría de animación reproducible como inactividad, salto, caminata, etc.Este objeto puede padre de cualquier número de Animations . Estos Animations padres de peso ( NumberValue ) que priorizan una de múltiples animaciones para jugar mientras se asume la postura; generalmente se usa para agregar variedad a las poses inactivas y de baile.

Partes del cuerpo

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

Nombre del objeto o [Tipo]TipoDescripción
Tipo de escala de avatarStringValueDetermina cómo se escalará la parte; los valores pueden ser Clásico , Proporciones normales o Proporciones delgadas .
Tamaño originalVector3ValueDetermina el tamaño de la parte cuando la escala de caracteres es 1.
[Adjunto]AttachmentDefine un punto relativo a la parte individual que los scripts, efectos y objetos como un Tool o Accessory pueden utilizar durante la posicionación.
[Motor6D]Motor6DUna articulación animada entre dos partes del cuerpo.Tenga en cuenta que Animator depende del nombre de Motor6Ds para ser consistente con el de Motor6Ds utilizado cuando se creó una animación, por lo que evite renombrar este objeto.
[Común]WeldConstraint , Constraint , JointInstanceUna junta no animada entre dos partes del cuerpo.
[Sonido]SoundComúnmente encontrado en la cabeza o HumanoidRootPart ; reproduce sonidos desde dentro del rig como controlados por el RbxNpcSounds script.

Configuración

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

Nombre del objeto o [Tipo]TipoDescripción
Destruir al morirBoolValueHace que todo el NPC se destruya poco después de morir. Desactiva esto para que las ragdolls sean persistentes.
PatrullaActivadaBoolValueHace que el NPC se desplace en un área alrededor de su posición de inicio.
Radio de patrullaNumberValueDefine la distancia máxima que un NPC recorrerá desde su posición de inicio, asumiendo que PatrullaActivada es verdadero.
RagdollActivadoBoolValueHace que el NPC se vaya a la zaga cuando muera, en lugar de romperse.
Daño de ataqueNumberValueDefine cuánta salud se pierde por una víctima cuando es atacada por el PNJ. Esto se aplica solo a los kits de Zombie y Soldado.
Retraso de ataqueNumberValueDefine el número mínimo de segundos entre disparos. Esto se aplica solo a los kits de Soldado.
Modo de ataqueNumberValueEspecifica qué atacará el soldado, basado en el sistema de etiquetado . Esto se aplica solo a los kits de soldado.
Radio de ataqueNumberValueDefine la distancia máxima que el NPC debe estar de una víctima potencial antes de que intente atacar. Esto se aplica solo a los kits de Zombie y Soldado.
Capacidad de clipNumberValueDefine cuántas balas puede disparar el soldado antes de necesitar recargar. Esto se aplica solo a los kits de soldado.
Retraso de recargaNumberValueDefine cuántos segundos deben pasar antes de que se recargue el clip de armas del soldado. Esto se aplica solo a los kits de soldados.

Asignar etiquetas

El script NPC usa etiquetas CollectionService para gestionar la agresión hacia otros personajes y jugadores.Se pueden asignar varias etiquetas de la siguiente tabla de la siguiente manera:

  • Para asignar etiquetas a otro PNJ, asignárselas al nivel superior del PNJModel usando la sección Etiquetas de sus propiedades o el Editor de etiquetas de Studio.

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


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
EtiquetaPropósito
SoldadoEnemigo o SoldadoAmigo

Determina si un soldado, basado en su valor de configuración de modo de ataque , debe atacar a otro personaje.Cuando el modo de ataque del soldado se establece en AttackMode , otros personajes deben ser etiquetados con SoldierEnemy para ser considerados atacables.Cuando el modo de ataque del soldado se establece en AttackMode , todos los objetos sin la etiqueta SoldierFriend se consideran atacables.Cuando el modo de ataque del soldado está configurado en , estas etiquetas se ignoran por completo y el soldado atacará a todos los personajes.

Amigo zombi Esta etiqueta es utilizada por el zombi para determinar si no debe atacar a un personaje.Al aplicarse, el zombi se vuelve dócil hacia el personaje etiquetado.