본문 바로가기
SOOFT RogueForge
플레이 영상 Steam에서 찜하기
개발 일지

카이의 옷과 머리카락 움직임을 수정한 과정

RogueForge를 만들면서 지키고 싶은 기준 중 하나는 옷과 머리카락이 부드럽게 움직이는 것입니다. 캐릭터가 걸으면 몸을 따라 움직이고, 멈추면 조금 늦게 가라앉고, 바람이 불면 그 방향으로 흔들렸으면 했습니다. 가죽처럼 무거운 재료도 무게감은 느껴지되 움직임이 굳어 보이지 않아야 했습니다.

이번에는 전투 교관 카이의 옷을 만들면서 이 부분을 손봤습니다. 긴 생머리에 검은 후드를 씌우고, 어깨에는 무거운 가죽 망토를 걸치기로 했습니다. 머리카락과 후드, 망토가 서로 닿는 복장이라 생각보다 막히는 곳이 많았습니다.

처음 막힌 것은 후드였습니다. 후드만 씌우면 머리카락이 천을 뚫고 나왔습니다. 관통을 피하려고 머리를 안쪽으로 감추니 옆머리가 사라져 귀 위가 비어 보였습니다. 밖으로 꺼낸 머리도 얼굴 앞에서 뻗어 나와 더듬이처럼 됐습니다. 후드와 거리를 벌려 놓으면 이번에는 머리가 공중에 떠 있었습니다.

원했던 모습은 훨씬 단순했습니다. 후드를 벗으면 긴 머리가 등 뒤로 내려오고, 후드를 쓰면 뒷머리가 양쪽으로 나뉘어 귀 아래에서 옆머리와 함께 흘러나오는 모습이었습니다. 머리가 천 위에 얹히면 그 무게에 후드 옆부분도 조금 눌려야 했습니다.

그런데 머리가 나오는 위치를 옮겨도 아래쪽이 계속 앞으로 떠 있었습니다. 확인해 보니 일부 가닥이 후드에 맞춰진 뒤 다시 머리뼈에 고정되고 있었고, 원래 모양으로 돌아가려는 힘도 남아 있었습니다. 아래로 떨어져야 할 머리를 다른 계산이 붙잡고 있었던 셈입니다. 이 부분을 풀고 귀 아래 출구까지만 잡아 주었습니다. 그 아래는 중력과 바람, 몸과 후드의 접촉에 맡겼습니다. 그러자 억지로 곡선을 만들어 줄 때보다 목과 어깨를 따라 내려오는 모습이 자연스러워졌습니다.

망토는 더 오래 걸렸습니다. 가만히 있을 때는 어깨를 살짝 감싸고 아래로 내려와야 하는데, 양옆으로 벌어져 날개처럼 보였습니다. 그 모양을 누르고 나니 이번에는 팔을 들 때 소매가 망토를 뚫고 나왔습니다. 정지 화면에서는 팔이 밖으로 나온 것처럼 보이지만, 동작을 이어서 보면 천을 밀어 넘긴 것이 아니라 그냥 통과한 것이었습니다.

여기서는 무게만 올려서는 해결되지 않았습니다. 어디를 몸에 붙이고 어디부터 자유롭게 움직이게 할지부터 다시 봐야 했습니다. 목둘레의 봉제 부분은 고정하고, 어깨에 걸친 부분은 조금씩 움직일 수 있게 했습니다. 앞자락은 아래로 갈수록 열리고 넓은 자락은 등 쪽으로 놓이도록 재단도 바꿨습니다. 팔이 올라왔을 때 천이 밀려 넘어갈 공간이 필요했습니다.

충돌 계산도 정점만 보는 것으로는 부족했습니다. 정점은 팔을 피해 있어도 그 사이의 넓은 면으로 팔이 지나갈 수 있었습니다. 팔과 소매의 실제 두께를 반영하고, 천의 면과 팔이 이동한 경로도 함께 검사하도록 고쳤습니다. 이 과정을 거쳐 팔을 들면 자락이 팔에 밀리고, 어깨를 타고 뒤로 넘어가 등 쪽으로 내려오는 모습을 만들었습니다.

팔을 올렸을 때 등 쪽으로 내려온 망토
팔을 올렸을 때 망토 자락이 등 쪽으로 내려오는 실제 개발 화면입니다.

이 움직임에 신경 쓴 이유는 가죽공방 때문입니다. 게임 안에서 재료를 고르고 옷을 만들어 입을 수 있는데, 막상 입었을 때 재질과 형태가 움직임에 영향을 주지 않으면 만드는 재미도 줄어듭니다. 두꺼운 천 후드와 무거운 가죽 망토가 똑같이 펄럭여서도 안 되고, 무겁다는 이유로 몸의 움직임을 무시해서도 안 됩니다.

그래서 무게와 두께뿐 아니라 얼마나 쉽게 접히는지, 흔들림이 얼마나 빨리 가라앉는지도 함께 조정했습니다. 재질만 설정하면 끝날 것 같았지만, 실제로는 재단과 봉제 위치, 몸에 닿는 부분까지 맞아야 원하는 움직임이 나왔습니다. 카이에게만 통하는 팔 각도별 보정을 계속 붙이기보다 다른 캐릭터의 옷에도 쓸 수 있도록 공통 접촉 계산과 고정 방식부터 손봤습니다.

움직임이 잡히고 나니 검은 옷 사이에서 구분되지 않던 부분도 눈에 들어왔습니다. 스타킹은 처음에 너무 검어서 부츠와 이어져 보였습니다. 밝게 바꾸자 이번에는 다리 자체를 갈색으로 칠한 것 같았습니다. 정면에서는 피부색이 은은하게 비치고, 비스듬히 보는 외곽으로 갈수록 검정이 짙어지도록 바꿨습니다. 신발도 앞코가 아래로 처져 보여 앞쪽 밑창은 평평하게, 아치부터 뒤굽으로 올라가는 형태로 고쳤습니다. 눈은 홍채의 검은 부분을 줄여 원래 색과 반사광이 더 잘 보이게 했습니다.

성능도 계속 신경 썼습니다. 옷 하나를 자연스럽게 움직이려고 캐릭터가 늘어날 때마다 계산이 크게 늘어나면 게임에서 쓰기 어렵습니다. 기존 계산점과 작업 공간을 재사용하고, 팔이 움직일 때 필요한 접촉 정보만 갱신하도록 했습니다. 그래도 충돌을 더 자세히 다루면서 비용은 늘었습니다. 여러 NPC가 함께 나오는 장면의 성능과 팔을 극단적으로 높였을 때 목 주변의 접촉은 더 다듬어야 합니다.

마지막에는 바람을 계속 켜 둔 채 후드를 벗은 카이를 한 바퀴 돌려 보고, 후드를 씌운 뒤 걷게 했습니다. 스튜디오에서만 괜찮아 보이는 건 아닌지 실제 게임의 정오 조명에서도 촬영했습니다. 영상에서 후드를 따라 움직이는 커서는 전환을 보여주기 위한 편집 연출입니다. 홈페이지도 같은 모델로 바꿔 평소에는 대기하고, 클릭했을 때 걷는 모습을 볼 수 있게 했습니다.

처음에는 카이의 옷 한 벌을 바꾸는 작업으로 시작했습니다. 막상 움직여 보니 머리가 어디에 묶여 있는지, 천이 어디에서 접히는지, 팔이 어느 면을 밀고 있는지까지 다시 보게 됐습니다. 앞으로 다른 옷을 만들 때도 먼저 보려는 것은 같습니다. 몸을 움직였을 때 옷과 머리카락이 그 움직임을 부드럽게 이어받는지입니다.

카이의 후드와 의상 움직임
디스코드에서 의견 남기기

다른 개발 일지

RogueForge 팔로우하기