라이라 인벤토리 및 장비
인벤토리(Inventory) 는 소지한 아이템 컬렉션을 가리키는 말이지만, 배낭 등의 컨테이너에 감추는 경우처럼 숨길 수도 있습니다.
장비(Equipment) 는 컨테이너나 배낭에서 꺼내서 손에 들거나, 입거나, 사용하는 아이템입니다.
예를 들어, 한 플레이어 캐릭터에게 소총 아이템이 주어졌다고 가정해 보겠습니다. 처음에 이 소총은 탄약과 함께 플레이어의 인벤토리에 가상으로만 존재합니다. 그리고 무기 교체 버튼을 누르면 소총이 장착됩니다. 이 소총은 캐릭터 손의 3D 메시로 표현되며, 여기에 소총의 발사 및 재장전 기능이 추가됩니다.
아래 표에는 인벤토리와 장비 사이의 주된 차이점이 나와 있습니다.
| 카테고리 | 인벤토리 아이템 | 장비 아이템 |
|---|---|---|
| 시각화 | 유저 인터페이스(UI)에서 또는 인게임 픽업용으로 아이콘이 사용됩니다. | 사용 중에 눈에 보이는 액터가 스폰되고, 흔히 소유자에게 어태치됩니다. |
| 수명 | 소유자가 보유하는 내내 인스턴스가 유지되고, 드롭 시 파괴됩니다. | 아이템을 장착하면 인스턴스가 생성되고, 장착 해제 시 파괴됩니다. |
| 게임플레이 | 게임플레이 태그 스택을 사용하여 스테이트가 유지됩니다. | 장착/장착 해제 사이클 간에 스테이트가 유지되지 않습니다. 장착 시 능력 세트를 부여할 수 있습니다. |
| 소유권 | InventoryManagerComponent의 컨트롤러가 소유합니다. | EquipmentManagerComponent의 폰이 소유합니다. |
| 네트워크 리플리케이션 | 서버 및 자율 프록시에만 해당됩니다. | 서버, 자율 프록시, 시뮬레이션된 프록시에 해당됩니다. |
| 데이터 정의 | 확장 가능한 인벤토리 프래그먼트를 바탕으로 구성됩니다. | 데이터 프로퍼티로 제한됩니다. |
| 연결 | 보통 아이템 정의에 연결된 장비 정의가 지정되어 있습니다. | 장비 정의는 인벤토리 정의를 참조하지 않습니다. |
| 명명 규칙 | 접두사 'ID_'를 사용합니다(ID_Rifle). | 접두사 'WID_'를 사용합니다(WID_Rifle). |
인벤토리
인벤토리 아이템은 획득하거나 주울 수 있는 오브젝트입니다. 인벤토리 프래그먼트(Inventory Fragments) 배열을 통해 게임플레이와 프레젠테이션에 영향을 미칩니다. 프래그먼트는 게임플레이 태그를 통해 소유자의 통계를 변경하거나, 인벤토리 UI에 표시되거나, 아이템을 장착시킬 수 있습니다.
인벤토리 아이템 프래그먼트
라이라에는 인벤토리 아이템에 적용할 수 있는 다양한 프래그먼트가 있습니다.
| 인벤토리 프래그먼트 | 설명 |
|---|---|
| InventoryFragment_PickupIcon | 픽업 준비가 된 아이템의 월드 내 표현 방식을 결정합니다. |
| InventoryFragment_EquippableItem | 이 인벤토리 아이템에 소유자가 아이템을 장착했을 때 사용되는 장비 정의를 연결합니다. |
| InventoryFragment_SetStats | 탄약 등을 픽업했을 때 게임플레이 태그 기반 스택 세트를 부여합니다. |
| InventoryFragment_QuickbarIcon | 플레이어의 퀵바 UI에서 슬롯을 차지하는 아이템에 사용되는 HUD 아이콘을 결정합니다. |
| InventoryFragment_ReticleConfig | 이 인벤토리 아이템을 장착할 때 인스턴스화할 대체 HUD 십자선 클래스를 지정합니다. |
새 프래그먼트 타입을 구현하여 라이라의 인벤토리 프래그먼트 아이템 이펙트를 커스터마이징할 수 있습니다.
아이템 픽업
ALyraWeaponSpawner 클래스에는 픽업이 인벤토리 아이템과 함께 작동하는 방식의 예시가 포함되어 있습니다. 이러한 아이템은 라이라의 슈터 맵에서 B_WeaponSpawner (무기 픽업용) 및 B_AbilitySpawner (체력 픽업용) 인스턴스로 사용됩니다.
장비
장비 는 플레이어가 장착할 수 있는 아이템으로, 게임플레이의 시각적 요소, UI를 변경하거나, 패시브 또는 액티브 능력을 부여할 수 있습니다. 보통 장착한 아이템은 인벤토리 아이템을 바탕으로 인스턴스화됩니다.
인벤토리 아이템과 달리 장비 아이템은 장착했을 때만 존재합니다.
UI와의 관계
퀵바
퀵바 는 무기와 같이 장착 가능한 인벤토리 아이템이 표시되는 플레이어 HUD 영역입니다. 퀵바의 디스플레이에는 아이템의 인벤토리 프래그먼트 정보가 사용되고, 탄약 상태에는 인벤토리 인스턴스의 통계 태그가 사용됩니다.
다양한 퀵바 슬롯을 선택하면 플레이어 인벤토리의 무기가 장착되거나 해제됩니다.
구현과 관련된 자세한 내용은 W_QuickBar 및 W_QuickBarSlot 위젯 블루프린트를 참조하세요.
커스텀 십자선
다양한 아이템을 장착하면 플레이어의 HUD가 변경될 수 있습니다. 예를 들어, 권총의 십자선은 집중 사격을 위해 만들어졌지만, 산탄총의 십자선은 여러 히트 위치를 폭넓게 시각화하기 위해 만들어졌습니다.
십자선은 아이템의 인벤토리 아이템 정의에 있는 프래그먼트에서 지정됩니다. W_ShooterHUDLayout 및 W_WeaponReticleHost 위젯 블루프린트를 참조하세요.
주요 인벤토리 타입
| 타입 | 노트 |
|---|---|
| InventoryManagerComponent |
|
| InventoryItemDefinition(에셋) |
|
| InventoryFragment | 아이템의 유형을 설명하는 선택적인 데이터 청크입니다. 보통 하나의 아이템에 여러 개가 있습니다. |
| InventoryItemInstance |
|
| PickupDefinition(에셋) |
|
주요 장비 타입
| 타입 | 노트 |
|---|---|
| EquipmentManagerComponent |
|
| EquipmentDefinition(에셋) |
|
| EquipmentInstance |
|
| AppliedEquipmentEntry |
|
| RangedWeaponInstance/WeaponInstance | 타입별 내부 기록을 처리하는 특수한 EquipmentInstance입니다. |
라이라 외 활용
라이라에 있는 아이템은 인벤토리 및 장비 표현이 모두 있지만, 시스템은 독립적으로 작동할 수 있습니다.
예를 들어, 마법의 행운 부적처럼 방어 보너스를 부여하는 아이템이 플레이어에게 주어졌다고 가정하겠습니다. 이 아이템에는 HUD 아이콘을 지정하는 인벤토리 정의와 소유자에게 보호 게임플레이 이펙트를 적용하는 새로운 프래그먼트 타입이 있을 수 있습니다. 이는 장착할 필요가 없는 패시브 이펙트이므로 장비 아이템 정의가 필요하지 않습니다.