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.

Roblox propose les armes préfabriquées suivantes pour aider à créer des jeux de combat compétitifs. Le système de base comprend des armes à projectiles avec une caméra par-dessus l'épaule, et en réglant la vitesse des projectiles suffisamment haut, on peut simuler des armes de type raycasting comme des pistolets laser.

Pour utiliser une arme préfabriquée dans votre jeu :

  1. Sélectionnez une arme ci-dessous, en naviguant vers le lien de la bibliothèque d'actifs.

    Pistolet

    Fusil à pompe

    Fusil automatique

    Pistolet-mitrailleur

    Fusil de sniper

    Arbalète

    Lance-grenades

    Lance-roquettes

    Railgun

  2. Sur la page de l'élément de l'arme, cliquez sur le bouton Obtenir le modèle et confirmez la transaction.

  3. Dans Studio, ouvrez la Boîte à outils et sélectionnez votre section Inventaire.

  4. Localisez l'arme et cliquez dessus pour l'ajouter dans le lieu. Lorsque vous êtes invité à mettre l'outil dans le pack de départ, cliquez sur Oui si vous souhaitez que les joueurs commencent avec l'arme dans leur sac à dos, ou cliquez sur Non pour simplement placer l'arme dans le monde 3D comme un objet à ramasser.

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

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 préfabriquées dans le jeu. S'il est situé dans ServerScriptService, il remplace tous les dossiers WeaponsSystem équivalents qui peuvent résider dans des armes individuelles.

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

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

Structure de l'arme

Les armes préfabriquées sont des outils 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 composé d'une ou plusieurs BaseParts pour former l'arme physique. L'une d'elles 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'un des BaseParts du modèle :

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

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 des options spécialisées lorsque cela est applicable.

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

ÉlémentDescriptionPar défaut
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 de visée dans Assets/Animations du dossier système.RifleAimDownSights
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
BulletSpeedVitesse à laquelle les balles/projectiles se déplacent lorsqu'ils sont tirés. Réglez cela à une valeur très élevée comme 20000 pour simuler des armes de type raycasting comme des pistolets laser.1000
BurstShotCooldownTemps entre chaque tir dans une rafale ; cela n'a d'importance que si vous définissez FireMode sur Burst.Valeur de ShotCooldown
FiredPlaybackSpeedRangeMontant que le ton peut varier pour le son Fired de l'arme. Réglez cela à 0 pour toujours le jouer à la même tonalité.0.1
FireModeChoisissez entre Semiautomatic (un tir par clic/tap), Automatic (tir continu), ou Burst (rafale de tirs égale à NumBurstShots à chaque clic/tap).Semiautomatic
FullDamageDistanceDistance maximale à laquelle les tirs infligeront des dégâts complets. Tout ce qui est touché au-delà de cette distance recevra de moins en moins de dégâts à mesure que la distance se rapproche de ZeroDamageDistance.1000
GravityFactorMontant que la gravité doit influencer chaque balle/projectile. Par exemple, cette valeur pour la Crossbow est 1 car les flèches arc-en-ciel pendant le vol, mais cette valeur pour le Rocket Launcher est 0 car les roquettes propulsées se déplacent en ligne droite.0
HasScopeRéglez sur true si vous souhaitez utiliser la lunette spécifiée dans Weapons GUI.false
HitDamageMontant de dégâts infligés par chaque coup direct.10
MaxDistanceDistance maximale que les balles/projectiles parcourent avant de disparaître.2000
MaxSpreadMontant maximal de dispersion pour l'arme.Valeur de MinSpread
MinSpreadMontant minimal de dispersion pour l'arme.0
NumBurstShotsNombre de tirs par clic/rafale ; cela n'a d'importance que si vous définissez FireMode sur Burst.3
NumProjectilesNombre de balles/projectiles qui seront tirés en même temps lorsque vous cliquez/tapez une fois. Cela est utile pour des armes comme le Shotgun qui tire plusieurs balles en même temps. Notez qu'un tir utilisera toujours exactement une munition, quelle que soit cette valeur.1
RecoilDecayMultiplicateur de déclin pour le recul ; essentiellement le taux auquel le recul diminue après le tir.0.825
RecoilDelayTimeTemps d'attente après le tir/clic avant que le recul soit ajouté à la caméra.0.07
RecoilMaxRecul maximal ajouté pour chaque tir.0.5
RecoilMinRecul minimal ajouté pour chaque tir.0.05
ReloadAnimationNom de la piste d'animation de rechargement dans Assets/Animations du dossier système.RifleReload
ShotCooldownTemps d'attente minimum entre les clics. Pour les armes avec un FireMode de Automatic, c'est aussi le temps entre les tirs tout en maintenant le bouton de tir ou en maintenant le clic.0.1
StartupTimeDurée après avoir équipé l'arme avant que le joueur puisse tirer. Cela empêche les joueurs de tirer un seul coup de plusieurs armes différentes en succession rapide.0.2
TotalRecoilMaxRecul total maximum accumulé. Le recul actuel de l'arme ne dépassera jamais cette valeur.2
ZeroDamageDistanceTout ce qui est touché à cette distance ou au-delà ne recevra aucun dommage.10000

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, ou les deux. Certaines configurations dépendent d'autres, comme les particules de bouche qui nécessitent les enfants nécessaires pour les effets et sons de projectile/coup.

Animations et sons de la culasse

La culasse d'une arme est la partie qui se déplace d'avant en arrière chaque fois qu'elle est tirée.

  • Descendants du modèle d'arme :

    • BoltBasePart qui se déplace lorsque l'arme est tirée.
    • BoltMotorMotor6D utilisé pour animer la culasse. Assurez-vous de définir le Part0 du moteur sur le PrimaryPart du modèle de l'arme et Part1 sur la partie Bolt.
    • BoltMotorStartAttachment dont la position sur le BasePart parent détermine où se trouve la culasse lorsqu'elle est au repos.
    • BoltMotorTargetAttachment dont la position sur le BasePart parent détermine où la culasse s'anime lors du tir.
    • BoltOpenSound
      optionnel
      Sound qui joue lorsque la culasse s'ouvre.
    • BoltCloseSound
      optionnel
      Sound qui joue lorsque la culasse se ferme.
  • Descendants du dossier configuration de l'arme :

    • ActionOpenTime
      optionnel
      — Temps nécessaire pour que la culasse s'anime en position ouverte. La valeur par défaut est 0.025.
    • ActionCloseTime
      optionnel
      — Temps nécessaire pour que la culasse s'anime en position fermée. La valeur par défaut est 0.075.

Étuis de balles éjectés

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

  • Descendants du modèle d'arme :

    • CasingEjectPointAttachment dont la position sur le BasePart parent détermine où vous souhaitez que les étuis de balles sortent. Notez que son orientation détermine la direction dans laquelle les étuis sortent.
  • Descendants du dossier configuration de l'arme :

    • CasingEffect — Nom de la BasePart de l'étui dans Assets/Effects/Casings du dossier système.
    • CasingEjectSpeedMin
      optionnel
      — Vitesse d'éjection minimale des étuis. La valeur par défaut est 15.
    • CasingEjectSpeedMax
      optionnel
      — Vitesse d'éjection maximale des étuis. La valeur par défaut est 18.
  • Enfant de la BasePart de l'étui dans Assets/Effects/Casings du dossier système :

    • CasingHitSound
      optionnel
      Sound qui joue lorsque les étuis touchent le sol.

Effets et sons de projectile/coup

Vous pouvez configurer des projectiles physiques pour n'importe quelle arme, ainsi que des Sounds, Beams, et ParticleEmitters pour les effets de coup et d'autres effets spéciaux.

  • Descendants du dossier configuration de l'arme :

    • ShotEffect — Nom d'un effet de tir stocké dans Assets/Effects/Shots du dossier système.
    • ShouldMovePart
      optionnel
      — Réglez sur true si l'effet de tir de l'arme doit se déplacer avec le projectile ou false sinon. Vous ne devez définir cela sur true que s'il y a un objet visible qui se déplace avec chaque tir, comme une flèche ou une roquette. La valeur par défaut est false.
    • BeamFadeTime
      optionnel
      — Temps nécessaire pour que Beam0 ou Beam1 (voir ci-dessous) s'estompe après que la balle/le projectile touche quelque chose. Par défaut, aucun estompage manuel ne sera appliqué par le code. La valeur par défaut est 0.
    • BeamWidth0
      optionnel
      — Épaisseur de Beam0 ou Beam1 à Attachment0 (voir ci-dessous). La valeur par défaut est 1.5.
    • BeamWidth1
      optionnel
      — Épaisseur de Beam0 ou Beam1 à Attachment1 (voir ci-dessous). La valeur par défaut est 1.8.
    • NumHitParticles
      optionnel
      — Nombre de particules que l'émetteur HitParticles (voir ci-dessous) émettra. La valeur par défaut est 3.
    • HitParticlesUsePartColor
      optionnel
      — Réglez sur true si vous souhaitez que les particules de coup soient de la couleur de la surface touchée ; false si vous souhaitez que les particules de coup ne changent pas de couleur. La valeur par défaut est true.
  • Descendants de l'effet de tir spécifié noté dans la section ci-dessus :

    • Flying
      optionnel
      Sound qui joue pendant que la balle/le projectile se déplace.
    • Beam0
      optionnel
      — Premier emplacement pour un Beam traînant derrière la balle/le projectile. N'oubliez pas de définir Attachment0 et Attachment1.
    • Beam1
      optionnel
      — Deuxième emplacement pour un Beam traînant derrière la balle/le projectile. N'oubliez pas de définir Attachment0 et Attachment1.
    • Attachment0
      optionnel
      Attachment 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 à cela.
    • Attachment1
      optionnel
      Attachment 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 à cela.
    • TrailParticles
      optionnel
      ParticleEmitter parenté comme enfant direct de Attachment0 ; cela émettra pendant que la balle/le projectile se déplace.
    • LeadingParticles
      optionnel
      ParticleEmitter parenté comme enfant direct de Attachment1 ; cela émettra pendant que la balle/le projectile se déplace.
    • HitEffect
      optionnel
      Attachment dont la position sera définie sur Beam.Attachment1 de Beam0 lorsque la balle/le projectile touche. Vous devez spécifier Beam0 et ses attachements pour que cela fonctionne correctement.
    • HitSound
      optionnel
      Sound parenté comme enfant direct de HitEffect ; joue lorsque la balle/le projectile touche.
    • HitParticles
      optionnel
      Sound parenté comme enfant direct de HitEffect ; émet lorsque la balle/le projectile touche.
    • Mesh
      optionnel
      SpecialMesh que vous souhaitez faire apparaître comme un projectile physique. Assurez-vous de définir ShouldMovePart dans la configuration de l'arme sur true si vous avez un objet visible ici.

Particules de bouche

Cette option émet des particules de l'émetteur de particules spécifié à l'Attachment TipAttachment de l'arme lorsqu'elle est tirée. Les descendants du dossier configuration de l'arme incluent :

  • ShotEffect — Nom d'un effet de tir stocké dans WeaponsSystem/Assets/Effects/Shots. En tant qu'enfant de cet effet de tir, incluez un actif ParticleEmitter nommé MuzzleParticles.
  • NumMuzzleParticles
    optionnel
    — Nombre de particules de bouche qui seront émises. La valeur par défaut est 50.

Éclats de bouche

Cette option crée un effet d'éclat Beam lorsque l'arme est tirée.

  • Descendants du modèle d'arme :

    • MuzzleFlash0Attachment utilisé pour spécifier un côté de l'éclat de bouche. La position n'a pas d'importance.
    • MuzzleFlash1Attachment utilisé pour spécifier le côté opposé de l'éclat de bouche. La position n'a pas d'importance.
    • MuzzleFlashBeam pour l'effet d'éclat de bouche. Assurez-vous de définir Attachment0 sur MuzzleFlash0 et Attachment1 sur MuzzleFlash1.
  • Descendants du dossier configuration de l'arme :

    • MuzzleFlashTime
      optionnel
      — Durée pendant laquelle l'éclat de bouche sera visible. La valeur par défaut est 0.03.
    • MuzzleFlashRotation0
      optionnel
      — Rotation minimale de l'éclat de bouche. La valeur par défaut est -math.pi.
    • MuzzleFlashRotation1
      optionnel
      — Rotation maximale de l'éclat de bouche. La valeur par défaut est math.pi.
    • MuzzleFlashSize0
      optionnel
      — Taille minimale de l'éclat de bouche. La valeur par défaut est 1.
    • MuzzleFlashSize1
      optionnel
      — Taille maximale de l'éclat de bouche. La valeur par défaut est 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. Les descendants du dossier configuration de l'arme incluent :

  • TrailLength
    optionnel
    — Longueur de la traînée derrière la balle/le projectile ; la valeur par défaut est nil, ce qui signifie que la longueur de la traînée sera plutôt calculée en utilisant TrailLengthFactor.
  • TrailLengthFactor
    optionnel
    — Si spécifié, la longueur de la traînée sera définie sur cette valeur multipliée par la distance que la balle/le projectile a parcourue dans la dernière image ; la valeur par défaut est 1. Notez que cela sera remplacé si vous incluez TrailLength.
  • ShowEntireTrailUntilHit
    optionnel
    — Réglez sur true pour rendre la traînée de la pointe de l'arme jusqu'à l'endroit où se trouve le projectile ; cela remplacera à la fois TrailLength et TrailLengthFactor et la traînée ne disparaîtra qu'une fois que le projectile touche quelque chose. Réglez sur false pour utiliser l'une des deux options ci-dessus pour calculer la longueur de la traînée. La valeur par défaut est false.

Marques de coup

Cette addition visuelle apparaît sur la surface où les projectiles touchent et est utile pour les flèches, les trous de balle, les marques de brûlure, etc. Les descendants du dossier configuration de l'arme incluent :

  • HitMarkEffect
    optionnel
    — Nom d'un effet de marque de coup Part/MeshPart/SpecialMesh stocké dans WeaponsSystem/Assets/Effects/HitMarks. La valeur par défaut est BulletHole.
  • AlignHitMarkToNormal
    optionnel
    — Réglez sur true si la marque de coup doit toujours s'aligner à plat contre la surface comme un trou de balle, ou false si la marque de coup doit apparaître coincée dans la surface dans la direction d'où le projectile est venu (comme une flèche). La valeur par défaut est true.

Comme noté par HitMarkEffect ci-dessus, vous pouvez ajouter une partie/mesh dans WeaponsSystem/Assets/Effects/HitMarks pour apparaître comme un projectile physique. Par exemple, inclure une MeshPart de flèche et définir AlignHitMarkToNormal sur false fera en sorte que la flèche dépasse de la surface dans la direction où vous l'avez tirée. Cette Part/MeshPart/SpecialMesh peut contenir les descendants suivants :

  • Glow
    optionnel
    Decal qui apparaît sur la surface touchée complètement opaque, puis devient rapidement plus transparent, comme un effet lumineux sur la surface qui s'estompe rapidement. Utile pour montrer une marque rouge lumineuse là où des explosifs ont frappé.
  • BulletHole
    optionnel
    Decal qui apparaît sur la surface touchée complètement opaque et, après 4 secondes, s'estompe en transparent sur 1 seconde.
  • ImpactBillboard
    optionnel
    BillboardGui qui s'affiche à la surface touchée, toujours face à la caméra.
  • Impact
    optionnel
    ImageLabel comme enfant direct de ImpactBillboard ; cela commence complètement opaque, grandit jusqu'à la taille complète de ImpactBillboard en 0.1 secondes, puis rétrécit à la moitié de sa taille et s'estompe en pleine transparence en 0.1 secondes.

Projectiles explosifs

Les projectiles peuvent inclure un objet Explosion pour endommager les personnages joueurs dans une zone autour du point d'impact. Les descendants du dossier configuration de l'arme incluent :

  • ExplodeOnImpact
    optionnel
    — Réglez sur true si vous souhaitez que les balles/projectiles de l'arme explosent à l'impact, false sinon. La valeur par défaut est false.
  • BlastRadius
    optionnel
    BlastRadius de l'explosion ; la valeur par défaut est 8.
  • BlastPressure
    optionnel
    BlastPressure de l'explosion ; la valeur par défaut est 10000.
  • BlastDamage
    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. La valeur par défaut est 100.

Arme à chargement

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

  • Descendants du modèle d'arme :

    • Charging
      optionnel
      Sound qui joue pendant que l'arme se charge.
    • Discharging
      optionnel
      Sound qui joue pendant que l'arme se décharge, par exemple si vous chargez l'arme juste partiellement et relâchez le bouton de tir.
    • ChargeComplete
      optionnel
      Sound qui joue lorsque l'arme a atteint une charge complète.
    • DischargeComplete
      optionnel
      Sound qui joue lorsque l'arme s'est complètement déchargée.
    • ChargeGlow
      optionnel
      BasePart qui deviendra moins transparent à mesure que l'arme se charge, de sorte qu'elle sera complètement opaque à 100 % de charge.
    • ChargeCompleteParticles
      optionnel
      ParticleEmitter qui émet lorsque l'arme a terminé de se charger. Cet émetteur peut être un enfant de n'importe quel modèle BasePart ou un enfant d'un Attachment dans le BasePart.
    • DischargeCompleteParticles
      optionnel
      ParticleEmitter qui é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
      optionnel
      ParticleEmitter qui émet pendant que l'arme se charge. Vous pouvez inclure plusieurs émetteurs de ce nom et chacun émettra pendant le chargement. Cet émetteur peut être un enfant de n'importe quel modèle BasePart ou un enfant d'un Attachment dans le BasePart.
  • Descendants du dossier configuration de l'arme :

    • ChargeRate — Taux auquel l'arme se chargera. Cette valeur doit être spécifiée pour indiquer que l'arme utilise le chargement.
    • DischargeRate
      optionnel
      — Taux auquel l'arme se déchargera. La valeur par défaut est 0, ce qui signifie que l'arme ne se déchargera pas du tout.
    • ChargePassively
      optionnel
      — Réglez sur true si vous souhaitez que l'arme se charge passivement afin qu'elle tire instantanément lorsque vous cliquez, ou false si vous souhaitez cliquer/toucher pour charger l'arme et la faire tirer une fois la charge complète atteinte. La valeur par défaut est false.
    • ChargingParticlesRatePerCharge
      optionnel
      — Nombre de particules qui s'émettront de tous les émetteurs ChargingParticles multiplié par la charge actuelle de l'arme. La valeur par défaut est 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
      optionnel
      — Montant de charge que l'arme perdra après avoir tiré un coup complètement chargé. La valeur par défaut est 1.
    • NumChargeCompleteParticles
      optionnel
      — Nombre de particules que l'émetteur ChargeCompleteParticles émettra une fois que l'arme est complètement chargée. La valeur par défaut est 25.
    • NumDischargeCompleteParticles
      optionnel
      — Nombre de particules que l'émetteur DischargeCompleteParticles émettra lorsque l'arme est complètement déchargée. La valeur par défaut est 25.

Arme à arc

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

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

  • Transformez l'arme en une arme à chargement. Par exemple, ajoutez le ChargeRate requis dans la Configuration de l'arme qui spécifie à quelle vitesse la corde est tirée. De plus, envisagez d'ajouter des descendants optionnels au Model de l'arme, comme un son Charging pour la corde/bras tirés en arrière.
  • Définissez le WeaponType sur BowWeapon comme indiqué dans la structure de l'arme.

Les descendants du modèle d'arme incluent :

  • LeftString
    optionnel
    Beam pour la moitié gauche visuelle de la corde.
  • RightString
    optionnel
    Beam pour la moitié droite visuelle de la corde.
  • Arrow
    optionnel
    BasePart pour la flèche qui apparaît lorsque l'arc est complètement tiré. Notez que cela est uniquement pour l'apparence visuelle sur l'arc (la flèche réellement tirée sera un ShotEffect comme décrit dans effets et sons de projectile/coup).
  • String1Attachment pour le point central de la corde.
  • StringLooseAttachment point où String1 devrait être lorsque l'arc est au repos.
  • StringTightAttachment point où String1 devrait être lorsque l'arc est complètement tiré.
  • Arms
    optionnel
    Part qui sert simplement d'indicateur interne que les bras de l'arc seront animés. Cela peut contenir les enfants directs suivants :
    • LeftString0Attachment point où le côté gauche de la corde est attaché à l'arc.
    • RightString0Attachment point où le côté droit de la corde est attaché à l'arc.
    • LeftLooseAttachment point où LeftString0 devrait être lorsque l'arc est au repos.
    • RightLooseAttachment point où RightString0 devrait être lorsque l'arc est au repos.
    • LeftTightAttachment point où LeftString0 devrait être lorsque l'arc est complètement tiré.
    • RightTightAttachment point où RightString0 devrait être lorsque l'arc est complètement tiré.
    • MeshSpecialMesh partie de l'arc qui se pliera réellement lorsque l'arc est tiré. Notez que vous devez spécifier les quatre objets Vector3Value suivants pour que cela s'anime.

GUI des armes

Le système d'armes de base interagit avec ce système pour mettre à jour l'interface utilisateur en fonction de choses comme la dispersion de l'arme, les indicateurs lorsque vous êtes touché ou que vous touchez d'autres, etc.

Le WeaponsSystemGui est un objet ScreenGui dans WeaponsSystem/Assets qui est parenté à PlayerGui lorsque le jeu commence. WeaponSystemGui a quatre descendants comme suit :

  • ScalingElements est un Folder avec les descendants suivants :

    • DirectionalIndicatorsFolder où tous les indicateurs directionnels sont stockés.
    • Crosshair — Un Frame contenant un UIAspectRatioConstraint et des étiquettes d'image pour les éléments inférieur, gauche, droit et supérieur du réticule.
    • HitMarker — Un Frame contenant un UIAspectRatioConstraint et une étiquette d'image HitMarkerImage qui apparaît et s'estompe lorsque le joueur touche avec succès un autre personnage joueur.
  • LargeTouchscreen est un Frame contenant des boutons AimButton et FireButton qui s'affichent sur les grands écrans tactiles.

  • Scope est un Frame qui contient l'étiquette d'image ScopeImage qui apparaît lors du zoom sur une arme avec HasScope activé (voir structure de l'arme).

  • SmallTouchscreen est un Frame contenant des boutons AimButton et FireButton qui s'affichent sur les petits écrans tactiles.

Indicateurs directionnels

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ù est venu le tir. 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 nouveau Frame dans WeaponsSystemGui/ScalingElements/DirectionalIndicators avec la structure suivante :

  • Indicateur (Frame)
    • ImageLabel pour l'indicateur directionnel. Il peut être nécessaire d'ajuster la rotation de l'image dans Studio à 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 contenant des propriétés optionnelles à ajuster :
      • DistanceLevelFromCenter
        optionnel
        — Nombre de niveaux de distance depuis le centre de l'écran (chaque niveau de distance est d'environ 0.03 échelle d'écran). La valeur par défaut est 6.
      • FadeTime
        optionnel
        — Temps d'estompage de l'indicateur après son activation et le temps TimeBeforeFade. La valeur par défaut est 1.
      • Name
        optionnel
        — Nom de l'indicateur directionnel tel que vous souhaitez le référencer dans le code. La valeur par défaut est le nom du Frame de niveau supérieur de l'indicateur.
      • TimeBeforeFade
        optionnel
        — Nombre de secondes pendant lesquelles l'indicateur apparaîtra avant de s'estomper. La valeur par défaut est 1.
      • TransparencyBeforeFade
        optionnel
        — Transparence de l'indicateur avant qu'il ne commence à s'estomper. La valeur par défaut est 0.
      • WidthLevel
        optionnel
        — Nombre de niveaux de largeur depuis le centre (chaque niveau de largeur est d'environ 0.03 échelle d'écran). La valeur par défaut est la valeur de DistanceLevelFromCenter.

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)

Panneau d'affichage des dégâts

Le panneau d'affichage des dégâts est utilisé pour montrer des chiffres au-dessus de la tête d'un personnage lorsqu'il est blessé. Ceux-ci n'apparaîtront que pour le joueur qui a blessé le personnage d'un autre joueur, pas pour les joueurs en mode spectateur.

Les panneaux d'affichage des 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 orner le panneau d'affichage, comme la tête de la victime :

DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

Caméra par-dessus l'épaule

La caméra par-dessus 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 par-dessus 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 choses telles que le champ de vision, le décalage par rapport au personnage, la vitesse de marche pendant le sprint ou le zoom, etc.

Sprint et zoom

Par défaut, le système d'armes ajoute une capacité de "sprint" afin que les joueurs puissent 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 du joueur pendant qu'il vise/zoome, mais vous pouvez désactiver ce comportement en définissant la valeur de SlowZoomWalkEnabled dans WeaponsSystem/Configuration 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.