이미지
제목
카테고리
등록일
Maya

Maya리깅(5) - 허리 Stitching 기능 제작하기 -

underian 2017. 7. 27. 16:05

Maya리깅 - 허리 Stitching 기능 제작하기 -

 

 

 

 

 

 

 

 3D 애니메이션에서 캐릭터의 허리가 쭈~욱 늘어난다거나, 만화 '원피스'의 캐릭터들처럼 캐릭터가 늘어나려면 어떤 리깅이 필요할까?

 

 

 

답은 '스티칭 리깅'을 설계해야 한다.

 

 

 

 

현재 제작하는 캐릭터는 모든 기능이 들어가야 하므로, 이번 포스팅에서 스티칭 리깅을 구현해보자.

 

 

 

 

 

 

1. Parent Constrain 설정

 

 

 

-> Torso_Ctrl_Top을 먼저 선택하고, Torso_Top_Joint(나중 선택)를 선택해서, Constrain -> Parent Constrain을 설정한다.

 

 

 

 

 

 

 

 

 

 

-> Maintain offset 기능을 켜면, 현재 위치를 모두 무시하고, 먼저 선택한 오브젝트의 상황에 따라 뒤에 선택한

   오브젝트가 따라간다.

 

 

 

 

 

 

 

 

 

-> 아래 사진처럼, Torso_Top_Joint를 선택하면, 파란색으로 Parent되었다는 사실을 알 수 있다.

 

 

 

 

 

 

 

 

 

 

-> Torso_Bottom_Joint 역시 Ctrl_Torso_Bottom에 parent Constrain을 걸어준다.

 

 

 

 

 

 

 

 

 

 

 

 

 

2. windows -> Node Editor를 열어준다.

 

 

 

 

 

 

 

 

-> 아웃라이너에서는 마우스 우클릭으로 'show Shapes'버튼을 켜준다.

 

 

 

 

 

 

 

 

 

 

 

3. Node에디터에서 중간마우스 버튼으로 Torso커브 Shape연결

 

 

 

 

-> 현재 허리 길이를 알아야 다른 조인트들이 커졌을 때, 어느정도 수치로 커브가 늘어날 지 알 수 있다.

 

    따라서 Torso커브의 현재 길이를 Node Editor에서 알아내야 한다.

 

 

 

 

 

 

 

 

-> Tab키를 누르고, curveInfo 노드를 검색해서 선택한다.

 

-> curveInfo 노드는 커브의 길이를 알아낼 수 있는 노드이다.

 

 

 

 

 

 

 

 

 

 

 

4. 커브길이 알아내기

 

 

 

-> Torso_IK_커브 Shape노드에서 World Space(World Space[0])을 선택하고,

     curveInfo의  'Other'의 'Input Curve'와 연결한다.

 

 

 

 

 

 

 

 

-> InputCurve Attribute속성과 노드 연결하기

 

 

 

 

 

 

 

 

-> CurveInfo 속성창을 보면, Torse_IK커브의 길이가 'Arc Length'변수값이 담겨있음을 알 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

5. MultiplyDivide노드를 불러온다.

 

 

-> CurveInfo의 'ArcLenth'노드와 MultiplyDivide노드의 input1 -> input1X노드를 연결한다.

 

 

 

 

 

-> input1 ->input1X와 연결

 

 

 

 

 

 

 

 

 

 

 

 

6. 메인 컨트롤러를 만든다. (freeze설정)

 

 

 

 

 

 

 

 

 

 

 

 

 

7. 메인컨트롤러와 MultiplyDivide노드 설정

 

 

 

-> Main컨트롤러의 shape을 노드 에디터로 가져온다.

 

-> Main컨트롤러의 노드 에디터의 Scale -> ScaleX값과 MultiplyDivide노드의 input2 노드를 연결한다.

 

 

 

 

 

 

-> input2노드와 연결

 

 

 

 

 

 

 

 

 

 

 

8. multiplyDivide노드를 하나 더 생성한다.

 

 

-> main컨트롤러와 커브의 길이를 알아서 Divide된 결과값을 다시한번 나눠주면, 결과값이 '1'이 된다.

 

-> multiplyDivide노드를 하나 더 생성한 후에 MultiplyDivide1의 ouputX를 multplyDivide2의 input1->inputX와 연결한다.

 

 

 

 

 

 

 

-> multiplyDivide2 노드의 Operation도 'divide'로 설정하고, input2값에 input1값을 넣어서 나눈 결과값을 1로 만들어주도록 한다.

 

 

 

 

 

 

 

-> input2에 input1값을 넣기

 

 

 

 

 

 

 

 

 

 

 

 

9. 몸통 조인트 4개(끝 조인트는 필요없음)를 노드 에디터로 가지고 온다.

 

 

 

 

 

 

 

-> multiplyDivide2노드의 output->ouputX값을 각 조인트 Scale ->ScaleX노드와 연결한다.

 

 

 

 

 

 

 

 

-> 나머지 조인트들도 모두 연결한다.

 

 

 

 

 

 

 

조인트 연결이 완료되면, 아래사진처럼 Torso_Top컨트롤러를 위로 움직였을때 나머지 하위 조인트들이 만화처럼 길게 쭈~욱 늘어남을 볼 수 있다.

 

 

 

 

 

 

 

 

 

다음 포스팅에서 IK리깅은 마무리한다.

 

 

 

 

댓글

최신글 전체

이미지
제목
카테고리
등록일