[Houdini] RBD constraints創(chuàng)建工具
背景知識(shí):物體經(jīng)過(guò)pack打包成一個(gè)點(diǎn)來(lái)給bullet solver解算,solver用點(diǎn)上的name屬性判斷哪些部分屬于同一塊。要告訴solver哪兩個(gè)碎塊是連在一起的,需要通過(guò)constraints geometry,也就是約束,一條線。線上的點(diǎn)的name屬性告訴solver它連接的是哪兩個(gè)碎塊,R線的prim級(jí)別上的屬性告訴solver這個(gè)約束的名字和屬性。
手動(dòng)對(duì)物體破碎和創(chuàng)建約束很繁瑣,houdini在17.5提供了更方便的工具。
Rbd Material Fracture節(jié)點(diǎn) 能對(duì)物體進(jìn)行不同類型的破碎并創(chuàng)建約束。

Use Tags ,是否給約束創(chuàng)建Tags屬性,這是Prim級(jí)別上的string類型的屬性,記錄了約束是在連接哪個(gè)級(jí)別的破碎。
Apply Constraint Properties,是否添加約束屬性。勾選后會(huì)在約束上添加strength,restlength等屬性。
Level Multiplier ,對(duì)于不同級(jí)別的破碎的約束,會(huì)添加不同的強(qiáng)度。第一級(jí)破碎約束強(qiáng)度是Primary Strenght,第二級(jí)破碎約束的強(qiáng)度會(huì)乘以這個(gè)參數(shù)。
Strength Variance ,對(duì)約束強(qiáng)度進(jìn)行隨機(jī)。
Rbd Constraints From Lines 和Rbd Constraints From Curves節(jié)點(diǎn) 能通過(guò)手動(dòng)在窗口畫(huà)線,通過(guò)畫(huà)的線創(chuàng)建約束。?Rbd Constrains Frome Rules 能在不同的組之間創(chuàng)建約束。這3個(gè)節(jié)點(diǎn)都是創(chuàng)建約束線,添加組屬性,沒(méi)有添加約束屬性.。

這3個(gè)節(jié)點(diǎn)上的Connection Type和Connection Adjacent Pieces節(jié)點(diǎn)的Connection Type一樣,選擇怎么創(chuàng)建約束。Group Type選項(xiàng)選擇是否給約束添加組屬性或者Tag屬性。

創(chuàng)建好約束后,Rbd Constraint Properties節(jié)點(diǎn)可以給這些約束添加約束屬性。通過(guò)選擇Constraint Type來(lái)添加不同約束特有的屬性。

Sop里的Rbd Bullet Solver節(jié)點(diǎn)也有約束相關(guān)的設(shè)置,這里對(duì)應(yīng)的是dop里的constraint network節(jié)點(diǎn)和各種Constraint Relationship節(jié)點(diǎn)。要知道約束的name屬性單純只是一個(gè)名字,dop里的不同的約束器通過(guò)名字來(lái)獲取這些叫這些名字的約束信息然后應(yīng)用,就是這里的Date Name。這里的屬性設(shè)置對(duì)約束已有屬性做的是乘法,比如一個(gè)約束已經(jīng)有10000的strength屬性,這里設(shè)置成2,那實(shí)際的強(qiáng)度是10000*2=20000。

