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

'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 |