나이아가라에서 스프라이트 파티클 이펙트를 생성하는 방법

이 문서에서는 나이아가라를 사용하여 스프라이트 파티클 이펙트를 생성하는 방법에 대해 설명합니다.

Windows
MacOS
Linux
필요한 사전지식

이 글은 다음 주제에 대한 지식이 있는 분들을 대상으로 합니다. 계속하기 전 확인해 주세요.

일반적으로 사용되는 비주얼 이펙트(VFX) 기술은 텍스처 및 머티리얼을 2D 카메라 방향 평면에 렌더링하며, 이를 *스프라이트*라고 합니다. 다음 하우투에서는 스프라이트로 작업할 수 있도록 나이아가라 이미터를 구성하는 방법을 설명합니다. 나이아가라 이미터가 포함된 나이아가라 시스템을 레벨에 배치하면 해당 레벨에 이펙트가 표시되는 것을 볼 수 있습니다.

사전 요구사항(Prerequisite Steps):

이 하우투에서는 시작용 콘텐츠(Starter Content) 에 포함된 M_smoke_subUV 머티리얼을 사용했습니다. 아직 추가하지 않았다면 이 머티리얼이나 시작용 콘텐츠를 프로젝트에 추가하세요.

프로젝트 구성

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

    프로젝트에서 여러 나이아가라 이펙트를 생성하려면 NiagaraFX(또는 비슷한 이름)라는 폴더를 생성한 다음 스프라이트 이펙트를 위한 하위 폴더를 생성합니다.

  2. 이 이펙트를 생성하기 전에 먼저 이미터에서 스프라이트에 사용할 머티리얼을 만들거나 찾아야 합니다. 이 샘플에서는 시작용 콘텐츠에 있는 머티리얼이 사용됩니다. 이 머티리얼을 찾거나 다른 곳으로 옮기지 않고도 가져오는 것은 가능하지만 경우에 따라서는 원본을 복사하여 이펙트를 위해 만든 폴더 또는 이전에 생성한 별도의 머티리얼 폴더에 저장할 수도 있습니다. 이렇게 하려면 다음 단계를 따릅니다.

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

    2. 복사본을 다른 폴더에 저장하려면 해당 머티리얼을 클릭하여 원하는 폴더로 드래그하고, 팝업 메뉴에서 여기로 이동(Move Here) 또는 여기에 복사(Copy Here) 를 선택합니다. 이동(Moving) : 이전 위치에 있는 원본 머티리얼을 삭제하고 새로운 위치로 이동합니다. 복사(Copying) : 새 위치에 복사본을 생성하며, 이전 위치에 있는 원본은 그대로 유지됩니다.

    3. 스프라이트에 사용할 자체 머티리얼을 생성하려면 머티리얼 소개 페이지를 참조하고, 설명서의 머티리얼(Materials) 섹션에 있는 다른 페이지도 참조하세요.

시스템 및 이미터 생성

캐스케이드와 달리 나이아가라 이미터와 시스템은 독립되어 있습니다. 현재 권장되는 워크플로는 기존 이미터 또는 이미터 템플릿에서 시스템을 생성하는 것입니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  3. 템플릿(Template) 에서 심플 스프라이트 버스트(Simple Sprite Burst) 를 선택합니다. 더하기 기호(Plus sign) 아이콘( + )을 클릭하여 시스템에 추가할 이미터 목록에 해당 이미터를 추가합니다. 그리고 나서 완료(Finish) 를 클릭합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

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

    시스템 이름 지정

  5. 새 시스템의 이미터 인스턴스 이름은 기본적으로 SimpleSpriteBurst 입니다. 이름은 변경할 수 있습니다. 시스템 개요(System Overview) 에서 이미터 인스턴스 이름을 클릭하면 필드가 편집 가능하게 됩니다. 이미터 이름을 FX_Smoke 로 지정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

렌더러 세팅 변경

  1. 이 가이드에서는 이미터 모듈 그룹이 스택에 나타나는 과정을 살펴봅니다. 하지만 렌더러에서 머티리얼을 설정하기 전까지는 레벨이나 프리뷰에 아무 것도 보이지 않습니다. 따라서 먼저 시스템 개요(System Overview) 에서 스프라이트 렌더러(Sprite Renderer) 를 선택하여 선택(Selection) 패널에서 엽니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  2. 아래 화면에서 이펙트에 필요한 머티리얼을 선택합니다. 머티리얼은 SubUV 머티리얼이므로 렌더러에 이미지 그리드에 있는 이미지 수를 지정합니다. 프로퍼티를 다음 값으로 설정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

    프로퍼티 이름

    머티리얼

    M_smoke_subUV

    평균 크기

    X: 8.0, Y: 8.0

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

    선택됨

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

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

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

먼저 Emitter Update(이미터 업데이트) 그룹에서 모듈을 편집합니다. 이미터에 적용되는 동작과 각 프레임을 업데이트하는 동작이 있습니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  2. 여기서는 스모크 버스트가 아니라 연결된 스모크 기둥을 생성하겠습니다. 휴지통(Trashcan) 아이콘을 클릭하여 즉각적인 스폰 버스트(Sprite Burst Instantaneous) 모듈을 삭제합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  4. 스폰 속도(Spawn Rate) 모듈에 스폰 속도를 350 으로 설정합니다. 이렇게 하면 적당한 크기로 스모크가 뭉게뭉게 피어 오르는 모양이 만들어집니다. 이펙트 구현을 위한 좋은 시작 방법입니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  5. 지금은 이펙트를 구현하는 동안 무한 루프에서 실행되도록 시뮬레이션을 설정합니다. 이렇게 하면 세팅이 이펙트에 어떤 영향을 주는지 검증할 수 있는 시간이 더 많이 확보됩니다. 이미터 상태(Emitter State) 모듈에서 라이프 사이클 모드(Life Cycle Mode) 의 드롭다운을 클릭하고 셀프(Self) 를 선택합니다. 그런 다음 루프 비헤이비어(Loop Behavior) 의 드롭다운을 클릭하고 무한(Infinite) 을 선택합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

파티클 스폰 그룹 세팅

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

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  2. Initialize Particle(파티클 초기화) 모듈을 확장합니다. 이 모듈은 연관된 파라미터 여러 개를 한 모듈에서 함께 수집하여 스택의 복잡도를 최소화합니다. 포인트 어트리뷰트(Point Attributes) 에서 수명(Lifetime) 파라미터를 찾습니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  3. 수명(Lifetime) 파라미터는 파티클이 사라지기 전까지 표시되는 시간을 결정합니다. 스모크를 더 실감나게 시뮬레이션할 수 있도록 수명 파라미터에 랜덤 세팅을 약간 설정합니다. 수명(Lifetime) 필드 옆에 있는 드롭다운 화살표를 클릭하고 동적 입력 > 범위가 지정된 균등 플로트(Dynamic Inputs > Uniform Ranged Float) 를 선택합니다. 이렇게 하면 Minimum(최대) 및 Maximum(최대) 필드가 추가됩니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  4. Lifetime(수명)의 최소(Minimum)최대(Maximum)를 다음 값으로 설정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

    프로퍼티 이름

    최소(Minimum)

    2.0

    최대(Maximum)

    3.0

  5. 스프라이트 파티클의 크기를 조정하여 스모크 이펙트를 더욱 실감나게 지속적으로 연출합니다. 파티클의 원본 번들은 다소 작으므로 크기를 늘려봅니다. 크기에도 랜덤 세팅을 어느 정도 추가합니다. 이렇게 하면 스프라이트 파티클이 겹쳐 좀 더 일관성 있는 스모크 이펙트가 구현됩니다. 스프라이트 어트리뷰트(Sprite Attributes) 에서 스프라이트 크기(Sprite Size) 파라미터를 찾아 활성화합니다. 스프라이트 크기(Sprite Size) 옆에 있는 드롭다운 화살표를 클릭하고 Dynamic Inputs > 동적 입력 > 플로트의 벡터 2D(Vector 2D from Float) 를 선택합니다. 이렇게 하면 Sprite Size(스프라이트 크기)의 XY 필드가 단일 값(Value) 필드로 바뀝니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  6. 다음으로, 다른 동적 입력을 추가하여 랜덤 이펙트를 추가해야 합니다. 값(Value) 옆에 있는 드롭다운 화살표를 클릭하고 검색창에 uniform 을 입력합니다. 범위가 지정된 균등 플로트(Uniform Ranged Float) 를 선택합니다. 이렇게 하면 Value(값)에 최소(Minimum)Maximum(최대) 필드가 추가됩니다. 아래 표시된 대로 값을 설정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  7. Sprite Size(스프라이트 크기) 의 최소(Minimum)최대(Maximum) 값을 아래와 같이 설정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

    프로퍼티 이름

    최소(Minimum)

    75.0

    최대(Maximum)

    200.0

  8. 이제 더 커진 스모크가 생성됩니다. 결과물이 실제 모습과 더 가까워졌습니다. 이제 회전을 추가하여 파티클의 모양에 더 많은 베리에이션을 줍니다. 베리에이션을 더 늘릴 수 있도록 회전에 랜덤 세팅을 추가합니다. 스프라이트 회전(Sprite Rotation) 옆에 있는 박스를 선택하여 활성화합니다. 다음으로 스프라이트 회전(Sprite Rotation) 옆에 있는 아래 방향 화살표를 클릭하고 동적 입력 > 정규화된 각도(Dynamic Inputs > Normalized Angle to Degrees) 을 선택합니다. 이렇게 하면 정규화된 각도(Normalized Angle) 필드가 추가됩니다. 즉 회전 각도가 도 단위로 0과 1 사이의 소수점으로 변환됩니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  9. 정규화된 각도(Normalized Angle) 필드 옆에 있는 드롭다운 화살표를 클릭하고 동적 입력 > 범위가 지정된 균등 플로트(Dynamic Inputs > Uniform Ranged Float) 를 선택합니다. 이렇게 하면 Normalized Angle(정규화된 각도) 값에 최소(Minimum)최대(Maximum) 필드가 추가됩니다. 아래 표시된 대로 값을 설정합니다. 파티클은 스폰 시 랜덤 각도 숫자대로 회전합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  10. 최소(Minimum)최대(Maximum) 값을 아래와 같이 설정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

    프로퍼티 이름

    최소(Minimum)

    1.0

    최대(Maximum)

    2.0

  11. 이제 적당한 크기의 스모크 구름이 생성되지만 아직 제자리에서 회전합니다. 스모크 파티클이 스폰할 때 바로 움직이도록 설정합니다. 이제 초기 속도를 추가해보겠습니다. 더하기 기호(Plus sign) ( + ) 아이콘을 클릭하고 속도 > 속도 추가(Velocity > Add Velocity) 를 선택하여 Particle Spawn(파티클 스폰) 그룹에 속도 추가(Add Velocity) 모듈을 추가합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  12. 속도(Velocity) 필드 옆에 있는 드롭다운 화살표를 클릭하고 동적 입력 > 범위가 지정된 균등 벡터(Dynamic Inputs > Uniform Ranged Vector) 를 선택합니다. 이렇게 하면 Velocity(속도)에 최소(Minimum)최대(Maximum) 필드가 추가됩니다. 이제 약간의 랜덤 세팅이 추가되어 이펙트의 베리에이션과 자연스러움이 더해졌습니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  13. Velocity(속도)의 최소(Minimum)최대(Maximum) 값을 아래와 같이 설정합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

    프로퍼티 이름

    최소(Minimum)

    X: 0, Y: 0, Z: 50

    최대(Maximum)

    X: 1, Y: 1, Z: 200

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  16. 이 스모크 이펙트에 사용 중인 스프라이트 머티리얼은 스프라이트 시트를 사용하는데, 이 스프라이트 시트에는 함께 이어져 애니메이션되도록 설계된 여러 이미지가 포함되어 있습니다. 이 시트를 고려하지 않으면 렌더러는 시트에서 첫 번째 스프라이트만 사용합니다. 이 문제를 해결하기 위해 SubUV 애니메이션(SubUV Animation) 모듈을 추가할 수 있습니다.Particle Spawn(파티클 스폰)에서 더하기 기호(Plus sign) ( + ) 아이콘을 클릭하고 Sub UV > SubUV 애니메이션(Sub UV > SubUV Animation) 을 선택합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  17. Sub UV 애니메이션(Sub UV Animation) 모듈에서 SubUV 애니메이션 모드(SubUV Animation Mode) 의 드롭다운을 클릭하고 선형(Linear) 을 선택합니다. 프레임 수(Number of Frames)64 를 입력합니다. 스프라이트 시트에는 8x8 그리드의 이미지가 포함되어 있어 총 이미지 수는 64가 됩니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

파티클 업데이트 그룹 세팅

이제 다음으로 파티클 업데이트(Particle Update) 그룹에서 모듈을 편집합니다. 이 비헤이비어는 파티클에 적용되며 각 프레임을 업데이트합니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  2. Particle Spawn(파티클 스폰)에서 속도가 추가되어 파티클은 초기에 스폰할 때 일부 움직임을 보였습니다. 이제 시간에 따라 움직임을 추가하여 스모크가 올라가게 하려고 합니다. 이제 시간에 따라 움직임을 추가하여 스모크가 올라가게 하겠습니다. 파티클 업데이트(Particle Update) 에서 더하기 기호(Plus sign) ( + ) 아이콘을 클릭하고 힘 > 가속력(Forces > Acceleration Force) 을 선택하여 Acceleration Force(가속력) 모듈을 추가합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  3. 나이아가라는 그룹의 스택 하단에 새 모듈을 추가하기 때문에 "The module has unmet dependencies.(모듈에 충족되지 않은 종속성이 있습니다.)"라는 오류가 나타납니다. Acceleration Force(가속력) 모듈은 힘 및 속도 해결(Solve Forces and Velocity) 모듈 다음에 배치됩니다. 이슈 고침(Fix Issue) 버튼을 클릭하여 모듈을 이동합니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

  4. XY 값은 0 으로, Z 값은 500 그대로 둡니다. 이렇게 하면 시간이 지남에 따라 스모크가 위쪽으로 상당히 움직이게 됩니다. 생성하려는 스모크 이펙트 유형에 따라 이 세팅을 조정하거나 모듈을 제거할 수 있습니다.

    이미지를 클릭하면 전체 크기로 확대됩니다.

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

    이미지를 클릭하면 전체 크기로 확대됩니다.

  6. 저장(Save) 버튼을 클릭한 다음 변경 내용을 적용하고 저장합니다.

    시스템 저장

최종 결과

축하합니다! 이제 스프라이트를 사용하여 단순한 스모크 이펙트가 생성되었습니다.

태그
Select Skin
Light
Dark
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼