결정론
뒤로 스크럽 시 시스템이 불규칙하게 된다는 걸 눈치채셨을 겁니다. 이는 시스템이 라이프 사이클 트랙 시작 위치부터 리셋되어 현재 프레임까지 실행되어야 하기 때문입니다. 시스템이 리셋될 때마다 랜덤 값은 달라집니다.
각 나이아가라 이미터는 결정론적으로 전환될 수 있습니다. 이렇게 하면 시스템이 리셋될 때마다 랜덤 시드가 동일해집니다.
결정론을 사용하면 앞뒤로 스크럽할 수 있게 되는 것은 물론, 예측 가능한 방식으로 샷을 반복해서 다시 렌더링할 수 있게 됩니다. 만약 시스템의 파라미터나 입력이 변경되지 않았다면, 시스템은 실행될 때마다 동일한 결과를 생성할 것으로 예상됩니다. 이는 프로덕션 환경에서 여러 번의 반복작업을 통해 승인을 구하는 경우 샷을 리뷰할 때 특히 중요합니다.
나이아가라 시뮬레이션 캐싱하기
언리얼 엔진 5.2부터 나이아가라 시뮬레이션을 시퀀서(Sequencer)에서 나이아가라 시뮬레이션 캐시(Niagara Sim Cache) 에셋으로 캐싱 할 수 있게 되었습니다. 이 기능을 활성화하려면 나이아가라 시뮬레이션 캐싱 플러그인 이 로드되어 있어야 합니다. 나이아가라 시뮬레이션 캐싱에 관한 튜토리얼은 여기서 확인할 수 있습니다.
나이아가라 시뮬레이션 캐시 에셋
나이아가라 시뮬레이션은 나이아가라 시뮬레이션 캐시(Niagara Simulation Cache)로 캐싱할 수 있습니다.
기본적으로 시퀀서에서 캐싱할 때 시뮬레이션 캐시(Sim Cache) 데이터는 레벨 시퀀스(Level Sequence) 에셋에 임베딩됩니다. 소규모 시뮬레이션에서는 편리할 수도 있지만, 여러 개의 복잡한 시뮬레이션 작업 시에는 레벨 시퀀스 에셋의 크기가 팽창할 수 있습니다.
각 시뮬레이션에 대해 자체 나이아가라 시뮬레이션 캐시를 생성할 수 있는 옵션이 있습니다. 자체 캐시를 생성하면 레벨 시퀀스에서 시뮬레이션 데이터를 분리할 수 있습니다. 시뮬레이션 캐시 에셋은 시퀀서의 캐시 트랙 프로퍼티(Cache Track Properties)에서 참조됩니다.
- 콘텐츠 브라우저(Content Browser)에서 우클릭하여 FX/고급(Advanced)/나이아가라 시뮬레이션 캐시(Niagara Simulation Cache)로 이동합니다.
- 새 에셋의 이름을 필요에 따라 적절하게 변경합니다.
- 시퀀서에서 캐시 트랙을 우클릭하여 트랙 프로퍼티(Track Properties) 메뉴로 이동합니다.
- 새 에셋을 가리키도록 시뮬레이션 캐시 파라미터를 변경합니다.
캐시 트랙과 템포럴 샘플
무비 렌더 큐(Movie Render Queue, MRQ)에서 템포럴 샘플(Temporal Samples)을 사용하는 경우 씬이 평가되는 시간은 셔터 열림 시간에 걸쳐 분할됩니다. 9개의 템포럴 샘플을 선택하면 최종 이미지는 9개의 개별 렌더가 컴포짓된 이미지가 됩니다. 9개의 렌더가 각기 조금씩 다른 시점에 생성됩니다. 이렇게 되려면 씬 액터가 그냥 전체 프레임보다는 훨씬 더 작은 타임 스텝으로 평가되어야 합니다.
캐싱 시에는 해당 캐시의 프레임마다 시뮬레이션 상태가 저장됩니다. 전체 프레임만 저장됩니다. 전체 프레임에 대한 데이터만 있으므로 이 캐시를 템포럴 샘플을 사용하여 렌더링하면 동일한 데이터를 계속 반복하여 렌더링해야 할 것입니다.
이를 방지하기 위해 캐싱 시스템은 포인트 데이터를 전체 프레임에서 벗어난 위치로 보간 혹은 보외할 수 있도록 추가 데이터를 저장합니다. 그러면 템포럴 샘플이 샘플 시간에 맞는 적절한 위치에서 시뮬레이션을 렌더링할 수 있습니다.
보간은 현재 프레임과 주변 프레임 데이터 사이에서 위치와 쿼너티언을 보간하는 프로세스입니다. 가장 신뢰성 높은 메서드지만, 파티클이 주변 프레임에 존재해야만 가능합니다.
보외는 현재 프레임의 속도를 사용하여 이전 또는 이후 시점의 위치를 파악합니다.
두 옵션을 전부 체크했다면 보간이 우선합니다. 만약 보간할 수 없다면 보외가 사용됩니다.
보간/보외 함수 기능은 포인트 기반 시뮬레이션에서만 사용할 수 있습니다. 다른 그리드 기반 시뮬레이션의 경우 렌더러에서 전체 프레임 데이터만 사용할 수 있습니다.
동일한 시스템 여러 번 사용하기
복잡도를 생성하기 위해 매우 유사한 FX 에셋을 사용하여 샷을 채우는 경우가 많습니다. 필요한 모든 베리에이션에 대해 에셋을 콘텐츠 브라우저에서 복제하는 대신, 단일 에셋 내에서 베리에이션을 지원하는 메커니즘을 사용할 수 있습니다.
랜덤 시드 오프셋
에셋의 각 인스턴스는 컴포넌트에 랜덤 시드 오프셋 파라미터가 있습니다. 이 파라미터를 사용하여 결정론을 유지하면서도 동일한 시스템의 베리에이션을 만들 수 있습니다.
사용자 파라미터
나이아가라는 사용자 파라미터를 지원합니다. 이러한 파라미터는 레벨에서 나이아가라 시스템 인스턴스로 승격됩니다. 따라서 동일한 기본 나이아가라 시스템의 베리에이션이 정의될 수 있습니다.
시퀀서는 트랙의 형태로 사용자 파라미터를 지원합니다. 사용자 파라미터와 연결된 트랙은 시퀀서의 나이아가라 컴포넌트(Niagara Component) 트랙에 추가할 수 있으며, 필요한 경우 시간에 따른 베리에이션 용도로 키 지정할 수 있습니다.