LoginSignup
3
1

More than 3 years have passed since last update.

rampパラメータでポイントのアトリビュートを制御するTips

Last updated at Posted at 2020-05-25

この記事は?

Houdiniユーザーにとってあまりにも当たり前すぎて、Tipsにもなっていないような内容を自分用備忘録として記事にしました。

1.rampパラメータを作成

1-1.wrangleノードに作成する

ramp
float  chramp(string channel, float ramppos)

float  chramp(string channel, float ramppos, float time)

vector  chramp(string channel, float ramppos)

vector  chramp(string channel, float ramppos, float time)

Houdiniでのrampは返す値の型が「float」「color」の2種類あります。
wrangle上ではfloatの場合もvectorの場合も同じなので、ただコードを書いて表示させただけではすべてfloatのrampになってしまうため、別途Edit Parameter Interfaceウィンドウにて、Ramp TypeをColorに設定してやる必要があります。
(VEX上で指定できる方法あれば情報が欲しいです。プラグマ?)

string channelのところで指定した名前は、そのままパラメータのnameに使用され、
nameの頭文字が小文字であったら大文字に変更されたものがパラメータのLabelに使用されます。

2.作例いろいろ

2-1.作例①ポイントの移動

1.png

example_pos
float position=fit(@P.y,0,`ch("../line1/dist")`,0,1);
float move=chramp("move",position);
float multiply=chf("multiply");

@P.x=@P.x+move*multiply;

2-2.①解説

float position=fit(@P.y,0,`ch("../line1/dist")`,0,1);

ここで各ポイントが、rampでいう0~1のどこに当たるかというのを設定しています。
「高さ0をrampの0、高さ最大をrampの1とした時の、@P.yの位置」を決めています。
高さの最大はlineノードで指定したLengthのパラメータをそのまま持ってきています。

float move=chramp("move",position);

上記で設定した範囲をrampに設定します。
これは「"move"という名前のrampパラメータで、rangeの値を決める」という意味です。

@P.x=@P.x+move*multiply;

@P.xに、rampパラメータで取得した値を加算し、各ポイントを移動させました。
rampが吐き出す値は0~1であるため、そのままだと移動による変化が見えないため、任意の数値(multiply)を乗算して移動量を調節できるようにしています。

2-3.rampパラメータでpscaleを制御

image.png

example_pos
float position =fit(@ptnum,0,@numpt,0,1);
float tube_scale=chramp("ramp",position);

@pscale=tube_scale;

2-4.作例③

image.png

prim_scale
vector max_pos=getbbox_max(1);
vector min_pos=getbbox_min(1);

float position=fit(@P.z,min_pos.x,max_pos.x,0,1);
float scale=chramp("scale",position)+0.5;

f@prim_scale=scale;
prim_color
float position=fit(@prim_scale,0.5,1.5,0,1);
vector color=chramp("prim_color",position);

@Cd=color;
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1