はじめに
Houdiniを利用して、板ポリゴンに丸石を敷き詰める方法を解説します。
正方形の板ポリを利用した場合は以下のような正方形の丸石の床になります。
![img_5d46ba5e3c10b - STYLY 正方形の板ポリゴンから作成した丸石の床](https://styly.cc/wp-content/uploads/2019/08/img_5d46ba5e3c10b.png)
正方形の板ポリゴンから作成した丸石の床
星形の板ポリを利用した場合は以下のような星形の丸石の床になります。
![img_5d46d7abd223d - STYLY 星形の板ポリゴンから作成した丸石の床](https://styly.cc/wp-content/uploads/2019/08/img_5d46d7abd223d.png)
星形の板ポリゴンから作成した丸石の床
この記事で得られるノウハウ
・Houdiniを利用して床に丸石を敷き詰める方法
・Houdiniでの簡単なUV展開
前回の記事
丸石の床の作成手順
板ポリゴンの用意(Gridノード)
まずは丸石を敷き詰めたい板ポリゴン床を用意します。
今回はGridノード(正方形の板ポリゴン)を利用します。
![img_5d46bd0b52773 - STYLY Gridノードを作成](https://styly.cc/wp-content/uploads/2019/08/img_5d46bd0b52773.png)
Gridノードを作成
![img_5d46bfac958d7 - STYLY Gridノードで作成した正方形メッシュ](https://styly.cc/wp-content/uploads/2019/08/img_5d46bfac958d7.png)
Gridノードで作成した正方形メッシュ
板を分割する(VoronoiFracture)
次に、ボロノイ分割と呼ばれるアルゴリズムを利用してこの板を分割します。
ボロノイ分割についての説明は割愛しますが、以下のように板を分割することをボロノイ分割と呼びます。
![img_5d46c063cf9c1 - STYLY ボロノイ分割した板](https://styly.cc/wp-content/uploads/2019/08/img_5d46c063cf9c1.png)
ボロノイ分割した板
分割の中心点を用意(Scatterノード)
板を分割するためには、分割の中心となる点群が必要となります。
Scatterノードを利用して点群を作成します。
![img_5d46c13430bd7 - STYLY ScatterをGridに接続](https://styly.cc/wp-content/uploads/2019/08/img_5d46c13430bd7.png)
ScatterをGridに接続
![img_5d46c178ee273 - STYLY Scatterノードで作成した点群](https://styly.cc/wp-content/uploads/2019/08/img_5d46c178ee273.png)
Scatterノードで作成した点群
点群を利用して板をボロノイ分割する(Voronoi Fractureノード)
次にVoronoi Fractureノードを利用して板を分割します。
Voronoi Fractureノードの左側の入力には板ポリゴン(Gridノード)を、右側の入力には点群(Scatterノード)を接続します。
![img_5d46c20f5fe11 - STYLY Voronoi Fractureノードの作成](https://styly.cc/wp-content/uploads/2019/08/img_5d46c20f5fe11.png)
Voronoi Fractureノードの作成
![img_5d46c063cf9c1 - STYLY ボロノイ分割した板](https://styly.cc/wp-content/uploads/2019/08/img_5d46c063cf9c1.png)
ボロノイ分割した板
板が分割されましたが、まだ丸石とは言えない状態です。
補足 : ワイヤー表示
Sceneビューにマウスカーソルを乗せた状態でShift + Wを押すとモデルをワイヤー表示することができます。]
もう一度Shift + W を押すと元に戻ります。
石を丸くする(Resampleノード)
![img_5d46ce009fb04 - STYLY これから作成する丸石](https://styly.cc/wp-content/uploads/2019/08/img_5d46ce009fb04.png)
これから作成する丸石
Voronoi FractureにResampleノードを接続して、分割後のパーツをサンプリングしなおすという加工を加えます。
![img_5d46c41c27628 - STYLY Resampleノードを接続](https://styly.cc/wp-content/uploads/2019/08/img_5d46c41c27628.png)
Resampleノードを接続
![img_5d46c4dfcfb71 - STYLY Resampleの結果](https://styly.cc/wp-content/uploads/2019/08/img_5d46c4dfcfb71.png)
Resampleの結果
ここで、さらにResampleを適用して石を丸くします。
![img_5d46cdd29544e - STYLY Resampleノードを接続](https://styly.cc/wp-content/uploads/2019/08/img_5d46cdd29544e.png)
Resampleノードを接続
![img_5d46ce009fb04 - STYLY Resampleの適用結果](https://styly.cc/wp-content/uploads/2019/08/img_5d46ce009fb04.png)
Resampleの適用結果
石に厚みをつける(PolyExtrudeノード)
ResampleノードにPolyExtrudeノードを接続し、石に厚みを付けます。
![img_5d46cf5392668 - STYLY PolyExtrudeノードを接続](https://styly.cc/wp-content/uploads/2019/08/img_5d46cf5392668.png)
PolyExtrudeノードを接続
![img_5d46cee9d78a5 - STYLY PolyExtrudeの適用結果](https://styly.cc/wp-content/uploads/2019/08/img_5d46cee9d78a5.png)
PolyExtrudeの適用結果
UV展開(UV Textureノード)
最後に、UV展開します。
![img_5d46cfe6bb5d7 - STYLY UV Textureノードを接続](https://styly.cc/wp-content/uploads/2019/08/img_5d46cfe6bb5d7.png)
UV Textureノードを接続
UV Quick Shadeノードを接続してUVを表示すると以下のようになっています。
![img_5d46d0383fdd2 - STYLY UV Quick ShadeでUVを確認](https://styly.cc/wp-content/uploads/2019/08/img_5d46d0383fdd2.png)
UV Quick ShadeでUVを確認
以上で丸石の床は完成となります。
OBJファイル出力(ROP Geometryノード)
ROP Geometryノードを利用することでOBJファイルを出力することができます。
Output Fileの部分にobjファイルパスを入力し、Save to Disk ボタンを押すことでobjファイルがエクスポートされます。
![img_5d46d1472cad9 - STYLY ROP Geometryノードを利用してOBJファイルをエクスポート](https://styly.cc/wp-content/uploads/2019/08/img_5d46d1472cad9.png)
ROP Geometryノードを利用してOBJファイルをエクスポート
出力したOBJファイルをUnityのシーンに持ってくると、以下のような見た目になります。
![img_5d46d2459175e - STYLY Unity上での丸石の表示](https://styly.cc/wp-content/uploads/2019/08/img_5d46d2459175e.png)
Unity上での丸石の表示
マテリアルを整理する
OBJファイルをUnity上で表示するとマテリアルが二つになってしまっています。
Houdini上でGroupを設定することでこれを回避することができます。
![img_5d46d2edbd796 - STYLY マテリアルが複数存在している](https://styly.cc/wp-content/uploads/2019/08/img_5d46d2edbd796.png)
マテリアルが複数存在している
先ほど作成したVoronoi Fractureノードを見てみるとGroupを作成するような設定になっているため、これを解除します。
Interior GroupとExterior Groupのチェックを外しましょう。
![img_5d46d43276d74 - STYLY Voronoi Fractureノードの設定を変更](https://styly.cc/wp-content/uploads/2019/08/img_5d46d43276d74.png)
Voronoi Fractureノードの設定を変更
この状態でOBJをエクスポートするとマテリアルがdefaultのみになります。
![img_5d46d4b6234ee - STYLY マテリアルが1つになっていることが確認できる](https://styly.cc/wp-content/uploads/2019/08/img_5d46d4b6234ee.png)
マテリアルが1つになっていることが確認できる
UnityからSTYLYにプレファブをアップロードする方法
作成したプレファブをSTYLYにアップロードする方法は、以下のマニュアルを参照してください。
おまけ: 円形の床を作ってみる
これまではGridノードを使って正方形の丸石の床を作りましたが、GridノードをCircleノードに置き換えると円形の丸石の床になります。
![img_5d46d5e58cd95 - STYLY 円形の丸石の床](https://styly.cc/wp-content/uploads/2019/08/img_5d46d5e58cd95.png)
円形の丸石の床
CircleノードはGridノードと法線が反対方向を向いているため、ここではReverseノードを使って法線を反転させています。
![img_5d652b47ecc9c - STYLY CircleノードにReverseノードを接続](https://styly.cc/wp-content/uploads/2019/08/img_5d652b47ecc9c.png)
CircleノードにReverseノードを接続
おまけ2: 星形の床を作ってみる
以下のような星形の床の作り方を紹介します。
![img_5d46d93c3e3d7 - STYLY 星形の床](https://styly.cc/wp-content/uploads/2019/08/img_5d46d93c3e3d7.png)
星形の床
星形の作り方
Circleノードを使って正10角形を作成し、偶数番目の頂点を小さくすることで星形をつくることができます。
![img_5d46d8bc11531 - STYLY 星形の床を作るノード全体](https://styly.cc/wp-content/uploads/2019/08/img_5d46d8bc11531.png)
星形の床を作るノード全体
Circleノードの設定(正10角形を作成)
CircleノードのDivision に 10を設定することで、正10角形になります。
![img_5d46d91e64871 - STYLY Circleノードの設定を変更](https://styly.cc/wp-content/uploads/2019/08/img_5d46d91e64871.png)
Circleノードの設定を変更
![img_5d46dc0e240c7 - STYLY 結果](https://styly.cc/wp-content/uploads/2019/08/img_5d46dc0e240c7.png)
結果
Group by Rangeノードの設定(偶数番目の点を選択する)
偶数番目のポイントにグループgroup1を割り当てます。
![img_5d46d9be22e29 - STYLY CircleノードにGroup by Rangeノードを接続](https://styly.cc/wp-content/uploads/2019/08/img_5d46d9be22e29.png)
CircleノードにGroup by Rangeノードを接続
![img_5d46dc24b19bd - STYLY 結果](https://styly.cc/wp-content/uploads/2019/08/img_5d46dc24b19bd.png)
結果
Transformノードの設定(選択した偶数番目の点を小さくする)
Transformノードを利用して偶数番目の点に0.5倍のスケーリングをかけます。
![img_5d46da291e80c - STYLY Transformノードを利用して拡大・縮小を行う](https://styly.cc/wp-content/uploads/2019/08/img_5d46da291e80c.png)
Transformノードを利用して拡大・縮小を行う
![img_5d46dc40d23e5 - STYLY 結果](https://styly.cc/wp-content/uploads/2019/08/img_5d46dc40d23e5.png)
結果
星形の床の完成
UV TextureノードのDisplayフラグをONにすることで、以下のような星形の丸石の床が表示されます。
![img_5d46dd3940026 - STYLY DisplayフラグをONにすると結果を表示できる](http://styly.cc/wp-content/uploads/2019/08/img_5d46dd3940026.png)
DisplayフラグをONにすると結果を表示できる
![img_5d46d93c3e3d7 - STYLY 結果](http://styly.cc/wp-content/uploads/2019/08/img_5d46d93c3e3d7.png)
結果