SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

Houdini Wrangleのメモ


Wrangleで変数配列

int v = array(1,2,3,4,5);//int型

vector2 v2 = array({1,5},{5,6},{5,4},{-1,0},{-0.5,-8},{5,6});//vector2型

 

配列の大きさを取得

int ln= len(v2);

 

 

アトリビュートを生成

v@Hoge = {1,1,1}

頭文字は、型を表す。vはvector。iはint

変数のスコープはそのWrangleノード内だけですが、アトリビュートのスコープは生成してからノードをまたいで延々と続きます。

勝手に消えないので無駄に生成すると重くなります。

 

パラメータを生成

float fl =  ch('hogehoge');

などど書いてwrangleの横にあるボタンをおすと下の方に新しいパラメータUIが作られ、その値をflにいれることができます。ユーザーが簡単にパラメーターにアクセスできるようになります。

f:id:sui332015:20171006175054p:plain

パラメーターの詳細は上部ギアのマークからEdit parameter interfaceで編集すると良い感じです

 

他のノードのパラメータを使う

他のノードのパラメータのラベルの上で、右クリック->Copy Parameter

Wrangleのテキスト上で右クリック->Paste Relative Referenceでその値を相対パスで貼りつけることができる。例えばこんな感じです。

`chs("../transform3/tx")`

 

 ただ、なぜか書いていたwrangleが全て消されるときがあって挙動がなぞです。そしてCtrl+zが聞かない場合があるので、誰かご存知でしたら教えてください。

rand関数

ランダム関数です。浮動小数点で値が0~1の間で返ってきます。

使うときは、rand(@ptnum);など、中にポイント番号やプリミティブ番号をシード値としていれてあげます。(シードとは種、ここからある計算法をつかって結果を成長させる感じです。そのためシード値が同じであれば同じ結果が得られます。)

rand

 

clamp関数

入ってきた値をある範囲でクランプします。たとえば最小値0、最大値1に設定しているとき、5が入ると1を超えているため1になります。

clamp(atai,0,1);

clamp

 

VEX言語仕様はこちら

VEX language reference

VEX関数一覧はこちら

VEX functions