前回に引き続きHoudiniの破壊系のネタです。
今回のネタは、徐々に壊れるシミュレーションです。
これを書きたいがために前回のをやった!
Houdiniのバージョンは14を使用しています。
※ここで紹介する方法が唯一の解ではありません。Houdiniには沢山の別解があります。方法は人それぞれ。
まずは基本的な破壊。
前回、紹介した”voronoifracture”ノードと”RBD Fracture Object”を使って破壊のシミュレーションを作成します。
こんな感じ。
これに徐々に崩れる表現を追加していきます。
球体の通ったあたりから崩れるようにしたいと思います。
まずAutoDopNetworkの中の”RBD Pack Object”ノードにある、”Overwrite Attrib…”を有効にします。
これを有効にすると指定したアトリビュートが、その上のSOP Pathのアトリビュートで毎フレーム更新されます。
ここで必要なのは”active”アトリビュートです。
“active”アトリビュートはシミュレーションで動くか否かのパラメータですね。
“active”の値が1だと動く、0だと動かない。
次に、破壊オブジェクト側に”active”アトリビュートを追加していきます。
こんな感じに球を追加し、動かします。
それにactiveアトリビュートを追加。片方は1、片方は0ってね。
で、activeの値が1になった破片から落ちていく、と。
あと、”Solver”ノード使ってその値を記憶するようにしてます。
文字での解説に限界を感じたので、SOPのネットワークはこんな感じです。
これで、球が近づいた破片の”active”アトリビュートは1になり、それ以外は0となります。
シミュレーションは”active”が1の場合だけ行われるので、結果、徐々に崩れるシミュレーションとなりました。
以上!
今回はここまで。
Houdini14を使用しています。
バージョンが異なると手順も異なる可能性があります。
(Houdini先生はバージョンアップ毎の変更に躊躇ないですしw)
間違い等ありましたら、ぜひご指摘を。
では、また次回!
サンプルファイル
voronoifracture_005
初めまして。役立つ記事をいつもありがとうございます。
古い記事へのコメント失礼します。
徐々に壊れる2段階破壊をすることは可能でしょうか。
例えば、1段階目は上記記事のような破壊で、2段階目は地面に近づくか、一定のy座標を下回った破片だけさらに細かく壊れるという破壊を実現したいと思っております。
Constraintでも試してみたのですがうまくいきませんでした。
もし案があれば教えていただけると幸いです。
こんな感じにすればいいんじゃないでしょうか?
https://drive.google.com/open?id=1UaoqnyboKOR0PBo16p10akrNxELvtBCE
はじめまして、いつもブロクを参考にさせて頂いております。
古い記事へのコメントで失礼致しますが、Activeが1になって落ちる前に一瞬上に吹き飛んでから落ちるというようにしたいのですが、
Activeが1になった際に最初だけ初速をつけるような事はこの記事と似た方法で実現可能なのでしょうか?
可能です。
こちらのスレッドにてサンプルファイル付きでいろいろ議論がなされているようなので、覗いてみてはいかがでしょうか?
https://forums.odforce.net/topic/31356-inherit-velocity-rbd-packed-object/
スレッドのファイル、「test_active_velocity3.hipnc」が似た方法でしょうか。
最後のファイル「test_active_velocity5.hipnc」の方法は私も知らなかったのですが、非常にスマートに感じました。
このあたりを参考にされてみてはいかがでしょうか?
わざわざ調べて頂きありがとうございます!
Houdiniについてまだまだ始めたばかりなので、大変助かりました。
このスレッドとサンプルファイルを見て勉強してみます!
こちらも、改めて調べる良いきっかけになりました。