0. 개요

GAS를 위해 더 확장된 Latent(잠복성) 노드를 사용할 수 있다.

이러한 노드들은 비동기적(ASync)으로 실행이 가능하다.

이번 포스트에서는 이전에 생성한 게임플레이 어빌리티, GA_FireBolt를 이용하여 파이어볼트를 발사할 때 캐릭터가 발사 애니메이션을 실행하도록 한다.

 

 

1. 파이어폴트 애니메이션 적용

(1) 몽타주 재생 및 대기 노드(Play Montage And Wait)

기본적인 Play Montage 노드보다 확장된 기능을 제공하는 Ability - Tasks - PlayMontageAndWait 노드이다.

Play Montage의 기능을 포함하여 어빌리티의 종료 여부를 확인할 수 있는 기능이 있다.

 

 

(2) 몽타주 생성

애니메이션 재생을 위한 몽타주를 생성한다.

AM_Cast_FireBolt

접두사는 AM을 사용하고, 주문 애니메이션이기 때문에 미들네임은 Cast가 된다.

키 입력 후 애니메이션의 빠른 반응을 위해 다른 애니메이션과 섞이는 정도(블렌드 시간)을 조정한다.

 

 

(3) 게임플레이 어빌리티에 몽타주 적용(GA_FireBolt)

이제 적을 클릭하면 파이어볼트를 발사하는 애니메이션 몽타주가 실행된다.

 

 

2. 게임플레이 태스크

예로 사용한 PlayMontageAndWait 함수는 C++에서 정적 함수로 되어있으며, 매개변수를 가져와 오브젝트에 설정하고 반환하는 방식으로 되어있다.

또한 여러 델리게이트(중단, 취소, 완료 등)를 이용하여 콜백 함수를 실행하도록 되어 있다.

그런데 만약 PlayMontageAndWait 함수를 사용하여 어빌리티의 중단, 취소, 완료 이후가 아닌 몽타주 재생 중간에 파이어볼트가 나가게 하고 싶다면 어떻게 해야 할까?