Houdini18.5 新規LOPノード


2020年10月20日、SideFX社よりHoudini18.5がリリースされました。

こちらの記事では、Houdini18.5から「新たに追加されたLOPノード」を画像と合わせてご紹介します。
また、その他にもHoudini18.5で「改良されたノード」とHoudini18.5から「非推奨になったノード」も併せて記載しています。

下画像は、Houdini18.5で新たに追加されたLOPノードの一覧です。新たに追加されたLOPノードは13個あります(※Houdini18.5.351 時点)。


ここからは、新たに追加されたLOPノードをご紹介します。

Basis Curves

基本カーブシェイププリミティブを作成または編集します。

レンダリングは、widthアトリビュート*を使用して、曲線をチューブやリボンのように表現することができます。
*曲線の頂点の位置を定義するpointアトリビュートと同じ長さである必要があります。

このノードは、Stage内で直接USDプリミティブを編集できるため、Houdini18.0では、できなかったStage内でマテリアルを使用せずに色を直接変更するといったことを行うことができます。また、不透明度の変更等も行うことができ、USDプリミティブの編集の幅が大きく広がるノードです。

Blend Constraint

Blend Constraint LOPは、パラメータとして指定されたウェイトのリストを使用して、最初の入力からの指定されたソースプリミティブ上の変換(トランスフォーム)と、2番目の入力からのターゲットプリミティブ上の変換をブレンドします。

これを用いることにいよって、2種類のトランスフォームの結果からその中間の移動量を参照してTeransfoemをブレンドして移動を行うことができます。

例として、原点(0.0.0)にあったオブジェクトを(10.0.0)、(0.0.10)に移動させた際に、この2つの移動量を用いて、移動後の2点をつなぐラインの延長上にオブジェクトを移動させるといったことが可能となります。

さらに、この移動の際には、各軸の移動を無効化することも可能なので、移動後の1点を参照して、その位置に合わせた移動なども可能となります。

Distant Light

このノードは、USDプリムを直接作成または編集するノードのクラスに属します。

これらのノードは、CreateモードまたはEditモードで動作します。これは、Create primitives チェックボックスまたは Create/Edit ポップアップメニューによって制御されます。
Createモードでは、ノードは新しいプリムを作成します。Editモードでは、ノードは既存のプリムのアトリビュートを変更します。

このノードは、Houdini18.0ではLight LOP内で設定可能でしたが、Houdini18.5からは独立したノードとなりました。

Houdini18.5から、Distant Light LOPとして独立しましたが、従来のLight LOPでも使用することができます。Light LOPの場合、「Type」を「Distant」に変更することで同様のライトを使用することができます。

どちらを使用した場合も設定等は同じですので、Distant Lightを独立させて別のライトに変更させたくない場合はこちらを使用することをお勧めします。

Explore Variants

選択されたプリミティブのすべてのバリアントを表示します。

このLOPでは、選択されたプリミティブにバリアントを表示、複製、設定することができます。

このノードを用いることで、Variantの確認が非常に容易になります。

Houdini18.0では、Set Variant LOPなどでプルダウンからVariantを選択して、一つずつ確認していましたが、このノードでは一括ですべてのVariantを表示させることが可能です。そのため、Variantが多くなったデータなどでは、有効に使用することが可能となります。

また、Scene GraphでもVariantが個別に表示されるため、どのような要素で構成されているのかを容易に確認することも可能です。

Geometry Sequence

一連のジオメトリファイルをLOPにインポートします。

サブレイヤーを使用して、ファイルパスの時間依存性のエクスプレッション($F)を使用して、ジオメトリファイルシーケンスをUSDにインポートすると、不正確な結果が得られます。このLOPノードは、このプロセスを簡略化します。

このノードは、ファイルをSOPにロードした後、アニメーション化されたジオメトリをUSDにインポートすることによって、フレームごとのジオメトリファイルをロードする際に適切なUSDアニメーションに変換します。このノードのほとんどのパラメーターは、SOP Import LOPから取得され、SOPジオメトリをUSDプリムに変換する方法を制御します。

Graft Branches

2番目の入力からプリム/ブランチを取り、1番目の入力のシーングラフツリーのブランチに貼り付けます。

このノードは、GraftStagesノードと非常に似ていますが、ステージのコンテンツ全体を別の入力からアタッチする代わりに、個々のプリミティブ(および任意のdescendants)をアタッチします。

HDA Dynamic Payload

ジオメトリは、ディスク上のデジタルアセットファイルからペイロードとしてインポートされます。

インポートされたアセットにパラメータがある場合、このノードでパラメータを生成することができます。生成されたパラメータの値を変更すると、インポートされたジオメトリが更新されます。

アセットをクックする前に、アセットに設定するパラメーター値を指定することが可能です。つまり、単一のアセットから多くのペイロードバリエーションを作成することが可能であり、非常に強力です。また、このノードのパラメーター設定を更新すると、アセットが自動的に更新および再クックされます。

注意点として、このノードは、Houdini Engineをバックグラウンドで実行して、アセットをロードしてクックします。つまり、このノードを使用している際にはHoudini Engineのライセンスを使用します。

■Houdini Engine ライセンスの使用について

Houdiniでインタラクティブに作業している場合は、既にHoudini Core/FXライセンスをチェックアウトしている状態ですので、バックグラウンドのEngineプロセスはEngineライセンスを追加で消費することはありません。これは、複数のHoudiniインスタンスを同じマシンで起動していることと同様の動作となります。

ドキュメント内の補足は、主にファームマシンでUSDファイルをレンダリングする場合やライセンスをチェックアウトしていない状態で他のアプリケーションでそれ(HDA)を開く場合に適用されます。(Houdiniがライセンスが入っていないEngine単体で使用する場合)

結果の.usdファイルを保存する際、.hdaファイルを参照するPayloadが付くプリミティブが存在します。

USDがPayloadを読み込むとき、HDAをcookするためにEngineプロセスをバックグラウンドで実行しますので、この時にライセンスを使用します。


[Keep Houdini Engine Open]パラメータは、Engineプロセスの存続期間を制御することができます。

例えば、ファームマシン上でレンダリングしている間にそのプロセスをすぐに終了させることで、Engineライセンスを必要以上に掴んだままになりません。

要するに、HDA Dynamic Payloadノードは、一度はEngineライセンスを使用します。

Hermite Curves

ハーミットの曲線形状のプリミティブを作成または編集します。

1つのハーミットのカーブプリミティブには、多数の個別の曲線を含めることができます。このタイプの曲線は、頂点ごとの接線をサポートしているため、アニメーションデータの表現に最もよく使用されます。

こちらのノードは「Basis Curves LOP」と同様の使い方をすることが可能となります。入力されたプリミティブ、新しく作成されたプリミティブに対して、編集を加えることが可能となります。

Insertion Point

ノードを挿入できるノードグラフのポイントを表します。

このノードはシーン上でノードを作成する際に役に立ちます。通常、シーン上でノードを作成した際にはディスプレイフラグの立っているノードの直下に新しくノードが作成されます。しかし、このノードを使用することによってノードが作成される位置を変更することが可能です。

任意のノードを追加したい位置に「Insertion Point LOP」を挿入することで使用できます。

Houdini18.5では、このノードを追加した際にシーンビュー右上のビュー選択のプルダウンの左側に新しくプルダウンが作成されます。そのプルダウンで作成したInsertion Point LOPノードを指定することで、ノードを追加する位置を指定されたInsertion Point LOPの上部に変更できます。

「Insertion Point LOP」を作成すると、新しくシーンビュー上部にプルダウンが作成されます。

ノードの作成以外の作業を行っていない(新しく作成されたプルダウンの変更をしていない)状態でシーンビュー上でTabキーを押して、ノードを作成します。

ディスプレイフラグが付いているノードの直下に新たにノードが作成され挿入されます。今回は、一番下のノードにディスプレイフラグが立っているので、その直下にノードが作成されます。

次に、新しく表示されるプルダウンより、作成した「Insertion Point LOP」を指定します。ここで指定されたノードは、ネットワークビュー上で紫色の丸で囲われたような表示に変わります。

プルダウンにて、作成した「Insertion Point LOP」を指定された状態で先ほどと同様にシーンビュー上でノードを作成します。

そうすると先ほどとは異なり、指定された「Insertion Point LOP」の直上にノードが作成されます。このように、シーンビュー上でノードを作成する際にノードを作成する位置を指定することが可能です。

Mask from Bounds

範囲内のプリミティブにマスクフロートprimvarを追加します。

このLOPは、ユーザーが定義した範囲内のプリミティブにprimvarを生成します。ソフトフォールオフを指定することが出来ます。

選択したプリミティブが境界形状内にあるかどうか、また、どれだけあるかに基づいてプリムバーを設定します。

このLOPは、ユーザーが定義した範囲内のプリミティブにprimvarを生成します。ソフトフォールオフを指定することが出来ます。また、このノードによって作成されたprimvarを「マスク」として使用して、他の操作用のプリミティブを選択したり、バウンディングボリュームの「内部」にプリミティブのコレクションを作成することが可能となります。

Mesh

メッシュ形状のプリミティブを作成または編集します。

1つのメッシュプリミティブには、連結された面または連結されていない面のセットを複数含めることができます。

このノードも「Basis Curves LOP」、「Hermite Curves LOP」と基本的に同様のものとなります。入力されたプリミティブ、新しく作成されたプリミティブに対して、編集を加えることが可能です。

この2つの違いは作成される対象のプリミティブです。

「Basis Curves LOP」では、基本なカーブシェイププリミティブを作成します。「Hermite Curves LOP」では、ハーミットの曲線形状のプリミティブを作成します。そして、このノードではメッシュ形状のプリミティブを作成することが可能です。

Points

ポイント形状のプリミティブを作成または編集します。

ポイントプリミティブは、パーティクルシステムのような不連続なポイントの集合で構成されます。ポイントは、スフィア、ディスク、またはその他のシンプルな形状としてレンダリングすることができます。

このノードも「Basis Curves LOP」、「Hermite Curves LOP」、「Mesh LOP」と同様のものとなります。入力されたプリミティブ、新しく作成されたプリミティブに対して、編集を加えることが可能です。

「Mesh LOP」で紹介したように、これらの違いは作成されるプリミティブです。またパラメータは「Basis Curves LOP」「Hermite Curves LOP」「Mesh LOP」と基本的に共通しており、同様の編集を行うことが可能です。

編集する対象に合わせてノードを使用することによって、USDプリミティブを直接変更することが可能です。

Split Primitive

ジオメトリのサブセットまたはprimvarの値に基づいて、プリミティブを子のプリミティブに分割します。

このLOPは、与えられたfamilyNameを持つジオメトリサブセット、またはprimvarの値によって、プリミティブを新しい子プリミティブに分割します。

Houdini18.0ではLOP内にSprit SOPのようなノードはありませんでした。従来は「Prune LOP」等を使用して、プリミティブを非アクティブにして分割する方法を取っていました。今回Houdini18.5 にてこのノードが追加されたことにより、プリミティブの分割が非常に容易になります。

下画像は、Houdini18.5で改良されたノードの一覧です(※Houdini18.5.350時点)。 Houdini18.5では、26個のノードが改良されました。

ここからは、Houdini18.5で改良されたノードのパラメータなどをご紹介します。

Edit

ビューアのプリムをインタラクティブに変換します。物理的な衝突を使用して、小道具をリアルに配置することができます。

下画像は、Houdini18.0と18.5のEdit LOPのパラメータを比較した結果です。
18.5では、パラメータが大幅に改良されたことが確認できます。

Sublayer

USDファイルや他のLOPノードチェーンからサブレイヤーとしてインポートしたり、既存のサブレイヤーを削除/置換/並べ替えします。

下画像は、Houdini18.0と18.5のSublayer LOPのパラメータを比較した結果です。
新たに[Copy Layer Metadata to Stage Root Layer]パラメータが追加されました。

SOP Import

SOPネットワークのジオメトリをUSDシーングラフにインポートします。

下画像は、Houdini18.0と18.5のSOP Import LOPのパラメータを比較した結果です。
新たに[Reference Type]パラメータが追加されました。

Stage Manager

一度に多くのファイルを参照して、それらをシーングラフツリー内に配置するための便利インターフェースを備えています。

下画像は、Houdini18.0と18.5のStage Manager LOPのパラメータを比較した結果です。
新たに[Flatten node input layers]パラメータが追加されました。

Light

USD Light Primを作成/編集します。このノードは、Karma固有のいくつかの便利なアトリビュートも追加されています。

下画像は、Houdini18.0と18.5のLight LOPのパラメータを比較した結果です。
新たに[Initialize Parameters for Edit]、[Light Shader]、[light:distance_angle]、[Render Light Geometry]、[Light Geometry Casts Shadow]、[LPE Tag]パラメータが追加されました。

Edit Properties

アトリビュート値とリレーションシップ値を直接編集するためのSpareパラメータインターフェースを構築することができます。

下画像は、Houdini18.0と18.5のEdit Propertiesのパラメータを比較した結果です。
[Initialize Parameters for Edit]、[Compute Extent Attribute]パラメータが追加されました。

Camera

シーンにUSDカメラを追加します。

下画像は、Houdini18.0と18.5のCamera LOPのパラメータを比較した結果です。
新たに、[Initialize Parameters For Edit]パラメータと[Karma(Beta)]タブが追加されました。

Collection

選択したPrimsを使用して、コレクションを作成/編集します。

下画像は、Houdini18.0と18.5のCollection LOPのパラメータを比較した結果です。
新たに、[Enable]チェックボックスと[Add to Last Modified Primitives]、[Icon]パラメータが追加されました。

Merge

入力ステージのレイヤーをレイヤースタックに1本化します。

下画像は、Houdini18.0と18.5のMerge LOPのパラメータを比較した結果です。
新たに、[Strip Layers Above Layer Breaks]パラメータが追加されました。

Simulation Proxy

物理シミュレーションに適した低解像度ポリゴン衝突ジオメトリを生成し、オリジナルモデルに対してプロキシリレーションシップを作成します。

下画像は、Houdini18.0と18.5のSimulation Proxy LOPのパラメータを比較した結果です。
新たに、[Traversal]パラメータが追加されました。

SOP Modify

入力ステージのレイヤーをレイヤースタックに1本化します。

下画像は、Houdini18.0と18.5のSOP Modify LOPのパラメータを比較した結果です。
デフォルトで、[Copy contents into Editable Layer]、[Define Only Leaf Primitives]パラメータがオンになりました。
また、新たに、[Set Default Primitive]パラメータが追加されました。

Load Layer from Editing

このノードは、Sublayer LOPと同様に、ディスクからレイヤーを取り込んで、そのレイヤーを現行シーングラフツリー上にオーバーレイします。

パラメータの変更はありませんが、Houdini18.0から18.5でノードの名前が変更されました。
Load Layer LOPは、Houdini18.5で「Load Layer from Editing LOP」に改名されました。

Modify Point Instances

個々のポイントインスタンスに対して、ポイントトランスフォームとポイントプロパティ値を変更します。

下画像は、Houdini18.0と18.5のModify Point Instances LOPのパラメータを比較した結果です。
新たに、Pivot Transform内に[Move Centroid to Origin]、[Move Pivot to Centroid]ボタンが追加され、Prune内に[Prune]、[Import Frame]パラメータが追加されました。

Dome Light

USD Dome Light Primを作成/編集します。ドームライトは内側に光を放射して、シーンを囲んだ空/環境からの入射光をシミュレートします。

下画像は、Houdini18.0と18.5のDome Light LOPのパラメータを比較した結果です。
新たに、[Initialize Parameters for Edit]、[Light Shader]、[light:distance_angle]、[Render Light Geometry]、[Light Geometry Casts Shadow]パラメータが追加されました。

LOP Network

LOPノードは、キャラクタ、プロップ、ライティング、レンダリングを記述したUSDを生成します。

下画像は、Houdini18.0と18.5のLOP Network LOPのパラメータを比較した結果です。
新たに、[Insertion Point Descriptor]、[Render Gallery Source]パラメータが追加されました。

Material Library

Material VOPノードをUSDマテリアルPrimsとして取り込みます。

下画像は、Houdini18.0と18.5のMaterial Library LOPのパラメータを比較した結果です。
Houdini18.5からデフォルトで[Include Only VOPs with Material Flag Set]パラメータはオンになり、[Material VOP]パラメータには、「*」が入力され、[Assign to Geometry]パラメータはデフォルトでオフになりました。

Material Variation

Prim/インスタンス単位でマテリアルパラメータをオーバーライドするためのアトリビュート/Primvarsを作成します。

下画像は、Houdini18.0と18.5のMaterial Variation LOPのパラメータを比較した結果です。
新たに、[Interpolation]パラメータが追加されました。

Additional Render Vars

複数のRender Varsを作成します。

下画像は、Houdini18.0と18.5の LOPのパラメータを比較した結果です。
新たに、[Cyptomatte]、[Overlap Limit]、[Manifest File]パラメータが追加されました。

Render Geometry Settings

シーングラフ内のジオメトリにレンダラー固有のジオメトリ設定を適用します。

下画像は、Houdini18.0と18.5のRender Geometry Settings LOPのパラメータを比較した結果です。
新たに、[Initialize Parameters for Edit]、[Light Source Diffuse Multiplier]、[Light Source Specular Multiplier]、[LPE Tag]、[Direct Refraction Subset]、[Variance AA Threshold]、[Variance AA Min Sample]、[Variance AA Max Sample]パラメータが追加されました。

Create LOD

PolyReduce SOPを使用して、高解像度モデルから複数のLODを自動的に生成し、それらをUSDバリアントとして保存します。

下画像は、Houdini18.0と18.5のCreate LOD LOPのパラメータを比較した結果です。
新たに、[Custom Variant Names]パラメータが追加されました。

Configure Layer

レイヤー上のメタデータを編集します。

下画像は、Houdini18.0と18.5のConfigure Layer LOPのパラメータを比較した結果です。
新たに、[Also Set Metadata on Stage Root Layer]パラメータが追加されました。

Configure Primitives

レイヤー上のメタデータを編集します。

下画像は、Houdini18.0と18.5のConfigure Primitives LOPのパラメータを比較した結果です。
新たに、[Type]、[Icon]パラメータが追加されました。

Output

サブネットワークの出力を表示します。複数の出力を使ってノードアセットを設計することができます。

下画像は、Houdini18.0と18.5のOutput LOPのパラメータを比較した結果です。
新たに、[Subnet Modified Primitives]パラメータが追加されました。

Switch

パラメータ選択またはエクスプレッションに基づいて複数入力のどれかを通過させます。

下画像は、Houdini18.0と18.5のSwitch LOPのパラメータを比較した結果です。
新たに、[Choose Input]、[Bad Input Response]パラメータが追加されました。

Set Extents

選択したPrimsのバウンディングボックスメタデータを設定します。

下画像は、Houdini18.0と18.5のSet Extents LOPのパラメータを比較した結果です。
新たに、[Frame]パラメータが追加されました。

Karma

HoudiniのKarmaレンダラー(ベータ版)を使用してUSDシーンをレンダリングします。

下画像は、Houdini18.0と18.5のKarma LOPのパラメータを比較した結果です。
Houdini18.5では、パラメータタブなどが大幅に改良されたことが確認できます。

以下のノードは、Houdini18.5で非推奨になりました。

Graft

他の入力からシーングラフツリーを受け取り、それらのツリーを最初の入力のシーングラフツリーのブランチに取り付けます。