Houdini/RBD Sim

constraint

징니쓰 2022. 6. 6. 23:17

1) constraint 는 유일하게 shelf tool로 만들지 않는다.

-> 고쳐서 써야하는게 더 많기 때문에, 처음부터 만드는게 훨 좋다.


2) constraint는 primitive 로 만들어줘야 한다.


3) constraint 을 만들때 꼭 필요한 attribute

: constraint_name , constraint_tpye


4) constraint_name 에 쓸수 있는 3가지 constraint 종류

1) glue

s@constraint_name = "glue"

2) hard

s@constraint_name = "hard"

: strength 가 따로 없다.

3) soft

s@constraint_name = "soft"

: soft constraint 가 2종류 있는데, bullet soft 로 사용하면 된다.

: 휘어지는 constraint 으로 사용가능하고,

"plasticity" 옵션을 이용해서 플라스틱처럼 휘어지지 않고 굳지 않게 하는 옵션도 동시에 사용 가능하다.


5) constraint 강도 : hard > glue > soft


6) constrinat 를 만들 수 있는 node 들

1. connect adjacent pieces

: constraint 를 생성하는 가장 기본적인 node

1) connection Tpye > Adjacent Pieces from Points

: 서로 다른 조각들중 가장 가까운 point 끼리 연결 한다.

unpack 을 하고 해줘야 진짜 point들 끼리 연결되서 좀더 정확하다.

point 들 끼리 연결되있는걸 볼 수 있다.

* search radius : point 를 찾는 반경

* max search : 찾는 point 최대 수

* max connection : constraint 생성 수

*Length attribute : constraint 길이

2) connection Tpye > Adjacent Pieces from surface Points

: pack data 일때처럼 , 중심점에서 연결 된다.

3) connection Tpye > Adjacent Points

: name attribute 를 무시하고 전부 다 연결 한다.

2. RBD Constraint From Lines

 

: 조각과 조각 사이를 연결 해준다. 싱크대의 경첩과 같은 모양으로 연결.

유리 rbd 할때 쓰면 예쁘다.

2. RBD Constraint From Curve

: 뷰포트에 직접 마우스를 클릭한 위치에 포인트를 생성해서 만들 수 있다.

3. RBD Constraint From Rules

: 조각 중심의 질량을 계산해서 생성하는 방식.

mass 값 attribute를 사용해서, ( 큰조각 - 큰조각 / 작은조각 - 작은조각 ) 연결되도록 할 수 있다.

4. RBD Constraint Properties

1) 가장 간편하게 constraint 를 생성 할 수 있는 최신 노드이다.

2) glue, soft, hard 선택해서 쉽게 생성 가능.

3) 처음엔 무조건 "glue" 로 만들어 줘야 한다.

: toggle 버튼 클릭만으로도, glue - soft - plastic 으로 동시에 3가지 constriant 사용 가능하다.

 
 


7) Dop Network 안에서 Constraint 인식 시키기

1) constraint network

: 각 시뮬레이션들을 할때, slover들이 존재한다. 예를들면, rbd - rigidbody solver가 존재하고, pop - popsolver가 존재한다.

constraint network도 똑같은 역할을 한다.이름만 slover가 안붙어 있을뿐, constraint solver 라고 생각하면 된다.

: 노드 위치는 제일 아래에 연결 해 주면 된다.

: 0번 input > rbd setting data 들을 넣어준다.

1번 input > constraint node 를 연결 해준다.


2) constraint node 종류 및 셋팅

1. Glue Constraint Relationship

 
 

* Half - Life : 0.1 또는 1 값으로 사용한다.

constraint line 이 가지는 strength 값의 절반 값. 처음에 1000 이라는 값을 받았을때, 2차 공격을 받기전에, 몇초동안 1000이라는 값을 축척 하고 있을지 계산 한다. 진짜 " 초 " 로 계산한다.

( Half - Life 가 길어지면, constraint 가 좀더 빨리 끊어 진다. 반대로 Half - Life 가 짧아지면, constraint 가 느리게 끊어진다. )

* Propagation Rate : "1" 로 고정해서 쓰기

분포 되는 힘. 여러 조각끼리 연결 되어 있을 때, 힘이 분산된다.

* Propagation Iterations : "-1" 로 고정해서 사용한다.

위 데이터들을 어디까지 계산 시킬 건지.

"-1" 은 무한대의 값이다.

2. Hard Constraint Relationship

 
 

* Rest Length : "1" 값으로 고정하기

* constraint Iteraitons : "-1" 값으로 고정하기

2. Bullet Soft Constraint Relationship

: 휘어지는 constraint

: soft constraint relationship 이 2개 나오는데, bullet 으로 하면 된다.

 
 

* stiffness = strength

* Damping Ratio = pop drag 와 같은 역할

* Plasticity + 누르고, Enable Plasticity 활성화 하면, 플라스틱 효과를 쓸 수 있다.

: 플라스틱처럼 휘지 않고 굳어지게 하는 역할. ex) metal 이 찌그러질때 사용.

:vellum 에도 플라스틱 같은 효과를 내주는게 있으나 컨트롤 하기 어려워서 rbd 로 soft constraint 이용해서 plastic 사용하는게 훨 좋다!


8) Constraint 을 생성하면 저절로 생기는 attribute 들 (constraint feedback)

* angle : 각

* distance : 거리

* force : 힘

* impact : 충돌할때 생기는 충격받았을 때의 힘 (임팩트)

* torque : 회전

<서로 비슷한 attribute들>

angle = torque

force = impact

*5가지 attribute들 모두 primitive class 이며, float type 이다.


9) TEST_SIM

*glue constraitn test

전체 노드

 

 

 

stregth = 1

 

 

stregth = 30

 

 

stregth = 100

 

 

 

constraint_study_01.zip
0.06MB

'Houdini > RBD Sim' 카테고리의 다른 글

Glass_RBD  (0) 2022.05.13
RBD 작업 주의사항  (0) 2022.05.01
RBD Simulation Proxy 설정하기  (0) 2022.04.27
Voronoi Fracture  (0) 2022.04.27