Body 리깅(13) 팔 리깅 - 조인트 설정-



1조인트 생성

- 프론트 뷰 상태에서, 수평으로 팔 조인트를 연결한다. (shift키 클릭)

- 어깨의 조인트는, Attribute속성창에서 조인트 orient로 축을 돌려준다.


- 관절 조인트는 뒤로 살짝 이동시킨다.(insert키 + pivot이동) 

- perspective로 돌려보면서 팔 위치를 정해준다.


2 조인트 이름 설정하기
- Arm_L_ik_jnt , Elbow_L_ik_joint, Wrist_L_ik_joint로 이름을 설정한다.

- radius를 설정하고, 조인트가 흐르는 방향이 x축, 윗 방향이 y축, 깊이감이 z축으로 하는 설정을 한다.(기본 셋, 아래사진 참고) 


3 조인트 복사
- ctrl_+d로 복사해서 Arm_L_fk_joint, Elbow_L_fk_joiont, Wrist_L_fk_joint를 생성한다.

-> BSkin(스키닝할 조인트) 조인트를 지금 생성해도 상관없지만, 팔의 BSkin조인트는 팔의 회전구조를 넣어야 하기 때문에 뒤에 생성한다.


4 mirror 조인트
- 좌측 ik ,fk조인트를 오른쪽으로 mirror해준다. (fk, ik radius값 다르게 설정)


5 ik조인트 설정 

- rig 카테고리에서, create ikHandle을 실행한다. 

-  ikhandle의 설정에서, rotate 체인방식을 선택하고, Arm_L_ik_jnt를 먼저 선택한 후, Wrist_L_ik_jnt를 선택한다.  ikHandle이 생성된다. ( Arm_L_ikHandle 이름지정)


- Arm_L_ikHandle에 피봇을 맞춰서, 네모난 ik손목 컨트롤러를 넙스 커브로 만든다. (Arm_L_ik_Ctrl)

 

-> Arm_L_ik_Ctrl를 freeze한다.


6 왼쪽 컨트롤러 연결
- Arm_L_ik_Ctrl를 먼저 선택하고, Arm_L_ikHandle을 선택해서 parent constrain을 한다. (maintain offset 체크, 아래사진 참고)


7 오른쪽 ik컨트롤러 생성
- Arm_L_ik_Ctrl을 복사 & 그룹 & scale : -1 (Ctrl + D -> Ctrl + G -> scale X: -1)한다. 

    또, 빈 그룹을 생성한 후(Ctrl + G), x축:-180으로 설정한다.

 

- 왼쪽에서 복사한 Arm_R_ik_Ctrl의 그룹을 해제한다. 

- x축으로 -180도 회전시킨 빈 그룹 이름을 Arm_R_ik_Ctrl_Grp로 지정하고, 

    그 아래에 Arm_R_ik_Ctrl를 넣고, Freeze한다. (하부 hiearchy 구조: parent ) 


- Hiearchy 구조를, 왼쪽손목도 똑같이 만들어준다. (Arm_L_ik_Ctrl를 그룹해서, Arm_L_ik_Ctrl_Grp로 이름을 지정한다.)


- 오른쪽도 왼쪽 손목처럼 ik handle을 설치하고, Arm_R_ik_Ctrl(Main)와 Arm_R_ikHandle을 constrain parent한다.  


8 폴벡터 설치하기
- 넙스커브로 폴벡터 컨트롤러를 생성한다. 

- 폴벡터 컨트롤러를 팔꿈치 뒤에 위치시키고, freeze한다. 

폴벡터 컨트롤러에 'add Attribute'를 실행하고, parent항목(enum: upperBody & clavicle)을 생성한다.


- 이름은, Arm_PV_L_Ctrl로 한다. 


- 폴벡터 컨트롤러(Arm_L_PV_Ctrl)를 먼저 선택하고, 손목의 ikHandle(Arm_L_ikHandle)을 선택해서 constrain -> pole vector를 실행한다.


- 오른쪽 폴벡터 컨트롤러는 behavior방식 (empty Group & x축: -180도) 아래에 넣고, Freeze한다. 이후 과정은 왼쪽과 같은 방식으로 폭벡터를 리깅한다.