Houdini 20.0 ノード APEXノード

RunVex

VEXスニペットを実行します。

On this page
Since 20.0

このノードによって、ユーザはVEX言語を使用して独自のコールバックを実装することができます。 それぞれの入力ポートと出力ポートは、VEXスニペット内で変数としてアクセスすることができます。 それらのポート名が、バインドされる変数の名前を決定します。 VEXスニペットでは、ユーザは入力変数を読み込んで、ユーザが定義した計算を実行し、その結果を出力変数に書き込みます。

以下のVEXスニペットの例は、円の様々な特性を計算しています:

diameter = 2*radius;
circumference = 2*M_PI*radius;
area = M_PI*radius*radius;

このスニペットに関するいくつかのメモ:

下図のグラフは、グラフ内のinputノードからradiusを読み込み、その円の特性を計算し、その結果を出力に書き出しています。

RunVexノードを動作させるには、そのRunVexノードが入力データと出力データのデータタイプを知っている必要があります。 RunVexノード上のポートが接続されていると、そのRunVexノードは、その接続を利用して、入力ポートと出力ポートのデータタイプを判断します。 また、それらのポートは、色を変えて、接続されているデータのタイプを反映します。

しかし、グラフ内のinputノードやoutputノードのように、異なるタイプのデータを受け入れ/生成する可変長ポート(このようなポートの色は灰色です)を持つノードが存在します。 そのような灰色のポートをRunVexノード上の inputs ポートや outputs ポートに接続した場合、そのRunVexノードがVEXコンテキスト内で生成すべき変数のタイプを決めるのに情報が足りません。 この場合、Value系ノードを利用して、タイプ情報を明示的に作成する必要があります。 上図の例では、グラフ内のValue<Float>ノードのおかげで、RunVexノードは、バインドする変数のデータタイプを認識することができています。

Tip

APEX Edit Graph SOPError Handling パラメータを Report as Warnings に設定することで、RunVexグラフノードを使用した時にエラーをもっと簡単に特定することができます。

VEXでサポートされているAPEXタイプ

APEXタイプ

VEXタイプ

Int

int

Float

float

Vector2

vector2

Vector3

vector

Vector4

vector4

Matrix3

matrix3

Matrix4

matrix

String

string

Dict

dict

IntArray

int[]

FloatArray

float[]

Vector2Array

vector2[]

Vector3Array

vector[]

Vector4Array

vector4[]

Matrix3Array

matrix3[]

Matrix4Array

matrix[]

StringArray

string[]

DictArray

dict[]

入力

snippet: String

ユーザ定義のコールバックの挙動を実装したVEXコード。

inputs: VariadicArg<void>

接続された各入力は、VEX内で読み込み専用の変数にバインドされます。 このポート名が、バインドされる変数の名前を決定します。

出力

outputs: VariadicArg<void>

接続された各出力がVEX内で割当可能な変数にバインドされます。 このポート名が、バインドされる変数の名前を決定します。

APEXノード