SideFX社は4月3日(金)、同社公式サイトにHoudini 21による中級者向けチュートリアルコンテンツ「Project Violet」を公開した。Epic GamesのMetaHumanとHoudiniの高度な物理演算機能を組み合わせた、人型キャラクターの制作ワークフローを提示している。
「Project Violet」では、MetaHumanから出力したキャラクターデータをHoudiniのキャラクターツールセット「KineFX」を使って最適化する手法が紹介されている。KineFXは骨格の構造をプロシージャルに処理できるため、MetaHumanの基盤を維持しつつ、Houdini内で独自のモーションのながし込みや骨格の微調整を効率的に行える。
リギングについては、Houdiniの新たなグラフ実行アーキテクチャ「APEX」を活用。従来のリギング手法と比較してリギングを高速かつ柔軟に処理できるだけでなく、テクニカルアーティストにとっては、複雑な人間型キャラクターのセットアップをノードベースで視覚的に構築することで、パフォーマンスを落とさず量産体制を確立できるようになる。
さらに本プロジェクトでは、Houdini 21に搭載された最新の筋肉システム「Otis」を用いたキャラクターエフェクト(CFX)の構築方法が紹介されている。Otisを用いることで、骨、筋肉、脂肪、皮膚の揺れを単一の物理法則の中で統合的に計算できるため、キャラクターの激しい動きに伴う筋肉の隆起や、服の下での自然な肉体の変形など、説得力のある人型キャラクター表現が可能となる。
各セクションの概要
以下、全12セクションの概要をまとめる。YouTubeで公開のコース動画は全33本あるが、本稿ではその一部を掲載する。全動画の再生リストはこちら。
セクション1:プロジェクトの導入と前提条件
プロジェクトの全体像と、MetaHumanが一貫したトポロジと骨格構造を持つため、プロシージャルなキャラクターパイプラインの基盤としていかに優れているかを解説。また、Houdini 21以上の環境やSideFX Labsのインストール、Unreal EngineでのMetaHuman Creator Core Dataの有効化、Fabからのパッケージ抽出など、一度だけ行う必要のある事前の環境構築について説明している。
セクション2:カスタムMetaHumanの作成
現実のスキャンデータから独自のMetaHumanを作成する3工程のワークフロー。Unreal Engineから標準的な頭部をテンプレートとして書き出し、HoudiniのTopoTransferを用いてスキャンメッシュをMetaHumanの規格に適合させる。その際、首の境界の固定やランドマークポイントによる誘導を行う。その後、再びUnreal Engineに戻して完全なリグを生成する。
セクション3:Autorig Builderの活用
アニメーターが操作しやすいレイヤーであるコントロールリグの重要性と、生の骨格データとの分離について解説。APEX Autorig Builderを用いて、背骨や手足などのコンポーネントを対話形式で組み立てる。さらにMetaHuman特有の構造に合わせて、ツイストジョイントの無効化やIKの調整など、実制作に向けたカスタマイズを行う。
セクション4:リグ機能の拡張
APEXリグを拡張するための3つのアプローチ(破壊的なEdit Graph、再利用可能なRig Component、非破壊的なFuse Graph)の利点と使い分けを紹介。キャラクターが着用するコートのリグを例に、名前の照合による関節の取得、__REST(初期状態)の命名規則を用いたオフセット、プリミティブコンストレインツを利用し、APEXグラフ内でカスタムロジックを配線する手法を解説している。
セクション5:ラグドールシミュレーションの構築
ラグドールをパイプラインに組み込む手法。MetaHumanがもつ多数の関節から、VEXを用いて自動的にコリジョン用の形状グループを生成する。手作業でのキーフレーム入力の代わりに、実際のモーションキャプチャデータを用いて関節のジョイントリミットを設定。その後、物理演算と入力アニメーションを組み合わせ、非破壊的なアニメーションレイヤーとしてベイクする。
セクション6:アニメーションのリターゲティング
APEXのクリーンアップ機能を用いて骨格を整理し、FBX形式のモーションデータを読み込む。足の関節を地面に安定させながら、骨格のポーズを一致させてアニメーションをながし込む。
セクション7:顔のコントロールデータの処理
フェイシャルのアニメーションをリグに追加。MetaHumanの顔のコントロールは空間的なトランスフォームではなく、抽象的なデータコンテナとして扱われる。そのため、Unreal Engineからインポートしたアニメーションデータを、VEXを用いてディクショナリ(Dictionary)構造に変換し、APEXのScene Add Animationノードで読み込める形式にして注入する。
セクション8:アニメーションカタログの構築
クリーンなフォルダ構造でライブラリを構築し、サムネール付きでポーズを保存・適用するカタログを作成。即座のスナップや段階的なブレンドでの適用方法に加え、まばたきや呼吸のループなど、再利用可能な短いモーションクリップを静的なポーズと一緒に保存・管理できる。
セクション9:皮膚のメゾ構造とミクロ構造
本物と不気味さの境界を分ける2つの皮膚変形レベルについて解説。SOPでは、VEXでポリゴンの周囲長の圧縮を測定し、ピンマスクでまぶたなどを保護しながら、筋肉の圧縮に伴う表情ジワ(メゾ構造)をプロシージャルに生成する。さらにCOPへ移行し、引っ張りの方向と量に基づいて毛穴の微細な変化(ミクロ構造)をシミュレーションし、法線マップやディスプレイスメントマップとしてエクスポートする。
セクション10:筋肉と組織のシミュレーション
標準的なスキニングでは表現できない皮膚の滑りや体積を維持した隆起を実現するため、筋肉モデル(Otto)をキャラクターの比率に合わせて転写する。リターゲティング手法を用いて筋肉をアニメーションで駆動させた後、Otisソルバを用いて、自己張力ライン(Auto tension lines)の設定や組織層の物理シミュレーションをOpenCLベースで実行し、レンダリング用ジオメトリに適用する。
セクション11:LOPSにおける動的テクスチャ処理
MetaHumanのアニメーション化されたテクスチャデータが、HoudiniのLOPSではそのまま機能しない問題を解決する。Pythonを用いてディクショナリデータを個別のFloat属性に展開し、スクリプトでマテリアルのパラメータノードを動的に書き換えることで、Karmaでレンダリングする。
セクション12:総括と最終出力
顔のアニメーションのブレンド調整や、筋肉ネットワークにおける高解像度顔モデルの置換、そしてアニメーション顔と筋肉駆動の身体の統合といった最終調整を行う。最後にレンダリングシーンをセットアップし、開始から完了までのパイプライン全体を振り返る。
■PROJECT VIOLET(SideFX公式チュートリアル)
https://www.sidefx.com/tutorials/project-violet/
■PROJECT VIOLETのYouTubeコース
https://www.youtube.com/watch?v=vCaaj9lqp18&list=PLXNFA1EysfYmlL0K4DSqwhgHCmxD5QrXX
CGWORLD関連情報
●HoudiniとUnreal Engineによるプロシージャルジェネレータのブレイクダウン公開 『ゼルダの伝説 ティアーズ オブ ザ キングダム』の空島にインスパイア
Jesse Olchawa氏が自身のArtStationブログにて「Sky Island Generator Project Breakdown」と題した記事を公開。本記事は、HoudiniとUnreal Engineを活用し、『ゼルダの伝説 ティアーズ オブ ザ キングダム』から着想を得た「Sky Island Generator(空島ジェネレータ)」の制作工程をブレイクダウンしたもの。
https://cgworld.jp/flashnews/01-202604-SkyIsland.html
●Houdiniを使ったリアルな動物の毛並み表現をCafeGroup西田健一氏が徹底解説! 「INSIDE OF DIGITAL ANIMAL」レポート
動物の毛並み表現におけるHoudiniの活用法を解説したセミナーのレポート記事。CafeGroupの西田健一氏が、ゴールデンレトリバーのモデルを例に、ガイドカーブの作成やプログラミング言語であるVEXを用いたマップの管理など、実践的なグルーミング(毛並みの調整)手法を公開している。
https://cgworld.jp/article/202510-houdini-animal.html
●Houdini 21.0 新機能紹介 No.1:筋肉・脂肪の揺れも自在。新システムOtis
北川茂臣氏によるHoudini 21.0の新機能紹介記事全3回の1回目。骨・筋肉・脂肪といった構造を単一のシミュレーションで扱える、新しい筋肉システムOtisの概要をクリエイターの視点から解説している。
https://cgworld.jp/article/202510-houdini21-1.html