UE5/Lyra Clone Coding

[UE5] GameFeature

검정색필통 2025. 2. 7. 01:03

GameFeature

 

GameFeature 시스템은 Unreal Engine의 Modular Gameplay 시스템에서 제공하는 기능 중 하나로, 게임의 특정 기능이나 콘텐츠를 동적으로 로드하고 관리할 수 있도록 도와주는 시스템이야. 이를 활용하면 게임의 핵심 로직을 독립적인 모듈로 구성하고, 필요할 때 활성화하거나 비활성화할 수 있다.

 

GameFeature는 언리얼에서 추구하는 모듈화의 끝판왕이라고 볼 수 있다.

 

핵심 개념

 

  • 독립적인 기능 모듈
    • 특정 게임 기능(예: 새로운 무기 시스템, UI 확장, 캐릭터 능력 추가 등)을 별도의 모듈로 제작 가능.
    • 기능을 독립적으로 개발하고 관리할 수 있음.
  • 동적 로드 가능
    • 특정 상황에서만 로드하거나, DLC처럼 선택적으로 활성화 가능.
    • 예를 들어, PvP 모드는 멀티플레이어 전용 기능이므로, 필요할 때만 로드할 수 있음.
  • Gameplay Ability System(GAS)과 연동 가능
    • Gameplay Effect, Gameplay Ability, Gameplay Cue 등을 GameFeature에서 정의하고, 필요할 때 불러올 수 있음.
  • 플러그인 기반 관리
    • GameFeature는 기본적으로 플러그인(.uplugin) 형식으로 제작됨.
    • 게임의 기본 실행 파일을 변경하지 않고도 기능을 추가하거나 제거할 수 있음.

Plugins->Game Feature
Add -> Game Feature (wtih C++)

 

를 통해 ShooterCore라는 GameFeature를 생성해주면 Plugins->GameFeature 폴더에 ShooterCore C++파일이 생성되고,

GameFeatureData를 상속받는 DataAsset이 생성된다.

 


상태

  • Installed - 플러그인이 설치됨.
  • Registered - 게임 내에서 사용 가능함.
  • Loaded - 메모리에 로드됨.
  • Activated - 실제로 활성화됨.

ShooterCore DataAsset

Active상태에서는 등록된 Action이 실행된다.

예를 들어 특정한 시간동안 발생되는 이벤트가 있을때, 그 시간동안만 GameFeature를 켜고 시간이 지난 후 끄는 방식으로 사용할 수 있다.

 

Primary Asset Types to Scan의 경우 등록을 하면 AssetManager에 스캔이 등록된 것과 같은 효과가 난다.

GameFeature가 필요없어져 지워버리면 스캔 목록도 같이 없어져서 관리가 매우 쉬워진다.