https://www.twahoudini.com/course/rigidbody1
Rigidbody19_01에서는 앞으로 있을 충돌 Simulation에서 이용될 Jeep차의 Attributes와 메터리얼 세팅을 하였다.
강의에서 준비된 Jeep 자료를 File node로 불러와 사이즈를 조절해준다.
그리고 Material 세팅을 하기 전 이미 준비되어 있던 Attributes가 방해될 가능성을 없애기 위해서 Attributes Delete로 필요없는 것들을 제거해준다.
미리 준비되어 있던 Attributes 중 @name과 @shop_materialpath을 나중에 Material 세팅에서 이용해 줄 것이다.
이에 Attribute Rename으로 이름을 @part와 @mat으로 단순화시켜주겠다.
준비된 part와 mat을 개별적으로 확인하기 위해서 For-each Named Primitive를 이용해주었다.
자료의 Node Info를 확인해보면 mat 20개, part 36개가 준비된 것을 볼 수 있다.
그 수만큼 For-each를 늘려주어 Single Pass에 의해 하나하나 확인할 수 있도록 해주겠다.
좌측엔 part만 우측엔 mat만 두어 두 Attributes을 구분해주었다.
그 다음 파츠의 중요도에 따라 node의 색상을 구분해주었다.
중요한 순서대로 빨강, 노랑, 파랑, 검정순으로 두었으며 Light에 관련된 부분은 흰색을 주었다.
몸체 그리고 타이어 같은 부분을 빨강색, 부피는 크지만 잘 안보이는 부분은 노랑색, 크기도 작고 눈에 잘 띄지 않는 부분은 파랑색을 주었다.
이제 @mat에서 준비된 내용에 맞춰 Jeep차에 Material을 입혀주려 한다.
원래의 @mat에서의 내용과 비교해 파츠의 이름을 사용하기 간단하게 변경해주었다.
그리고 Attribute Wrangle에서 만약 앞서 설정한 이름과 같은 경우 setprimgroup function을 활용해 그와 같은 이름의 그룹을 생성하도록 하였다.
Group node를 사용하여 Group을 만들 수도 있지만, 이후에 있을 정리를 좀 더 용이하게 하기 위해서 Attribute Wrangle을 활용해주었다.
Material Network를 하나 생성하여 그 안에서 필요한 Principle Shader를 모두 준비해주었다.
그 갯수와 이름은 @mat에서의 종류와 동일하게 만들어주었다.
Material node를 통해 Group에 맞게 알맞은 Material을 입혀주었다.
이때 색상에 따라 배치해주었던 For-each node를 Material에 맞게 다시 배치해주었다.
Material이 적용된 파츠는 모두 Merge로 연결해준 뒤 Rendering하여 결과를 보았다.
이렇게 Material 세팅은 전부 잘 적용되었지만 조금 수정해주어야 할 부분이 있다.
@mat에 관한 세팅이 미리 준비된 상태로 우리는 @part에서 그 다음 작업을 해줄 예정이다.
그런데 part에서 준비된 자료와 지금의 mat의 자료는 Point와 Primitive number의 순서가 어긋나있다. 이로인해 메터리얼이 원하는 곳에 제대로 적용되지 않게 되는 것이다.
순서를 바로 잡기위해서 For-each의 Single Pass 넘버에 맞춰 node를 다시 재배치해주었다.
그리고 Material 세팅을 위해 만들어두었던 Group 생성에 관한 Attribute Wrangle과 Material node들을 전부 따로 빼내어주겠다.
그 이유는 미리해둔 Group 세팅으로 인해 이후 part 작업에서 문제가 생길 부분을 사전에 방지하기 위해서이다.
Group node가 아닌 Attribute Wrangle로 인해 Group이 생성되기에 마무리로 붙여도 문제가 생기지 않는다.
그리고 두 부분을 따로따로 SubNetwork로 묶어주겠다.
For-each와 @mat에 대한 SubNetwork는 앞쪽에 배치해주었고, Group과 Material에 관한 node들은 이후 모든 작업이 끝난 뒤에 달아줄 예정이다.
임시로 @part 부분을 모두 Merge로 엮어준 뒤 끝에 Subnetwork를 달아서 Render해본 결과 제대로 작동되는 것을 확인할 수 있었다.
여태까지 Procedural하고 최소한의 node를 이용해 결과를 구현해내는 방식으로 Houdini를 활용해왔어서인지, 오늘 강의처럼 수많은 For-each node를 사용하는 방식이 다소 신선하게 느껴졌다.
'TWA Houdini1 > Rigidbody' 카테고리의 다른 글
TWA 후디니 1 RIGIDBODY_19_03 : Fracture System 준비 (0) | 2023.06.16 |
---|---|
TWA 후디니 1 RIGIDBODY_19_02 : 휠 & 서스펜션 (0) | 2023.06.15 |
TWA 후디니 1 RIGIDBODY_18_10 : 나무와 유리 (0) | 2023.06.12 |
TWA 후디니 1 RIGIDBODY_18_09 : 철과 강화유리 (1) | 2023.06.10 |
TWA 후디니 1 RIGIDBODY_18_08 : RENDER & 치핑보다 작은 모래 조각 (0) | 2023.05.18 |