鈴カステラみたいなオブジェを作りたいなーと思っていた時に、少し高さがつぶれた球の作り方を模索しました。今日はその作り方をご紹介します。
Algorithmic Design with Houdiniの中のサンプルのプロセスで実現できるコードがありましたのでこちらを参考にコードを書いてみました。
著:堀川淳一郎
¥4,290 (2023/01/02 10:14時点 | Amazon調べ)

ぷにっとした丸の作り方
まずイメージを共有するために、ビフォーアフターを見てみましょう。上の画像のような球を下の画像の良いな球にします。


イメージとしては全体的に少し膨張させて、Y軸方面を潰していく感じです。
Point Wrangle
各pointをいじっていくためにPoint Wrangleを使用します。早速Point Wrangleのコードを見ていきましょう。
// 全体的に少し拡大をする
float scale = 1.090;
// 0.5 ~ -0.5のy座標に対して、マイナス方向に0が入るようにfit関数で変数valを作る
float val = fit(@P.y, 0, 1.0, 0, 1.0);
// 変数valをもとに、scaleで使う変数angleを作る。ここを調整することでつぶれ具合を調整できる
float angle = fit(val, 0, 1.0, $PI * 0.45, $PI * 0.9);
// sin関数に角度を入れて、スケールの値を作ります
float yscale = sin(angle);
@P.y *= yscale;
@P.x *= scale;
@P.z *= scale;
Torusとマージして鈴カステラの完成!
Torusを周りにつけると鈴カステラのような形状になりました!

まとめ
Point Wrangle、結果を見ながらプログラミングできるので、微調整がしやすくて本当に重宝しています。参考になりますと幸いです!

コメント