使用するHoudiniバージョン
Houdini 18.0.460
今回からのシリーズは、RBD Material Fracture SOPsを使用し、窓が割れるシミュレーションを作成してみます。今回はまず窓をガラスっぽく分割してみます。
窓を作成する
- CreateシェルフでBoxをクリックします。
- Enterキーをおして、シーンにBOXを追加します。
これでObjectレベルにBoxが追加されました。
ここでは、シーンレベルのジオメトリオブジェクトが表示されます。
そして、作成されたbox_object1にはGeometryというコンテナの種類が記載されています。
このGeometryコンテナオブジェクトでは、オブジェクト内部の個々のサーフェスとは別に、移動、回転、スケール、オブジェクト全体をシェーディングすることができます。
- box_objectをダブルクリックして、Geometryコンテナの中に入ります。
ネットワークの名前がGeometryと変わりました。
このオブジェクトレベルのGeometryオブジェクトには、ジオメトリ(SOP)ネットワークを格納します。そして、このネットワークは、オブジェクトのジオメトリを作成するジオメトリノードを保持します。
このGeometryオブジェクト内に作成するノードをSOP(Surface OPerator )ノードといいます。
それではbox1のオプションを変更し、ジオメトリを変更してみます。
- boxのオプションでSizeを下記のように変更します。
形状をみると、縦に長く薄い窓の形状になりました。
窓を割る
早速この窓を割ってみましょう!
とその前に、この窓が割れて破片になっても、これが窓の一部だったことを認識できるようにアトリビュートとして設定しておきます。
アトリビュート
アトリビュート とは、Vertes、Point、Primitive、オブジェクト上に記録される名前を付けた値のことです。例えば、ポイントカラー、位置、UV座標、法線をPointアトリビュートとして保存することができます。
それでは現在のアトリビュートを確認してみましょう。
- ビューポートの左上にあるボタンをクリックし、ドロップダウンリストからSplit Pane Top/Borromを選択します。
ビューポートが上下に分割されます。
- 下ウィンドウタブを右クリックします。
画面にGeometry Spread sheetが表示されます。
ここではジオメトリの各場所に保存されたアトリビュートが表示されています。
現在、P[x]、P[y]、P[z]というアトリビュートが表示されました。
これがどの部分に保存されたアトリビュートなのかは、下記の部分でわかります。
左からPoint/Vertex/Primitive/Detailアトリビュートを意味します。
ここでは、Pointがオンになっているため、表示されているP[x]等はPointに保存されたアトリビュートとなります。
Pはポイントの位置を表しています。P[x]、P[y]、P[z]はそれぞれ、ポイントのX、Y、Zの座標値を意味します。 - Primitiveアトリビュートを確認します。
ここでHoudiniのPrimitiveに関してちょっと紹介します。ちょっと他のソフトよりPrimitiveの意味が広いかもしれません。
Houdiniの プリミティブ とはオブジェクトよりも下のレベルでポイントよりも上のレベルのジオメトリの構成単位のことです。一口にPrimitveといっても下記全てがHoudiniではPrimitiveです。
- ポリゴンフェース
- ボリューム
- Bezier/NURBSサーフェス
- ポリゴン/Bezier/NURBSカーブ
- メタボール
- パックプリミティブ
保存したジオメトリを軽量で参照することができる特別なプリミティブ - その他
他にも、ポリゴンサーフェスとは違って数学的に形状を表現した二次プリミティブタイプがいくつかあります。これらのタイプは、軽量なジオメトリとして役に立ちます。例えば、チューブ/円錐(単一ポイント、向き、複数半径、長さで定義されたもの)など。
先ほど作成したBoxはPolygonで作成しました。つまり、ここでのPrimitivesは各ポリゴンフェースとなります。
確認すると、Primitiveにはアトリビュートがまだありません。
- ポリゴンフェース
- Primitivesにnameアトリビュートを作成します。
Nameノードを作成します。
Geometry Spreadsheetを確認すると、nameアトリビュートが追加されましたがまた値がありません。
- NameノードのプロパティでNameにglassと入力します。
Classはこのアトリビュートを追加する場所です。ここではPrimitivesに設定します。
Geometry Spreadsheetを確認すると[glass]と各プリミティブに追加されていることがわかります。
- 次に、RBD Material Fractureを作成します。
但し、TabメニューからRBD Material Fractureと入力すると3つノードがあることがわかります。
これは同じノードの異なるバージョンが表示されていることになります。
一番上のRBD Material Fractureをクリックして作成してみます。
このノードがどのバージョンなのかわからず、このチュートリアルと皆さんが作成したRBD Material Fractureのバージョンが違うかもしれません。
- Asset>Asset Managerを開きます。
ConfigurationタブのAsset Barを「Display Menu of All Definitions」に設定します。
- RBD Material Fractureを選択するとAssetバージョンが表示されます。
上記のようにアセットバージョンが表示されます。
ここでrbdmaterialfracture::3.0を選択してください。
- RBD Material Fractureをnameノードに接続します。
ビューポートを確認すると、既にデフォルトの設定を使用しジオメトリが分割されています。
- RBD Material Fractureを適用する対象をGroupオプションで設定することが可能です。
Groupの横のドロップダウンリストをクリックすると@glassと表示されますのでこれを選択します。
上記のように@name=glassと表示されます。
@はアトリビュートを意味します。つまり、nameアトリビュートでglassという値を持つものが対象となります。
- 次にMaterial TypeをGlassに設定します。
ここでは材質タイプを指定しています。Glassに設定するとビューポートでの結果が変わります。 - 分割結果を調整します。
ガラスが壊れる起点となるインパクトポイントからどのように亀裂が入るかをCrackで調整することができます。
Cracksタブを開きます。
Radial Crack Number、Number Variance共にこの値を38に増やします。
Radial Crack Numberはインパクトポイントから放射線状に広がる亀裂の数になります。 - Minimum Widthは、同心円状の亀裂間の最小幅を指定します。数値は0.04に設定します。
Impact Spreadは、同心円状の亀裂が原点(s)から広がる距離を指定します。数値は0.6としました。 - 次にChippingを設定します。Chippingを有効にするとピースの角を切り落として切れ端を作成することができます。
Enable Chippingを有効にします。
角が切り取られます。 - Chipping Ratioを1に設定します。
Chipping Ratioはすべてのピースから切れ端を作成する全体比率。1にすると各ピースから切れ端が生成されます。 - Corner Ratioを1に設定し、Corner Depthを.1に設定します。
Corner Ratioは切れ端を角にする割合です。今回は1に設定したので全ての切れ端は角に生成されます。
Corner Depthは各ピースの角からの切れはしの大きさとなります。
これでガラスを分割することができました。結果をプレビューしてみます。 - RBD Exploaded Viewを追加します。
- RBD Material Fractureに接続しDisplayフラグを設定します。
このノードは、中心から外側に向かってジオメトリを押し出して、展開ビューを作成します。ビューポートを確認すると各ピース間に距離が開けられ表示されました。
また、各ピースの角も切り取られ破片が作成されたこともわかります。
【初心者向けHoudiniトライアル007】Houdiniでガラスを粉々にしてみようへ続く