Custom Data Interface는 외부 데이터 접근 계약을 직접 만든다
기본 DI로 해결되지 않는 요구만 C++ 인터페이스로 열고, 함수와 CPU/GPU 실행 경로를 작게 유지한다.
| 단계 | 정해야 할 것 | 통과 기준 | 위험 |
|---|---|---|---|
| Class | UNiagaraDataInterface 파생 클래스 | 소유 데이터와 책임이 작음 | 범용 유틸 클래스로 커짐 |
| Functions | 그래프에 노출할 함수와 타입 | 필요한 호출만 명명 | API가 많아 사용 실수 증가 |
| CPU VM | CPU 시뮬레이션 호출 경로 | 프리뷰와 PIE에서 같은 값 | CPU에서만 동작 |
| GPU Path | HLSL과 버퍼 업로드 | GPU 시뮬레이션도 값 일치 | 업로드 주기와 비용 누락 |
| Tests | 빈 값, 비활성화, 경계값 | 실패 상태가 예측 가능 | 데이터 없음이 조용히 0으로 보임 |
Custom DI는 단순 편의 함수가 아니라 Niagara가 외부 데이터를 읽는 API 계약이다.