On this page | |
Since | 20.0 |
このノードによって、ユーザはVEX言語を使用して独自のコールバックを実装することができます。 それぞれの入力ポートと出力ポートは、VEXスニペット内で変数としてアクセスすることができます。 それらのポート名が、バインドされる変数の名前を決定します。 VEXスニペットでは、ユーザは入力変数を読み込んで、ユーザが定義した計算を実行し、その結果を出力変数に書き込みます。
以下のVEXスニペットの例は、円の様々な特性を計算しています:
diameter = 2*radius; circumference = 2*M_PI*radius; area = M_PI*radius*radius;
このスニペットに関するいくつかのメモ:
-
便宜的に“math.h”が暗黙的にインクルードされているので、M_PI定数が利用可能になっています。
-
このスニペットは、宣言されていない3つの変数(diameter, circumference, area)に値を書き出しています。 これらの変数は、ノードの出力ポートの名前です。 このノードは出力ポートをそれと同じ名前の変数にバインドするので、それらの変数にアクセスすることができています。
-
このスニペットは、宣言されていない変数のradiusから値を読み込んでいます。 これはノードの入力ポートの名前なので、そのポートがそれと同じ名前の変数にバインドされています。 入力変数は 読み込み専用 なので、入力変数に新しい値を割り当てようとすると、エラーが発生します。
下図のグラフは、グラフ内のinput
ノードからradiusを読み込み、その円の特性を計算し、その結果を出力に書き出しています。
RunVexノードを動作させるには、そのRunVexノードが入力データと出力データのデータタイプを知っている必要があります。 RunVexノード上のポートが接続されていると、そのRunVexノードは、その接続を利用して、入力ポートと出力ポートのデータタイプを判断します。 また、それらのポートは、色を変えて、接続されているデータのタイプを反映します。
しかし、グラフ内のinput
ノードやoutput
ノードのように、異なるタイプのデータを受け入れ/生成する可変長ポート(このようなポートの色は灰色です)を持つノードが存在します。
そのような灰色のポートをRunVexノード上の inputs ポートや outputs ポートに接続した場合、そのRunVexノードがVEXコンテキスト内で生成すべき変数のタイプを決めるのに情報が足りません。
この場合、Value系ノードを利用して、タイプ情報を明示的に作成する必要があります。
上図の例では、グラフ内のValue<Float>ノードのおかげで、RunVexノードは、バインドする変数のデータタイプを認識することができています。
Tip
APEX Edit Graph SOPの Error Handling パラメータを Report as Warnings に設定することで、RunVexグラフノードを使用した時にエラーをもっと簡単に特定することができます。
VEXでサポートされているAPEXタイプ ¶
APEXタイプ |
VEXタイプ |
---|---|
Int |
|
Float |
|
Vector2 |
|
Vector3 |
|
Vector4 |
|
Matrix3 |
|
Matrix4 |
|
String |
|
Dict |
|
IntArray |
|
FloatArray |
|
Vector2Array |
|
Vector3Array |
|
Vector4Array |
|
Matrix3Array |
|
Matrix4Array |
|
StringArray |
|
DictArray |
|
入力 ¶
snippet:
String
ユーザ定義のコールバックの挙動を実装したVEXコード。
inputs:
VariadicArg<void>
接続された各入力は、VEX内で読み込み専用の変数にバインドされます。 このポート名が、バインドされる変数の名前を決定します。
出力 ¶
outputs:
VariadicArg<void>
接続された各出力がVEX内で割当可能な変数にバインドされます。 このポート名が、バインドされる変数の名前を決定します。