# Cloth Lab v0.6 — 동적 찢기 추가

무료 Blender 천·의상 제작 애드온입니다. 기존 기능에 **15번 동적 찢기·파단 제어**를 추가했습니다.

## 실행 환경
- 기존 천·의상 기능: Windows Blender 4.5.14 LTS 및 5.2.2 LTS에서 검사했습니다.
- 동적 찢기: **Blender 5.2 이상**의 내장 Cloth Dynamics (Experimental) / XPBD를 사용합니다. 4.5에서는 이 기능을 실행할 수 없습니다.
- 새 모드는 Blender의 실험 기능입니다. **천끼리의 자기 충돌은 지원하지 않습니다.** 기존 Cloth의 Wind/Turbulence/Pressure 설정과 Shape Key 주름 베이크는 이 엔진에 자동 연결되지 않습니다.

## 설치
1. Blender → Edit → Preferences → Add-ons → Install from Disk.
2. `Cloth_Lab_v0.6.zip`을 압축 해제하지 않고 선택하고 Cloth Lab을 활성화합니다.
3. 업데이트 후에는 Blender를 재시작합니다.
4. 3D 뷰포트에서 N → Cloth Lab → **동적 찢기 작업창 열기** 또는 **15 · 동적 찢기 · 파단 제어**를 엽니다.

## 바로 확인하기
`Cloth_Lab_0.6_Dynamic_Tearing.blend`를 Blender 5.2에서 여세요. 1–72프레임의 계산 결과가 파일 안에 Packed 캐시로 들어 있습니다. Space로 재생하거나 1/36/60프레임을 비교하세요. 예제는 기능 검증용이며 최종 의상 디자인이나 실측 직물 재현 예제가 아닙니다.

빈 장면에서 **잡아당겨 찢기 예제 만들기**를 눌러도 같은 구조를 생성합니다. 기존 오브젝트를 지우지 않고 새 천과 두 잡기 컨트롤을 만듭니다. 처음 만든 예제는 .blend를 저장한 다음 베이크하세요.

## 내 천에 적용하기
1. Scale을 적용한 천 메시를 오브젝트 모드에서 선택합니다.
2. **원본 보존 → 동적 천 복사본**을 누릅니다. 원본은 숨겨 보존하고, 복사본에 새 엔진을 연결합니다. 복사본은 원본의 기본 메시와 앞단의 Hook/Armature/Lattice/정점 가중치 제어를 사용하며, 기존 Cloth와 표시·주름 모디파이어는 복사본에서 제외합니다. 완성된 현재 모양으로 시작하려면 먼저 스냅샷 메시를 만드세요.
3. 고정할 정점을 편집 모드에서 선택하고 **선택 정점 고정** 또는 **잡기 컨트롤**을 누릅니다.
4. 구형 잡기 컨트롤을 이동하고 위치 키프레임을 넣습니다. 천을 다시 선택해 설정을 조절합니다.
5. 수치를 바꾼 후 **설정 적용 · 캐시 초기화** → **전체 프레임 베이크** → Ctrl+S 순서로 저장합니다.

## 주요 옵션
| 옵션 | 의미 / 예제 값 |
| --- | --- |
| 힘에 따른 동적 파단 | 켜면 계산 도중 연결이 분리됩니다. 끄면 찢지 않습니다. |
| 파단 임계값 | 높을수록 잘 버팁니다. 예제 1.025. 내장 엔진의 길이 비율 기준이며 힘의 N 단위가 아닙니다. 탄성·분할·계산 품질에도 반응이 달라집니다. |
| 전체 / 선택 엣지 / 조각 패턴 | 모든 엣지, 직접 표시한 엣지, Voronoi 조각 경계 중 허용 영역을 정합니다. |
| 늘어나는 정도 / 휘어지는 정도 | 0–1. 예제 각각 0.8. 기존 Cloth의 인장·굽힘 수치와 같은 단위가 아닙니다. |
| 프레임당 계산 / 제약 계산 반복 | 예제 5 / 15. 높이면 계산량이 증가합니다. |
| 정점당 질량 / 감쇠 | 예제 1 / 1. 메시 밀도를 바꾸면 전체 질량과 움직임도 달라집니다. |
| 중력 방향·크기 | 예제 (0, -0.12, -0.5). 기본 새 천은 (0, 0, -9.81). |
| 충돌 반경 / 마찰 | 예제 0.003m / 0.5. 충돌 물체의 별도 전용 노드도 연결해야 합니다. |

## 찢어질 부위만 지정하기
캐시 초기화 → 시작 프레임에서 Edit Mode → 엣지 선택 → **선택 엣지 허용** → 찢기 영역을 **선택 엣지**로 변경 → Object Mode → 설정 적용 → 베이크.
마스크가 비어 있으면 찢어지지 않습니다. 선택한 영역도 충분한 변형이 생겨야 찢어집니다. 단순히 선택하는 것만으로 즉시 절단하는 기능은 14번 정적 찢기 도구입니다.

## 충돌
추가할 충돌 물체를 지정하고 **닫힌 메시를 충돌 물체로 연결**을 누릅니다. 큐브·닫힌 몸체처럼 구멍 없는 메시를 사용합니다. 기존 Collision 모디파이어만으로는 새 엔진과 연결되지 않으므로, 이 버튼으로 전용 Collider와 Effectors 컬렉션을 연결하세요. 열린 평면은 오류 안내 후 연결하지 않습니다.

## 캐시와 공유
파단은 정점 수가 달라지므로 기존 8번의 고정 정점 수 Shape Key 베이크를 사용할 수 없습니다. 15번에서 계산하면 토폴로지 변화까지 포함한 캐시가 .blend에 저장됩니다. 베이크 완료 후 반드시 Ctrl+S로 저장하세요. 같은 Blender 5.2.2에서 열어 재생하는 것을 검증했으며, 캐시는 Blender 버전 사이의 영구 호환 포맷이 아닙니다.

## 구현과 공개 범위
Cloth Lab의 옵션창·영역 편집·잡기·충돌 연결·저장 워크플로는 자체 코드입니다. 파단 계산은 Blender 내장 XPBD를 사용하며, 독자 물리엔진이나 Simply Cloth Studio의 원본 코드를 복제한 구현으로 표시하지 않습니다. Blender 기본 노드 에셋은 사용자의 설치본에서 읽습니다. 유료 애드온은 필요하지 않습니다.

소스: GPL-3.0-or-later. v0.5 원본과 기존 배포물은 별도 폴더에 보존했습니다.

공식 기술 문서:
- https://docs.blender.org/manual/en/5.2/modeling/geometry_nodes/simulation/cloth_dynamics.html
- https://developer.blender.org/docs/release_notes/5.2/physics/
- https://docs.blender.org/manual/en/5.2/modeling/geometry_nodes/baking.html
