>> LOGIN
-이 웹사이트는 다음 플랫폼에서 동작이 확인되었습니다. : Internet Explorer Mozilla FireFox Google Chrome Apple Safari Android 2.2(Froyo) Android 2.3(GingerBread) Android 4.0(IceCreamSandwitch) Android 4.1(JellyBean)

CGCODE.net |

무한궤도 제어할 수 있도록 세팅하기

by Devil on Apr 10, 2011
첨부 '5'

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 시켜주면 끝.

 

 

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


Designed by hikaru100

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5

CGCODE.net의 모든 게시물 및 자료의 저작권은 CGCODE.net과 김진우에게 있습니다. 합법적 허가 및 출처의 명시없이 이를 도용,복사,사용하는 경우에는 관련 법령에 의거하여 처벌될 수 있습니다.
Since 2003. CGCODE and Devil.Genius all rights reserved. In the U.S, Korea(Republic of), and/or other countries. All information on CGCODE.net is developed by JinwooKIM.
All contents are protected by the copytight laws. Visitors are not supposed to use or edit any contents in this website without the authorization or permission.
CGCODE.net 
Ver 3.57 - Released Beta stage. WebMaster : geniusione@gmail.com