전통적으로 리얼타임 게임 및 프로젝트에서 사용할 헤어를 생성하는 데는 카드 기반 기법이나 그와 같은 유사한 방법을 사용합니다. 카드 기반 워크플로는 플래그 시트 또는 카드를 다수 사용하여 이보다 훨씬 더 많은 개별 헤어의 대략적인 셰이프와 모션을 표현합니다. 반면 언리얼 엔진의 그룸 시스템 및 툴은 스트랜드 기반 기법을 통해 헤어를 렌더링하는 워크플로를 제공하여 리얼타임 사용 사례에서 시뮬레이션된 헤어의 시각적 퀄리티를 대폭 향상합니다.
현재로서는 헤어 그룸의 표준 파일 포맷이 존재하지 않지만, 언리얼 엔진의 그룸 시스템은 Alembic 파일 타입을 사용하는 명명 규칙 스킴을 제공하여 모델링 애플리케이션에서 언리얼 엔진으로 익스포트되는 데이터를 수집합니다. 이 명명 규칙은 단일 파일 내에서 머리카락, 솜털, 수염, 속눈썹, 눈썹 같은 다수의 헤어 그룹을 사용할 수 있게 해줍니다. 이 그룸 시스템은 나이아가라 기반의 다이내믹 피직스 통합과 함께 자체 헤어 셰이더 및 렌더링 시스템도 사용합니다.
언리얼 엔진에서 캐릭터의 그룸을 구성하려면 다양한 부분이 필요합니다:
- Alembic 파일에서 임포트한 그룸 데이터를 저장할 그룸 에셋
- 그룸을 스켈레탈 메시에 링크하기 위한 그룸 바인딩 에셋
- 그룸 에셋의 인스턴스를 나타내는 그룸 컴포넌트
언리얼 엔진의 그룸 시스템은 스트랜드 기반 그룸 임포트, 편집, 렌더링 및 시뮬레이션에 최소한의 실행 가능한 구현을 제공합니다. 이 시스템은 헤어 셰이프 기능 같은 헤어 그룸 솔루션은 제공하지 않습니다. 이와 같은 솔루션은 XGen, Ornatrix, Yeti, Shave and a Haircut 또는 Houdini 등의 애플리케이션을 사용해야 합니다.
그룸 에셋
그룸 에셋은 Alembic(*.abc) 파일을 임포트할 때 생성됩니다. 이 에셋은 콘텐츠 브라우저에 저장되며, 그룸 에셋 에디터(Groom Asset Editor) 에서 열 수 있습니다.
그룸 에셋을 열면 '그룸 에셋 에디터'에서 다음과 같은 작업을 수행할 수 있습니다:
이 에셋 에디터를 사용하는 방법에 대한 자세한 내용은 그룸 에셋 에디터를 참고하세요.
그룸 바인딩
그룸 바인딩 에셋은 그룸 에셋을 스켈레탈 메시에 링크하는 데 사용됩니다. 이 바인딩 에셋은 헤어에 적용되는 스킨 모션 및 디포메이션을 활성화합니다. 그룸 바인딩 에셋을 열면 그룸 에셋과 그룸 에셋의 스켈레탈 메시에 대한 링크가 표시됩니다. 그룸 바인딩은 '그룸 에셋 에디터'를 통해 미리 볼 수 있습니다.
이 에셋 타입에 대한 자세한 내용은 그룸 바인딩을 참고하세요.
그룸 컴포넌트
그룸 컴포넌트 는 레벨 내 그룸 에셋의 인스턴스를 나타냅니다. 그룸 컴포넌트는 그룸 에셋의 헤어 반경이나 LOD 바이어스 같은 일부 프로퍼티를 오버라이드할 수 있습니다.
| 프로퍼티 | 설명 |
|---|---|
| 그룸 그룹 설명(Groom Group Desc) | |
| 헤어 너비(Hair Width) | 헤어 너비(cm)를 오버라이드합니다. |
| 헤어 루트 스케일(Hair Root Scale) | 루트에서의 헤어 너비 스케일입니다. |
| 헤어 팁 스케일(Hair Tip Scale) | 팁에서의 헤어 너비 스케일입니다. |
| 헤어 섀도 밀도(Hair Shadow Density) | 헤어 밀도를 제어하여 섀도 렌더링 중의 헤어 수를 늘리거나 줄입니다. 헤어의 스트랜드 수가 현실적이지 않은 경우 헤어 섀도를 늘리거나 줄일 수 있습니다. |
| 헤어 레이 트레이싱 반경 스케일(Hair Raytracing Radius Scale) | 섀도 같은 레이 트레이싱 이펙트에 대한 헤어 지오메트리 반경을 스케일 조절합니다. |
| 헤어 레이 트레이싱 지오메트리 사용(Use Hair Raytracing Geometry) | 헤어 지오메트리를 레이 트레이싱 기능과 함께 사용할 수 있게 해줍니다. |
| LOD 바이어스(LOD Bias) | 선택된 레벨 오브 디테일(Level of Detail, LOD)의 바이어스를 설정합니다. 0보다 큰 값은 점진적으로 낮은 디테일 LOD를 선택합니다. 이 프로퍼티는 'r.HairStrands.Cluster.Culling'이 활성화된 경우 사용됩니다. |
| 안정적인 래스터화 사용(Use Stable Rasterization) | 활성화한 경우, 헤어가 에일리어스되지 않게 해줍니다. 활성화한 경우, 헤어 그룹이 더 두껍게 보일 수 있습니다. 격리된 헤어는 얇게 유지됩니다. |
| 씬 라이팅 스캐터링(Scatter Scene Lighting) | 활성화한 경우, 헤어가 씬 컬러를 사용하여 라이트가 적용됩니다. 솜털처럼 부드럽고 짧은 헤어에 사용되어 피부 등 주변 표면에서 라이트를 가져옵니다. |
| 헤어 길이 스케일(Hair Length Scale) | 활성화한 경우, 헤어의 길이를 스케일 조절할 수 있습니다. |
| 머티리얼(Materials) | |
| 엘리먼트 N | 헤어 머티리얼을 이 에셋 슬롯에 할당합니다. |
| 그룸(Groom) | |
| 그룸 에셋(Groom Asset) | 이 액터를 렌더링하는 데 사용될 그룸 에셋입니다. |
| 바인딩 에셋(Binding Asset) | 그룸을 스켈레탈 메시에 바인딩하는 데 사용되는 선택적 바인딩 에셋입니다. 바인딩 에셋이 지정되지 않은 경우 투영이 런타임에서 이뤄집니다. 이 경우, 스타트업 시 많은 GPU 비용이 소요됩니다. |
| 카드 사용(Use Cards) | 활성화한 경우, 그룸이 스트랜드 대신 카드/메시 지오메트리를 사용하도록 강제합니다. |
| 어태치먼트 이름(Attachment Name) | 그룸 컴포넌트가 스켈레탈 메시의 부모로 설정된 경우 어태치되어야 하는 선택적 이름입니다. |
| 그룸 캐시(Groom Cache) | |
| 그룸 캐시 | 이 컴포넌트에서 재생할 그룸 애니메이션입니다. 그룸 에셋과 호환되어야 합니다. |
| 실행(Running) | 애니메이션을 재생할 수 있게 합니다. |
| 루핑(Looping) | 경과된 시간이 애니메이션 범위를 초과하면 애니메이션을 루프하도록 설정합니다. |
| 수동 틱(Manual Tick) | 시퀀서를 통해서만 애니메이션을 재생할 수 있게 합니다. |
| 경과 시간(Elapsed Time) | 애니메이션 시작 이후 경과된 시간을 표시하는 읽기 전용 값입니다. |
| 시뮬레이션(Simulation) | |
| 피직스 에셋(Physics Asset) | 피직스 시뮬레이션이 활성화된 경우 이 그룸에 사용할 피직스 에셋입니다. |