Houdini [UHTK.002] 2021.03.02
・UHTK 04 Part I - VEXで置き換える
・@~~で変数呼び出し、定義の場合は@の前にintはi、floatはf、vectorはvみたいな感じで頭文字入れる
・スライダーとかのUI出すときは
float amount = chf("amount");
って入れて入力画面の横のパラメータ作成スイッチ押す
chiなら整数、chvなら3次元とかになる
UIの順番変えたりレンジいじったり(0~1を0~10とかに変えたり)はattribute wrangleの設定アイコンからEdit Parameter Interfaceに入る 色々変えられそう
・addでPolygon作ってPoly wireで厚みができる
・UHTK 04 Part II - VEXで置き換える
vector pos = v@P + onoise(v@P * chf("d_freq") - chv("d_offset"), 2, 0.5, 1.0);
pos = pos * chf("freq") -chv("offset");
float noise = onoise(pos, 5, 0.5, 1.0);
noise = fit(noise, -0.5, 0.5, 0.0, 1.0);
noise = chramp("remap_height", noise);
float height = chf("height");
vector disp = v@N * noise * height;
v@P = v@P + disp;
UHTK 03 のVOPで作成したノイズをVEXに置き換えました。
絶対するりするりと忘れていきそうだ。
とりあえず備忘録的に意味を書き出しておくことにした。
後で読んだ俺が分かるようにめちゃくちゃ噛み砕いて書く。
英語とカタカナと、ブレブレで書きます。
気持ち悪いかもしれないけどすべてを忘れて見返したときにもわかるように。
vector pos = v@P + onoise(v@P * chf("d_freq") - chv("d_offset"), 2, 0.5, 1.0);
一行目
・ベクトル変数posを定義、ベクトルのアトリビュートP(xyz座標)を呼び出してそこにオリジナルパーリンノイズを足し合わせて元々の座標をゆがめる。
・ノイズのプロパティの説明。
onoise(変化させる座標, タービュレンス, ラフネス, アンプリチュード)
各プロパティの説明はこの記事で。
・VOPで作るときのFreqency,offsetは元のジオメトリを拡縮、移動させることで作成。つまり(座標 × Freq - offset) でスライダー作成
pos = pos * chf("freq") -chv("offset");
二行目
・先ほど定義したposにさらにノイズを加える。
コードがごちゃつくのでまずはさっきみたいにFreqとoffsetを追加。
float noise = onoise(pos, 5, 0.5, 1.0);
三行目
・さっきのposを代入したオリジナルパーリンノイズを加えてnoiseという変数を定義する。
noise = fit(noise, -0.5, 0.5, 0.0, 1.0);
四行目
・レンジを変更。Original Perlin Noiseは-0.5から0.5までの範囲でノイズを出力するらしいのでそれを0.0から1.0にする。つまり
fit(インプット, 元の最小値, 元の最大値, 変更後の最小値, 変更後の最大値)
noise = chramp("remap_height", noise);
五行目
・ランプパラメーターのUIを追加。
chramp("名前", インプット)
float height = chf("height");
六行目
・変数heightを定義、UIも追加。
vector disp = v@N * noise * height;
七行目
・ディスプレイスの変数を作成。
変数dispを定義。アトリビュート法線Nとnoiseとheightを掛け合わせる。
v@P = v@P + disp;
八行目
・アトリビュートP(xyz座標)にdispを足す。
・まとめ
今後はVOPの直感的な操作で面白そうなものを作って、それをVEXに変換する練習をしていきたい。