https://youtu.be/YmXUkOs5ErY?si=vG4p-XZugi-VnFv2

 

 

 

소개


이 가이드는 BoneCloth 사용법의 연속이므로, 이미 설명된 항목은 생략됩니다.
따라서 이 가이드를 읽기 전에 BoneCloth 사용법을 먼저 확인하세요.

 

 

 

 

MeshCloth란?


MeshCloth는 메시의 버텍스를 기반으로 옷감 시뮬레이션을 수행하는 방식입니다.
BoneCloth보다 더 현실적인 흔들림을 표현할 수 있지만, 처리 부하는 더 높습니다.

  • 메시 버텍스를 직접 조작하여 흔들림을 표현
  • 메시에 본(Bone)이 없어도 사용 가능
  • 대량 사용 시 성능에 주의 필요 (처리 부하가 높음)

 

 

 

 

모델 임포터 설정


MeshCloth를 사용하기 전에 대상 모델의 임포트 설정을 확인해야 합니다.
MeshCloth는 버텍스를 조작하기 위해 Read/Write 속성이 필요합니다.

기본적으로 이 속성은 OFF이므로, Project 뷰에서 대상 모델을 선택한 후
Model Importer의 Read/Write 체크를 ON으로 설정하세요.

 

또한 [Rig] 탭의 "Optimize Game Objects" 옵션을 OFF로 설정해야 합니다.

 

 

 

 

기타 조건


  • 스킨 메시에 사용할 경우, 각 버텍스당 최대 가중치(Weight) 수는 4 이하여야 합니다.

 

 

 

 

MeshCloth 추가하기


UnityChanKAGURA 샘플의 치마(Skirt) 를 예제로 설정 방법을 설명합니다.

 

BoneCloth와 동일하게 Hierarchy의 우클릭 메뉴에서 MagicaCloth 컴포넌트를 추가합니다.

 

 

가능한 한 캐릭터 루트 바로 아래에 배치합니다.

일반적으로 Animator 컴포넌트의 자식 오브젝트로 설정됩니다.

 

Cloth Type을 [Mesh Cloth]로 변경합니다.

이렇게 하면 MeshCloth 전용 Inspector로 전환됩니다.

 

MeshCloth의 Inspector는 BoneCloth와 Main 설정에서만 차이가 있으며,
그 외의 부분은 BoneCloth와 동일합니다.

 

 

 

 

 

렌더 메시와 프록시 메시



MeshCloth에서 중요한 개념은 프록시 메시입니다. MeshCloth는 렌더 메시, 즉 화면에 표시되는 메시를 그대로 시뮬레이션에 사용하지 않습니다.
이는 주로 다음과 같은 이유 때문입니다.

  • 렌더 메시를 그대로 사용하면 버텍스 개수가 너무 많아 시뮬레이션 부하가 커집니다. (심플해 보이는 메시도 10,000개 이상의 버텍스를 가질 수 있습니다.)
  • 삼각형 연결 구조는 시뮬레이션에 적합하지 않습니다.
  • 표현의 편의성을 위해 메시가 분리된 경우가 많습니다. (예: 치마의 앞면과 뒷면을 다른 머티리얼로 구분하기 위해 메시를 분리하는 경우 등)

프록시 메시는 이러한 문제를 해결하는 역할을 합니다.
프록시 메시는 렌더 메시를 기반으로 버텍스 수를 줄여 생성된 가상의 메시입니다.
이 프록시 메시는 런타임에서만 메모리에 존재합니다.

 

아래는 원본 렌더 메시(위)와 단순화된 프록시 메시(아래)의 관계를 나타냅니다.

 

 

아래쪽의 프록시 메시가 더 적은 버텍스를 가지고 있으며, 단순한 형태를 하고 있음을 확인할 수 있습니다.
MeshCloth는 이 프록시 메시에서 모든 시뮬레이션을 수행하며, 그 결과를 원본 렌더 메시에 반영하여 화면에 출력합니다.
이 개념은 매우 중요하므로 반드시 숙지하세요.

 

 

 

 

렌더 메시 등록



프록시 메시의 기반이 될 렌더 메시를 등록해 보겠습니다.
SkinnedMeshRenderer와 MeshRenderer를 등록할 수 있습니다.
KAGURA의 치마에는 SkinnedMeshRenderer가 할당되어 있습니다.

 

이 SkinnedMeshRenderer를 MeshCloth의 Source Renderers 목록에 등록합니다.

 

이제 씬 뷰에 프록시 메시가 표시됩니다.

 

이 프록시 메시는 아직 간소화되지 않은 상태이므로 렌더 메시와 동일한 구조를 가지고 있습니다.

 

여러 개의 렌더 메시를 등록할 수도 있으며, 이 경우 모든 렌더 메시가 하나의 프록시 메시로 결합됩니다.

 

 

 

 

Reduction



렌더 메시를 등록한 직후의 프록시 메시는 렌더 메시와 동일한 구조를 가지고 있습니다.
이 상태로도 시뮬레이션을 시작할 수 있지만, 앞서 설명한 것처럼 더 단순한 프록시 메시는 성능과 안정적인 시뮬레이션 측면에서 유리합니다.
Reduction 기능은 이 프록시 메시를 간소화하는 역할을 합니다.

 

Reduction 패널

 

프록시 메시의 간소화는 두 개의 슬라이더를 조정하여 수행됩니다.

  • Simple Distance: 단순히 가까운 버텍스를 병합합니다. 메시의 구조는 고려하지 않습니다.
  • Shape Distance: 메시의 형상을 기반으로 가까운 버텍스를 병합합니다. 서로 연결되지 않은 표면의 버텍스는 근접해 있더라도 병합되지 않습니다.

 

씬 뷰를 보면서 조정


슬라이더를 조정해 보세요.
슬라이더를 움직이면 프록시 메시는 실시간으로 간소화되며 씬 뷰에 즉시 반영됩니다.
씬 뷰를 확인하면서 프록시 메시를 적절하게 간소화하세요.

 

 

얼마나 단순화해야 할까?

 

이 기준은 메시의 형태, 길이, 원하는 시뮬레이션 방식에 따라 달라지므로 일반적인 기준을 정하기 어렵습니다.
다음 사항을 참고하세요.

  • 프록시 메시가 단순할수록 성능이 향상됩니다.
  • 렌더 메시에 세밀한 돌출부가 남아 있지 않을 정도로 간소화하는 것이 좋습니다.
  • 너무 과도하게 간소화하면 충돌 감지 기능이 약해질 수 있습니다. 렌더 메시와 프록시 메시의 차이가 커질 경우 화면 표시가 불안정해질 수 있습니다.

 

완성된 프록시 메시

이번 예제에서는 프록시 메시의 표면이 거의 평평한 상태가 될 정도로 간소화해 보았습니다.

 

 

 

 

 

Vertex paint



프록시 메시를 간소화한 후에는 각 버텍스의 동작 속성을 결정해야 합니다.
이 작업은 Vertex Paint를 통해 수행됩니다.
MeshCloth에서는 BoneCloth와 달리 Vertex Painting이 매우 중요합니다.
그 이유는 MeshCloth가 모든 버텍스 속성을 기본적으로 Invalid(무효) 로 초기화하기 때문입니다.
따라서 MeshCloth를 사용할 때는 반드시 버텍스 페인팅을 통해 각 버텍스의 속성을 결정해야 합니다.

 

고정된 속성과 움직이는 속성

여기서 중요한 작업은 움직이지 않는 버텍스와 움직이는 버텍스를 명확히 구분하는 것입니다.
예를 들어, 치마의 경우 허리 근처의 버텍스는 움직이지 않아야 하며, 나머지는 자유롭게 움직일 수 있어야 합니다.
움직이지 않는 버텍스를 Fixed 속성, 움직이는 버텍스를 Move 속성이라고 합니다.

 

Vertex Paint 시작

Vertex Paint는 아래의 펜 모양 버튼을 클릭하여 실행할 수 있습니다.
페인트 모드를 실행하면 씬 뷰가 페인트 모드로 전환됩니다.

 

 

페인트 패널

페인트 속성은 Paint 패널에서 설정할 수 있습니다.

 

Point Size 표시되는 버텍스 구체 크기
Brush Size 페인트 브러시 크기
Shape 활성화하면 프록시 메시의 구조를 기즈모로 표시
Culling 활성화하면 씬 카메라 방향과 반대쪽의 버텍스 구체를 숨김
Z Test 활성화하면 버텍스 구체를 표시하고 깊이 테스트 결과를 확인 가능
Through 활성화하면 깊이를 무시하고 커서 내부의 모든 버텍스를 채울 수 있음 (브러시 크기 변경됨)
Paint Attribute 페인트할 버텍스 속성 선택

 

버텍스 속성은 세 가지로 구분됩니다.

Move 초록 자유롭게 움직이는 버텍스
Fixed 빨강 움직이지 않는 버텍스
Invalid 회색 시뮬레이션에서 제외되는 버텍스
예를 들어, 허리 위쪽이 시뮬레이션과 관련이 없는 드레스라면, 해당 부분을 Invalid 속성으로 설정하면 성능이 향상됩니다.

 

페인트 완료

이제 실제로 페인팅을 해보겠습니다.
페인트할 속성을 선택한 후, 마우스 커서를 프록시 메시 위에 올리고 클릭하거나 드래그하여 페인트합니다.

이번에는 치마를 아래와 같이 페인트했습니다.
페인팅이 끝나면 Exit 버튼을 눌러 페인트 모드를 종료합니다.

 

이로써 프록시 메시의 기본 설정이 완료되었습니다!

 

 

 

Parameter settings


마지막으로, 움직임을 조절하는 파라미터(Parameters) 를 설정합니다.
BoneCloth에서와 마찬가지로, 여기서도 프리셋(Preset)을 사용하여 간편하게 설정할 수 있습니다.

다음과 같이 Preset 메뉴에서 [skirt] 프리셋을 선택합니다.

 

이제 skirt 프리셋의 설정이 자동으로 적용되며, 관련 파라미터가 확장됩니다.

 

 

 

 

Operation check


이제 실행해 봅시다!
Unity 에디터에서 Play 버튼을 눌러 실행하고, 캐릭터를 움직여서 치마가 흔들리는지 확인하세요.
치마가 자연스럽게 흔들린다면 설정이 성공적으로 완료된 것입니다!

 

 

 

 

 

What next?


이번에는 MeshCloth의 최소한의 설정만 적용했습니다.
그러나 애니메이션을 보면 아직 인체와의 충돌 감지가 설정되지 않아 치마가 다리를 통과하는 문제가 발생합니다.
다음 챕터에서는 충돌 감지(Collision Detection) 설정 방법을 자세히 설명합니다.

'유니티 에셋 > Magica Cloth 2' 카테고리의 다른 글

충돌 감지 설정  (0) 2025.03.02
BoneSpring을 사용하는 방법  (0) 2025.03.02
BoneCloth 사용 방법  (0) 2025.03.01
설치 방법  (0) 2025.02.28
MagicaCloth2에 대하여  (0) 2025.02.28

+ Recent posts