[참고서적] MAYA 2009 3D Animation
[도움] 유감 blog.naver.com/sitsod
-----------------------------------------------------------------------------------------
다리는 ikHandle로 리깅된 상태이고, 다리가 스트레치되는 리깅을 해보려고,
maya 2009 3d animation서적을 참고로 해봤으나 실패해서 지인 '유감'님의 도움으로 해결.
나중에 다시 리깅하게 될수도 있을 먼 훗날의 나를 위해서 정리겸 글을 포스팅합니다.
-----------------------------------------------------------------------------------------
1. Create>Measure Tools의 Distance Tool을 이용해서 V스냅을 이용해서 조인트와 ankle 조인트에 각각 distance locator를 생성시켜 준다. //distance Tool을 선택한 상태에서 클릭하면 절로 locator가 생성됨.
2. Local Rotation Axes (이하 LRA)를 이용해서 늘어나게 할 조인트의 축이 어딘지 확인을 한다.
2. 생성하고 나면 거리 값이 나오게 되는데, 이 거리값을 이용해서 조인트 스케일을 조절할 거다.
3. 그 다음으로 생성된 locator들이 조인트를 따라가도록 만들어야 하는데
(locator들 사이의 값으로 거리를 산출해서 스트레치하는데에 익스프레션으로 쓸 것이기 때문에)
leg조인트 먼저 잡고, locator를 잡고 [constrain]-[point]를 시켜준다.
마찬가지로 ankle쪽에도 작업을 해줘야하는데, MAYA 2009 3D ANIMATION책에서는 ankle쪽 조인트와 locator를 point constrain 시켜주라고 했지만, 그렇게 하니까 안됐었다.
outliner에서 leg ikHandle과 locator를 point constrain시켜줘야 한다.
ikHandle이 늘어난 만큼의 값을 받기 위해서 locator가 ikHandle을 따라가야 함.
[도움 준 '유감'님 감사]
[point constrain options]
발 컨트롤러를 움직였을 때, distance 값이 변하는 지 확인해 본 다음,
4. window > animation editors > Expression editor를 열어서 위와 비슷하게 작성해주면 된다.
치환할 부분은 hip_L나, knee_L이나 그 때 그 때 네이밍한 조인트 이름을 넣어주면 되는 것.
간단한 if문으로서 스케일 값이 1일 때 distance값이 23.162248이니까 (위의 캡쳐에서는 24.32039였지만)
distanceDimensionShape1.distance값이 23.162248보다 같거나 작을 경우 스케일을 1(기본)으로 놓고,
23.162248보다 길어 졌을 때는, 거리값을 스케일 값 1일 때의 값 즉, 23.162238로 나눈다는 것.
그러면 늘어나 있는 것을 확인 해 볼 수 있는데, 항상 스트레치가 되면 불편하니까 발 컨트롤러에 속성을 추가해서, stretch를 켜고 끌 수 있도록 작업을 해놓는다.
5. channel box에서 edit-add attribute
data type 는 enum 그리고 enum names에는 원하고자 하는 걸 넣어준다.
(난 그냥 off on이라고 써넣음)
그러면 채널박스에 속성이 추가된다.
6. Window - General Editors - Connection Editor 창을 열고,
발 컨트롤러 (속성을 추가한)를 선택하고 Reload Left를 하고,
distance tool의 ankle쪽 locator를 보면 밑에 contrain된 붉은 물음표가 있을거다. 그거 클릭하고
Connection Editor에서 Reload Right를 시킴.
그리고 쭉.... 내려서 위의 이미지와 같이 연결을 시켜주면 (클릭하면 됨)
이렇게 스트레치를 켜고 끌 수가 있음.
이상 끝.
*아..은근히 시간 걸리는 포스팅..ㅠㅠ