본문 바로가기
Unreal Engine/[Inflearn_rookiss] UE5 Lyra 분석

19. Weapon 구조 설계 및 Weapon AnimInstance Migrate

by 헛둘이 2024. 11. 12.

오늘은 Weapon의 구조를 잡아나가는 과정을 진행했습니다.

Lyra의 Weapon은 상속을 통해 점점 구체화되는데, 아래와 같은 계층을 가집니다.

Equipment는 Weapon 뿐만 아니라 갑옷이나 투구와 같은 장비를 포함하는 범용적인 개념으로 이해했고,

Weapon은 그 중 하나로써 무기를 의미합니다.

그리고 이번 프로젝트에서 구현할 Pistol은 바로 RangedWeapon에 들어가게 됩니다.

(사실 FPS 장르라 대부분의 무기들은 Ranged로 구현됨..)

 

무기에는 애니메이션이 있을 것이며, 무기별로 애니메이션이 달라야 합니다.

또한 무기가 변경됨에 따라 애니메이션이 달라질 수 있지만, 무기가 변경되지 않아도 애니메이션이 달라져야 하는 경우가 있을 수 있습니다. (게임으로 친다면 과금을 통한 애니메이션 스킨 등..)

 

그래서 WeaponInstance는 이런 니즈를 충족하기 위해 AnimLayerSelectionSet이라는 구조체를 들고 있습니다.

AnimLayerSelectionSet은 멤버로 AnimLayerSelectionEntry라는 구조체를 TArray로 들고 있는데,

 

AnimLayerSelectionEntry는 하나의 레이어 단위로, AnimInstance를 멤버로 들고 있습니다.

 

AnimLayerSelectionSet은 여기서 GameplayTag를 이용해 특정 애니메이션들만 필터링하여 사용하는 것으로 이해했습니다.

(만약 총과 방패를 들고 있다면 두 애니메이션만 필터링하여 가져옴)

 

WeaponInstanceEquippedAnimSet을 멤버로 들고 있어서 니즈에 유연하게 대응될 것입니다.

 

이 또한 사실 진도가 나가지 않은 부분이라 아직은 추측일 뿐이지만... 이렇게 이해하고 넘어간 후에 나중에 '내가 생각했던 것과 다르네?' 하며 수정해나가고... 그런 과정들도 나름 의미가 있지 않을까 하는 생각입니다.

 

오늘 진도는 여기서 추가로 Lyra에서 Pistol에 대한 SkeletalMeshAnimInstance를 Migrate하여 가져온 후,

BP를 이용해서 Pistol과 WeaponInstance를 상속받는 B_Weapon_Pistol를 만드는 것까지 진행했습니다.

댓글