【Unity】風になびくように連続的に揺らすシェーダーグラフを作る

投稿者: | 2024-01-14

複数のオブジェクトや頂点を風でなびくように順次揺らすシェーダーグラフを作りました。

シェーダーグラフ

Timeノードに周波数をかけて揺れる速さを調節します。

Timeの値に位相を足します。ワールド位置と風向のドット積の値を使います。

ドット積で、オブジェクトや頂点などの位置ベクトルが風のベクトルと向きが似ていて、ベクトルが大きいほど、より大きな値が得られます。

値を調節してTimeに足すことで、ワールド位置によって揺れのタイミングをずらせます。

(0, 0, 1)
(1, 0, 1)
(1, 1, 1)

オブジェクトごとに揺らすときは、Objectノードを使います。

パーリンノイズに入力します。出力値を 2 倍して 1 引くことで、-1~1の範囲にしています。

振幅と頂点カラーをかけて揺れ具合を調節します。

洗濯物を揺らすために、Blenderで頂点カラーを上下のグラデーションにしました。

固定した部分は頂点カラーを0にします。

これを風向きとかけてからワールド位置に足します。

最後にTransformノードでオブジェクト座標空間に変換して、マスタースタックの「Position」に入力します。

コメントを残す

メールアドレスが公開されることはありません。