본문 바로가기
3DMAX/Setup

캐릭터 셋업 책 정독 및 정리 - 3차 캐릭터 셋업 실전 가이드(1)

by tartist 2015. 12. 17.

캐릭터 셋업 실전

 

 

1. 반자동 목(Neck) - 목젖의 움직임을 살펴보면서 목을 돌려보자.

  • Point01 헬퍼를 만들고 Rotation ControllerOrientation Constraint로 변경한 후 회전을 참조하는 타깃으로서 Bip01 HeadBip01 Spine2를 설정한다. 그러면 Point01은 언제나 머리와 가슴의 중간방향이 될 것이다.

     

  • Bip01 Neck 위치에 Bone01을 설치하고 Rotation ControllerLookAt Constraint로 변경한다. 그리고 언제나 머리를 바라보도록 설정한다. 그리고 가장 중요한 트위스트 방향(Select Upnode)Point01과 일치하도록 설정한다.

  • 최종적으로 스킨이 적용될 본은 Bone01이고 Bip01 Neck은 애니메이션 작업만을 위한 본이 된다.

  • Bone01이 위치가 고정되도록 Position Expression으로 지정한다.

 

 

 

2. 캔디 랩 현상과 중간 본


  • 본 기반의 스키닝 환경에서는 오브젝트의 외형을 구성하는 수 많은 버텍스들이 각각의 본을 어느 정도 비율로 따라가는지를 지정해주는 스킨 웨이트(Skin Weight) 작업을 해야 한다. 그런데 스킨 웨이트 값을 아무리 잘해도 관절이 심하게 꺽일 경우 피부의 부피가 줄어드는 현상이 발생한다.  사탕껍질이 비틀어진 모양과 비슷하다고 해서 캔디 랩이라고도 부른다.

    일반적으로 캐릭터의 관절을 어색하지 않게 표현하기 위해서는 적당히 많은 엣지(Edge)가 필요하다. 하지만 아무리 많은 폴리곤을 사용해서 엣지가 충분하더라도 캔디 랩 현상은 중간 본을 추가하지 않는 이상 어쩔 수 없이 발생한다.

  • 아래 그림은 엉덩이에서 자주 발생하는 상황의 샘플이다.

    왼쪽의 경우는 중간 본을 사용해서 회전을 분담한 경우이고 우측의 경우는 중간 본을 사용하지 않아서 부피가 심하게 줄어든 상황이다. 캐릭터의 대퇴부가 심하게 꺽이는 경우에 중간 본을 사용하지 않으면 우측처럼 부피가 줄어들어서 엉덩이가 볼품없이 보이게 된다.

 

 

3. 손목 트위스트


  • 팔은 몸 전체 중에 가장 큰 각도로 움직일 수 있는 부위이고 그 중에서도 손목은 180도 회전이 가능하여 캔디랩 상황이 빈번하게 발생하는 부위이다.

     

  • 중간 본을 몇 개를 사용해야 하는가?

    파란색은 트위스트 모디파이를 사용한 완전하게 비틀어진 모습이다.

    빨간색은 중간본이 없어 180도 돌렸을 때 캔디 랩이 발생한 모습이다.

    노란색은 중간본 한 개를 이용하여 지지대 역할을 해준 모습이다. 중간본이 늘어날수록 파란색과 같은 완전한 모습을 갖추게 된다. 퍼포먼스와 퀄리티를 고려하여 몇 개의 중간본을 이용할 지 논의하는 과정이 필요하다.

     

  • 바이패드 트위스트를 사용할지, 일반 본을 사용할지

  • 바이패드 트위스트를 사용하면 생성이 쉬운 장점이 있지만, 한 개만으로는 원하는 느낌을 주기가 힘들다. 무조건 50도만 따라가게 설정되어 있어 중간 본 역할로서는 한계가 있다 보니 여러 개를 만들어야 하는데, 그러면 퍼포먼스 문제가 있어 사용에 제약이 생긴다. 하지만, 본을 사용하여 셋팅하면 원하는 각도와 움직임을 설정할 수 있어 한 개만으로도 충분히 원하는 느낌을 만들 수 있다. 셋팅하는게 조금 번거럽긴 하지만, 그다지 문제될 정도는 아니다.

  • 손목 트위스트 설정

     

  • 팔목 플립을 최소화하기 위해서 보조 포인트를 추가하여 완화시킬수 있음

이 방법은 재철씨가 알려준 꿀팁입니다.

황군 사이트 참조 - http://hwanggoon.tistory.com/153


 

 

 

4. 팔꿈치와 무릎


  • 팔꿈치와 무릎은 두께가 두꺼워서 중간본의 역할도 있지만, 본의 위치도 중요한 역할을 하게 된다.

    A는 굽힐수록 뾰족해지는 팔꿈치에 어울리는 셋팅이고, B는 굽힐수록 뭉툭해지는 무릎에 어울리는 셋팅이다. C는 중간본을 활용하여 팔꿈치의 느낌을 더욱 강화한 셋팅이다.

  • 쐐기골 무릎 형태 만들기

  • 다리를 들어올릴 때 바이패드로만 셋팅하면 허벅지와 무릎이 쪼그라드는 문제가 있다. 이런 형태를 완화시킬수 있는 셋팅법 에 대해서 알아보자.

  • 보조 본의 위치를 잡아줄 포인트 더미를 만들어 아래와 같이 셋팅한다.

    Point는 발목을 LookAt으로 바라보고 업 노드는 허벅지와 축 정렬되어 있다. 이 상태에서 무릎이 구부러지는 상황에서 각도가 증가하게 된다. Point의 부모 오브젝트는 바이패드 허벅지이기 때문에 파란색과 허벅지 사이의 각도가 Local 회전 값이다.

     

  • 허벅지 본 셋팅이 중요하다.

    허벅지 보조본의 컨트롤러는 Orientation Constraint Controller가 적용되어 있는데 PointWorld가 타깃으로 지정되어 있다. World를 타깃에 포함시킨 이유는 바이패드의 움직임에 Bone01이 반응하는 정도를 조절하기 위함이다. PointWeight 값을 감소시키면 바이패드의 움직임에 의해서 Bone01이 조금 회전하게된다.

    가장 중요한 설정은 Transform Rule 그룹에서 ‘Local -> Local’ 옵션이다. Orientation Constraint가 로컬 방식으로 작동해야만 Point의 로컬 회전 값이 Bone01의 로컬회전으로 반영하기 때문이다. 만약에 ‘World -> World’ 기준으로 했다면 Point와 상관 없이 Point11의 방향과 상관없이 Point의 방향을 그대로 따라갔을 것이다.

     

  • !!중간에 빠진 내용이 있다!! -- Up 본의 부모는 바로 Thigh 바이패드 본이 아닌 Thigh의 보조 헬퍼본이 부모가 되어주고, 보조 헬퍼본은 원본 바이패드와 Y정반대 축으로 설정해 줘야 무릎을 올릴때 반대축으로 Up본이 올라간다~ 

        원래 허벅지의 축    <-->    허벅지 보조 헬퍼의 축 반대로 : 이부분이 Up본의 부모가 된다.



  • 무릎 연골 셋팅

    허벅지를 따라가는 Point01과 종아리를 따라가는 Point02를 만들고 허벅지와 종아리의 중간에 무릎 관절을 만들어 두 포인트의 중간 값을 따라가도록 설정한다.

    포지션과 로테이션 둘다

 

 

 

 

 

 

 

5. 겨드랑이


  • 겨드랑이는 리깅의 난이도는 낮아도 스키닝의 난이도가 높은 부위이다. 난이도가 높은 이유는 겨드랑이에 영향을 주는 다양한 본들이 모여있기 때문인데 쇄골, 가슴, 척추, 상박등이 겨드랑이에 영향을 주는 본들이다. 근육질의 캐릭터라면 활배근 본과도 관련된다.

 

 

 

6. 트위스트 플립 현상의 해결


 

  • 난플립 셋팅을 하기 위한 본과 더미 구조

    이제부터 노드를 어떻게 활용하느냐에 의해 플립 현상을 완화시킬 수 있다.

    셋팅하면서 중요하게 여길 부분은 누가 누구의 자식이냐 보다 누가 누구를 바라보면서 업노드 축은 어디를 향하고 있느냐를 유심히 봐야 한다.

    Bone01은 루트본이라 생각하고, Bone01의 보조더미라 할 수 잇는 Point02Bone02의 보조더미인 Point01을 바라보도록 설정하고, 업노드 축은 Bone01을 따라가도록 설정한다.

    Bone02는 자체적으로 움직이는 관절이 아닌 마지막 자식 관절에 의해 움직임이 결정되는 본이라 Point03의 움직임에 의해 움직여지는 관절이다.


 

 

 

 

 

 

 

 

 

 

-> Point02의 설정

먼저 Point02Point01을 같은 길이만큼 배치해 준다. 그리고 Point02Point01을 바라보도록 셋팅한다. 그리고 Bone01의 업노드를 따라가도록 해서 축 정렬을 해준다.

Point02는 루트본의 보조역할을 하면서 하위 본을 바라보는 역할을 한다. 따라서 업노드는 루트 본을 따르고 룩 앳은 하위 관절을 보조 더미를 바라보도록 설정한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

-> bone02의 구조

Bone02를 제어할 Point03을 적절한 위치에 설치하고, Bone02Point03을 바라보게 설정하고, 업노드는 Point02와 축정렬을 이루도록 설정한다.

Bone02는 하위 더미를 바라봄과 동시에 업노드는 자신의 보조 더미를 바라보도록 설정하여 축이 뒤틀어 지지 않도록 설정한다.

이 설정이 트위스트 플립을 일으키지 않도록 하는 가장 중요한 원리라 할 수 있다.

 

 

 

 

 

 


 

 

 

 

-> Point04의 구조

 

Point04Bone02의 보조더미 역할을 해준다. Point01Bone02의 자식으로 연결될Bone02와 함수 가 없기에 보조 역할을 해주는 더미가 된다. Point01Bone02에 연결되면 논리적인 무한 루프에 빠지게 되므로 자체적으로 링크가 되지 않도록 설정된다.

이제 숨겨졌던 실린더 오브젝트를 꺼낸후 Point03 오브젝트를 이리저리 움직여보면 Bone02의 트위스트 특성이 매우 훌륭하게 반응한다는 것을 알 수 있다.

 

 

 

 

 

 

 

 

 

 

7. 어깨 본 구조


  • 어깨에는 트위스트 본과 삼각근 본이 추가로 필요하다. 삼각근과 어깨 관절은 매우 자유로와서 180도 이상 각도로 회전하기 때문에 캔디 랩 현상을 막아줄 중간 본이 필요하고 이 중간 본을 삼각근본이라고 부른다.

  • 아래 그림이 간단한 형태의 삼각근 본과 어깨 트위스트 본의 샘플이다. 포인트 헬퍼에 의해서 삼각근의 특징과(Point01) 트위스트의 기본 특징을(Point03) 구현하고 있다. 그리고 빨간색 삼각근 본과 노란색 트위스트 본은 헬퍼와 Bip02 L UpperArmOrientation Constrant로 참조하고 있다.

  • Point01Point02LookAt Contraint로 바라보면서 업노드 컨트롤은 Bip02 L Clavicle 오브젝트를 기준으로 하고 있다.

  • Point02는 상박과 링크해 준다.

  • Point03은 실제적으로 트위스트 역할을 해주는 본으로서 LookAt을 사용하여 팔꿈치를 바라도록 설정하고 업노드는 Point01로 연결한다.

  • Point03만으로 트위스트를 주기엔 한계가 있어 Box02, Box03을 트위스트 추가본으로 사용하여 Point03과 상박을 Orientation으로 적절하게 트위스팅 되도록 설정해 준다.

  • Box01은 삼각근을 표현하기 위한 추가 본으로서 Point01과 상박에 맞춰 적절히 움직이도록 Orientation으로 연결해 준다.

  • 삼각근 본을 활용하여 어깨 갑주등을 링크 걸어 사용하는데 용이하다.