Skip to content 메뉴

CGCODE - 강좌와 팁 › 무한궤도 제어할 수 있도록 세팅하기

Devil 2011.04.10 17:46:46

tread_001.jpg

 

탱크나 굴착기 같은 장비의 바퀴역활을 하는 무한궤도(aka 캐터필터)를 RS_TreadsCreation MEL 을 이용해서 리깅하고 애니메이션하기 쉽도록 수정해보자.

 

 

 

1. RS_TreadsCreation MEL Script

 

기본적으로 무한궤도라 함은,  여러개의 바퀴에 달려있는 체인이 회전하면서 체인을 끌고가는 것이로, 타이어처럼 원형이 아니기 때문에 단순한 모델링으로는 그 움직임을 제어할 수가 없다. 따라서 약간의 세팅을 필요로 하게 되는데, 다행스럽게도 능력자(?)인, Ahmed Shehata, Alvaro Sanint 두명이 함께 스크립팅한 RS_TreadsCreation 같은 MEL 스크립트가 있어서 노가다(?)를 피하고 손쉽고 간편하게 리깅/애니메이션을 할 수 있다.

 

tread_002.jpg

 

 

 RadiantSquare TreadsCreation 이 정확한 명칭이며, 필자가 사용한 스크립트 버전은 2.2 이고, 2003년에 발표된 이래로 종종 잘 사용하고 있는 MEL이기도 하다. 원래 개발자들의 홈페이지는 http://radiantsquare.com/ 였으나 개발이후 무려 8년이나 지난 지금에 와서는 웹사이트가 버려지고 말았기 때문에, 스크립트가 필요한 사람은 알아서 잘 구하시면 되겠다. 가 아니라 http://www.creativecrash.com/maya/downloads/scripts-plugins/modeling/misc/c/as_treadscreation--2 에서 다운로드 받을 수 있다. (비슷한 멜스크립트로는 HXTreadsCreation 3.8.8 도 있다.)

 

 

 

2. RS_TreadsCreation 의 문제점

 

사용자에 따라서 호불호가 나뉘는 문제겠지만, RS_TreadsCreation MEL은 무한궤도의 컨트롤을 시간(time)으로 연결해서 움직이기 때문에, 마야에서 타임라인이 움직이면 궤도도 따라서 움직이는 문제가 있다. Time+Speed 라는 개념으로 이를 제어하기 때문에 원하는 대로 잘 애니메이션 되지 않으며, 원할때 멈출수도 없어서 애니메이터의 입장에서는 이점이 상당히 짜증(?)이 난다고 하겠다. 이번 강좌에서는 이 문제도 해결해 볼 것이다.

 

 

 

3. 굴착기 기본 구조 및 세팅

 

tread_003.jpg

 

 

굴착기의 기본구조는 위와 같다.

하단부 컨트롤러에 궤도가 붙어서 움직여야 하며, 양측의 개별 궤도컨트롤러의 rotation 값을 입력하면 원하는 방향으로 회전하도록 만들것이고, 기존의 time/speed 기반의 세팅보다 애니메이션하기 훨씬 편하고 간단하다.

 

  

 

- 예제 동영상 - (음성설명은 없지만, 그래도 720P를 지원하니 고해상도로 볼수는 있다!)




 

 


 

 

 

 

 

 

4. Time을 컨트롤러로 수정하기

 

아주 간단하지만, 일단 궤도를 만들고 나면 ExpressionEditor 에  간단한 수식에 기반한 익스프레션이 생기게 됨을 알 수 있다. 여기를 잘보면,

 

tread_005.jpg

 

밑줄친 부분에 time 이라는 값을 볼 수 있는데, 모션패스에 연결된 무한궤도 오브젝트가 무한궤도를 시간의 흐름을 따라가도록 하는 수식으로, 이 알고리즘에서 time 부분을 컨트롤러의 attr 로 바꿔주면 원하는대로 제어되도록 변경이 가능하다.

 

수정 전:

treadPathCurvenurbsCircle1_motPath0.uValue=abs(1+(fmod(((time)*$attr)+(-0.02325581395*0),1)));

 

수정 후:

treadPathCurvenurbsCircle1_motPath0.uValue=abs(1+(fmod(((Tread_CTRL.tread_rotation)*$attr)+(-0.02325581395*0),1)));

(여기서 Tread_CTRL.tread_rotation 이란 추가된 어트리뷰트(attr) 값이라는것은 다들 아시리라 생각한다.^^;)

 

마지막으로 무한궤도를 제어하도록 생성된 Locator 를 원하는 컨트롤러에 contraint 시켜주면 끝.

 

 

무한궤도 세팅하기도 참 쉽죠? :-)

첨부 [5]

Copyleft © The Sketch Book Since 2001. by hikaru100