본문 바로가기

ani/Character setting (rigging) in 3ds max

3ds Max _ 눈알 셋팅(1) - 구 형태의 눈, Spherical eye rig

1. 들어가기 앞서..


눈알 셋팅에 대한 정리 글을 쓰는 이유는
캐릭터 디자인이 꼭 눈알이 구 형태만 있지만 않으며, 평면형태의 만화적 디자인의 캐릭터나, 혹은 타원형에 대응하는 눈알 세팅도 함께 글로 정리하기 위함이다.
같은 눈알이지만, 형태에 따라 셋팅의 방식 자체는 다르다고 생각한다.
물론 지금부터 서술할 내용은 필자만의 방식이고 더 좋고 간단한 방법이 있을 거라 생각한다.

페이셜 리깅의 시작이라고도 생각할 수 있는 눈 셋팅을 해보면서,
맥스에서는 이런 연산 방식과 특징이 있구나 깨닫게 되는 계기이기도 하였다.

조금은 흉측한 구형태와 평면형태의 눈

타원형 눈알 셋팅은 좀 더 고민을 하고 후술 하는 것으로 하고
두 게시글로 나누어 구 형태의 눈과 평면 형태의 눈 셋팅 과정을 기록하고자 한다.



2. 과정

조금은 섬뜩하게 생겼지만, 바이패드와 함께 설명하기 위해 이런 모양이 나오게 됐다.

우선 들어가기 앞서

1. 일반적인 인간형 캐릭터
2. 바이패드를 이용한 셋팅
3. 눈동자가 정확히 정면을 바라보고 있지 않은 형태의 메쉬

이런 조건을 두고 셋팅을 진행하려 한다.
(*구 형태의 눈은 굳이 바이패드가 아니어도 서술할 내용과 동일하게 진행하여도 문제는 없다.)




1. 눈알에 스킨을 넣어줄 본을 만든다. 이때 주의할 점은 눈동자의 방향과 본이 바라보는 방향이 같아야 하고, 본의 피벗이 구의 중심이어야 한다.
이 두 본은 모두 바이패드의 자식으로 두어야 한다.

본 좌우 대칭을 만드는 법>> 은 전 게시글을 참고.


2. Point로 눈알 컨트롤러를 만들어 준다.


어떤 형태로 만들던 상관은 없지만, 각각의 눈알을 컨트롤할 수 있는 포인터와 이 두 컨트롤러를 동시에 잡고 컨트롤할 수 있는 메인 컨트롤러를 만들었다. 그리고 위와 같이 네이밍을 붙여주었다.

컨트롤러의 링크 구조는
Bip001 Head
ㄴPoint_Ctl_Eyes
ㄴPoint_Ctl_L_Eye, ㄴPoint_Ctl_R_Eye
으로 바이패드를 최상단 부모로 두었다.


컨트롤러를 만들 때 주의사항이라면
되도록이면 눈알과 일직선상에 놓이도록 한다. (x값은 0점)
Align으로 rotation 값도 동일하게 해 본의 축과 완벽한 일직선상이 될 수 있도록 한다.





3. 만들었던 눈 본에 스킨을 넣어준다.


이렇게 각각 1 값을 주어 온전하게 다 움직일 수 있게 했다.
이제 각각의 본을 움직이면 누이 굴러가는 것을 확인할 수 있다.
하지만 이 본으로 직접 컨트롤하지 않고 앞전에 만들어놓은 컨트롤러로 움직일 것이기 때문에,
후에 이 본들은 Hide 시킬 것이다.





4. 본을 잡고 LookAt Constraint로 바꿔준다.





5. 다음과 같이 Add lookAt Target으로 각각 눈에 해당하는 컨트롤러를 추가해주고,
눈알의 방향이 정확하게 정해진 모델링이 아니라면 Keep Initial Offset은 꺼준다 (초기에 만들어준 본의 각도를 유지시키는 게 아니라면 꺼준다)
Select upnode를 World를 꺼주고 bip001 Head에 주었다.




이때 upnode를 그대로 World로 두게 된다면
바이패드가 y축 회전을 했을 때 문제 현상을 확인할 수 있다.


이렇게 자세히 보면 눈알 본의 방향이 머리 본 방향을 따라가지 않는다는 것을 알 수 있다.
그 이유는 눈알 본의 축이 헤드의 축과 방향이 같지 않기 때문이다.

서두에 조건으로 두었던 3. 눈동자가 정확히 정면을 바라보고 있지 않은 형태의 메쉬 로 해뒀던 이유도 이런 현상을 확인하고자 였다. 눈알 본은 어찌 되었건 정확히 눈동자 방향을 가리키고 있어야 되기 때문에, 바이패드 머리 본과 축이 맞지 않는 경우가 생길 수 있다.
이런 경우를 피하고자 upnode란 축을 참조할 본을 선택하는 것으로,
눈알 본의 부모인 바이패드 머리 본을 upnode로 두었다.


6. 마지막으로 메인 컨트롤러를 잡고 눈알이 잘 움직이는지 확인해보자.




평면 눈 셋팅은 다음글에 계속...