リジッドボディ基礎13 Fracture Object (Packed)


こんにちは篠島です。1年前にリジッドボディ基礎のブログを書いていた矢先にHoudini16が出てしまい更新がストップしたこのコーナー、ちょこっと再開してみます。今回はPacked Primitiveを使ったFracture Objectについてです。

 

今回のサンプルファイルです。1年前のデータをPack用に直しただけです。
RBD_Packed_fracture.zip

 

シェルフから RBD Fractured Object を選ぶと下のようにRBD Packed Object を作るか、RBD Fractured Objectを作るか聞かれます。普通のRBD Fracture Object については以前の記事で紹介しました。

 

シェルフで RBD Packed Object を選んでみると・・・

ここで RBD Packed Object を選ぶと作った破片に対しAsseble SOP を使って Packed Primitive にしてくれます。Assemble SOP に付いてはこの記事で簡単に説明しています。Assemble SOP の部分で Create Packed Geometry がONになっているので、ここでそれぞれの破片を Pack しています。

 

Packとそうでないの物の違い

RBD Fractured Object と RBD Packed Object の最大の違いは何と言ってもDOP内で扱われるデータの違いです。RBD Fractured Object は破片毎にDOPオブジェクトが作られ、それぞれのDOPオブジェクトに沢山のデータが詰め込まれますが、RBD Packed Object の場合はDOPオブジェクトはたった1つしか作られません。それぞれの破片データは Packed Geometry としてポイントとして表されています。なので RBD Packed Object はメモリの使用量がかなり削減されています。普通の RBD Fractured Object を使ってちょっと複雑なシミュレーションを作り、破片が多くなるともう大変でメモリが32Gあっても全然足りません(昔の自分のノードの組み方が悪かっただけ・・・?)。なので今はRBD Packed Object が主流です。

 

Packed Geometryにすると、DOPオブジェクト内にGeometryデータがあり、そこに破片データがポイントとして格納されています。リジッドボディに必要なポイントアトリビュートが大量に追加されているのがわかります。リジッドボディをコントロールする時はこのポイントアトリビュートを変更してコントロールしていく事になります。それはまた後々・・・。