"Maya Fluid Effects의 활용"
글. 김민호
Nthma - Supervisor
마리이야기 3D 팀장
현재 극장용 3D Animation 여우비 제작 참여중
Nthma Production Team (http://www.nthma.com)
다음의 내용은 Tom Bardwell에 의해서 작성된 튜터리얼을 번역하여 필자가 내용을 더욱 보강한 것임을 먼저 밝힙니다.
관련 주저작권은 Tom Bardwell에서 있습니다.
이 효과는 로고나 2D 이미지에 대해 아주 근사하게 적용될 수 있다.
이 과정은 이미지를 Paint Fluid tool를 가지고 풀루이드 Density 속성에 로딩하는 것과 연관되어 있다.
그런 다음, 시뮬레이션을 캐쉬화하고 풀루이드를 바닦에서 모양을 만들며
휘감겨 올라오도록 하기 위해서 시간을 역전시킨다.
이 튜터리얼에서는 Alias 로고 이미지를 사용했으나 무엇이든 무관하다.

마야에서 에미터를 포함하지 않은 2D 풀루이드 컨테이너를 하나 생성한다.

이 단순한 플루이드 컨테이너가 비어 있음을 볼 수 있다.
그래서, 우리는 이곳에 우리의 이미지를 Paint Fluids Tool의 지원으로 Density 속성에 로딩할 것이다.
무엇인가를 하기전에 플루이드의 해상도를 올리는 것은 훌륭한 생각이다. 그래야 우리가 이미지를 로딩했을 때 더욱 정확하게 볼 수가 있기 때문이다.
이미지 로딩하기
fluidShape1 속성창에서 해상도를 100*100 으로 설정한다.
해당 풀루이드를 선택한 상태에서, Paint Fluid Tool 옵션을 연다.
Fluid Effects > Add/Edit Contents > Paint Fluids Tool .
Paintable Attributes를 Density로 설정하고 확인한다.

스크롤을 내려서 Attribute Maps> Import 를 클릭한다.
그리고 해당 이미지를 선택한다.

자 이제 이미지가 로딩된 것이 보인다.
그리고 약간 블럭같은 형태로 매우 거칠게 보이나 괜찮다.
이 시점에서 우리는 제대로 된 움직임을 얻어내기를 원하므로 계산이 너무 느려지는 것에 대해서 걱정하지 말자.

자 이제 Fluid Effects > Set Initial State로 가자.
이것은 매번 시뮬레이션을 재생할 때 마다 첫프레임의 모습을 유지하도록 설정한다.
시뮬레이션을 캐쉬화하기
시뮬레이션을 플레이 해보면
연기가 사라지면서 대략 100 프레임 정도에서 멋지게 위쪽으로 휘감겨 올라가는 것을 볼 것이다. 그러나, 연기가 바닥으로 흘러내리는 효과가 되어야 시간을 역전 시킬때 올라오는 것처럼 보이게 될 것이다.
또한 연기에 플루이드 컨테이너의 양측면에서 멈춘다는 것을 볼 수 있을것이다. 지금 하려는 건 연속적으로 나아가는 것이다.
다음과 같이 세팅을 해보자.

자 이제 시뮬레이션을 플레이 했을 때,
대략 50 프레임에 플루이드가 멋지게 감겨나가며 사라지는 것을 볼 수 있게 된다.

Fluid의 해상도를 증가시키고 캐쉬를 만들것이다.
플루이드의 Initial State를 지우자: Fluid Effects > Clear Initial State
풀루이드의 속성창에서 해상도를 250*250 정도로 증가시키자.
Note >>
작업 중간에 플루이드의 해상도를 올릴 경우 위처럼 속성창에서
바로하는 것은 좋지 않은 습관이다.
풀다운메뉴/ Fluid Effects/ Edit Fluid Resolution 에서 해상도를 변경해야
기존의 움직임을 안정적으로 보존하며 해상도를 증가 시킬 수가 있다.
이 부분은 강조해도 지나침이 없다.
프레임을 가서 전에 했던 것처럼 Paint Fluid tool에서 다시
이미지를 임포트 시킨다.
자 선명한 이미지를 볼 수 있게 된다.

타임슬라이더를 1에서 50으로 설정하고 Fluid Effects > Create Cache 옵션창을 연다.
애니메이션을 플레이했을 때,
캐쉬를 통해 부드럽게 플레이 됨을 알 수가 있다.
time2 노드를 통한 시간역전
자 이제는 캐쉬를 생성했고 적절한 시간을 생성해야 할때이다.
커멘트 라인에 아래와 같이 입력하자.
createNode time;
(time2 라는 노드가 생성된다, Hypergraph에서 확인가능)
기본적으로 모든 애니메이션 된 물체들은 time1 노드와 연결이 되어 있다.
현재 time2 라는 또 하나의 노드를 생성했다.
time2 노드를 선택한 생태에서 첫 프레임으로 가서 속성창을 연다.
Out Time을 50 이라고 설정하고 Out Time 위에서 오른 클릭을 하고 Set Key를 눌러 키프레임을 생성한다.

그런 다음 50 프레임으로 가서 Out Time에 0을 입력하고 또 하나의 키를 생성해 준다.
이제 시간이 time2를 위해서 역전된다.
time2 노드 연결
time2를 여전히 선택한 상태에서 shift를 툴러 fluid를 함께 선택한다.
Hypergraph를 열어 Input and Output Connections 버튼을 눌러주면
아래와 같이 보일 것이다.

time1과 fluidShape1 사이의 연결을 선택하고 지워준다.
fluidShape1 위로 Shift-MMD-drag time2 를 한다.
왼쪽에서 outTime을 선택하고, 오른편에서 currnet Time을 선택한다.

플레이를 눌르고 플루이드를 보자 멋지게 역전되었을 것이다.
거의 다 했으나 움직임이 끝에서 너무 빠르게 보인다.
이것을 고치기 위해서 time2의 마지막 프레임에서 ease out을 할 것이다.
time2 를 선택하고 Graph Editor를 열어 마지막 프레임을 선택하고 flat 타젠트를 준다.
플레이해보면 멋진 결과가 나온다.
다른 어떤것을 원할 수 도 있다.
Color 속성에 이미지를 매핑한다던지,
풀루드에 Vortex나 Radial같은 효과를 적용할 수도 있고,
시간에 더욱 다양한 키를 넣을 수도 있고 아마 기타 등등.
자 플루이디를 가지고 맘껏 놀아보자.
아래 이미지는 위의 방식을 그대로 적용해서 다시 작업해 본 것이다.
연기의 움직임을 좀 더 자연스럽게 하기 위해서 fluidShape/ Contents Detail 에 관련 조절자들을 적절히 조절해 주었으며 마야의 일반 Field를 적용해서 연기의 흐름과 방향 그리고 흩어짐을 좀 더 자연스럽게 보이도록 유도 하였다.

이미지를 클릭하면 적용 사례 동영상을 볼 수 있습니다. (divx 5.11 코덱)

글. 김민호
Nthma - Supervisor
마리이야기 3D 팀장
현재 극장용 3D Animation 여우비 제작 참여중
Nthma Production Team (http://www.nthma.com)
