WWolves Den

개발 · 출시 · 약 3분

3D 캐릭터는 어떻게 움직일까: 메시, 뼈, 스키닝

모델의 표면과 뼈대, 정점 가중치의 역할을 분리하고 애니메이션이 화면의 픽셀로 이어지는 흐름을 살펴봅니다.

Wolfgadeok · 업데이트

표면과 움직임을 위한 구조를 나누기

3D 캐릭터를 인형에 비유하면 메시(Mesh)는 겉모양, 스켈레톤(Skeleton)은 뼈대에 해당합니다. 메시에는 정점과 면을 구성하는 정보가 있고, 재질과 텍스처가 표면의 색이나 빛에 대한 반응을 결정합니다. 텍스처를 통째로 ‘Skin’이라고 부르기보다 표면 이미지와 뼈에 따른 변형을 구분해 두면 이후 애니메이션 문서를 읽기 쉽습니다.

모든 3D 물체에 뼈가 필요한 것은 아닙니다. 상자나 바위는 물체 전체의 위치·회전·크기만 바꾸면 충분할 수 있습니다. 사람의 팔꿈치처럼 관절 주변이 변형되는 모델은 여러 뼈의 영향을 정점에 연결하여 움직입니다. 리깅은 이런 조작 구조를 만드는 넓은 작업이고, 스키닝은 메시를 뼈에 연결해 변형시키는 과정입니다.

두 본이 연결된 관절을 구부릴 때 주변 메시가 변형되는 형태를 보여주는 그림
관절을 구부릴 때는 뼈의 방향뿐 아니라 주변 메시의 형태도 함께 바뀝니다. 스키닝은 이런 메시 변형을 뼈의 움직임과 연결하는 과정입니다. 이미지를 누르면 크게 볼 수 있습니다.

가중치 50%는 회전각 절반이라는 뜻이 아니다

정점에 두 뼈의 가중치를 50%씩 주었다고 해서 한 뼈의 회전각이 그대로 절반으로 줄어 적용되는 것은 아닙니다. 대표적인 선형 블렌드 스키닝은 각 뼈의 변환으로 계산한 정점 위치를 가중 합하는 방식입니다. 따라서 가중치는 회전각의 비율이 아니라 변환 결과에 주는 영향으로 이해해야 합니다. 뼈의 회전 중심, 부모·자식 관계, 기준 자세가 다르면 결과도 달라집니다.

팔꿈치를 구부렸을 때 주름이 찌그러지거나 팔이 고무처럼 가늘어 보인다면 단순히 애니메이션 속도를 고칠 문제가 아닐 수 있습니다. 관절 주변의 메시 배치, 가중치 분포, 기준 자세와 변형 방식부터 확인합니다. 머리카락과 옷의 흔들림도 모두 수작업 키프레임인 것은 아니며, 필요에 따라 물리나 별도의 변형 처리를 함께 사용합니다.

  1. 팔꿈치 주변 정점을 선택하여 어떤 뼈가 얼마만큼 영향을 주는지 확인합니다.
  2. 팔을 편 자세뿐 아니라 크게 구부린 자세에서도 부피와 표면이 자연스러운지 확인합니다.
  3. 가중치를 수정했다면 걷기·공격 등 여러 동작에서 다시 검사합니다.
팔 본을 선택한 캐릭터에서 해당 본의 영향 범위를 색으로 표시한 웨이트 페인팅 화면
선택한 본이 메시의 어느 부분에 영향을 주는지 색으로 표시한 화면입니다. 관절 주변의 가중치 분포를 확인하고 여러 자세에서 변형을 검사합니다. 이전 버전의 에디터 화면으로, 현재 버전과 메뉴 배치가 다를 수 있습니다. 이미지를 누르면 크게 볼 수 있습니다.

정점 계산에서 최종 화면까지

애니메이션은 시간에 따른 뼈의 변환을 평가하고, 스키닝은 그 결과를 메시의 정점에 적용합니다. 이후 그래픽 파이프라인은 정점을 변환하고 삼각형을 화면상의 조각으로 변환하며 재질 계산, 깊이 검사와 혼합 등을 거쳐 화면에 쓸 결과를 만듭니다. ‘점을 먼저 화면에 찍고 선을 연결한 다음 그림을 덮는다’는 순서와는 다릅니다.

입문 단계에서는 모델이 이상할 때 어느 층을 볼지 정하는 것이 중요합니다. 실루엣이 깨지면 메시·가중치, 자세가 틀리면 스켈레톤·애니메이션, 표면 색이 이상하면 재질·텍스처, 화면에서만 사라지면 렌더링 설정을 점검합니다. 이 구분은 Unreal의 Skeletal Mesh나 Control Rig를 배울 때도 그대로 도움이 됩니다.

참고 자료