HoudiniとMegascansを使用した崖の生成

# 概要

QuixelがEpicファミリーになり、Megascansが無料で使えるようになったので、HoudiniとMegascansを使った崖の生成の検証をしてみました。
レンダリングはUE4を使い、草、石、木の配置はHoudini Engine for Unrealを使っています。
<img src="https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586319756600_Valley01.jpg" width=49.5%> <img src="https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586319751129_Valley02.jpg" width=49.5%>

UE4でプレイすると崖の周りを飛び回れます。
![Valley.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332597/96743ac9-cadf-3303-de9f-c0550850e4c0.gif)
崖、地面に関してはタイリングテクスチャ1種類のみで構成されており、シンプルな作りになっています。
地面に置かれてる草と岩はEpic Games Launcherから下記Megascansライブラリをダウンロードして使用しています。

- https://www.unrealengine.com/marketplace/ja/product/megascans-iceland-vol3
- https://www.unrealengine.com/marketplace/ja/product/megascans-meadow-pack

この記事では、この崖のソースhipファイルを配布し、概要を説明していきます。

# データのダウンロード
- [データをダウンロード](https://www.dropbox.com/sh/ww3xfa4k1ypskdj/AADyiP3agJhN6TB-rVAAdDIAa?dl=1)

# hipファイルを開く前にする事

**データ内にはMegascansのテクスチャは含まれていません。**
ファイルを開く前に下図の設定で下記URLからテクスチャをダウンロードし、texturesフォルダ内にコピーして下さい。

## Megascansのダウンロード設定
![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586326627783_DownloadSettings.png)

- **崖のテクスチャ**
[Icelandic Jagged Rock](https://quixel.com/megascans/home?category=surface&category=rock&category=cliff&search=Rock_Jagged_ucumbgedy&assetId=ucumbgedy)

- **地面のテクスチャ**
[Soil And Gravel](https://quixel.com/megascans/home?category=surface&category=gravel&assetId=pcciQ0)

- **木のテクスチャ**
[Oak Bark 1x2 M](https://quixel.com/megascans/home?search=thqpeg2s&assetId=thqpeg2s)

- **葉っぱのテクスチャ**
[Avocado](https://quixel.com/megascans/home?assetId=sgzvedkf2)

# hipファイルの概要

ファイルを開くとネットワークが下図のように配置されています。
![](https://dl.dropboxusercontent.com/s/woqsuypn8yeomp0/ValleyNetwork.png?dl=0)

## 赤いノード
- TreeGeo
![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322184970_Tree.png)

- CliffGeo
![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322285784_Cliff.png)

- GroundGeo
![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322308530_Ground.png)



## 青いノード

草、石、木を配置する場所を作っており、File Cacheを使用し、bgeoで書き出しています。

| GroundPropArea                                                                                                                                 | TreeArea                                                                                                                                 |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| ![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322435549_GroundPropArea.png) | ![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322440728_TreeArea.png) |

## 黄色いノード

草、石、木を配置するためのHDAでHoudini Engine for Unreal向けに処理を組んでいます。
![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322510909_ValleyProps.png)


Houdini Engineを使用し、UE4で物を配置するにはポイントのみにし、アトリビュートで制御します。
具体的な処理内容はネットワーク内にも説明があるので、そちらをご覧下さい。
![](https://paper-attachments.dropbox.com/s_591610221D0CF8EE89C9E7045A5633F65BA5B2EFEEB38C7C32EE8C9FA0D4934D_1586322752936_ValleyPropsNetwork.png)

## FBX Export
階層とトランスフォームを保持して、FBXを書き出すHDAです。
今回、崖にはLODを持たせてるため、このノードを使って書き出します。
HDAの詳細は下記をご覧ください。

- [Houdiniから階層とトランスフォームを保持してFBXを書き出すHDAの配布](https://qiita.com/d658t/items/d9ff6682595312e92ab9)


# 最後に

このデータが皆様にとって少しでも参考になれば幸いです。
データについて質問等ある場合は、ここにコメントを書いていただくかTwitterで気軽に聞いて下さい。
https://twitter.com/d658t