MetaHumanをHoudiniで利用する①:Houdiniでの読み込み
ProjectVioletがかなり網羅的にMetaHumanのHoudini上ワークフローをカバーしてくれています

ProjectVioletについて
Youtube| Project Violet
https://www.youtube.com/watch?v=vCaaj9lqp18&list=PLXNFA1EysfYmlL0K4DSqwhgHCmxD5QrXX
Houdini公式から公開されたメタヒューマンワークフロー。
メタヒューマンを使うというだけでなくAPEXリギングやラグドールアニメーション、マッスル等多岐にわたってキャラクターワークフローを紹介してくれている。
本記事ではHoudini上でキャラクターとしてメタヒューマンモデルを触れるようになるところまで追っています。
環境
Houdini21.0.729
Unreal Engine 5.7.4
また、以下を利用しています。
Fab| Metahuman for Houdini
https://www.fab.com/listings/7bbdfbb5-5eaf-4aa6-b32b-b8b048ebea25
Metahuman for Houdini
前準備としてMetahuman for HoudiniをUnrealEngineにインストールする。
また、プラグインディレクトリには専用のツール群HDAが含まれており、Unreal Engineにインストール後インストール先の以下のパスに一緒にダウンロードされるzipファイルも利用する
[Engineインストールディレクトリ]/UE_5.7/Engine/Plugins/Marketplace/MetaHumanForHoudini_5.7/Content
セットアップ
UnrealEngineとHoudiniでのセットアップ手順
- Metahuman for Houdiniをエンジンに追加

2-a.プラグインに含まれるzipファイルを展開する 中にpackage.jsonとパッケージの本体が含まれているので両方をパッケージパスが通っているディレクトリに追加
(SideFXLabsと似たような形式)

2-b.※もしくは、以下のようなPackage.jsonの含まれるディレクトリを追加するパッケージを追加するpackage.jsonを作ってもパスの追加は可能
{
"package_path" : "(MetaHumanForHoudini.jsonが含まれるデイレクトリパス)"
}
- metahuman系のノードが追加できていればHoudiniのセットアップ完了

- UnrealEngineでもMetahuman系のプラグインを有効にする

UEからの出力手順
- コンテンツブラウザでメタヒューマンキャラクターを作成

- 作成したMetaHumanCharacterアセットをダブルクリックして専用のウィンドウを開き、上部メニューの「ジョイントのみのリグを作成」と「テクスチャソースをダウンロード」を実行
(UE上でメタヒューマンの編集もできるがデフォルトの素体でなくても出力時は同様にリグをつける)

- アセンブリ項目からアセンブリタイプを「DCCエクスポート」に設定し出力フォルダを指定。
下側にある「組み立て」を実行するとメタヒューマンのメッシュを出力できる

Houdiniでの読み込み
メッシュの利用
Houdiniの機能を使って形状変更などを行う際の読み込み方法。
Houdiniに移動し、「MetahumanCharacter」ノードを作成(前述のzipに含まれているノード)。
UEからエクスポートしたファイルに「head.dna」「body.dna」というファイルが含まれているのでこれらを割り当てるとhoudini上でメッシュが利用できる。

bodyのみ、headのみ、または各種設定のONOFFでスキニングやジョイントなどの必要な情報のみを読み込める。
たとえばスキャンメッシュに形状を併せる工程などでは顔のメッシュだけで行う。
(形状変形しているチュートリアル:Violet 2.3 | Houdini Conforming The Scan Mesh)

キャラクターリグの読み込み
リグを利用したい場合は「Metahuman Character Rig」ノードで入力するとAPEXリグの形式で読み込んでくれる。
「Metahuman Folder」パラメータにメタヒューマンのディレクトリを指定。
テクスチャを表示したい場合は「Import Texture」パラメータをチェックする。

「AutoRigBuilder」、「APEX Scene Character」、「APEX Scene Animate」を作成し、Character Rigの出力を接続
(APEX Scene Characterは第2接続側)。

AutoRigBuilderでEnterを押すとドラッグアンドドロップでリギングができるGUIが表示されるのでリグを作る。

AutoRiguBuilderのパラメータにはジョイントのミラーや補助骨の設定する項目がある。
ProjectVioletではMirror設定項目、InputSkelton項目にAPEX Character Rigのミラー情報、補助骨のタグを入れている…のだが、
少なくとも自分が試したバージョンであればAutoRigBuiderに接続するとダイアログが出て勝手にメタヒューマンにおける骨の情報を設定してくれた


ドロップしたリグは更新ボタンを押したタイミングでリグのプレビューが更新される。
(リギングの詳細については次回以降ふれます)

APEX Scene Animateノードを選択した状態でビューポート上でEnterキーを押すとハンドルを操作するモードになる。
歯車マークを選択するとIKFKのブレンドやストレッチなども切り替えられる。

フェイシャルリグもさわれる(これはAutoRigBuilderを通さなくても動くのでMetaHumanから勝手に解釈してくれている模様)

今回はHoudiniでキャラクターとして触れるようになるところまでまとめました。
ProjectVioletチュートリアルがキャラクター関連のセットアップを網羅していて本当に素晴らしいです。
自分がゲームが専門なのもあり、メタヒューマンは比較的データ形式として身近なのもあったので、この機に敬遠していたHoudiniにおけるリギングやキャラクターシミュレーションを触ってみています。
実際、理解が深まると表現の幅が大きく広がりそうな気がしています。

fish_ball
プロシージャル魚類