On this page | |
Since | 12.0 |
アトリビュートには、float(浮動小数点)、integer(整数)、vector(ベクトル)、string(文字列)のタイプを設定することができます。 ローカル変数名を指定しなかった場合、アトリビュート名(すべて大文字で)が使用されます。 ユーザアトリビュートを追加した後は、ローカル変数をそれが許可されているオペレーションの任意の場所で使用することができます。
Note
文字列は“Index”アトリビュートとして追加され、実際の“String”アトリビュートとして追加されるわけではありません。 この事は、HDKでそれらのアトリビュートを使用するときにのみ重要になってきます。
Note
各アトリビュートを順番に追加していく時に、次のアトリビュートの値で前のアトリビュートを参照することができません。 各アトリビュートは、入力ジオメトリをソースとして使用し、前のアトリビュートの追加を考慮しません。
パラメータ ¶
Group
このグループに属する要素のみが指定した値で書き込まれます。
Group Type
グループを構成するタイプ。
Encode Invalid Attribute Names
Name が無効なアトリビュート名だった場合、その名前をencodeして有効な名前にします。 decodeを使って元の名前に復元することができます。 このオプションが無効(デフォルト)、且つ、無効なアトリビュート名を入力した場合、このノードは警告を出し、単に無効な文字すべてをアンダースコアに置換します。
このオプションは、例えば(無効な文字が含まれている可能性がある)アセット管理システムのアセットIDなどの任意の文字列でアトリビュート名を付けたい場合に役立ちます(有効なアトリビュート名は、英数字とアンダースコア(_
)のみが含まれた名前で、且つ、数字で始まっていない名前です)。
Note
暗号化されていない文字列に対してdecode()
をコールしても単にそのままの文字列が返されるだけなので、暗号化されている かもしれない 場合にはアトリビュート名に対して常にdecodeをコールすると良いでしょう。
Number of Attributes
追加するアトリビュートの数。各アトリビュートを順番に追加します。しかし、すべてのエクスプレッションは、入力ジオメトリを参照するのであって、中間ジオメトリを参照しません。 つまり、後で追加したアトリビュートが先に追加したアトリビュートを参照することができません。
Name
アトリビュートの名前。
Existing Name
同じ名前のアトリビュートが既に存在した場合の、挙動を指定します。
Generate error on mis-matched attribute
エラーを生成し、既存アトリビュートとその値をそのままにします。
Generate warning on mis-matched attribute
既存のアトリビュート定義を変更しません。ただし、 Write Values が有効であれば、アトリビュートの値を上書きします。
Replace existing attribute
既存のアトリビュート定義を完全に新しい定義に置換します。
Use the better type, size and precision
新しいアトリビュート定義が、古い定義と要求した定義のタイプ、サイズ、精度の良い方を使用します。 数値タイプに関しては、floatがintegerよりも良いと見なされます。 文字列と数値に関しては、互換性がないので、要求したタイプが優先されます。
Local Variable
新しいアトリビュートに相当するローカル変数の名前。 このフィールドを空っぽのままにすると、ローカル変数は、すべて大文字のアトリビュートの名前になります。
複数コンポーネントアトリビュートの個々のコンポーネントへアクセスするには、ユーザがこの名前に以下の文字を追加します:
-
vectorアトリビュートに対しては X, Y, Z を追加します。
-
floatアトリビュートに対しては 1, 2, 3など を追加します。この数値は0ではなく1から始まることに注意してください。
例:
アトリビュート | タイプ | 作成されるローカル変数 |
---|---|---|
|
Float, size = 1 |
|
|
Float, size = 2 |
|
|
Vector |
|
Class
アトリビュートを追加するジオメトリのタイプ。Point、Detail、Primitive、Vertexのアトリビュートを指定することができます。
Save to Info Block
Detailアトリビュートは、値を.bgeo/.geoファイルの先頭のInfoブロックに保存することができます。
このトグルを設定すると、その方法でDetailアトリビュートが保存されます。
これによって、File SOPの Info Load モードやgstat
コマンドラインを使うことで、ファイル全体を読み込むことなく、その値を取得することができます。
Type
Float、Integer、Stringを指定することができます。 Type を“Float”にすると、他のメニューを使ってFloatのタイプを限定することができます。Houdiniは、そのメニューから、そのFloatのタイプを解釈します。
(TypeにはFloat、Integer、StringだけでなくVectorがあります。これは上位互換用です。このVectorは Type を“Float”に設定して、そのメニューを“Vector”に設定するのと同じことです。)
Vectorアトリビュートは、Houdiniがベクトルとして変換するfloatアトリビュートを指定するための上位互換用の設定です。
Float, Integer, Stringのアトリビュートも配列として作成することができます。 配列は、要素毎に値の数を可変させることができます。 配列を使えば、デフォルト値を指定したり、値を修正することができません。 Size フィールドもタプルサイズを参照するので、3のサイズは、3つのベクトルの配列を意味し、3つのfloatの配列ではありません。
Floatアトリビュートでは色々なタイプの情報を指定することができます。
Type Qualifier(Typeの隣)
Guess from name
アトリビュート名がN
なら、このタイプ限定子は“Normal”になります。
アトリビュート名がCd
なら、このタイプ限定子は“Color”になります。
アトリビュート名がv
またはup
なら、このタイプ限定子は“Vector”になります。
それ以外なら、このタイプ限定子は“None”になります。
None
特別な処理をしません。
Position
このアトリビュートはジオメトリのポイントです。Houdiniはアトリビュートを位置として変換します。
Vector
Houdiniはアトリビュートをベクトルとして変換します。
Normal
Houdiniはアトリビュートを法線として変換します。
Color
このアトリビュートはカラーです。
Quaternion
Houdiniはアトリビュートをクォータニオンとして変換します。
Transform Matrix
Houdiniはアトリビュートをトランスフォーム行列として変換します。
Texture Coordinate
このアトリビュートはuv
のようなテクスチャ座標を意味します。
このアトリビュートがPoint/Vertexアトリビュートの場合には、UVビューポートの UV Attribute メニューに表示されます。
Vertexアトリビュートの場合には、一部のノードは特別な方法でシームを制御します。
Precision
使用する数値の精度( Type がString以外の時)。詳細は、Attribute Castノードを参照してください。
Size
アトリビュート内の要素の数。
Note
配列に関しては、これには、配列の項目の数ではなく、配列のタプルサイズを指定します。Float配列に対して3の値を指定すると、ベクトル配列が作成されます。
Default
デフォルトのアトリビュート値。
Write Values
アトリビュートが存在しても、既存値を上書きしたくない場合は、オフにします。
Allow Local Vars
オフにすると、 Write Values フィールドのローカル変数を無効にします。これは、非常に小さなジオメトリを扱う時の少しのパフォーマンス改善ができます。
Value
アトリビュートに書き込む数値。
String
アトリビュートに書き込む文字列。
Note
Vectorアトリビュートはトランスフォームで修正されます。Floatアトリビュートは修正されません。
ローカル変数 ¶
Note
名前の最後が2
の変数名は、もし該当すれば2番目の入力のジオメトリを参照します。例えば、$PT2
は2番目の入力の現行のポイント番号を意味します。
AGE
パーティクルが生存する秒数。
ARC
L-systemsのルートからの円弧長。
AREA
プリミティブの表面積(Measure SOPで作成)。
BBX, BBY, BBZ
境界ボックス内におけるポイントの相対位置(0から1)。
CA
PointまたはVertexのアルファ値。
CEX, CEY, CEZ
ジオメトリの重心。
COMX, COMY, COMZ
質量の中心。
CR, CG, CB
PointまたはVertexのDiffuseカラー。
CREASE
PointまたはVertexのCrease Weightの値。
CY , NCY
$CY
は、Copy SOPで生成した現行のコピー番号で、0
から始まります。$NCY
はコピーの総数です。Copy SOPの2番目の入力を使用している場合は、$CY
の代わりに$PT
を、$NCY
の代わりに$NPT
を使用します。
DIST
パーティクルから最後の衝突までの距離。
DIV
Polywire(L-systemsで作成)に沿わせる円の分割数。
DRAG
ポイントの抵抗力。
GEN
L-systemsで生成したもの。
ID
入力のパーティクルのID。
LAGE
L-systemで計算したポイントの寿命。
LIFE
寿命における経過した時間の割合(0から1)。
LOD
詳細レベル。
MAPU, MAPV, MAPW
ポイントまたは頂点のテクスチャ座標。
MASS
ポイントの質量。
MAT
現行マテリアルの文字列名(shop_material
アトリビュートの値)。
MAXLAYER
表示でアクティブとみなされているレイヤーの数。
NPT
テンプレートジオメトリでのポイントの総数。
NX, NY, NZ
法線ベクトル。
NX2, NY2, NZ2
Point SOPの2番目の入力のポイントの法線ベクトル。
PERIMETER
プリミティブの外周の長さ(Measure SOPで作成)。
PR, NPR
プリミティブ番号とプリミティブの総数。
PSCALE
パーティクルのスケール。
PT
現在処理しているポイントのポイント番号。
RESTX, RESTY, RESTZ
Rest Position(静止位置)。
SEGS
カーブをPolywire(L-systemsで作成)に分割するセグメント数。
SIZEX, SIZEY, SIZEZ
境界ボックスのサイズ。
SPRINGK
ポイントの弾性。
TENSION
エッジのスプリング張力。
TX, TY, TZ
ポイントの位置。
TX2, TY2, TZ2
Point SOPの2番目の入力のポイントの位置。
TW
WEIGHTを参照してください。
UPX, UPY, UPZ
Upベクトル。
VTX, NVTX
頂点番号と頂点の総数。
VX, VY, VZ
Velocityの方向。
WEIGHT
ポイントスプラインのWeight。
WIDTH
カーブの幅。カーブとL-Systemで生成したPolywireをレンダリングする時にMantraで使われます。
XMIN, XMAX
ジオメトリの境界ボックスのX座標の範囲。
YMIN, YMAX
ジオメトリの境界ボックスのY座標の範囲。
ZMIN, ZMAX
ジオメトリの境界ボックスのZ座標の範囲。
Examples ¶
CurveTexturing Example for Attribute Create geometry node
AttribCreate SOPは、色々なオブジェクト固有のアトリビュートを作成する時に使用します。新しく作成したアトリビュートにはラベルと値を設定することが可能です。
このサンプルでは、レンダリング時のカーブの幅を設定するためにAttribCreate SOPで線幅アトリビュート名の“width”を作成しています。Switch SOPで以下の2つのバージョンを切り替えることができます。
-
1つ目のAttribCreate SOPでは、X軸方向に一定幅のアトリビュートを作成しています。
-
2つ目のAttribCreate SOPでは、エクスプレッションでカーブの幅を調整することで先細りの効果を表現しています。
このアトリビュートはレンダリング時にMantraで使われます。結果を確認するには、ビューポートのレンダリングアイコンを右クリックして、“render_example”を選択してください。
See also |