すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

Velocityを描く vol.2 Curveからのvの作成と、vのMultiplyでの注意

前回のVelocityを描くはブラシで値を変えるやり方。

今回はCurveをベースにVelocityを作るやり方。

最後はランダムを追加するにしても最初のvなどの動きに関わる部分は可能な限りコントロールしたい。

godofsuama.hatenablog.com

f:id:godofsuama:20200912160602g:plain

全体

f:id:godofsuama:20200912153433p:plain

DrawCurve

f:id:godofsuama:20200912153517p:plain

DrawCurveノードは、以下のProjectionの部分をGeometryに変更することでInput0のジオメトリ上にカーブを吸着させて描くことができる。

f:id:godofsuama:20200912153547p:plain

デフォルトではいくつかアトリビュートが追加されるので不要であればオフにする。

f:id:godofsuama:20200912154058p:plain

このCreate Stroke Attributesで作成されるstroke_primstroke_uvをAttribute Interpolateで使用すると動いているメッシュに対してCurveを追従させることができる。

f:id:godofsuama:20200912154415p:plain f:id:godofsuama:20200912154257g:plain

Volume Velocity from Curve

Volume Velocity from CurveではなくVolume Rasterize Attributeでも良いかなとは思う。

このノードを使用すると描いたカーブのストローク方向へのvelボリュームを作成することができる。

Input0にカーブをつなぎ、Input1に元のジオメトリをつなぐ。 f:id:godofsuama:20200912154924p:plain

POP Advect by Volume等でPOPへ適応したり、Pyro等のFieldとしてそのまま使用可能。

Volume Trailで可視化したのが下の画像。Volume化する際にSmootrhもかけれるためかなり滑らかなvelが作成できる。

f:id:godofsuama:20200912155017p:plain

Curveからvを作成する

f:id:godofsuama:20200912155216p:plain

f:id:godofsuama:20200912155238p:plain

描いたCurveを一度ConvertでNURBS Curveに変換し、Resampleでポイント数を整える。

その後Reverseでカーブを反転させる。反転させないと終点から始点へのvになってしまう。

その後、PolyFrameでTangent Nameをvにすれば、各カーブの始点から終点へのvが作成される。

f:id:godofsuama:20200912155438p:plain

値(Vector値)のMultiplyと注意

作成されたvはNormalizeされた状態で値が弱いことがあるので、Attribute RandomizeノードでMultiplyする。

Attribute Randomizeノードはランダム化するノードではあるが、手軽にMultiplyやAddができるためいちいちWrangleを使うよりわかりやすく便利。

紹介している設定ではないが、一律にMultiplyすることが少ないというのもこのノードを使う理由の一つ。

f:id:godofsuama:20200912155711p:plain

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と同じ結果になる。

f:id:godofsuama:20200912160238p:plain

f:id:godofsuama:20200912160255p:plain
Point Velocityの場合

f:id:godofsuama:20200912160322p:plain
Attribute RandomizeでのMultiply

f:id:godofsuama:20200912160745p:plain
Wrangleの場合