すあまの備忘録

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

Houdiniの破壊を考える Debris Source編

お手軽に物量増えたっぽく見えるためのDebris Source活用編

実際に使っても問題は割と起こらないとは思う。

f:id:godofsuama:20200207000234p:plain


Houdini Debris Sourece 赤がメインのRBDで、緑がDebris Sourceでの追加分

hip fileはこちら(Houdini 18.0.348)

f:id:godofsuama:20200207000322p:plain
今回のノードネットワーク

ベースのRBDシム

f:id:godofsuama:20200207000408p:plain
通常のRBDシム部分

PackedされたピースにIDを作成

f:id:godofsuama:20200207000645p:plain

  • 今回は別に使用しませんでしたが、元ピースのIDを判別する用にIDを作成 EnumerateでIDを作成するのがわかりやすくておすすめ

  • Transform Piecesでハイポリメッシュに動きを転送します。

Debris Sourceを使う

f:id:godofsuama:20200207000956p:plain

  • Debris Sourceを作成し、設定します。
Attribute 説明
Group 発生させたいグループ
Edge Debris エッジからのエミット数
Surface Debris 面のエミット数
Search Radius 分離を検出する半径
Search Points 分離の参照するポイント数
Rest Frame 最初のフレーム
Life Span エミットしたポイントの寿命
必要なアトリビュートを作る

f:id:godofsuama:20200207002006p:plain

N, pscale, idを作成します。

pscaleは、0-1のランダムで作成後、Attribute Remapで以下のように分布を変えつつ最大最小を調整します。 f:id:godofsuama:20200207002202p:plain

元から継承しているvもpscaleによってMultiplyします。

小さいほうがj速く飛ぶ設定です。

f:id:godofsuama:20200207002317p:plain

最後に各ポイントに対してidを作成します。

DebrisのモデルをCopyする

f:id:godofsuama:20200207002534p:plain

今回は軽くBOXで。

その後、被らないようなnameを作成します。 f:id:godofsuama:20200207002625p:plain

今回は、Prefix_発生元のid_自分自身のid_フレーム数になっています。

Assembleでvを継承します。 f:id:godofsuama:20200207002806p:plain

Debrisをシムする

f:id:godofsuama:20200207002900p:plain

第一入力からCopyしたメッシュを毎フレーム読み込みます。

Creation Frameを$Fにすると毎フレームエミットさせることができます。

Inherit Velocity from Point Velocityにもチェックをいれ、初速をSOPから読み込みます。 f:id:godofsuama:20200207002942p:plain

1回目のRBDシムをコリジョンさせます。 f:id:godofsuama:20200207003215p:plain

最後の処理をして完成

f:id:godofsuama:20200207003311p:plain