PART 5 · 강의 1/3

Chaos Cloth 시스템

파티클 기반 Mass-Spring 모델과 Cloth 시뮬레이션의 기초

01

APEX에서 Chaos Cloth로

UE5 Cloth 시스템의 진화

UE4에서 사용되던 APEX Cloth (NvCloth)는 UE5에서 Chaos Cloth로 완전히 대체되었습니다. Chaos Cloth는 Chaos 솔버와 통합되어 리지드 바디, 파괴 시스템과 자연스럽게 상호작용합니다.

APEX Cloth 제거

UE5.5+에서는 APEX Cloth 관련 코드가 완전히 제거되었습니다. 기존 APEX Cloth 에셋은 Chaos Cloth로 마이그레이션해야 합니다. UE5 에디터에서 열면 자동 변환 옵션이 제공됩니다.

항목APEX Cloth (UE4)Chaos Cloth (UE5)
솔버NvCloth (NVIDIA)Chaos Cloth Solver (Epic)
물리 모델Position BasedMass-Spring (PBD)
리지드 바디 상호작용제한적Chaos 솔버와 통합
설정 도구Cloth Paint ToolCloth Paint + Panel Node Editor
Self Collision제한적개선됨
Backstop지원지원 (강화됨)
02

Cloth 시뮬레이션 원리

Mass-Spring 모델의 이해

Chaos Cloth는 파티클 기반 Mass-Spring 모델을 사용합니다. Skeletal Mesh의 각 정점(Vertex)이 질량을 가진 파티클이 되고, 인접한 파티클 사이에 스프링(Constraint)이 연결되어 천의 물리적 동작을 시뮬레이션합니다.

핵심 개념
  • 파티클(Particle) — 메시의 각 정점. 질량과 위치를 가집니다.
  • Distance Constraint — 인접 파티클 간 거리를 유지하는 스프링. 천이 늘어나는 것을 방지합니다.
  • Bending Constraint — 인접 삼각형 간의 각도를 제한. 천의 뻣뻣함을 제어합니다.
  • Max Distance — 파티클이 원래 위치에서 벗어날 수 있는 최대 거리.
  • Backstop — 파티클이 본 방향으로 관통하지 못하게 하는 제한.
Cloth Paint Tool

Skeletal Mesh 에디터에서 Cloth Paint 도구를 사용하여 정점별 가중치를 칠합니다. 흰색(1.0)은 최대 시뮬레이션(자유롭게 움직임), 검은색(0.0)은 완전히 고정(본에 고정)을 의미합니다.

03

Cloth 생성 워크플로우

Skeletal Mesh에 Cloth 추가하기

생성 단계
  • 1단계 — Skeletal Mesh 에디터에서 Cloth 시뮬레이션할 섹션(Section) 선택.
  • 2단계 — 우클릭 → Create Cloth Data from Section 선택.
  • 3단계 — Cloth Paint 도구로 Max Distance 가중치 페인팅.
  • 4단계 — Cloth Config에서 물리 파라미터(Mass, Stiffness 등) 조정.
  • 5단계 — 에디터에서 시뮬레이션 미리보기로 결과 확인.
  • 6단계 — Backstop Distance/Radius를 페인팅하여 관통 방지.
C++ - Cloth 시뮬레이션 런타임 제어
// Cloth 시뮬레이션 활성화/비활성화 void AClothCharacter::ToggleClothSimulation(bool bEnable) { USkeletalMeshComponent* Mesh = GetMesh(); if (bEnable) { // Cloth 시뮬레이션 재개 Mesh->ResumeClothingSimulation(); } else { // Cloth 시뮬레이션 정지 (애니메이션 포즈로 고정) Mesh->SuspendClothingSimulation(); } } // Cloth 시뮬레이션 리셋 (위치 초기화) void AClothCharacter::ResetCloth() { GetMesh()->ForceClothNextUpdateTeleportAndReset(); } // 텔레포트 시 Cloth 처리 void AClothCharacter::TeleportTo(FVector NewLocation) { // 텔레포트 전: Cloth가 늘어나는 것 방지 GetMesh()->ForceClothNextUpdateTeleport(); SetActorLocation(NewLocation); }
04

Cloth Config 파라미터

물리 속성 상세 설정

파라미터범위설명권장값
MassModeUniform/TotalMass/Density질량 분배 방식Uniform
UniformMass0.0+파티클당 질량0.5~2.0
Damping0.0~1.0전체 감쇠 (공기 저항)0.01~0.1
Friction0.0~1.0충돌 마찰0.3~0.5
Drag0.0~1.0공기 항력0.02~0.1
Lift0.0~1.0양력 (바람에 들리는 정도)0.01~0.05
Gravity배율중력 스케일1.0
AnimDriveStiffness0.0+애니메이션 포즈 추적 강도0.0~0.5
가벼운 천 vs 무거운 천

실크/쉬폰: 낮은 Mass(0.3), 높은 Damping(0.08), 낮은 Stiffness. 가죽/데님: 높은 Mass(2.0), 낮은 Damping(0.01), 높은 Bending Stiffness. 망토: 중간 Mass(1.0), AnimDriveStiffness로 과도한 움직임 제어.

SUMMARY

핵심 요약

  • UE5는 APEX Cloth를 대체하는 Chaos Cloth를 사용하며, Chaos 솔버와 통합되어 있습니다.
  • Mass-Spring 모델: 각 정점이 파티클, 인접 파티클 간 스프링으로 천을 시뮬레이션합니다.
  • Cloth Paint로 정점별 Max Distance 가중치를 칠하여 시뮬레이션 범위를 제어합니다.
  • 텔레포트 시 ForceClothNextUpdateTeleport()를 호출하여 Cloth 늘어남을 방지합니다.
  • Mass, Damping, Stiffness 조합으로 다양한 천 재질(실크, 가죽, 망토 등)을 표현합니다.
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 기본 Cloth 시뮬레이션 설정

Skeletal Mesh에 Clothing Asset을 추가하고, Cloth Paint Tool로 시뮬레이션 영역을 지정하세요. Max Distance를 조정하여 고정점과 자유 움직임 영역을 설정하세요.

실습 2: Cloth 물성 파라미터 튜닝

Stiffness, Damping, Gravity Scale 파라미터를 변경하며 실크(부드러움), 데님(딱딱함), 가죽(중간) 3가지 천 재질의 시뮬레이션 차이를 비교하세요.

심화 과제: 프로시저럴 Cloth 시스템

C++에서 Cloth Config를 런타임에 동적으로 변경하는 시스템을 구현하세요. 캐릭터 상태(달리기, 수영, 바람맞음)에 따라 Cloth 파라미터가 자동 전환되는 State Machine을 제작하세요.