그룸 캐시(Groom Cache) 는 다른 DCC(Digital Content Creation) 애플리케이션에서 시뮬레이션되고 Alembic을 사용하여 언리얼 엔진으로 익스포트된 그룸 애니메이션을 재생하도록 지원하는 그룸 에셋(Groom Asset)의 익스텐션입니다. 그룸 캐시 Alembic은 일부 어트리뷰트를 애니메이팅하는 시간 샘플을 포함하는 그룸 Alembic입니다. 애니메이팅 가능한 지원되는 어트리뷰트는 버텍스 위치, 너비 및 색입니다.
그룸 캐시 타입
언리얼 엔진으로 임포트할 수 있는 그룸 캐시 Alembic 파일의 타입에는 가이드 그룸 캐시(Guides Groom Cache)와 스트랜드 그룸 캐시(Strands Groom Cache) 두 가지가 있습니다.
가이드 그룸 캐시 는 가이드의 버텍스 위치 애니메이션만 지원합니다. 이 캐시는 가이드 애니메이션을 렌더 스트랜드로 전송하기 위해 언리얼 엔진 내 스트랜드 보간을 사용합니다. 이를 위해서 그룸 에셋은 각 그룸 그룹에 대해 시뮬레이션을 활성화해야 합니다. 이 캐시는 언리얼 엔진 내 보간으로 만족스러운 결과를 얻는 버텍스 위치만 애니메이팅하는 그룸 애니메이션을 재생하는 데 적합합니다. 이 그룸 캐시 타입을 사용하면 스트랜드 그룸 캐시를 사용하는 것보다 더 가볍고 더 뛰어난 퍼포먼스를 얻을 수 있습니다.
스트랜드 그룸 캐시 는 모든 스트랜드에 대해 애니메이팅된 어트리뷰트를 포함하고 있습니다. 이로 인해 가이드 그룸 캐시보다 더 많은 메모리와 대역폭을 소비합니다. 이 캐시의 이점은 유연하다는 것입니다. 버텍스 위치와 더불어 너비와 색을 지원하며 DCC 애플리케이션에서 계산된 것과 동일한 시뮬레이션을 포함하므로 충실도가 더 높기 때문입니다. 이 그룸 캐시 타입은 언리얼 엔진 내 보간을 사용하지 않으며 그룸 에셋에 대한 시뮬레이션 활성화가 필요하지 않습니다. 스트랜드 그룸 캐시의 현재 한계는 버텍스 위치 애니메이션을 반드시 포함해야 한다는 것입니다. 스트랜드 그룸 캐시는 위치와 색 애니메이션을 자체적으로 포함할 수 없습니다.
스트랜드 그룸 캐시는 언리얼 엔진 내에서 시뮬레이션할 수 없거나 시뮬레이션 또는 보간에서 만족스러운 결과를 얻지 못한 그룸 애니메이션을 재생하는 데 유용합니다. 예를 들어 헤어가 더 길고 더 굵게 자라는 모습을 보여 주는 애니메이션이 있는 경우입니다.
그룸 에셋으로 작업하기 위해서는 그룸 캐시가 동일한 수의 스트랜드, 버텍스, 스트랜드당 버텍스 등의 동일한 토폴로지를 가지고 있어야 합니다. 헤어를 짧게 하고 싶은 헤어 인스턴스의 경우, 스트랜드당 버텍스 수와 전체 버텍스 수는 변경하면 안 되며 스트랜드 길이를 애니메이팅하기 위해 버텍스 위치를 변경해야 합니다.
언리얼 엔진으로 그룸 캐시 임포트하기
그룸 캐시는 시간 샘플을 가진 그룸이기 때문에 그룸 캐시 Alembic은 임포트하는 동안 일반 그룸으로 탐지됩니다. 하지만 그룸 임포트 옵션(Groom Import Options) 에는 그룸 캐시 임포트(Import Groom Cache) 가 활성화되어 있는 그룸 캐시(Groom Cache) 섹션이 표시됩니다.

'그룸 캐시 임포트'는 그룸 에셋을 임포트하는 경우에만 비활성화할 수 있습니다. 가이드 전용 그룸 에셋 또는 가이드 전용 그룸 캐시는 임포트할 수 없습니다.
스트랜드 전용 그룸의 경우, 가이드는 보간 세팅에 따라 임포트 시 자동으로 생성됩니다. 이러한 세팅은 가이드 그룸 캐시를 위한 가이드를 생성하는 데 사용됩니다. 가이드가 이미 Alembic에 포함되어 있는 경우 그룹(Groups) > 인덱스 n > 보간 세팅(Interpolation Settings) 에서 찾을 수 있는 그룸 임포트 옵션인 가이드 오버라이드(Override Guides) 가 활성화되어 있지 않는 한 그룸 에셋과 그룸 캐시를 위해 가이드가 대신 사용됩니다.

임포트 중인 그룸 캐시와 토폴로지상 호환되는 그룸 에셋을 가지고 있는 경우 그룸 에셋 임포트(Import Groom Asset) 를 비활성화하고 해당 그룸 에셋을 사용하도록 지정할 수 있습니다.

임포트 프로세스는 지정한 그룸 에셋(Groom Asset) 의 임포트 세팅을 임포트 중인 그룸 캐시에 적용합니다. 이는 그룸 에셋과 그룸 캐시가 동일한 임포트된 토폴로지를 갖도록 하기 위한 데시메이션 및 보간 세팅에 특히 중요합니다.

그룸 에셋 임포트 가 비활성화되어 있는 경우 그룸 에셋 을 지정할 때까지 그룸 캐시를 임포트할 수 없습니다.
그룸 캐시 섹션에는 사용할 시작 및 종료 프레임을 지정하거나, 그룸 애니메이션의 시작 부분에 있을 수도 있는 빈 프레임을 건너뛰는 등 임포트한 애니메이션 범위를 제어하기 위한 기타 세팅이 제공됩니다.

언리얼 엔진에서 그룸 캐시 사용하기
그룸 캐시를 임포트한 후 그룸 컴포넌트(Groom Component) 의 그룸 캐시(Groom Cache) 할당 슬롯에 적용할 수 있습니다.

그룸 캐시는 반드시 토폴로지와 호환 가능한 그룸 에셋과 함께 사용해야 합니다. 그룸 캐시는 렌더 데이터 또는 그룸의 스트랜드를 렌더링하기 위한 리소스를 가지고 있지 않기 때문입니다.
그룸 컴포넌트에 할당된 그룸 바인딩 (1)이 이미 있는 경우 그룸 컴포넌트에 그룸 캐시 (2)를 할당할 수 없으며 그룸 캐시 할당 슬롯은 비활성화됩니다.

가이드 그룸 캐시의 경우 에디터에서 플레이(PIE)를 사용하는 동안 그룸 애니메이션을 시각화할 수 있도록 그룸 에셋이 각 그룸 그룹 에 대해 시뮬레이션을 활성화해야 합니다.
레벨 시퀀스에서 그룸 캐시 사용하기
그룸 컴포넌트가 있는 액터에 그룸 캐시 트랙을 추가하여 레벨 시퀀스(Level Sequence)에서 그룸 캐시를 사용하거나 제어할 수 있습니다.

적용된 그룸 캐시가 그룸 컴포넌트에 이미 있는 경우 트랙의 그룸 캐시 섹션 크기가 애니메이션 범위에 맞도록 자동으로 조정됩니다. 그렇지 않을 경우 크기를 수동으로 조정해야 합니다.
