클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

유저 캐릭터 애니메이션 만들기 4 - 무기 장착과 조준 애니메이션 추가 본문

게임 개발 공부/개인 프로젝트

유저 캐릭터 애니메이션 만들기 4 - 무기 장착과 조준 애니메이션 추가

huenuri 2024. 8. 25. 14:54

오늘은 애니메이션 작업을 하기가 좀 싫기도 하지만 이 마음을 이기며 한 가지라도 작업을 완료해보려고 한다. 무기를 장착하고 칼을 휘두르는 애니메이션이 적용되는 실습들을 해보며 아직 잘 안되는 부분의 문제점을 찾아볼 것이다.

지금 만드는 유저 캐릭터의 주 무기는 칼과 활로 설정하였다. 활은 에셋을 구입해야 해서 추가하지 못했는데, 입력 키를 누르면 칼과 활, 다른 무기 등으로 교체할 수 있는 부분까지 만들고 싶었다.

어쨌든 지금은 칼을 들고 있는 애니메이션을 만들기는 했으나 다시 해보라고 하면 하지 못할 것 같아 내 머릿속에 기억될 수 있게 한번 더 정리하려고 한다.

 


 

 

 

무기 장착 애니메이션 만들기

무기 장착 애니메이션 참고 블로그

무기 스켈레톤 장착 참고 블로그

 

먼저 사용할 무기를 에셋으로 다운 받는다. 내 경우에는 검을 받았는데 사실 칼집까지 있으면 더 좋을텐데 아직 그런 에셋은 찾지 못했다.

 

 

 

Socket으로 칼 장착하기

 

전에 내가 저장하지 않은 다른 메시에 칼을 장착했다는 걸 알고 이 캐릭터에 다시 적용해주었다.

hand_r을 검색한 후 소켓에 추가하면 된다. 하지만 무기들 든 자세를 수정하려면 BP_Player의 뷰포인트에서 수정해주어야 한다.

 

 

 

 

 

블루프린트에서 무기 장착 수정하기

 

뷰포인트에서 Mesh를 선택한 후 스켈레톤 메시를 추가한다. 그리고 이름을 Rifle이나 무기 이름 등으로 설정한다. Rifle을 선택한 상태에서 detail 창에 socket을 검색한다. 그리고 조금 전에 지정한 이름 sword 소켓으로 지정한다.

 

 

 

 

 

 

지난번에 이 작업을 할때 얼마나 힘들었는지 모른다. 스켈레톤 메시를 선택하면 캐릭터가 2개로 겹쳐 보여서 이걸 어떻게 해결해야 하나 고민했었다.
여기서 메시를 무기로 변경하면 원래 나타나던 캐릭터는 사라진다.

 

 

 

 

 

 

이제 플레이를 하면 수정된 무기로 동작되는 것을 볼 수 있다. 지금 다시 보니 칼을 잡는 포즈가 어설퍼 보여 조금 수정을 해주았다.


 

 

 

 

 

칼 휘두르는 동작 만들기

마우스 오른쪽 버튼을 클릭하면 캐릭터가 칼을 들고 있는 모션을 한번 만들어보기로 하자. 원래는 총일 때는 조준하는 모습이 된다. 내 경우에는 칼이므로 공격을 대기하는 유휴 동작을 만들어보면 될 것 같다.

지금 테스트를 해보니 이 기능은 여전히 되지 않는다. 오늘은 기필코 해결해볼 것이다.

 

블루프린트 이벤트 그래프 추가

이미 만들어놓았던 애니메이션 블루프린트 노드를 가져와서 isAiming 변수 값을 설정한다.

 

 

ABP_Player 수정하기

Event Graph

애니메이션 블루프린트 이벤트 그래프도 수정해야 한다. BP_Player를 캐스팅 받아서 isAiming이 되도록 값을 변경해준다.

 

 

Anim Graph

 

State Machine 노드를 하나 추가한 후 SwordLocomotion으로 이름을 변경한다.

 

 

 

SwordLocomotion

그리고 이 스테이트 머신에 들어가서 애니메이션을 추가한다.

애니메이션은 다음과 같은 2가지를 만든다.

  1. 허리춤에 있는 칼을 뽑는 상태 -> 칼을 들고 있는 대기 상태
  2. 칼을 허리춤에 넣는 상태 -> 칼를 내린 Idle 상태

 

이 두가지 애니메이션을 하나씩 연결해서 총 4개의 애니메이션을 사용하면 될 것 같다.

지난번에는 이 부분이 잘 되지 않아 Idle 상태에서 수시로 이 동작이 반복되곤 했었다. 연결을 끊으면 아예 애니메이션이 작동되지 않거나..

문제는 이 애니메이션이 언제 작동하게 만드느냐이다. 지금의 수준에서 동작하게 하려면 마우스 오른쪽 버튼을 클릭했을 때 2개의 애니메이션을 반복되도록 하면 되겠다.


 

 

 

이제 애니메이션 동작 만들어보기

 

조준 애니메이션 참고 블로그

 

조준 상태일 때

 

비무장 상태일 때

 

Locomotion 상태를 끊고 swordFire와 연결해준다.

 

 

 

 

 

 

 

하지만 이렇게 다 했는데도 오른쪽 마우스 버튼을 눌렀을 때 조준 모드가 활성화되지 않고 아무 반응이 없었다.

 

 

 

 

 

키 입력은 모두 제대로 되었는데 말이다. 이벤트 그래프의 문제인지 어떤 건지 잘 모르겠지만, 아마도 이 부분에 대한 학습이 더 필요할 것 같다. 오늘은 여기까지 하고 넘어가려고 한다.


 

 

 

학습을 마치고

 

별로 많은 기능을 다루는 게 아니었는데 생각보다 시간이 많이 걸렸다. 사실 오늘은 금요일이기도 하고 공부가 정말 하고 싶지 않았다.

하기 싫은 마음을 누르며 억지로 참고 해보는 중이다. 그래도 처음보다는 할만했다. 하고 싶지 않은 날에도 내가 하기로 결정한 일을 하는 것.. 그것이 진짜 개발자의 자세인 것 같다.