리깅

캐릭터 리깅해보기 - 삽질기 1. 하드 웨이트를 주기까지..

뚜_ 2025. 4. 14. 21:05

삽질기 1. 하드 웨이트를 주기까지..

아무래도 블로그에 글로만 쓰는 것보다는 직접 해보는게 나을 것 같아, 강의 때 선생님과 같이 작업했던 롤의 가렌 캐릭터 대신 무료 캐릭터 모델을 다운받아 리깅을 도전해보기로 했다.

삽질 1. 겹쳐진 버텍스

우선 하드하게 웨이트를 주고 조인트를 이리저리 움직여보니 사진과 같이 찢어지는 부분이 발생했다. 혹시 해서 버텍스를 확인해보니 두 개의 조인트가 같은 위치에 겹쳐져있었다. 하나는 목쪽, 하나는 등판 옷쪽에 있는 조인트였다. 어쩐지 Mirror Skin Weights를 했을 때 색상이 좌/우가 다른게 이상했는데 이것 때문이었던 것 같다.

모델 전체적으로 확인해보니 꽤 많은 부분이 그렇게 되어있어 Merge Vertices를 통해 겹쳐진 버텍스들을 하나로 합쳐줬다. 모델링이 이상해지는 부분이 있는지 확인하면서 진행하긴 했으나 아마 내가 놓친 부분이 있을 것 같다.

역시나 Merge Vertices 후에 내가 주었던 스킨 웨이트들이 다 망가져버렸다. 수정할 수 있는 수준이 아니라서 다시 진행하기로 하였다..

 

삽질 2. 웨이트 주다가 조인트 배치 수정하기

삽질 2-1. 조인트 Freeze Transform 까먹기

엄지손가락에 웨이트를 주고 움직여보니, 조인트 각도가 면의 진행 흐름과 맞지 않아 어색한 것 같아서 다시 웨이트를 부모 조인트로 빼주고 엄지손가락 조인트를 Remove influences 후에 각도를 다시 조정해주었다. 다시 Add influences를 하고 웨이트를 준 후 조인트를 움직여보다가 원상태로 돌리려고 보니 조인트에 Rotate 값이 들어있었다. 다시 Remove influence를 하고 Freeze Transform을 해주었다.

앞으로는 조인트 셋업 후 일괄 확인을 하려고 아래와 같은 스크립트를 만들어두었다.

import maya.cmds as cmds

joints = cmds.ls(type='joint')

for jnt in joints:
    rotate = cmds.getAttr(jnt + '.rotate')[0]
    if rotate[0] != 0 or rotate[1] != 0 or rotate[2] != 0:
        print(f"{jnt} 조인트에 rotate 값 있음!: {rotate}")

위 스크립트를 실행한 결과

 

삽질 2-2. 조인트 수정 후에 Go to Bind Pose 시 수정 전 배치로 돌아가버림

Remove influences 후에 채널 박스를 보다가 bindPose가 들어가 있는 것을 확인했다. Remove influences를 하면 바인드가 안되게 되는건데 bindPose가 들어가 있는게 이상한 것 같아서 Go to Bind Pose를 실행해보니 역시나 수정 전 배치로 조인트가 다시 돌아가버렸다.

아직 Add influence를 하지 않은 조인트를 보니 채널 박스에 아무것도 없길래 Remove influences를 한 조인트에서 bindPose를 없애야할 것 같아 챗GPT에게 물어보니 스크립트로 진행하는 것을 추천해주었다.

지피티가 알려준 스크립트를 돌려보니 remove 옵션은 동작하지 않았다. 마야 커맨드 문서를 보니 reset 옵션이 있길래 아래와 같이 실행해주었더니 Go to Bind Pose 시 수정한 위치(정상적인 위치)로 돌아가는 것을 확인하였다. 이후 다시 Add influences를 하여 웨이트 값을 주었다.

import maya.cmds as cmds

print(cmds.dagPose('L_Thumb1', reset=True, n='bindPose2'))

 

모든 삽질이 끝난 후에 조금 더 검색해보니 Move skinned joints 라는 기능이 있는걸 알게되었다. 다음 번에는 이 기능을 공부해서 사용해보아야겠다.

 

이틀간의 우여곡절 끝에 하드웨이트까지 준 모습은 아래와 같다.

 

'리깅' 카테고리의 다른 글

캐릭터 리깅해보기 - 삽질기 2. IK 셋업하기  (0) 2025.04.23
FK와 IK 셋업 및 스위치 셋업  (0) 2025.04.10
어트리뷰트 셋업  (0) 2025.04.08
IK 컨트롤러 셋업  (0) 2025.03.18
인게임 캐릭터 스킨 웨이트  (0) 2025.03.11