이벤트
이벤트는 비주얼 이펙트 그래프의 처리 워크플로에 대한 입력을 정의합니다. Spawn 및 Initialize 컨텍스트는 이벤트를 입력으로 사용합니다. 이벤트를 통해 비주얼 이펙트 그래프는 다음을 수행할 수 있습니다.
- 파티클 생성을 시작 및 중지합니다.
- C# 스크립트에서 전송된 이벤트 속성 페이로드를 읽습니다.
이벤트 생성
일반적으로 이벤트는 이벤트의 이름을 나타내는 문자열일 뿐입니다. 비주얼 이펙트 그래프에서 이벤트를 수신하려면 Event 컨텍스트를 생성하고 Event Name 프로퍼티에 수신하려는 이벤트의 이름을 입력하십시오. Event 컨텍스트에는 입력 플로 슬롯이 없으며, 출력 플로 슬롯을 Spawn 또는 Initialize 컨텍스트에만 연결할 수 있습니다.
Event 컨텍스트를 생성하려면 다음 단계를 따르십시오.
- 비주얼 이펙트 그래프 창에서 빈 공간을 마우스 오른쪽 버튼으로 클릭합니다.
- 메뉴에서 Create Node를 클릭합니다.
- 노드 생성 메뉴에서 **Contexts > Event (Context)**를 클릭합니다.
- Event Name 입력 필드에 이벤트 이름을 입력합니다.
기본 이벤트
비주얼 이펙트 그래프는 다음의 두 가지 기본 이벤트를 제공합니다.
- OnPlay: 파티클 생성을 활성화합니다. Spawn 컨텍스트의 Start 입력 플로 슬롯에 이벤트를 할당하지 않으면, 비주얼 이펙트 그래프는 대신 암시적으로 이 이벤트를 해당 입력 플로 슬롯에 바인딩합니다.
- OnStop: 파티클 생성을 비활성화합니다. Spawn 컨텍스트의 Stop 입력 플로 슬롯에 이벤트를 할당하지 않으면, 비주얼 이펙트 그래프는 대신 암시적으로 이 이벤트를 해당 입력 플로 슬롯에 바인딩합니다.
Event 컨텍스트를 Spawn 컨텍스트의 Start 또는 Stop 입력 플로 슬롯에 연결하면, OnPlay 및 OnStop 이벤트 각각에 대한 암시적 바인딩이 제거됩니다.
커스텀 이벤트
기본 이벤트를 사용하고 싶지 않은 경우 Event 컨텍스트를 사용하여 커스텀 이벤트를 생성할 수 있습니다.
이렇게 하려면 먼저 Event 컨텍스트 생성을 수행한 후 Event Name 프로퍼티에 커스텀 이벤트의 이름을 입력하십시오.
이벤트 속성 페이로드
이벤트 속성 페이로드는 이벤트에 연결할 수 있는 속성입니다. 비주얼 이펙트 그래프에서 이러한 속성을 설정하려면 Spawn 컨텍스트에서 Set [Attribute] 블록을 사용할 수 있지만, C# 스크립트에서 보내는 이벤트에 연결할 수도 있습니다. 후자를 수행하는 방법은 컴포넌트 API 를 참조하십시오.
이벤트 속성 페이로드는 암시적으로 이벤트의 그래프를 통과하고, Spawn 컨텍스트를 통과하고, 최종적으로 Initialize 컨텍스트에 도착하는 속성입니다. Initialize 컨텍스트에서 페이로드를 포착하려면 Get Source Attribute 연산자 또는 Inherit [Attribute] 블록을 사용하십시오.
기본 시각 효과 이벤트
기본 시각 효과 이벤트는 시각 효과 인스턴스가 초기화될 때 비주얼 이펙트 그래프가 암시적으로 전송하는 이벤트의 이름을 정의합니다. 이 작업은 효과가 처음 시작되거나 효과가 다시 시작될 때 발생합니다.
각 비주얼 이펙트 그래프 에셋에 대한 기본 시각 효과 이벤트를 독립적으로 정의할 수 있습니다. 또한 비주얼 이펙트 그래프 에셋의 모든 인스턴스에 대해 이 값을 오버라이드할 수도 있습니다. 인스턴스의 기본 시각 효과 이벤트를 오버라이드하려면 비주얼 이펙트 인스펙터의 **Initial Event Name*을 참조하십시오.
GPU 이벤트
GPU 이벤트는 비주얼 이펙트 그래프의 실험 기능이며, 다른 파티클을 기반으로 파티클을 생성할 수 있습니다. 이 옵션을 활성화하려면 시각 효과 환경 설정에서 Experimental Operators/Blocks 체크박스를 활성화하십시오.
GPU 이벤트는 파티클이 죽을 때 다른 시스템에서 전송한 데이터에 의존하는 Event 컨텍스트입니다. 다음 업데이트 블록은 GPU 이벤트 데이터를 전송할 수 있습니다.
- Trigger Event On Die: 파티클이 죽을 때 다른 시스템에서 N개의 파티클을 생성합니다.
- Trigger Event Rate: 시스템의 파티클을 기반으로 초당(또는 이동 거리당) N개의 파티클을 생성합니다.
- Trigger Event Always: 프레임마다 N개의 파티클을 생성합니다.
이 블록은 GPUEvent 컨텍스트에 연결됩니다. 이 컨텍스트는 블록을 처리하지 않지만, 대신에 자식 시스템의 Initialize 컨텍스트에 연결됩니다.
부모 파티클에서 데이터를 수집하려면 자식 시스템이 Initialize 컨텍스트에서 소스 속성을 참조해야 합니다. 이를 위해 자식 시스템은 Get Source Attribute 연산자 또는 Inherit Attribute 블록을 사용할 수 있습니다. 시각적 예시는 아래 이미지를 참조하십시오.
이 예시에서 자식 시스템은 생성하는 파티클의 소스 포지션을 상속합니다. 또한 부모 파티클 속도의 약 50%를 상속합니다.