今記事の目的:
AttributePaintを使用してペイントした箇所を押し出す方法を試してみたいと思います。
基本セットアップ
- Geometryノードを作成
- Gridノードを作成(Size 1×1 Rows/Columns : 200程度)
- Attribute Paintを接続
- attribute Wrangleを接続
任意の箇所をペイントする

・Attribute Nameが後の工程で重要になりますので、確認しておいてください。今回はMaskです。
・BrushのなかのFG FloatやRadiusの値を変えるとブラシの反応も変わります。
ペイントした箇所を押し出してみる

float min_mask = chf(“min_mask”);
float max_mask = chf(“max_mask”);
float extrude = chf(“extrude”);
float delete = 0.0;if(@Mask <= delete)
{
removepoint(0,@ptnum);
}float w = smooth(min_mask,max_mask,@Mask);
@P += @N * extrude * w;
@Cd = set(w,0,0);
・ペイントした箇所を押し出して、ペイントしていない箇所を削除するように組んでみました。
・その際、押し出す強さと変化量のグラデーションをスライダーで調整できるようにしました。
・スライダーはAttributeWrangleのVEXpressionの右側のボタンを押すと表示されるようになります。
挙動を確認してみる

・スライダーを動かしてみると押し出す距離や境界部分のマスクの値が変わることが確認できると思います。
次回について
ここまで読んでいただきありがとうございます。
ペイントは読み込んだポイント番号が更新されると結果も変わってしまうので、注意が必要です。


