すあまの備忘録

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

Houdiniの破壊を考える ガラス編

Houdiniの破壊回りを試しつつ使いまわせるセットアップを作ろう第1回

破壊元のビルはSideFX Labs ToolsにあるBuilding Generatorでざっくり簡易的に作成。

f:id:godofsuama:20200126171414p:plain

ガラスの破壊に関してちょっとまとめ

そもそもHoudini 17からRBD Materila Fractureがはいったのでコンクリ、ガラス、木っぽく割ることができるようになった

と思いきやこいつが割と曲者で、処理が重かったり複数の方向を向いた面を手軽に割ることができない あとディテールもちょっと重い

精度は多少落ちても、この辺を解消してもうちょい軽めなセットアップを作りたかった ちなみに参考画像はScatterのSeedが固定されてしまっている…

f:id:godofsuama:20200126172843p:plain
元形状

f:id:godofsuama:20200126172904p:plain
処理後

f:id:godofsuama:20200126172924p:plain
向きがバラバラの場合でもOK

f:id:godofsuama:20200126175112p:plain
想定外、木っぽいのも調整次第で行けるかもしれない?

ネットワーク全体

f:id:godofsuama:20200126180609p:plain

想定した条件
  • 窓ガラスなので、四角くXYZどれかが薄い
  • 元のUVを保持する
  • Mayaへ持っていけるように再分割する
  • ディテールの後調整はしない = ディテール調整したくなったら別の仕組み
  • Seedガチャができる処理速度
  • パッと見なんかそれっぽければ見た目はOK
判明している注意
  • insideのUVは別途作成する必要がある
  • nameはないのでAssemble等で再作成する
  • Remeshの値がスケールに影響されるのですごく重くなることがある
  • Scatterのポイントなどのスケールは手動調整
  • 一度つぶしている関係上、破片に斜めの分割線が入る
  • ディテールは全てScatter任せなので微妙な手直しはできない
  • Scatterのポイントが少ないとそれっぽく見えない
  • RBDのセットアップとともにシムでの使用はまだテスト中
仕組み

f:id:godofsuama:20200126182007p:plain

1.あとで使えるように元の形状をRestで保存

2.BoundノードのOriented Bounding Boxと、Transform Attributeを使用してBBOXを作る

f:id:godofsuama:20200126182456p:plain

3.2で作ったBBOX利用して各ピースの一番大きい面の向きをNに保存

4.set_switch部分でBBOXのNを使用し、X,Y,Zどの軸を向いているかを判定

5.Transform by AttributeでBBOXのxformを使用して元オブジェクトを原点に戻す

6.X,Y,Zそれぞれ違う向きを向いているのでset_switchで作ったswitchを利用して全てのピースが同じ向きを向くようにする

7.すべて同じ向きを向いているはずなので1軸だけScaleを0にして平面にする

f:id:godofsuama:20200126183349p:plain

8.PackとPoint Jitterで中心点をずらしたPointを作成し、Circleをコピーする

f:id:godofsuama:20200126183507p:plain

9.作成したCircleにつぶしたピースをRayする。この際に必ず外側にメッシュが残るようにする。

f:id:godofsuama:20200126183550p:plain

f:id:godofsuama:20200126183636p:plain

10.Voronoi用のPointを作成する。8で作成した円の中心ほどPointが多いとそれっぽくなる

f:id:godofsuama:20200126183821p:plain

11.Voronoiで分割する

12.1で作ったRestを使用して元の形状、位置に戻す。

f:id:godofsuama:20200126184016p:plain

13.RemeshしてNを再度作成する

f:id:godofsuama:20200126184128p:plain

f:id:godofsuama:20200126185420p:plain