Houdini 20.0 ノード レンダーノード

Labs Vertex Animation Textures render node

Vertex Animation Textures ROPは、布、リジッドボディ破壊、流体、パーティクルの複雑なアニメーションを再生可能なリアルタイムマテリアルで使用するメッシュとテクスチャをエクスポートします。

On this page

Vertex Animation Texturesは、ゲームエンジン内で複雑なシミュレーションを再生するための代替メソッドです。 これらのテクスチャを使用する利点は、テクスチャがGPUから読み込まれるため、複雑なアニメーションの再生に適していることです。 欠点は、その結果の精度を上げるためには、これらのテクスチャを無圧縮にする必要があるので、メモリ使用量を大量に消費してしまうことです。

要件

ジオメトリに必ず法線とUVがあること(流体エクスポートを除く)。 ジオメトリにuvとuv2が存在した場合、このROPは頂点アニメーションテクスチャデータにuv3を使用します。 そのため、それに応じてゲームエンジンシェーダを修正する必要があります。

Unrealクィックスタート

Unityクィックスタート

基本的なエクスポートの手順

  1. エクスポートするMethodとEngineを選択して、“Initialize for Engine”をクリックします。

  2. エクスポートしたいジオメトリのパスをSOP Pathに設定します。

  3. 今回初めてVertex Animation Textureをエクスポートするのであれば、シェーダのインストールのセクションを参照してください。

  4. Projectパスにファイルのエクスポート先を設定します。Unityでは、ここにUnityプロジェクトのフォルダを設定することで、自動インポートとマテリアルの更新をさせることができます。

  5. Renderをクリックします。

  6. VAT ROPをダブルクリックして中に入り、その結果のジオメトリを検査することで、エクスポートデータが正しいかどうかを確認することができます。テンプレートフラグが有効になっているジオメトリがオリジナルの入力です。

Unityでアセットをインポートしてセットアップする

  • まず最初にSideFX Vertex Animation Texturesパッケージがインストールされていることを確認してください。これはURPと互換性があります。

  • レガシーレンダラーまたはLWRPを使用しているのであれば、v2.0のVAT ROPを使用してください。

  • VATアセットを含んだフォルダに移動するか、または、VATアセットをあなたのプロジェクトにインポートしてください。

テクスチャの設定

  • sRGB(Color Texture) - OFF

  • Alpha Source - Input Texture Alpha

  • Non-Power of 2 - None

  • Generate Mip Maps - OFF

  • Filter Mode - Point(no filter)

  • Compression Format - RGBA Half。場合によっては、これを設定するために各プラットフォームをオーバーライドする必要があります。

マテリアルの設定

  • マテリアルには、自動的に正しいシェーダが割り当てられて値が設定されます。

  • テクスチャをPostion Texture入力に割り当てます。エクスポートタイプに応じてRotationまたはColorにも割り当てます。

  • マテリアル値がまだデフォルト値であれば、プロジェクトを保存して、再度Houdiniからエクスポートを試してください。

  • VAT ROPの各フィールドの隣にあるコピー/ペーストアイコンを使用してその値をコピーアンドペーストすることもできます。

  • エクスポート時に生成されたJSONファイルを参照して、値が正しいかどうかを確認することもできます。

Unrealでアセットをインポートしてセットアップする

テクスチャ

  • テクスチャをContent Browserにインポートします。

  • それらのテクスチャを選択し、どれかのテクスチャの上で右クリックして、Scripted Actions > SideFX Set VAT Texturesを選択します。

    • これは、Compression SettingsをVector Displacmentmapに設定します(精度は良くなるけどファイルが大きくなっていいのであればHDRを試すと良いでしょう)。

    • FilterをNearestに設定します。

メッシュ

  • メッシュをContent Browserにインポートします。 FBX Import Options:

    • Auto Generate Collision - OFF

    • Vertex Color Import Option - Replace

    • Remove Degenerates - OFF

    • Convert Scene - ON

    • Material Import Method - Do Not Create Material

  • メッシュをインポートした後に、そのアセットをダブルクリックするとプレビューウィンドウが開きます。

  • “Use Full Precision UVs”を有効にし、Apply Changesをクリックして、アセットを保存します。

マテリアル

  • マテリアルインスタンスで使用したいJSONファイルをContent Browserフォルダにインポートします。

  • DataTable Optionsウィンドウで、Choose DataTable Row TypeをVAT_Material_Attributesに設定します。

  • 新しくマテリアルインスタンスを作成し、ParentをM_VAT_(Export Type)に設定します。例えばM_VAT_Soft。

  • 手動でテクスチャを割り当てて、マテリアルパラメータを有効にする必要があります。

  • マテリアルインスタンスを閉じます(閉じないと、以下の更新内容が表示されません)。

  • Content Browserで、マテリアルインスタンスとJSONデータアセットを選択し、右クリックしてScripted Actions > SideFX Set VAT Mat Instanceを選択します。これは、マテリアルインスタンス上にパラメータを設定します。

シェーダのインストール

Unity

  1. このROPの上部にあるUser Interfaceドロップダウンメニューを“User Interface - Normal”に変更します。

  2. パラメータダイアログの下部に新しくセクションが表示されます。“Sample Shader Code”タブに進みます。

  3. “Unity Package Path”の隣にあるアイコンをクリックして、シェーダパッケージのパスをコピーします。

  4. UnityでPackage Mangerを開きます(Window > Package Manager)。

  5. 左上のプラスアイコンをクリックして“Add package from disk”を選択します。

  6. その上部にあるアドレスバーにそのパスをペーストします(Macでは手動で移動する必要があります)。

  7. package.jsonファイルを開いてシェーダをインストールします。

Unreal

  1. このROPの上部にあるUser Interfaceドロップダウンメニューを“User Interface - Normal”に変更します。

  2. パラメータダイアログの下部に新しくセクションが表示されます。“Sample Shader Code”タブに進みます。

  3. “Content Plugin ->”の隣にあるアイコンをクリックすると、コンテンツプラグインフォルダを含んだウィンドウが開きます。

  4. SideFX_Labsフォルダを(あなたのUnreal Project)/Pluginsにコピーします。

トラブルシューティング

  • アニメーションキャラクタには、アニメーション関連のテイクが含まれていることがあります。このテイクが原因でエクスポート処理で問題が引き起こされる可能性があります。まず最初にメッシュをAlembicファイルにエクスポートしてから、そのAlembicファイルをSoftエクスポートメソッドの入力として使用してください。

  • メッシュをエクスポートする前に必ずUVが付いていることを確認してください。UVがなかった場合、シェーダは間違ったUVチャンネルを使ってVATデータを取得してしまいます。

  • リジッドメッシュをUnrealにインポートする時は、必ず“Replace Vertex Colours”を有効にしてください。各塊の重心は頂点カラーに保存されます。

  • pngなどのファイルフォーマットにエクスポートすると、画像のカラー値が変わってしまってVATアニメーションが間違ったルックになってしまう可能性があります。まず最初にexrにエクスポートしてみて、あなたのセットアップが動作しているかどうかを確認してから、テクスチャのカラースペースとプロジェクトをチェックして、ピクセル値が変更されてないかどうかを確認してください。

パラメータ

User Interface

Simple(デフォルト)は、変更頻度の高いパラメータに制限されたUIを表示します。 Normalは、パラメータが多いもののあまり使用しないコントロール付きでフル展開したUIです。

Start/End

ここには、エクスポートする開始フレームと終了フレームを指定します。開始フレームと終了フレームにさらに1フレーム分の余裕を考慮してください。 デフォルトでは、エクスポータは、作成時に動的変数を壊します。

Render With Take

テイクを使用している場合は、ここでエクスポータオプションを変更することができます。

Method

エクスポートするプライマリメソッド:

Soft - シミュレーション全体でトポロジーが変わりません。

Rigid - パックプリミティブスタイルのリジッドボディシミュレーション。

Fluid - シミュレーション全体でトポロジーが変わります。

Sprite - カメラ方向を向いたカード。ポイントはカメラ空間で移動します。

Engine

選択したゲームエンジンに適したスケール、テクスチャタイプ、座標系を設定します。

Initialize for Engine

各エンジンにプリセットオプションを適用します。 これは、その結果がUI内のパラメータを上書きするため、できるだけ早く適用してください。

SOP Path

SOPsのジオメトリのパス。

Data For Realtime Material

Note

ゲームエンジンマテリアルにコピーする必要がある値には、その隣にコピーボタンがあります。

Frame Range

計算されるフレーム数。終了フレーム - 開始フレーム。 この値は、Renderをクリックした時にスクリプトによって設定されます。

Speed

1秒あたりのフレーム数をフレーム範囲で割ったHoudiniのレート。 あなたのエンジンでは、これはフレームレートが違っていたり可変していれば変わります。 この値は、Renderをクリックした時にスクリプトによって設定されます。

Position Max/Min

これらの値をゲームエンジン内のマテリアルにコピーして、正規化されたポジション値を元の範囲に広げます。

Pivot Max/Min

Rigidメソッドが選択されている時に表示されます。 ピボット値は頂点カラーに格納されます。 たいていのゲームエンジンは、これらの値を0から1の範囲にクランプします。 これらの値をゲームエンジン内のマテリアルにコピーして、正規化されたポジション値を元の範囲に広げます。

Scale Max/Min

Rigidメソッドが選択されている時に表示されます。 時間範囲全体にわたって最大スケールと最小スケールをリマップします。

Width/Height

Spriteメソッドが選択されていて、EngineがUnityに設定されている時に表示されます。 スプライトスケールの幅と高さをHoudiniから設定します。

Padded Ratio

Pad to Power of 2が有効な時、ここには、アクティブピクセルとパディングピクセルの比率を指定します。 マテリアルは、この比率を使用してUVルックアップの比率を計算します。 この値は、Renderをクリックした時にスクリプトによって設定されます。

Normalize data range to 0-1 space

テクスチャ圧縮を使用する場合、テクスチャマップには正規化されたデータが必要です。

Pack normals into Position Alpha

ポジションマップのアルファチャンネル内に法線データを格納して、テクスチャ空間を保存します。 このメソッドでは法線の精度が悪くなります。

Pack Pscale into Position Alpha

ポジションマップのアルファチャンネル内にpscaleデータを格納して、テクスチャ空間を保存します。

Pad to Power of 2

有効にすると、すべてのテクスチャは縦/横それぞれ一番近い2のべき乗の値のサイズでエクスポートされます。 2のべき乗のテクスチャは、GPU上でテクスチャストリームを可能にします。

Double Textures (Higher Precision)

あなたのエンジンが8ビットテクスチャに制限されている場合、2枚目のテクスチャを使用して精度を上げることができます。

Target Texture Size

これはテクスチャの最大幅です。 テクスチャの最大高さは、この最大幅を基準としてアニメーションのフレーム数と頂点の数から決まります。

Target Prim Count

これは、流体メッシュのエクスポートで使用される三角形の最大数です。 理想としては、この数には入力メッシュの三角形の数より少ない数を指定してください。

Calculate Optimal Primcount

これは、入力メッシュの現行フレームでの三角形の総数をTarget Prim Countに設定します。

Paths

enable_project

アセット名のオーバーライドを有効にします。

Project

親のプロジェクトディレクトリ。デフォルトでは、これは、スタジオ向けの$JOBです。

Component Enable

これは、ファイルパス内のアセット名をオーバーライドすることができます。 通常では、これは'opname(“..”)'、つまり、このSOP領域の親ノードです。 これによって、このレンダーオブジェクトまたは固有のアセットを必要なだけ何回もコピーアンドペーストすることができます。 サブネット内であれば、これはそのサブネット名が反映されます。

Component

デフォルトでは、これは、親オブジェクトの名前またはこのノードのサブネットの名前を参照するので、ネーム空間のテクニックを利用して、たくさんのコピーアンドペーストの実行によってアセットを複製することができます。必要に応じて、アセット名をオーバーライドして、そこに必要な文字列またはエクスプレッションを入力することができます。

enable_geo

ジオメトリのエクスポートを有効にします。

Geometry

ジオメトリの保存先のディスク上のパス。

Browse Path

リストしたディレクトリでエクスプローラウィンドウを開きます。

enable_pos

位置のエクスポートを有効にします。

Position

位置マップの保存先のディスク上のパス。

Position2

Double Texturesが有効な場合、2枚目のポジションマップの保存先のディスク上のパス。

enable_rot

回転のエクスポートを有効にします。

Rotation

回転マップの保存先のディスク上のパス。

enable_scale

スケールのエクスポートを有効にします。

Scale

エクスポートするメッシュに事前スケールを持たせて、さらに原点をデフォルトにすることができます。

enable_normal

法線マップのエクスポートを有効にします。 無効にすると、法線がアルファにパックされます。

Normal

位置マップのアルファに法線をパックしなかった時の法線マップの保存先のディスク上のパス。

Export Color Map

カラーのエクスポートを有効にします。

Color

カラーマップの保存先のディスク上のパス。

Update Mat

マテリアルインスタンスに対応したエンジン向けにそのマテリアルインスタンスのエクスポートを有効にします。 これは、それに対応したエンジン向けにマテリアルインスタンス内の値を更新します。

Material

エンジン用のコピーアンドペーストマテリアルコード。

Create Data

ソース管理できるように、リアルタイムシェーダ用データをJSONライブラリにエクスポートできるようにします。

Realtime Data

リアルタイムシェーダ用データの保存先のディスク上のパス。

Create Shader

シェーダ生成が可能なエンジン用シェーダの作成を有効にします。

Shader Path

シェーダの保存先のディスク上のパス。

Settings

Initialize Simulation OPs

エクスポートする前にクックチェーンで実行するすべてのシミュレーションコンテキストを発動します。

Equalize Edges

流体エクスポート用。 これは、最適な圧縮ができるように三角形のエッジを均等にします。

Reverse Normals

メッシュの法線を反転させます。これは、スプライトなどの片面メッシュで役に立ちます。

Convert to Image Format’s Colorspace

これは、フォーマットのデフォルトであるsRGBルックアップを除去します。

Raster Depth

これは、Initialize for Engineがクリックされた時に設定されます。 エクスポートされる画像のビット深度を調整します。

Black/White Points

エクスポートする画像の最小ピクセル値と最大ピクセル値。 これは、テクスチャをリマップしないでフィットさせます。

BC 4Channel Split

異なるデータフォーマットで別々にチャンネルをレンダリングします。

Position Coord

これは、Initialize for Engineがクリックされた時に設定されます。 座標系に合わせてコンポーネントを並べ替えます。

Color Coord

異なる座標系のコンポーネントを並べ替えます。 カラーに関しては、おそらく、これはカラー以外の目的でこのマップをハイジャックする場合に役立ちます。

Name

エクスポートされるジオメトリオブジェクトの名前。名前を指定しなかった場合は、MESH.1のようになります。

Position

Translate

エクスポートするメッシュに事前トランスフォームを持たせて、さらに原点をデフォルトにすることができます。

Rotate

エクスポートするメッシュに事前回転を持たせて、さらに原点をデフォルトにすることができます。

Pivot

エクスポートするメッシュに事前ピボットを持たせて、さらに原点をデフォルトにすることができます。

Delta (P.xyz)

エクスポータに渡す必要のある位置アトリビュート。

Normal (N.xyz)

エクスポータに渡す必要のある法線アトリビュート。

Rest (rest.xyz)

エクスポータに渡す必要のあるRestアトリビュート。

Rotation (orient.abcd)

エクスポータに渡す必要のある回転アトリビュート。

scale (scale.xyz)

エンジンに渡す必要のあるスケールアトリビュート。

pscale (pscale.x)

エクスポータに渡す必要のあるポイントスケールアトリビュート。

Pivot (pivot.xyz)

エクスポータに渡す必要のあるピボットアトリビュート。

Color (Cd.xyz)

エクスポータに渡す必要のあるカラーアトリビュート。

Alpha (Alpha.xyz)

エクスポータに渡す必要のあるアルファアトリビュート。

Delta (P)

エンジンに渡す必要のある位置アトリビュート。

Normal (N)

エンジンに渡す必要のある法線アトリビュート。

uv (uv.xy)

エンジンに渡す必要のあるUVアトリビュート。

Tiling Coord (uv2.xy)

エンジンに渡す必要のあるUV2アトリビュート。

uv3 (uv3.xy)

エンジンに渡す必要のあるUV3アトリビュート。

pscale (P.w)

エンジンに渡す必要のあるポイントスケールアトリビュート。

Pivot (Cd.xyz)

エンジンに渡す必要のあるピボットアトリビュート。

Color (Cd.rgb)

エンジンに渡す必要のあるカラーアトリビュート。

Alpha (Cd.a)

エンジンに渡す必要のあるアルファアトリビュート。

Sample Shader Code

シェーダのインストールのセクションを参照してください。 このセクションで用意されているコードのほとんどが参照用または古いセットアップ用になっています。

Note

Unreal Engine用: コピーボタンを使用すると、マテリアル関数にペースト可能なコードがコピーされます。 これは、マテリアルにペーストしても正しく動作しません。

Note

Unity用: Shader Pathオプションが有効になっていれば、プロジェクトパス内にシェーダファイルが自動的に生成されます。

Scripts

Pre-Render

レンダリング前にこのコードを実行します。

Post-Render

すべてのレンダリングの後にこのコードを実行します。

レンダーノード

  • Agent

    エージェント定義ファイルを書き出します。

  • Alembic

    シーンをAlembicアーカイブにエクスポートします。Alembicは異なる3Dソフトウェアパッケージ間でジオメトリとアニメーションをやり取りするための共通交換フォーマットです。

  • Archive Generator

    Mantra/RIBレンダラーで使えるディスクベースのアーカイブを生成します。

  • Bake Animation

    オブジェクトトランスフォームやCHOPオーバーライドのアニメーションをベイクします。

  • Bake Texture

    1つ以上のオブジェクトのレンダリングされた外観からテクスチャマップを生成します。

  • Batch

    単一バッチジョブで入力ROPをレンダリングします。

  • Channel

    チャンネルの出力オペレータが特定のCHOPからクリップファイルを生成します。

  • Composite

    コンポジットネットワークから画像をレンダリングします。

  • DSM Merge

    2つ以上のディープシャドウ/カメラマップファイルを結合します。

  • Dem Bones Skinning Converter

    トポロジーが変わらない変形メッシュシーケンスをボーンベースのアニメーションに変換します。

  • Dynamics

    DOP Networkシミュレーションの状態をファイルに保存します。

  • Fetch

    異なるネットワークにあるROPに依存リンクを作成します。

  • Filmbox FBX

    全体のシーンをFBXファイルにエクスポートします。

  • Filmbox FBX Animation

    ジオメトリベースのスケルトンのアニメーションをFBXファイルにエクスポートします。

  • Filmbox FBX Character

    ジオメトリベースのスケルトン付きでスキンキャラクタをFBXファイルにエクスポートします。

  • Frame Container

    格納されたノードの中のフレーム依存の変更がその入力に影響を与えないようにします。

  • Frame Depedency

    出力フレームを1つ以上の入力フレームに依存させることができます。

  • GLTF Character

  • Geometry

    SOP/DOP Networkからジオメトリファイルを生成します。

  • Geometry Raw

    SOPまたはDOPのネットワークからRawバイナリファイルを生成します。

  • HQueue Render

    HQueue/Houdini Queueは分散ジョブスケジューリングシステムです。

  • HQueue Simulation

    HQueue/Houdini Queueは分散ジョブスケジューリングシステムです。

  • Hair Card Texture

    ヘアーカードで使用するヘアーテクスチャをレンダリングします。

  • Karma

    HoudiniのKarmaレンダラーを使用して非USDシーンをレンダリングします。

  • Labs 3D Facebook Image

    3DシーンをFacebookにアップロード可能な2.5D画像に手軽に出力することができます。

  • Labs CSV Exporter

    ジオメトリアトリビュートをCSVファイルにエクスポートします。

  • Labs Flipbook Textures

    フリップブックテクスチャをレンダリング、合成、エクスポートします。

  • Labs Games Baker

    ハイポリとローポリのマッチングに基づいてテクスチャを生成します。

  • Labs Impostor Texture

    インポスターツールは、ゲームエンジン内で3Dオブジェクトを偽装するためのテクスチャシートを作成します。

  • Labs JSON Exporter

    ジオメトリアトリビュートをJSONファイルにエクスポートします。

  • Labs Marmoset Export

    Marmoset Export ROPは、手軽にHoudini内でmviewを生成することができます。

  • Labs Marmoset ROP

    Marmoset ROPは、手軽にHoudini内でmviewを生成することができます。

  • Labs Motion Vectors

    ボリュームまたはポイントのVelocityを、シーケンス用のテクスチャ空間モーションベクトルに変換します。

  • Labs Niagara ROP

    UnrealのNiagaraパーティクルシステムで使用可能なポイントキャッシュをエクスポートします。

  • Labs Pyro Preview ROP

    PyroレンダーをプレビューするためのMantraラッパー。

  • Labs RBD to FBX

    このツールは、RBDシミュレーションをボーンベースのFBXに高速でエクスポートすることができます。

  • Labs RBD to FBX

    このツールは、RBDシミュレーションをボーンベースのFBXに高速でエクスポートすることができます。

  • Labs Sketchfab

    ジオメトリをSketchfabにアップロードします。

  • Labs Texture Sheets

    画像シーケンスをレンダリングし、そのシーケンスを単一シート(subuv,flipbook)として組みます。

  • Labs Vertex Animation Textures

    Vertex Animation Textures ROPは、布、リジッドボディ破壊、流体、パーティクルの複雑なアニメーションを再生可能なリアルタイムマテリアルで使用するメッシュとテクスチャをエクスポートします。

  • Labs Vertex Animation Textures

    Vertex Animation Textures ROPは、布、リジッドボディ破壊、流体、パーティクルの複雑なアニメーションを再生可能なリアルタイムマテリアルで使用するメッシュとテクスチャをエクスポートします。

  • Labs Vertex Animation Textures

    Vertex Animation Textures ROPは、ソフトボディ変形、リジッドボディダイナミクス、動的な再メッシュ化、パーティクルスプライトといった複雑なリアルタイムエフェクトを表現するためにシェーダで使用されるメッシュとテクスチャをエクスポートします。

  • Labs XYZ Pointcloud Exporter

    ポイントクラウドをXYZファイルにエクスポートします。

  • MDD Point Cache

    この出力オペレータはMDDアニメーションファイルを書き出すために使用します。

  • Mantra

    Houdini標準のMantraレンダラーを使ってシーンをレンダリングし、IFDファイルを生成します。

  • Mantra Archive

    Mantraで使用可能なディスクベースのアーカイブを生成します。

  • Merge

    いくつかのレンダー依存を1つに結合します。

  • Net Barrier

    同期化が起こるまでROPネットワークをブロックします。

  • Null

    何もしません。

  • OpenGL

    ハードウェアアクセラレート3Dビューポートレンダラーを使って画像をレンダリングします。

  • Pre Post

    メインジョブの前と後にROPをレンダリングします。

  • Shell

    外部コマンドを実行します。

  • Subnetwork

    サブネットワーク出力オペレータが膨大な出力オペレータを管理する簡単な方法を提供します。

  • Switch

    複数入力の1つをレンダリングします。

  • Tractor

    TractorはPixarのRenderManと合わせて出荷されるプログラムです。

  • USD

    LOPネットワークを1つ以上のUSDファイルに書き出します。このノードは、レンダーノードまたはLOPとして利用可能です。

  • USD Render

    LOPネットワークで生成されたステージから出力画像をレンダリングします。

  • USD Stitch

    個々のフレームを表現したUSDファイルを合成によって結合します。

  • USD Stitch Clips

    個々のフレームを表現した複数のValue Clipを結合します。

  • USD Zip

    既存のUSDファイルをUSDZアーカイブファイルにまとめます。

  • Wedge

    異なる設定で同じROPを複数回にわたって再レンダリングします。

  • Wren

    この出力オペレータはWrenレンダリングプログラムで使われます。

  • glTF