컵케이크 만들기 [houdini 튜토리얼]
후디니 튜토리얼중 컵케이크 만들기를 해볼거다☺️
1. 컵케이크 obj 만들기🧁
튜토리얼에서는 point개수를 늘리기 위해 resample을 사용했다.
나는 그냥 points 속성을 올리기로 했다. 🙃
circle SOP를 추가해 복사될 틀을 만들고 sweep SOP로 둘을 연결한다.
Sweep SOP: 입력1을 입력2의 형태로 복사한다.
Groupp By Range SOP로 2개중 1개의 점을 그룹짓는다. (그룹이름은 odd)
odd그룹을 transform 을 이용해 Scale을 조정해주면 다음과같은 모양이 완성된다.
여기서 Linear Taper SOP로 Captrue Direction, Length를 알맞게 맞춘후, Taper속성을 올리면 윗부분이 넓어지는 효과를 낼수 있다.
(Taper란, 점점 가늘게 하기라는 뜻으로, 이 노드를 통해 원하는 방향으로 점점 가늘게 할수있당)
이제 빵의 윗부분을 만들거다!
이제, 이 모양의 윗부분을 좀 눌러서 적혈구 모양을 만들거다.
Bulge SOP의 magnitude를 조절하면 자성 효과가 생긴다.
transform도 추가해서 위치를 조절하자.
line중 맨 위의 point만 그룹으로 걸러내고 copy to points 한 다음에 Merge합니다.
두 geo의 좀더 자연스러운 merge를 위해 VDB를 사용할거다.
각 geo에 VDB From Polygons SOP를 달아 VDB 로 변경해준다.
그 다음에 두 노드를 VDB Combine으로 묶고 VDB Smooth로 부드럽게 만들어준다.
컵케이크 geo에 색을 입히자~
Measure SOP 를 연결하고 viewPort에서 엔터를 누르면, 이렇게 분포에대한 색 매핑이 시각적으로 보여진다.
curvature: 곡률이라는 뜻으로 Measure를 Curvature로 바꾸면 곡률에 따른 색 매핑이 된다.
또한, Curvedness 선택을 해준다.
+ 색이 점마다 적용되어야하므로 Element Type은 Point로 한다.
Color SOP를 추가하고 Ramp from Attrubute로 cuvature속성을 사용할수 있도록 한다.
그 이후 curvature의 범위를 확인하고 Range를 조절해주면 된다.
이제 Ramp의 색을 빵의 색으로 조절하장
Smooth SOP 로 curvature속성을 자연스럽게 이어주고 color Ramp의 색을 지정했다.
Hight에 따라 빵의 색을 다르게 해보자 무지개떡같이 말이다
Attrubute VOP SOP를 생성해 연결하고 아래와 같이 구성한다.
풀어서 설명하자면,
인풋의 BBOX의 크기를 float으로 바꾸고 그것의 y값을 height로 명명한 다음에 그걸 색으로 연결시키는것!
이렇게 하면 attributeVOP 노드 내에서 height를 조절해 사용할수 있다.
height 속성은 Ramp로 지정되어있기 때문에 color에서 Ramp를 조절하듯 사용가능하다.
2. 컵케이크 종이틀 만들기📜
컵케이크는 종이로 싸여있다 주름종이틀을 만들어보자
우선 주름모양을 만들었던 sweep 노드로 돌아간다.
해당obj의 뚜껑을 없앤 틀만 얻기위해 Group으로 뚜껑 부분을 가져온다.
Blast SOP를 이용해 top 그룹을 도려낸다.
그 다음은 Clip SOP로 윗부분이 약간 보이도록 조정한다.
약간 빵으로부터 떨어짐을 표현하기 위해 Peak SOP를 이용하고 빵과 같이 Bend를 적용한다.
이렇게하면 아래같은 모습이 된다.
하지만 문제가 있으니, Bend의 BBOX를 보면 아래와 같이 도려낸 부분보다 위인것을 볼 수있다.
이건 복사한 Bend의 Capture Length가 빵의 높이에 맞춰져있기 때문.
이걸 바꿔주자~
peak 다음에 null 노드를 하나 만들어 size라 명명한다.
그리고 lineartaper의 Capture Length를 bbox("../size", D_YMIN)으로 지정한다.
빵의 Bend 노드를 가져와 merge해보면 이렇게 모양이 나오는데,
조금더 현실적인 표현을 위해 종이면이 빵에 달라붇게 하자.
감사하게도 Bend SOP에는 달라붙는 효과를 낼수있는 속성이 있다.(Squish)
color SOP로 색을 준 다음에 UV Project를 추가해 Cylindrical한 범위를 종이에 맞게 조절한다.
이제 빵과 종이를 merge 하면..
종이부분이 너무 눌린것이다.
이때, squish를 조정하지않고 달라붙은건 붙은대로 보이도록 표현해보자,,
Ray SOP를 이용하자 입력1에 종이를, 입력2에는 빵을 연결한다.
그냥 project rays를 하는것도 나쁘지는 않겠지만 세밀한 표현이 불가하다.
그래서 Minimum Distance방법을 이용해 달라붙은 부분만 반환하고, 나머지 붙지않은 곳은 ray전의 노드를 이용해 블랜딩 할것이다.
Distance From Geometry SOP의 입력1에 종이, 입력2에 빵을 연결한다.
이 노드는 입력2로부터의 입력1의 거리를 측정한다.
Radius(범위)를 0.2 정도로 조절하면, 달라붇는 구간을 mask라는 속성으로 가져올수 있는것!
Attribute VOP를 추가해 mask에 연결한다.
마지막 마무리로 normal SOP로 normal 벡터를 계산해준다
3. 아이싱 올리기
이제 만들어진 빵 위에 크림 아이싱을 올리자
먼저, 120개의 점을 가진 line을 생성했다.
이 모든 점들을 범위에 맞게 움직여 나선형을 만들것이다.
add와 transform을 이용해 점 하나를 생성한다.
copystamp SOP로 이 한 점을 resample된 위치로 복사한다
점을 모든 위치에 복사하면 이렇게 된다. 여기서 copy의 rotate속성을 조절하면,,
Rotaye y를 @ptnum으로 하면 각 점의 번호만큼 각도가 틀어진다. 16정도를 곱해서 그 범위를 늘린다.
add SOP를 추가해서 polygons By Group을 하면, 점들을 하나의 선으로 묶을 수 있다.
resample아래에 attribute wrangel SOP를 추가하고 다음 코드를 입력한다.
점의 y좌표를 ramp로 조절하는데, 조절할 값의 이름은 y, curveu에서 계산.* h속성
점사이의 범위를 ramp로 조절하는데, 조절한 값의 이름은 ps, curveu에서 계산.
이 코드로 y, h, ps값을 임의로 생성해서 y좌표와 점사이의 범위를 조절할 수 있다.
아이싱 크림의 모양을 만들자.
빵의 지그제그모양을 만들었던 부분을 가져온다. (circle, group, transform)
circle의 크기와 Division을 줄이고, group transform크기를 조절하면 아래와 같이 만들수 있다.
1에 2의 모양을 복사하는 Sweep SOP의 왼쪽, 오른쪽에 연결하면,
저 신경쓰이는 끝부분 별모양은 End Cap을 씌워주면 된다. Grid가 적당하다.
이제 빵에서 마무리할때 VDB를 적용했던것과 같이 적용하자.
convert VDB로 다시 polygon으로 돌린 다음에 빵의 top group을 object merge SOP로 복사해온다.
Copy To Points SOP로 top에 아이싱을 복사한다.
빵에 curvature로 입체감을 줬던 부분을 복사해서 쓴다.
세가지 색상을 만든 후에 switch로 묶고 빵과 merge했다.
🧁컵케이크 만들기 끝~ 🧁