파티클
Cinema 4D의 파티클 시스템을 사용하면 상어떼가 득실거리는 바닷속 풍경이나 수백 척의 우주선이 있는 우주 풍경, 혹은 담배 연기 등을 아주 쉽고 직관적인 조작으로 만들 수 있습니다.
Cinema 4D의 파티클 시스템의 핵심에는 파티클의 흐름을 만들어내는 에미터라는 요소가 있습니다. 이 파티클과 파티클의 형태는 다양한 파라미터를 이용해서 수정할 수 있으며, 생성자 와 필드 힘이 파티클이 날아가는 경로를 회전시키거나 반사시키거나 산란시킬 수 있습니다. 또 파티클을 감속시키거나 가속, 소멸시킬 수도 있습니다. 다음과 같은 간단한 방법으로 파티클을 발산시킬 수 있습니다:
Cinema 4D는 어떤 오브젝트라도 파티클화 할 수 있습니다. 단순한 구체뿐만이 아니라 새나 자동차 등의 계층화된 복잡한 오브젝트에도 파티클을 사용할 수 있습니다(단 파티클 자신이나 디포머는 파티클화 할 수 없습니다).
심지어 라이트 소스도 파티클로 사용할 수 있습니다. 예를 들면 불이나 연기같은 것은 비지블 라이트로 쉽게 만들어줄 수 있있습니다. 그리고 파티클화된 라이트들도 기존의 라이트와 마찬가지로 조명과 그림자를 만듭니다.
에미터속의 모든 오브젝트들은 하늘을 나는 새들이나 물 속을 헤엄치는 물고기들처럼 완벽하게 애니메이션할 수 있습니다.
여러 개의 오브젝트를 동시에 파티클화 할 수도 있습니다(즉 새의 무리 안에 몇 종류의 서로 다른 새를 포함할 수 있습니다). 이 경우 단지 여러 가지의 오브젝트를 에미터 안에 넣어주면 됩니다. 최초의 파티클에는 맨 위에 있는 오브젝트가, 2번째의 파티클에는 2번째의 오브젝트가 사용되어 순서대로 반복됩니다. 마지막 오브젝트 다음에는 다시 최초의 오브젝트가 사용됩니다.
파티클 스트림에는 여러 가지가의 랜덤 파티클 오브젝트를 혼합해서 사용할 수 있습니다(즉 다양한 새들로 이루어진 새들의 무리 등과 같은). 이 경우 파티클을 적용해줄 서로 다른 오브젝트들을 간단히 에미터 안으로 드래그 해주는 것 만으로도 서로 다른 오브젝트들을 같은 비율로 발산시켜줄 수 있습니다.
또한 거품이 이는 액체와 같은 매우 여러운 효과를 만들어내기 위해 메타볼을 사용할 수도 있습니다.
만약 에미터의 파티클을 메타볼에 용합시킬 경우에는 에미터는 메타볼의 자식 오브젝트 상태여야 합니다.
에미터에서 발사된 파티클은 기본적으로 일정한 속도로 직진합니다. 그러나 제어자의 범위 안에 들어오게 되면 파티클의 속도나 방향은 지정된 조건으로 변하게 됩니다. 각 제어자는 디폴트에서는 오브젝트 좌표의 Z축으로 따라 작용합니다(예를 들면 바람 제어자의 바람은 원점으로부터 Z방향을 향해 붑니다). 제어자는 다른 제어자에 포함될 수 있습니다. 예를 들면 바람 제어자 안에 터뷸런스 제어자를 넣어 매우 사실적인 연기 효과를 표현할 수 있습니다.
에미터나 제어자에 포함되는 거의 모든 파라미터는 타임라인의 파라미터 트랙을 설정함으로써 애니메이션할 수 있습니다. 사실적인 돌풍을 표현하고 싶다면 바람의 강도를 애니메이션 하면 됩니다.
파티클 이팩트는 타임 슬라이더를 1 프레임씩 움직였을 경우에만 올바르게 표시됩니다. 만약 타임 슬라이더를 왼쪽으로 움직이거나 우측으로 빠르게 움직이면 파티클의 위치를 올바르게 계산하지 못하게 됩니다. 이러한 문제가 일어나는 것은 Cinema 4D가 이전의 프레임의 파티클의 위치를 기준으로 해서 현재 프레임의 위치를 계산하기 때문입니다. 따라서 에미터나 제어자의 파라미터를 변경했을 경우는 반드시 타임 슬라이더를 처음으로 되돌려서 1 프레임씩 정확하게 이동해 가면서 정확하게 계산될 수 있도록 하시기 바랍니다.
에디터 뷰로 애니메이션을 프리뷰할 때 타임 슬라이더를 1 프레임씩 확실히 움직이려면 애니메이트 / 초당 프레임 / 모든 프레임 옵션을 선택해주거나 애니메이션 툴바의 옵션 아이콘을 클릭해 프레임 초당 프레임 -> 모든 프레임을 선택합니다. 타임라인 애니메이션 컨트롤을 이용해 정확하게 디스플레이를 하기 위해서는 애니메이션 전체를 하나하나씩 작업함으로써 어떤 프레임도 빠지지 않도록 해줘야 합니다. 물론 레이 트레이서를 사용해 최종 렌더링을 건 경우에는 항상 1 프레임씩 계산되므로 파티클은 정확하게 계산됩니다.
라이트를 파티클화하는 경우에는 꼭 필요한 경우가 아니라면 조명 없음 옵션을 선택한 후 그림자 타입을 없음으로 지정합니다. 파티클화한 라이트를 조명으로 사용해서 그림자를 표현하는 것은 가능하지만 그림자의 수가 많아지게 되면 결과적으로 렌더링 속도를 상당히 떨어트리게 됩니다.
에미터의 경우에는 파티클로 사용할 수 없습니다. 이장의 마지막 부분에 광원을 파티클화하는 방법과 파티클을 메타볼로 만들 수 있는 방법이 설명되어있습니다.
경우에 따라서는 파티클의 흐름을 위해 베이크 파티클 커맨드를 사용할 필요가 있습니다. 왜 파티클을 베이크해야 할까요?
일반적인 조건에서 파티클 스트림은 동적이며 연속적으로 렌더링됩니다. 즉 다음 프레임의 파티클의 위치는 이전 프레임의 위치에 달려 있습니다. 그러나 다음과 같은 두 가지의 문제점을 야기시킬 수도 있습니다...
첫 번째로 여러 시스템이 혼재해 있는 네트웍상에서 렌더링을 할 경우를 고려해 봐야 합니다. Team Render를 이용해서 네트워크 렌더링을 할 경우에는 렌더링할 작업을 네트웍크상의 여러 컴퓨터로 분산시켜 작업하는 식으로 작업을 효율화합니다. 그러나 네트워크상에는 여러 종류의 CPU(예를 들면 Power PC, AMD, Pentium 등)나, OS가 포함되어있을 수 있습니다. 그리고 CPU나 OS에 따라서 부동소수점 계산의 정밀도도 조금씩 차이가 날 수 있습니다. 즉, 긴 프레임을 렌더링할 경우에 각각의 컴퓨터가 계산한 파티클의 위치에 차이가 생길 수 있게 됩니다. 결과적으로 최종 결과물에는 파티클 스트림에 큰 갭이 생길 수도 있습니다. 이러한 문제를 해결하려면 네트워크 렌더링을하기 전에 파티클을 베이크해줄 필요가 있습니다.
두 번째 문제는 하나의 씬에서 여러 개의 독립된 파티클을 사용하는 경우에 생깁니다. Cinema 4D에서는 원칙적으로 모든 제어자는 소스와는 상관없이 항상 씬 내의 모든 파티클에 영향을 줍니다. 만약 이것이 여러분이 원하던 바가 아닌 경우에는 파티클을 베이킹 함으로써 이런 문제를 해결할 수 있습니다.
파티클을 베이크하면 파티클 스트림은 현재의 상태로 베이크됩니다. 즉 애니메이션의 각 프레임의 파티클의 위치, 회전 그리고 크기 등이 베이크됩니다(타임라인에서도 동시에 베이크됩니다). 이렇게 파티클을 베이크함으로써 Team Renderer 네트웍상에 포함되어있는 모든 컴퓨터들은 정확하게 파티클을 렌더링할 수 있게 됩니다.
파티클을 베이크하려면:
오브젝트 매니저에서 해당 에미터를 선택한 후, 메인 메뉴의 시뮬레이트 / 파티클 / .
이 예제에서는 혜성의 꼬리를 만들어 보겠습니다.
먼저 을 만들어준 후 속성 매니저에서 파라미터 값을 아래의 값으로 설정합니다. 아래 항목의 수치만을 변경해주고 나머지 항목의 수치는 변경하지 말고 디폴트 값으로 그대로 둡니다.
일반 페이지
컬라= R 100%, G 70 %, B 0%;
가시 조명 = 가시 조명;
조명 없음 켬.
가시 조명 페이지
외측 크기 = 10 cm;
상대적 크기 Z (우측의 필드:세 번째 스케일 박스) = 200%;
가산 켬.
그 다음 시뮬레이트 / 파티클 / 에미터를 선택해서 에미터를 만듭니다. 속성 매니저에서 다음의 파라미터 값을 변경합니다(이외의 파라미터는 디폴트 상태로 둡니다):
파티클 페이지
에디터창의 출현수 = 100;
렌더링창의 출현수 = 100;
속도 랜덤 = 50%.
에미터 페이지
X 방향의 크기= 30 cm;
Y 방향의 크기= 30 cm;
수평 분사 각도 = 30°;
수직 분사 각도 = 30°.
마지막으로 오브젝트 매니저에서 라이트의 이름을 드래그해서 에미터로 드롭함으로써 라이트를 에미터의 자식 오브젝트로 만듭니다. 이 상태로 타임 슬라이더를 움직여 뷰포트에서 렌더링을 걸어봅니다. 혜성의 꼬리 부분을 다듬어 주려면 라이트 소스의 파라미터를 애니메이션합니다. 예를 들면 파티클은 시간이 지남에 따라 노란색으로 시작해서 오랜지색으로 변한 후 다시 검정색으로 변하도록 할 수 있습니다. 제어자를 몇 개 더 추가하면 보다 좋은 효과를 낼 수 있습니다.
이 예에서는 파티클을 메타볼에 결합하는 방법에 대해 배울 수 있습니다. 자식 오브젝트를 포함한 에미터는 메타볼 오브젝트의 자식 오브젝트로 지정해주어야 한다는 걸 명심하시기 바랍니다.
먼저 생성하기 / 모델링 / 메타볼을 선택해서 메타볼을 만들어준 후 속성 매니저에서 다음과 같이 파라미터를 변경합니다. 첫 번째 예와 같이 아래의 목록에 나온 파라미터들만 변경하고 그 외의 수치는 디폴트 값으로 내버려 둡니다.
오브젝트 페이지
영향력 = 70%;
에디터 분할수 = 15 cm;
렌더 분할수 = 5 cm.
다음으로 시뮬레이트 / 파티클 / 에미터를 선택해서 에미터를 만들어준 후 다음의 파라미터 값을 변경합니다(그 외의 항목은 디폴트 값으로 그대로 둡니다):
파티클 페이지
출현수(에디터 & 렌더링) = 15;
수명= 100 F (램덤 = 50%);
속도= 500 cm (램덤 = 50%);
최종 크기 = 0 (램덤 = 100%)
마지막으로 생성하기 / 오브젝트 / 구를 선택해서 구를 만듭니다. 그리고 속성 매니저에서 구의 반경을 35m로 지정합니다. 오브젝트 매니저에서 구를 에미터로 드래그 & 드롭 해서 에미터의 자식 오브젝트로 만듭니다. 그리고 그 에미터를 다시 메타볼로 드래그 & 드롭합니다.
이 상태로 타임 슬라이더를 조금 움직여주고 렌더링을 걸어보면 메타파티클이 렌더링 됩니다. 여러 가지 수치로 파라미터 값을 변경해가면서 테스트해 보시기 바랍니다.