HOME

Maneki Pipeline

ゲーム開発のためのプロシージャル

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
プラグインインストールディレクトリにzipが含まれる

セットアップ

UnrealEngineとHoudiniでのセットアップ手順

  1. Metahuman for Houdiniをエンジンに追加
Metahuman for HoudiniをUEに追加

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

含まれるPackage.jsonとプロジェクトディレクトリをパッケージパスが含まれるディレクトリにドロップする

2-b.※もしくは、以下のようなPackage.jsonの含まれるディレクトリを追加するパッケージを追加するpackage.jsonを作ってもパスの追加は可能

{
    "package_path" :  "(MetaHumanForHoudini.jsonが含まれるデイレクトリパス)"
}
このようなpackage.jsonを作成してもhdaパスを追加できる
  1. metahuman系のノードが追加できていればHoudiniのセットアップ完了
パスが正常に追加できていればMetahuman系のノードが利用できる
  1. UnrealEngineでもMetahuman系のプラグインを有効にする
UE上でプラグインが有効になっているのを確認

UEからの出力手順

  1. コンテンツブラウザでメタヒューマンキャラクターを作成
プラグインを追加しているとコンテンツブラウザでメタヒューマンを作れる
  1. 作成したMetaHumanCharacterアセットをダブルクリックして専用のウィンドウを開き、上部メニューの「ジョイントのみのリグを作成」と「テクスチャソースをダウンロード」を実行
    (UE上でメタヒューマンの編集もできるがデフォルトの素体でなくても出力時は同様にリグをつける)
出力するためにリグ作成とテクスチャダウンロードが必要
  1. アセンブリ項目からアセンブリタイプを「DCCエクスポート」に設定し出力フォルダを指定。
    下側にある「組み立て」を実行するとメタヒューマンのメッシュを出力できる
アセンブリで出力できる

Houdiniでの読み込み

メッシュの利用

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

MetahumanCharacterノードでメッシュを読み込みできる

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

headのみ、ジョイント無しなど読みこみ方をパラメータで切り替えられる

キャラクターリグの読み込み

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

APEXキャラクターの形式でメタヒューマンを読み込んでくれるMetahumanCharacterRig

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

AutoRigBuilder、APEX Scene Character、APEX Scene Animateを接続

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

AutoRigBuilderでEnterを押すとリギング用のGUIが表示される

AutoRiguBuilderのパラメータにはジョイントのミラーや補助骨の設定する項目がある。

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

メタヒューマンをあうとRigBuilderに接続するとダイアログが出てきてミラーなどの設定を自動で行ってくれる
Violetでは手動で設定していた、接続するだけで自動で設定してくれる項目

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

メタヒューマンのAPEXキャラクター形式のセットアップは非常によくできていてドラッグドロップするだけですぐAPEXリグが作れる

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

歯車から見た目の調整やIKFKブレンド切り替えなども行える

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

フェイシャルもメタヒューマンに最初からついている

今回はHoudiniでキャラクターとして触れるようになるところまでまとめました。

ProjectVioletチュートリアルがキャラクター関連のセットアップを網羅していて本当に素晴らしいです。
自分がゲームが専門なのもあり、メタヒューマンは比較的データ形式として身近なのもあったので、この機に敬遠していたHoudiniにおけるリギングやキャラクターシミュレーションを触ってみています。

実際、理解が深まると表現の幅が大きく広がりそうな気がしています。

fish_ball

プロシージャル魚類