페이스 리깅(12) 리깅 마무리


리깅은 시작할 때보다 마무리가 훨씬 중요하다. 리깅 제작자는 작업 전반을 통틀어 항상 애니메이터를 염두에 둬야 한다. 리깅 파일을 받는 애니메이터의 입장에서, 이해할 수 없는 채널이름은 변경해야 하고 불필요한 방향과 회전은 잠금을 설정하는 식의 꼼꼼함이 필요하다.

 


1 아웃라이너 정리

리깅 제작자가 없는 회사의 특징은 '재활용 시스템 부재'에 있다. 리깅을 꼼꼼하게 처리하지 못한 파일들을 열어보면, 대충 fk방식으로 깔끔하지 못하고 지저분하다. 재사용하기 싫은 캐릭터들이 덕지덕지 붙어 있다. 아웃라이너의 왼쪽, 오른쪽 컨트롤러의 이름이 다르고, 심지어 어떤 컨트롤러의 이름은 curve126이라고 돼 있는 경우도 있다. 


애니메이팅은 최종 랜더링과 직결되는 작업이다. 애니메이터가 채널박스의 scale값을 잘못 설정하면 최종 결과물에 치명적인 흠을 남길 수도 있다. 따라서 리깅 제작자는 리깅의 마무리 작업에 최대한 공을 들여 깔끔하고, 완벽하게 캐릭터를 정리해야 한다.


2 조인트 정리

조인트는 ik_BSkin 조인트 외에는 모두 숨긴다. 특히, skin weight값을 설정할 때, fk조인트를 선택하면 오류가 발생한다. 따라서 ik조인트만 볼 수 있도록 설정한다.

 

3 스키닝 정리

컨트롤러에 키값을 설정하여, 최소 ~ 최대 움직임을 설정한다. heat map 방식의 bind skin에서는 거의 대부분 스키닝 값이 정확하게 설정된다. 


단, 팔과 어깨 그리고 가슴 부위의 스키닝은 대부분 다시 설정을 해야 한다. (관절이 있는 부위도 같음)

 

4 『한계값 적용

 컨트롤러의 범위설정은 중요하다. 애니메이터가 키값을 설정할 때, 실수로 100과 같은 수치를 입력할 수도 있기 때문이다. 이때 컨트롤러가 100만큼 이동해버리면 찾을 수가 없는 상황이 발생한다. 


따라서 컨트롤러 범위는 아래와 같이 -1 ~ 1 사이를 이동하도록 설정해준다.


5 constrain구조 설정
 손가락 전체를 움직이는 컨트롤러일 경우, fk ik 변환 스위치를 따라다니는 편이 낫다. 만일 손가락 컨트롤러가 ikfk변환 스위치와 따로 움직인다면, 아래처럼 point 컨스트레인 기능을 활용해서 컨트롤러들 사이의 종속관계를 다시 설정해준다.


6 아웃라이너 구조설정

현재 MoGL_Rig란 그룹 아래를 살펴보면, Main_Ctrl ~ Body(매시)까지 그룹이 종속돼 있다. 여기서 핵심은 Main Ctrl 아래의 구조다.


Main_Ctrl 아래에는 두개의 그룹이 있는데, 다리부분과 Upper_Body_Ctrl이다. 만일 다리 컨트롤러그룹이 UpperBody컨트롤 아래에 위치하게 된다면, 허리가 굽혀지지 않는다. 그 결과, 다리가 지지대 역할을 못하기 때문에 몸 전체가 아래로 내려가는 현상이 발생한다. 따라서 main_CTrl아래에 다리와 상체 컨트롤 그룹은 항상 분리돼 있어야 한다.


상체 컨트롤러 아래에는 joint , ctrl , etc(ik핸들이나 커브들) 그룹들을 위치시키고, 아래와 같은 종속구조를 형성한다.


애니메이터가 캐릭터를 받았을 때는 최대한 단순하고 깔끔한 컨트롤러들만 보여야 한다. 최종적으로 문제가 없다면, ik조인트도 hide해서 컨트롤러들만 보일 수 있도록 마무리한다.