카테고리 없음

TPS 캐릭터 만들기 - 대검 공격 (콤보 공격)

빛개구리 2023. 9. 26. 22:31

.

 

*언리얼엔진5를 배우며, 졸업작품을 만들며 제작하는 내용을 작성하는 블로그입니다.

공부 내용을 적는 곳이므로 틀린 것이 매우 많을 수 있으며, 피드백 달게 받겠습니다 매우 환영합니다!
*현재는 프로토 타입일 뿐이라 최종 결과와는 많이 다를 수 있습니다!

3인칭 슈터 게임의 캐릭터이지만, 근접 무기와 그에 따른 공격 시스템도 기획되어서 관련하여 제작을 해보았다.

 

참고영상은 따로 없이 직접 만든 것으로,

전체적인 실행 결과는 아래 이미지와 같다.

대검의 경우 콤보 공격으로 3회까지 공격이 가능하도록,
1, 2타는 경직, 3타는 다운 상태이상을 주어 이동을 불가능하게 만들고
오른쪽 캐릭터가 대검의 3타공격을 하게 하여 다운되는 모습을 보여주는 이미지이다.

 

대검 장착시키기

먼저 캐릭터에게 사용한 대검 에셋은 Sketchfab.com 에서 다운받았고 다음과 같은 과정을 통해 장착시켰고,

https://sketchfab.com/3d-models/sword-of-artorias-298e29d014374a87b85b3bcdaa07a5ce#download

 

*캐릭터 내부에서 작동하는게 아니라 ActorComponent로 만들고 해당 컴퍼넌트를 추가시켜 Get Owner를 이용했다.

언리얼엔진 내부 모델링 모드를 통해 Pivot 위치를 바꾸고 캐릭터의 손에 Socket을 만들어 장착시켰다.

 

근접 콤보 공격 시스템

로직에 대해서는, 먼저 Left Click에 대한 클릭 시간을 저장하는 float 변수를 활용한다.

 

LastClickTime이 -1이면 현재 공격이 적용되고 있는 것으로 판단하고,
공격이 적용되고 있지 않다면, 현재 시간 - Last Click Time을 통해 타수를 판단하여 진행한다.

 

다음으로 PlayComboAttack은 공격을 진행시키는 부분인데,

ComboCount 값이 현재 내 캐릭터의 콤보 단계를 두는 int 변수이다

GreatSwordComboAnimMontage는 int-AnimMontage Map 자료구조로,
현재 내 콤보 단계에 따른 애님 몽타주가 연결된 변수이다.

 

따라서 함수의 진행 방향은
1. Play Montage를 통해 해당 컴퍼넌트를 가진 캐릭터 메쉬에게 현재 콤보 단계에 맞는 AnimMontage를 재생시킨다.
2. 재생 시키자마자 LastClickTime 값을 -1로 바꾸고

3. 해당 애니메이션 몽타주가 BlendOut 되는 타이밍에 LastClickTime의 값에 현재 게임 시간을 담아준다.
*콤보 카운트를 int-AnimMontage Map을 활용하여 두었기에 타수를 조절하기도 매우 쉽다.

 

진행된 결과는 다음과 같이 나온다.

 

공격 판정

Anim Montage를 보면 다음과 같이 Anim_Notify가 있는데,

이를 Animation Blueprint에서 

해당 Notify에 공격범위 체크를 하여 해당 액터들에게 피해를 주는 방식이다.
현재는 아직 HealthComponent를 만들기 전이라 ApplyDamage에 대한 부분은 없다.

또한 이미지 내에 보이는 Do Stiffness는 경직을 주는 Blueprint Interface로, 3타에는 해당 부분에 다운 상태이상을 주도록 하는 함수를 사용했다.

 

경직 & 다운

다음과 같이 Do Stiffness 와 Do Down 함수로 해당 액터에게 경직 / 다운을 주는 Blueprint Interface이다.

 

경직의 경우 시간을 지정해줄 수 있는데, 2라는 숫자를 넣으면 Play Rate를 0.5로 진행하여 1초(30프레임)의 애니메이션을 2초(30프레임)으로 적용시키는 방식이다.

Motion Warping을 통해 경직 상태이상시 뒤로 살짝 밀리게 만들게 될 수 있어 노드를 남겨놓았다.

 

다음으로 다운 상태이상에 대해서는,

Motion Warping을 통해 상대 플레이어를 날려버리는 느낌을 줄 수 있도록 하였다.

또한 MotionWarping에서 Z축의 이동을 가할 때 플레이어 캐릭터의 Character Movement Mode가 Flying이 아니면 적용되지 않는 현상이 있어, 해당 모드를 변경해주는 것도 추가되어있다.

 

현재는 대검에 대해서만 제작하였지만, 최종 결과로는 단검과 장검 두 가지에 대해서도 추가하며,

TPS게임의 핵심인 총 공격도 진행할 예정이다.