簡(jiǎn)介: houdini 的 foreach 節(jié)點(diǎn)把我一個(gè)會(huì)寫代碼的都搞暈暈的,當(dāng)前有了一些簡(jiǎn)單了解僧叉,記錄一下
houdini版本: 2020.5
眾多的 foreach 節(jié)點(diǎn)預(yù)設(shè)
Houdini 提供了 6 中節(jié)點(diǎn)預(yù)設(shè)结澄,基本就是他的 Method 的不同和迭代方式的不同哥谷,有按數(shù)量迭代,最像代碼里的for循環(huán)麻献,比較好理解们妥,其它的有按片,按點(diǎn)勉吻,按面监婶,按命名的面等等,
foreach_begin 就是每一次循環(huán)迭代指定輸入的數(shù)據(jù)齿桃,blockpath 就指定了這個(gè)輸入屬于哪個(gè)循環(huán)組的惑惶,他的類型是 block Begin,參數(shù)很少的
foreach_end 其實(shí)是 blockEnd 的節(jié)點(diǎn)短纵,他的參數(shù)比較多带污,foreach_begin 都是找它組隊(duì)
獲取迭代數(shù)
我一直感覺(jué)比較麻煩的就是希望在循環(huán)中獲取當(dāng)前的迭代數(shù),跟著教程在 For-each Num 這個(gè)預(yù)設(shè)的循環(huán)結(jié)構(gòu)內(nèi)成功的獲取了當(dāng)前迭代數(shù)香到。
For-each Num
For-each Num 有三個(gè)節(jié)點(diǎn)鱼冀,foreach_begin 、foreach_end悠就、foreach_count
點(diǎn)擊 foreach_count 可以看到 他的method 是 fetchMetaData 千绪,DetailAttributes 里面就有 iteration
使用 detail 方法獲取
detail(p1,p2,p3) 三個(gè)參數(shù)的意義分別是
- p1 要獲取屬性的節(jié)點(diǎn)路徑, detail 方法需要通過(guò)這個(gè)路徑找到要獲取數(shù)據(jù)的節(jié)點(diǎn)
- p2 要獲取屬性的名稱
- p3 默認(rèn)值梗脾,出現(xiàn)意外的時(shí)候返回這個(gè)值荸型,讓你的流程不那么尷尬
我們創(chuàng)建一個(gè) null 節(jié)點(diǎn)來(lái)演示如何用它來(lái)獲取迭代數(shù),并將值賦予 currentNum 屬性
currentNum 的公式 炸茧,
注意公式在有的地方不會(huì)執(zhí)行瑞妇,需要加上 · 稿静,這個(gè)符號(hào)是主鍵盤 1 鍵左邊的 ~ 鍵,加上后便可以運(yùn)行踪宠,這里的 currentNum 屬性不加也可執(zhí)行
detail("../foreach_count2/","iteration",0)
For-Each Connected Piece
這個(gè)循環(huán)是按切片循環(huán)自赔,當(dāng)時(shí)就給我整懵了,只有開(kāi)始和結(jié)束柳琢,我想獲當(dāng)前是第幾片绍妨,可勁想辦法獲取 那個(gè)顯示了 Piece ,就是獲取不到柬脸。
自己加節(jié)點(diǎn)
終于邁出了偉大的一步他去,我嘗試放找到 num 循環(huán), 新建一個(gè)input節(jié)點(diǎn)倒堕,然后 blockpath 指定到按片循環(huán)的end上灾测,method 調(diào)整為 metadata
我們新建一個(gè) null 來(lái)獲取這個(gè) metadata 的 iteration
再建一個(gè) python 節(jié)點(diǎn)來(lái)輸出結(jié)果