BodyBaseArmature.blend
1.16MB

https://www.youtube.com/watch?v=G2orwhrl4VU 

블렌더에서 리깅을 할 때, 본 컨스트레인트와 드라이버를 사용하는데, export나 append를 통해서 본 컨스트레인트와 드라이버를 넘겨 줄 방법이 아직 없는 듯 하다. 첨부 blend 파일을 베이스로 모델링을 해서 body 리깅 작업을 하기 위해 만든 파일이다. blender driver constraint export import append

 

블렌더 리깅 메모

(1)기초뼈대
메쉬 변경에 관계 없는 본은 deform 체크를 해제
어깨 팔의 본은 회전 축이 X가 되도록 돌려준다. 
어깨는 정면 방향이 X, 팔은 윗방향이 X.
다리-골반에는 보조 본을 넣어주고 root.upper를 부모로 설정한다. (waist)
포즈모드에서 M키로 레이어 설정. 컨트롤에 관계 없는 본을 이동해줌


(2)하반신
<IK>
ik.foot본은 Alt+P 부모관계클리어. 포즈모드에서는 Alt+G R S 로 초기화.
포즈모드에서  컨트롤 하고 싶은 바로 앞 본에 본:제한-IK를 걸어줌
타겟은 ik.foot 체인길이를 설정
무릎에 pole을 추가. Alt+P 부모관계클리어. 포즈모드에서 본:제한 항목에 pole 설정
foot본에 회전카피 제한을 걸어서 타겟을 ik.foot로 설정
pivot.foot를 ik.foot의 부모로 설정
toe본에는 회전카피 제한을 걸어 타겟을 con.toe를 설정
pivot.foot의 부모는 con.toe를 설정
con.toe의 부모는 root.foot를 설정. pole.knee의 부모도 root.foot를 설정
root.foot의 부모는 fk.leg를 설정.  fk.leg의 부모로 root를 설정
foot, toe 본에 damped track 제한을 걸어 타겟을 con.toe를 설정


(3)머리
<IK>
ik.head를 만들고 deform 체크해제, Alt+P 부모관계클리어
포즈모드에서 neck본에 본:제한-IK를 걸어줌
head본의 부모로 ik.head를 설정. head본에 위치카피 제한을 걸어 타겟은 neck본으로 설정.
<드라이버>
ik.head, neck본의 위치를 XYZ오일러각으로 설정
neck본의 Y값에 우클릭해서 add driver를 선택. driver에디터 창에서 타겟을 ik.head로 설정하고,
Z rotation, Swing and Z twist, Local Space 를 선택. 변수명을 phi로 하고 수식을 phi/2로 설정
<FK>
ik.head의 부모로 fk.head를 설정 


(4)상반신
<IK>
ik.spine을 만들고 deform 체크해제, Alt+P 부모관계클리어
포즈모드에서 spine1 에 본:제한-IK를 걸어줌
spine2의 부모로 ik.spine를 설정. spine2본에 위치카피 제한을 걸어 타겟은 spine1로 설정.
**
fk.head 의 부모로 spine2를 설정해서 떨어지지 않게 한다. 
   >> IK가 2중으로 겹쳐서 ik.spine으로 움직여지지 않는 경우, 
       spine1 의 본:제한-IK를 삭제하고 damped track 제한을 걸어주고 타겟에 ik.spine을 걸어줌.
       3.3 기준으로는 IK가 2중으로 겹쳐도 잘 작동하는듯 하다.
<드라이버>
ik.spine, spine1, hip본의 위치를 XYZ오일러각으로 설정
spine1의 Y회전값에 우클릭해서 add driver를 선택. driver에디터 창에서 타겟을 ik.spine로 설정하고,
Z rotation, Swing and Z twist, Local Space 를 선택. 변수명을 phi로 하고 수식을 phi/3*2로 설정
우클릭 드리이버 카피 - 붙여 넣기로 hip본에 드라이버 설정
<FK>
ik.spine의 부모로 fk.spine을 설정
fk.spine의 부모로 root.upper본을 설정


(5)팔
<IK>
hand본을 복제해서 ik.hand를 만들고 deform 체크해제, Alt+P 부모관계클리어
pole.elbow를 만들고 deform 체크해제, Alt+P 부모관계클리어
포즈모드에서 arm2에 IK본:제한-IK를 걸고, 타겟을 ik.hand로 설정. pole angle을 수정해서 x축이 위를 향하도록 조정
hand본의 부모로 ik.hand를 설정. hand본에 위치카피 제한을 걸어 타겟을 arm2로 설정
<세분화>
arm2를 세분화하고 arm3으로 설정. arm3을 선택하고 arm2를 추가 선택후 
pose-constraints-copy constraints to selected bones 로 복사후 arm2의 컨스트레인트를 삭제
체인길이를 3으로 하고 hand본의 위치카피 타겟을 arm3로 수정
arm3의 bone패널의 IK 항목에서 X회전0도 Y회전-90,90도, Z회전0도 제한을 설정
<드라이버>
arm3, arm2의 위치를 XYZ오일러각으로 설정
arm3의 Y회전값에 우클릭해서 add add driver를 선택. driver에디터 창에서 타겟을 ik.hand로 설정하고,
Y rotation, Swing and Y twist, Local Space 를 선택. 변수명을 phi로 하고 수식을 phi로 설정
arm3의 드라이버 카피해서 arm2에 붙여넣기
arm3의 bone패널의 relations-Inherit Rotation 체크해제
<FK>
pole.elbow 와 ik.hand의 부모로 fk.hand를 설정
fk.hand의 부모로 shoulder본을 설정


(6)손
a-e001 손가락을 복제해서 컨트롤 본을 작성(con.a-e). deform 체크해제, con.b-e는 Alt+P 부모관계클리어후 hand본을 부모로 설정.
b.001에 회전카피를 걸어 con.b를 타겟으로 설정
b.001에 transformation제한을 걸어 con.a를  타겟으로 설정. local space로 설정. Map from, Map to 설정.
con.b에 Limit Scale제한을 걸어 local space로 설정. 변형안하는 항목은 1로 설정.
b.002 -> b.003 순으로 선택하고 pose-constraints-copy constraints to selected bones 로 복사
나머지 con본을 선택하고 마지막에 con.b를 선택 후,  pose-constraints-copy constraints to selected bones 로 복사
나머지 003본을 선택하고 마지막에 b.003을 선택 후,  pose-constraints-copy constraints to selected bones 로 복사. 타겟을 각각 수정
나머지 002본을 선택하고 마지막에 b.002을 선택 후,  pose-constraints-copy constraints to selected bones 로 복사. 타겟을 각각 수정
나머지 001본을 선택하고 마지막에 b.001을 선택 후,  pose-constraints-copy constraints to selected bones 로 복사. 타겟을 각각 수정
e.000에 damped track 제한을 걸어주고 타겟에 con.e을 걸어줌.

(7)대칭
왼쪽에 해당하는 본을 전부 선택하고 Armature - name - AutoName Left/Right로 이름에 .L을 붙임
Armature - Symmetrize 로 오른쪽 본을 만들어줌
드라이버는 대칭화가 안되므로 복사해서 추가하고 타겟본을 .R로 수정후 Update Dependencies를 눌러줌

---------------------------

위의 설명처럼 base본에서 하나하나 설정해서 Rig를 만들 수 있지만,

아래 영상과 같이 Rigify를 이용해서 Rig를 만들 수 있다.

 

https://www.youtube.com/watch?v=vKgH5zXIYmM&list=PLdcL5aF8ZcJv68SSdwxip33M7snakl6Dx&index=13 

 

+ Recent posts