본문 바로가기
Develop/Unreal Engine

[Unreal Engine] 애니메이션 몽타주를 이용한 공격 모션

by Tarra 2023. 2. 15.

 


개인 공부 후 자료를 남겨놓기 위한 목적이므로,
생략되거나 오류가 있을 수 있음을 알립니다.

 

 

1. 플레이어 캐릭터 생성하기

2. 플레이어 캐릭터에 움직임 추가하기

3. 애니메이션 블루프린트 생성 및 연결

4. 애니메이션 몽타주를 이용한 공격 모션

 

 

 


해당 문서는 애니메이션 몽타주를 이용한 공격모션에 대한 내용을 다룹니다.

 

 

 

 

💡애니메이션 몽타주란?

애니메이션 몽타주는 폭 넓은 애니메이션 이펙트가 가능해지는 다목적 툴로, 주로 코드나 블루프린트 안에서 애니메이션 컨트롤을 노출시키는데 관련되어 있다. 보통 애니메이션의 지능형 루프, 로직 기반 애니메이션 전환, 루트 모션 핸들링, 기타 여러가지 다양한 애니메이션 이펙트를 만드는 데 사용한다. 예를들면 총의 재장전의 경우 시작 - 장전 - 루프의 3가지 단계로 나누어지며 이를 하나의 애니메이션 시퀀스를 가지고 섹션별로 구역을 나눠 더욱 자연스럽게 표현하는 방식이다.

 

 

 

앞선 문서에서 고블린의 공격 모션을 추가할 예정이다.

 

Undead Pack 의 고블린은 공격모션이 2가지가 존재하므로, 이를 이용하여 2가지 콤보를 가진 공격 모션을 만들어보도록 하자.

 

Content 폴더로 이동해 , 추가/임포트애니메이션 몽타주 를 클릭한다.

 

 

고블린에 대한 몽타주를 만들 것이므로 스켈레톤은 고블린을 선택한다.

 

 

애니메이션 몽타주는 다음의 공간을 중점적으로 사용하게 된다.

 

 

고블린의 2가지 공격모션 중, 먼저 Anim_Attack1 을 끌어와 위의 공간에 놔둔다.

 

 

몽타주를 생성하기전, 2가지 개념에 대하여 알고가도록 하자.

 

 

 

 

💡노티파이

노티파이는 알려주다라는 뜻을 가진 단어로,

우리는 노티파이를 통해 애니메이션의 특정 지점에 이벤트를 발생시킬 수 있다.

예를 들면 재장전 몽타주를 만든다고 할때, 장전시 특정 지점에 탄피가 나가게 하거나, 재장전 사운드를 재생하는 등의 이벤트를 발생시킬 수 있다.

 

 

 

 

 

 

 

💡슬롯

몽타주 안에서 슬롯은 애니메이션을 몇이든 담을 수 있는 트랙이다.

슬롯 이름은 아무렇게나 지은 뒤, 그 이름을 사용하게 되며, 그 안의 다른 애니메이션에 블랜딩할 수 있다.

재장전 몽타주를 예로 들면, 플레이어가 서있거나 엎드려있을때 다양한 재장전 버전을 만들어 둘 수 있고,

이 경우에 해당 몽타주 내 별도의 슬롯에 각각에 대한 애니메이션을 넣어놓고 관리할 수 있게 된다.

 

 

다음과 같은 상태에서 우리는 노티파이를 활용해 콤보 시스템을 만들어 볼 것이다.

 

대략 25프레임과 35프레임 정도에 우클릭을 하여 노티파이를 생성해보도록 하자,

 

 

다음과 같이 2가지 노티파이를 생성한다.

 

 

이후 슬롯을 추가하여 해당 몽타주를 특정한 한곳에 넣어준다.

 

 

같은 방법으로 2번째 공격 모션에 대한 몽타주 또한 만들어준다.

 

해당 문서에서는 다음과 같은 이름의 두가지 공격모션에 대한 몽타주를 만들어주었다.

 

 

이제 몽타주가 준비되었으니 BP_MyCharacter 로 넘어가 공격 입력에 대한 이벤트를 만들어주자.

 

공격 상태와 몇번째 콤보인지를 확인하기 위해 다음과 같은 변수를 추가해준다.

 

 

이후 이벤트를 만들어준다.

 

 

 


💡 이벤트가 발생 중인 것을 애니메이션에 넘겨주기 위해 이벤트 디스패처에 Attacking 이라는 이벤트 변수를 추가해준다!


공격버튼에 대한 로직을 만들어주었으므로, 이제 해당 이벤트에 대한 애니메이션 움직임을 추가해주어야 한다.

 

따라서 BP_MyAnimation 을 열어주도록 하자.

 

다음과 같이 BP_MyCharater 에 맞추어 애니메이션 이벤트를 만들어준다.

 

 

 

이후, AnimGraph 에서 스테이트 머신과 최종 애니메이션 포즈 사이에

 

몽타주를 만들 때, 설정해놓은 슬롯을 등록해주면 간단하게 공격모션을 만들 수 있다.

 

 

 

공격 모션이 잘 작동하는 모습.