Post

UE - 팀프로젝트-2

UnrealEngine, TeamProject2

UE - 팀프로젝트-2

오늘 목표는 캐릭터에게 총을 쥐여주는 것이었다.

필요한 것들

아이템의 정보

아이템의 정의를 정의하는 ItemDefinition, 추가로 장착이 가능한 아이템에게 필요한 WeaponDefinition 을 정의했다.

아이템의 실체화

정보를 가지고 실제 아이템을 만들었다.
ItemInstanceEquipmentInstance를 생성해줬다.
ItemInstance는 아직 ItemDefFragment를 저장하는 기능만 있다.
EquipmentInstance는 장착이 가능하기에 슬롯의 이름과 트랜스폼을 가지고 캐릭터에 부착할 수 있는 기능을 추가해줬다.
물론 EquipmentInstance를 상속해서 무기 기능을 추가한 WeaponInstance와 총기에서 필요한 속성을 추가한 RangedWeaponInstance 만들어줬다.

아이템 관리와 생성

아이템의 관리와 생성은 3가지 컴포넌트가 관리한다.
InventoryItemManagerItemDef를 받아서 ItemInstance를 생성한다.
QuickBarItemInstance를 받아서 슬롯에 등록해준다.
EquipmentManager는 QuickBar`의 현재 활성화된 슬롯의 아이템을 정보를 받아 활성화해준다.

흐름

플레이어는 시작할 때 InitialItemDefinition을 가지고 있다.
이 데이터들로 아이템을 생성해주고, 퀵바에 등록해준다.
퀵바에 등록된 아이템은 키보드 인풋으로 퀵바의 슬롯을 활성화한다.
활성화 할 때마다 전 아이템의 Unequip, 활성화할 아이템의 Equip을 활성화한다. (여기서 캐릭터에 액터를 붙여준다.)

Pistol 예시

ItemDef, EquipmentDef, RangedWeaponInstance 생성, 그리고 부착할 액터인 B_Pistol을 생성해줬다.

플레이어에게 시작 시 생성할 아이템들의 Definition을 넣어준다.

이 데이터로 IventoryItemManager에서 아이템을 생성, QuickBar에 등록한다.

이렇게 생성하고, 슬롯을 활성화한다.

Pistol ItemDef

추가적으로 들어갈 데이터가 더 있지만, 우선 액터에 장착하기위한 Fragment를 추가해줬다.

Pistol EquipmentDef

여기선 소켓과 슬롯을 정해주고, 인스턴스 타입을 정해준다.

Pistol Instance

장착, 해제할 때 몽타주와 총알을 쏠 때 사용할 속성들을 가진다.

결과

This post is licensed under CC BY 4.0 by the author.