대부분의 경우, 한 시스템에 있는 여러 이미터끼리 상호작용하게 하여 원하는 이펙트를 만듭니다. 즉, 한 이미터가 여러 데이터를 생성하면 다른 이미터에서 해당 데이터를 인식한 뒤, 데이터에 반응하여 특정 행동을 수행하도록 합니다. 나이아가라에서는 이벤트(Events) 와 이벤트 핸들러(Event Handlers) 를 사용하면 됩니다. 이벤트(Events) 는 특정 이벤트를 생성하는 모듈로, 파티클의 수명이 다하기 전까지 역할을 수행합니다. 이벤트 핸들러(Event Handlers) 는 생성된 이벤트를 인식한 뒤 이벤트에 대응하는 행동을 시작하는 모듈입니다.
이벤트는 현재 GPU 시뮬레이션에서는 작동하지 않으며, CPU 시뮬레이션에서만 작동합니다.
이벤트
이벤트를 사용하려면 이미터의 이미터 프로퍼티(Emitter Properties)에서 퍼시스턴트 ID 필요(Requires Persistent IDs)를 활성화해야 합니다.
이벤트는 파티클의 수명에 따라 발생하므로 파티클 업데이트 그룹(Particle Update Group)에 추가됩니다. 파티클 업데이트(Particle Update) 옆의 더하기 표시(+) 를 클릭하면 이벤트 모듈을 스택에 추가할 수 있는 이벤트(Events) 섹션이 나타납니다.
다양한 이벤트 모듈을 사용할 수 있습니다.
- 위치(Location)
- 소멸(Death)
- 콜리전
위치 이벤트
위치 이벤트 생성(Generate Location Event) 모듈을 이미터의 파티클 업데이트 그룹(Particle Update Group)에 배치할 경우, 해당 이미터에서 스폰된 각 파티클은 수명이 진행되는 동안 위치 데이터를 생성합니다. 이후 이벤트 핸들러가 이 위치 데이터를 받아서 다른 행동을 트리거하도록 설정할 수 있습니다.
예를 들어 폭죽 발사체에 적용되는 트레일 이펙트를 생성할 경우, 위치 이벤트 생성(Generate Location Event) 모듈을 발사체 이미터의 파티클 업데이트 그룹에 배치합니다. 그러면 궤적 이미터가 위치 데이터를 활용해 발사체를 따라가는 파티클을 생성합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
소멸 이벤트
소멸 이벤트 생성(Generate Death Event) 모듈을 이미터의 파티클 업데이트 그룹에 배치할 경우, 해당 이미터에서 스폰된 각 파티클은 수명이 다하는 시점에 위치 데이터를 생성합니다. 이 데이터는 다양한 방법으로 사용할 수 있습니다. 첫 번째 이미터의 파티클 수명이 다할 때 다른 이미터의 파티클 이펙트를 발동시키거나, 이전 이미터의 파티클 수명이 끝날 때 각 이미터가 이펙트를 스폰하는 연쇄 반응을 만들 수도 있습니다. 위치 및 소멸 이벤트를 결합하여 복잡한 상호작용을 만들 수도 있습니다.
폭죽 예시를 사용하려면 발사체의 파티클이 끝나는 시점에 스폰할 폭발 이펙트를 만들어야 합니다. 위치 이벤트는 발사체 파티클의 위치와 폭발이 발생하는 위치를 결정합니다. 소멸 이벤트는 파티클의 수명이 다하는 위치와 폭발 이펙트가 스폰되는 위치를 결정합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
콜리전 이벤트
콜리전 이벤트 생성(Generate Collision Event) 모듈을 이미터의 파티클 업데이트 그룹에 배치할 경우, 파티클이 스태틱 메시 또는 스켈레탈 메시 같은 액터와 충돌 시 이벤트를 생성합니다. 예를 들어 폭죽 이펙트를 무기 이펙트로 변경해야 할 경우, 발사체 파티클이 스태틱 또는 스켈레탈 메시와 충돌할 때 폭발이 스폰되도록 할 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
해당 이미터에 콜리전 이벤트 생성(Generate Collision Events) 을 추가하기 전에 콜리전(Collision) 모듈을 추가해야 합니다. 모듈을 추가하면 이미터의 파티클이 월드의 오브젝트와 충돌할 수 있게 됩니다.
이벤트 핸들러
이벤트 핸들러는 두 가지 항목으로 구성됩니다. 이벤트 핸들러 프로퍼티(Event Handler Properties) 와 이벤트 수신(Receive Event) 입니다. 이미터와 상응하는 이벤트마다 이벤트 핸들러 프로퍼티(Event Handler Properties) 항목과 이벤트 수신(Receive Event) 모듈을 추가합니다.
이미터 프로퍼티 옆의 더하기(+) 를 클릭하면 이미터에 이벤트 핸들러(Event Handler) 스테이지를 추가할 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이벤트 핸들러 프로퍼티 에서 사용 가능한 이벤트 생성(Generate Event) 모듈이 전부 포함된 드롭다운으로 이벤트의 소스(Source) 를 설정합니다. 이후 이벤트의 영향을 받는 파티클, 프레임당 이벤트 발생 횟수, 이벤트에서 파티클을 스폰하는 경우 스폰 횟수를 선택할 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이벤트 핸들러의 프로퍼티를 설정한 후에는 이벤트 핸들러(Event Handler) 옆의 더하기(+) 를 클릭해 이벤트 수신(Receive Event) 모듈을 추가합니다. 이벤트 수신 모듈은 ‘이벤트를 생성하는 이미터’의 파티클 업데이트 그룹에 배치했던 생성된 이벤트 모듈과 일치해야 합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
예를 들어 이미터에 위치 이벤트 생성(Generate Location Event) 을 배치한 경우, 이벤트 핸들러의 위치 이벤트 수신(Receive Location Event) 을 선택해야 합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.