Created on | Updated on

【初心者向けHoudiniトライアル008】ガラスの破片の情報を修正する

このチュートリアルは、「【初心者向けHoudiniトライアル007】Houdiniでガラスを粉々にしてみよう」の続きです。

使用するHoudiniバージョン

Houdini 18.0.460

外的要因が衝突する場所を調整しておく

Sphereは設定したVelocityによりガラスの板に衝突します。
そこで初期位置を修正し、ガラスのインパクトポイント(蜘蛛の巣の中心)にSphereが衝突するようにしましょう。

Sphereの初期位置
mceclip0.png

衝突位置
mceclip1.png

ガラスに破片を追加する

ガラスに分割が少ない場合は、RBD Material FractureのCracksタブで調整します。
このサンプルではRadial Crack NumberとNumber Varianceを下記の値にしています。

mceclip2.png

破片に設定を追加する

前回の設定のままシミュレーションを再生すると、砕けた破片すべてがシミュレーションしていることがわかります。
mceclip3.png

しかし基本窓ガラスは枠にはまっており、衝突した場所(インパクトポイント)から離れた個所まで粉々にするにはかなりの力がかかる必要があるはずです。そのため特定の破片はシミュレーションから外したいと思います。

ジオメトリがdop内で他のオブジェクトからの影響かうけるかどうかはactiveというアトリビュートによって決定します。

  • RBD Bullet Solver内に入り、Geometry Spreadsheetを確認します。

rbd_object > Geometryを選択すると各パックプリミティブのアトリビュートを確認することができます。
この中にactiveというアトリビュートがあり、これがすべて1に設定されています。
mceclip4.png

これによりすべてのパックプリミティブが他のオブジェクトの影響を受けるようになっています。つまり、このactiveアトリビュートをRBD Bullet Solverに入力する前の段階で0と設定することで、そのパックプリミティブは他からの影響をうけないようになります。

このようにRigid bodyに必要な設定をあらかじめ設定する方法として前回も使用したRBD Configure ノードがあります。

まず、activeアトリビュートを0に設定したいパックプリミティブをGroupに登録します。

  • assembleとgroupromoteの間にgroupノードを追加します。

mceclip5.png

  • Groupノードのプロパティにて、Group Nameをtopにします。
  • Base Groupの選択用アイコンをクリックし

mceclip8.png

  • 下記のようにインパクトポイントより上にある破片をランダムに選択します。この時、破片と破片の間の角にできた切れ端は選択しないようにします。

mceclip7.png

  • 選択後、Enterキーを押すことで選択したパックプリミティブがBase Groupに登録されます。

このtopグループを使用して、RBD Configureを設定します。

  • RBD Bullet Solverの直前にRBD Configure を追加します。

mceclip9.png

  • RBD Configureノードのプロパティにて、Groupにtopを指定します。
  • Bullet DataのActiveを有効にして、0にしてください。

    mceclip10.png

これでパックプリミティブにactiveアトリビュートが設定されました。
RBD Bullet Solverの中にはいり、Geometry Spreadsheetを確認します。

  • Geometry Spreadsheetにて、rbd_object>Geometryを選択します。
  • activeアトリビュートをクリックし並び替えを行うと値が0に設定されているパックプリミティブがあることがわかります。

mceclip12.png

activeアトリビュートによる結果を確認してみましょう。

  • RBD Bullet Solverの中にいる状態でシミュレーション再生します。

mceclip0.png

上部のグラスをシミュレーションから外したため、インパクトポイントに近い部分の破片は吹き飛びますが、インパクトポイントから遠く、上部のガラスとつながったままの破片は飛ばされず保持されています。

 

次に、ほかのグループには異なる設定を追加したいと思います。

RBD Material Fractureで分割を作成したときにいくつかグループが作成されていたかと思います。その中にglass_chipというグループもありました。

このグループをビューポートで確認したいと思います。

  • RBD ConfigureノードにDisplayフラグを設定した状態で、ViewportのDisplay Group and attribute listをクリックします。

mceclip0.png

ビューポートの左上にグループリストが表示されます。
その中にglass_chipというグループがあることを確認します。

glass_chipに黄色が割り当てられており、ビューポートをみるといくつかの破片が黄色で表示されます。
mceclip1.png

Chipは大きな破片の角から作成しているため、破片と破片の間にはChipがはさまっています。
このChipに大きな破片がひっかかってしまっているようです。

  • RBD ConfigureノードでAttributesの横の+をクリックします。
  • 2つ目のタブが追加されるのでクリックして選択します。

mceclip2.png

  • Groupの横のドロップリストボタンをクリックし、表示されたリストからglass_chipsを選択します。

mceclip3.png

mceclip4.png

  • Collision shapesを開き、Collision Paddingを0にします。
  • Shring Amountはオフにしてください。

mceclip5.png

  • シミュレーションを再生します。

ちなみに壊れ方はSphereが衝突した場所やtopグループへ登録した破片により変わってきます。そのため、壊れ方が上記の画像と違う場合でも問題ありません。

最後にパフォーマンスを上げるかもしれない設定を追加します。

  • AdvancedタブでBullet Solverを開き、Sleeping Timeを1に設定します。

mceclip8.png

ここで指定した時間内にLinear ThresholdとAngular Thresholdで指定した値未満になったら、その破片はスリープ状態になります。

Linear ThresholdとAngular Thresholdは、Solver>Bullet Objectにて指定しています。

mceclip9.png

今回は下記まで完成しました。

【初心者向けHoudiniトライアル009】コンストレインネットワークを調整するへ続く

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

サポート問い合わせ