TWA Houdini1/Starter & Particles

TWA 후디니 1 Starter_02_Part1 : Group Exercise

yiss09 2023. 1. 4. 22:07

https://www.twahoudini.com/course/starterparticles1

 

HOUDINI1_ STARTER & PARTICLES

1️⃣ 후디니 작업을 위한 기본 프로세스 이론을 공부합니다. SOLVER 작동 개념을 훈련하고 PARTICLE 시스템을 구현합니다.

www.twahoudini.com

 

오늘의 후디니 강좌는 이전 시간에 배운 group node들을 modeling file을 가지고 훈련해보는 시간이다.

시작하기 앞서 중요한 정보이다.

1. 후디니에서의 크기 1은 1m를 뜻한다.

2. 그룹훈련의 전체 과정은 자료이해하기, 자료손질, 카메라셋팅, 메터리얼 셋팅, 렌더링과 같은 순서로 작업할 것이다.

3. 오늘의 공부일지는 카테고리를 나누는 방법보다는 훈련이 진행되는 방식을 순차적으로 기록해볼 예정이다.

 

먼저 modeling file을 불러와보자.

file node를 만든 다음 윗 사진의 파일모양 버튼을 눌려 불러올 수 있다.(작업은 geometry안에서 진행된다.)

 

model의 사이즈가 너무 크거나 작아진다면 polybevel에 들어갈 값을 조정하기 어려워지기 때문에 적당한 사이즈에서의 작업 후 전체 사이즈를 다시 조절해 마무리해 줄것이다.

Transform node를 이용해 사이즈를 줄여준다. 값은 0.01을 주었다.

사진의 자동차는 Low poly model로 Low poly 모델을 이용하면 원하는 느낌의 렌더링을 뽑아내기 어려워진다. 이를 보완하기위해 자동차의 characterize를 살리면서 random하게 알맞은 수준으로 면을 늘려주어 디테일을 살려줄 것이다.

 

Subdivide node : Algorithm에 따라 primitive가 면이라면 새로운 point들을 만들어서 primitive의 양을 가로,세로로 2배 늘려준다. 만약 primitive가 선이라면 선이 가진 point의 간격마다 새로운 point가 만들어지면서 물체의 변형이 일어난다.

subdivide node를 사용할 때에는 주의할 점이 있다.

- subdivide에 대해 대비가 되어 있는 model은 면을 늘려줌에 따라 더 예쁜 모양을 가지지만 그렇지 않은 경우엔 model이 망가져버린다.

 

scene view에서 키보드 s를 눌림으로써 select mode로 변경할 수 있다.

select groups or connected geometry (숫자9) : select mode에서 숫자 9번을 누르면 사용 가능하며 3D, Name Attributes 등으로 연결된 primitives들을 클릭 한번에 선택 가능하게 해준다.

 

그룹을 만든 이후 그룹 안에 새로운 영역을 추가해 넣고 싶다면 두 가지 방법이 있다.

1. 그룹 노드에서 선택버튼을 누른 뒤 직접 Shift+좌클릭으로 영역을 추가한다.

2. 새로운 영역의 Group을 만들어 Group Name을 원래의 Group Name과 동일하게 지은 뒤 Initial Merge를 Union with Existing으로 바꿔준다. 핑크색으로 된 부분은 group2 부분이고, 화살표로 표시된 부분만 group3로 지정되었다. 하지만 두  그룹의 이름이 같고 group3에서 Union with Existing을 함으로써 두 그룹의 Base group이 합쳐진 결과가 나오게 된다.

 

parameter의 primitives를 보면 name attribute는 자동차를 구조적인 측면으로 분류해둔 것이고, materialpath attribute는 우리가 색칠을 해주어야하는 paint별로 분류해두었다.

Attribute Swap : Attribute의 내용을 변경해준다. 주의할 점은 원하는 Class로 지정되었는지 잘 확인해주어야한다.

 

왼쪽 그림의 창에서 Car-Paint-Black을 고르면 해당 Attribute들이 전부 선택된다. 이러한 방법으로 손쉽게 Group을 지정할 수 있다.

오른쪽 그림의 Base Group에 들어온 명칭을 보면 Attribute name에서 Car-Paint-Black 을 그룹화 했다고 볼 수 있다.

이러한 방법으로 남은 Attribute들도 Group화 시켜준다. 

 

 

node들의 color를 지정해주는 방법은 단축기 C를 눌러 나오는 우측하단에 위치한 color pallete를 이용하면 된다.

node들이 늘어져있어 지저분해 보인다면 우측상단 버튼을 눌러 subnetwork를  만들어 하나의 공간 안에 node들을 정리할 수 있다.

 

그 다음 blast node를 이용해 material group들을 분리한다.

앞선 과정들은 Material 작업의 기반을 다지는 과정이었다. 이제 자동차 차체의 면을 늘릴 때 character line을 살리기 위해 각각의 파츠들을 그룹화 시킬 것이다.

 

먼저 제일 까다로운 차체부분인 red 그룹부터 분리해보겠다.

Select mode에서 select groups or connected geometry를 3D connected Geometry 모드로 변경해주면 더 편하게 파츠별로 그룹을 만들 수 있게된다.

 

원하는 부위를 group으로 떼어내었지만 해당 그룹의 Node info를 보면 그룹에 필요하지 않은 Primitive group들도 같이 따라 들어온 것을 볼 수 있다. 

필요없는 부분은 clean node에서 Remove Groups를 체크해 간편하게 제거해 줄 수 있다. frontbump의 정보만 남은 것을 볼 수 있다.

* select view를 통해 group을 생성한다면 display flag가 켜진 node 아래에 새로운 그룹이 생성된다.

 

파츠들을 그룹화 시킨 뒤 blast에서 전부 제거해주면 아직 선택되지 않은 파츠들을 손쉽게 찾을 수 있다.

 

차의 사이드미러가 될 mirror group까지 만들었으나, 남은 reartop이 될 부분은 select view에서 작업하기 어려운 부분이 있다. 해당 reartop이 마지막 파츠인 것의 특이성을 살려 다르게 작업해보겠다.

 

먼저 아무것도 선택되지 않은 group 노드를 하나 만들어 reartop의 이름을 붙인다.

그 다음 아래에 groupcombine node를 연결해 차체에서 위의 파츠들을 전부 subtraction 해주어 reartop 파츠만을 남겨준다.

이렇게 red 그룹에서의 파츠들은 모두 분리해주었다.

 

이제 subdivide 작업을 위해 blast로 그룹들을 따로 빼주는데 강의에선 순서를 정해서 나열했다.

midfront, frontbump, door, rightfront, leftfront, rearbump, mirror, maintop, reartop의 순서로 노드들을 배치해준다.

 

blast node 아래에 subdivide node를 연결해준다. midfront가 subdivide 하기 전과 같은 각진 모습이 되길 원했으나 둥글게 표현된 모습을 볼 수 있다. 이것을 수정하기위해 polybevel node를 가져와 subdivide node 위에 붙혀 활용할 것이다.

강사님의 말을 빌리자면, 각각의 용도는 polybevel은 bevel 효과가 들어간 곳은 원형의 느낌은 최대한 살리면서 날렵하게 휘어지게 하고, subdivide는 부드러움을 담당한다고 한다.

 

midfront에 적용하기에 앞서 간단한 object에서 원리를 파악하고 가보자.

box의 윗면 테두리를 group으로 만들어 group에만 polybevel을 주고 전체를 subdivide를 하였더니 가운데 그림과 같은 모습을 가졌다. polybevel이 있는 부분은 원래 형태의 쉐입을 살리면서 부드러워진 반면, polybevel을 주지않은 부분은 각진 부분이 모두 사라지고 부드러움만 남았다.

이제 이렇게 원하는 부분만 group으로 두어 polybevel시켜 subdivide하는 방식으로 midfront를 작업해보겠다.

 

Edge를 직접 select view에서 하나하나 선택해서 group을 만드는 방법도 있지만 한번 houdini스러운 방법을 사용해보자.

Group node에서 Include by Edges를 이용하면 두 면이 바라보고 있는 normal 사이의 각도가 Min Edge Angle에서 정해준 각도보다 큰 것만을 선택해준다. 사진에서는 Character line들만을 선택하기 위해서 Min Edge Angle을 20으로 설정하였다.

 

그림은 polybevel을 주기 전과 polybevel을 주고 난 후의 모습이다. 주의할 점은 polybevel을 사용할 때에는 Distance 값을 너무 작거나 크게 주면 model이 깨질 수 있으니 적절한 값을 잘 조정해야한다. 사진에서는 Distance 값에 원래 0.01을 주려 했으나, model이 깨지는 현상이 발생하여 0.001로 바꾸니 model이 정상적으로 작동했다.

 

그 다음은 subdivide를 polybevel 아래에 연결하여 마무리한다. Depth는 2를 주어 면을 촘촘히 나누어주었다.

 

이것으로 group, polybevel, subdivide 이 세가지 node들을 이용해 원하는 모양의 결과를 얻었다.

마지막으로 강의에서는 이러한 방법은 만능이 아니며, 쓸수 있는 상황과 그렇지 않은 상황을 모두 겪어보아야한다고 말씀하셨다.