Created on | Updated on

Houdini Game Dev Tools: PIVOT PAINTERを試してみる

下記にPivot Painterに関するチュートリアルが掲載されておりましたので、こちらを元に記事を作成しました。

https://www.sidefx.com/ja/tutorials/game-tools-pivot-painter/

[TUTORIAL] H16 Game Shelf Tools - Pivot Painter from Paul Ambrosiussen on Vimeo.


Pivot Painterは、モデルの頂点データと追加のUVチャンネルにモデルのピボット情報と回転情報を格納するHoudini Digital Asset(HDA)です。 その情報は、Unrealのシェーダシステム内で参照され、インタラクティブなエフェクトが作成されます。

Game Development Toolset

 

機能

方法1:オブジェクト単位 方法2:階層単位

方法1では、メッシュの非階層サブメッシュをピボット位置と回転を使用してアニメートすることができます。 このデータを使用すると、草、茂み、髪、抽象的なvfxなどの面白い見た目の動きを生成できます。 形状とピボットをツールに差し込むだけで、Unreal Engineなどのエンジンにエクスポートする準備が整います。

ビデオに表示されている例は、主に最も利用頻度の高い機能である方法1を使用しています。 多層モーションを行いたい場合は、方法2を使用します。


この機能は、例えば、枝と葉の間の関係のような親子関係、およびメッシュ内のモデルピボットおよび回転情報を格納するために使用されます。 このモードにはピボット情報を処理する2つの方法があることに注意することが重要です。1.Generate Pivots(ピボット生成):このオプションを選択すると、ツールはすべての単一サブオブジェクトのピボットの最適位置を調べます。 これにより、ユーザーは非プロシージャルアセットをインポートし、それらをピボット・ペインタと互換性を持たせることができます。 2.Custom Pivots(カスタムピボット):ユーザーがツールで処理するオブジェクトを生成し、元のピボットポイントにアクセスできる場合、このオプションを使用する必要があります。 これにより、ユーザーは頂点シェーダで使用されるピボット位置を細かく制御できます。

 

前提条件


このツールは多くのアプリケーションの前提条件よりは軽いものとなります。

オブジェクト単位および階層単位:

ピボット方向の@N(ノーマル)ポイントアトリビュート。 (これは前向きです)
ジオメトリとピボットの@nameポインアトリビュートの関係。 (つまり、ツールはどの頂点がどのピボットに属するかを認識済みです)

階層単位のみ:

葉と枝のプリミティブグループ。 (幹はは枝グループに含まれます)

※注意:オブジェクト単位の機能のみがピボット入力を接続する必要があります。 階層単位は、処理中にピボットを生成する可能性を提供します。

 

リアルタイムアプリケーション

Unrealでは、Pivot Painterツールによって保存されたデータを読み出すことで、モーションを動かすマテリアルを作成することができます。Epic Gamesが提供するマテリアル機能を使用するか、必要に応じて変更するだけです。オブジェクト単位と階層単位に対して異なるマテリアル機能があります。  例については、Epic Gamesが提供するコンテンツの例を参照してください。

ドキュメント

利点

このようにモーションを作成することには利点があります。この手法を使用して処理されたモデルは、標準的なStatic Meshよりメモリの点でわずか18%大きいだけです。アニメーションはスケルトンアニメーションよりもはるかに安価です。なぜなら、アニメーションは、その場で計算され、保存する必要がありません。頂点シェーダの命令カウントは、一般に、モデル上の頂点の数が画面上のピクセル数と比較されるため、ピクセル命令カウントよりもパフォーマンス上の懸念のほうが少ないです。

  


試してみよう!

GameDevelopmentToolset-Developmentを回答するとhipファイル内にサンプルファイル(pivot_painter_demoscene.hip)が保存されています。

シーンを開いたら、pivot painterノードを作成します。

SimpleBox Exampleを下記のようにPivot Painterに接続します。

Outputを作成し、pivot Painterのと接続、OutputにDisplayフラグをつけます。

1

Outputノードを選択し、File>Export>Filmbox FBXでFBXを出力します。

UnrealEngineに移動し、 Import Assetを選択します。

先ほど出力したFBXを選択し、インポートします。

Inportしたアセット(Box)をシーンに配置し、マテリアルを割り当てると、シーンでBoxの回転アニメーションが再生されます。

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ