천 시뮬레이션: 컴퓨터가 옷을 펄럭이게 만드는 법

천 시뮬레이션: 컴퓨터가 옷을 펄럭이게 만드는 법
애니메이션 영화를 보면 주인공의 망토가 바람에 휘날린다. 치마가 뛸 때마다 출렁인다. 그런데 그 옷은 진짜 천이 아니다. 컴퓨터 안에 있는 숫자 덩어리다.
그럼 그 숫자 덩어리는 어떻게 진짜 천처럼 움직일까? 그걸 연구하는 분야가 천 시뮬레이션(Cloth modeling)이다.
먼저, 천은 왜 어려운가
돌멩이를 굴리는 건 쉽다. 돌은 모양이 안 변한다. 위치만 옮기면 된다.
그런데 천은 다르다. 손수건 하나를 떠올려 보자. 던지면 공중에서 접히고, 바닥에 닿으면 주름이 잡히고, 잡아당기면 늘어난다. 매 순간 모양이 바뀐다.
게다가 천은 자기 몸에 자기가 부딪힌다. 치마가 접히면 치마끼리 닿는다. 컴퓨터는 이걸 하나하나 계산해야 한다.
연구자들이 쓰는 세 가지 길
이 어려운 문제를 푸는 방법은 크게 세 갈래로 나뉜다. 기하학적 방법, 물리 기반 방법, 그리고 입자/에너지 방법이다.
1. 기하학적 방법 — 주름을 "그려 넣기"
이건 제일 단순하다. 천이 왜 그렇게 움직이는지는 신경 쓰지 않는다. 그냥 주름처럼 보이는 곡선을 수학 식으로 그린다.
커튼을 생각해 보자. 커튼 주름은 물결 모양이 반복된다. 그러면 물결 모양 수식을 하나 만들어서 붙이면 된다. 힘도, 무게도 계산하지 않는다.
빠르다. 대신 상황이 바뀌면 어색해진다. 커튼을 누가 확 잡아채면? 미리 그려둔 물결 모양은 그대로다. 반응하지 않는다.
2. 물리 기반 방법 — 진짜 세상 법칙 그대로
이건 정반대다. 실제 천이 왜 그렇게 움직이는지를 물리 법칙으로 계산한다.
천에는 힘이 작용한다. 아래로 당기는 중력. 옆에서 미는 바람. 늘어난 부분이 다시 돌아오려는 힘. 이 힘들을 다 더해서 "그래서 이 부분이 어디로 갈까"를 구한다.
결과는 놀랍도록 진짜 같다. 대신 계산량이 어마어마하다. 옷 한 벌에 계산할 지점이 수만 개인데, 그걸 1초에 24번 이상 반복해야 한다.
3. 입자 / 에너지 방법 — 점과 용수철로 엮기
가장 널리 쓰이는 방법이다. 아이디어가 아주 직관적이다.
천을 점(입자)들이 모인 그물로 본다. 그리고 점과 점 사이를 아주 작은 용수철로 연결한다. 마치 모기장처럼.
이제 한쪽 점을 잡고 들어 올리면? 연결된 용수철이 당겨지고, 그 옆 점도 따라 올라온다. 그 옆의 옆도 따라온다. 천 전체가 자연스럽게 딸려 올라간다.
천의 성격은 용수철로 정한다
재미있는 부분은 여기다. 용수철의 세기를 바꾸면 천의 성격이 바뀐다.
- 용수철을 단단하게 → 가죽이나 두꺼운 코트처럼 뻣뻣해진다
- 용수철을 느슨하게 → 실크나 얇은 커튼처럼 하늘하늘해진다
- 점의 무게를 무겁게 → 축 늘어진다
그러니까 애니메이터는 천을 새로 그리는 게 아니다. 숫자 몇 개를 조절해서 "이건 실크", "이건 청바지" 하고 성격을 정해 주는 것이다.
천 시뮬레이션을 알면 좋아지는 점
이건 우리가 고를 수 있는 문제가 아니다. 천이 원래 이렇게 움직이는 것이고, 컴퓨터는 그걸 흉내 낼 뿐이다. 그래도 이 구조를 알면 달라지는 게 있다.
애니메이션이 다르게 보인다. 캐릭터가 뛸 때 옷자락이 반 박자 늦게 따라오는 게 눈에 들어온다. 그게 그냥 그려진 게 아니라, 용수철이 늘어났다 돌아오는 시간이라는 걸 알게 된다.
어색한 장면의 이유를 짚을 수 있다. 게임에서 망토가 몸을 뚫고 지나가는 걸 본 적 있을 것이다. 그건 실수가 아니라, 부딪힘 계산을 줄여서 속도를 확보한 선택이다. 이유를 알면 화가 덜 난다.
왜 시간이 오래 걸리는지 이해된다. 영화 한 장면에 몇 시간씩 렌더링하는 이유가 여기 있다. 점 수만 개의 힘을 매 프레임 다시 푸는 일이다.
모르면 겪는 문제
구조를 모르면 결과만 보고 판단하게 된다.
옷이 이상하게 움직일 때 "그림을 못 그렸네"라고 생각한다. 사실은 재질 설정값이 안 맞은 것일 수 있다. 원인을 엉뚱한 데서 찾는다.
또 실시간 게임과 영화가 왜 다른지 설명하지 못한다. 게임은 1초에 60번을 즉시 계산해야 하고, 영화는 하루를 써도 된다. 이 차이를 모르면 "게임은 왜 이 정도밖에 못 하냐"는 오해가 생긴다.
정리
천 시뮬레이션은 결국 이 질문에 답하는 일이다. "부드럽고 계속 모양이 변하는 물건을, 딱딱한 숫자로 어떻게 표현할까?"
세 가지 답이 있다. 모양만 흉내 내거나(기하학적), 물리 법칙을 그대로 풀거나(물리 기반), 점과 용수철 그물로 바꿔서 계산하거나(입자/에너지).
다음에 애니메이션을 볼 때 캐릭터 옷을 한번 유심히 보자. 그 펄럭임 하나하나가 계산된 결과다. 누군가 손으로 그린 게 아니라, 수만 개의 점이 서로를 당기고 밀어서 만들어낸 움직임이다.
출처
리깅 파이프라인 자동화 도구
반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.
리깅 도구 보기