무기 킷

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

경쟁 기반 전투 경험을 만드는 데 도움을 주기 위해 여러 지원 무기를 사용할 수 있습니다. 핵심 시스템은 어깨 너머 카메라가 있는 발사체 기반 무기를 특징으로 하며, 발사체 속도를 충분히 높게 설정하면 레이캐스팅 무기와 같은 레이저 총기를 시뮬레이션할 수 있습니다.

경험에서 승인된 무기를 사용하려면:

  1. 아래에서 무기를 선택하고 자산 라이브러리 링크로 이동합니다.
권총
샷건
자동 소총
기관총
저격소총
석궁
유탄발사기
로켓 발사기
레일건
  1. 무기의 아이템 페이지에서 녹색 가져오기 버튼을 클릭하고 거래를 확인합니다.

  2. 스튜디오에서 도구 상자를 엽니다.

  3. 도구 상자의 인벤토리 섹션을 선택합니다.

  4. 무기를 찾아 클릭하여 장소에 추가합니다. 도구를 스타터 팩에 넣을 것인지 묻는 메시지가 표시되면, 플레이어가 배낭에서 무기를 시작하도록 원하는 경우 를 클릭하거나, 무기를 3D 세계에 단순히 픽업으로 놓으려면 아니오를 클릭합니다.

  5. 승인된 무기를 처음 가져오는 경우, 그 WeaponsSystem 폴더를 ServerScriptService로 이동하여 경험 내 모든 승인된 무기를 위한 통합 시스템 폴더로 사용합니다.

시스템 폴더 구조

WeaponsSystem 폴더는 경험 내 모든 승인된 무기를 위한 자산, 구성 및 스크립트를 포함하는 통합 폴더입니다. ServerScriptService에 위치하는 경우, 개별 무기 내에서 존재할 수 있는 동등한 WeaponsSystem 폴더를 덮어씁니다.

WeaponsSystem 폴더는 다음과 같은 인스턴스를 포함합니다:

WeaponsSystem 폴더 내에서는 다음 ModuleScripts에 의해 서로 다른 측면이 제어됩니다:

측면주로 처리되는 곳...
무기 기능
  • 라이브러리/BaseWeapon
  • WeaponTypes/BulletWeapon
  • WeaponTypes/BowWeapon
어깨 카메라
  • 라이브러리/ShoulderCamera
무기 GUI
  • 라이브러리/WeaponsGui
  • 라이브러리/DirectionalIndicatorGuiManager
  • 라이브러리/DamageBillboardHandler

무기 구조

승인된 무기는 Tools이며, 플레이어의 배낭에 표시될 이름으로 명명됩니다. 각 무기는 유사한 계층 구조로 구성됩니다.

무기 유형

WeaponType StringValueWeaponsSystem/WeaponTypes 폴더의 무기에 대한 ModuleScript와 대응합니다. 두 기본 값은 BulletWeaponBowWeapon입니다.

무기 모델

각 무기는 하나 이상의 BaseParts로 만들어진 Model을 포함하여 물리적 무기가 형성됩니다. 이 중 하나는 모델의 PrimaryPart로 설정되어야 합니다.

모델에는 다음과 같은 중요 후손도 포함되어 있으며, 이는 모델의 BaseParts 중 하나의 자식으로 설정할 수 있습니다:

  • TipAttachmentAttachment, 부모 BasePart에서의 위치가 총알/발사체가 나오는 위치를 결정합니다.
  • HandleAttachmentAttachment, 부모 BasePart에서의 위치가 Handle가 용접되는 위치를 결정합니다.
  • Fired
    optional
    – 무기가 발사될 때 재생되는 Sound입니다.
  • Reload
    optional
    – 무기를 재장전할 때 재생되는 Sound입니다.
  • 추가적인 후손은 전문화된 옵션을 위한 것입니다.

무기 손잡이

Handle 부분은 플레이어 캐릭터가 무기를 잡는 위치를 결정합니다. 이는 Part여야 하며, Handle로 명명되어야 하며, 무기(도구)의 직접적인 자식이어야 합니다.

구성 폴더

Configuration 폴더는 무기 행동을 위한 특정 "값" 유형을 포함합니다. 기본값 이외에도, 해당되는 경우 전문화된 옵션을 위해 추가 구성 항목을 추가할 수 있습니다.

기본 구성 항목과 그 기본값은 다음과 같습니다:

항목설명기본값
AmmoCapacity플레이어가 재장전해야 하는 각 "탄약 클립"의 샷 수. 탄약은 무제한이며, 이는 플레이어가 가지고 있는 양을 지정하지 않습니다.30
FireModeSemiautomatic(클릭/탭당 한 발), Automatic(연속 발사) 또는 Burst(각 클릭/탭에서 NumBurstShots와 같은 발사 발수로 발사) 중에서 선택합니다.Semiautomatic
ShotCooldown클릭 간 최소 대기 시간. FireModeAutomatic인 무기에서, 이는 발사 버튼을 누르거나 클릭을 유지하는 동안의 시간입니다.0.1
BurstShotCooldown버스트 내 각 샷 간의 시간; FireModeBurst로 설정한 경우에만 중요합니다.ShotCooldown의 값
NumBurstShots클릭/버스트당 발사되는 샷 수; FireModeBurst로 설정한 경우에만 중요합니다.3
HitDamage각 직접 타격이 입히는 피해량입니다.10
FullDamageDistance사격이 전면적 피해를 주는 최대 거리. 이 거리를 넘어 맞은 것은 ZeroDamageDistance에 가까워질수록 점점 적은 피해를 받습니다.1000
ZeroDamageDistance이 거리에서 맞은 것은 피해를 받지 않습니다.10000
BulletSpeed발사 시 총알/발사체의 이동 속도. 이 값을 20000와 같은 매우 높은 값으로 설정하면 레이캐스팅 무기와 같은 레이저 총기를 시뮬레이션합니다.1000
MaxDistance총알/발사체가 사라지기 전 최대 이동 거리입니다.2000
MinSpread무기에서의 최소 발산량입니다.0
MaxSpread무기에서의 최대 발산량입니다.MinSpread의 값
GravityFactor중력이 각 총알/발사체에 영향을 미치는 정도. 예를 들어, 석궁의 경우 이 값은 1이며, 화살이 비행 중 아크를 이루므로, 로켓 발사기의 경우 이 값은 0으로, 추진 로켓은 직선으로 이동합니다.0
HasScopeWeapons System GUI에서 지정된 조준경을 사용하려면 true로 설정합니다.false
ReloadAnimation시스템 폴더Assets/Animations 내의 재장전 애니메이션 트랙 이름입니다.RifleReload
AimTrack시스템 폴더Assets/Animations 내의 조준 애니메이션 트랙 이름입니다.RifleAim
AimZoomTrack시스템 폴더Assets/Animations 내의 조준 확대 애니메이션 트랙 이름입니다.RifleAimDownSights
RecoilMin각 샷에 추가되는 최소 반동입니다.0.05
RecoilMax각 샷에 추가되는 최대 반동입니다.0.5
TotalRecoilMax총 최대 누적 반동. 무기의 현재 반동은 이 값을 초과할 수 없습니다.2
RecoilDecay반동에 대한 감소 배율; 발사 후 반동이 감소하는 속도입니다.0.825
RecoilDelayTime발사/클릭 후 반동이 카메라에 추가되기 전 대기 시간입니다.0.07
StartupTime무기를 장착한 후 플레이어가 발사할 수 있기까지의 시간입니다. 이렇게 하면 플레이어가 서로 다른 무기에서 연속으로 단일 발사를 방지할 수 있습니다.0.2
FiredPlaybackSpeedRange무기의 Fired 소리에서 피치가 변할 수 있는 범위입니다. 이를 0으로 설정하면 항상 동일한 피치로 재생됩니다.0.1
NumProjectiles한 번 클릭/탭할 때 동시에 발사될 총알/발사체 수입니다. 여러 총알을 동시에 발사하는 샷건과 같은 무기에서 유용합니다. 단, 한 발사는 이 값에 관계없이 항상 정확히 하나의 탄약을 사용합니다.1

전문화된 옵션

모든 무기에 대해 다음 옵션을 추가하거나 수정할 수 있습니다. 이러한 사용자 정의는 무기의 Model, 무기의 Configuration 또는 두 가지를 수정해야 합니다. 일부 구성은 구멍 입자와 같은 다른 구성에 따라 다릅니다. 이는 발사체/타격 효과 및 소리와 같은 필수 자식을 요구합니다.

볼트 애니메이션 및 소리

무기의 볼트는 발사될 때마다 앞뒤로 움직이는 부분입니다.

볼트BasePart로, 무기가 발사될 때 움직입니다.
BoltMotorMotor6D, 볼트를 애니메이션화하는 데 사용됩니다. 모터의 Part0를 무기 모델의 PrimaryPart로 설정하고, Part1볼트 부분으로 설정해야 합니다.
BoltMotorStartAttachment, 부모 BasePart에서의 위치가 볼트가 정지 상태일 때의 위치를 결정합니다.
BoltMotorTargetAttachment, 부모 BasePart에서의 위치가 사격 시 볼트가 애니메이션을 적용할 위치를 결정합니다.
BoltOpenSoundSound, 볼트가 열릴 때 재생됩니다.
optional
BoltCloseSoundSound, 볼트가 닫힐 때 재생됩니다.
optional
  • 무기의 구성 폴더의 자식
항목설명기본값
ActionOpenTime볼트가 열릴 위치로 애니메이션화되는 데 걸리는 시간입니다.0.025
ActionCloseTime볼트가 닫힐 위치로 애니메이션화되는 데 걸리는 시간입니다.0.075

탄피 배출

무기는 발사 시 배출되며, 지면에 떨어지는 물리적인 탄피를 포함할 수 있습니다.

CasingEjectPointAttachment, 부모 BasePart에서의 위치가 탄피가 나오는 위치를 결정합니다. 방향은 탄피가 나오는 방향을 결정합니다.
  • 무기의 구성 폴더의 자식
항목설명기본값
CasingEffect시스템 폴더Assets/Effects/Casings 내의 탄피 BasePart의 이름입니다.
CasingEjectSpeedMin탄피의 최소 배출 속도입니다.15
CasingEjectSpeedMax탄피의 최대 배출 속도입니다.18
CasingHitSoundSound, 탄피가 지면에 맞을 때 재생됩니다.
optional

발사체/타격 효과 및 소리

모든 무기에서 물리적 발사체를 구성할 수 있으며, 타격 효과 및 기타 특수 효과를 위한 Sounds, Beams, ParticleEmitters를 포함합니다.

  • 무기의 구성 폴더의 자식
항목설명기본값
ShotEffect시스템 폴더Assets/Effects/Shots 내에 저장된 발사 효과의 이름입니다.
ShouldMovePart무기의 ShotEffect가 발사체와 함께 움직여야 하는 경우 true로 설정하고, 그렇지 않으면 false로 설정합니다. 보이는 물체가 각 발사 시 이동하는 경우에만 true로 설정해야 합니다.false
BeamFadeTime총알/발사체가 무언가에 맞은 후 Beam0 또는 Beam1 (아래 참고)가 사라지는 데 걸리는 시간입니다. 기본적으로, 수동 페이드가 코드에 의해 적용되지 않습니다.0
BeamWidth0Beam0 또는 Beam1의 두께 Attachment0에서 (아래 참고).1.5
BeamWidth1Beam0 또는 Beam1의 두께 Attachment1에서 (아래 참고).1.8
NumHitParticlesHitParticles (아래 참고) 방출기가 방출할 입자 수입니다.3
HitParticlesUsePartColor히트 입자가 맞은 표면의 색상이 되기를 원하면 true로 설정하고, 색상을 변경하지 않기를 원하면 false로 설정합니다.true

ShotEffect 후손

이전 섹션에서 지정된 ShotEffect 후손

Flying총알/발사체가 이동하는 동안 재생되는 Sound입니다.
optional
Beam0총알/발사체 뒤에서 늘어나는 Beam을 위한 첫 번째 슬롯입니다. Attachment0Attachment1을 설정하는 것을 잊지 마세요.
optional
Beam1총알/발사체 뒤에서 늘어나는 Beam을 위한 두 번째 슬롯입니다. Attachment0Attachment1을 설정하는 것을 잊지 마세요.
optional
Attachment0부모 BasePart에서의 위치가 뒤쪽의 늘어나는 빔을 결정하는 Attachment; Beam0Beam1에 대한 Beam.Attachment0을 이 위치로 설정해야 합니다.
optional
Attachment1부모 BasePart에서의 위치가 앞쪽의 늘어나는 빔을 결정하는 Attachment; Beam0Beam1에 대한 Beam.Attachment1을 이 위치로 설정해야 합니다.
optional
TrailParticlesParticleEmitter, Attachment0의 직접 자식으로 배치됩니다; 이 입자는 총알/발사체가 이동하는 동안 방출됩니다.
optional
LeadingParticlesParticleEmitter, Attachment1의 직접 자식으로 배치됩니다; 이 입자는 총알/발사체가 이동하는 동안 방출됩니다.
optional
HitEffectAttachment, 총알/발사체가 무언가에 맞을 때 Beam0Beam.Attachment1으로 설정됩니다. 이를 올바르게 작동시키려면 Beam0 및 그 부착물을 지정해야 합니다.
optional
HitSoundSound, HitEffect의 직접 자식이며, 총알/발사체가 맞을 때 재생됩니다.
optional
HitParticlesSound, HitEffect의 직접 자식이며, 총알/발사체가 맞을 때 방출됩니다.
optional
[발사체 부품]물리적 발사체로 나타나기를 원하는 Part 또는 MeshPart. 이곳에 보이는 물체가 있다면, 이전 섹션에서 ShouldMoveParttrue로 설정해야 합니다.
optional

구멍 입자

이 옵션은 무기의 TipAttachment Attachment에서 발사할 때 지정된 ParticleEmitter에서 입자를 방출합니다.

구성 후손:

  • ShotEffect (StringValue) — WeaponsSystem/Assets/Effects/Shots 내에 저장된 발사 효과의 이름입니다.
  • NumMuzzleParticles (IntValue) (선택 사항) — 방출될 입자 수; 기본값은 50입니다.

지정된 발사 효과에 대해, WeaponsSystem/Assets/Effects/Shots 내에 MuzzleParticles라는 이름의 ParticleEmitter 자산을 추가합니다.

총구 섬광

이 옵션은 무기가 발사될 때 Beam 섬광 효과를 생성합니다.

모델 후손:

  • MuzzleFlash0 (Attachment) — 총구 섬광의 한쪽 면을 지정하는 데 사용됩니다. 위치는 중요하지 않습니다.
  • MuzzleFlash1 (Attachment) — 총구 섬광의 반대쪽을 지정하는 데 사용됩니다. 위치는 중요하지 않습니다.
  • MuzzleFlash (Beam) — Attachment0에 MuzzleFlash0을, Attachment1에 MuzzleFlash1을 설정해야 합니다.

구성 후손:

  • MuzzleFlashTime (NumberValue) (선택 사항) — 총구 섬광이 표시될 시간; 기본값은 0.03입니다.
  • MuzzleFlashRotation0 (NumberValue) (선택 사항) — 총구 섬광의 최소 회전; 기본값은 -math.pi입니다.
  • MuzzleFlashRotation1 (NumberValue) (선택 사항) — 총구 섬광의 최대 회전; 기본값은 math.pi입니다.
  • MuzzleFlashSize0 (NumberValue) (선택 사항) — 총구 섬광의 최소 크기; 기본값은 1입니다.
  • MuzzleFlashSize1 (NumberValue) (선택 사항) — 총구 섬광의 최대 크기; 기본값은 1입니다.

입자 흔적

이 옵션은 무기에서 발사체의 충돌 지점까지의 변동하는 길이의 흔적을 생성합니다.

구성 후손:

  • TrailLength (NumberValue) (선택 사항) — 총알/발사체 뒤의 흔적 길이; 기본값은 nil, 즉, 흔적 길이는 TrailLengthFactor를 사용하여 계산됩니다.
  • TrailLengthFactor (NumberValue) (선택 사항) — 총알/발사체가 지난 프레임에서 이동한 거리와 곱해져 이 값으로 설정됩니다; 기본값은 1입니다. TrailLength를 포함하는 경우, 이 값은 무시됩니다.
  • ShowEntireTrailUntilHit (BoolValue) (선택 사항) — 발사체의 끝에서 시작하여 발사체가 있는 곳까지의 흔적을 표시하려면 true로 설정합니다; 이는 TrailLengthTrailLengthFactor 둘 다를 무시하고, 발사체가 무엇인가에 맞을 때까지 흔적이 사라지지 않습니다. false로 설정하여 흔적 길이를 계산하기 위해 두 가지 중 하나의 옵션을 사용해야 합니다. 기본값은 false입니다.

타격 마크

이 시각적 추가 항목은 발사체가 맞은 표면에 나타나며, 화살, 총알 구멍, 화상 자국 등에 유용합니다.

구성 후손:

  • HitMarkEffect (StringValue) (선택 사항) — WeaponsSystem/Assets/Effects/HitMarks 내에 저장된 타격 마크 효과의 이름; 기본값은 BulletHole입니다.
  • AlignHitMarkToNormal (BoolValue) (선택 사항) — 타격 마크가 항상 총알 구멍처럼 표면과 평행하게 정렬되도록 하려면 true로 설정하고, 발사체가 접근한 방향에서 표면에 박힘을 원하면 false로 설정합니다. 기본값은 true입니다.

다음 선택적인 자산을 WeaponsSystem/Assets/Effects/HitMarks에 추가할 수 있습니다:

  • Glow (Decal) (선택 사항) — 맞은 표면에 완전히 불투명하게 나타나고, 이후 빠르게 투명해지는 효과를 가집니다. 발사체의 충격을 나타내기 위해 유용합니다.
  • BulletHole (Decal) (선택 사항) — 맞은 표면에 완전히 불투명하게 나타나고, 4초 후 1초에 걸쳐 투명해집니다.
  • ImpactBillboard (BillboardGui) (선택 사항) — 맞은 표면에서 항상 카메라를 향해 표시됩니다.
    • Impact (ImageLabel) (선택 사항) — ImpactBillboard의 직접 자식; 처음에는 완전히 불투명하게 시작하며, 0.1초에 걸쳐 ImpactBillboard의 전체 크기로 성장한 후 반으로 줄어들고 완전히 투명해집니다.
  • 물리적 발사체로 나타나기를 원하는 Part/MeshPart/SpecialMesh (선택 사항). 예를 들어, 화살 MeshPart를 포함하고, 위에서 언급한 AlignHitMarkToNormalfalse로 설정하면 화살이 발사한 방향에서 표면 밖으로 튀어나오게 됩니다.

폭발 입자

발사체는 충돌 지점 주변의 플레이어 캐릭터에 피해를 입히기 위해 Explosion 객체를 포함할 수 있습니다.

구성 후손:

  • ExplodeOnImpact (BoolValue) (선택 사항) — 총알/발사체가 충돌 시 폭발하기를 원하면 true로 설정하고, 그렇지 않으면 false로 설정합니다. 기본값은 false입니다.
  • BlastRadius (NumberValue) (선택 사항) — 폭발의 폭발 반경; 기본값은 8입니다.
  • BlastPressure (NumberValue) (선택 사항) — 폭발 압력; 기본값은 10000입니다.
  • BlastDamage (NumberValue) (선택 사항) — 폭발의 중심에 있는 물체에 피해를 입힙니다. 폭발로 인한 피해는 폭발 중심에서 멀어질수록 줄어듭니다. 기본값은 100입니다.

충전 무기

레일건과 같은 충전 무기는 발사할 준비가 될 때까지 발사 간 충전이 필요합니다.

모델 후손:

  • 충전 (Sound) (선택 사항) — 무기가 충전되는 동안 재생됩니다.
  • 방전 (Sound) (선택 사항) — 무기가 방전되는 동안 재생되며, 예를 들어 무기를 부분적으로 충전한 후 발사 버튼을 놓은 경우입니다.
  • 충전 완료 (Sound) (선택 사항) — 무기가 완전히 충전되었을 때 재생됩니다.
  • 방전 완료 (Sound) (선택 사항) — 무기가 완전히 방전되었을 때 재생됩니다.
  • ChargeGlow (BasePart) (선택 사항) — 이 객체는 무기가 충전됨에 따라 덜 투명해지며, 100% 충전 시 완전히 불투명하게 됩니다.
  • ChargeCompleteParticles (ParticleEmitter) (선택 사항) — 무기 충전이 완료되면 방출됩니다. 이 방출기는 모든 모델 BasePart의 자식이거나 BasePart 내의 Attachment의 자식이 될 수 있습니다.
  • DischargeCompleteParticles (ParticleEmitter) (선택 사항) — 무기가 완전히 방전되었을 때 방출됩니다. 이 방출기는 모든 모델 BasePart의 자식이거나 BasePart 내의 Attachment의 자식이 될 수 있습니다.
  • 충전 입자 (ParticleEmitter) (선택 사항) — 무기가 충전되는 동안 방출됩니다. 이 이름의 방출기를 여러 개 포함할 수 있으며, 각각 충전하는 동안 방출됩니다. 이 방출기는 모든 모델 BasePart의 자식이거나 BasePart 내의 Attachment의 자식이 될 수 있습니다.

구성 후손:

  • ChargeRate (NumberValue) — 무기가 충전되는 속도입니다. 이 값은 무기가 충전을 사용한다고 표시하는 데 필요합니다.
  • DischargeRate (NumberValue) (선택 사항) — 무기가 방전되는 속도; 기본값은 0, 즉 무기가 방전되지 않습니다.
  • ChargePassively (BoolValue) (선택 사항) — 무기가 자동으로 충전되어 클릭할 때 즉시 발사되기를 원하면 true로 설정하고, 클릭하거나 터치하여 무기를 충전하고 완전 충전 시 발사되기를 원하면 false로 설정합니다. 기본값은 false입니다.
  • ChargingParticlesRatePerCharge (IntValue) (선택 사항) — 모든 ChargingParticles 방출기에서 방출될 입자 수입니다. 기본값은 20입니다. 즉, 무기 충전이 10%일 경우, 각 ChargingParticles 방출기는 2개의 입자를 방출하며 (20×0.1), 무기가 90% 충전된 경우, 각 방출기는 18개의 입자를 방출합니다 (20×0.9).
  • FireDischarge (NumberValue) (선택 사항) — 무기가 완전히 충전된 발사를 한 후 잃게 되는 충전량; 기본값은 1입니다.
  • NumChargeCompleteParticles (IntValue) (선택 사항) — 무기가 완전히 충전될 때, ChargeCompleteParticles 방출기가 방출할 입자 수입니다. 기본값은 25입니다.
  • NumDischargeCompleteParticles (IntValue) (선택 사항) — 무기가 완전히 방전될 때, DischargeCompleteParticles 방출기가 방출할 입자 수입니다. 기본값은 25입니다.

활 무기

크로스보우와 같은 활 무기는 사실적인 줄 및 팔 구조를 포함할 수 있으며, 줄에 고정된 시각적 화살도 포함할 수 있습니다.

모델 후손을 추가하는 것 외에도, 다음을 적용해야 합니다:

  • 무기를 충전 무기으로 만듭니다. 예를 들어, 줄이 당기는 속도를 지정하는 ChargeRate를 무기 Configuration에 추가해야 합니다. 또한, 줄이 당겨지는 소리/팔이 당겨지는 소리와 같은 선택적 후손을 무기의 Model에 추가하는 것을 고려하십시오.
  • WeaponType무기 구조에서 지정된 BowWeapon으로 설정합니다.

모델 후손:

  • LeftString (Beam) (선택 사항) — 줄의 왼쪽 절반의 시각적 표현입니다.
  • RightString (Beam) (선택 사항) — 줄의 오른쪽 절반의 시각적 표현입니다.
  • Arrow (BasePart) (선택 사항) — 활이 완전히 당겨졌을 때 나타나는 화살입니다. 이는 활의 시각적 표현을 위한 것입니다 (실제 발사되는 화살은 발사체/타격 효과 및 소리에서 설명된 ShotEffect입니다).
  • String1 (Attachment) (선택 사항) — 줄의 중심 점입니다.
  • StringLoose (Attachment) (선택 사항) — 활이 정지 상태일 때 String1이 있어야 할 위치입니다.
  • StringTight (Attachment) (선택 사항) — 활이 완전히 당겨졌을 때 String1이 있어야 할 위치입니다.
  • Arms (Part) (선택 사항) — 활의 팔이 애니메이션화될 것이라는 내부 표시기 역할을 하는 부품입니다. 이는 다음 직접 자식을 포함할 수 있습니다:
  • LeftString0 (Attachment) (선택 사항) — 활에 줄 왼쪽의 부착 지점입니다.
  • RightString0 (Attachment) (선택 사항) — 활에 줄 오른쪽의 부착 지점입니다.
  • LeftLoose (Attachment) (선택 사항) — 활이 정지 상태일 때 LeftString0이 있어야 할 위치입니다.
  • RightLoose (Attachment) (선택 사항) — 활이 정지 상태일 때 RightString0이 있어야 할 위치입니다.
  • LeftTight (Attachment) (선택 사항) — 활이 완전히 당겨졌을 때 LeftString0이 있어야 할 위치입니다.
  • RightTight (Attachment) (선택 사항) — 활이 완전히 당겨졌을 때 RightString0이 있어야 할 위치입니다.
  • [SpecialMesh] (SpecialMesh) (선택 사항) — 활이 당겨질 때 실제로 휘어지는 부품입니다. 올바르게 애니메이션화되도록 하기 위해 다음 네 개의 Vector3Value 객체를 지정해야 합니다.
  • LooseOffset (Vector3Value) (선택 사항) — 활이 정지 상태일 때의 SpecialMesh의 오프셋입니다.
  • TightOffset (Vector3Value) (선택 사항) — 활이 완전히 당겨졌을 때의 SpecialMesh의 오프셋입니다.
  • LooseScale (Vector3Value) (선택 사항) — 활이 정지 상태일 때의 SpecialMesh의 크기입니다.
  • TightScale (Vector3Value) (선택 사항) — 활이 완전히 당겨졌을 때의 SpecialMesh의 크기입니다.

무기 시스템 GUI

핵심 무기 시스템은 총기의 발산, 적중 시, 또는 다른 캐릭터를 적중했을 때와 같은 사항에 따라 GUI를 업데이트하는 인터페이스와 함께 이 시스템과 함께 작동합니다.

WeaponsSystemGui는 경험이 시작될 때 PlayerGui에 부모로 달린 WeaponsSystem/Assets 내의 ScreenGui 객체입니다. WeaponSystemGui는 4개의 자식을 갖습니다:

스케일링 요소

ScalingElements는 WeaponsSystemGui 아래의 Folder로 다음 자식을 포함합니다:

이름인스턴스 유형설명
DirectionalIndicatorsFolder모든 방향 지시기가 저장되는 Folder입니다.
CrosshairFrame다음 객체를 포함하는 Frame:

[UIAspectRationConstraint] - UIAspectRatioConstraint
하단 - ImageLabel
왼쪽 - ImageLabel
오른쪽 - ImageLabel
상단 - ImageLabel
HitMarkerFrame다음 객체를 포함하는 Frame:

[UIAspectRatioConstraint] - UIAspectRatioConstraint
HitMarkerImage - ImageLabel, 플레이어가 다른 플레이어 캐릭터를 적중하는 데 성공했을 때 나타나고 사라집니다.

대형 터치스크린

LargeTouchscreen은 대형 터치스크린에 표시되는 버튼이 포함된 Frame입니다. LargeTouchscreen은 다음 자식을 포함합니다:

조준경

Scope는 ScopeImage (ImageLabel)를 포함하는 Frame로, HasScope가 활성화된 무기를 확대할 때 표시됩니다 (참고: 무기 구조).

Scope는 다음 자식을 포함합니다:

이름인스턴스 유형설명
ScopeInstanceFrameHasScope가 활성화된 무기를 확대할 때 사용되는 다음 자산이 포함된 Frame:

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

소형 터치스크린

SmallTouchScreen은 소형 터치스크린에 표시되는 버튼이 포함된 Frame입니다. SmallTouchscreen은 다음 자식을 포함합니다:

방향 지시기 만들기

방향 지시기는 플레이어의 십자선 주변의 무언가의 방향을 표시하는 데 사용됩니다. 예를 들어, 누군가 당신을 쏘면 빨간 반원이 당신의 십자선 주변에 나타나며, 이 반원은 총알이 날아온 방향을 표시합니다. 발자국, 간접 총기 발사, 또는 갑옷과 같은 환경 객체의 방향을 표시하는 데에도 사용될 수 있습니다.

새 지시기를 만들려면, WeaponsSystemGui/ScalingElements/DirectionalIndicators 아래에 새 Indicator Frame을 추가하고 다음 구조를 추가합니다:

이름인스턴스 유형설명
[UIAspectRationConstraint]UIAspectRatioConstraint
[ImageLabel]ImageLabel방향 지시기의 이미지. Studio에서 이미지의 회전을 조정해야 할 수 있습니다. 이미지가 아래를 향하게 업로드된 경우 회전 조정 없이 개빈비게 할 수 있습니다.
이 이미지 레이블에도 자체적으로
UIAspectRatioConstraint가 포함되어야 합니다.
[Configuration]Configuration선택적 조정 속성을 포함합니다. 더 많은 정보를 원하시면 Indicator Configuration를 참고하세요.

생성 후, WeaponsSystem/Libraries/WeaponsGui 내에서 다음 명령을 통해 지시기를 활성화할 수 있습니다. 여기서 indicatorName는 활성화할 지시기의 문자열 이름이고, worldPos는 방향 지시기가 가리켜야 할 세계 위치입니다:


self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)

지시기 구성

DirectionalIndicators는 [Indicator] 아래에 배치된 Configuration 객체를 조정하여 추가 수정할 수 있습니다. 이러한 설정은 기본값이 있으므로, 설정을 변경하지 않을 경우 구성 해설을 설정할 필요는 없습니다.

설정할 수 있는 구성 항목은 다음과 같습니다:

이름인스턴스 유형설명
DistanceLevelFromCenterNumberValue화면 중앙에서의 거리 수준 수(각 거리 수준은 약 0.03 화면 비율); 기본값은 6입니다.
FadeTimeNumberValue지시기가 활성화된 후의 사라짐 시간과 TimeBeforeFade 시간; 기본값은 1입니다.
NameStringValue코드에서 참조할 지시기의 이름; 기본값은 지시기의 최상위 Frame의 이름입니다.
TimeBeforeFadeNumberValue지시기가 사라지기 전에 나타나는 시간(초); 기본값은 1입니다.
TransparencyBeforeFadeNumberValue사라지기 전에 지시기의 투명도; 기본값은 0입니다.
WidthLevelNumberValue중앙에서의 너비 수준 수(각 너비 수준은 약 0.03 화면 비율); 기본값은 DistanceLevelFromCenter의 값입니다.

피해 광고판 표시

피해 광고판은 캐릭터의 머리 위에 피해를 입었을 때 작은 숫자를 표시하는 데 사용됩니다. 이 숫자는 다른 플레이어 캐릭터에게 피해를 입힌 플레이어에게만 표시되며, 관람 중인 플레이어에게는 표시되지 않습니다.

피해 광고판은 WeaponsSystem/Libraries/DamageBillboardHandler에서 처리되며, 다음과 같이 클라이언트 측 코드에서 활성화할 수 있습니다. 여기서 damage는 가해진 피해의 양이고, adornmentPart는 광고판이 장식될 부위 (예: 피해자의 머리)에 해당합니다:


DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

어깨 카메라

어깨 카메라는 플레이어 캐릭터의 오른쪽 어깨를 넘어 바라보는 3인칭 카메라입니다. 어깨 카메라를 사용자 정의하려면, WeaponsSystem/Libraries/ShoulderCameraShoulderCamera.new() 함수에서 -- 구성 매개변수 (상수) 주석 아래에 있는 변수들을 수정하십시오. 시야각, 캐릭터로부터의 오프셋, 스프린트 또는 확대 중의 이동 속도 등을 수정할 수 있습니다.

스프린트 및 확대 제어

기본적으로 무기 시스템은 "스프린트" 기능을 추가하여 플레이어가 Shift 키를 눌르거나, 동적 조이스틱(모바일)에서 완전히 위로 밀거나, 게임패드에서 왼쪽 조이스틱을 완전히 위로 밀면 스프린트할 수 있게 합니다. 스프린트를 비활성화하고 싶다면, WeaponsSystem/Configuration 내의 SprintEnabled 값을 false로 설정하세요.

이 시스템은 또한 플레이어가 조준/확대하는 동안 속도를 줄이지만, 이 동작을 비활성화하려면 SlowZoomWalkEnabled 값을 false로 설정하면 됩니다.

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.