본문 바로가기
vfxai 잡학지식 vfxai 잡학지식

마야 리깅에서 팔꿈치가 납작해질 때: 웨이트와 스키닝 방식 구분

vfx 잡학지식 읽는 시간 약 10분 조회 4

웨이트를 아무리 다듬어도 관절이 납작하다면, 섞는 수학 자체를 바꿔야 할 때입니다.

팔꿈치가 납작해지면 웨이트와 스키닝 방식을 나눠 봅니다

팔꿈치를 굽혔을 때 납작해지는 증상은 웨이트가 아니라 스키닝 방식의 문제일 수 있습니다. T 포즈에서는 팔 두께가 자연스럽습니다. 웨이트도 빨강에서 파랑으로 제법 부드럽게 넘어갑니다. 그런데 팔꿈치를 굽히면 관절 바로 위아래가 안쪽으로 빨려 들어가면서 팔이 납작해집니다. 옆에서 보면 더 분명합니다. 뼈는 제대로 꺾였는데 살만 한 숟갈 떠낸 것처럼 줄어듭니다.

그래서 Paint Skin Weights를 다시 엽니다. 상완 웨이트를 조금 빼고 전완 웨이트를 더 칠합니다. 이번에는 중간을 Smooth 합니다. 좋아진 것 같아서 더 다듬지만, 각도만 바꾸면 또 찌그러집니다. 심하면 보조 조인트까지 하나 넣었는데 별 차이가 없습니다.

이때 문제는 “웨이트가 아직 덜 예뻐서”가 아닐 수 있습니다. 웨이트가 아무리 부드러워도, 그 웨이트를 계산하는 방식 자체가 관절의 부피를 줄이고 있다면 계속 같은 벽을 만납니다.

스키닝 방식별 팔꿈치 비교: 같은 웨이트로 120도 굽힌 원통 팔. 선형 블렌드 스키닝은 관절 부근이 안쪽으로 빨려 들어가 부피가 85%로 줄고, 듀얼 쿼터니언은 두께가 유지된다
웨이트는 완전히 같고 섞는 방식만 다릅니다. 120도로 굽히면 선형은 전체 부피의 15%를 잃고, 듀얼 쿼터니언은 거의 그대로입니다.

같은 웨이트를 둔 채 스키닝 방식만 바꿨는데 두께가 돌아온다면, 웨이트를 더 칠하기 전에 계산 방식부터 봐야 합니다.

웨이트를 더 칠하면 고쳐질 것 같지만, 바로 그 생각이 함정입니다

웨이트는 “어느 조인트의 움직임을 얼마나 따를 것인가”를 정합니다. 관절 주변 버텍스가 상완 50%, 전완 50%라면 두 조인트의 영향을 반씩 받는 식입니다. 따라서 영향 범위가 틀렸거나 갑자기 끊기는 문제에는 웨이트 수정이 정확한 처방입니다.

그런데 두 조인트의 영향이 이미 적절히 섞여 있는데도 관절 가운데가 줄어든다면 이야기가 달라집니다. 상완을 40%에서 60%로 바꾸는 것은 어느 변형을 더 따라갈지 바꾸는 것이지, 변형을 섞는 수학 자체를 바꾸는 것이 아닙니다. 한쪽으로 몰면 찌그러짐 위치가 이동할 수는 있어도 사라지지 않을 수 있는 거죠.

조인트를 하나 더 만드는 것도 마찬가지입니다. 추가한 조인트가 기존 조인트 사이에서 똑같이 회전하고, 그 영향까지 다시 선형으로 섞는다면 계산에 참가하는 변환만 하나 늘어난 셈입니다. 반대로 보정 조인트를 의도적으로 바깥쪽으로 이동하거나 회전시켜 관절의 살을 밀어 올리고 그 부분에만 웨이트를 준다면 그때는 효과가 있습니다. “조인트 개수”가 아니라 그 조인트가 다른 보정 변형을 만들고 있는가가 차이입니다.

선형 블렌드 스키닝은 두 움직임의 ‘중간’을 만들다가 안쪽으로 들어갑니다

Classic Linear, Linear Blend Skinning 같은 방식은 한 버텍스에 영향을 주는 각 조인트가 그 버텍스를 어디로 보낼지 계산한 뒤, 그 위치들을 웨이트에 따라 섞습니다.

팔꿈치 바깥쪽의 버텍스 하나를 생각해보면 쉽습니다. 상완 조인트만 따른 위치와 전완 조인트만 따른 위치는 관절을 중심으로 서로 다른 방향에 있습니다. 그런데 둘을 직선적으로 평균내면 버텍스는 두 위치 사이의 직선 중간으로 이동합니다. 실제 살이 관절 둘레의 둥근 궤적을 따라 돌아가는 것과 달리 지름 쪽으로 지름길을 타는 셈이죠. 그 결과 관절 중심을 향해 버텍스가 당겨지고 단면이 줄어듭니다.

팔꿈치 바깥쪽 버텍스 하나가 상완 쪽 위치에서 전완 쪽 위치로 옮겨 가는 경로. 선형 블렌드는 직선 지름길을 따라 관절 중심 쪽으로 들어오고, 듀얼 쿼터니언은 관절을 도는 원호를 따른다
웨이트 50%인 버텍스를 선형으로 섞으면 빨간 직선의 중간, 즉 관절 중심에서 반지름의 절반 거리에 놓입니다. 듀얼 쿼터니언은 파란 원호 위에 남습니다.

웨이트가 아무리 매끄러워도 섞는 수학이 그대로면 수축은 남습니다.

듀얼 쿼터니언 계열의 스키닝은 회전을 단순한 위치·행렬의 선형 평균처럼 처리하지 않아 이런 수축을 줄이고 관절 주변의 볼륨을 더 잘 유지하는 쪽으로 동작합니다. Maya의 Dual Quaternion, Blender Armature Modifier의 Preserve Volume, 3ds Max Skin의 Dual Quaternion이 여기서 등장합니다.

같은 웨이트로 170도 비튼 원통. 선형 블렌드 스키닝은 가운데가 사탕 껍질처럼 한 점으로 조여 부피가 59%로 줄고, 듀얼 쿼터니언은 노란 줄무늬만 돌아갈 뿐 두께를 유지한다
비틀기에서는 차이가 더 극단적입니다. 선형은 가운데가 사탕 껍질처럼 조이고, 듀얼 쿼터니언은 표면만 돌아갑니다.

30초면 웨이트 문제인지 스키닝 방식 문제인지 먼저 갈라낼 수 있습니다

1. 문제 포즈를 그대로 둡니다. 팔꿈치를 펴지 말고, 가장 납작해지는 각도에서 옆 실루엣을 봅니다.

2. 웨이트는 건드리지 않고 스키닝 방식만 바꿉니다. Maya는 스킨 메시의 Attribute Editor → skinCluster → Skinning Method에서 Classic Linear와 Dual Quaternion을 비교합니다. Blender는 Modifier Properties → Armature → Preserve Volume을 껐다 켭니다. 3ds Max는 Modify panel → Skin → Parameters의 Dual Quaternion 항목을 사용합니다. 특정 버텍스에 DQ 비중이 적용되지 않았다면 그 버텍스를 선택하고 Blend Weights를 켠 뒤 값을 높여 비교합니다.

3. 눈으로 판정합니다. 웨이트를 하나도 고치지 않았는데 관절의 옆선이 즉시 바깥으로 살아나고 단면이 덜 납작해졌다면 스키닝 방식의 비중이 큽니다. 반대로 거의 변화가 없고 특정 버텍스 몇 개만 삐죽하거나 접히는 위치가 그대로라면 웨이트·토폴로지·보정 셋업을 먼저 의심해야 합니다.

수정은 듀얼 쿼터니언부터 시작하되, 거기서 끝내지 않습니다

순서수단언제 쓰나하는 일
1스키닝 방식 비교여러 각도에서 관절이 전반적으로 줄 때Linear와 Dual Quaternion(Preserve Volume)을 같은 포즈에서 바꿔 본다
2보정 조인트특정 방향으로 살이 밀려 나와야 할 때관절 옆 살을 실제 변형으로 밀어 올린다
3보정 셰이프정해진 포즈의 모양만 틀릴 때원하는 최종 실루엣을 직접 조각한다

세 수단은 대체재가 아니라 단계입니다. 위에서 안 되면 아래로 내려갑니다.

첫 번째는 듀얼 쿼터니언입니다. 단순히 관절 회전에서 살이 줄어드는 문제라면 가장 먼저 시험할 값입니다. Maya는 skinCluster의 Skinning Method → Dual Quaternion, Blender는 Armature modifier의 Preserve Volume, 3ds Max는 Skin modifier의 Dual Quaternion 항목을 사용합니다. Maya에서는 전체를 DQ로 바꾸는 대신 Weight Blended를 사용해 선형과 DQ를 부위별로 섞을 수도 있습니다.

다만 DQ가 항상 더 예쁜 것은 아닙니다. “줄어드는 것”을 막았더니 이번에는 팔꿈치 주변이 너무 둥글거나 불룩해질 수 있습니다. 그러면 DQ 사용 여부를 정답·오답처럼 보지 말고, 필요한 부위에만 섞는 편이 낫습니다.

두 번째는 보정 조인트입니다. 특정 방향으로 팔을 굽힐 때 팔꿈치 옆 살이 실제로 튀어나와야 한다면 계산 방식만 바꾸는 것보다 보조 조인트로 그 볼륨을 직접 만드는 편이 제어하기 쉽습니다. Maya에서는 만든 보정 조인트를 기존 스킨에 넣을 때 Skin → Edit Influences → Add Influence를 사용합니다. Blender에서는 Armature에 변형용 bone을 추가하고 대응하는 Vertex Group으로 영향량을 줍니다. 3ds Max에서는 Skin modifier의 Bones 목록에서 Add로 뼈를 추가합니다.

핵심은 보정 조인트를 “조인트 하나 더”로 쓰지 않는 것입니다. 팔꿈치 각도에 따라 살이 부족한 방향으로 보정 조인트가 움직이게 하고, 필요한 버텍스만 그 조인트가 잡게 해야 합니다. 이렇게 하면 기본 스키닝이 못 만든 볼륨을 실제 공간 변형으로 보충할 수 있습니다.

세 번째는 블렌드 셰이프나 Shape Key 같은 보정 셰이프입니다. 한두 개의 특정 포즈에서만 팔꿈치 모양이 마음에 들지 않는다면 가장 직접적입니다. 문제 각도로 팔을 굽힌 상태에서 원하는 실루엣으로 버텍스를 조각하고 그 포즈에 맞춰 보정 셰이프가 올라오게 합니다. Maya는 Deform → Blend Shape과 Shape Editor, Blender는 Object Data Properties → Shape Keys, 3ds Max는 Modifier List → Morpher가 해당됩니다.

따라서 선택 기준은 간단합니다. 여러 회전에서 전반적으로 볼륨이 줄면 DQ부터, 특정 방향의 살 움직임이 필요하면 보정 조인트, 정확히 정해진 포즈의 모양까지 잡아야 하면 보정 셰이프로 내려갑니다.

DQ를 켰는데 그대로라면, 스키닝이 아닌 다른 문제일 수 있습니다

첫째, 관절을 굽혔을 때 몇 개의 엣지만 날카롭게 꺾이고 표면에 홈이 파인다면 토폴로지를 봐야 합니다. 관절 중심에 엣지가 너무 몰렸거나 흐름이 나쁘면 스키닝 방식을 바꿔도 접힘 자체는 남습니다. 정적인 모델에서 나타나는 서브디비전 핀칭과 원인은 다르지만, “표면이 찌그러져 보이니 웨이트 문제겠지”라고 단정하면 안 된다는 점은 같습니다.

둘째, 실루엣은 멀쩡한데 팔꿈치 가운데만 유난히 검어지거나 움푹 파여 보인다면 노멀·탄젠트·노멀맵 쪽 문제일 수 있습니다. 화면을 실루엣으로 보거나 평탄한 머티리얼로 바꿨을 때 외곽 두께가 유지된다면 실제 지오메트리가 줄어든 것이 아닙니다. 노멀맵은 실루엣을 바꾸지 못한다는 성질을 이용하면 둘을 빠르게 구분할 수 있습니다.

한 줄로 정리하면

팔을 굽힐 때 관절 전체가 납작해진다면 웨이트를 더 칠하기 전에 Linear와 Dual Quaternion을 같은 포즈에서 바꿔 보세요. 두께가 즉시 돌아오면 문제는 웨이트의 양보다 스키닝 방식에 가깝습니다.

vfx 잡학지식

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.