Kit d'armes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Pour aider à créer des expériences de combat compétitives, plusieurs armes approuvées sont disponibles pour une utilisation dans n'importe quelle expérience. Le système principal propose des armes à projectiles avec une caméra au-dessus de l'épaule, et en réglant la vitesse du projectile suffisamment élevée, on peut simuler des armes à rayons comme des pistolets laser.

Pour utiliser une arme approuvée dans votre expérience :

  1. Sélectionnez une arme ci-dessous, en naviguant vers le lien de la bibliothèque d'actifs.
Pistolet
Fusil à pompe
Fusil d'assaut
PM
Fusil de sniping
Arbalète
Lance-grenades
Lance-roquettes
Railgun
  1. Sur la page de l'item de l'arme, cliquez sur le bouton vert Obtenir et confirmez la transaction.

  2. Dans Studio, ouvrez la Boîte à outils.

  3. Sélectionnez la section Inventaire de votre boîte à outils.

  4. Localisez l'arme et cliquez dessus pour l'ajouter dans l'emplacement. Lorsqu'il vous est demandé si vous souhaitez mettre l'outil dans le pack de départ, cliquez sur Oui si vous voulez que les joueurs commencent avec l'arme dans leur sac à dos, ou cliquez sur Non pour simplement placer l'arme dans le monde 3D en tant que pickup.

  5. Si c'est la première fois que vous intégrez une arme approuvée, déplacez son dossier WeaponsSystem dans ServerScriptService pour servir de dossier système unifié pour toutes les armes approuvées dans l'expérience.

Structure du dossier système

Le dossier WeaponsSystem est un dossier unifié qui contient des actifs, des configurations et des scripts qui alimentent toutes les armes approuvées dans l'expérience. S'il est situé dans ServerScriptService, il remplace tous les dossiers WeaponsSystem équivalents qui peuvent résider dans des armes individuelles.

Le dossier WeaponsSystem contient les instances suivantes :

Dans le dossier WeaponsSystem, différents aspects sont contrôlés par les ModuleScripts suivants :

AspectGéré principalement dans...
Fonctionnalité des armes
  • Libraries/BaseWeapon
  • WeaponTypes/BulletWeapon
  • WeaponTypes/BowWeapon
Caméra à l'épaule
  • Libraries/ShoulderCamera
GUI des Armes
  • Libraries/WeaponsGui
  • Libraries/DirectionalIndicatorGuiManager
  • Libraries/DamageBillboardHandler

Structure de l'arme

Les armes approuvées sont Tools et sont nommées comme elles apparaîtront dans le sac à dos du joueur. Chaque arme est structurée avec une hiérarchie similaire.

Type d'arme

Le WeaponType StringValue correspond au ModuleScript pour l'arme dans le dossier WeaponsSystem/WeaponTypes. Les deux valeurs de base sont BulletWeapon et BowWeapon.

Modèle d'arme

Chaque arme contient un Model constitué d'une ou plusieurs BaseParts pour former l'arme physique. Une de ces parties doit être définie comme la PrimaryPart du modèle.

Le modèle comprend également les descendants importants suivants qui peuvent être parentés à l'une des BaseParts du modèle :

  • TipAttachmentAttachment dont la position sur le BasePart parent détermine d'où sortent les balles/projectiles.
  • HandleAttachmentAttachment dont la position sur le BasePart parent détermine où la Handle est soudée.
  • Fired
    optional
    Sound qui se joue lorsque l'arme est tirée.
  • Reload
    optional
    Sound qui se joue lorsque l'arme est rechargée.
  • Descendants supplémentaires pour toute option spécialisée.

Poignée de l'arme

La partie Handle détermine où un personnage joueur tient l'arme. Cela doit être un Part, doit être nommé Handle, et doit être un enfant direct de l'arme (outil).

Dossier de configuration

Le dossier Configuration contient des types de "valeur" spécifiques pour le comportement de l'arme. Au-delà des valeurs par défaut, vous pouvez ajouter des éléments de configuration supplémentaires pour options spécialisées lorsque cela est applicable.

Voici les configurations de base et leurs valeurs par défaut :

ArticleDescriptionPar défaut
AmmoCapacityNombre de tirs dans chaque "chargeur" avant que le joueur doive recharger. Notez que les munitions sont illimitées et cela ne spécifie pas combien de munitions un joueur porte.30
FireModeChoisissez entre Semiautomatic (un tir par clic/touche), Automatic (tir continu), ou Burst (rafale de tirs égale à NumBurstShots à chaque clic/touche).Semiautomatic
ShotCooldownTemps d'attente minimum entre les clics. Pour les armes avec un FireMode de Automatic, c'est aussi le temps entre les tirs lors de l'appui sur le bouton de tir ou du maintien du clic.0.1
BurstShotCooldownTemps entre chaque tir dans une rafale ; ne compte que si vous définissez FireMode à Burst.Valeur de ShotCooldown
NumBurstShotsNombre de tirs par clic/rafale ; ne compte que si vous définissez FireMode à Burst.3
HitDamageQuantité de dégâts infligés par chaque coup direct.10
FullDamageDistanceDistance maximale à laquelle les tirs infligeront des dégâts complets. Tout ce qui est touché au-delà de cette distance subira de moins en moins de dégâts à mesure que la distance approche ZeroDamageDistance.1000
ZeroDamageDistanceTout ce qui est touché à ou au-delà de cette distance ne recevra aucun dégât.10000
BulletSpeedVitesse à laquelle les balles/projectiles voyagent lorsqu'ils sont tirés. Réglez ceci sur une valeur très élevée comme 20000 pour simuler des armes à rayons comme les pistolets laser.1000
MaxDistanceDistance maximale que les balles/projectiles parcourent avant de disparaître.2000
MinSpreadQuantité minimum d'écart pour l'arme.0
MaxSpreadQuantité maximum d'écart pour l'arme.Valeur de MinSpread
GravityFactorMontant par lequel la gravité doit influencer chaque balle/projectile. Par exemple, cette valeur pour la Crossbow est 1 parce que les flèches arc lors de leur vol, mais cette valeur pour la Rocket Launcher est 0 car les roquettes propulsées voyagent en ligne droite.0
HasScopeDéfinissez sur true si vous souhaitez utiliser la lunette spécifiée dans le GUI du Système d'Armes.false
ReloadAnimationNom de la piste d'animation de rechargement dans Assets/Animations du dossier système.RifleReload
AimTrackNom de la piste d'animation de visée dans Assets/Animations du dossier système.RifleAim
AimZoomTrackNom de la piste d'animation de zoom dans Assets/Animations du dossier système.RifleAimDownSights
RecoilMinRecul minimum ajouté pour chaque tir.0.05
RecoilMaxRecul maximum ajouté pour chaque tir.0.5
TotalRecoilMaxRecul total maximum accumulé. Le recul actuel de l'arme ne dépassera jamais cette valeur.2
RecoilDecayMultiplicateur de décadence pour le recul ; essentiellement le taux auquel le recul diminue après un tir.0.825
RecoilDelayTimeTemps d'attente après le tir/clic avant que le recul soit ajouté à la caméra.0.07
StartupTimeDurée après l'équipement de l'arme avant que le joueur puisse tirer. Cela empêche les joueurs de tirer un seul coup de plusieurs armes différentes à la suite.0.2
FiredPlaybackSpeedRangeMontant par lequel la hauteur peut varier pour le son Fired de l'arme. Réglez ceci sur 0 pour toujours le jouer à la même hauteur.0.1
NumProjectilesNombre de balles/projectiles qui tireront en même temps lorsque vous cliquerez/toucherez une fois. Cela est utile pour des armes comme le Fusil à pompe qui tire plusieurs balles en même temps. Notez qu'un tir utilisera toujours exactement une munition, quelle que soit cette valeur.1

Options spécialisées

Vous pouvez ajouter/modifier les options suivantes pour n'importe quelle arme. Ces personnalisations nécessitent de modifier soit le Model de l'arme, soit le Configuration de l'arme, soit les deux. Certaines configurations dépendent des autres, telles que Muzzle Particles qui nécessitent les enfants nécessaires pour Projectile/Hits Effects and Sounds.

Animations et sons du boulon

Le boulon d'une arme est la partie qui bouge de va-et-vient chaque fois qu'elle est tirée.

BoulonBasePart qui bouge lorsque l'arme est tirée.
BoulonMoteurMotor6D utilisé pour animer le boulon. Assurez-vous de définir Part0 du moteur sur la PrimaryPart du modèle de l'arme et Part1 sur la partie Boulon.
BoulonMoteurDébutAttachment dont la position sur le BasePart parent détermine où se trouve le boulon lorsqu'il est au repos.
BoulonMoteurCibleAttachment dont la position sur le BasePart parent détermine où le boulon s'anime lors du tir.
BoulonOuvrirSonSound qui se joue lorsque le boulon s'ouvre.
optional
BoulonFermerSonSound qui se joue lorsque le boulon se ferme.
optional
ArticleDescriptionPar défaut
ActionOuvrirTempsTemps qu'il faut pour que le boulon s'anime à la position ouverte.0.025
ActionFermerTempsTemps qu'il faut pour que le boulon s'anime à la position fermée.0.075

Éjecter les douilles de balle

Les armes peuvent inclure des douilles de balle physiques qui s'éjectent lors du tir et tombent au sol.

PointÉjectionDouilleAttachment dont la position sur le BasePart parent détermine où vous souhaitez que les douilles de balles popent. Notez que son orientation détermine la direction dans laquelle les douilles popent.
ArticleDescriptionPar défaut
EffetDouilleNom de la BasePart de douille dans Assets/Effects/Casings du dossier système.
VitesseÉjectionDouilleMinVitesse d'éjection minimale des douilles15
VitesseÉjectionDouilleMaxVitesse d'éjection maximale des douilles18
SonImpactDouilleSound qui se joue lorsque les douilles touchent le sol.
optional

Effets et sons de projectile/coup

Vous pouvez configurer des projectiles physiques pour n'importe quelle arme, ainsi que des Sons, Rayons et des ÉmetteursDeParticules pour les effets de coup et d'autres effets spéciaux.

ArticleDescriptionPar défaut
EffetTirNom d'un effet de tir stocké dans Assets/Effects/Shots du dossier système.
ShouldMovePartDéfinissez sur true si l'EffetTir de l'arme doit se déplacer avec le projectile ou false si ce n'est pas le cas. Vous ne devez le définir sur true que s'il y a un objet visible qui se déplace avec chaque tir, comme une flèche ou une roquette.false
BeamFadeTimeTemps qu'il faut pour que Beam0 ou Beam1 (voir ci-dessous) se dégrade après que la balle/projectile touche quelque chose. Par défaut, aucun dégradé manuel ne sera appliqué par le code.0
BeamWidth0Épaisseur de Beam0 ou Beam1 à Attachment0 (voir ci-dessous).1.5
BeamWidth1Épaisseur de Beam0 ou Beam1 à Attachment1 (voir ci-dessous).1.8
NumHitParticlesNombre de particules que l'émetteur HitParticles (voir ci-dessous) émettra.3
HitParticlesUsePartColorDéfinissez sur true si vous voulez que les particules d'impact soient de la couleur de la surface touchée ; false si vous voulez que les particules d'impact ne changent pas de couleur.true

Descendants de ShotEffect

Descendants de l'EffetTir spécifié dans la section précédente

VolSound qui se joue pendant que la balle/projectile voyage.
optional
Beam0Premier emplacement pour un Beam traînant derrière la balle/projectile. N'oubliez pas de définir Attachment0 et Attachment1.
optional
Beam1Deuxième emplacement pour un Beam traînant derrière la balle/projectile. N'oubliez pas de définir Attachment0 et Attachment1.
optional
Attachment0Attachment dont la position sur le BasePart parent détermine l'arrière des faisceaux traînants ; assurez-vous de définir Beam.Attachment0 sur Beam0 et Beam1 à celui-ci.
optional
Attachment1Attachment dont la position sur le BasePart parent détermine l'avant des faisceaux traînants ; assurez-vous de définir Beam.Attachment1 sur Beam0 et Beam1 à celui-ci.
optional
TrailParticlesParticleEmitter parenté comme enfant direct de Attachment0 ; il émettra pendant que la balle/projectile est en voyage.
optional
LeadingParticlesParticleEmitter parenté comme enfant direct de Attachment1 ; il émettra pendant que la balle/projectile est en voyage.
optional
HitEffectAttachment dont la position sera définie sur Beam.Attachment1 de Beam0 lorsque la balle/projectile touche quelque chose. Vous devez spécifier Beam0 et ses attachements pour que cela fonctionne correctement.
optional
HitSoundSound parenté comme enfant direct de HitEffect ; se joue lorsque la balle/projectile touche.
optional
HitParticlesSound parenté comme enfant direct de HitEffect ; émet lorsque la balle/projectile touche.
optional
[ProjectilePart]N'importe quelle Part ou MeshPart que vous voulez faire apparaître comme un projectile physique. Assurez-vous de définir ShouldMovePart mentionné dans la section précédente sur true si vous avez un objet visible ici.
optional

Particules de bouche

Cette option émet des particules depuis l'ParticleEmitter spécifié au niveau de la TipAttachment Attachment de l'arme lorsqu'elle est tirée.

Descendants de configuration :

  • ShotEffect (StringValue) — Nom d'un effet de tir stocké dans WeaponsSystem/Assets/Effects/Shots.
  • NumMuzzleParticles (IntValue) (optionnel) — Nombre de particules de bouche qui seront émises ; par défaut 50.

Pour l'effet de tir spécifié, ajoutez un actif ParticleEmitter à WeaponsSystem/Assets/Effects/Shots nommé MuzzleParticles.

Flashes de bouche

Cette option crée un effet de flash Beam lorsque l'arme est tirée.

Descendants du modèle :

  • MuzzleFlash0 (Attachment) — Utilisé pour spécifier un côté du flash de bouche. La position n'a pas d'importance.
  • MuzzleFlash1 (Attachment) — Utilisé pour spécifier le côté opposé du flash de bouche. La position n'a pas d'importance.
  • MuzzleFlash (Beam) — Assurez-vous de définir Attachment0 sur MuzzleFlash0 et Attachment1 sur MuzzleFlash1.

Descendants de configuration :

  • MuzzleFlashTime (NumberValue) (optionnel) — Durée pendant laquelle le flash de bouche sera visible ; par défaut 0.03.
  • MuzzleFlashRotation0 (NumberValue) (optionnel) — Rotation minimale du flash de bouche ; par défaut -math.pi.
  • MuzzleFlashRotation1 (NumberValue) (optionnel) — Rotation maximale du flash de bouche ; par défaut math.pi.
  • MuzzleFlashSize0 (NumberValue) (optionnel) — Taille minimale du flash de bouche ; par défaut 1.
  • MuzzleFlashSize1 (NumberValue) (optionnel) — Taille maximale du flash de bouche ; par défaut 1.

Traînées de particules

Cette option crée une traînée de longueur variable de l'arme au point d'impact du projectile.

Descendants de configuration :

  • TrailLength (NumberValue) (optionnel) — Longueur de la traînée derrière la balle/projectile ; par défaut nil ce qui signifie que la longueur de la traînée sera calculée en utilisant TrailLengthFactor.
  • TrailLengthFactor (NumberValue) (optionnel) — La longueur de la traînée sera définie sur cette valeur multipliée par la distance parcourue par la balle/projectile dans la dernière image ; par défaut 1. Notez que ceci sera écrasé si vous incluez TrailLength.
  • ShowEntireTrailUntilHit (BoolValue) (optionnel) — Définit sur true pour rendre la traînée visible de la pointe de l'arme jusqu'à l'emplacement où le projectile se trouve ; cela écrasera à la fois TrailLength et TrailLengthFactor et la traînée disparaîtra uniquement une fois que le projectile touchera quelque chose. Définit sur false pour utiliser l'une des deux options ci-dessus pour calculer la longueur de la traînée. Par défaut false.

Marqueurs de coup

Cette addition visuelle apparaît sur la surface où les projectiles touchent et est utile pour les flèches, les impacts de balles, les marques de brûlure, etc.

Descendants de configuration :

  • HitMarkEffect (StringValue) (optionnel) — Nom de l'effet de marque de coup stocké dans WeaponsSystem/Assets/Effects/HitMarks ; par défaut BulletHole.
  • AlignHitMarkToNormal (BoolValue) (optionnel) — Définissez sur true si la marque d'impact doit toujours s'aligner à plat contre la surface comme un impact de balle, ou false si la marque d'impact doit apparaître enfoncée dans la surface dans la direction d'où le projectile est venu (comme une flèche). Par défaut true.

Vous pouvez ajouter l'actif optionnel suivant dans WeaponsSystem/Assets/Effects/HitMarks :

  • Glow (Decal) (optionnel) — Apparaît sur la surface touchée complètement opaque, puis devient rapidement plus transparent, comme un effet de lueur sur la surface qui s'estompe rapidement. Utile pour montrer une marque rouge lumineuse où les explosifs ont touché.
  • BulletHole (Decal) (optionnel) — Apparaît sur la surface touchée complètement opaque et, après 4 secondes, s'estompe en transparent sur 1 seconde.
  • ImpactBillboard (BillboardGui) (optionnel) — S'affiche à la surface touchée, toujours face à la caméra.
    • Impact (ImageLabel) (optionnel) — Enfant direct de ImpactBillboard ; commence complètement opaque, grandit jusqu'à atteindre la taille complète de ImpactBillboard en 0.1 secondes, puis rétrécit à la moitié de sa taille et s'estompe en transparence complète sur 0.1 secondes.
  • N'importe quelle Part/MeshPart/SpecialMesh que vous souhaitez faire apparaître comme un projectile physique (optionnel). Par exemple, inclure une flèche MeshPart et définir AlignHitMarkToNormal mentionné ci-dessus sur false fera en sorte que la flèche dépasse de la surface dans la direction où vous l'avez tirée.

Projectiles explosifs

Les projectiles peuvent inclure un objet Explosion pour endommager les personnages joueurs dans un rayon autour du point d'impact.

Descendants de configuration :

  • ExplodeOnImpact (BoolValue) (optionnel) — Définit sur true si vous voulez que les balles/projectiles de l'arme explosent à l'impact, false sinon. Par défaut false.
  • BlastRadius (NumberValue) (optionnel) — Rayon de l'explosion ; par défaut 8.
  • BlastPressure (NumberValue) (optionnel) — Pression de l'explosion ; par défaut 10000.
  • BlastDamage (NumberValue) (optionnel) — Dégâts infligés aux choses au centre de l'explosion. Notez que l'explosion inflige moins de dégâts plus les objets touchés sont éloignés du centre de l'explosion. Par défaut 100.

Armes à chargement

Une arme à chargement comme le Railgun doit être chargée entre les tirs avant de pouvoir à nouveau tirer.

Descendants du modèle :

  • Charging (Sound) (optionnel) — Joue pendant que l'arme se charge.
  • Discharging (Sound) (optionnel) — Joue lorsque l'arme se décharge, par exemple si vous chargez l'arme juste partiellement et relâchez le bouton de tir.
  • ChargeComplete (Sound) (optionnel) — Joue lorsque l'arme a atteint la charge complète.
  • DischargeComplete (Sound) (optionnel) — Joue lorsque l'arme s'est complètement déchargée.
  • ChargeGlow (BasePart) (optionnel) — Cet objet deviendra moins transparent à mesure que l'arme se charge, de sorte qu'il soit complètement opaque à 100% de charge.
  • ChargeCompleteParticles (ParticleEmitter) (optionnel) — Émet lorsque l'arme a fini de charger. Cet émetteur peut être un enfant de n'importe quel modèle BasePart ou un enfant d'un Attachment dans le BasePart.
  • DischargeCompleteParticles (ParticleEmitter) (optionnel) — Émet lorsque l'arme s'est complètement déchargée. Cet émetteur peut être un enfant de n'importe quel modèle BasePart ou un enfant d'un Attachment dans le BasePart.
  • ChargingParticles (ParticleEmitter) (optionnel) — Émet pendant que l'arme se charge. Vous pouvez inclure plusieurs émetteurs de ce nom et chacun émettra en chargeant. Cet émetteur peut être un enfant de n'importe quel modèle BasePart ou un enfant d'un Attachment dans le BasePart.

Descendants de configuration :

  • ChargeRate (NumberValue) — Vitesse à laquelle l'arme se chargera. Cette valeur doit être spécifiée pour indiquer que l'arme utilise le chargement.
  • DischargeRate (NumberValue) (optionnel) — Vitesse à laquelle l'arme se décharge ; par défaut 0 ce qui signifie que l'arme ne se déchargera pas du tout.
  • ChargePassively (BoolValue) (optionnel) — Définissez sur true si vous voulez que l'arme se charge passivement pour pouvoir tirer instantanément lorsque vous cliquez, ou false si vous voulez cliquer/toucher pour charger l'arme et la faire tirer une fois la charge complète atteinte. Par défaut est false.
  • ChargingParticlesRatePerCharge (IntValue) (optionnel) — Nombre de particules qui seront émises par tous les émetteurs ChargingParticles multiplié par la charge actuelle de l'arme. Par défaut 20, ce qui signifie que si la charge de l'arme est à 10%, chaque émetteur ChargingParticles émettra 2 particules (20×0.1), et si la charge de l'arme est à 90%, chaque émetteur émettra 18 particules (20×0.9).
  • FireDischarge (NumberValue) (optionnel) — Montant de charge que l'arme perdra après avoir tiré un tir complètement chargé ; par défaut 1.
  • NumChargeCompleteParticles (IntValue) (optionnel) — Nombre de particules que l'émetteur ChargeCompleteParticles émettra une fois que l'arme est complètement chargée. Par défaut 25.
  • NumDischargeCompleteParticles (IntValue) (optionnel) — Nombre de particules que l'émetteur DischargeCompleteParticles émettra lorsque l'arme est complètement déchargée. Par défaut 25.

Arme à arbalète

Une arme à arbalète comme la Crossbow peut inclure une construction de corde et de bras réaliste, ainsi qu'une flèche visuelle nocked à la corde.

En plus d'ajouter des descendants de modèles, vous devez appliquer ce qui suit :

  • Faites de l'arme une arme à chargement. Par exemple, ajoutez le ChargeRate requis dans la Configuration de l'arme qui spécifie la vitesse à laquelle la corde est tendue. De plus, considérez ajouter des descendants optionnels au modèle de l'arme tels qu'un son Charging pour la corde/bras tirés en arrière.
  • Définissez le WeaponType sur BowWeapon comme indiqué dans Structure de l'arme.

Descendants du modèle :

  • LeftString (Beam) (optionnel) — La moitié gauche visuelle de la corde.
  • RightString (Beam) (optionnel) — La moitié droite visuelle de la corde.
  • Arrow (BasePart) (optionnel) — La flèche qui apparaît lorsque l'arbalète est complètement tendue. Notez que ceci est seulement pour l'apparence visuelle sur l'arbalète (la flèche réellement tirée sera un ShotEffect comme décrit dans Projectile/Hits Effects and Sounds).
  • String1 (Attachment) (optionnel) — Le point central de la corde.
  • StringLoose (Attachment) (optionnel) — Point où String1 devrait être lorsque l'arbalète est au repos.
  • StringTight (Attachment) (optionnel) — Point où String1 devrait être lorsque l'arbalète est complètement tendue.
  • Arms (Part) (optionnel) — Une partie qui sert seulement d'indicateur interne que les bras de l'arbalète seront animés. Cela peut contenir les enfants directs suivants :
  • LeftString0 (Attachment) (optionnel) — Point où le côté gauche de la corde est attaché à l'arbalète.
  • RightString0 (Attachment) (optionnel) — Point où le côté droit de la corde est attaché à l'arbalète.
  • LeftLoose (Attachment) (optionnel) — Point où LeftString0 devrait être lorsque l'arbalète est au repos.
  • RightLoose (Attachment) (optionnel) — Point où RightString0 devrait être lorsque l'arbalète est au repos.
  • LeftTight (Attachment) (optionnel) — Point où LeftString0 devrait être lorsque l'arbalète est complètement tendue.
  • RightTight (Attachment) (optionnel) — Point où RightString0 devrait être lorsque l'arbalète est complètement tendue.
  • [SpecialMesh] (SpecialMesh) (optionnel) — La partie de l'arbalète qui se pliera réellement lorsque l'arbalète est tirée. Notez que vous devez spécifier les quatre objets Vector3Value suivants pour animer cela.
  • LooseOffset (Vector3Value) (optionnel) — Décalage du SpecialMesh lorsque l'arbalète est au repos.
  • TightOffset (Vector3Value) (optionnel) — Décalage du SpecialMesh lorsque l'arbalète est complètement tendue.
  • LooseScale (Vector3Value) (optionnel) — Échelle du SpecialMesh lorsque l'arbalète est au repos.
  • TightScale (Vector3Value) (optionnel) — Échelle du SpecialMesh lorsque l'arbalète est complètement tendue.

GUI du système d'armes

Le système principal d'armes interagit avec ce système pour mettre à jour le GUI en fonction de choses comme l'écart de l'arme, les indicateurs pour quand vous êtes touché ou avez touché d'autres, etc.

Le WeaponsSystemGui est un objet ScreenGui dans WeaponsSystem/Assets qui est parenté à PlayerGui lorsque l'expérience débute. Le WeaponsSystemGui a 4 descendants :

Éléments de mise à l'échelle

ScalingElements est un Folder parenté sous WeaponsSystemGui avec les descendants suivants :

NomType d'instanceDescription
DirectionalIndicatorsFolderUn Folder où tous les indicateurs directionnels sont stockés.
CrosshairFrameUn Frame contenant les objets suivants :

[UIAspectRationConstraint] - UIAspectRatioConstraint
Bottom - ImageLabel
Left - ImageLabel
Right - ImageLabel
Top - ImageLabel
HitMarkerFrameUn Frame contenant les objets suivants :

[UIAspectRatioConstraint] - UIAspectRatioConstraint
HitMarkerImage - ImageLabel qui apparaît et s'estompe lorsque le joueur touche un autre personnage joueur avec succès.

Grand écran tactile

LargeTouchscreen est un Frame contenant des boutons qui s'affichent sur de grands écrans tactiles. LargeTouchscreen a les descendants suivants :

Lunette

Scope est un Frame qui contient ScopeImage (ImageLabel) qui apparaît lors du zoom avec une arme avec HasScope activé (voir Structure de l'arme).

Scope a les descendants suivants :

NomType d'instanceDescription
ScopeInstanceFrameUn Frame contenant les actifs suivants utilisés lors du zoom sur une arme avec HasScope activé :

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

Petit écran tactile

SmallTouchScreen est un Frame contenant des boutons qui s'affichent sur de petits écrans tactiles. SmallTouchscreen a les descendants suivants :

Créer un indicateur directionnel

Les indicateurs directionnels sont utilisés pour montrer la direction de quelque chose autour du réticule du joueur. Par exemple, si quelqu'un vous tire dessus, un demi-cercle rouge peut apparaître autour de votre réticule dans la direction d'où le tir est parti. D'autres exemples incluent des indicateurs pour montrer la direction des pas, des tirs indirects, ou même des objets environnementaux tels que des coffres.

Pour créer un nouvel indicateur, ajoutez un nouvel indicateur Frame dans WeaponsSystemGui/ScalingElements/DirectionalIndicators avec la structure suivante :

NomType d'instanceDescription
[UIAspectRationConstraint]UIAspectRatioConstraint
[ImageLabel]ImageLabelImage de l'indicateur directionnel. Un ajustement de la rotation de l'image dans Studio peut être nécessaire, à moins que vous ne téléchargiez l'image de manière à ce qu'elle soit orientée vers le bas et qu'il y ait peu ou pas d'espace vide autour.
Cette étiquette d'image doit également contenir son propre
UIAspectRatioConstraint.
[Configuration]ConfigurationContient des propriétés optionnelles à ajuster. Voir Configuration de l'indicateur pour plus d'informations.

Une fois créé, vous pouvez activer un indicateur via la commande suivante à l'intérieur de WeaponsSystem/Libraries/WeaponsGuiindicatorName est le nom de chaîne de l'indicateur à activer et worldPos est la position mondiale où l'indicateur directionnel doit pointer :


self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)

Configuration de l'indicateur

Les DirectionalIndicators peuvent être modifiés en ajustant l'objet Configuration parenté au [Indicator]. Tous ces paramètres ont une valeur par défaut, donc il n'est pas nécessaire de définir des configurations lorsqu'aucun réglage n'est modifié.

Les configurations suivantes peuvent être définies :

NomType d'instanceDescription
DistanceLevelFromCenterNumberValueNombre de niveaux de distance depuis le centre de l'écran (chaque niveau de distance est d'environ 0.03 échelle d'écran) ; par défaut 6.
FadeTimeNumberValueTemps de fondu de l'indicateur suite à son activation et le temps TimeBeforeFade ; par défaut 1.
NameStringValueNom de l'indicateur directionnel tel que vous souhaitez le référencer dans le code ; par défaut est le nom du Frame de niveau supérieur de l'indicateur.
TimeBeforeFadeNumberValueNombre de secondes durant lesquelles l'indicateur apparaîtra avant de s'estomper ; par défaut 1.
TransparencyBeforeFadeNumberValueTransparence de l'indicateur avant qu'il ne commence à s'estomper ; par défaut 0.
WidthLevelNumberValueNombre de niveaux de largeur depuis le centre (chaque niveau de largeur est d'environ 0.03 échelle d'écran) ; par défaut est la valeur de DistanceLevelFromCenter.

Afficher le panneau de dégâts

Le panneau de dégâts est utilisé pour afficher de petits numéros au-dessus de la tête d'un personnage lorsqu'il est blessé. Ceux-ci n'apparaîtront que pour le joueur qui a infligé des dégâts à un autre personnage joueur, et non pour les joueurs en spectateur.

Les panneaux de dégâts sont gérés dans WeaponsSystem/Libraries/DamageBillboardHandler et peuvent être activés depuis n'importe quel code côté client comme suit, où damage est le montant de dégâts infligés et adornmentPart est la partie sur laquelle décorer le panneau, comme la tête de la victime :


DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

Caméra à l'épaule

La caméra à l'épaule est une caméra à la troisième personne qui regarde par-dessus l'épaule droite du personnage joueur. Pour personnaliser la caméra à l'épaule, modifiez les variables sous le commentaire -- Paramètres de configuration (constantes) dans la fonction ShoulderCamera.new() de WeaponsSystem/Libraries/ShoulderCamera. Vous pouvez modifier des éléments tels que le champ de vision, le décalage par rapport au personnage, la vitesse de marche pendant le sprint ou le zoom, etc.

Contrôle du sprint et du zoom

Par défaut, le système d'armes ajoute une capacité de "sprint", de sorte que les joueurs peuvent sprinter en maintenant la touche Shift, en poussant complètement vers le haut sur le joystick dynamique (mobile), ou en poussant complètement vers le haut sur le joystick gauche (manette). Si vous souhaitez désactiver le sprint, définissez la valeur de SprintEnabled dans WeaponsSystem/Configuration sur false.

Le système réduit également la vitesse des joueurs lorsqu'ils visent/zoomez, mais vous pouvez désactiver ce comportement en définissant la valeur de SlowZoomWalkEnabled sur false.

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