Houdini VEX インデックス変数 グローバル変数

@elemnum
現行エレメントの番号。

@numelem
現行ジオメトリ/リスト内のエレメントの総数。

@ptnum
現行ポイントのポイント番号。

@primnum
現行プリミティブのプリミティブ番号。
@vtxnum
現行頂点の頂点番号。スニペットで頂点をループさせる時に使用します。 ポイントでループさせた場合、これは、そのポイントに接続されている頂点です。頂点が存在しなかった場合は-1です。 そのポイントが2つ以上の頂点に接続されている場合、どちらかの頂点が任意で返されます。 プリミティブでループさせた場合、これは、そのプリミティブの0番目の頂点です。

@numpt
現行ジオメトリ内のポイントの総数。

@numprim
現行ジオメトリ内のプリミティブの総数。
現行プリミティブ以外ならnprimitives()

@vtxnum
線形頂点番号

この頂点が属するプリミティブのプリミティブ番号は@primnumです。 任意の線形頂点番号が属するプリミティブ番号を取得するには、vertexprimを使用します。 線形頂点番号をその頂点が属するプリミティブ内の頂点インデックスに変換するには、vertexprimindexを使用します。 頂点をループさせる時、現行プリミティブ内の頂点の総数は@numvtxです。 任意のプリミティブ上の頂点の総数を取得するには、そのプリミティブ番号を使ってprimvertexcountをコールします。

例えば、ポリカーブの頂点のVertexアトリビュートにカーブ沿いに比例した値を設定したいのであれば、以下のコードを書きます:

# 線形頂点番号を取得して、それをプリミティブインデックスに変換します。
int vtx = vertexprimindex(0, @vtxnum)

# 頂点番号を最後のインデックスで除算することで、
# ポリカーブ長に沿った0.0から1.0までの範囲の値をアトリビュートに設定します。
f@prop = vtx / (float(@numvtx) - 1)

@numvtx
現行プリミティブ内の頂点の数。

グローバル変数へのアクセス

@Time
Floatの時間($T)

@Frame
Floatのフレーム($FF)

@SimTime
Floatのシミュレーション時間($ST)で、DOPコンテキストにのみ存在します。

@SimFrame
Floatのシミュレーションフレーム($SF)で、DOPコンテキストにのみ存在します。

@TimeInc
Floatのタイムステップ(1/$FPS)

ヘルプページ
https://www.sidefx.com/ja/docs/houdini/vex/snippets