DESIGN/블렌더 공부하기

[블렌더 4.0 튜토리얼] #6. 도넛 아저씨 따라하기 (5)

메모림 2023. 12. 7. 01:08

지난 번까지는 민트색 아이싱과 잘 익은 도넛의 컬러를 구현하는 것으로 마무리 되었는데,

이번 시간에는 도넛의 원형 스프링클 장식을 해 본다.

 

도넛 위 스프링클이라고 하면 셀 수 없는 다수의 설탕 알갱이들이 불규칙하게 배열되어 있는 것을 생각하는데,

이 것을 실제로 3D 환경에서 일일이 구형 메시를 만들어서 복붙하기에는 너무 비효율적이다.

이런 노가다(?)를 해결하기 위해 사용하는 것이 바로 'Geometry nodes'다.

Geometry nodes는 모디파이어의 한 종류다. modify의 뜻이 수정하다라는 뜻이니깐 이건 노드연결을 통해 메시의 여러 설정들을 수정한다는 것인가..?

 

언리얼엔진의 블루프린트 노드와 비슷한 것 같은데 블렌더는 조금 더 직관적인 워딩으로 구성되어 있다.

일반적인 공학 시스템과 유사하게

[INPUT - 특정 시스템(블렌더에서는 여러가지 특성의 노드를 자유롭게 배치하는 것을 의미) - OUTPUT]으로 구성되어 있는 것이 특징이라고 볼 수 있다.

머터리얼 노드를 구현하는 방식은 마치 엄청 큰 레고 나무를 만드는 데

여러가지 모양의 가지들이 나무가 되기 위하여 큰 기둥과 유기적으로 결합되는 느낌을 받았다.

하나의 컨트롤 타워가 출력을 내 주는 거랄까. 비유할수록 점점 이상해지는 것 같긴 하지만 어떤 대상을 비유해 공부하는 것이 도움이 되는 것 같다.


다시 나의 귀여운 민트색 도넛으로 돌아왔다.

ICING을 선택한 상태에서 우리는 Geometry nodes를 들어간다.

처음 접속하면 좌상단에 이상한 숫자가 보일 것이다. 이것은 사용하지 않기 때문에 과감하게 해당 창 상단쪽에 우클릭을 하고 close window를 눌러주면 위 화면처럼 깔끔한 작업을 할 수 있다.

중앙에 있는 New를 누르면 첫 초기세팅이 나온다. 아까 언급했던 것 처럼 input, output으로 구성되어 있고

특정 노드를 input, output 사이에 낑겨넣는 형식이다.

Shift A - Point - Distribure Points on Face를 누른 뒤 input과 output 사이를 낑겨준다!

노드 컬러가 하얀색으로 바뀌면 잘 들어갔구나 생각하면 된다.

그러면 이렇게 이상한 개구리알 같은 것이 나온다...!

이상한 점은 아이싱이 없어지고 그 자리에 개구리알이 대신 도넛 위에 올라가 있다는 것이다.

이 문제점을 해결하기 위해 노드를 추가해 본다.

Shift A - Geometry - Join Geometry 를 누르고 노드를 이런 식으로 배치한다.

집을 나갔던 아이싱이 잘 돌아왔다.

이제는 진짜 원형의 스프링클을 만들기 위해 메시를 생성할 것이다.

Shift A - Mesh - UV sphere를 만든 다음 

segment: 12, rings: 8 정도의 원을 생성한 후 도넛의 스프링클 크기정도만한 사이즈로 radius를 조절한다.

이 때 생성된 sphere를 아웃라이너에서 선택한 뒤 그대로 노드 편집 창에 드래그 앤 드롭하면 object info라는 새로운 노드가 생성된다. 이 때 Shift A - Instance - Instance on points를 눌러 또 다른 노드를 추가한다.

이런 식으로 노드를 구성하면 스프링클 같은 친구가 나타난다. Distribute 노드에 있는 density를 조절하면 스프링클의 밀도가 조절된다. 어느 정도 밀도를 정하고 나면 이 때 Distribute 노드를 random --> poisson disk로 바꾸면 더 세부적으로 density 거리를 조절할 수 있다.

 

이렇게 애플민트 색감을 연상시키는 스프링클이 완성되었다. 그런데 이 스프링클은 문제가 있다.

아이싱이 도넛의 가운데 부분까지는 약간 깊게 묻어있을지 몰라도 스프링클은 진짜 표면에만 뭍혀져 있다.

하지만 아이싱만 선택해 회전해서 밑에서 아이싱을 보면 스프링클이 아이싱의 깊숙한 면까지 뿌려져 있다.

이 때 우리는 weight painting을 사용해 찐 표면에만 스프링클이 뭍을 수 있도록 작업할 것이다.

 

weight painting은 특정 밀도를 0~1로 나누어 그 중에 원하는 강도를 선택한 뒤 원하는 메시 표면에만 페인팅할 수 있는 기능이다.

weight painting 기능을 실행해 보면 blue로 갈수록 0, red로 갈수록 1에 가까워지는 것을 확인할 수 있다.

 

우선 ICING이 선택되어 있는 상태에서 DATA 메뉴에 들어가 vertex groups에 그룹을 하나 추가하고

이름을 sprinkle_density라고 지어주었다.

이 때 Distribute 노드에 있는 Density factor 메뉴에서 가지 하나를 잡아당겨 named attribute라는 노드를 추가해준다.

그런 뒤에 named attribute 안에 있는 이름을 아까 우리가 지어준 sprinkle_density를 선택해준다.

그리고 weight painting 메뉴를 들어가 원하는 만큼의 스프링클을 채워준다. weight painting은 object mode 있는 부분에 위치해 있다.

밀도가 높은 부분은 빨강, 낮은 부분은 파란색으로 표시되어 있는 것을 확인할 수 있다.

다시 object mode로 돌아와 sphere를 선택하고 우클릭 - shade smooth를 선택해 원형을 둥글게 잡아준다.

 

이 쯤 되면 다 완성되었을 법 한데 문제가 있다.

그 것은 도넛의 사이즈를 너무 크게 잡은 것이다.

3D를 할 때 가장 중요한 것은 실물 사이즈를 고려하여 작업을 하는 것이다. 그렇지 않으면 불필요하게 크기를 조정하는 일이 발생하고 그 과정에서 데이터가 변형되고 왜곡되어 제대로 된 작업을 할 수 없기 때문에 실물 크기에 가깝게 제작하는 것이 좋다고 도넛 아저씨는 설명하고 있다.

우선 내 도넛의 사이즈를 확인해 보았다.

115cm다.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

크기를 10분의 1 정도로 줄였으면 좋겠다는 생각이 든다.

이 때 카메라와 조명을 제외한 모든 메시들을 전체선택한 뒤 S를 눌러 스케일을 조절한다.

이 때 등장하는 도넛 아저씨의 쿨팁!

정확하게 10분의 1로 줄이고 싶으면 S 누른 상태에서 [.] [1] 키를 눌러주면 된다고 했다.

진짜 되는지 한 번 실행해 보았다.

 

 

급격하게 격자가 커 보인다. 크기를 확인해 보니 앞에 0 단위가 생겼다. 이건 진짜 유용하게 사용할 수 있을 듯.

이 때 우리가 고려해야 할 것은 스프링클의 크기다. 

우리가 여태껏 제작한 스프링클의 기준은 내 도넛이 1m의 거구이기 때문에 이것을 약 10cm 정도의 미니미 기준으로 다시 

셋팅해 줘야 내가 원래 구현하고 싶은 느낌의 스프링클을 좀 더 가깝게 구현할 수 있다고 한다.

우선 도넛들, 평면을 ctrl + A를 누른 뒤 scale을 apply한다.

그 다음 Geometry 노드 메뉴에서 utility - math - add를 눌러 add를 multify로 바꿔준 뒤 

이런 식으로 노드를 구성해 주면 된다. 이 때 먼저 density min을 도넛의 크기에 맞게 아주 작게 설정하는 것이 우선적이다.

 

여기까지 잘 따라해 보았긴 한데

내가 아까 스프링클 만들 때 문제가 생겼는지 도넛 빵의 모양 scale apply가 이상하게 되면서 거기서부터 무언가 설정들이 엉키기 시작했다.

아까 weight painting을 진행했을 때 스프링클이 아이싱 밑으로도 새겨지는 것 같은 느낌을 받았었는데 거기부터 무언가 잘못되고 있었음을 깨달았다.

일단 도넛 아저씨 튜토리얼은 여기서 마무리 짓고 남은 강좌는 혼자서 공부해 봐야겠다...!

 

그래도 초심자가 여기까지 막힘 없이 잘 따라온 것 보면 진행하는 과정이 나쁘지 않은 것 같다.