1. 구울(Ghoul)

(1) 메시 지정, 무기 소켓 이름 지정, 피격 반응 몽타주 지정

메시의 각도를 지정하여 X축과 맞게 설정한다.

 

 

(2) 블렌드 스페이스 생성

구울의 스켈레탈 메시를 이용한 BS를 생성한다.

Idle과 Walk 애니메이션을 배치해 걷는 모션을 생성한다.

 

 

(3) 애니메이션 블루프린트 생성 후 블렌드 스페이스 지정

ABP_Enemy를 상속받는 애니메이션 블루프린트를 생성하고 방금 생성한 블렌드 스페이스를 지정한다.

 

 

(4) 블루프린트에서 애님 클래스 지정

 

 

(5) 디버그

이제 테스트를 실행하면 구울이 캐릭터를 잘 따라옴에 불구하고 오류가 발생한다.

이는 재생할 공격 몽타주가 없기 때문이다.

해당 블루프린트 그래프로 들어가서 Branch 노드를 배치한다.

공격 몽타주가 없을 때 어빌리티를 종료한다.

 

 

2. 몬스터의 이동속도 블루프린트에서 지정하기

몬스터의 이동속도는 AuraEnemy 클래스에 BaseWalkSpeed로 지정되어있다.

EditAnywhere를 추가하여 블루프린트에서도 수정 가능하도록 한다.

 

 

3. 구울 공격 애니메이션

(1) 모션 워핑

노티파이 스테이트에서 모션 워핑을 추가하고 워프 타겟 이름, 트랜스레이션 off, 회전 타입 Facing으로 지정한다.

 

 

(2) 공격 이벤트

이전의 애님 노티파이를 이용하고 이벤트 태그를 Montage.Attack.RightHand로 지정한다.

 

 

(3) 공격 몽타주 배열에 추가

몬스터의 블루프린트에서 몽타주와 태그를 할당한다.

 

 

4. 공격 몽타주 디버그

PlayMontageAndWait 노드를 통해 몽타주가 재생되고 Gameplay Event를 기다리고 있을 때 Random Integer in Range에 의해 PlayMontageAndWait 노드가 다시 실행되면서 공격 몽타주가 씹히는 버그가 발생한다.

 

(1) 블루프린트 그래프 수정

기존에 Get으로 얻은 몽타주를 분해하지 않고 로컬 변수로 승격 후 해당 변수를 분해하여 사용한다.

 

 

(2) 구울의 공격

구울의 공격 몽타주가 정상적으로 재생되지 않는 버그는 PlayMontageAndWait의 Stop when Ability Ends의 체크를 해제하여 해결할 수 있다.

이어서 공격 애니메이션에 대한 모션 워프를 조정한다.

몬스터가 정상적으로 캐릭터를 바라보지 않는 것은 모션 워핑이 정상적으로 작동하지 않기 때문이다.

몬스터의 애니메이션이 루트 모션으로 지정되어있는지 확인한다.

 

 

(3) GA_MeleeAttack - 몬스터가 피격 이후 공격을 하지 않음

게임플레이 어빌리티가 Interrupted 된 이후에 아무런 노드가 연결되어있지 않기 때문이다.

 

 

(3-1) GA_HitResult에 근접 공격 중단되도록 설정

Cancel Abilities with Tag에 Abilities.Attack 태그를 추가하면 GA_HitReact 어빌리티가 발동될 때 해당 태그를 가진 어빌리티를 강제로 취소한다.