【Houdini】Wrangleを学ぶ④

今記事の目的:

マスクを使用して地形を任意の形状に調整、任意の箇所にマスクを作成する方法を試してみたいと思います。

基本セットアップ

  1. Geometryノードを作成
  2. Gridノードを作成(Size 10×10 Rows/Columns : 100程度)
  3. attribute Wrangleを接続

ノイズのスケールを調整してみる

vector pos = @P * 0.3;
float n = noise(pos);

float mask = fit(@P.y, 0.0, 0.8, 0.0, 1.0);
mask = clamp(mask, 0.0, 1.0);

float finalMask = smooth(0.3,0.5,n*0.8+mask*0.5);

vector baseColor = set(0.4, 0.25, 0.1);
vector addColor = set(0.2, 0.5, 0.2);

@Cd = lerp(baseColor, addColor, finalMask);

・今回はGridのy座標がマスクに影響するので適宜変えて見てください。画像の状態は0で作成しました。

// fit()の仕組み
float new = fit(value, oldMin, oldMax, newMin, newMax);
valueが oldMin〜oldMax の間にあるとき、それを newMin〜newMax の範囲に変換してくれます。
そのあと、clampで0~1の範囲に絞ることで扱いやすくなります。
// smooth()の仕組み
float new = smooth(value, edge0, edge1);
value が edge0〜edge1 の間をゆるやかに 0→1 に変換してくれます

作成したマスクをもとに高さに変化を加えてみる

vector pos = @P * 0.3;
float n = noise(pos);

float mask = fit(@P.y, 0.0, 0.8, 0.0, 1.0);
mask = clamp(mask, 0.0, 1.0);

float finalMask = smooth(0.3,0.5,n*0.8+mask*0.5);

float dispAmp = 2.0;
@P.y += finalMask * dispAmp;

vector baseColor = set(0.4, 0.25, 0.1);
vector addColor = set(0.2, 0.5, 0.2);

@Cd = lerp(baseColor, addColor, finalMask);

・緑色の箇所のみ高くすることができました。

法線ベースでマスクを作ってみる

float upMask = fit(@N.y,0.0,1.0,0.0,1.0);
upMask = clamp(upMask,0.0,1.0);

vector pos = @P*0.5;

float n = noise(pos);

float topMask = smooth(0.4,0.8,upMask*0.7+n*0.3);
@P.y += topMask * 0.15;

vector baseColor = set(0.4, 0.25, 0.1);
vector topColor = set(0.2, 0.5, 0.2);

@Cd = lerp(baseColor, topColor, topMask);

・前段階で作成した地形に対して、上向きの面に対してマスクを作成してみました。
・画像の通り、緑色の箇所は高さが変化していて、茶色の箇所は変化していないことがわかります。

特定の箇所のマスクを作成してみる

vector north = normalize({0,0,1});
float d = dot(@N,north);

float northMask = fit(d,0.0,1.0,0.0,1.0);
northMask = clamp(northMask,0.0,1.0);

vector pos = @P*0.6;

float n =noise(pos);

float mask = smooth(0.2,0.8,northMask*0.8+n*0.2);

vector red = set(0.9,0.3,0.2);
vector green = set(0.1,0.4,0.15);

@Cd = lerp (red,green,mask);

・今回は、法線がZ+方向に向いている箇所のマスクを作成してみました。狙った箇所にマスクをかける方法の紹介でした。

次回について

ここまで読んでいただきありがとうございます。次回はペイントを使用してみようと思います。

関連記事

  1. 【Houdini】Wrangleを学ぶ③

    2026-02-11

  2. 【Houdini】簡単なモデルを作ってみよう

    2024-01-14

  3. 【Houdini】初心者向け!ヒビの入れ方!

    2024-06-17

  4. 【Houdini】Wrangleを学ぶ①

    2025-11-28

ページ上部へ戻る