前回のVelocityを描くはブラシで値を変えるやり方。
今回はCurveをベースにVelocityを作るやり方。
最後はランダムを追加するにしても最初のvなどの動きに関わる部分は可能な限りコントロールしたい。
全体
DrawCurve
DrawCurveノードは、以下のProjectionの部分をGeometryに変更することでInput0のジオメトリ上にカーブを吸着させて描くことができる。
デフォルトではいくつかアトリビュートが追加されるので不要であればオフにする。
このCreate Stroke Attributesで作成されるstroke_prim
とstroke_uv
をAttribute Interpolateで使用すると動いているメッシュに対してCurveを追従させることができる。
Volume Velocity from Curve
Volume Velocity from CurveではなくVolume Rasterize Attributeでも良いかなとは思う。
このノードを使用すると描いたカーブのストローク方向へのvelボリュームを作成することができる。
Input0にカーブをつなぎ、Input1に元のジオメトリをつなぐ。
POP Advect by Volume等でPOPへ適応したり、Pyro等のFieldとしてそのまま使用可能。
Volume Trailで可視化したのが下の画像。Volume化する際にSmootrhもかけれるためかなり滑らかなvelが作成できる。
Curveからvを作成する
描いたCurveを一度ConvertでNURBS Curveに変換し、Resampleでポイント数を整える。
その後Reverseでカーブを反転させる。反転させないと終点から始点へのvになってしまう。
その後、PolyFrameでTangent Nameをvにすれば、各カーブの始点から終点へのvが作成される。
値(Vector値)のMultiplyと注意
作成されたvはNormalizeされた状態で値が弱いことがあるので、Attribute RandomizeノードでMultiplyする。
Attribute Randomizeノードはランダム化するノードではあるが、手軽にMultiplyやAddができるためいちいちWrangleを使うよりわかりやすく便利。
紹介している設定ではないが、一律にMultiplyすることが少ないというのもこのノードを使う理由の一つ。
OperationをMultiplyに変更し、Attribute NameをMultiplyしたいアトリビュート名へ変更。
DistributionをConstant Value(not Random)に変更し、Use First Dimension's parameters for allにチェックを入れる。
Valueの最初の値にMultiplyしたい値を入力する。
Point VelocityでもvのMultiplyできるじゃん!と思って使用すると若干イメージと違う結果になるためPoint VelocityはMultiplyする際には使用しないほうが無難。
Point Wrangleでv@v *= 5;
とした場合はAttribute Randomizeと同じ結果になる。