MetaHuman for Houdini を触ってみた

## はじめに
Unreal Engine 5.6のアップデートに合わせて、MetaHumanをHoudini上でカスタムできるツールキット『MetaHuman for Houdini』が登場しました。
普段からHoudiniを使っている身としては、「どんなことができるのか？」と気になり、インストールして触ってみました。

この記事では、導入方法や実際になにができるのかを、ざっくりレポートしていこうと思います。

今回使用したツールのバージョンは以下のとおりです：
* Houdini 20.5
* Unreal Engine 5.6

## MetaHumanとは
MetaHuman(MetaHuman Creator)は、ゲームエンジンの「Unreal Engine」を提供するEpic Gamesが開発したツールで、リアルなデジタルヒューマンを作成することができるツールです。
フェイシャルリグなど非常に精巧に作られており、数クリックでフォトリアルなキャラクターが完成します。

https://www.metahuman.com/ja

## MetaHuman for Houdini の概要
公式情報を元にまとめると以下のようなことが可能です

>MetaHuman for Houdiniは、SideFX Houdini上でMetaHumanに対応したストランドベースのグルーミングを作成し、それをAlembic形式でUnreal Engineにインポートできます。
>このツールを使用することで、以下のようなことが可能になります：
>・プロシージャルなワークフローを使用して、標準的なMetaHumanヘッドメッシュの髪をスタイリング
>・プロシージャルなワークフローと連携した、ポニーテール、編み込み、シニヨン、団子ヘアなどの複雑なスタイルの作成
>・MetaHuman互換のグルームをUnreal Engineにエクスポートし、キャラクタに着用させる

**Houdiniのプロシージャルなワークフローを活用した多様なヘアスタイリングが可能**ということが公式の概要からうかがえます。

https://www.fab.com/ja/listings/7bbdfbb5-5eaf-4aa6-b32b-b8b048ebea25

## 導入方法
### 前提条件
- Epic Gamesのアカウントに登録している
- Epic Gamesランチャーをインストールしている
- Side FX Labs がインストールされたHoudini 20.5以降を導入している

Epic Gamesに関する部分はこちらを参照ください。

https://www.unrealengine.com/ja/download

### MetaHuman for Houdini のインストール

1.　以下のサイトにログインして、『add to My Library』をクリックしライブラリーに追加します

MetaHuman for Houdini

https://www.fab.com/listings/7bbdfbb5-5eaf-4aa6-b32b-b8b048ebea25

![addlibrary.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/6b22c99a-5b2d-48c6-928d-78e21838b528.png)

2.　Epic Games Launcherを起動し、ライブラリ(下部)の『MetaHuman for Houdini』の「エンジンにインストールする」をクリックします。インストール先のUnreal Engineスロットとして**5.6**を選択します。

3.　Windowsのファイルエクスプローラーを開き、C:\ProgramFiles\EpicGames\UE_5.6\Engine\Plugins\Marketplace\MetaHumanForHoudini_5.6\Content に移動します
4. MetaHumanForHoudini.msiを実行し、インストールをします
5. Houdiniを起動し、MH Groom が存在していればインストール完了です
![houdini.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/70e9a8f0-4208-4557-a5bd-25b23d470fc2.png)

## いろいろ触ってみる
今回は公式ドキュメントだけでなく、同時公開された [**MetaHuman Groom Starter Kit for Houdini**](https://www.fab.com/ja/listings/d5a3a803-e63d-4c40-a7b3-150acd8f394e) を利用して、ワークフローやノードの構造をチェックしてみました。

### MH Groom Workspace(OBJ)
今回のパイプラインにおけるグルーミングの管理をするためのコンテナ的役割をもつノードです。
この中(SOPレベル)には、STRANDS、SKIN、SKIN VDB、GUIDEを管理するための入出力があり、すべてのグルーミング操作をまとめて作成、管理ができるようです。
基本的にはこちらのノードをメインに展開していくフローとなっていて、
読み込むソースの設定や、必要なアトリビュートの設定もこちらで行えます。

![workspace.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/7f66e21e-6dca-49c6-8e83-b07181c7a54e.png)

![workspace2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/210b47a8-602d-4279-9670-96b78ab0d000.png)

### MH Groom Builder(SOP)
補間されたヘアを作成およびスタイリングするためのノードで、プロシージャルなヘア生成、ガイド補間、アトリビュートによるマスク制御で高精度に制御ができるノードになります。

![MH Groom Builder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/2795ad56-7304-4b3f-b7da-2c178ded090b.png)


#### MH Groom Builder(SOP)を使用した主なワークフロー
1. **MH Groom Workspace**ノードを作成
2. **Source**からSorceModeを選択し、適切なソースを読み込み
3. MH Groom Workspace内に、**MH Groom Builderノード**を追加
4. **Density Mappint Method**でマッピング方法を選択し、必要な場合DensityAttributeを使用してマスクを指定します
5. その他のパラメータを必要に応じて調整
 
詳細はこちら

https://dev.epicgames.com/documentation/en-us/metahuman/styling-tools


### MH Groom Viewport Lights(OBJ)
グルーミング調整をしやすくするための、ライトやカメラなどのビューポート設定用ノードです。
プリセットで3種類のライティングが選べ、簡単に表示を切り替えることができます。
![lightnode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/6e443481-0295-48ac-a9fa-4ec3508baeb8.png)

### MH Groom Headノード(SOP)
グルーミングワークフロー用に標準化された MetaHuman の頭部ジオメトリを提供するノード。
今回簡単に検証するために頭部メッシュが必要だったのですが、パーツ分けやパラメータで顔のテクスチャや瞳孔などを割と細かい設定までできる便利なノードが用意されていて感動しました。
![head.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3946930/557ad740-72f7-4b23-b128-afd55025b0b6.png)

### MH Groom Braidノード(SOP)
編み込みヘアスタイルを作成する際、使用するノードです。
このノードを使用すれば三つ編みなどのスタイルの作成ができます。

https://dev.epicgames.com/documentation/en-us/metahuman/braid-hairstyle

### MH Groom Bunノード(SOP)
お団子ヘアスタイルを作成する際、使用するノードです。
このノードはポイントを入力ジオメトリとして扱います。

https://dev.epicgames.com/documentation/en-us/metahuman/bun-hairstyle

### MH Groom Cornrowノード(SOP)
コーンロウヘアスタイルを作成する際、使用するノードです。
カーブを描くだけで、ベースを簡単に作ることができます。

https://dev.epicgames.com/documentation/en-us/metahuman/cornrow-hairstyle


## おわりに
今回は、Houdini上でMetaHumanをカスタマイズできる『MetaHuman for Houdini』を簡単に触ってみました。
三つ編みなどもかなりサクサクに作成できて、もっと時間をかけていろいろなヘアスタイルに挑戦してみたいと思いました。
Mayaでも同時期に編集ツールがリリースされたとのことで、今後Houdini側にもグルーミング以外の機能が追加されると面白いなと思います。

導入から各ノードの詳細まで、公式ドキュメントが非常に丁寧なので、活用するとスムーズにグルーミングを進められます。

https://dev.epicgames.com/documentation/en-us/metahuman/metahuman-for-houdini

最後までお読みいただきありがとうございます！