나이아가라 개요

이 페이지에서는 언리얼 엔진 4의 나이아가라 VFX 시스템에 대한 개요를 제공합니다.

Windows
MacOS
Linux

캐스케이드와 나이아가라는 언리얼 엔진(UE4) 내부에서 비주얼 이펙트(VFX)를 구현하는 데 사용할 수 있지만 나이아가라를 사용하여 VFX를 생성하고 조정하는 방법은 캐스케이드를 사용하는 방법과 매우 다릅니다.

나이아가라는 언리얼 엔진의 차세대 VFX 시스템입니다. 나이아가라를 사용하면 테크니컬 아티스트는 프로그래머의 지원을 받지 않고 자체적으로 추가 기능을 생성할 수 있게 됩니다. 이 시스템은 가능한 적응하기 쉽고 유연하게 만들어졌으며, 동시에 사용과 이해가 쉽도록 만들어졌습니다.

핵심 나이아가라 컴포넌트

나이아가라 VFX 시스템의 4가지 핵심 컴포넌트는 다음과 같습니다.

  • 시스템

  • 이미터

  • 모듈

  • 파라미터

시스템

나이아가라 시스템은 여러 개의 이미터 모두가 하나의 이펙트로 결합된 컨테이너입니다. 예를 들어 폭죽 이펙트를 구현할 경우 폭죽에 여러 개의 버스트가 필요할 수 있습니다. 이를 위해서는 이미터를 여러 개 생성하고, 생성된 이미터 전체를 폭죽이라고 하는 나이아가라 시스템에 배치하면 됩니다. 나이아가라 시스템 에디터에서는 시스템에 있는 이미터 또는 모듈에 있는 임의 항목을 수정하거나 오버라이드할 수 있습니다. 시스템 에디터의 타임라인(Timeline) 패널에는 시스템에 포함되어 있는 이미터가 표시되며, 이러한 이미터를 관리하는 데 사용할 수 있습니다. 이미터 에디터와 시스템 에디터는 거의 동일합니다. 시스템 에디터 인터페이스에 대한 자세한 내용은 나이아가라 시스템 및 이미터 에디터 레퍼런스 를 참조하세요. 시스템 에디터에서 별개로 작동하는 UI 엘리먼트는 각 섹션에서 나타납니다.

이미터

나이아가라 이미터는 모듈에 사용하는 컨테이너입니다. 단일 용도이지만 재사용할 수도 있습니다. 나이아가라 이미터의 고유한 특징 중 하나는 모듈 스택을 사용하여 시뮬레이션을 제작하고 해당 시뮬레이션을 동일한 이미터에서 다양한 방법으로 렌더링할 수 있다는 점입니다. 파이어워크 이펙트 샘플로 예를 들어보면 스파크를 위한 스프라이트 렌더러와, 스파크에 이어 나타나는 라이트 스트림을 위한 리본 렌더러가 포함된 이미터 1개를 생성할 수 있습니다. 나이아가라 이미터 에디터 인터페이스에 대한 자세한 내용은 나이아가라 시스템 및 이미터 에디터 레퍼런스 를 참조하세요.

모듈

나이아가라 모듈은 나이아가라 VFX의 기본 레벨입니다. 이 모듈은 캐스케이드의 동작과 상응합니다. 일반적인 데이터에 대응하며, 동작을 캡슐화하고, 다른 모듈과 스택을 이루고, 함수를 작성합니다. 모듈은 하이 레벨 셰이딩 언어(HLSL)를 사용하여 제작되지만 노드를 사용하여 그래프에서 시각적으로 제작할 수도 있습니다. 입력을 포함하여 함수를 생성하거나, 값 또는 파라미터 맵에 작성할 수 있습니다. 그래프에서 CustomHLSL 노드를 사용하여 HLSL 코드를 인라인으로 작성할 수도 있습니다. 나이아가라 이미터에서 제공되는 기본 모듈에 대한 자세한 내용은 나이아가라 시스템 및 이미터 모듈 레퍼런스 를 참조하세요.

파라미터 및 파라미터 유형

Parameters(파라미터)는 나이아가라 시뮬레이션에서 데이터를 추상화한 것입니다. 파라미터 types(유형)는 파라미터에 할당되어 파라미터가 나타내는 데이터를 정의할 수 있습니다. 4가지 파라미터 유형은 다음과 같습니다.

  • 프리미티브(Primitive) : 이 파라미터 유형은 다양한 정밀도와 채널 폭의 숫자 데이터를 정의합니다.

  • 열거형(Enum) : 이 파라미터 유형은 이름이 지정된 값의 고정 집합을 정의하고 해당 값 중 하나를 가정합니다.

  • 구조체(Struct) : 이 파라미터 유형은 프리미티브 및 열거형 유형을 조합한 집합을 정의합니다.

  • 데이터 인터페이스(Data Interfaces) : 이 파라미터 유형은 외부 데이터 소스의 데이터를 제공하는 함수를 정의합니다. UE4의 다른 부분에 속한 데이터나, 애플리케이션 외부의 데이터일 수 있습니다.

더하기 기호(Plus sign) 아이콘( + )을 클릭하거나 신규 또는 기존 파라미터 직접 설정(Set new or existing parameter directly) 을 선택하여 커스텀 파라미터 모듈을 이미터에 추가할 수 있습니다. 스택에 파라미터 설정(Set Parameter) 모듈이 추가됩니다. 파라미터 설정(Set Parameter) 모듈에서 더하기 기호(Plus sign) 아이콘( + )을 클릭하고, 파라미터 추가(Add Parameter) 를 선택하여 기존 파라미터를 설정하거나 하거나 신규 파라미터 생성(Create New Parameter) 을 선택하여 새 파라미터를 설정합니다. 이 이미터 모듈 및 기타 모듈에 대한 자세한 내용은 나이아가라 시스템 및 이미터 모듈 레퍼런스 를 참조하세요.

나이아가라 스택 모델 및 스택 그룹

나이아가라에서 파티클 시뮬레이션은 스택 상단에서 하단까지의 스택-시뮬레이션 플로우로 작동하며, 모듈이라고 하는 프로그래밍 코드 블록을 순서대로 실행합니다. 결정적으로 모든 모듈은 모듈이 실행될 때를 설명하는 group 에 할당됩니다. 자세한 내용은 나이아가라 핵심 개념 페이지와 나이아가라 시스템 및 이미터 모듈 레퍼런스 를 참조하세요.

템플릿 및 마법사

나이아가라 이미터 또는 나이아가라 시스템을 처음 생성할 경우 생성할 이미터 또는 시스템 종류에 대한 여러 옵션을 제공하는 대화창이 나타납니다. 이 옵션 중 하나는 템플릿을 선택하는 것입니다. 이 템플릿은 몇 가지 일반적인 베이스 이펙트를 기반으로 하며 다양한 모듈을 포함하고 있습니다. 템플릿에서 파라미터를 변경할 수 있습니다. 모듈을 추가, 수정 또는 삭제할 수 있습니다. 시스템 템플릿에서는 이미터를 추가, 수정 또는 삭제할 수도 있습니다. 템플릿은 창의력을 실현하는 데 도움이 되고 작업을 즉시 시작할 수 있게 합니다. 나이아가라 에디터 UI에 대한 자세한 내용은 나이아가라 에디터 UI 레퍼런스 를 참조하세요.

시스템 마법사

시스템 마법사는 새 시스템 생성을 위해 다음과 같은 옵션을 제공합니다.

  • 선택한 이미터에서 새 시스템 생성(New system from selected emitters) : 이 옵션을 선택하고 다음(Next) 을 클릭하면 사용 가능한 이미터 목록이 표시됩니다. 이 목록에는 프로젝트에 있는 기존 이미터와 템플릿 이미터가 모두 포함되어 있습니다. 신규 시스템에 포함할 이미터를 선택하고, 초록색 더하기 기호(Plus sign) ( + ) 아이콘을 클릭하여 추가합니다. 완료(Finish) 를 클릭하면 시스템이 생성됩니다. 기존 이미터를 선택하면 시스템은 이 이미터로부터 상속됩니다. 템플릿 이미터를 선택하면 시스템은 상속을 받지 않습니다. 그리고 템플릿 이미터는 해당 시스템에 완전히 로컬일 수 있거나, 아니면 별도의 이미터 에셋으로 저장할 수 있습니다.

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

  • 템플릿에서 새 시스템 생성(New system from template) : 이 옵션을 선택하고 다음(Next) 을 클릭하면 자주 사용되는 여러 이펙트 시스템이 있는 템플릿 목록에서 선택할 수 있습니다. 이미터 템플릿과 마찬가지로 이 목록은 아트 책임자나 크리에이티브 디렉터가 조정할 수 있습니다. UE4를 처음 접해보는 분에게 이 옵션은 나이아가라에서 FX 시스템이 어떻게 제작되는지에 대한 샘플을 제공합니다.

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

  • 기존 시스템 복사(Copy existing system) : 이 옵션을 선택하고 다음(Next) 을 클릭하면 기존 시스템 목록이 표시됩니다. 그 중 하나를 선택해서 복사한 다음 완료(Finish) 를 클릭합니다.

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

  • 빈 시스템 생성(Create empty system) : 이 옵션을 선택한다는 것은 시스템에 이미터나 이미터 템플릿이 없는 경우입니다. 이 옵션은 다른 시스템과 완전히 다른 시스템을 생성하려고 할 때 유용합니다.

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

이미터 마법사

이미터 마법사는 새 이미터 생성을 위해 다음과 같은 옵션을 제공합니다.

  • 템플릿에서 새 이미터 생성(New system from template) : 이 옵션을 선택하면 자주 사용되는 여러 이펙트 유형이 있는 템플릿 목록에서 선택할 수 있습니다. 대규모의 개발 스튜디오에서 아트 책임자나 크리에이티브 디렉터는 템플릿 목록을 조정하여 회사의 베스트 프랙티스가 템플릿에 반영될 수 있게 합니다. 이러한 템플릿은 UE4를 처음 접해보는 사용자에게 꼭 맞는 시작 단계를 제공합니다.

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

  • 기존 이미터에서 상속(Inherit from an existing emitter) : 이 옵션을 선택하면 기존 이미터의 프로퍼티를 상속받는 새 이미터를 생성할 수 있습니다. 이 옵션을 사용하면 새 이미터는 선택한 기존 이미터의 자손이 됩니다. 일반적으로 특정 프로퍼티를 모두 포함한 이미터가 여러 개 필요한 경우 이 옵션이 유용합니다. 부모 이미터를 변경할 수 있으며, 모든 자손 이미터에는 해당 변경 내용이 반영됩니다.

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

  • 기존 이미터 복사(Copy existing emitter) : 이 옵션을 선택하면 이미 생성한 이미터의 복사본인 새 이미터를 생성할 수 있습니다. 이 옵션은 유사한 이미터를 여러 개 생성해야 하는 경우 유용합니다. 이 옵션을 선택하고 Next(다음)를 클릭하면 사용 가능한 이미터 목록이 표시됩니다. 그 중 복사할 하나를 선택하면 됩니다.

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

나이아가라 VFX 워크플로

이미터 생성

이미터를 생성할 때 스택에 이펙트의 표현 방식, 이펙트가 수행하는 액션 등을 정의하는 모듈을 배치할 수 있습니다. 이미터 스폰(Emitter Spawn) 그룹에서 이미터가 처음 스폰할 때 발생하는 것을 정의하는 모듈을 배치합니다. 이미터 업데이트(Emitter Update) 그룹에는 시간이 지남에 따라 이미터에 영향을 미치는 모듈을 배치합니다. 파티클 스폰(Particle Spawn) 그룹에는 이미터에서 파티클이 스폰할 때 발생하는 것을 정의하는 모듈을 배치합니다. 파티클 업데이트(Particle Update) 그룹에는 시간이 지남에 따라 파티클에 영향을 미치는 모듈을 배치합니다. 이벤트 핸들러(Event Handlers) 그룹에서는 특정 데이터를 정의하는 하나 이상의 이미터에서 Generate 이벤트를 생성할 수 있습니다. 그런 다음 다른 이미터에서 생성된 이벤트에 대한 리액션으로 비헤이비어를 트리거하는 Listening 이벤트를 생성할 수 있습니다.

시스템 생성

개별 이미터를 하나의 시스템으로 결합하면 생성할 전체 비주얼 이펙트를 표시할 수 있습니다. 시스템과 관련된 모듈이 있으며, 에디터의 일부 엘리먼트는 이미터 대신 시스템을 편집할 때 다르게 동작합니다. 나이아가라 에디터에서 시스템을 편집할 때 시스템에 포함된 이미터에서 모듈을 수정하거나 오버라이드할 수 있습니다. 나이아가라 에디터의 타임라인 패널을 사용하면 포함된 이미터의 타이밍도 관리할 수 있습니다.

모듈 생성

모듈 함수 플로

모듈 함수 플로

  • 모듈은 임시 네임스페이스로 누적되어 더 많은 모듈을 함께 스택할 수 있습니다. 동일한 어트리뷰트를 사용하는 한 모듈의 스택 및 누적 작업에는 문제가 없습니다.

  • 모듈을 작성할 때 사용할 수 있는 다양한 함수는 다음과 같습니다.

    • 부울 연산자 *수학 표현식

    • 삼각법 표현식

    • 커스터마이즈드 함수

    • 표준 함수를 더 쉽게 만들 수 있는 노드

  • 모듈을 생성하고 나면 다른 사용자가 사용할 수 있습니다.

  • 모듈은 모두 HLSL을 사용합니다. 로직 플로는 다음과 같습니다.

HLSL 로직 플로

생성하는 모듈, 이미터 및 시스템 각각에는 리소스가 사용됩니다. 리소스를 유지하고 퍼포먼스를 개선하려면 나이아가라에 포함된 모듈을 살펴보면서 새 모듈을 생성하지 않고 목표를 달성할 수 있는지 확인해보세요. 동적 입력 을 사용하면 그 효과가 매우 뛰어납니다.

나이아가라 패러다임

상속

  • 평평한 계층구조에서는 라이브러리에 이미 가지고 있는 에셋을 효과적으로 찾아 사용할 수 없으며, 이로 인해 사용자는 해당 에셋을 다시 생성하게 됩니다. 노력이 배가 되어 효율성이 낮아지고 비용은 늘어납니다.

  • 계층적 상속은 발견 가능성을 높이고 기존 에셋을 효과적으로 재사용할 수 있게 합니다.

  • 상속된 항목은 시스템에서 자손 이미터에서 사용되도록 오버라이드됩니다.

  • 모듈은 추가가 가능하고, 부모 값으로 다시 되돌릴 수도 있습니다.

  • 스폰, 수명, 루핑, 버스트 등과 같은 이미터 레벨의 비헤이비어에도 적용됩니다.

동적 입력

  • 동적 입력은 모듈이 제작된 방식과 동일하게 작성됩니다.

  • 동적 입력은 상속을 위해 사용자에게 무한대의 확장성을 제공합니다.

  • 동적 입력은 파라미터 맵에서 동작하지 않고 값 유형에서 동작합니다.

  • 값은 그래프 로직과 사용자에게 표시되는 값으로 지원됩니다.

  • 동적 입력은 모듈 생성과 거의 동일한 방식이지만 실제로 새 모듈을 만들지 않고도 선택하여 스택에 넣을 수 있습니다.

  • 기존 모듈은 동적 입력을 사용하고 체인으로 연결하여 여러 가지 방법으로 수정 및 커스터마이징할 수 있습니다. 이렇게 하면 모듈이 과하게 팽창하는 것을 줄이고 퍼포먼스를 개선할 수 있습니다.

마이크로 표현식

  • 인라인 값은 HLSL 표현식 스니펫으로 변환될 수 있습니다.

  • 사용자는 파티클, 이미터 또는 시스템의 변수뿐 아니라 HLSL 또는 VM 함수에도 액세스할 수 있습니다.

  • 이 표현식은 새 모듈이 필요 없는 일회성의 작은 기능에 유용합니다.

이벤트

  • 이벤트는 엘리먼트(파티클, 이미터, 시스템 등) 간에 의사소통하는 방법입니다.

  • 이벤트는 페이로드에 패킹되어(예: 구조체) 전달되는 데이터일 수 있습니다. 그러면 다른 어떤 것이든 해당 이벤트를 수신하고 액션을 취할 수 있습니다.

  • 사용할 수 있는 옵션

    • 파티클 ID를 사용하여 파티클에서 이벤트를 직접 실행

    • 시스템에서 모든 파티클에 대해 이벤트 실행

    • 이벤트에 대응하는 파티클을 스폰으로 설정한 다음 이 파티클에서 몇 가지 액션을 수행

  • 그래프에서 이벤트는 특수 노드(구조체)입니다. 이벤트 노드를 사용하는 방법은 다음과 같습니다.

    • 이벤트 이름 지정

    • 원하는 데이터 추가

    • 이미터 스택에 이벤트 핸들러 추가

    • 이벤트 핸들러의 옵션 설정

  • 이벤트를 위한 별도의 실행 스택이 있습니다.

    • 이벤트 핸들러에 정교한 그래프 로직을 지정할 수 있습니다.

    • 복잡한 로직으로 전체 파티클 시스템을 설정한 다음 이벤트가 트리거될 때 발생하는 별도의 전체 비헤이비어 집합이 발생할 수 있습니다.

데이터 인터페이스

  • 임의 데이터에 대한 액세스를 허용하는 확장 가능한 시스템이 있습니다.

  • 임의 데이터에는 메시 데이터, 오디오, 외부 DDC 정보, 코드 오브젝트 및 텍스트 컨테이너가 포함됩니다.

  • 데이터 인터페이스는 더 나은 확장성이 제공될 수 있도록 플러그인으로 작성할 수 있습니다.

  • 사용자는 스켈레탈 메시 데이터 인터페이스를 사용하여 스켈레탈 메시와 관련된 데이터를 가져올 수 있습니다.

Houdini

  • Houdini를 사용하면 분할 포인트, 스폰 위치, 임팩트 위치, 임팩트 속도, 노멀 등을 계산할 수 있습니다.

  • 그런 다음 Houdini의 데이터를 공통 컨테이너 형식(CSV)으로 익스포트할 수 있습니다.

  • UE4 프로젝트에서 이 CSV를 나이아가라로 임포트할 수 있습니다.

Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼