2025. 4. 19. 01:04ㆍ자기계발
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 언리얼 엔진에서 애니메이션 몽타주(Animation Montage)와 Notify 기능을 활용하여 캐릭터의 전투/비전투 상태 전환 시스템을 구현하는 작업을 진행했다. 그동안 단순한 이동이나 점프 같은 기본 기능 위주로 다뤄왔다면, 오늘은 애니메이션과 로직의 정밀한 연동이라는 한 단계 더 깊이 들어간 주제를 다룰 수 있었던 의미 있는 시간이었다.
플레이어가 특정 키(Tab)를 누르면, 캐릭터가 칼을 꺼내거나 다시 집어넣는 애니메이션을 재생한다. 여기서 상태 전환의 타이밍을 정확히 제어 해야 되는데 몽타주의 Notify 기능을 통해서 구현이 가능했다.
나는 검 메시를 캐릭터의 스켈레탈 메시에 존재하는 본 소켓(에 부착하는 방식으로 구현했다. 전투 상태일 때는 검을 캐릭터의 오른손 본(hand_r)에 부착하고, 비전투 상태에서는 검을 등 뒤에 위치한 spine_sword 소켓에 부착한다. 이 구조의 가장 큰 장점은 별도의 애니메이션 없이도 검이 캐릭터의 움직임을 따라 자연스럽게 이동한다는 점이다. 단순히 메시를 보이게 하거나 숨기는 방식보다 훨씬 현실감이 높고 직관적이다.
애니메이션 몽타주에서 Notify 타이밍에 맞춰 AttachToComponent를 호출하면, 자연스럽게 손에 검을 쥐거나, 다시 등에 장착되는 동작이 구현된다. 이 방식은 단순히 메시를 보이게/숨기게 하는 것보다 훨씬 자연스럽고 직관적이었다.
본 소켓을 통해서 무기를 부착하니 다양한 무기나 캐릭터 스킨이 추가되더라도 재사용성이 가능할 것 같았다. 나중에 칼뿐만 아니라 활, 방패, 도끼 같은 무기를 구현할 때도 동일한 구조를 유지하면서 다양한 연출을 시도해볼 수 있을 것 같다.
이번 구현을 통해서 애니메이션을 세세하게 맞추는 일이 얼마나 어려운 지 알게 되었다. 한 땀 한 땀 위치나 키를 조정해 주어야 하고 끊기지 않고 부드럽게 연결되어야 하기 때문에 조정을 많이 했다. 다행히 언리얼에서는 강력한 도구를 지원해 주기 때문에 물리적인 부분은 걱정하지 않아도 되어서 좋다.
Abit.ly 다운받기
abit.ly
'자기계발' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 21일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기 (0) | 2025.04.21 |
---|---|
패스트캠퍼스 환급챌린지 20일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기 (0) | 2025.04.20 |
패스트캠퍼스 환급챌린지 18일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기 (0) | 2025.04.18 |
패스트캠퍼스 환급챌린지 17일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기 (1) | 2025.04.17 |
패스트캠퍼스 환급챌린지 16일차 : RPG 전투 플레이 프로젝트로 배우는 언리얼 엔진 5 게임 개발 강의 후기 (1) | 2025.04.16 |