NPC(비플레이어 캐릭터)는 경험에 많은 깊이를 추가할 수 있습니다.다음 NPC 모두 시각적으로 사용자 지정할 수 있으며, 행동이 수정되었습니다, 좀비/군인은 태그 시스템을 사용하여 플레이어나 다른 캐릭터를 공격하여 영역을 방어할 수 있습니다.
게임에서 NPC를 사용하려면:
NPC의 아이템 페이지에서 녹색 가져오기 버튼을 클릭하고 거래를 확인하십시오.
Roblox Studio에서 도구 상자를 열어( 보기 → 도구 상자 )
도구 상자 재고 섹션을 선택하십시오.
NPC를 찾아서 클릭하여 플레이스추가하십시오.
캐릭터 구조
각 NPC 모델에는 일반적으로 다음 개체가 포함됩니다:
개체 이름 또는 [유형] | 유형 | 설명 |
---|---|---|
애니메이션 | Folder | Animations , 예를 들어 AttackAnimation 또는 DeathAnimation 와 같은 포함. |
초기 포즈 | Folder | 포즈 정보를 포함합니다. |
애니메이션 | Script | 캐릭터 리그에서 애니메이션을 불러오고 재생합니다. 자세한 내용은 애니메이션을 참조하십시오. |
[액세서리] | Accessory | 모자, 무기 등 NPC의 경우 가능한 여러 개의 Accessories 중 하나 |
상태 | Script | 일반적으로 시간에 따라 Humanoid 건강을 재생성합니다. 이 기능을 비활성화하면 캐릭터가 건강을 재생성하지 못하게 됩니다. |
인간형 | Humanoid | 관련 속성, Humanoid , Humanoid.Health , Humanoid.WalkSpeed , Humanoid.DisplayDistanceType 등을 관리합니다. |
NPC | Script > | 이동, 공격 등의 특정 문자 행동을 정의합니다.다음 개체의 부모: 메이드 ( ModuleScript )는 사용된 리소스를 해제하는 데 유용한 클래스를 정의합니다.: 래그돌 ( ModuleScript )는 캐릭터를 느슨한 물리학에 영향을 받는 몸으로 변환하는 함수를 정의합니다(여러 개의 도우미 함수를 정의하는 RigTypes ModuleScript 를 부모로 지정함). |
RbxNpc사운드 | Script | 실행, 사망 등의 캐릭터 사운드 효과와 관련된 행동을 정의하고 관리합니다. |
바디 파트들 | BasePart | Motor6D 또는 제약 개체를 통해 HumanoidRootPart나 인접 바디 부품에 연결된 다양한 캐릭터 바디 부품.자세한 내용은 BodyParts에 참조하십시오. |
인간형 루트 파트 HumanoidRootPart | BasePart | 리그의 루트로 간주되는 특별한 투명한 부품; 이것은 또한 캐릭터의 의 일부입니다. |
구성 | Configuration | 다양한 동작을 조정하는 값 개체를 포함합니다. 자세한 내용은 구성을 참조하십시오. |
디자인 노트
NPC 키트를 사용할 때 다음 디자인 노트를 고려하십시오:
NPC의 시각적 모양은 다양한 [BodyParts] 개체를 추가하거나 수정하고 개체 Accessory 를 추가하여 사용자 지정할 수 있습니다.
병사, 침묵하는 좀비, NP-C 9000 로봇은 Rthro를 리그의 기반으로 사용합니다.그러나 RO-01 로봇은 추진기 부품을 상체토르소 에 연결하는 수정된 Rthro 기반을 사용하며, 이는 WeldConstraints를 사용하여 추가됩니다.이런 방식으로 간단한 조인트를 사용하면 원래 기본 리그를 변경하지 않고도 캐릭터에 추가 기하를 포함할 수 있습니다.
기본 레벨NPC 애니메이션은 AnimationId 스크립트 포즈 내에서 기존 애니메이션 개체의 **** 를 수정하거나 애니메이션 폴더 내에서 수정하여 사용자 지정할 수 있습니다.이러한 변경은 본질적으로 자산 교환입니다 - 미세한 세부 사항을 변경하려면 기존 애니메이션의 사용자 지정 복사본을 만들고, 다른 조건에서 애니메이션을 재생하려면 애니메이트 또는 NPC 스크립트를 직접 편집할 수 있습니다.자세한 내용은 애니메이션을 참조하십시오.
애니메이션
NPC의 Animate 에서는 애니메이션 관련 구성을 처리하고 다음 개체를 포함합니다:
개체 이름 또는 [유형] | 유형 | 설명 |
---|---|---|
스케일 댐핑 퍼센트 | NumberValue | 캐릭터가 크기가 조정될 때 애니메이션 속도가 수정되는 방법을 정의(1보다 작으면 캐릭터가 크기가 조정될 때 애니메이션 재생 크기가 역방향으로 반전됩니다). |
플레이 이모트 | BindableFunction | 이것은 포즈의 가정을 강제하기 위해 다른 스크립트에 의해 호출될 수 있습니다. |
[포스] | StringValue | 빈둥대기, 점프, 걷기 등의 재생 가능한 애니메이션 카테고리에 대한 참조이 개체는 어떤 수의 Animations를 부모로 설정할 수 있습니다.이 부모 Animations 는 포즈가 가정되는 동안 재생할 여러 애니메이션 중 하나를 우선시하는 무게 ( NumberValue )를 부여합니다; 일반적으로 유휴 및 춤 자세에 다양성을 추가하는 데 사용됩니다. |
바디 파트들
NPC의 BodyPart 는 다양한 캐릭터 신체 부분을 나타내며 다음 개체를 포함합니다:
개체 이름 또는 [유형] | 유형 | 설명 |
---|---|---|
아바타 파트 스케일 유형 | StringValue | 부품의 크기를 결정하며 값은 클래식 , 비율 정상 , 또는 비율 슬림 일 수 있습니다. |
원래 크기 | Vector3Value | 문자 크기가 1일 때 부품의 크기를 결정합니다. |
[첨부파일] | Attachment | 스크립트, 효과 및 개체와 같은 위치 지정 중에 사용할 수 있는 개별 부품에 대한 포인트를 정의합니다. Tool 또는 Accessory와 같은 개체는 위치 지정 중에 사용할 수 있습니다. |
[Motor6D] | Motor6D | 두 신체 부분 사이의 애니메이션된 관절. 는 애니메이션이 생성될 때 사용된 의 이름과 일치하기 위해 의존하므로 이 개체의 이름을 바꾸지 않도록 주의하십시오. |
[공동] | WeldConstraint , Constraint , JointInstance | 두 신체 부분 사이의 비애니메이션된 관절. |
[사운드] | Sound | 머리나 HumanoidRootPart에 일반적으로 발견; 스크립트 RbxNpcSounds에 의해 제어되는 장비 내부의 소리를 재생합니다. |
구성
각 NPC에는 값 개체의 컨테이너 역할을 하는 계층 내 Configuration 개체가 포함되어 있습니다.이들은 NPC 스크립트에서 다양한 동작을 조정하는 데 사용됩니다.다르게 지정되지 않으면, 이는 모든 문자에 적용됩니다.
개체 이름 또는 [유형] | 유형 | 설명 |
---|---|---|
파괴OnDeath | BoolValue | NPC가 죽은 후 짧은 시간 내에 전체가 파괴되도록 합니다. 래그돌이 지속되도록 이 기능을 비활성화하십시오. |
순찰 활성화 | BoolValue | NPC가 시작 위치 주변의 영역을 방황하게 합니다. |
순찰 반경 | NumberValue | NPC가 시작 위치에서 방황할 수 있는 최대 거리를 정의하며, PatrolEnabled 가 참이라고 가정합니다. |
래그돌 활성화 | BoolValue | NPC가 부서지는 대신 쇠약해지도록 만듭니다. |
공격 피해 | NumberValue | NPC에 의해 공격받을 때 피해자가 얼마나 많은 체력을 잃는지 정의합니다. 이는 좀비와 병사 키트에만 적용됩니다. |
공격 지연 | NumberValue | 사격 사이의 최소 시간을 정의합니다. 이는 병사 키트에만 적용됩니다. |
공격 모드 | NumberValue | 태극 시스템에 따라 병사가 공격할 내용을 지정합니다. 이는 병사 키트에만 적용됩니다. |
공격 반경 | NumberValue | NPC가 공격을 시도하기 전에 잠재적 희생자에게서 최대 거리를 정의합니다. 이는 좀비와 병사 키트에만 적용됩니다. |
클립 용량 | NumberValue | 재장전하기 전에 병사가 발사할 수 있는 탄약 수를 정의합니다. 병사 키트에만 적용됩니다. |
재장전 지연 | NumberValue | 병사의 무기 클립이 재장전될 때까지 지나야 하는 시간을 정의합니다. 이는 병사 키트에만 적용됩니다. |
태그 할당
NPC 스크립트는 다른 캐릭터와 플레이어에 대한 공격을 관리하기 위해 태그를 사용합니다.다음 표의 다양한 태그는 다음과 같이 할당될 수 있습니다:
다른 NPC에 태그를 할당하려면 속성의 태그 섹션이나 Studio의 태그 편집기를 사용하여 속성의 최상위 레벨 에 할당하거나, 태그 섹션을 사용하여 다른 NPC에 태그를 할당합니다.
태그를 Player 캐릭터에 할당하려면 Script 호출로 스타터캐릭터스크립트 에 CollectionService:AddTag() 를 추가할 수 있습니다. 예를 들어:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
태그 | 목적 |
---|---|
군인 적군 또는 군인 친구 | 공격 모드 구성 값에 따라 군인이 다른 캐릭터를 공격해야 하는지 여부를 결정합니다. AttackMode 구성 값은 다음과 같습니다.병사의 공격 모드 가 1 설정되면 다른 캐릭터는 병사 적군 으로 태그되어 공격 가능성이 고려되어야 합니다.병사의 공격 모드 가 으로 설정되면, 병사 친구 태그가 없는 모든 개체가 공격 가능한 것으로 간주됩니다.병사의 공격 모드 가 3 설정되면 이 태그는 완전히 무시되고 병사는 모든 캐릭터를 공격합니다. |
좀비 친구 | 이 태그는 좀비가 캐릭터를 공격하지 않아야 하는지 여부를 결정하는 데 사용됩니다.적용되면 좀비는 태그된 캐릭터에 순종적으로 됩니다. |