NPC 키트

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

NPCs(비플레이어 캐릭터)는 경험에 많은 깊이를 추가할 수 있습니다. 다음의 모든 NPC는 시각적으로 사용자 정의할 수 있으며, 그들의 동작을 수정할 수 있고, 좀비/병사들은 태그 시스템을 사용하여 행동을 설정함으로써 플레이어나 다른 캐릭터를 공격하여 지역을 방어할 수도 있습니다.

게임에서 NPC를 사용하려면:

  1. 다음 NPC 키트 중 하나를 선택합니다:

    침 흘리는 좀비
    병사들
    RO-01 로봇
    NP-C 9000 로봇
  2. NPC의 항목 페이지에서 녹색 획득 버튼을 클릭하고 거래를 확인합니다.

  3. 스튜디오에서 툴박스를 엽니다.

  4. 툴박스 인벤토리 섹션을 선택합니다.

  5. NPC를 찾아 클릭하여 장면에 추가합니다.

캐릭터 구조

각 NPC 모델은 일반적으로 다음 객체를 포함합니다:

객체 이름 또는 [유형]유형설명
애니메이션FolderAnimations을 포함하며, 예를 들어 AttackAnimation 또는 DeathAnimation과 같은 것이 있습니다.
초기 포즈Folder포즈 정보를 포함합니다.
AnimateScript캐릭터 리그에서 애니메이션을 로드하고 재생합니다. 자세한 내용은 Animate를 참조하십시오.
[액세서리]Accessory모자, 무기 등과 같은 NPC의 여러 개의 Accessories 중 하나입니다.
헬스Script일반적으로 시간이 지남에 따라 Humanoid 헬스를 재생성합니다. 이를 비활성화하면 캐릭터가 헬스를 재생성하지 못하게 됩니다.
휴머노이드HumanoidHumanoid 관련 속성, 예를 들어 Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType 등을 관리합니다.
NPCScript

비헤이비어와 관련된 특정 행동을 정의하며, 탐색, 공격 등을 포함합니다. 다음 객체를 부모로 가집니다:

Maid (ModuleScript)는 사용된 리소스를 해제하는 데 유용한 클래스를 정의합니다.

Ragdoll (ModuleScript)은 캐릭터를 느슨한 물리적으로 영향을 받는 몸으로 변환하는 함수를 정의합니다(여러 헬퍼 함수를 정의하는 RigTypes ModuleScript를 부모로 가집니다).

RbxNpcSoundsScript달리기, 죽기와 같은 캐릭터의 음향 효과와 관련된 동작을 정의하고 관리합니다.
BodyPartsBasePartHumanoidRootPart 또는 이웃 바디 파트에 Motor6D 또는 제약 객체를 통해 연결된 다양한 캐릭터 바디 파트입니다. 자세한 내용은 BodyParts를 참조하세요.
HumanoidRootPartBasePart리그의 뿌리로 간주되는 특별한 보이지 않는 부분입니다. 이는 캐릭터의 ModelPrimaryPart이기도 합니다.
ConfigurationConfiguration여러 행동을 조정하는 값 객체를 포함합니다. 자세한 내용은 Configuration를 참조하세요.

디자인 노트

NPC 키트를 사용할 때 다음 디자인 노트를 염두에 두세요:

  • NPC의 시각적 외관은 다양한 [BodyParts] 객체를 추가하거나 수정함으로써 또는 Accessory 객체를 추가함으로써 사용자 정의할 수 있습니다.

  • 병사들, 침 흘리는 좀비, NP-C 9000 로봇은 Rthro를 리그의 기반으로 사용합니다. 그러나 RO-01 로봇은 UpperTorsoWeldConstraints를 사용하여 연결된 스로터 부분을 추가한 수정된 Rthro 기반을 사용합니다. 이러한 방식으로 간단한 관절을 사용하면 원래의 기본 리그를 변경하지 않고도 캐릭터에 여분의 기하학을 포함할 수 있습니다.

  • 기본적으로 NPC 애니메이션은 Animate 스크립트 포즈 내의 기존 애니메이션 객체의 AnimationId를 수정하거나 Animations 폴더 내의 애니메이션을 수정하여 맞춤화할 수 있습니다. 이러한 변경은 본질적으로 자산 교환입니다. 세부 사항을 변경하고자 할 경우 기존 애니메이션의 사용자 정의 복사본을 만들 수 있으며, 다른 조건에서 애니메이션을 재생하려면 Animate 또는 NPC 스크립트를 직접 수정할 수 있습니다. 자세한 정보는 Animation을 참조하십시오.

애니메이트

NPC Model의 Animate Script애니메이션 관련 구성과 다음 객체를 포함합니다:

객체 이름 또는 [유형]유형설명
ScaleDampeningPercentNumberValue캐릭터가 스케일될 때 애니메이션 속도가 어떻게 수정되는지를 정의합니다(1보다 작으면 애니메이션 재생이 캐릭터가 스케일될 때 반비례로 변동합니다).
PlayEmoteBindableFunction다른 스크립트에 의해 호출될 수 있어 포즈를 강제로 잡도록 합니다.
[Pose]StringValue일상적인, 점프, 걷기 등과 같은 재생 가능한 애니메이션 카테고리에 대한 참조입니다. 이 객체는 이론적으로 무한한 수의 Animations을 자식으로 가질 수 있습니다.

이러한 Animations는 한 포즈를 가정할 때 재생할 다수의 애니메이션에서 우선하는 Weight (NumberValue)를 자식으로 가집니다; 일반적으로 대기 및 춤 포즈에 변화를 주는 데 사용됩니다.

BodyParts

NPC Model의 BodyPart BasePart는 다양한 캐릭터 바디 파트를 나타내며 다음 객체를 포함합니다:

객체 이름 또는 [유형]유형설명
AvatarPartScaleTypeStringValue 부품이 어떻게 스케일될지를 결정합니다; 값은 Classic, ProportionsNormal, 또는 ProportionsSlender일 수 있습니다.
OriginalSizeVector3Value캐릭터 스케일이 1일 때 부분의 크기를 결정합니다.
[Attachment]Attachment스크립트, 이펙트, Tool 또는 Accessory와 같은 객체가 위치를 정할 때 활용할 수 있는 개별 부품에 대한 상대 지점을 정의합니다.
[Motor6D]Motor6D두 바디 파트 사이의 애니메이션 관절. Animator는 애니메이션이 생성될 때 사용된 Motor6Ds 이름과 일치해야 하므로, 이 객체의 이름을 변경하지 않도록 합니다.
[Joint]WeldConstraint, Constraint, JointInstance두 바디 파트 사이의 비애니메이션 관절입니다.
[Sound]Sound머리 또는 HumanoidRootPart에서 일반적으로 발견됩니다; RbxNpcSounds 스크립트의 제어 하에 리그 내에서 소리를 재생합니다.

구성

각 NPC에는 구조 내에 Configuration 객체가 포함되어 있으며, 이는 값 객체의 컨테이너 역할을 합니다. 이는 NPC 스크립트가 다양한 행동을 조정하는 데 사용됩니다. 특별히 명시되지 않는 한, 이는 모든 캐릭터에 적용됩니다.

객체 이름 또는 [유형]유형설명
DestroyOnDeathBoolValue죽은 직후 NPC 전체가 파괴되도록 합니다. 이를 비활성화하면 ragdoll이 지속적으로 유지됩니다.
PatrolEnabledBoolValueNPC가 시작 위치 주변 지역에서 돌아다니게 합니다.
PatrolRadiusNumberValueNPC가 시작 위치에서 돌아다닐 최대 거리를 정의합니다. PatrolEnabled가 true일 때 확정됩니다.
RagdollEnabledBoolValueNPC가 죽을 때 느슨해지게 하며, 대신 분해되지 않습니다.
AttackDamageNumberValueNPC가 공격할 때 피해자가 잃는 헬스 양을 정의합니다. 이는 좀비 및 병사 키트에만 적용됩니다.
AttackDelayNumberValue발사 간 최소 초수를 정의합니다. 이는 병사 키트에만 적용됩니다.
AttackModeNumberValue병사가 어떤 것을 공격할지를 정의하는 태그 시스템 기준입니다. 이는 병사 키트에만 적용됩니다.
AttackRadiusNumberValueNPC가 공격을 시도하기 전에 잠재적 피해자에서 최대 거리를 정의합니다. 이는 좀비 및 병사 키트에만 적용됩니다.
ClipCapacityNumberValue병사가 재장전해야 하기 전에 발사할 수 있는 총알 수를 정의합니다. 이는 병사 키트에만 적용됩니다.
ReloadDelayNumberValue병사의 무기 클립이 재장전되기 전에 지나야 할 초 수를 정의합니다. 이는 병사 키트에만 적용됩니다.

태그 할당

NPC 스크립트는 CollectionService 태그를 사용하여 다른 캐릭터 및 플레이어에 대한 공격성을 관리합니다. 다음 표에서 다양한 태그를 다음과 같이 할당할 수 있습니다:

  • 다른 NPC에 태그를 할당하려면 NPC의 최상위 Model태그 섹션을 사용하여 할당합니다.

  • Player 캐릭터에 태그를 할당하려면 StarterCharacterScriptsScript를 추가하고 CollectionService:AddTag() 호출을 포함합니다. 예를 들어:


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
태그목적
SoldierEnemy 또는 SoldierFriend병사가 AttackMode 구성 값을 기반으로 다른 캐릭터를 공격해야 하는지를 결정합니다. 병사의 AttackMode1로 설정된 경우, 다른 캐릭터는 공격 가능한 것으로 간주되기 위해 SoldierEnemy 태그가 필요합니다. 병사의 AttackMode2로 설정된 경우, SoldierFriend 태그가 없는 모든 객체가 공격 가능한 것으로 간주됩니다. 병사의 AttackMode3으로 설정된 경우, 이 태그들은 무시되며 병사는 모든 캐릭터를 공격합니다.
ZombieFriend이 태그는 좀비가 캐릭터를 공격하지 않아야 하는지를 결정하는 데 사용됩니다. 적용시, 좀비는 태그가 달린 캐릭터에 대해 온순해집니다.
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.