후디니를 공부하면서 처음으로 파괴하는 것을 만들었다. 아주 간단한 것이지만 상자를 떨어뜨려서 부딪힘과 동시에 부서지는 것이다.
먼저, sopnet에서 box 노드로 상자를 하나 생성했다. 거기에 transform 노드를 사용하여 모양과 위치를 잡아주고, dopnet을 만들어 본격적으로 효과를 집어넣기 시작했다.
dopnet을 보면 rdb라는 노드를 생성해서 sop path 라는 파라미터로 sopnet에 있는 transform1 노드와 연결을 시켰다. `opinputpath`라는 함수로 지정된 노드 즉, transform1 노드에 입력하는 노드인 rbd 노드의 경로를 반환하였다.
-> rbd에 적용시킨 값이 transform1에 적용된다는 것 같다.
그 다음 rigid body solver 노드를 넣어 솔버의 종류를 선택한다. 여기서 rigid body는 공간 상에서 부피를 가지고 다른 물체와 부딪히며 중력과 같은 힘을 받는 물체를 말한다. 물체가 떨어져야 하니 gravity 노드를 추가한다.
ground 노드로 부딪힐 지면을 만든다. 부딪혔을 때, 상자와 파편이 굴러가도록 살짝 기울인다. static solver 노드로 상자와 부딪히게 한다.
이때, ground 노드의 physical 설정에 따라 탄성과 마찰을 조절할 수 있다.
그리고 상자와 땅을 같이 보이기 위해 merge 노드로 연결을 한다.
voronoi fracture SOP을 만든다. 그리고 scatter 노드를 voronoi fracture 노드와 box노드 사이에 넣는다. 그러면 상자가 갈라지는데 이것은 point가 표면에만 존재해서 미묘한 형태가 된 것. VDB from Polygon 노드를 box 노드와 scatter 노드 사이에 넣음으로서 해결된다. - 입체화 voronoi 노드를 보면 이렇게 그룹화가 되어있는데 이름을 설정하고 color 노드 group 란에 적어 그룹의 색을 변경한다. 위의 사진의 rigid solver 노드의 엔진을 bullet으로 바꾸면 파편마다 다른 움직임을 가지는 것을 알 수 있다. 여기 까지 하면 상자가 땅에 부딪히기도 전에 부서진다. constrain network DOP과 glue constraint relationship DOP을 만들어 준다. 이어서 connect adjacent pieces SOP을 만들어 connection type을 adjacent pieces from surface로 변경한다. attribute SOP을 추가해 다음과 같이 설정한다. constraintwork 노드의 geometry source 파라미터를 second context geometry 로 설정하면 DOP NETWORK의 제 2 입력에 연결된 지오메트리를 불러올 수 있다. 마지막으로 재생했을 때 조각이 하나만 깨져서 굴러갔다. 그럴 땐 gluecorel 노드의 strength에서 강도를 줄여주면 된다. 이걸로 20분은 고민한 것 같다.
'houdini_result' 카테고리의 다른 글
흐르는 액체 만들기 (0) | 2019.01.27 |
---|