스프라이트 스모크

이 문서에서는 나이아가라에서 스프라이트 파티클로 스모크 이펙트를 생성하는 방법을 설명합니다.

Choose your operating system:

Windows

macOS

Linux

필요한 사전지식

이 페이지의 콘텐츠를 이해하고 활용하기 위해 다음 주제를 숙지해 주세요.

흔히 쓰이는 비주얼 이펙트(VFX) 기법은 텍스처와 머티리얼을 2D 카메라 페이싱 평면에 렌더링하는 스프라이트 입니다. 이 튜토리얼에서는 나이아가라 이미터를 구성하여 스프라이트를 작업합니다. 나이아가라 이미터가 포함된 나이아가라 시스템을 레벨에 배치하면 이펙트가 해당 레벨에 표시됩니다.

사전 요구사항:

이 가이드에서는 시작용 콘텐츠(Starter Content) 에 있는 M_smoke_subUV 머티리얼을 사용합니다. 이 머티리얼 또는 시작용 콘텐츠가 프로젝트에 추가되었는지 확인하세요.

프로젝트 구성

  1. 우선 콘텐츠 브라우저에 이펙트 에셋을 저장할 새 폴더를 만듭니다. 최상위 레벨(Content)에서 콘텐츠 브라우저(Content Browser) 를 우클릭한 뒤 새 폴더(New Folder) 를 선택합니다. 새 폴더의 이름을 지정합니다(예: SpriteEffect ).

    프로젝트에서 여러 개의 나이아가라 이펙트를 생성한다면 NiagaraFX (또는 비슷한 이름의) 폴더를 생성한 뒤 스프라이트 이펙트를 넣을 하위 폴더를 만들면 됩니다.

  2. 이 이펙트를 생성하기 전에 이미터의 스프라이트에 사용할 머티리얼을 만들거나 찾아야 합니다. 이 예제에서는 시작용 콘텐츠에서 가져온 머티리얼을 사용합니다. 다른 곳으로 옮기지 않아도 이 머티리얼을 가져올 수 있지만, 경우에 따라 원본을 복사한 뒤 사본을 이펙트를 넣을 폴더 또는 이전에 생성한 별도의 Materials 폴더에 넣어도 됩니다. 단계는 다음과 같습니다.

    1. 콘텐츠 브라우저의 검색 바에 `m_smoke`를 입력합니다. 검색 결과에 **M_smoke_subuv** 머티리얼이 표시될 것입니다.

      이미지를 클릭하면 최대 크기로 볼 수 있습니다

    2. 다른 폴더에 사본을 넣으려면 머티리얼을 클릭한 뒤 원하는 폴더로 드래그한 다음, 팝업 메뉴에서 여기로 이동(Move Here) 또는 여기에 복사(Copy Here) 를 선택하면 됩니다. 이동(Moving) : 이전 위치에 있는 원본 머티리얼을 삭제하고 새 위치로 옮깁니다. 복사(Copying) : 원본은 그대로 두고 새 위치에 사본을 생성합니다. 스프라이트에 대해 고유한 머티리얼을 생성하려는 경우 문서의 머티리얼 섹션에 있는 페이지를 확인하세요.

시스템 및 이미터 생성

다음은 나이아가라 시스템과 이미터를 생성합니다. 시스템은 하나 이상의 이미터를 배치할 수 있는 컨테이너입니다. 이미터는 생성된 새 파티클의 소스입니다.

  1. 우선 콘텐츠 브라우저에서 우클릭한 뒤, 표시된 메뉴에서 FX > 나이아가라 시스템(Niagara System) 을 선택하여 나이아가라 시스템 을 생성합니다. 나이아가라 시스템 마법사가 표시됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  2. 선택한 이미터에서 새 시스템(New system from selected emitters) 을 선택합니다. 다음(Next) 을 클릭합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  3. 템플릿(Template) 에서 간단한 스프라이트 버스트(Simple Sprite Burst) 를 선택합니다. 더하기 표시 아이콘( + )을 클릭하여 이미터 목록에 이미터를 추가하고 시스템에 추가합니다. 완료(Finish) 를 클릭합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  4. 새 시스템 이름을 SmokeSystem 으로 지정합니다. 더블 클릭하여 나이아가라 에디터에서 엽니다. 나이아가라 시스템 이름 지정

  5. 새 시스템의 이미터 인스턴스 이름은 기본적으로 SimpleSpriteBurst 라고 지정되지만 변경도 할 수 있습니다. 시스템 개요에서 이미터 인스턴스의 이름을 클릭하여 필드를 편집할 수 있습니다. 이미터 이름을 FX_Smoke 로 지정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

렌더러 세팅 변경

  1. 이 가이드에서는 스택에 표시되는 이미터 모듈 그룹을 살펴봅니다. 렌더러에서 머티리얼을 설정할 때까지는 프리뷰 또는 레벨에 아무것도 표시되지 않습니다. 우선 시스템 개요(System Overview) 에서 스프라이트 렌더러(Sprite Renderer) 를 선택하여 선택(Selection) 패널에서 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  2. 렌더러에서 이펙트에 사용할 머티리얼을 선택합니다. 머티리얼이 SubUV 머티리얼이므로 이미지 그리드에 있는 이미지의 수를 렌더러에 알려야 합니다. 다음 프로퍼티를 아래의 값으로 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

    프로퍼티 이름

    머티리얼(Material)

    M_smoke_subUV

    서브 이미지 크기(Sub Image Size)

    X: 8.0, Y: 8.0

    서브 UV 블렌딩 활성화(Sub UV Blending Enabled)

    체크됨

  3. SmokeSystem 을 레벨로 드래그합니다.

    파티클 이펙트를 만들 때는 항상 시스템을 레벨에 드래그하는 편이 좋습니다. 이렇게 하면 모든 변경과 편집을 레벨에서 볼 수 있습니다. 시스템에서 변경한 내용은 자동으로 레벨의 시스템 인스턴스에 전파됩니다.

이미터 업데이트 그룹 세팅 편집

우선 이미터 업데이트(Emitter Update) 그룹에서 모듈을 편집합니다. 이 행동은 이미터에 적용되며 프레임마다 업데이트됩니다.

  1. 시스템 개요 에서 이미터 업데이트 그룹을 클릭하여 선택 패널에서 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  2. 스모크의 버스트가 아닌 스모크의 기둥을 생성하고자 합니다. 휴지통(Trashcan) 아이콘을 클릭하여 버스트 순간 스폰(Spawn Burst Instantaneous) 모듈을 삭제합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  3. 더하기 표시 아이콘( + )을 클릭하고 스폰 속도(Spawn Rate) 를 선택하여 스폰 속도 모듈을 이미터 업데이트 그룹에 추가합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  4. 스폰 속도(Spawn Rate) 모듈에서 스폰 속도를 50 으로 설정합니다. 적당한 크기로 부푼 모양의 스모크가 만들어집니다. 이펙트를 시작하기에 유용합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  5. 이펙트를 빌드하는 동안 시뮬레이션이 무한히 루프되도록 할 것입니다. 그러면 세팅이 이펙트에 미치는 영향을 평가할 시간이 더 생깁니다. 이미터 상태(Emitter State) 모듈에서 라이프 사이클 모드(Life Cycle Mode) 드롭다운을 클릭하고 셀프(Self) 를 선택합니다. 루프 행동(Loop Behavior) 드롭다운을 클릭한 뒤 무한(Infinite) 을 선택합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

파티클 스폰 그룹 세팅

다음으로는 파티클 스폰(Particle Spawn) 그룹에서 모듈을 편집합니다. 이 행동은 처음 스폰되었을 때 파티클에 적용됩니다.

  1. 시스템 개요 에서 파티클 스폰 그룹을 클릭하여 선택 패널에서 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  2. 파티클 초기화(Initialize Particle) 모듈을 펼칩니다. 이 모듈은 관련된 여러 파라미터를 하나의 모듈로 모아서 스택의 복잡성을 최소화합니다. 포인트 어트리뷰트(Point Attributes) 에서 수명(Lifetime) 파라미터를 찾습니다. 이 파라미터는 파티클이 사라지기 전까지 표시되는 시간을 결정합니다. 사실적인 스모크 이펙트를 시뮬레이션하기 위해 수명 파라미터에 무작위성을 추가할 것입니다. 수명 모드랜덤(Random) , 최소 수명(Lifetime Min)2 , 최대 수명(Lifetime Max)3 으로 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

    프로퍼티 이름

    수명 모드

    랜덤

    최소(Minimum)

    2.0

    최대(Maximum)

    3.0

  3. 스프라이트 파티클의 크기를 조절하고, 스모크 이펙트를 더 사실적으로 만듭니다. 기본 번들의 파티클은 작은 편이니 크기를 키웁니다. 스프라이트 파티클이 겹치고 스모크 이펙트가 더 일관되도록 크기에 무작위성을 약간 더합니다. 스프라이트 어트리뷰트(Sprite Attributes) 에서 스프라이트 크기(Sprite Size) 파라미터를 찾아 활성화 여부를 확인합니다. 스프라이트 크기 모드(Sprite Size Mode)랜덤 균등(Random Uniform) 으로 설정합니다. 최소최대 값을 입력합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

    프로퍼티 이름

    스프라이트 크기 모드

    랜덤 균등

    균등 스프라이트 최소 크기(Uniform Sprite Size Min)

    75

    균등 스프라이트 최대 크기(Uniform Sprite Size Max)

    200

  4. 이제 스모크가 더 커졌습니다. 회전을 약간 추가해서 파티클의 모양에 베리에이션을 더합니다. 회전에 무작위성도 추가해서 베리에이션을 더 끌어올립니다. 스프라이트 회전 모드(Sprite Rotation Mode) 옆의 드롭다운을 직접 정규화 각도(0-1)(Direct Normalized Angle (0-1)) 로 설정합니다. 그러면 회전 각도가 도 단위가 아닌 0과 1 사이의 숫자로 계산됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  5. 스프라이트 회전 각도(Sprite Rotation Angle) 옆의 드롭다운 화살표를 클릭하고 동적 입력(Dynamic Inputs) > 랜덤 범위 플로트(Random Range Float) 를 선택합니다. 그러면 정규화 각도에 최소최대 필드가 추가됩니다. 파티클이 스폰될 때 무작위 수의 각도로 회전합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  6. 최소최대 값을 아래와 같이 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

    프로퍼티 이름

    최소

    0.25

    최대

    0.5

  7. 스모크의 크기가 꽤 괜찮아졌지만, 제자리에서 돌고만 있습니다. 스폰하는 동시에 스모크 파티클이 움직여야 하므로 최초 속도를 추가합니다. 더하기 표시 ( + ) 아이콘을 클릭하고 속도(Velocity) > 속도 추가(Add Velocity) 를 선택하여 속도 추가 모듈을 파티클 스폰 그룹에 추가합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  8. 속도 옆에 있는 드롭다운 화살표를 클릭하고 동적 입력(Dynamic Inputs) > 랜덤 범위 벡터(Random Range Vector) 를 선택합니다. 그러면 속도에 최소최대 필드가 추가됩니다. 이번에도 약간의 무작위성이 이펙트에 베리에이션과 자연스러움을 더합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  9. 최소최대 속도 값을 아래와 같이 설정합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

    프로퍼티 이름

    최소

    X: 0, Y: 0, Z: 50

    최대

    X: 1, Y: 1, Z: 200

  10. 구체 위치는 모양과 스프라이트가 스폰되는 원점을 제어합니다. 구체 위치(Sphere Location) 모듈을 추가하면 스프라이트가 구체 모양으로 스폰되고, 반경을 설정하여 크기를 결정할 수 있습니다. 더하기 표시 ( + ) 아이콘을 클릭하고 위치(Location) > 구체 위치 를 선택하여 구체 위치 모듈을 파티클 스폰 섹션에 추가합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  11. 구체 위치는 모양과 스프라이트가 스폰되는 원점을 제어합니다. 구체 위치 모듈을 추가하면 스프라이트가 구체 모양으로 스폰되고, 반경을 설정하여 구체 모양의 크기를 설정할 수 있습니다. 구체 반경(Sphere Radius)64 로 설정합니다. 구체 분포(Sphere Distribution)랜덤(Random) 으로 설정해야 합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  12. 이 스모크 이펙트에 사용하는 스프라이트 머티리얼은 스프라이트 시트를 사용하며, 여기에는 함께 연결되어 애니메이션되도록 설계된 여러 이미지가 포함되어 있습니다. 이 사항을 고려하지 않으면 렌더러에서 시트의 첫 번째 스프라이트만 사용하게 됩니다. 서브 UV 애니메이션(SubUV Animation) 모듈을 추가하여 이 문제를 해결할 수 있습니다. 파티클 스폰의 더하기 표시 ( + )를 클릭하고 서브 UV(Sub UV) > 서브 UV 애니메이션(SubUV Animation) 을 선택합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  13. 서브 UV 애니메이션 모듈에서 서브 UV 애니메이션 모드(SubUV Animation Mode) 드롭다운을 클릭하고 선형(Linear) 을 선택합니다. 시작 프레임(Start Frame) 에는 0 , 종료 프레임(End Frame) 에는 63 을 입력합니다. 스프라이트 시트에는 8x8 이미지 그리드가 있으므로 총 이미지 수는 64입니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

파티클 업데이트 그룹 세팅

이제 파티클 업데이트(Particle Update) 그룹에서 모듈을 편집합니다. 이러한 행동은 파티클에 적용되어 각 프레임을 업데이트합니다.

  1. 시스템 개요 에서 파티클 업데이트 그룹을 클릭하여 선택 패널에서 엽니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  2. 파티클 스폰에서 속도를 추가했으므로 파티클이 처음 스폰되었을 때 약간 움직일 수 있습니다. 이제 시간에 따른 움직임을 추가하고 스모크를 띄울 것입니다. 파티클 업데이트더하기 표시 ( + ) 아이콘을 클릭하고 힘(Forces) > 가속 힘(Acceleration Force) 을 선택하여 가속 힘 모듈을 추가합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  3. 나이아가라가 새 모듈을 그룹의 스택 하단에 추가하므로 '모듈에 일치하지 않는 종속성이 있음'이라는 오류가 표시됩니다. 가속 힘 모듈이 힘과 속도 해결(Solve Forces and Velocity) 모듈 뒤에 배치되었기 때문입니다. 이슈 고침(Fix Issue) 버튼을 클릭하여 모듈을 옮깁니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  4. X , Y 값은 0 , Z 값은 500 으로 설정합니다. 그러면 시간이 지나면서 스모크가 위쪽으로 움직입니다. 생성하려는 스모크 이펙트의 유형에 따라 이 세팅을 조절하거나, 이 모듈을 제거할 수도 있습니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  5. 시스템에서 스모크 이미터를 재사용하려면 별도의 에셋으로 저장하면 됩니다. 기어(Gear) 아이콘을 클릭하여 이미터 세팅(Emitter Settings) 메뉴를 열고, 여기에서 에셋 생성(Create Assset From This) 을 선택합니다. 그러면 독립된 나이아가라 이미터 에셋이 생성됩니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다

  6. 저장(Save) 버튼을 클릭하여 변경사항을 적용하고 저장합니다.
    시스템 저장

최종 결과물

축하합니다! 스프라이트를 사용하여 간단한 스모크 이펙트를 생성했습니다.

최종 결과