すあまの備忘録

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

Pyroのきのこを殺すメモ

2021/01/24 age Fieldを追記

きのこを殺す手段のメモ。よく忘れる。知ってる範囲で。

星がついてるが自分のためのメモなので当てにしないこと。

そもそも、DOPでいろいろする前にエミッターの部分を詰めるほうを優先すべき。

あとはDOP内ですぐにForceをかけない。まず大きな動きがイメージ通り行くように調整すべき。

何もしていない状態

f:id:godofsuama:20210111022800p:plain

f:id:godofsuama:20210111171754p:plain

Speed Field

きのこ殺せる:★☆☆
手軽さ:★★★
汎用性:★★★
処理の軽さ:★★★

速度の速い(遅い)部分にForceをかける方法

f:id:godofsuama:20210111022859p:plain

f:id:godofsuama:20210111023513p:plain

作り方(H18以前)

f:id:godofsuama:20210111023014p:plain

f:id:godofsuama:20210111023350p:plain

f:id:godofsuama:20210111023421p:plain

作り方(H18以後)

Houdini 18.5以降かつ、Sparse Solverであればデフォルトでチェックボックスが用意されている。

f:id:godofsuama:20210111023320p:plain

使い方

これをそのままTurbulanceなどのControl Settingsに設定する。

f:id:godofsuama:20210111023119p:plain


Pressure Field

きのこ殺せる:★★☆
手軽さ:★★★
汎用性:★☆☆
処理の軽さ:★★★

圧力が高い部分にForceをかける。そのままではあんまり良い結果は産まないイメージ

例のWrangle部分でClampしているが好きな処理にすること。

あとGas Blurでちょっとブラーをかけて広げるのが良いと思う。

速いきのこ部分はPressureが高くなる傾向があるので、かなり強めにForceをかけるといい感じにきのこが分裂して形が崩れる。

f:id:godofsuama:20210111024520p:plain

f:id:godofsuama:20210111024544p:plain

作り方

f:id:godofsuama:20210111023726p:plain

f:id:godofsuama:20210111023804p:plain

f:id:godofsuama:20210111023847p:plain

f:id:godofsuama:20210111023938p:plain

使い方

f:id:godofsuama:20210111024029p:plain


Temperature Field

きのこ殺せる:★☆☆
手軽さ:★★★
汎用性:★★☆
処理の軽さ:★★★

若干制御が難しいのであまりつかった覚えはない。Coolling Rateなどと合わせてうまく調整する感じ。

画像を見ればわかるがこれだけではきのこは殺せない。

f:id:godofsuama:20210111024954p:plain

f:id:godofsuama:20210111025015p:plain

作り方

f:id:godofsuama:20210111025035p:plain

f:id:godofsuama:20210111025059p:plain

f:id:godofsuama:20210111025115p:plain

f:id:godofsuama:20210111025141p:plain

使い方

温度が高い(低い)部分で分けて調整すると良さげ。

f:id:godofsuama:20210111025213p:plain


Gradient & vel Field

きのこ殺せる:★★★
手軽さ:★★★
汎用性:★★★
処理の軽さ:★★★

汎用性も効果も高め。DensityのNormalとvelから計算する。

両方の向きが一致している場合は1になるように処理している。

処理も軽くていい。TurbulenceよりかはDisturbanceに使うときのこに細かいディテールが乗っていい。

何故かたまにエラーで使えなくなることがある…

f:id:godofsuama:20210111045646p:plain
Turbulence

f:id:godofsuama:20210111045717p:plain

f:id:godofsuama:20210111051313p:plain
Disturbance

作り方

f:id:godofsuama:20210111045734p:plain

f:id:godofsuama:20210111045811p:plain

f:id:godofsuama:20210111045836p:plain

f:id:godofsuama:20210111045859p:plain

f:id:godofsuama:20210111045915p:plain

使い方

f:id:godofsuama:20210111045935p:plain


age Field

きのこ殺せる:☆☆☆
手軽さ:★☆☆
汎用性:★☆☆
処理の軽さ:★☆☆

きのこを殺すようではない…

ageの値がビューでは非常に確認しづらいのが玉に瑕

もとはODFORCEのこの記事かなと思う。もとの処理を考えてくれた方に感謝!

DOP Pyro Age Field? - Effects - od|forum

ただ、組むのが大変なので、ShoheiOkazakiさんのNagamochiに入ってるnmGasAgeを使うことが多い。

GitHub - ShoheiOkazaki/Nagamochi: Houdini Tools

どちらもSparse Solverだとそのままでは動かないと思う。

下記画像は非常に分かりづらいが、age1前後にのみ(中間くらいの高さ)強くTurbulenceをかけたもの。

f:id:godofsuama:20210124190112p:plain

f:id:godofsuama:20210124190206p:plain

作り方

正直Sparseで動くようにはなったけど合ってるかはだいぶ不安。

Smoke Objectの下にScalar Fieldを作成する。

f:id:godofsuama:20210124190454p:plain

Sparseでは、Smoke Objectから直接大きさが取得できないので、opinputpathを使用してSmoke Object内部から取得する。

f:id:godofsuama:20210124190545p:plain

f:id:godofsuama:20210124190635p:plain

Source FieldもVolume Source内部で(多分)処理されてしまっているので、Volume SourceでSource Fieldを作成する。

f:id:godofsuama:20210124190709p:plain

f:id:godofsuama:20210124191032p:plain

SourceにMergeしてGas Field VOPを作成し内部を以下画像にする。

f:id:godofsuama:20210124191116p:plain

age処理用のagetemp Fieldを作成する。

f:id:godofsuama:20210124191203p:plain

agetempにsourceを追加する。

f:id:godofsuama:20210124191245p:plain

ageにagetempを追加する。

f:id:godofsuama:20210124191315p:plain

agetempを0にする

f:id:godofsuama:20210124191353p:plain

ageをadvectする。

元のではSingle Stepだったが、Gas Advect Field 1.0にしないとSingle Stepが出てこないのでとりあえず変更していない。

f:id:godofsuama:20210124191453p:plain

最後にSmoke SolverのResizingのExtra Fieldsにageを追加する。

f:id:godofsuama:20210124192331p:plain

使い方

ageの値に合わせてなにかの処理を加える。

f:id:godofsuama:20210124190322p:plain


Air Field

きのこ殺せる:★☆☆
手軽さ:★★☆
汎用性:★★★
処理の軽さ:★★☆

この世界は真空ではないので、環境に漂う気流をちゃんと定義してあげる方法。

気流だけでも良いが、周囲のコリジョンも含めると気流がそこにあたったvelが生成されるのでだいぶ良い。

コストとの相談にはなるが、Pyroに直接ぶつからないオブジェクトのコリジョンも含めれるとぐっと良くなる。(ことがある)

なお、思ったより結果が見えなかったのでコリジョンの例はvを10倍にしている。envも含めなければほんとにその程度しか効かない。

Air Fieldっていうとコリジョンすることによって発生する気流を指すことが多いので注意。envVelocityは含まない気がする?

f:id:godofsuama:20210111170527p:plain
Collision(実際は煙にあたっていない)

f:id:godofsuama:20210111170559p:plain

f:id:godofsuama:20210111170747p:plain
envVelocity

f:id:godofsuama:20210111170818p:plain

作り方(Collision)

そのまま通常通りコリジョンする。

もし、コリジョン内部に煙が入ってしまってDensityなどがなくなるのが嫌なのであれば以下をオフにする。

f:id:godofsuama:20210111170933p:plain

作り方(envVelocity)

f:id:godofsuama:20210111171149p:plain

BoundやBoxで範囲を定義。

空のvelを定義

f:id:godofsuama:20210111171237p:plain

VDB Activateでvelを設定した範囲にする。

f:id:godofsuama:20210111171332p:plain

Volume Velocityノードや、Volume VOPなどでvelを定義する。

f:id:godofsuama:20210111171427p:plain

使い方

それぞれ普通にForceに接続する。

f:id:godofsuama:20210111171502p:plain


Scatter Point

きのこ殺せる:★★☆
手軽さ:★☆☆
汎用性:★☆☆
処理の軽さ:★★☆

Pressure単体ではなく+ScatterしたPointの部分のみにForceを強くかける。

コントロールが若干難しいが割と乱れていいと思う。Pressureじゃなくても可。

f:id:godofsuama:20210111030154p:plain

f:id:godofsuama:20210111030232p:plain

作り方

DOP内

f:id:godofsuama:20210111030503p:plain

f:id:godofsuama:20210111030529p:plain

f:id:godofsuama:20210111030550p:plain

f:id:godofsuama:20210111030627p:plain

f:id:godofsuama:20210111030642p:plain

f:id:godofsuama:20210111030709p:plain

f:id:godofsuama:20210111030730p:plain

DOPのSOP Solver内

f:id:godofsuama:20210111030850p:plain

f:id:godofsuama:20210111030905p:plain

f:id:godofsuama:20210111030926p:plain

f:id:godofsuama:20210111030948p:plain

f:id:godofsuama:20210111031005p:plain

f:id:godofsuama:20210111031019p:plain

f:id:godofsuama:20210111031033p:plain

f:id:godofsuama:20210111031046p:plain

使い方

f:id:godofsuama:20210111031108p:plain


Vorticle Force

きのこ殺せる:★★☆
手軽さ:☆☆☆
汎用性:★★☆
処理の軽さ:☆☆☆

めちゃ処理重い…セットアップもややこしい。一応ShelfのContainer ToolsにSeed Vorticlesがあるのでそれを使えばセットアップできます。

空間に渦を配置するというコンセプトは結構好き。

f:id:godofsuama:20210111032045p:plain

f:id:godofsuama:20210111032235p:plain

作り方

まずSOPでPointをScatterする。(一応DOP内でPointを生成することもできる)

f:id:godofsuama:20210111032356p:plain

up(向き)、pscale(範囲)、mag(強さ)アトリビュートを作成する。

f:id:godofsuama:20210111032451p:plain

DOP

Smoke Object下に以下を作成

f:id:godofsuama:20210111032540p:plain

f:id:godofsuama:20210111032612p:plain

SolverのForceにGas Vorticle Forcesをつなぐ。

Confinement Strengthが全体の強さのMultiplyになる。

f:id:godofsuama:20210111032658p:plain

f:id:godofsuama:20210111032724p:plain

Advectionに以下をつなぐ。

f:id:godofsuama:20210111032816p:plain

f:id:godofsuama:20210111032850p:plain

f:id:godofsuama:20210111032918p:plain

f:id:godofsuama:20210111032938p:plain


Particle to Field

きのこ殺せる:☆☆☆
手軽さ:☆☆☆
汎用性:★★★
処理の軽さ:★☆☆

紹介するだけ。応用をきかせたらいろいろなことに使えそうな未来を感じる。

Particleの値をDOP内で各種Fieldへ変換。普通にVolume Sourceでいいかな…

f:id:godofsuama:20210111040541p:plain

f:id:godofsuama:20210111040557p:plain

作り方

SOP f:id:godofsuama:20210111040135p:plain

f:id:godofsuama:20210111040149p:plain

DOP内

f:id:godofsuama:20210111040222p:plain

f:id:godofsuama:20210111040248p:plain

f:id:godofsuama:20210111040313p:plain

Gas Particle to FieldのAttributeでPointのAttributeを指定し、それをDestination Fieldに変換する。

f:id:godofsuama:20210111040345p:plain


メモ

iGouさんの方法もかなり良かった。ありがたい。

get-igou.blogspot.com

f:id:godofsuama:20210113223905p:plain

f:id:godofsuama:20210113223940p:plain