본문 바로가기

ani/Character setting (rigging) in 3ds max

3ds max _ 팔 트위스트 본 대체하기, replace twist bones with boxes

지난 게시물에 이어 ..

 

 

지난 게시물 :

1. 3ds max 트위스트 플립 현상의 해결 > 바로가기

 

 

 


 

 

(1) 문제의 현상

 

지난 게시물에서 트위스트 플립 현상이라 하여,

팔을 들어올리면 팔의 메쉬가 휙 뒤집혀 버리는 현상에 대한 해결 과정을 담았다.

 

그러나

팔의 셋팅에서 메쉬의 뒤집힘 현상이 여러 양상을 지니고 있을 줄은 몰랐다.

지금까지 내가 해왔던 캐릭터와 달리, 유난히 모델링의 퀄리티 높은 캐릭터를 셋팅하면서 점점 완벽한 셋팅에 대한 욕심이 생겼었던 터이다.

 

 

 

이랬던 팔이
팔을 들어올리면 늘어나는 저 메쉬가 도저히 잡히지 않았다.

 

이런 현상 때문에 캐릭터 셋업 테크닉의 저자처럼 트위스트 본을 사용하지 않고

polygon의 box로 그 트위스트 본을 대신해보았다.

 

해결을 다 하고 안 사실 이었지만, 트위스트 본에는 팔과 어깨 움직임의 정도에 따라 본이 돌아가는 비율을 조절할 수 없기 때문에 트위스트 본이 꽤나 불편한 부분이었던 것 같다.

(이렇게 적고보니 무슨 말인지 모르겠네..)

 

 

 

 


 

 

 

(2) 문제 해결

 

 

 

1. 우선 팔에 트위스트 본을 적용해놓은 상태라면 bipad의 figure mode에서 트위스트 본을 없애주자. 

내 경우에는 forearm의 트위스트 본은 그냥 두고, upper arm의 트위스트 본을 지웠다.

 

 

2. box를 하나 생성하여 location의 값을 0.0.0에 위치하도록 한다. 

 

 

이때 중요한 것은 절대! scale로 크기를 변형시키지 않는다.

일단 크기는 뒤에 다시 다룰테니 가만히 두는 걸로.

 

 

 

 

3. box의 pivot을 box의 center로 변경해준다.

pivot의 위치를 변경하는 방법은 위 사진처럼 따라하면된다.

1) box를 먼저 선택을 하고

2) 우측 패널의 Hierachy에서 Affect Pivot Only를 선택 

3) Center to Object 클릭

4. 다시 Affect Pivot Only를 선택해제 해준다.

 

 

위 과정을 거치면  pivot point가 중심으로 이동되어 있을 것이다. 

 

 

 

4. box를 선택한 상태에서 upperArm에 Align을 아래와 같은 옵션으로 적용시킨다.

 

 

option에 Align orientation이 모두 선택 되어있어야 한다.

 

Align을 하게 되면 위와 같이 upperArm에 비해 box가 크다면 저렇게 보일 것이다

 

 

 

5. 목표는 트위스트 본을 대체하는 것이기 때문에 

크기를 bipad의 upperArm 안쪽으로 들어 올 수 있도록 변경한다. 

이때 변경을 해주는데에 scale 값으로 변경시키는 것이 아니다. 우측 패널의 

modify 에서 parameters의 수치로 변경해준다. 

 

 

이왕이면 정수로 바꾸어 주는것이 편하다. 좌우대칭으로 만들기 위해서는 이게 편하다.

그리고 Length와 Height의 수치는 같게 하여 밑면이 정사각형이 되도록 해준다.

width는 나는 upperArm에 박스를 두개 심을 거이기 때문에 저런 크기로 했지만,

만약 본인이 3개를 넣는다면 적당히 크기를 줄여서 넣으면 된다. 

 

 

근데 하다보니깐 pivot 중심으로 크기가 변하는 줄 알았는데,, 아니였군

다시 3번과 4번으로 돌아가 똑같이 해주면 된다.

(멍청,,죄송,,)

 

 

 

 

잘 따라 왔다면 위와 같이 박스가 위치해야 한다. 

 

 

6. 지금부터는 좌우 동시에 진행해야한다.

우선,

똑같은 방법으로 왼쪽도 같이 진행하고, 박스의 크기는 오른쪽 팔에 있는 박스 수치 그대로 적용하여 좌우대칭이 되도록 한다.

 

결과적으로 위와 같은 모양이 되어야 한다. 나는 편의를 위해 박스의 색을 통일해주었다.

 

 

 

7. box를 선택한 상태에서 alt + 우클릭하면 창이 하나 뜨는데, local을 선택해주면 pivot이 아래와 같은 상태로 보일 것이다.

 

 

그 상태에서 x축만 잡고 이동시켜

 

 

upperArm의 적절한 위치로 이동시킨다. 

 

 

 

 

8. shift를 누른 상태에서 또 x축으로 이동시키면 박스가 복사된다. 

원하는 수만큼 트위스트 본을 대체한다.

나는 두개만 넣었다.

 

박스를 복사시켜 upperArm 에 두개 넣은 상태

 

 

9. 위에서도 말했듯이 좌우 대칭이 되는 것이 중요하다. 

그래서 지금 부터는 좀 귀찮은 작업인데, 

 

첫번째 박스를 선택한 상태에서 alt+우클릭 한뒤 world를 선택하고 location 값을 확인한다. 

내 경우에는 (16.31, 5.125, 137.591) 값이 되는데,

이값을 그대로 반대편에 해당하는 box에 x값만 음수값으로 변경하여 location 값을 똑같이 복사한다. 

 

그러니깐 좌측 box의 location값은 (-16.31, 5.125, 137.591)가 되어야 정확히 좌우대칭이 된다. 

 

아래 location 값을 확인! x값은 음수값으로 나머지는 같게 해야한다. 

 

 

10. 나머지 box도 같은 방법으로 한다. 

사실 내가 아는 선안에서는 이게 가장 쉬운 방법인데, 다른 방법이 있다면,, 알려주시면 감사하겠습니다. 

 

 

 

최종적으로 이런 모양이 되어야 한다. 

 

 

 

 

 

이 다음부터는 이 박스에 트위스트 본과 같은 역할을 해주게끔 변경해주는 작업이다. (가장 중요한 작업)

 

 

 

11. 아래와 같은 경로로 box를 orientation constraint로 컨트롤러를 바꿔준다. 

 

 

 

12. ok를 누르면 아래 사진처럼 우측 패널에 orientation Constraint 창이 추가가 되는데,

아래와 같이 Add Orientation Target 으로 upperArm과 upperArm의 pivot에 위치해 있는 point를 추가해준다. (point가 없는 경우는 전 게시글을 참고하여 추가해준다.) 이때 weight 값을 point는 80, upperarm은 20으로 바꿔준다.

 

 

weight값에 대해 좀더 설명하자면, 

point의 움직임의 정도 80%와 upperarm의 움직임의 정도 20%를 반영하여 저 box가 회전한다는 뜻이다.

이 글의 서두에 보여졌던 문제 현상은 사실, 트위스트 본은 어깨의 움직임값 50% upperArm의 움직임 50%를 반영하기 때문에 메쉬가 어깨를 따라 더 움직여서 늘어져 보였다. 그래서 이 값을 바꿔준다는 것이다. 

 

그래서 weight 값은 모델링에 따라 변경될 수 있다.

이 값은 언제든지 변경할 수 있으니 우선 대충 값을 넣어두고,

나중에 스키닝이 다 끝났을 때 팔을 움직여 보면서 적당한 값을 넣어준다.  

 

 

 

 

13. 아래쪽 박스도 같은 방법으로 orientation constraint로 바꿔준 뒤, point와 upperArm의 비율을 50 : 50 으로 맞춰준다. (아래 사진 참고)

 

 

 

14. 마지막으로 두 박스 모두, upperArm의 자식으로 링크 시킨다. 

 

15. 좌측도 똑같은 방법으로 적용시킨다. 

 

16. 끝! 잘 움직이는지 팔을 움직여 확인하십시오!

 

 

 

 

 

(3) 최종

 

이렇게 하고 나면

 

더 이상 트위스트 본처럼 심하게 돌아가지 않는다. 

 

 


 

 

다음 게시물 예고

 

 

 

예상했겠지만,

팔쪽의 메쉬는 오늘 게시물처럼 크게 돌아가는 것은 잡았지만, 

 

아니야.. 이게 아니야........

겨드랑이쪽 스킨이 영 시원찮았다.

 

 

 

 

겨드랑이 본 심기

다음 게시물에서 계속....

 

 

 

 

 

 

 

참고 문헌 : 

 

캐릭터 셋업 테크닉

이 책은 3ds Max를 사용해서 게임용 캐릭터를 셋업...

www.kyobobook.co.kr