Kit de armas

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

Para ayudar a crear experiencias competitivas basadas en combate, hay varias armas aprobadas disponibles para su uso en cualquier experiencia. El sistema central cuenta con armas basadas en proyectiles con una cámara sobre el hombro, y al establecer la velocidad del proyectil lo suficientemente alta se pueden simular armas de raycasting como las pistolas láser.

Para usar un arma aprobada en tu experiencia:

  1. Selecciona un arma de abajo, navegando al enlace de la biblioteca de activos.
Pistola
Escopeta
Rifle Automático
Subfusil
Rifle de Francotirador
Ballesta
Lanzagranadas
Lanzacohetes
Railgun
  1. En la página del artículo del arma, haz clic en el botón verde Obtener y confirma la transacción.

  2. En Studio, abre el Toolbox.

  3. Selecciona la sección Inventario de tu toolbox.

  4. Localiza el arma y haz clic en ella para agregarla al lugar. Cuando se te pregunte si deseas colocar la herramienta en el paquete inicial, haz clic en si deseas que los jugadores comiencen con el arma en su mochila, o haz clic en No para simplemente colocar el arma en el mundo 3D como un objeto recogible.

  5. Si esta es la primera vez que incorporas un arma aprobada, mueve la carpeta WeaponsSystem a ServerScriptService para que sirva como la carpeta unificada del sistema para todas las armas aprobadas en la experiencia.

Estructura de la carpeta del sistema

La carpeta WeaponsSystem es una carpeta unificada que contiene activos, configuraciones y scripts que alimentan todas las armas aprobadas en la experiencia. Si se encuentra en ServerScriptService, anula cualquier carpeta equivalente WeaponsSystem que pueda residir dentro de armas individuales.

La carpeta WeaponsSystem contiene las siguientes instancias:

Dentro de la carpeta WeaponsSystem, diferentes aspectos son controlados por los siguientes ModuleScripts:

AspectoManejados principalmente dentro de...
Funcionalidad de armas
  • Libraries/BaseWeapon
  • WeaponTypes/BulletWeapon
  • WeaponTypes/BowWeapon
Cámara sobre el hombro
  • Libraries/ShoulderCamera
GUI de Armas
  • Libraries/WeaponsGui
  • Libraries/DirectionalIndicatorGuiManager
  • Libraries/DamageBillboardHandler

Estructura del arma

Las armas aprobadas son Tools y están nombradas como aparecerán en la mochila del jugador. Cada arma está estructurada con una jerarquía similar.

Tipo de arma

El WeaponType StringValue corresponde con el ModuleScript para el arma en la carpeta WeaponsSystem/WeaponTypes. Los dos valores base son BulletWeapon y BowWeapon.

Modelo del arma

Cada arma contiene un Model compuesto por una o más BaseParts para formar el arma física. Uno de estos debe establecerse como la PrimaryPart del modelo.

El modelo también incluye los siguientes descendientes importantes que pueden ser padres de uno de los BaseParts del modelo:

  • TipAttachmentAttachment cuya posición en el BasePart padre determina de dónde salen las balas/proyectiles.
  • HandleAttachmentAttachment cuya posición en el BasePart padre determina dónde se suelda el Handle.
  • Fired
    optional
    Sound que se reproduce cuando se dispara el arma.
  • Reload
    optional
    Sound que se reproduce cuando se recarga el arma.
  • Descendientes adicionales para cualquier opciones especializadas.

Mango del arma

La parte Handle determina dónde un personaje jugador sostiene el arma. Esto debe ser un Part, debe llamarse Handle y debe ser un hijo directo del arma (herramienta).

Carpeta de configuración

La carpeta Configuration contiene tipos de "valor" específicos para el comportamiento del arma. Más allá de los valores predeterminados, puedes añadir elementos de configuración adicionales para opciones especializadas cuando sea aplicable.

A continuación se presentan las configuraciones base y sus valores predeterminados:

ElementoDescripciónPredeterminado
AmmoCapacityNúmero de disparos en cada "clip de munición" antes de que el jugador deba recargar. Ten en cuenta que la munición es ilimitada y esto no especifica cuántas municiones lleva un jugador.30
FireModeElige entre Semiautomático (un disparo por clic/tap), Automático (disparo continuo) o Ráfaga (ráfaga de disparos igual a NumBurstShots en cada clic/tap).Semiautomático
ShotCooldownTiempo mínimo de espera entre clics. Para armas con FireMode de Automático, este también es el tiempo entre disparos mientras se presiona el botón de disparo o manteniendo clic.0.1
BurstShotCooldownTiempo entre cada disparo en una ráfaga; solo importa si estableces FireMode en Ráfaga.Valor de ShotCooldown
NumBurstShotsNúmero de disparos por clic/ráfaga; solo importa si estableces FireMode en Ráfaga.3
HitDamageCantidad de daño que hace cada impacto directo.10
FullDamageDistanceDistancia máxima a la que los disparos harán daño total. Cualquier cosa golpeada más allá de esta distancia recibirá menos daño a medida que la distancia se acerque a ZeroDamageDistance.1000
ZeroDamageDistanceCualquier cosa golpeada en o más allá de esta distancia no recibirá daño.10000
BulletSpeedVelocidad a la que viajan las balas/proyectiles cuando se disparan. Establecer esto a un valor muy alto como 20000 simula armas de raycasting como las pistolas láser.1000
MaxDistanceDistancia máxima a la que las balas/proyectiles viajan antes de desaparecer.2000
MinSpreadCantidad mínima de dispersión para el arma.0
MaxSpreadCantidad máxima de dispersión para el arma.Valor de MinSpread
GravityFactorCantidad que la gravedad debe influir en cada bala/proyectil. Por ejemplo, este valor para la Ballesta es 1 porque las flechas se arquean durante el vuelo, pero este valor para el Lanzacohetes es 0 porque los cohetes propulsados viajan en línea recta.0
HasScopeEstablecer en true si deseas usar la mira que se especifica en el GUI del Sistema de Armas.false
ReloadAnimationNombre de la pista de animación de recarga en Assets/Animations de la carpeta del sistema.RifleReload
AimTrackNombre de la pista de animación de apuntar en Assets/Animations de la carpeta del sistema.RifleAim
AimZoomTrackNombre de la pista de animación de zoom de apuntar en Assets/Animations de la carpeta del sistema.RifleAimDownSights
RecoilMinRecoil mínimo agregado por cada tiro.0.05
RecoilMaxRecoil máximo agregado por cada tiro.0.5
TotalRecoilMaxRecoil máximo acumulado total. El recoil actual del arma nunca superará este valor.2
RecoilDecayMultiplicador de disminución para el recoil; esencialmente la tasa a la que el recoil disminuye después de disparar.0.825
RecoilDelayTimeTiempo de espera después de disparar/clicar antes de que se añada el recoil a la cámara.0.07
StartupTimeTiempo necesario después de equipar el arma antes de que el jugador pueda disparar. Esto evita que los jugadores disparen un solo tiro desde múltiples armas diferentes en rápida sucesión.0.2
FiredPlaybackSpeedRangeCantidad que el tono puede variar para el sonido Fired del arma. Establecer esto en 0 reproducirá siempre el sonido con el mismo tono.0.1
NumProjectilesNúmero de balas/proyectiles que se dispararán al mismo tiempo cuando hagas clic/tap una vez. Esto es útil para armas como la Escopeta que dispara múltiples balas al mismo tiempo. Tenga en cuenta que un disparo siempre utilizará exactamente una munición, independientemente de este valor.1

Opciones especializadas

Puedes añadir/modificar las siguientes opciones para cualquier arma. Estas personalizaciones requieren modificar ya sea el Model del arma, la Configuration del arma, o ambas. Algunas configuraciones son dependientes de otras, como Muzzle Particles que requieren los hijos necesarios para los Efectos y Sonidos de Proyectiles / Golpes.

Animaciones y sonidos del bolt

El bolt de un arma es la parte que se mueve hacia adelante y hacia atrás cada vez que se dispara.

BoltBasePart que se mueve cuando se dispara el arma.
BoltMotorMotor6D utilizado para animar el bolt. Asegúrate de establecer el Part0 del motor al PrimaryPart del modelo del arma y Part1 a la parte Bolt.
BoltMotorStartAttachment cuya posición en el BasePart padre determina dónde está el bolt cuando está en reposo.
BoltMotorTargetAttachment cuya posición en el BasePart padre determina dónde se anima el bolt al disparar.
BoltOpenSoundSound que se reproduce cuando el bolt se abre.
optional
BoltCloseSoundSound que se reproduce cuando el bolt se cierra.
optional
ElementoDescripciónPredeterminado
ActionOpenTimeTiempo que tarda el bolt en animarse a la posición abierta.0.025
ActionCloseTimeTiempo que tarda el bolt en animarse a la posición cerrada.0.075

Eyectar casquillos de bala

Las armas pueden incluir casquillos de bala físicos que se eyectan al disparar y caen al suelo.

CasingEjectPointAttachment cuya posición en el BasePart padre determina dónde deseas que salgan los casquillos de bala. Ten en cuenta que su orientación determina la dirección en la que salen los casquillos.
ElementoDescripciónPredeterminado
CasingEffectNombre del BasePart de casquillo en Assets/Effects/Casings de la carpeta del sistema.
CasingEjectSpeedMinVelocidad mínima de eyección de los casquillos15
CasingEjectSpeedMaxVelocidad máxima de eyección de los casquillos18
CasingHitSoundSound que se reproduce cuando los casquillos golpean el suelo.
optional

Efectos y sonidos de proyectiles/golpes

Puedes configurar proyectiles físicos para cualquier arma, junto con Sounds, Beams y ParticleEmitters para efectos de golpes y otros efectos especiales.

ElementoDescripciónPredeterminado
ShotEffectNombre de un efecto de disparo almacenado dentro de Assets/Effects/Shots de la carpeta del sistema.
ShouldMovePartEstablecer en true si el ShotEffect del arma debe moverse con el proyectil o false si no. Debes establecer esto en true solo si hay un objeto visible que se mueva con cada disparo, como una flecha o un cohete.false
BeamFadeTimeTiempo que tarda Beam0 o Beam1 (ver abajo) en desvanecerse después de que la bala/proyectil golpea algo. Por defecto, no se aplicará un desvanecimiento manual mediante código.0
BeamWidth0Grosor de Beam0 o Beam1 en Attachment0 (ver abajo).1.5
BeamWidth1Grosor de Beam0 o Beam1 en Attachment1 (ver abajo).1.8
NumHitParticlesNúmero de partículas que el emisor de HitParticles (ver abajo) emitirá.3
HitParticlesUsePartColorEstablecer en true si deseas que las partículas de impacto sean del color de la superficie golpeada; false si deseas que las partículas de impacto no cambien de color.true

Descendientes de ShotEffect

Descendientes del ShotEffect especificado en la sección anterior.

FlyingSound que se reproduce mientras la bala/proyectil está viajando.
optional
Beam0Primer lugar para un Beam detrás de la bala/proyectil. No olvides establecer Attachment0 y Attachment1.
optional
Beam1Segundo lugar para un Beam detrás de la bala/proyectil. No olvides establecer Attachment0 y Attachment1.
optional
Attachment0Attachment cuya posición en el BasePart padre determina la parte posterior de los haces que siguen; asegúrate de establecer Beam.Attachment0 en ambos Beam0 y Beam1 a esto.
optional
Attachment1Attachment cuya posición en el BasePart padre determina la parte delantera de los haces que siguen; asegúrate de establecer Beam.Attachment1 en ambos Beam0 y Beam1 a esto.
optional
TrailParticlesParticleEmitter padre como un hijo directo de Attachment0; esto emitirá mientras la bala/proyectil está viajando.
optional
LeadingParticlesParticleEmitter padre como un hijo directo de Attachment1; esto emitirá mientras la bala/proyectil está viajando.
optional
HitEffectAttachment cuya posición se establecerá en Beam.Attachment1 de Beam0 cuando la bala/proyectil golpee. Debes especificar Beam0 y sus adjuntos para que esto funcione correctamente.
optional
HitSoundSound padre como un hijo directo de HitEffect; se reproduce cuando la bala/proyectil golpea.
optional
HitParticlesSound padre como un hijo directo de HitEffect; emite cuando la bala/proyectil golpea.
optional
[ProjectilePart]Cualquier Part o MeshPart que quieras que aparezca como un proyectil físico. Asegúrate de establecer ShouldMovePart mencionado en la sección anterior en true si tienes un objeto visible aquí.
optional

Partículas de boca

Esta opción emite partículas del ParticleEmitter especificado en el TipAttachment Attachment del arma cuando se dispara.

Descendientes de la configuración:

  • ShotEffect (StringValue) — Nombre de un efecto de disparo almacenado en WeaponsSystem/Assets/Effects/Shots.
  • NumMuzzleParticles (IntValue) (opcional) — Número de partículas de boca que se emitirán; el valor predeterminado es 50.

Para el efecto de disparo especificado, agrega un activo ParticleEmitter dentro de WeaponsSystem/Assets/Effects/Shots llamado MuzzleParticles.

Destellos de boca

Esta opción crea un efecto de destello Beam cuando se dispara el arma.

Descendientes del modelo:

  • MuzzleFlash0 (Attachment) — Utilizado para especificar un lado del destello de boca. La posición no importa.
  • MuzzleFlash1 (Attachment) — Utilizado para especificar el lado opuesto del destello de boca. La posición no importa.
  • MuzzleFlash (Beam) — Asegúrate de establecer Attachment0 en MuzzleFlash0 y Attachment1 en MuzzleFlash1.

Descendientes de la configuración:

  • MuzzleFlashTime (NumberValue) (opcional) — Longitud del tiempo que se mostrará el destello de boca; el valor predeterminado es 0.03.
  • MuzzleFlashRotation0 (NumberValue) (opcional) — Rotación mínima del destello de boca; el valor predeterminado es -math.pi.
  • MuzzleFlashRotation1 (NumberValue) (opcional) — Rotación máxima del destello de boca; el valor predeterminado es math.pi.
  • MuzzleFlashSize0 (NumberValue) (opcional) — Tamaño mínimo del destello de boca; el valor predeterminado es 1.
  • MuzzleFlashSize1 (NumberValue) (opcional) — Tamaño máximo del destello de boca; el valor predeterminado es 1.

Rutas de partículas

Esta opción crea una cola de longitud variable desde el arma hasta el punto de impacto del proyectil.

Descendientes de la configuración:

  • TrailLength (NumberValue) (opcional) — Longitud de la cola detrás de la bala/proyectil; el valor predeterminado es nil, lo que significa que la longitud de la cola se calculará utilizando TrailLengthFactor.
  • TrailLengthFactor (NumberValue) (opcional) — La longitud de la cola se establecerá en este valor multiplicado por la distancia que la bala/proyectil viajó en el último cuadro; el valor predeterminado es 1. Ten en cuenta que esto se sobrescribirá si incluyes TrailLength.
  • ShowEntireTrailUntilHit (BoolValue) (opcional) — Establecer en true para renderizar la cola desde la punta del arma hasta donde esté el proyectil; esto sobrescribirá tanto TrailLength como TrailLengthFactor y la cola solo desaparecerá una vez que el proyectil golpee algo. Establecer en false para utilizar una de las dos opciones anteriores para calcular la longitud de la cola. El valor predeterminado es false.

Marcas de impacto

Esta adición visual aparece en la superficie donde los proyectiles golpean y es útil para flechas, agujeros de bala, marcas de quemaduras, etc.

Descendientes de la configuración:

  • HitMarkEffect (StringValue) (opcional) — Nombre del efecto de marca de impacto almacenado en WeaponsSystem/Assets/Effects/HitMarks; el valor predeterminado es BulletHole.
  • AlignHitMarkToNormal (BoolValue) (opcional) — Establecer en true si la marca de impacto debe alinearse siempre plana contra la superficie como un agujero de bala, o false si la marca de impacto debe aparecer atascada en la superficie desde la dirección de la que vino el proyectil (como una flecha). El valor predeterminado es true.

Puedes añadir el siguiente activo opcional dentro de WeaponsSystem/Assets/Effects/HitMarks:

  • Glow (Decal) (opcional) — Aparece en la superficie golpeada completamente opaco, luego se vuelve rápidamente más transparente, como un efecto luminoso en la superficie que se desvanece rápidamente. Útil para mostrar una marca roja brillante donde golpean los explosivos.
  • BulletHole (Decal) (opcional) — Aparece en la superficie golpeada completamente opaco y, después de 4 segundos, se desvanece a transparente durante 1 segundo.
  • ImpactBillboard (BillboardGui) (opcional) — Se muestra en la superficie golpeada, siempre enfrentándose hacia la cámara.
    • Impact (ImageLabel) (opcional) — Hijo directo de ImpactBillboard; comienza completamente opaco, crece al tamaño completo del ImpactBillboard en 0.1 segundos, luego se encoge a la mitad de su tamaño y se desvanece a transparencia completa durante 0.1 segundos.
  • Cualquier Part/MeshPart/SpecialMesh que quieras que aparezca como un proyectil físico (opcional). Por ejemplo, incluir un MeshPart de flecha y establecer AlignHitMarkToNormal mencionado arriba en false hará que la flecha salga de la superficie desde la dirección desde la que la disparaste.

Proyectiles explosivos

Los proyectiles pueden incluir un objeto Explosión para dañar personajes jugadores en un área alrededor del punto de impacto.

Descendientes de la configuración:

  • ExplodeOnImpact (BoolValue) (opcional) — Establecer en true si deseas que las balas/proyectiles del arma exploten al impactar, false de lo contrario. El valor predeterminado es false.
  • BlastRadius (NumberValue) (opcional) — Radio de explosión; el valor predeterminado es 8.
  • BlastPressure (NumberValue) (opcional) — Presión de explosión; el valor predeterminado es 10000.
  • BlastDamage (NumberValue) (opcional) — Daño infligido a las cosas en el centro de la explosión. Ten en cuenta que la explosión hace menos daño cuanto más lejos estén los objetos golpeados del centro de la explosión. El valor predeterminado es 100.

Arma de carga

Una arma de carga como el Railgun debe ser cargada entre disparos antes de poder disparar nuevamente.

Descendientes del modelo:

  • Charging (Sound) (opcional) — Se reproduce mientras el arma se carga.
  • Discharging (Sound) (opcional) — Se reproduce mientras el arma se descarga, por ejemplo, si cargas el arma solo parcialmente y sueltas el botón de disparo.
  • ChargeComplete (Sound) (opcional) — Se reproduce cuando el arma ha alcanzado la carga completa.
  • DischargeComplete (Sound) (opcional) — Se reproduce cuando el arma se ha descargado completamente.
  • ChargeGlow (BasePart) (opcional) — Este objeto se volverá menos transparente a medida que el arma se carga, de modo que será completamente opaco al 100% de carga.
  • ChargeCompleteParticles (ParticleEmitter) (opcional) — Emite cuando el arma ha terminado de cargarse. Este emisor puede ser un hijo de cualquier BasePart del modelo o un hijo de un Attachment dentro del BasePart.
  • DischargeCompleteParticles (ParticleEmitter) (opcional) — Emite cuando el arma se ha descargado completamente. Este emisor puede ser un hijo de cualquier BasePart del modelo o un hijo de un Attachment dentro del BasePart.
  • ChargingParticles (ParticleEmitter) (opcional) — Emite mientras el arma se carga. Puedes incluir múltiples emisores con este nombre y cada uno emitirá mientras se carga. Este emisor puede ser un hijo de cualquier BasePart del modelo o un hijo de un Attachment dentro del BasePart.

Descendientes de la configuración:

  • ChargeRate (NumberValue) — Tasa a la cual se cargará arma. Este valor debe especificarse para indicar que el arma utiliza carga.
  • DischargeRate (NumberValue) (opcional) — Tasa a la cual el arma se descargará; el valor predeterminado es 0, lo que significa que el arma no se descargará en absoluto.
  • ChargePassively (BoolValue) (opcional) — Establecer en true si deseas que el arma se cargue pasivamente para que dispare de inmediato cuando hagas clic, o false si deseas hacer clic/tocar para cargar el arma y que dispare una vez que haya alcanzado la carga completa. El valor predeterminado es false.
  • ChargingParticlesRatePerCharge (IntValue) (opcional) — Número de partículas que se emitirán de todos los emisores de ChargingParticles multiplicado por la carga actual del arma. El valor predeterminado es 20, lo que significa que si la carga del arma está en 10%, cada emisor de partículas de carga emitirá 2 partículas (20×0.1), y si la carga del arma está en 90%, cada emisor emitirá 18 partículas (20×0.9).
  • FireDischarge (NumberValue) (opcional) — Cantidad de carga que perderá el arma después de disparar un tiro completamente cargado; el valor predeterminado es 1.
  • NumChargeCompleteParticles (IntValue) (opcional) — Número de partículas que el emisor ChargeCompleteParticles emitirá una vez que el arma esté completamente cargada. El valor predeterminado es 25.
  • NumDischargeCompleteParticles (IntValue) (opcional) — Número de partículas que el emisor DischargeCompleteParticles emitirá cuando el arma se descargue completamente. El valor predeterminado es 25.

Arma de arco

Un arma de arco como la Ballesta puede incluir una construcción realista de cuerdas y brazos, así como una flecha visual nockeada a la cuerda.

Además de añadir descendientes del modelo, necesitas aplicar lo siguiente:

  • Convierte el arma en un arma de carga. Por ejemplo, agrega la requerida ChargeRate dentro de la Configuration del arma que especifica cuán rápido se tira la cuerda. Además, considera agregar descendientes opcionales a la Model del arma, como un sonido de Charging para la cuerda/brazos que se tiran hacia atrás.
  • Establece el WeaponType en BowWeapon como se indica en Estructura del Arma.

Descendientes del modelo:

  • LeftString (Beam) (opcional) — La mitad izquierda visual de la cuerda.
  • RightString (Beam) (opcional) — La mitad derecha visual de la cuerda.
  • Arrow (BasePart) (opcional) — La flecha que aparece cuando el arco está completamente tirado. Ten en cuenta que esto es solo para la apariencia visual en el arco (la flecha disparada real será un ShotEffect como se describe en Efectos/Golpes de Proyectiles y Sonidos).
  • String1 (Attachment) (opcional) — El punto central de la cuerda.
  • StringLoose (Attachment) (opcional) — Punto donde String1 debería estar cuando el arco está en reposo.
  • StringTight (Attachment) (opcional) — Punto donde String1 debería estar cuando el arco está completamente tirado.
  • Arms (Part) (opcional) — Una parte que simplemente sirve como un indicador interno de que los brazos del arco serán animados. Esto puede contener los siguientes hijos directos:
  • LeftString0 (Attachment) (opcional) — Punto donde se une el lado izquierdo de la cuerda al arco.
  • RightString0 (Attachment) (opcional) — Punto donde se une el lado derecho de la cuerda al arco.
  • LeftLoose (Attachment) (opcional) — Punto donde LeftString0 debería estar cuando el arco está en reposo.
  • RightLoose (Attachment) (opcional) — Punto donde RightString0 debería estar cuando el arco está en reposo.
  • LeftTight (Attachment) (opcional) — Punto donde LeftString0 debería estar cuando el arco está completamente tirado.
  • RightTight (Attachment) (opcional) — Punto donde RightString0 debería estar cuando el arco está completamente tirado.
  • [SpecialMesh] (SpecialMesh) (opcional) — La parte del arco que realmente se doblará cuando se tire del arco. Ten en cuenta que debes especificar los siguientes cuatro objetos Vector3Value para que esto se anime.
  • LooseOffset (Vector3Value) (opcional) — Desplazamiento del SpecialMesh cuando el arco está en reposo.
  • TightOffset (Vector3Value) (opcional) — Desplazamiento del SpecialMesh cuando el arco está completamente tirado.
  • LooseScale (Vector3Value) (opcional) — Escala del SpecialMesh cuando el arco está en reposo.
  • TightScale (Vector3Value) (opcional) — Escala del SpecialMesh cuando el arco está completamente tirado.

GUI del sistema de armas

El sistema central de armas se comunica con este sistema para actualizar el GUI en función de cosas como la dispersión del arma, indicadores para cuando te golpean o golpeas a otros, etc.

El WeaponsSystemGui es un objeto ScreenGui en WeaponsSystem/Assets que se coloca en PlayerGui cuando comienza la experiencia. El WeaponSystemGui tiene 4 descendientes:

Elementos escalables

ScalingElements es una Folder situada bajo WeaponsSystemGui con los siguientes descendientes:

NombreTipo de instanciaDescripción
DirectionalIndicatorsFolderUna Folder donde se almacenan todos los indicadores direccionales.
CrosshairFrameUn Frame que contiene los siguientes objetos:

[UIAspectRationConstraint] - UIAspectRatioConstraint
Bottom - ImageLabel
Left - ImageLabel
Right - ImageLabel
Top - ImageLabel
HitMarkerFrameUn Frame que contiene los siguientes objetos:

[UIAspectRatioConstraint] - UIAspectRatioConstraint
HitMarkerImage - ImageLabel que aparece y se desvanece cuando el jugador golpea exitosamente a otro personaje jugador.

Pantalla táctil grande

LargeTouchscreen es un Frame que contiene botones que se muestran en pantallas táctiles grandes. LargeTouchscreen tiene los siguientes descendientes:

Mira

Scope es un Frame que contiene ScopeImage (ImageLabel) que aparece al hacer zoom en un arma con HasScope habilitado (ver Estructura del Arma).

Scope tiene los siguientes descendientes:

NombreTipo de instanciaDescripción
ScopeInstanceFrameUn Frame que contiene los siguientes activos utilizados al hacer zoom en un arma con HasScope habilitado:

[UIAspectRationConstraint] - UIAspectRatioConstraint
BottomBlack - Frame
LeftBlack - Frame
RightBlack - Frame
TopBlack - Frame

Pantalla táctil pequeña

SmallTouchScreen es un Frame que contiene botones que se muestran en pantallas táctiles pequeñas. SmallTouchscreen tiene los siguientes descendientes:

Crear un indicador direccional

Los indicadores direccionales se utilizan para mostrar la dirección de algo alrededor del puntero del jugador. Por ejemplo, si alguien te dispara, se puede mostrar un semicírculo rojo alrededor de tu puntero en la dirección de la que provino el disparo. Otros ejemplos incluyen indicadores para mostrar la dirección de pasos, fuego indirecto o incluso objetos ambientales como cofres.

Para crear un nuevo indicador, agrega una nueva Frame de Indicador en WeaponsSystemGui/ScalingElements/DirectionalIndicators con la siguiente estructura:

NombreTipo de instanciaDescripción
[UIAspectRationConstraint] UIAspectRatioConstraint
[ImageLabel]ImageLabelImagen del indicador direccional. Puede ser necesario ajustar la rotación de la imagen en Studio a menos que subas la imagen de modo que esté orientada hacia abajo y haya poco o ningún espacio en blanco alrededor.
Esta etiqueta de imagen también debe contener su propio
UIAspectRatioConstraint.
[Configuración]ConfigurationContiene propiedades opcionales para ajustar. Consulta Configuración de Indicadores para más información.

Una vez creado, puedes activar un indicador mediante el siguiente comando dentro de WeaponsSystem/Libraries/WeaponsGui donde indicatorName es el nombre de cadena del indicador a activar y worldPos es la posición en el mundo donde debe apuntar el indicador direccional:


self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)

Configuración del indicador

Los DirectionalIndicators se pueden modificar aún más ajustando el objeto Configuration padre bajo el [Indicator]. Todos estos ajustes tienen un valor predeterminado, por lo que no es necesario establecer configuraciones cuando no se modifica una configuración.

Las siguientes configuraciones se pueden establecer:

NombreTipo de instanciaDescripción
DistanceLevelFromCenterNumberValueNúmero de niveles de distancia desde el centro de la pantalla (cada nivel de distancia es aproximadamente 0.03 de la escala de la pantalla); el valor predeterminado es 6.
FadeTimeNumberValueTiempo de desvanecimiento del indicador después de su activación y el tiempo TimeBeforeFade; el valor predeterminado es 1.
NameStringValueNombre del indicador direccional como deseas referenciarlo en el código; el valor predeterminado es el nombre de la Frame de nivel superior del indicador.
TimeBeforeFadeNumberValueNúmero de segundos que el indicador aparecerá antes de desvanecerse; el valor predeterminado es 1.
TransparencyBeforeFadeNumberValueTransparencia del indicador antes de que comience a desvanecerse; el valor predeterminado es 0.
WidthLevelNumberValueNúmero de niveles de ancho desde el centro (cada nivel de ancho es aproximadamente 0.03 de la escala de la pantalla); el valor predeterminado es el valor de DistanceLevelFromCenter.

Mostrar cartel de daño

El cartel de daño se utiliza para mostrar pequeños números sobre la cabeza de un personaje cuando sufren daño. Estos solo aparecerán para el jugador que dañó al personaje de otro jugador, no para los jugadores que están observando.

Los carteles de daño se manejan en WeaponsSystem/Libraries/DamageBillboardHandler y se pueden activar desde cualquier código del lado del cliente de la siguiente manera, donde damage es la cantidad de daño infligido y adornmentPart es la parte en la que adornar el cartel, como la cabeza de la víctima:


DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

Cámara sobre el hombro

La cámara sobre el hombro es una cámara en tercera persona que mira sobre el hombro derecho del personaje jugador. Para personalizar la cámara sobre el hombro, modifica las variables bajo el comentario -- Parámetros de configuración (constantes) en la función ShoulderCamera.new() de WeaponsSystem/Libraries/ShoulderCamera. Puedes modificar cosas como el campo de visión, el desplazamiento desde el personaje, la velocidad de caminar mientras corres o haces zoom, etc.

Control de carrera y zoom

Por defecto, el sistema de armas añade la capacidad de "correr", por lo que los jugadores pueden correr manteniendo presionada la tecla Shift, presionando completamente hacia arriba en el thumbstick dinámico (móvil) o presionando completamente hacia arriba en el joystick izquierdo (gamepad). Si deseas desactivar la carrera, establece el valor de SprintEnabled dentro de WeaponsSystem/Configuration en false.

El sistema también reduce la velocidad del jugador mientras está apuntando/haciendo zoom, pero puedes desactivar este comportamiento estableciendo el valor de SlowZoomWalkEnabled en false.

©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.