Custom DI Custom Data Interface는 마지막 확장 선택이다 기본 인터페이스로 표현하기 어려운 게임 고유 데이터를 C++로 나이아가라에 노출하는 고급 확장이다.
만들기 전 질문 기존 DI · User Parameter · Blueprint 구현 비용이 크므로 대체 가능성을 먼저 확인한다.
  1. 01 대체 확인 기존 DI와 파라미터로 충분한가 가능하면 C++ 확장을 만들지 않는다.
  2. 02 계약 고정 데이터 소유자와 갱신 주기를 정한다 깨지는 지점을 작게 만든다.
  3. 03 핀 노출 그래프가 읽을 함수만 연다 입력과 출력 타입을 좁게 유지한다.
  4. 04 실행 검증 CPU/GPU 경로를 따로 본다 프리뷰와 실제 플레이 값을 비교한다.
판단 필요 조건 구현 범위 검증 방법
Need고유 데이터 외부 물리, AI 상태, 날씨, 파일 데이터처럼 기본 함수로 읽을 수 없는 값. User Parameter나 기존 DI 조합으로 충분하면 구현하지 않는다. 필요 데이터와 호출 빈도를 먼저 적는다.
C++ Layer클래스와 함수 UNiagaraDataInterface 기반 클래스로 읽기 함수를 정의한다. VM/GPU 지원 범위와 데이터 소유자를 고정한다. 데이터 구조 변경 때 깨지는 계약이 작은지 본다.
Expose스크립트 호출 모듈 그래프가 사용할 입력 핀과 함수 시그니처를 노출한다. 필요한 입력과 출력만 열어 그래프 사용 실수를 줄인다. 함수 이름, 타입, 기본값이 에디터에서 읽히는지 확인한다.
Test실행 위치 CPU/GPU, 에디터 프리뷰, 실제 플레이 값을 따로 본다. 실패 시 대체값과 성능 비용을 함께 정한다. GPU 파티클에서 필요한 함수가 실제 지원되는지 확인한다.