언리얼 엔진은 카오스 클로스 솔버를 사용합니다. 카오스 클로스 솔버는 클로딩을 실행하는 파티클 시뮬레이션을 위한 로우 레벨 클로딩 솔버입니다. 이 클로딩 솔버를 통해 시뮬레이션 데이터에 직접 액세스할 수 있으므로 가볍고 확장성이 뛰어난 통합 기능을 구현할 수 있습니다.

에디터 내에서 사용 가능한 클로딩 툴이 제공되므로 개발자는 이 워크플로를 통해 외부 종속성 없이 언리얼 엔진으로 직접 작업하면서 콘텐츠를 제작할 수 있습니다.
언리얼 엔진 클로스 워크플로. 이미지를 클릭하면 전체 크기로 표시됩니다.
이 워크플로를 사용하면 콘텐츠를 한 번 생성한 다음 언리얼 엔진 내에서 직접 모든 클로딩을 제작 및 편집할 수 있습니다. 따라서 테스트 콘텐츠를 훨씬 빠르게 제작하고 반복작업할 수 있으며, 클로딩 시뮬레이션의 모든 편집 내용을 게임에 표시되는 것과 동일하게 실시간으로 확인할 수 있으므로 콘텐츠를 제작할 때와 실제로 사용할 때의 격차를 방지할 수도 있습니다.
클로스 페인팅 워크플로
에디터 내에서 클로스를 제작하는 워크플로를 사용하면 클로스 페인팅 툴을 통해 스켈레탈 메시의 기존 머티리얼 엘리먼트로 캐릭터의 클로딩을 빠르게 제작할 수 있습니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
섹션 선택(Section Selection) - 클로스 페인팅에 사용할 머티리얼 ID를 선택할 수 있습니다.
-
클로스 페인트 패널 - 이 섹션은 클로딩 페인팅 시 사용 가능한 모든 필수 툴 및 프로퍼티를 포함합니다.
아래 단계를 따라 클로딩 에셋을 생성하고 캐릭터에 할당하는 프로세스와 렌더 메시 페인팅의 기초에 대해 알아보세요.
클로스 에셋 생성 및 할당하기
클로딩 작업을 시작하려면 먼저 레벨 오브 디테일(Level of Detail, LOD) 섹션에서 클로딩 에셋을 생성하고 페인팅할 수 있도록 렌더 메시에 할당해야 합니다.
시작하려면 다음 단계를 따릅니다.
-
'스켈레탈 메시 에디터(Skeletal Mesh Editor)'의 메인 툴바에 있는 섹션 선택 버튼을 클릭합니다. 그러면 머티리얼 엘리먼트가 할당된 스켈레탈 메시의 각 부분을 선택할 수 있습니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
좌클릭하여 클로스로 사용할 메시 부분을 선택합니다. 그런 다음 우클릭하여 컨텍스트 메뉴를 열고 클로스 에셋을 생성합니다.
이미지를 클릭하면 전체 크기로 표시됩니다.
-
컨텍스트 메뉴에서 선택에서 클로스 에셋 생성(Create Cloth Asset from Selection) 을 선택하고 메뉴의 다음 영역을 채웁니다.
-
에셋 이름(Asset Name) - 나중에 더 쉽게 찾을 수 있도록 에셋에 이름을 지정합니다.
-
메시에서 제거(Remove from Mesh) - 클로스로 연결할 지오메트리의 별도 메시 부분이 있는 경우 이 옵션을 활성화할 수 있습니다. 그렇지 않으면 이 옵션을 선택하지 않고 둡니다.
-
피직스 에셋(Physics Asset) - 이 클로스 에셋이 캐릭터용인 경우 여기에서 피직스 에셋을 사용하여 클로스 시뮬레이션을 위한 적절한 콜리전을 구합니다.
세팅이 마음에 들면 생성(Create) 버튼을 클릭합니다.
-
-
섹션을 다시 우클릭하여 컨텍스트 메뉴를 열고 클로딩 에셋 적용(Apply Clothing Asset) 위로 커서를 가져간 다음 적용할 사용 가능한 클로딩 에셋 중에서 선택합니다. 생성된 모든 클로딩 에셋이 선택한 섹션과 연결됩니다.
클로스에 페인팅하기
클로스에 페인팅할 준비를 마친 후에는 다음과 같은 컨트롤을 사용하여 선택된 클로스 에셋에 대한 페인팅을 제어할 수 있습니다.
-
페인트 - 왼쪽 마우스 버튼
-
삭제 - Shift+왼쪽 마우스 버튼
-
클로스 프리뷰 - H
NVIDIA의 PhysX DCC 플러그인을 사용하여 3DS Max 또는 Maya용 클로딩을 생성하거나 다른 프로그램에서 비슷한 페인팅 툴을 사용해 본 경험이 있다면 이 작업의 컨트롤이 익숙하게 느껴질 것입니다.
-
'스켈레탈 메시 에디터'에서 '파일(File)' 메뉴로 이동하여 창(Window) 을 선택하고 목록에서 클로딩(Clothing) 을 선택합니다.
그러면 클로딩 패널이 열립니다.
-
툴바에서 클로스 페인트 활성화(Activate Cloth Paint) 버튼을 클릭하여 선택한 클로스 에셋을 페인팅하는 데 사용할 수 있는 프로퍼티를 활성화합니다.
-
클로딩 패널에서 클로딩 데이터(Clothing Data) 목록에서 할당된 클로스 에셋 을 선택합니다.
-
클로스 페인팅(Cloth Painting) 섹션에서 사용할 페인트 툴 타입을 선택하고 페인트 값(Paint Value)(기본적으로 브러시 페인트 툴 사용)을 설정할 수 있습니다. 그런 다음 좌클릭하고 메시 표면을 드래그하여 페인팅을 시작합니다.
H 키보드 단축키를 길게 눌러 페인팅된 클로스를 미리 봅니다.
페인트 툴

툴(Tool) 드롭다운에서 클로스 페인팅에 사용할 수 있는 브러시를 선택할 수 있습니다.
브러시
브러시(Brush) 툴을 사용하면 클로스 에셋을 드래그하여 반경 및 세기 값을 클로스에 페인팅할 수 있습니다.

페인트 값 을 사용하여 클로스 페인팅 시 브러시의 세기를 제어합니다. 이 값은 페인팅된 영역에서 얼마나 많은 부분이 이 값을 기반으로 클로스처럼 반응할지 제어합니다. 값이 0이면 스킨을 입힌 버텍스가 움직일 수 없고, 값이 100이면 스킨을 입힌 버텍스가 원래 위치에서 1미터 움직일 수 있습니다.

이 툴과 프로퍼티에 대한 자세한 내용은 브러시 프로퍼티 레퍼런스를 참고하세요.
그레이디언트
그레이디언트(Gradient) 툴은 선택된 클로스 값 세트 간에 점진적인 블렌드를 페인팅할 수 있게 지원합니다.

그레이디언트를 페인팅하려면 다음 단계를 따릅니다.
-
마우스 왼쪽 버튼 을 사용하여 그레이디언트 시작 값(Gradient Start Value) 을 페인팅합니다. 이는 페인팅된 버텍스 위에 녹색 점으로 표시됩니다.
-
Ctrl+마우스 왼쪽 버튼 을 누른 상태에서 그레이디언트 끝 값(Gradient End Value) 을 페인팅합니다. 이는 페인팅된 버텍스 위에 빨간색 점으로 표시됩니다.
-
페인팅을 마치면 Enter 키를 눌러 그레이디언트를 페인팅합니다.

이 툴과 프로퍼티에 대한 자세한 내용은 그레이디언트 프로퍼티 레퍼런스를 참고하세요.
스무드
스무드(Smooth) 툴은 페인팅된 클로스 값 간의 대비를 블러 처리하거나 부드럽게 만들 수 있게 지원합니다.

세기(Strength) 값을 사용하여 블러 이펙트의 세기를 조절함으로써 페인팅된 영역 간에 부드러운 그레이디언트를 만들 수 있습니다.

이 툴과 프로퍼티에 대한 자세한 내용은 스무드 프로퍼티 레퍼런스를 참고하세요.
채우기
채우기(Fill) 툴을 사용하면 유사한 값이 있는 영역을 다른 값으로 대체할 수 있습니다.

채우기 값(Fill Value) 을 사용하여 영역 내의 버텍스를 채울 값을 설정할 수 있습니다. 한계치(Threshold) 를 사용하여 대체할 버텍스를 샘플링할 때 채우기 작업에서 사용할 값을 설정할 수 있습니다.


이 툴과 프로퍼티에 대한 자세한 내용은 채우기 프로퍼티 레퍼런스를 참고하세요.
클로스 프로퍼티
클로스 환경설정(Cloth Config) 프로퍼티를 통해 클로스를 조정하여 거친 직물, 고무 및 기타 다양한 클로스 머티리얼을 시뮬레이션할 수 있습니다.

클로딩 환경설정 프로퍼티에 대한 자세한 내용은 클로스 환경설정 프로퍼티 레퍼런스를 참고하세요.
마스크
마스크(Mask) 는 클로딩 에셋용으로 교체 가능한 파라미터 세트입니다.

이 파라미터 세트는 다음과 같은 타깃(Target) 을 나타냅니다.
-
최대 거리(Max Distance) 는 클로스가 애니메이팅된 위치에서 가장 멀리 이동할 수 있는 거리입니다.
-
백스톱 거리(Backstop Distance) 는 최대 거리 내에서 무브먼트를 제한하기 위해 클로스의 포인트에서 사용되는 오프셋입니다.
-
백스톱 반경(Backstop Radius) 은 '최대 거리'와 교차될 때 클로스에 페인팅된 포인트가 해당 영역으로 이동하지 않도록 방지하는 스피어 반경을 사용합니다.
-
애님 드라이브 배수(Anim Drive Multiplier) 는 클로딩을 애니메이팅된 위치로 당기는 스프링을 제어하는 데 사용됩니다. 이는 시네마틱 또는 애니메이션 기반 씬에서 애니메이터가 제어할 수 있게 해줍니다.
-
블루프린트가 스켈레탈 메시 컴포넌트에서 액세스할 수 있는 인터랙터 오브젝트를 사용하여 런타임에서 제어될 수도 있습니다.
-
런타임에서의 값 세트는 페인팅된 값과 배수적으로 결합되어 최종 스프링 및 댐퍼 세기를 구합니다.
-
이러한 타깃 은 여러 개를 가질 수 있지만 한 번에 각각 하나만 할당할 수 있습니다. 이를 통해 서로 다른 환경설정을 변경사항이 유지되는 방식으로 매우 빠르게 테스트할 수 있습니다.
마스크를 생성하여 타깃에 할당하려면 다음 단계를 따릅니다.
-
더하기(+) 버튼을 클릭하여 비어 있는 새 마스크를 생성합니다.
-
새 마스크를 우클릭하고 타깃 설정(Set Target) 위로 마우스 커서를 가져간 다음 사용 가능한 타깃 목록 중에서 선택합니다.
-
선택한 타깃이 마스크 창에서 클로스 에셋에 대한 활성 타깃으로 나열된 것을 볼 수 있습니다.
-
창에서 디폴트 이름을 클릭하고 새 이름을 입력하여 마스크 이름을 변경할 수도 있습니다.
또한 컨텍스트 메뉴를 통해 스켈레탈 메시 버텍스 컬러를 선택된 클로딩 파라미터 마스크로 복사할 수도 있습니다.

마스크에 대한 자세한 내용은 마스크 프로퍼티 레퍼런스를 참고하세요.
스켈레탈 메시에서 클로딩 복사
비슷한 타입의 스켈레탈 메시, 예를 들어 캐릭터의 망토가 여러 개 있는 경우 스켈레탈 메시에서 클로딩 복사(Copy Clothing from SkeletalMesh) 옵션을 사용하여 다른 클로스 구성에 정의한 세팅을 복사 및 임포트함으로써 모든 파라미터를 처음부터 구성하지 않고 시간을 절약할 수 있습니다.

클로딩 데이터 에서 스켈레탈 메시에서 클로딩 복사 를 클릭하고 클로딩 데이터를 복사해 올 스켈레탈 메시를 선택합니다.