본문 바로가기

ani/Character setting (rigging) in 3ds max

3ds max _ nonflip spline IK의 트위스트 컨트롤러 셋팅

저번 게시글에 이어서...

< 셋팅의 목적 >


스플라인 셋팅에서 컨트롤러는 본의 로테이션에 직접적으로 관여하지 않는다.
기본적으로 스플라인 셋팅을 하게 되면 ik solver에 트위스트 앵글을 관여하는 부분이 있지만,
nonflip 본을 달면서 그 부분을 활용하기가 어려워졌다.
또한 ik solver에서 제어하는 트위스트조차! 플립현상이 있어서 다른 방식으로 진행하여야 한다.

따라서 별도의 트위스트 셋팅이 필요하게 되어 아래와 같은 방법으로 만들었다.


최종적으로 이러한 결과물을 만들려고 한다.

< 셋팅 방법 >


1. nonflip 툴(노란색 본)로 만든 skinbone을 제외한 나머지는 hide 시킨다.


2. 최 상단 본을 제외한 나머지 nonflip 본에 헬퍼를 하나씩 달아 포지션, 로테이션 x, y, z 축 모두 얼라인 시켜준다. (end 본은 제외)


해당 point 를 Point _twist_01, 02, 03, 04, 로 네이밍을 변경해 주었다.


3. 얼라인 시켜준 본에 해당 컨트롤러를 자식으로 링크시켜준다.

 

위와 같은 구조가 나와야 한다.




4. 다시 스플라인 컨트롤러를 unhide 하여
첫 번째 빨간 컨트롤러의 modifier에 Attribute Holder를 추가해 준다.



5. 해당 컨트롤러가 셀렉 된 상태에서 Alt +1 을 눌러 Parameter editer를 꺼내거나, Animation > Parameter editer를 꺼낸다.


위와 같이 옵션을 셋팅하고 Add 를 눌러 custon Attributes를 생성시킨다.




6. 그다음부터는 영상으로 설명을 대체하고자 한다
하려고 하는 부분은, TwistAngle 값의 정도로 점진적으로 각 twist point의 로테이션값을 가중치를 주어 회전시키고자 한다

 

https://vimeo.com/791854823

 

 




7. 이제 이 회전 값을 새로운 본을 생성하여 nonflip 본의 포지션을 따라가면서, 회전 값은 helper를 따라가도록 만들어준다.

이 부분은 영상으로 설명 대체합니다.
https://vimeo.com/789723604



영상에는 못 담았지만, skinbone_weapon_end 본 또한 포지션과 로테이션을 nonflip 본의 마지막 본에 매치시켜줘야
마지막 본이 제대로 늘어난다.

만약 각 본의 스케일 애니 쓴다고 하면,, 이 연결방식 보단 링크컨스트레인으로 하고 회전만 point_twist를 따라가는 방식이 더 나을 수 있다. 하고자 하는 애니 스타일에 따라 연결방식은 달라질 것 같다.


결과적으로 이런 멋진 트위스트 세팅이 완성된다!



8. 마지막으로 철퇴 머리 부분의 본을 새로 만들어진 마지막 본에 링크 걸어준다.


이렇게 되면 스킨 본은 변경이 되고, fbx export 하는 본들도 깔끔해진다.

 

실질적으로 작업에 쓰일 레이어는 위와 같다.
skin_bone레이어도 사실 키 잡는데는 필요가 없다.

마무리


위 셋팅을 하게 되면, 이렇게 스플라인과 동시에 본의 회전을 동시에 제어해줄수 있게 된다




해당 예제 맥스파일입니다.

spline_twist_test.max
1.14MB