Shatter 유리창 깨어지는 효과


특수효과의 단골손님이 '부숴뜨리기'이다. 만일 특수효과가 없었다면, 수많은 기물과 소품들을 직접 깨뜨려야 하고, 이에 비용이 만만찮지 않게 들어간다.


"모델링 -> 랜더링 -> Shatter 효과 -> 실사합성"


최근 1인 미디어가 증가하고 있다. '부숴지는 효과'는 1인 미디어 제작자들에게 가장 필요한 특수효과가 아닐까한다. 화염이나 혈흔은 시나리오가 거창해지고, 부숴지는 부분은 간단한 갈등 씬을 간단하게 처리할 수 있다. 만일 실제 사물을 부숴야한다면 제작비가 적건 많건 무조건 들어간다. 따라서 1인 미디어에서 특수효과는 위의 코스만 습득하더라도 시간과 에너지를 충분히 절약할 수 있다.


이번 포스팅에서는 유리창 부서뜨리기에 관해 알아보자.


1 『MultiCut이용하기』

유리창으로 활용한 plane 폴리곤 매시를 생성한다. "Mesh tools -> multi-cut"을 실행한다.


멀티컷 툴로 부서진 느낌을 표현할만큼 면을 자른다. 


* 세심한 표현

오브젝트가 유리창에 부딪치는 부분을 정밀하게 자르려면, 아래와 같이 "멀티컷 툴"을 사용한다. 운동하는 개체와 부딪치는 부분의 면들을 최대한 많이 생성한다. 


컷팅 작업이 모두 끝나면, history를 삭제한다.


오브젝트를 선택하고, edit mesh -> detach를 실행하여, 면이 모두 분할되도록 설정한다.


edit mesh -> extrude를 실행해서, 면의 두께를 만들어준다.


해당 프로젝트에서 두께는 0.12 정도(Z축)로 설정했다.


2 nCloth 실행

전체 오브젝트를 선택하고, nCloth -> Create nCloth를 실행한다. 

nCloth를 실행하면, detach로 잘려진 면들이 조각조각 흩어진다.


힘을 가하는 물체(토러스)는 nCloth -> Create Passive Collider를 실행한다. 


play를 실행하면, 아래처럼 토러스에 부서진 파편들이 날라가는 모습을 확인할 수 있다. 


3 nConstrain 활용하기

유리창이 부숴질 때, 외곽부분은 형체를 유지한 상태일 때가 많다. nConstrain기능을 활용하여 외곽부분의 nCloth들은 모양을 유지하도록 설정을 해줘야 한다. 


아래처럼, 붓 툴을 선택하여 외곽 voltex들을 모두 선택한다. 


nConstrain -> Transform Constraint 실행을 한다. 


transform constraint를 실행하면, 선택한 voltex는 원래의 형태를 유지하기 위해 노력을 한다. (아래사진 참고)


4 nConstrain 설정

아웃라이너에서 DynamicConstraint노드를 선택하고, Strength값을 100정도로 높인다. 

strength강도를 높일수록 형체를 유지하려는 성질이 강해진다.


현재 물체가 유리창에 부딪치자마자 파편이 바닥으로 떨어지기 때문에 현실적이지 못한 느낌이 든다. 이럴 경우에는 nucleus노드의 gravity(중력값)을 key값으로 조절하면 된다.


아래사진처럼, nucleus노드의 gravity값에 키를 설정하여 0프레임부터 중력값 0을 유지하되, 물체가 창문을 뚫고 나가는 순간(14프레임)부터 중력값을 다시 9.8로 설정한다.


*use plane

use plane을 활성화시키면, 지면을 임의로 설정할 수가 있다. nucleus 위치를 설정해주면, n계열 오브젝트들이 지면으로 인식한다.


ground의 마찰(friction)과 끈적임(stickness)값을 0.3~1사이로 조절해준다.


nCloth를 선택하고, nCache -> create new cache -> nObject 옵션을 실행한다.


초고속 카메라 연출이 아니라면, 옵션에서 Evaluate every 프레임을 '1'로 설정한다.