Make Unreal REAL.
article thumbnail
Advanced Unreal Engine 5 Multiplayer Gameplay Programming

 

Gameplay Abilities 플러그인을 활성화한다.

 


새로운 Include Path를 추가하고, GAS 관련 모듈을 함께 컴파일하도록 한다.

  • "프로젝트명/"를 Inclue Path에 추가해주면, 새로운 C++ 클래스를 하위 폴더에 생성한 경우에도 정상적으로 헤더가 포함되어 오류가 발생하지 않는다.

 

새로운 게임 인스턴스를 생성하고 Project Settings에서 설정해준다.

 

 

Init() 함수를 오버라이드해, GAS의 전역 데이터를 초기화시키는 부분을 작성한다.

 


새로운 Ability System Component를 생성한다.

 


새로운 Attribute Set을 생성한다.

 

 

Attribute Set에 헤더를 추가한다.

 

Ctrl 키를 누른 상태에서 AttributeSet.h 헤더를 클릭해 헤더 파일로 이동한다.

 

 

AttributeSet.h에서 Accessor로 검색하면 참고용 템플릿 코드 코드가 뜬다.


AG_AttributeSetBase.h에 복사 붙여넣기해 가져온다.

 

 

현재 체력, 최대 체력 속성을 추가해준다.

  • ATTRIBUTE_ACCESSORS(클래스명, 변수명) 매크로를 지정해주어야 한다.

 

 

Gameplay Effect가 실행되어 속성의 값이 변경된 직후 호출되는 PostGameplayEffectExecute() 함수를 오버라이드 해준다.

 


헤더를 포함하고 구현부를 작성한다.

 


캐릭터 클래스로 이동해 헤더를 추가하고 클래스 전방 선언을 미리 해준다.

 

 

필요한 함수, 기본값, Ability System Component, Attribute Set을 선언한다.

  • PossessedBy() 함수는 서버에서 초기화 시 사용된다.
  • OnRep_PlayerState() 함수는 클라이언트에서 초기화 시 사용된다.
  • ApplyGameplayEffectSpecToSelf() 함수는 컴포넌트에 이펙트를 적용하는 UAbilitySystemComponent::ApplyGameplayEffectSpecToSelf() 함수의 래퍼 함수다.
  • InitializeAttributes()
    속성 값들을 초기화하는 함수다.
  • ApplyStartupEffects
    초기 이펙트를 적용하는 함수다.
  • GiveAbilities()
    기본 능력을 부여하는 함수다.

 

 

헤더를 포함시켜준다.

 


생성자에서 Ability System Component와 Attribute Set을 생성해준다.

EGameplayEffectReplicationMode

  • Minimal
    최소한의 Gameplay Effect 정보만 복제한다.
  • Mixed
    소유자에게는 모든 Gameplay Effect 정보를 복제하지만, Simulated Proxy에게는 최소한의 정보만 복제한다.
  • Full
    모든 Gameplay Effect 정보를 복제한다.

 


함수들을 구현해준다.

 

 

헤더를 포함하고 IAbilitySystemInterface 인터페이스를 추가한다.

 

Ctrl 키를 누른 상태에서 AbilitySystemInterface.h 헤더를 클릭해 이동해보면, GetAbilitySystemComponent() 순수 가상 함수를 구현해야 함을 알 수 있다.

  • Ability System Component를 가져오는 전역 함수이다.

 


GetAbilitySystemComponent() 함수를 구현한다.

 


Editor Preferences - Level Editor - Play - Multiplayer Options - Run Under One Process 옵션을 해제한다.

  • 작은 프로젝트에는 적합하지 않지만, 멀티 플레이어에서는 쓰면 좋다.
  • 멀티 프로세스라는 복잡한 상황에서 실행되므로 버그를 찾기 쉽다.

 


플레이어를 2명 이상으로 설정하고, Client나 Listen Server로 플레이한다.

 

 

아직 눈에 보이는 것은 없지만, 초기 설정은 와료되었다.

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그