그룸용 얼렘빅 세부사항

언리얼 엔진에 사용할 그룸용 얼렘빅 파일을 익스포트하는 방법에 대한 지침을 설명합니다.

Windows
MacOS
Linux

헤어 렌더링 및 시뮬레이션 기능은 최소한의 스트랜드 기반 헤어 임포팅, 렌더링, 시뮬레이션을 제공합니다. 이번 업데이트는 헤어 그루밍 솔루션을 제공하지 않습니다. 헤어 셰이핑 또는 그루밍을 작업할 때는 Maya와 같은 외부 DCC 툴의 XGen 툴 또는 Shave and a Haircut . 플러그인을 사용해야 합니다. 이외에 Ornatrix , Yeti , Houdini 와 같은 툴도 사용 가능합니다.

본 문서는 헤어 그룸 임포트를 표준화하고 언리얼 엔진 4(UE4)에 헤어 정보를 적용해 헤어 렌더링 및 시뮬레이션 기능을 사용하도록 하는 비공식 얼렘빅 파일 스키마를 설명합니다. 본 스키마에 따라 헤어 그룸을 생성하면 UE4가 해당 그룸을 직접 임포트합니다. 임포트할 때 UE4에서 렌더링과 피직스 모두를 지원하는 어트리뷰트의 경우 얼렘빅 파일에서 해당 어트리뷰트에 매핑됩니다.

목표

  1. 특정 그룸을 대상으로 하는 비공식 얼렘빅 메타데이터 스키마를 정의해 언리얼 엔진에 헤어를 원활하게 임포트합니다.

  2. UE4에서 헤어 관련으로 지원하는 어트리뷰트를 살펴보고, 해당 어트리뷰트를 얼렘빅에 매핑합니다.

커브

헤어의 일반적인 모양 정보는 표준 얼렘빅 커브 스키마를 통해 얻습니다.

Alembic::AbcGeom::ICurves

이 상세 설정으로 그룸 어트리뷰트를 익스포트하면 임포터가 이를 검색하여 그룸 빌드 시 사용할 수 있습니다. 하지만 너비 어트리뷰트는 특수 비헤이비어가 존재합니다. 예를 들어 Maya와 같은 DCC 애플리케이션의 경우, 너비값이 커브로 직접 익스포트되어 커스텀 groom_width`를 익스포트할 필요가 없습니다. 임포터는 Maya의 너비값을 groom_width 어트리뷰트로 변환합니다. 그룸에 groom_width 어트리뷰트가 존재하면 임포트 시 오버라이트되지 않는다는 사실을 참고하세요. groom_width` 어트리뷰트가 지정되지 않았거나 해당 어트리뷰트를 너비값에서 변환할 수 없다면, 언리얼 엔진의 빌더가 너비값으로 1 센티미터를 사용합니다.

커브 폭은 다음을 사용해서 ICurve마다 저장합니다.

(GeometryScope::kConstantScope)

또는 다음을 사용해서 커브마다 저장합니다.

(GeometryScope::kUniformScope)

또는 다음을 사용해서 cv마다 저장합니다.

(GeometryScope::kVertexScope)

임포터가 `kUniformScope`를 지원하기는 하지만 테스트되지는 않았다는 사실을 참고하세요.

네이밍 규칙

프로퍼티 이름은 반드시 소문자로 작성하고 띄어쓰기나 특수문자를 포함하면 안됩니다.

모든 프로퍼티는 반드시 다음과 같은 접두사로 시작합니다: groom_

네이밍 규칙을 잘 따르는 예로 groom_id, groom_color, groom_width 등이 있습니다.

범위 및 우선순위

이 문서 안의 프로퍼티마다 할당된 범위가 있습니다. 범위는 그룸 프로퍼티의 *레벨*을 정의합니다.

사용 가능한 범위는 다음과 같습니다.

범위

설명

일관성

이 파라미터는 AbcGeom::ICurves 오프젝트 한 개를 가진 모든 커브마다 한 개의 값만 갖습니다.

통일성

이 파라미터는 AbcGeom::ICurves 오브젝트의 커브마다 한 개의 값만 갖습니다.

버텍스

이 파라미터는 커브 및 cv마다 한 개의 값을 가집니다.

일반 프로퍼티

다음은 그룸 전반에 적용하는 프로퍼티에 대한 설명입니다. 아래와 같은 프로퍼티는 최상단 노드에 추가해야 합니다. IXForm 또는 ICurves.

이름

유형

선택

설명

범위

groom_version_major

int16

아니오 이 파일은 어떤 그룸 스키마의 주요 버전을 따르는지 확인할 때 사용합니다.

1

groom_version_minor

int16

아니오 이 파일은 어떤 그룸 스키마의 부수적 버전을 따르는지 확인할 때 사용합니다.

5

groom_tool

string

이 파일을 생성한 툴의 이름 및 버전입니다. 문제가 발생한 경우 디버깅 및 원인을 파악할 때 유용합니다.

groom_properties

string

Yes

이 그룸을 생성할 때 사용된 파라미터를 설명하는 스트링입니다. 디버깅에 사용하는 툴 기반 옵션입니다.

지오메트리 파라미터

모든 지오메트리 파라미터는 선택사항이지만, 익스포트된 그룸에 존재하지 않는 경우 내부 비헤이비어를 이용할 수 있습니다.

이름

유형

스코프

선택

설명

범위

groom_ guide

int8/16/32

Constant/Uniform

가이드는 임포트된 스트랜드와 데시메이션 세팅으로 생성합니다.

0 = 가이드 아님 / 1 = 가이드

groom_group_id

int32

Constant/Uniform

모든 스트랜드는 그룹화됩니다.

[0, INT_MAX]

groom_root_uv

float32/64[2]

Uniform

루트 UV는 스트랜드의 루트를 구체에 투영하여 연산합니다.

이 어트리뷰트는 선택사항입니다. 지정하지 않은 경우, 루트 UV는 엔진 내에서 구체 매핑을 사용해 자동으로 생성됩니다.

[-FLOAT_MAX, FLOAT_MAX]

groom_id

int32

Uniform

스트랜드는 ID를 가지고 있지 않습니다. 이는 디버깅 및 groom_closest_guides 어트리뷰트와 함께 사용하기 위함입니다.

[0, INT_MAX]

groom_color

float32/64[3]

Vertex

검은색으로 돌아갑니다.

[0, FLOAT_MAX]

groom_closest_guides

int32[3]

Uniform

언리얼 엔진 외부에서 보간 데이터를 연산하는 특정 사용 사례를 위한 것입니다.

[0, INT_MAX]

groom_guide_weights

float32[3]

Uniform

언리얼 엔진 외부에서 보간 데이터를 연산하는 특정 사용 사례를 위한 것입니다.

[0, FLOAT_MAX]

Select Skin
Light
Dark
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼