0. 개요

테스트를 통해 창 고블린이 공격하면 사운드와 혈흔 효과를 발생시키는 것을 확인했다.

그러나 멀티플레이 환경에서 확인하면 클라이언트에게서 사운드와 효과가 발생하지 않는 것을 발견했다.

이런 문제를 해결하기 위해 게임플레이 큐를 이용하여 이펙트를 출력하도록 한다.

 

1. 게임플레이 큐(Gameplay Cues)

(1) 사운드와 이펙트 출력을 위한 게임플레이 큐 생성

GameplayCueNotify_Static을 상속받는 블루프린트를 생성한다.

해당 클래스는 지속적인 Tick이나 Update를 필요로 하지 않고 한 번만 생성되고 사라지는(Burst) 이펙트에 적합하다.

 

 

(2) On Execute 함수 오버라이드

게임플레이 큐가 실행되면 작동하는 함수인 On Execute를 오버라이드 한다.

기본적인 형태는 위와 같다.

여기에서 파라미터 핀을 분해한다.

이 중의 일부의 값은 자동으로 채워지지만, 일부는 수동으로 채워야 한다.

임시적으로 사운드와 이펙트를 지정하고 Location을 가져와 연결한다.

 

 

(3) 게임플레이 큐에 대한 게임플레이 태그 생성

게임 내 속성(Attributes)에 관련된 것이 아니고 중요도가 높지 않으므로 프로젝트 설정에서 태그를 생성할 수 있다.

생성한 태그를 게임플레이 큐의 클래스 디폴트에서 지정한다.

게임플레이 큐에 지정하는 게임플레이 태그는 오직 GameplayCue 계열의 게임플레이 태그만 지정할 수 있다.

(다른 게임플레이 태그는 보이지 않는다)

 

 

(4) 게임플레이 태그로 GC_MeleeImpact 게임플레이 큐 실행하기

Execute GameplayCue WithParams On Owner 노드를 사용하여 태그를 호출하면 게임플레이 큐를 실행할 수 있다.

파라미터는 분해하여 넘겨줄 정보를 파라미터로 넘겨준다.

이후 테스트를 하면 기존의 사운드와 이펙트를 재생하는 노드가 없어도 사운드와 이펙트가 적절히 실행되는 것을 볼 수 있다.

 

 

(5) 타겟의 혈흔 효과 가져오기

이제 몬스터의 타겟인 Aura 캐릭터를 가져와 게임플레이 큐에 소스로 넘겨주면 게임플레이 큐에서 사용할 수 있다.

 

 

(6) GC_MeleeImpact 블루프린트 수정

이제 파라미터를 가져와 소스의 함수를 실행할 수 있다.