본문 바로가기

Houdini

(늦게 쓰는) TWA Houdini1 Study 후기. 그리고 Houdini라는 것에 대해 처음 알게 된 것은 8년 전?이었던 것 같다. 그 당시 광고회사쪽에 발을 들여놓을 때 팀장님이 후디니에 대해 강력하게 어필하시면서 너는 후디니를 위해 태어나고 단련된 준비된 사람이다!!! (저 말을 해주신 이유는, 프로그래밍 전공의 공대생이 그래픽 쪽으로 왔다면 후디니를 해야지 뭘 하겠나? 에 대한... 그런 것이었다) 이때 더 강하게 팀장님을 따랐다면... 지금은 또 다른 후디니 생활을 했었겠지... 만, 그때는 관심은 있었지만, 접하기엔 너무나도 멀게만 느껴지는 그 친구 후디니였다. 그리고 계속 채워지지 않는 공부에 대한 갈증이 극에 다다들 무렵, TWA Houdini에 대해 알게 되었다. 한글 강의가 있구나!? (이제는 한글 강의 없어서 후디니 공부 못해요라고도 .. 더보기
RIGID BODY_20 건물 붕괴 + 빌딩 에셋 제작 - Ep20_Part 06. 볼륨 소스 나이스하게 구하기 + 연기 시뮬 -> END 충돌체의 density가 각각 50, 500, 5000인 결과를 file cache로 구워서 작업을 진행하기로 한다. smoke 연기를 만들기 위해 가장 먼저 필요한 것은 source이다. 어디에서 연기를 발생시킬 것인가 volume의 충돌 / 연기가 어떠한 물체와 상호작용할 것인지 정해줘야한다. 연기의 기본 shape을 잡아줘야한다. 연기의 detail 작업 source 만들기 source를 잘 만들면 연기는 70% 이상은 해결했다고 봐도 좋다. 고민해야할 것은, 어디에서 연기가 나야할까? 당연하게도 충돌이 발생하는 곳에서 연기가 나는 것이 맞는데, 이것을 houdini가 어떻게 판단하느냐? 를 고민해야하는 것이다. 핵심 포인트는 '속도의 변화-가속도' 이다. 충돌체가 10의 속도로 날아가고 있다면, .. 더보기
RIGID BODY_20 건물 붕괴 + 빌딩 에셋 제작 - Ep20_Part 05. 창문 여러 스타일로 치환 + 붕괴 완료 rigidbody의 핵심은 결국 packing과 치환이다. 현재 창문의 조각수가 너무 많아서 무언가 조절을 하지 않고서는 시뮬레이션을 하는데 있어서 무리가 있다. 이번 강의의 아이디어 창문을 여러 스타일로 조각을 내도록 한다. 굳이 부러지지 않을 창문도 존재할 것이고, 직격타를 맞아서 많이 부러지는 창문도 존재할 것이다. 어떻게 치환을 진행할 것인지에 대한 세팅이 먼저 필요하다. 앞으로 어떠한 정보를 다루게 될지 예측할 수 있다. 색이 중요한 정보가 될 수 있으므로, 일단 @Cd 정보를 날려주도록 한다. 빨강, 주황, 노랑, 초록, 파랑의 5가지의 스타일로 나눠주려고 한다. 빨강은 조각이 1개인 창문으로 치환하려고 하고, 파랑은 조각이 가장 많은 창문으로 치환하려고 한다. 조각의 수량은 빨 < 주 < 노.. 더보기
RIGID BODY_20 건물 붕괴 + 빌딩 에셋 제작 - Ep20_Part 04. 베이스 붕괴sim + Constraint 세팅 이제 dop network에 넣어보기도 하고, constraint 세팅을 해줘서 고정도 시켜보자. 이번에 할 것은 창문을 제외한 건물의 뼈대 붕괴이다. 일단 건물의 바닥을 0에 맞춰주도록 한다. dop network에 넣어서 확인을 해보자. 일단 dop network 안에서 잘 작동하는 것은 확인했다. 이제 constraint 세팅을 잡아보자. 일단 작은 규모의 빌딩으로 세팅을 잡아주도록 한다. 기본적으로 건물이 무너지지 않으려면, 바닥과 기둥이 연결되어있어야한다. 하지만 상대적으로 지금 바닥은 커다란 하나의 조각으로 되어있기 때문에 기둥이 바닥을 잡아주도록 세팅해줘야한다. 이 때 활용하게 되는 위치는 기둥의 위 / 아래로 각각 위와 아래의 바닥을 잡아주게 된다. 포인트에 대한 정보, 그리고 기둥에 대한.. 더보기
RIGID BODY_20 건물 붕괴 + 빌딩 에셋 제작 - Ep20_Part 03. 창문만들기 + 조각수 줄이기 이번에는 창문을 꾸며볼 것이다. 참고로 지금 하는 작업으로 창문의 치환에 사용될 최종적인 물체를 만든다고 생각하고 작업하기로 한다. 그렇기 때문에 사이즈에 대해서도 지금 미리 정하고 가는 것이 좋다. 벽(mid_2, mid_4, mid_6, mid_8)을 창문으로 꾸며주기 위해서 벽을 뚫기위한 작업을 진행한다. 벽의 한 조각에 대해 양쪽 끝 primitive를 떼어주고 중심점을 찾은 뒤 선으로 이어준다. 그리고 그 선을 resample 노드로 나눠서 얻게 된 포인트에 boolean으로 뚫어줄 박스를 붙여주도록 한다. 구멍에 만들어줄 창문은 구멍을 뚫어줬던 box를 이용해서 만들어줄 수 있다. 이제 창문을 예쁘게 달아주기 위한 아이디어로, resample 노드에서 선을 나눠주는 segments 값은 짝수로.. 더보기
RIGID BODY_20 건물 붕괴 + 빌딩 에셋 제작 - Ep20_Part 02. 약간의 숙제 풀이 + 노드 정리 오늘의 핵심은 치환이다. 그전에 어제 작업한 내용에 대해 노드 정리를 해줬다. 현재 가지고 있는 데이터를 확인해 보자. 1212개의 packing 된 조각과 s@roompart라는 이름의 정보를 가지고 있다. 이 건물을 큰 빌딩으로 묘사하게 된다면, 높은 확률로 보라색 벽면들의 스타일이 같을 것이다. 마찬가지로 그 옆의 청록색 또한 높은 확률로 청록색 벽들끼리 스타일이 같을 것이다. 벽을 하나 예쁘게 만들어주고, 같은 색의 벽면들을 치환해 줄 것이다. 치환을 위해서 필요한 노드는 transform pieces 노드이다. 치환의 조건이 되는 attribute에 name이 적혀있다는 것은 name이 같은 조각끼리 치환을 하겠다는 것인데, 현재 있는 정보로 치환을 한다면, roompart가 같은 조각끼리 치환.. 더보기
RIGID BODY_20 건물 붕괴 + 빌딩 에셋 제작 - Ep20_Part 01. 건물 에셋 만들기 : 베이스 만들기 + 치환 준비 만들어줄 빌딩 어셋으로 복잡한 형태까지 만들 수 있다고는 못하지만, rigidbody 실험을 하기에는 넉넉한 수준일 것이라 기대한다. 이번 강의에서 만들게 될 시스템의 제작은 크게 어렵진 않으나, 어떠한 방식을 사용하더라도 조각의 정보를 남기면서 가야한다. box를 하나 만들어주고, boolean fracture를 활용해서 아래와 같이 면을 나눠주도록 한다. 빨간색은 실질적인 방으로써 사용될 공간, 노란색은 메인 바닥, 초록색은 벽을 지탱하기 위한 바닥, 파란색은 벽, 하늘색은 방을 지지하기 위한 프레임, 보라색은 천장, 하얀색은 천장을 고정하기 위한, 방의 구조물을 견디기 위한 프레임, 주황색은 프레임과 프레임 사이를 이어주는 장치로 사용이 가능할듯 싶다. 일단 직관적으로 각 조각을 명시할 수 있도록 .. 더보기
RIGID BODY_19 COMPLEX 자동차 충돌 - Ep19_Part 07. 경첩 & 대롱대롱 & 강화유리 그리고 마무리 오늘은 마무리단계로 보닛, door, 창문, side mirror, 와이퍼를 달아주기로 한다. 보닛과 door 두 부품을 달아주는 body에 달아주는 원리(메커니즘)는 같다. 경첩에 의해서 body에 달리게 된다. 근데 잘 보면 불필요한 부품이 있다. 경첩들 간에 보면 바디에 붙어있어야 할 부품이 붙어있는 것을 확인할 수 있다. 이 부분은 따로 떼어서 small parts 쪽에 붙여주도록 한다. 위 이미지와 같은 보닛에 회전축을 고정해주는 constraint를 몇 개를 달아주면 좋을까? 일단 hinge가 두군데 있으니 2개를 달아주면 좋을까? hinge 두개가 전부 하나의 회전축을 기준으로 회전하니까 중간에 하나의 constraint로도 충분할까? 이론적으로는 두쌍, 한쌍의 constraint로도 우리가.. 더보기