개요
나이아가라 데이터 채널(Niagara Data Channels, NDC) 은 게임 코드와 나이아가라 시스템 사이의 커뮤니케이션이나, 서로 다른 나이아가라 시스템 간의 커뮤니케이션을 용이하게 합니다.
데이터 채널은 게임 코드 또는 나이아가라 시스템이 읽거나 작성할 수 있는 정의 페이로드가 있는 데이터의 스트림입니다. 나이아가라 시스템은 페이로드를 읽고 해당 정보를 기반으로 동작을 수정할 수 있습니다. 또한 데이터 채널에 정보를 쓸 수 있으며, 이 정보는 게임플레이 중에 다른 나이아가라 시스템이나 블루프린트에서 사용할 수 있습니다. 하나의 프로젝트가 다양한 목적을 위해 다수의 특수한 데이터 채널 타입을 가질 수 있습니다.
데이터 채널의 일반적인 사용 사례 중 하나는 나이아가라 임팩트 효과로, 플레이어는 게임 플레이 중에 동일한 나이아가라 시스템을 여러 번 스폰할 수 있습니다. 각 시스템은 개별적으로 스폰되고 실행됩니다. 플레이어가 이러한 시스템 여러 개를 빠르게 스폰하는 경우 비용이 많이 들 수 있습니다.
이를 대규모 공유 시뮬레이션으로 묶어 버스트 나이아가라 시스템을 최적화할 수 있는 나이아가라 데이터 채널은 이러한 상황에서 대안이 제시해 줍니다. 즉, 별도의 나이아가라 시스템을 여러 번 스폰하는 대신, 데이터 채널에 할당된 모든 버스트 파티클을 처리하는 하나의 시스템을 스폰하는 것입니다. 이를 통해 퍼포먼스를 크게 향상할 수 있습니다.
핵심 클래스 및 개념
데이터 채널과 나이아가라를 함께 사용하려면 다음과 같은 핵심 컴포넌트가 필요합니다.
- 채널에 작성될 변수(페이로드)와 함께 채널을 사용할 나이아가라 시스템 목록을 가지고 있는 데이터 채널 에셋
- 연속적인 리스너 시스템으로 환경설정된 나이아가라 시스템, 이러한 나이아가라 시스템 중 하나가 아일랜드마다 스폰되어 데이터 채널 이벤트를 수신하며 시스템은 이 정보를 사용하여 파티클을 스폰할 수 있음
- 데이터 채널에 작성하고 특정 정보(페이로드)를 전달하는 블루프린트
나이아가라 데이터 채널 에셋
이 에셋은 데이터 채널 타입 및 채널 변수와 같은 일반적인 데이터 채널 세팅을 가지고 있습니다. 아일랜드 타입을 사용한 경우 아일랜드의 초기 크기와 최대 크기 및 아일랜드의 풀 크기를 지정할 수 있습니다. 변수는 플로트 또는 벡터 4와 같은 일반 타입이 될 수도 있고, 콜리전 채널, 물리적 표면 또는 나이아가라 실행 스테이트와 같은 열거형일 수도 있습니다. 또한 특정 카오스 디스트럭션 및 나이아가라 콜리전 이벤트를 표현하는 변수를 추가할 수도 있습니다.
각 데이터 채널에는 이벤트가 데이터 채널로 제출할 때 아일랜드 바운드 내에서 스폰할 수 있는 나이아가라 시스템 목록이 포함되어 있습니다.
나이아가라 시스템
나이아가라 시스템은 데이터 채널에서 이벤트를 수신하고 해당 정보를 사용하여 파티클을 스폰합니다. 이 시스템은 무한 루프 비헤이비어로 환경설정되어야 합니다. 그래야 아일랜드에서 스폰될 때 데이터 채널에서 수신되는 이벤트가 존재하는 한 계속 활성 상태로 있을 수 있습니다.
시스템에는 Complete if Unused 모듈도 있어야 합니다. 이 모듈은 일정 시간이 지난 후 더 이상 수신되는 이벤트가 없으면 시스템을 소멸시킵니다. 또한 남아 있는 나이아가라 시스템이 없으면 데이터 채널이 아일랜드를 지우도록 허용하는 역할도 합니다.
이미터에는 2개의 스크래치 패드 모듈이 있어야 합니다. 하나는 데이터 채널에서 데이터를 읽고, 다른 하나는 데이터 채널에서 읽은 데이터로 파티클을 스폰하기 위한 것입니다.
블루프린트
블루프린트는 나이아가라 데이터 채널에 바로 데이터를 쓰고 관련 변수를 설정합니다.
나이아가라 데이터 채널을 사용하는 방법에 대한 단계별 가이드는 EDC의 나이아가라 데이터 채널 소개를 참고하세요.