UDN
Search public documentation:

ParticleExamplesKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 파티클과 이펙트 > 파티클 시스템 > 파티클 예제
UE3 홈 > FX 아티스트 > 파티클 예제

파티클 예제


문서 변경내역: Alan Willard 작성. 홍성진 번역.

개요


머티리얼 및 언리얼 에디터의 파티클 에디터를 사용하여 여러가지 종류의 파티클 효과를 구현하는 방법에 대한 간단 설명서입니다. 포괄적인 내용은 Particle System Reference KR 페이지를, 파티클을 다루는 방법에 대해서는 Cascade User GuideKR 페이지를 참고해 주시기 바랍니다.

라이팅제외(Unlit) 파티클


UnlitOpaqueExample은 라이팅제외 머티리얼(Mat_UnlitParticleExample_Opaque)을 사용해서 파티클 시스템을 만드는 법에 대한 데모입니다.

UnlitAdditiveExample은 파티클 시스템에서 첨가식으로 혼합된 머티리얼(Mat_UnlitParticleExample_Additive) 사용법의 한 예입니다. 이는 파티클끼리, 그리고 씬과 혼합된 많은 수의 파티클을 제대로 렌더링할 거라는 점에 주목해 봐야 겠습니다.

UnlitTranslucentExample은 파티클끼리 서로 및 씬과도 제대로 렌더링되는 알파 블렌딩 파티클을 만들어내기 위해, 파티클을 포함한 반투명 머티리얼(Mat_UnlitParticleExample_Translucent) 사용 예제입니다. 하나의 파티클 시스템내에서 다른 에미터들 사이의 파티클을 정렬할 때는, 에미터의 순서가 정렬순서를 결정짓습니다.

UnlitMaskedExample은 불투명 마스크된 파티클이 씬과 혼합되는 데모입니다. 라이팅제외 버전과 비슷하게, 머티리얼(Mat_UnlitParticleExample_Masked)은 OpacityMask 채널에 있는 텍스처를 사용합니다.

버텍스 컬러


캐스케이드에서 파티클의 색을 바꾸는 결정적인 요소는 이 파티클에 적용된 머티리얼입니다. VertexColor 모듈을 활용하면, 사용자는 캐스케이드의 컬러 모듈(초기색, 수명에 걸친 색, 수명에 걸쳐 색 스케일)을 사용하여 머티리얼에 값을 전달함으로써 머티리얼의 속성을 변경할 수 있습니다.

파티클 색 입히기에 대해서는 Mat_UnlitParticleExample_VertexColor 및 UnlitVertexColor를 보기로 하겠습니다.

여기서, Diffuse(확산) 텍스처가 VertexColor 모듈의 RGB에 곱해진 것을 볼 수 있습니다. 캐스케이드에서 컬러 모듈과 짝을 이루면 텍스처의 색을 주어진 색으로 모듈화하여 UnlitVertexColor의 결과를 얻게 됩니다. 파티클 시스템에 ColorOverLife 모듈을 추가하는 것은 수명곡선을 기준으로 파티클이 상속받기 원하는 색상의 값을 결정할 수 있도록 합니다. 이름에 'OverLife' 가 들어있는 것은 모두 상대적 수명을 가진 모듈입니다. 이는 시간값 0-1이 파티클의 수명의 척도라는 뜻입니다. 0은 탄생, 1은 소멸을 가리킵니다. 시간 0에 검정색에서 시작되는 색상 곡선을 설정, 시간 .2에 흰색으로 증가시키고, 이 값을 시간 .8까지 유지하고, 시간 1에 다시 검정색으로 떨어뜨리는 것은, 그 수명이 처음 20% 동안 차츰 밝아지다가 수명의 60%동안은 제 색깔을 온전히 유지하고, 수명의 나머지 20% 동안은 차츰 어두워지는 파티클 시스템을 만드는 것입니다.

VertexColor 를 좀 더 높은 수준으로 사용하는 방법은 색 변화를 보완하기 위하여 머티리얼의 또 다른 값에 영향을 주는, VertexColor모듈의 알파 채널을 사용하는 것입니다. Mat_UnlitParticleExample_VertexColor_OpacityAlpha 와 이의 파티클 시스템인 UnlitVertexColor_Alpha를 보면, 이 VertexColor의 알파 채널 모듈이 Diffuse(확산) 텍스처의 알파 채널로 증가되고, 그 다음엔 그 머티리얼의 Opacity(불투명) 채널에 연결되는 것을 볼 수 있습니다. 이는 ColorOverLife 모듈에서 AlphaOverLife 몫의 분배를 변경함으로써 파티클의 지속기간을 통한 투명도를 제어할 수 있다는 것을 의미합니다.

위의 방법 대신 VertexColor 모듈의 알파 채널을 머티리얼 시스템의 다른 값들을 모듈화하는 데 사용할 수도 있습니다. 예를 들어, UnlitVertexColor_AlphaEmissive와 그의 머티리얼인 Mat_UnlitParticleExample_VertexColor_EmissiveAlpha에서, VertexColor의 알파 채널은 커다란 값, 이 경우에는 고정값인 200으로, 곱해준 다음 다시 확산 RGB의 곱(product)과 VertexColor의 RGB 컬러로 곱해주고 있습니다. 이 결과 AlphaOverLife를 사용해 발산 강도를 제어할 수 있습니다.

Sub UV


머티리얼의 ParticleSubUV 모듈을 사용하면 파티클 상의 단일 이미지를 파티클 에미터의 SubUV 설정을 이용해서 복수 '프레임'간에 전환하거나 혼합할 수 있습니다. SpriteSubUVExample의 파티클 에미터에 적용된 Mat_ParticleSubUVExample 머티리얼이 이에 대한 데모입니다. 머티리얼이 만들어진 뒤 이를 에미터에 적용하고 에미터의 (베이스 에미터 속성에서) InterpolationMode (보간 모드) 및 가로 세로 서브-이미지의 수를 설정하면, SubImage Index 모듈을 사용하여 이들 서브 이미지간의 혼합을 정할 수 있습니다. 커브 에디터에 SubImage Index 를 추가하고 그 분포를 ConstantCurve로 변경하면 시간에 따라 사용되는 서브이미지 제어가 가능합니다. 값이 0에서부터 시작하므로, 마지막 이미지는 항상 이미지의 수 - 1이 될 것입니다. 따라서 여기서 예로 든 커브는 0에서 3이 됩니다.

상세 정보에 대해서는 UDN의 Particle Sprite SubUV Emitter Tutorial KR 페이지를 참고하시기 바랍니다.

Event Generator


레벨에 비를 내리게 하고싶을 때, 캐릭터는 물론 메시와 머티리얼에 비의 스플래시 효과를 내게 할 수도 있습니다.

캐릭터 폰(Pawn)의 스플래시는 파티클 시스템을 모델의 위에 두고, 캐릭터와 함께 움직이도록 폰에 링크시키면 됩니다. 파티클 시스템 내에는 에미터가 둘 있습니다. 첫 에미터는 매우 작(아 보이지도 않)은 파티클을 파티클 시스템에서부터 메시로 내려 보냅니다. 이들은 매우 빠르게 움직이며 수명이 짧습니다. 이 파티클은 충돌이 감지되면 그 파티클을 "죽이도록" 충돌 설정이 되어 있습니다. 이 에미터는 (Event 하위메뉴 아래) Event Generator 라는 모듈도 갖고 있으며, _collision_으로 설정되어 있고 고유의 이름을 갖고 있습니다. 이 모듈은 파티클 가운데 하나가 무엇인가와 부딪칠 때마다 이벤트를 생성합니다.

파티클 시스템의 둘째 에미터는 작은 물튀김입니다. 이는 스프라이트나 작은 메시가 될 수 있습니다. 이 파티클 시스템 안에는 (역시 캐스케이드의 Event 서브메뉴 아래에) Event Receiver Spawn 모듈이 있습니다. 이 모듈은 Event Generator 모듈의 지시를 받으며, 그 위치에서 충돌 이벤트가 감지되면 파티클을 스폰하라는 지시를 받게 됩니다.

최종 결과는 메시와 충돌하고, 그 충돌 지점에서 작은 스프래시를 스폰하는, 개별 투명 파티클 스트림입니다.

Anim Trails


Anim Trails는 애니메이션 자체로부터 직접 샘플링한 데이터를 사용하여 애니메이션 뒤에 흔적이나 선을 표시할 수 있는 기능입니다. 사용자-설정 프레임율로 샘플링하는 식으로, 무기 흔적같은 효과를 프레임율-독립적으로 만들어낼 수 있는 방법을 제공해 줍니다.

상세 정보는 UDN 의 Anim Trails KR 페이지를 참고 하십시오.