천(Cloth) 컴포넌트는 스킨드 메시 렌더러와 함께 작동하여 직물을 시뮬레이션하는 물리 기반 솔루션을 제공합니다. 이 컴포넌트는 캐릭터의 옷에 사용하도록 특별히 고안되었고 스킨드 메시만 이 컴포넌트와 함께 사용할 수 있습니다. Cloth 컴포넌트를 스킨드 메시가 아닌 메시에 추가하면 해당 메시가 제거되고 스킨드 메시가 추가됩니다.
Cloth 컴포넌트를 스킨드 메시에 연결하려면 에디터에서 게임 오브젝트를 선택한 후 인스펙터 창에서 Add Component 버튼을 클릭하고 Physics > Cloth 를 선택합니다. 컴포넌트가 인스펙터에 표시됩니다.
프로퍼티: | 기능: |
---|---|
Stretching Stiffness | 천이 늘어나는 강도를 설정합니다. |
Bending Stiffness | 천이 접히는 강도를 설정합니다. |
Use Tethers | 제약을 적용하여, 움직이는 천 파티클이 고정된 파티클로부터 너무 많이 이동하지 않도록 합니다. 이렇게 하면 과도하게 스트레치되지 않도록 할 수 있습니다. |
Use Gravity | 천에 중력 가속도가 적용되어야 할지 여부를 설정합니다. |
Damping | 모션 댐핑 계수를 나타냅니다. |
External Acceleration | 천에 적용되는 불변의 외부 가속입니다. |
Random Acceleration | 천에 적용되는 불규칙적인 외부 가속도입니다. |
World Velocity Scale | 월드 공간에서 캐릭터의 움직임이 천 버텍스에 얼마나 영향을 미치는지를 설정합니다. |
World Acceleration Scale | 월드 공간에서 캐릭터의 가속이 천 버텍스에 얼마나 영향을 미치는지를 설정합니다. |
Friction | 캐릭터와 충돌할 때 천의 마찰을 나타냅니다. |
Collision Mass Scale | 충돌 파티클의 매스를 얼마나 증가시킬지 설정합니다. |
Use Continuous Collision | 연속 충돌을 활성화하여 충돌 안정성을 높일 수 있습니다. |
Use Virtual Particles | 삼각형당 하나의 가상 파티클을 추가하여 충돌 안정성을 높일 수 있습니다. |
Solver Frequency | 초당 솔버의 반복 횟수를 나타냅니다. |
Sleep Threshold | 천의 슬립 임계값을 나타냅니다. |
Capsule Colliders | 천 인스턴스가 충돌할 캡슐 콜라이더의 배열을 나타냅니다. |
Sphere Colliders | 천 인스턴스가 충돌할 ClothSphereColliderPairs의 배열을 나타냅니다. |
천은 씬 안의 모든 콜라이더와 반응하는 것은 아니고, 월드에 힘을 미치지도 않습니다. Cloth 컴포넌트가 추가되면 다른 바디에 전혀 영향을 주지 않고 반응하지도 않습니다. 그러므로 월드로부터 Cloth 컴포넌트로 콜라이더를 수동으로 추가해야 천과 월드가 비로소 서로를 인식하거나 볼 수 있습니다. 이런 과정 후에도 시뮬레이션은 여전히 일방향으로 일어납니다. 즉, 천은 다른 바디에 반응하지만 반대로 다른 바디에 힘을 적용하지는 못합니다.
뿐만 아니라, 천에는 구체, 캡슐, 원추형 캡슐(두 개의 스피어 콜라이더로 구성)의 세 가지 타입의 콜라이더만 사용할 수 있습니다. 이러한 제약은 모두 성능 향상을 위한 것입니다.
Edit > Constraints 를 선택하여 천 메시의 각 버텍스에 적용되는 제약을 편집할 수 있습니다. 모든 버텍스는 현재 시각화 모드에 따라 각 버텍스 값의 차이를 나타내는 컬러로 표시됩니다. 천 제약을 브러시로 천에 색칠하는 방법으로 제약을 적용할 수 있습니다.
프로퍼티: | 기능: |
---|---|
Visualization | 씬 뷰에서 툴의 시각적 형상 옵션을 최대 거리 또는 표면 침투 값으로 변경합니다. 후면 조작도 선택할 수 있습니다. |
Max Distance | 하나의 천 파티클이 버텍스 포지션으로부터 움직일 수 있는 최대 거리를 나타냅니다. |
Surface Penetration | 천 파티클이 메시를 얼마나 깊이 관통할 수 있는지 설정합니다. |
Brush Radius | 제약을 천에 색칠하여 적용할 때 사용하는 브러시의 반지름을 설정합니다. |
두 가지 모드로 각 버텍스의 값을 변경할 수 있습니다.
Select 모드를 사용하여 버텍스 그룹을 선택할 수 있습니다. 이렇게 하려면 마우스 커서를 사용하여 선택 상자를 그리거나 버텍스를 한 번에 하나씩 클릭합니다. 그런 다음 Max Distance 또는 Surface Penetration 을 활성화하거나 둘 모두를 활성화한 후 값을 설정할 수 있습니다.
Paint 모드를 사용하여 개별 버텍스를 직접 조절할 수 있습니다. 이렇게 하려면 조절할 버텍스를 클릭합니다. 그런 다음 Max Distance 또는 Surface Penetration 을 활성화하거나 둘 모두를 활성화한 후 값을 설정할 수 있습니다.
두 가지 모드에서 Max Distance 및 Surface Penetration 에 값을 지정하면 씬 뷰에 바로 업데이트되어 나타납니다.
천 충돌을 사용하면 게임에서 캐릭터의 옷과 기타 직물이 더 사실적으로 움직입니다. Unity 에디터에는 천 충돌을 처리하는 여러 천 파티클이 있습니다. 다음과 같은 목적으로 천 파티클을 설정할 수 있습니다.
천의 충돌 파티클을 설정하려면 천 인스펙터에서 Self Collision and Intercollision 버튼을 선택합니다.
Cloth Self Collision And Intercollision 창이 씬 뷰에 나타납니다.
Cloth 컴포넌트가 있는 스킨드 메시에서는 천 파티클이 자동으로 표시됩니다. 처음에는 천 파티클이 충돌하지 않도록 설정되어 있습니다. 이렇게 사용되지 않는 파티클은 검정색으로 나타납니다.
자체 충돌 또는 상호 충돌을 적용하려면 충돌을 적용할 파티클 세트를 하나 선택해야 합니다. 충돌을 적용할 파티클 세트를 선택하려면 Select 선택 버튼을 클릭합니다.
이제 마우스 왼쪽 버튼을 클릭한 채로 움직여 충돌을 적용할 파티클을 선택합니다.
선택된 파티클이 파란색으로 표시됩니다.
Self Collision and Intercollision 체크박스를 선택하여 충돌을 선택된 파티클에 적용합니다.
충돌하도록 적용한 파티클은 녹색으로 표시됩니다.
천의 자체 충돌 동작을 활성화하려면 천 인스펙터 창에서 Self Collision 섹션으로 이동하여 Distance 및 Stiffness 를 영(0)이 아닌 값으로 설정합니다.
프로퍼티: | 기능: |
---|---|
Distance | 각 파티클을 둘러싸는 구체의 지름입니다. Unity 에디터는 시뮬레이션 중에 이런 구체가 겹치지 않도록 합니다. Distance 는 설정에서 입력한 두 파티클 사이의 최소 거리보다 작아야 합니다. 거리가 더 크면 자체 충돌이 일부 거리 제약을 위반하게 되어 지터링이 발생할 수 있습니다. |
Stiffness | 파티클에 가해지는 분리 충격력이 얼마나 쎈지 설정합니다. 천 솔버가 이 연산을 담당하며, 파티클이 분리된 상태를 유지할 정도로 충분해야 합니다. |
자체 충돌 및 상호 충돌을 모두 시뮬레이션하려면 많은 시간이 소요될 수 있습니다. 충돌 거리를 작게 유지하고 자체 충돌 인덱스를 사용하여 서로 충돌하는 파티클 수를 줄이는 것이 좋습니다.
자체 충돌에는 삼각형이 아닌 버텍스가 사용되므로 천 두께보다 훨씬 큰 삼각형이 있는 메시에서 자체 충돌이 완벽하게 작동할 것이라고는 기대하지 마십시오.
Paint 및 Erase 모드에서는 마우스 왼쪽 버튼을 누른 채로 개별 천 파티클을 드래그하여 충돌에 사용할 파티클을 추가하거나 제거할 수 있습니다.
Paint 또는 Erase 모드에서는 충돌하도록 지정된 파티클은 녹색으로, 아무 것도 지정되지 않은 파티클은 검정색으로, 브러시 밑에 놓여진 파티클은 파란색으로 표시됩니다.
상호 충돌 파티클은 위에서 설명한 자체 충돌 파티클을 지정하는 방법과 같은 방법으로 지정할 수 있습니다. 자체 충돌과 마찬가지로 상호 충돌 파티클 세트를 하나 선택해야 합니다.
상호 충돌 동작을 활성화하려면 Physics 설정(Unity의 메인 메뉴: Edit > Project Settings 에서 Physics 카테고리 선택)의 Cloth InterCollision 섹션에서 Distance 와 Stiffness 를 0이 아닌 값으로 설정하십시오.
천 상호 충돌의 Distance 및 Stiffness 프로퍼티는 위에서 설명한 자체 충돌의 Distance 및 Stiffness 프로퍼티의 기능과 같습니다.
천은 임의의 월드 지오메트리와 그냥 충돌할 수는 없으며, 이제 Capsule Colliders 또는 Sphere Colliders 배열에 명시된 콜라이더와만 상호작용합니다.
스피어 콜라이더 배열은 하나의 유효한 SphereCollider 인스턴스를 담거나(두 번째 인스턴스는 null), 또는 두 개의 인스턴스를 담을 수 있습니다. 전자의 경우, ClothSphereColliderPair는 천이 충돌하게 될 하나의 스피어 콜라이더를 나타냅니다. 후자의 경우에는 두 개의 구에 의해 정의되는 원추형 캡슐 형태를 나타내며, 이때, 두 개의 구는 원뿔로 연결됩니다. 원추형 캡슐은 캐릭터의 팔다리를 모델링할 때 유용합니다.