본문 바로가기

블렌더/물리 효과

[Blender] 옷감 표현 (Cloth simulation)

반응형

Cloth Simulation이란?

Cloth Simulation(옷 시뮬레이션)은 3D 모델의 표면에 옷 같은 유연한 소재를 시뮬레이션하는 기능이다.

이 기능을 잘 사용하면 옷, 커튼 등과 같은 유연한 물체를 사실적으로 모델링 할 수 있다.

뿐만 아니라 바람에 의해 휘날리는 깃발, 스카프 등의 애니메이션 효과역시 구현이 가능하다.


어떻게 사용할 수 있을까?

먼저 옷감 표현을 할 Plane과 장애물이 될 Cube하나를 생성한다.

평면과 큐브

여기서 평면은 subdivision을 사용하여 버텍스 수를 늘려준다. (Cloth simulation은 vertex를 기준으로 실행된다!)

edit - subdivide

그리고 Physics탭에서 cloth를 적용한다.

Physics - Cloth

적용한 다음 애니메이션 실행 버튼을 눌러 확인해보면

 

아래와 같이 평면이 큐브를 그대로 관통한다.

그 이유는 충돌 처리를 해주지 않았기 때문이다.

다시 Physics에서 큐브와 평면 모두에 Collision을 켜준다.

다시 애니메이션을 실행하면 다음과 같이 충돌이 잘 발생한다.

퀄리티를 높이기 위해서 Self Collisions를 켜주고 Object Collisions Distance를 조금 높여준다.

이후에 Modifier를 통해 Sibdivision과 Shade smooth를 해주면 다음과 같이 된다.

이러한 방식으로 이불, 식탁보, 의류 등의 정적인 옷감을 나타낼 수 있다.

 

하지만 바람에 의해 휘날리는 깃발이나 스카프처럼 동적인 옷감은 어떻게 나타낼까?


캐시 데이터를 사용한 애니메이션

Cloth Simulation은 버텍스의 움직임으로 애니메이션이 동작한다.

 

기존의 캐릭터 애니메이션처럼 Deform가능한 버텍스들이 Bone에 붙어 리깅 되어 움직이는 시스템과는 분명 다르다.

 

따라서 이러한 정점들의 움직임을 키프레임에 담고 저장할 수 있도록 해야 하는데, 그것이 바로 Cache이다.

 

Physics - Cloth에는 Cache 탭이 존재하는데, 해당 탭에서 bake를 사용하여 애니메이션을 구울 수 있다.

Bake를 시작하면 시뮬레이션 프레임동안 캐시 데이터가 생성되고 저장된다 (베이크 되는 동안 애니메이션이 실행되지는 않는다)

 

이 정보를 .Abc (alembic) 데이터로 export 하면 하나의 파일로써 저장이 가능해진다.

특히 게임엔진에서 alembic(.abc) 파일을 사용해 다양한 애니메이션을 실행할 수 있다.

반응형