언리얼 엔진 5/개발 일지

[UE5] 블루아카이브 TPS게임 개발일지 (42) - 장전 애니메이션 구현 3

ciel45 2024. 1. 14. 18:07

장전 애니메이션 시퀀스에 만들어두었던 노티파이를 검토해보자면 다음과 같다.

  • DropMag - 탄창을 분리하여 바닥에 떨군다.
  • GrabMag - 품에서 새로운 탄창을 꺼낸다.
  • InsertMag - 총에 새로운 탄창을 삽입한다.

마지막의 PistolSlideAnim은 권총의 슬라이드가 당겨지게 하기 위한 것이다. 포스팅 마지막에서 서술할 것이다.

 

DropMag의 구현은 다음과 같다.

  • Detach From Component 노드를 통해 권총의 Old Mag를 분리한다.
  • 탄창이 중력에 의해 바닥으로 떨어지도록 한다.

구현 결과는 다음과 같다.

Detach from Component 노드를 통해 Old Mag를 분리하고, Set Simulate Physics 노드를 통해 탄창이 바닥으로 떨어지도록 한다.

 

 

GrabMag의 구현은 다음과 같다.

  • 칸나의 손에 새로운 탄창 메시를 생성하여 부착한다.

이를 위해 캐릭터 스켈레탈 메시에 새로운 소켓을 만들었다.

Mag_Socket

 

 

Grab Mag 이벤트는 BP_KannaCharacter에서 구현하였는데, 애니메이션 블루프린트에서는 Add Static Mesh Component를 사용할 수 없기 때문이다.

 

구현 내용은 다음과 같다.

소켓의 위치에 탄창을 생성하고 그 메시를 New Mag 변수에 할당한 뒤, 소켓에 붙여준다.

 

그리고, 소켓에 붙일 때는 룰들을 항상 소켓의 Transform을 따르도록 Snap To Target으로 설정해주는 것이 좋다.

 

애니메이션 블루프린트(ABP_Kanna)에서 이 이벤트를 호출하도록 하였다.

 

 

이렇게 함으로써, DropMag 노티파이에서는 원래의 탄창, 즉 Old Mag가 총에서 분리되어 땅으로 떨어진다.

GrabMag 노티파이에서는 새로운 탄창, 즉 New Mag를 만들어 칸나의 손에 쥐여준다.

 

마지막으로 InsertMag의 구현은 다음과 같다.

  • New Mag를 칸나의 손에서 분리한다.
  • New Mag를 권총의 Old Mag에 대입해준다. (이제 권총에 장착되어있는 탄창이 될 것이기 때문)
  • 그 Old Mag를 권총의 mag 소켓에 붙인다.

구현 결과는 다음과 같다.

 

 

 

덤으로, 장전 후 슬라이드를 당길 때 실제로 권총이 슬라이드가 당겨지게 하고 싶다.

따라서 여기서도 슬라이드 애니메이션 몽타주를 플레이하도록 하였다.

다만 당연히 발사할 때보단 좀 느리게 슬라이드가 움직여야하기에, Play Rate를 조금 낮췄다.

 

 

 

테스트 영상:

https://www.youtube.com/watch?v=VK9SpMm4HJY&ab_channel=Ciel45