TWA Houdini1/Rigidbody

TWA 후디니 1 RIGIDBODY_19_05 : 바디와 트렁크 쌓기

yiss09 2023. 6. 20. 04:17

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

 

HOUDINI1_ RIGIDBODY

3️⃣ 출동 SIMULATION 기초 이론부터 심화된 내용을 공부합니다. 또한 자동차를 이용한 리깅 시뮬레이션 BASIC을 훈련합니다.

www.twahoudini.com

Rigidbody19_05에서는 Jeep차의 body와 trunk 파츠의 Constraint 세팅을 잡아주겠다.

 

목차

1. 분리된 물체간의 Constraint 생성 시스템

2. Coliision Simulation(body, trunk)

3. 치환 및 랜더

 

 


1. 분리된 물체간의 Constraint 생성 시스템

 

시작하기에 앞서 Voronoi 시스템을 손봐주겠다.

큰 물체와 작은 물체를 분리해준 시점에서 큰 물체에서의 Original, 즉 Voronoi로 조각나지 않은 상태를 Output으로 빼내어 이용해주겠다. 

 

새로운 Geometry를 하나 만들어 그 안에서 쉬운 물체로 시스템을 완성시켜주겠다.

생성해둔 Torus 3개의 Constraint는 서로 연결되지 않은 상태이다.

이들을 사진과 같이 연결해주기 위한 자동화 시스템을 만들어줄 예정이다.

시스템을 완성시켜 오른쪽 사진과 같이 자동차 파츠의 Constraint 세팅에 이용해주겠다.

 

가장 왼쪽의 Constraint는 B_d_1을 기준으로 만들어진 물체간의 연결관계이다.
그 중 길이가 긴 녀석들을 제거시켜주고 필요한만큼만 남겨지도록 해주려 한다.

세 torus 각각의 연결관계가 구해지고 나면 오른쪽 사진과 같은 Constraint를 얻을 수 있다.

 

먼저 part_detail에 적힌 이름에 따라 물체를 분리해 이용해주려 한다.

For-each Named Primitive를 이용하기위해서 part_detail 정보를 Primitive로 넘겨주겠다.

이때 Delete Original을 체크 해제하면 정보가 넘어가도 원래의 정보가 지워지지 않고 남아 있게 된다.

Single Pass로 하나의 torus를 보고 작업하겠다.

 

Ray node를 이용하여 모든 물체에서의 point를 선택해준 torus에서의 점 중 가까운 점에 붙여주겠다.

이때 Ray를 이용하기 위해서 붙여질 곳의 점을 Primitive 정보로 만들어주겠다. 또한 잊지 않고 name 정보도 넘겨주겠다.

점들을 @pid에 따라 선으로 엮어주겠다.

이렇게 가장 가까운 곳을 찾아 연결된 선들이 준비되었다.

 

그다음 구해준 선들의 길이에 제한을 두어 초과하거나 너무 작을 경우 정보를 지워주도록 하겠다.

적당한 간격을 두어 원하는 만큼의 연결 관계를 얻어주겠다.

 

이제 모든 torus에 대해서 각각 시스템을 작동시켜주겠다.

Overlimit 값을 조절해 너무 많지도 적지도 않은 양의 필요한만큼의 Constraint를 얻어주는 것이 중요하다.

추가된 Merge node는 이후 다른 추가적인 Object와의 Constraint 연결이 필요할 때 이용해줄 것이다.

 

 


2. Coliision Simulation(body, trunk)

 

 

먼저 Voronoi 시스템 안의 Scatter의 Seed값을 조절해 proxy 조각들이 깔끔하게 배치되도록 해주겠다.

그 다음 Merge에 p_bottom을 합류시켜 두 물체간의 Constraint도 만들어지도록 해주었다.

Overlimit 값을 적절히 조절하여 적절한 양의 Constraint를 얻어주었다.

 

방금 만든 Constraint를 Voronoi 시스템에서의 큰 물체의 Constraint와 합류시켜주었다.

Simulation 세팅을 위해 p_body와 Constraint를 Simulation 안에 합류시켜주었고, Constraint Sourcing 또한 마쳤다.

날아온 공에 의한 충돌에 창틀이 찌그러지는 결과를 볼 수 있었다.

 

trunk 또한 위와 같은 작업을 반복해주었다.

충돌에 의해 찌그러지는 trunk를 볼 수 있다.

 

 


3. 치환 및 랜더

 

지난 강의에서와 같이 trunk를 치환해주기위해서 Point Deform을 이용해주었다.

하지만 아쉽게도 Point Deform에 의한 결과는 예쁜 결과를 내지 못했다.

 

Clean node의 부재에 의한 문제일까 싶어 달아보았다.

정상적으로 작동하나 싶었지만 Divide를 준 결과를 보면, 충돌하지 않은 부분까지도 찌그러져 버리는 문제가 발생한 것을 알 수 있다.

 

이에 새로운 방식을 이용해주려 한다.

먼저 Voronoi 시스템에서 만들어둔 frac 자료를 가져와 Transform Pieces로 치환시켜주겠다.

 

그 다음 Unpack해주고 아까의 시스템에 연결시켜주었다.

왼쪽의 찌그러진 사진은 Clean node가 켜져있을 때이다. 지금의 시스템에서는 Clean node가 부작용을 일으키는 듯하니 꺼주겠다.

결과를 보면 예쁘게 치환되어 충돌에 의해 찌그러진 부분도 잘 표현된 것을 볼 수 있다.

 

body부분도 같은 작업을 해주었다.

찌그러짐이 잘 묘사되었다.