초보 코린이의 성장 일지

UE4 몽타주 사용, 캐릭터 콤보 본문

언리얼

UE4 몽타주 사용, 캐릭터 콤보

코오린이 2023. 1. 5. 16:29

공격 모션과 콤보를 넣기 위해 몽타주를 생성해서 활용할 것이다.

우선 캐릭터 공격 모션을 몽타주로 생성부터 해야한다.

애니메이션을 찾아 오른쪽 마우스를 누른 후 -> 생성 ->애님몽타주 생성을 클릭한다.

그럼 위와 같은 몽타주 모션이 생성이된다.

 

그리고 사용할 공격버튼을 설정해준다.

 

몽타주는 캐릭터안에 플레이 시켜주는 기능을 가진 Play Anim Montage가 있다. 생성해준다.

2번째 Anim Montage에서는 플레이 시킬 애니메이션 동작으로 설정을 바꿔준다.

In Play Rate는 속도를 나타낸다.

 

만든 몽타주 애니메이션을 들어가면 다른 노티파이만 있던 부분과 달리 몽타주라는 설정이 존재한다.

이뜻은 이 구간에서 실행하라고 지정이 가능하다.

 

위에 DefaultSlot로 설정되어 있기 때문에 애니메이션 구간중간에 만들어 놓은 DefaultSlot 슬롯을 넣어주고 이어준다.

이러면 공격 동작이 가능해지게 된다. 이렇게 동작이 이뤄지면 칼을 뽑기전에도 공격모션이 나온다 하지만 칼을 뽑고나서 공격이 이뤄지도록 설정해 볼 것이다.

 

Equipped를 변수를 사용해 칼을 뽑았을때만 조건을 주면 칼을 든 상태만 공격이 가능해지게 바뀐다.

하지만 이렇게하면 공격모션이 끝나기도 전에 마우스를 계속 누른다면 계속 공격모션이 다시 시작된다. 그럼 이상하기 때문에 공격키를 누르고 모션이 끝나야 다음으로 나가게끔 만들어줘야한다.

Attacking 변수로 조건을 넣어 연결해 준다면 이제 원하는 동작이 나오게된다. 하지만 또 문제는 한번 동작을 하고 나서는

Attacking가 다시 바뀔수가 없기 때문에 한번만 공격을 휘두르고 모션을 할 수 없게된다. 이때는 어제와 같이 노티파이를

생성해서 애니메이션을 다시 시작하게끔 만들어주면 된다.

 

노티파이 들어가서 함수 콜 Begin Action 해준다.

똑같이 끝났다는 표시인 End Action또 한 함수 콜 해준다.

애니메이션 구간을 지정해준다.

 

이제 걸으면서, 뛰면서도 공격이 자연스레 가능하도록 만들어 줄 것인데, 지금대로만 한다면 부자연 모습이 나온다. 상체하체가 따로 이상한 모양으로 움직이는데 이걸 바로잡아줄 것이다. 블랜딩 포스라고 부르는 기능을 사용하여 관절을 통해 동작을 이어붙여 자연스레 만들어 볼 것이다.

 

방법은 기본적인 애니메이션과 섞을 애니멘이션이 필요하다.

 

임시로 동작을 저장할 캐시포즈를 만들어주고 Unaremd와 연결해준다.

 

이제 만들었다면 Unarmed Pose 캐시포즈를 사용 할 수 있는데 위에 Unarmed에서 저장했던 애니메이션을 가지고 쓸 수 있게 된다.

 

이제 섞어줘야 하기 때문에 중간 매개체를 하나 만들어준다.

 

Base Pose는 기본적인 걷기, 뛰기 동작 Blend Poses는 섞을 애니메이션을 연결한다. 캐시포즈는 2가지를 사용해야 하기 때문에 한개 더 만들어준다.

 

그리고 이제 만들어 연결한 레이어 블랜딩에 설정을 따로 해 줄 것이다.

 

 

Bone Name = 정해놓은 특정 부위 spine_01설정

Blend Depth = 0.5라면 반만 섞이고 1이라면 완전히 섞인다는 의미

Mesh Spact Rotation은 우선 체크해준다 설명은 나중에 할 것 이다.

배열은 한개더 만들어 주는데 첫번째 친구가 메인이 되는 것이다. 

 

UpperBody를 만들었기 때문에 오른쪽 위 세팅에서 슬롯을 변경해줘야한다. 그럼 몽타주 또한 바꿔줘야 한다.

 

몽타주 애니메이션에서도 변경해준다.

 

애니메이션이 섞인다는게 그 지점에서 각자가 움직인다고 생각 할 수 도 있는데 아니다 블랜딩이라는 뜻 그대로 동작은 2가지가 동시에 진행되지만 자연스럽게 섞인것일 뿐이다. 만약 뒤에 동작이 없다면 기본동작으로 변경되어 더 이상한 동작이 일어나게 된다.

 

이제 공격을 연달아 할 수 있게 만들어주는 콤보 구현을 해보겠다. 이벤트 그래프에서 동작들을 연결 시켜주는데 동작이 하나가 아닌 여러가지가 섞인 것이므로 만든 몽타주를 배열로 바꿔서 동작을 하나씩 이어서 처리할 것이다.

우선 몽타주의 관한 변수를 하나 만들어 주고 -> 변수 유형 옆에 칸을 눌러서 배열로 바꿔준다.

그리고 바로 아래에 몽타주 동작의 관해 3가지를 사용할 것이기 때문에 다 추가해준다.

 

이제 전체적인 구조를 만들어서 이어준다.

 

이제 Begin_Action에서 true면 다음 동작으로 가게끔 노드를 연결해 줄 것이다.

다음 동작으로 연달아 넘어가야 하기 때문에 Combo Index를 ++로 받아서 넘겨준다.

마지막으로 위 Play Anim Montage에 연결해준다.

 

이제 Index를 돌려줘야 배열이 0번으로 돌아오면서 다시 공격하면 콤보로 이어질 수 있게된다.

 

이제 노티파이도 알맞게 생성해 준다.

 

 

동작이 만약 끝까지 간다면 노티파이로 해줘야 하고 동작이 중간에 바뀌거나 끊기거나 한다면 State로 관리해줘야 한다.

 

 

노티파이를 들어가서 하나씩 설정해준다. 이제는 전에 내용처럼 똑같이 설정해준다 다만 그떄는 2가지 였지만 지금은 4가지인 이유는 아래와 같다

NotifyBegin = 시작

NotifyEnd = 끝나는 지점

NotifyTick = 매 순간마다 진행되면서, Begin과 End에 중간에서 일어날 애니메이션

 

NotifyBegin

설정하는 것 중 조금 다른게 있다면 Enable Combo를 ture로 바꿔준다는 것 뿐이다.

NotifyEnd

End에서는 Begin과 반대로 true를 해제해주면 된다.

 

공격 동작 1번인 노티파이에 들어와 노티파이 추가가 아닌 스테이트 추가를 눌러 방금전에 만들어 놓은 ANS_Combo를 추가해준다.

 

그러면 이렇게 나오게 되는데 적당한 지점에 놓아준다.

 

동작이 부드럽게 이어 질 수 있도록 적당한 위치에 노티파이들을 셋팅해준다.

2번째 동작도 자연스럽게 이어지도록 위와 동일하게 설정

3번째 동작도 똑같이 설정 근데 3번째는 끝나는 애니메이션이기 때문에 더 이상 이어질 동작이 없다. 중간에 Begin_Actio는 전부 다음 동작을 넘긴다는 뜻이다.

위에서 설정한 노티파이들은 전부 슬롯은 UpperBody로 바꿔주면 된다.

 

약간 디테일하게 콤보를 넣을때 점프가 되는 경우를 막기위해 조건을 넣어준다.

 

이제는 무기에 충돌체를 만들어서 물체와 충돌을 하게 만들 것이다.

 

장착하고 있는 칼에 들어가서 SteletaMesh를 선택후 Capsule을 생성해준다.

 

이제 충돌 기준을 잡고 수치를 설정해 칼끝에 맞춰준다. 손잡이 부분은 충돌이 필요가 없기 때문에 생략한다.

 

이제 다음은 이 충돌체와 충돌할 어느 객체를 설정하여 Collision을 하게 만들어 보게 될 것이다.

 

 

- 재미가 생기는 지점이지 않을까 조심스래 생각해본다.

- 이제 더 어려워 지겠지?

'언리얼' 카테고리의 다른 글

UE4 적과 충돌시 적 모션 변화  (0) 2023.01.09
UE4 충돌 및 적과 충돌  (0) 2023.01.06
UE4 무기 장착 및 모션  (0) 2023.01.04
UE4 캐릭터 동작 및 카메라  (0) 2023.01.02
UE4 캐릭터 움직이기  (0) 2022.12.30
Comments