On this page | |
Since | 18.5 |
概要 ¶
Attribute Adjust Float SOPにはfloat
型のアトリビュート値を可変させるためのインターフェースが備わっていて、わざわざVOPネットワークを作成したりVEXコードを記述するといった手間を減らすことができます。
このノードは、均一値またはエレメント毎に異なる値でアトリビュート値を修正することができます。
完全にランダムな値、または、空間的に整合性の取れたノイズパターンからサンプリングされた値で可変値を生成することができます。
このノードは、例えばアトリビュート値を他のアトリビュート値とブレンドさせたり、アトリビュート値を特定の範囲内に制限するといったポスト処理をすることもできます。 さらに、単位に関してフレームと時間、度とラジアンを変換する機能が備わっています。
Attribute Adjust Floatノードの背後にあるプロセスの基本的な概略図を以下のグラフに示します:
パラメータ ¶
Group
修正を適用する入力ジオメトリのサブセット。ここを空っぽのままにすると、すべてのエレメントが影響を受けます。
Blend
入力アトリビュート値と出力アトリビュート値をブレンドします。
0
のBlend値は、調整が行なわれないことを意味します。つまり、入力アトリビュート値が出力値になります。
同様に、1
は調整された値を出力し、初期値を無視します。
均一値( Constant )または Blend Attribute 値(このパラメータの右側にあるメニューが Use Attribute に設定されている時)のどれかでブレンドを処理することができます。
Blend Attribute
ブレンド値として使用する0
から1
の範囲の浮動小数点アトリビュート。
このアトリビュートは、( Attribute Class で設定された)適切なエレメント上に存在している必要があります。
0
のBlend値は、調整が行なわれないことを意味します。つまり、入力アトリビュート値が出力値になります。
同様に、1
は調整された値を出力し、初期値を無視します。
Attribute Name
作成または修正するアトリビュートの名前。指定した名前のアトリビュートが存在しなかった場合、選択された Attribute Class にそのアトリビュートが追加されます。
このノードはベクトル
タイプのアトリビュートに対して使用することができるので、ベクトルアトリビュートそのままを指定するだけで、このノードはそのベクトルの長さ(スカラー量)を調整します。
しかし、このノードを使用してベクトルの単一コンポーネント(これもスカラーです)を調整することもできます。
ベクトルコンポーネントを識別させるには、大括弧の中にインデックスを指定する方法、または、ドット表記の方法のどちらかを使用することができます。
ベクトルタイプのv
アトリビュートを調整する時は、以下のようにコンポーネントにアクセスすることができます:
1番目のコンポーネント |
2番目のコンポーネント |
3番目のコンポーネント |
4番目のコンポーネント |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Attribute Class
( Attribute Name で指定された)目的のアトリビュートのエレメントタイプ。
Unit Settings
アトリビュートに格納されている値の単位とは異なるパラメータ値を指定したいことがあります。
例えば、life
アトリビュートに格納されている値の単位は秒ですが、単位をフレームで設定する方がわかりやすいです。
Unit Settings では、アトリビュートとパラメータの単位を指定することができ、このノードが内部的にその変換を行ないます。
使用頻度の高い合成方法がプリセット化されており、独自の変換ルールを定義したい人のために Custom オプションが用意されています。
Attribute
アトリビュート値の単位を設定します。 このノードは、それに関係するパラメータ値を内部的に Parameters の単位から Attribute の単位に変換します。
Parameters
パラメータ値の単位を設定します。 このノードは、それに関係するパラメータ値を内部的にそのパラメータの単位から Attribute の単位に変換します。
Units の使用方法の例を以下にいくつか載せます。
To... | Do this |
---|---|
パーティクルが正確に10フレーム分だけ存在するように設定する |
これによって、 |
パーティクルの |
|
|
|
|
|
|
これは、フレーム10に相当する0.375の値を出力します。 Unit Settings に Time を使用しなければならないことと、フレーム1が時間0に相当するので、正しい変換を行なうにはフレーム単位をオフセットさせる必要があります。 この値を14フレーム分オフセットさせるには:
|
|
|
|
|
|
|
Adjust Value
入力のアトリビュート値と合成される値を生成します。 このオプションを無効にすると、ポスト処理のみが実行されるようになります。
Operation
生成された Adjust Value の値と入力のアトリビュート値を合成する方法を指定します。 ターゲットアトリビュートが入力ジオメトリ上に存在しなかった場合、どのオペレーションも同じ効果になります。
Set Initial
アトリビュートが必ず生成されるようにしたいものの、その既存のアトリビュート値は上書きしたくない場合には、このオペレーションを使用します。 ターゲットアトリビュートが既に存在していれば、そのアトリビュート値はそのままになります。
Set Always
生成された Adjust Value で既存のアトリビュート値を上書きしたい場合には、このオペレーションを使用します。
Add
生成された Adjust Value が既存のアトリビュート値に加算されます。
Subtract
生成された Adjust Value が既存のアトリビュート値から減算されます。
Multiply
生成された Adjust Value が既存のアトリビュート値に乗算されます。
Minimum
既存のアトリビュート値と Adjust Value のうち小さい方の値が出力されます。
Maximum
既存のアトリビュート値と Adjust Value のうち大きい方の値が出力されます。
Pattern Type
Adjust Value を生成する方法を指定します。 Constant は、すべてのエレメントに対して同じ値を使用します。 Random と Noise は、ジオメトリのエレメント毎に可変する値を生成します。これらの場合では、その可変値は定義された範囲内に収まったり、特定の値のリストから選択されます。 他にも、すべてのエレメントの Adjust Value として使用するアトリビュートを指定することもできます。
Constant
Adjust Value がジオメトリ内のすべてのエレメントで同じになります。 これを使用することで、すべてのエレメントに対して単純な算術処理を行なうことができます。 例えば、すべてのエレメントの値をオフセットさせることができます。
Random
Adjust Value が完全にランダムにサンプリングされます。 Adjust Value は、定義された範囲内に収めたり、特定の値のリストから選択させることができます。
Noise
Adjust Value は、Attribute Noise SOPによる整合性の取れたノイズフィールドに基づいてサンプリングされます。 Adjust Value は、定義された範囲内に収めたり、特定の値のリストから選択させることができます。
Attribute
Attribute Name で指定されたアトリビュートの値が Adjust Value として使用されます。
Range Values
選択された範囲内で Adjust Value が生成されます。 このパラメータは、この範囲を指定する方法を制御します。 この範囲には、特定の値のリストを指定することができます。他にも Specific Values を選択することで複数の範囲を指定することができます。これは特定のトリガーフレームを表現したアトリビュート値を作成するのに役立ちます。
Min/Max
Min Value から Max Value までのすべての値が範囲に含まれます。
Min Value |
Max Value |
カスタム範囲 |
---|---|---|
0 |
1 |
0 to 1 |
5 |
10 |
5 to 10 |
-5 |
7 |
-5 to 7 |
Min + Range Length
Min Value から Min Value + Range Length までのすべての値が範囲に含まれます。
例えば、 Min Value が2
で、 Range Length が5
であれば、その範囲の下限と上限はそれぞれ2
と7
になります。
Min Value |
Range Length |
カスタム範囲 |
---|---|---|
0 |
1 |
0 to 1 |
5 |
10 |
5 to 15 |
-5 |
7 |
-5 to 2 |
Middle ± Range Length
Middle Value - Range Length / 2 から Middle Value + Range Length / 2 までのすべての値が範囲に含まれます。
例えば、 Middle Value が8
で、 Range Length が4
であれば、その範囲の下限と上限はそれぞれ6
と10
になります。
Middle Value |
Range Length |
カスタム範囲 |
---|---|---|
0 |
1 |
-0.5 to 0.5 |
5 |
10 |
0 to 10 |
-5 |
7 |
-8.5 to 1.5 |
Specific Values
Adjust Value は、リストした個々の値のどれかになります。 各値が選択される確率は、 Weight に比例します。 Pattern Type は、各エレメントに対して Adjust Value をサンプリングする方法を制御します。
Constant Value
ジオメトリ内のすべてのエレメントの Adjust Value をこの値に設定します。
Min Value
カスタム範囲の下限を設定します。
Max Value
カスタム範囲の上限を設定します。
Middle Value
この値がカスタム範囲の中央値になります。
Range Length
カスタム範囲の長さを設定します。 つまり、範囲の上限と下限の差がこのパラメータの値と同じになります。
Value Distribution
生成された Adjust Value の分布を制御することができます。
Uniform
生成された Adjust Value がカスタム範囲内で均一に分布されます。
パターンタイプ別に-1
から1
の範囲で分布されたエレメントの結果:
Uniform with Remapping
生成された Adjust Value が Remap Ramp を介して最終的な __Adjust Value__が生成されます。 このオプションを使用することで、 Adjust Value の値をずらしたり、指定した範囲内に隙間を作成することができます。
パターンタイプ別に-1
から1
の範囲で分布されたエレメントに対して、その範囲の下限の方へ値をずらせた結果:
Uniform with Outliers
ある割合の数のエレメントが指定された範囲を越えて広がるようにすることができます。
Outlier Attribute パラメータの隣にあるOutlier Visualizerボタンを使用することで、どのエレメントがOutlier(外れ値)として選択されているのか確認することができます。
Outlier Range を使って選択された範囲を加算または乗算することで、範囲の下限と上限を広げることができます。
例えば、life
アトリビュートを修正する時に、 Outlier Percent を15
、 Outlier Range を2
に設定することで、ポイントクラウドの15%が( Additive モードでは)さらに最大2秒長く、( Multiplicative モードでは)2倍長く存在するようにさせることができます。
Outliersを使用して範囲の下限と上限を拡張:
Note
Uniform with Remapping を使用すれば同様の値制御を行なうことができます。 しかし、 Uniform with Outliers は、適切な範囲から外れるポイントの割合を正確に制御することができます。
Remap Ramp
均一に分布した中間値は、このランプを介して Adjust Value が取得されます。 このランプの縦軸がカスタム範囲です。
Outlier Percent
Outlier(外れ値)の数を制御します。
15
の値だと、すべてのエレメントの15%の Adjust Value がカスタム範囲から外れるようになります。
Outlier Attribute
エレメントがOutlierであるのか(1
で示されます)そうでないのか(0
で示されます)を記録した整数アトリビュート。
Outlier Range
Outlier範囲がカスタム範囲から外れる大きさを制御します。 この範囲を加算または乗算することでカスタム範囲の上限や下限を広げることができます。
Additive
Outlier Range がカスタム範囲の上限や下限に加算されます。
-2
から2
のカスタム範囲に対して Outlier Range を3
に設定して分布されたエレメント:
Multiplicative
Outlier Range がカスタム範囲の上限/下限に乗算されます。
-2
to 2
のカスタム範囲に対して Outlier Range を3
に設定して分布されたエレメント:
Below Min Value
カスタム範囲の下限のみを広げます。
-2
to 2
のカスタム範囲に対して Outlier Range を3
に設定して分布されたエレメント:
Both
カスタム範囲の下限と上限の両方を広げます。
-2
to 2
のカスタム範囲に対して Outlier Range を3
に設定して分布されたエレメント:
Seed
Outlierのランダム選択を制御します。 Outlierの選択が気に入らなければ Seed の値を変更してください。
Enable Stepping
このチェックボックスを有効にすると、 求まった Adjust Value が Step Size に離散化されます。
例えば、カスタム範囲の下限と上限がそれぞれ0.1
と3
で、 Step Size が1
に設定されている場合、 Adjust Value は0.1, 1.1, 2.1
のどれかになります。
Tip
浮動小数点型のstartframe
アトリビュートを整数値に丸めて作成したいのであれば、このチェックボックスを有効にして Step Size を1に設定します。
Step Size
生成される Adjust Value 間の間隔を制御します。
Number of Values
Adjust Value の候補となる値のセット数を制御します。 各セットには、単一値または数値のリストを指定することができます。 各セットからそれぞれAdjust Valueが選択される確率は Weight に比例します。
Value
そのままのAdjust Valueを設定します。
Value Type
Constant モードでは、セットには Value のみが入ります。 List of Values モードでは、 Value List で値のセットを定義します。
Weight
指定されたAdjust Valueを指定したウェイトでサンプリングします。 Weight 値が低い値ほど選択される確率が下がります。 すべてのウェイトが同じであれば、各Adjust Valueは同じ確率で選択されます。
Value List
独立した範囲シーケンスまたは数値を使ったリストでAdjust Valueを設定します。
このリストは、スペース、カンマ、セミコロンで区切ることができます。
min-max:stepsize
の構文を使用することができます。
この構文は、stepsize
の間隔でmin
からmax
までの値に展開します。
stepsize
を指定しなかった場合はデフォルト値の1
が使用されます。
Note
展開された各値には同じ Weight が割り当てられます。
Value List |
展開された値 |
---|---|
5 |
5.0 |
3;5 7 |
3.0, 5.0, 7.0 |
1-3 |
1.0, 2.0, 3.0 |
0-1:0.25 |
0.0, 0.25, 0.5, 0.75, 1.0 |
0-1:0.25 5; 8-12:2 |
0.0, 0.25, 0.5, 0.75, 1.0, 5.0, 8.0, 10.0, 12.0 |
Adjustment Attribute
使用したい調整値が記録されているアトリビュートを指定します。 このアトリビュート値は、事前にスケール( Scale Value )やオフセット( Offset Value )または両方( Apply Both )を適用した後に、その値を入力アトリビュート値と合成させることができます。
Scale
Adjust Valueをスケールさせた後に、その値が入力アトリビュート値に合成されます。
Offset
Adjust Valueをオフセットさせた後に、その値が入力アトリビュート値に合成されます。
Randomization By
疑似乱数ジェネレータがエレメント別にAdjust Valueを生成する方法を指定します。 Element Number は、 Attribute Class に応じてポイント番号、プリミティブ番号、頂点番号のどれかを使用します。 入力ジオメトリのトポロジーが変わるとエレメント番号がずれて、異なるAdjust Valueが使用されてしまうことが起こり得ます。 Custom Attribute では整数アトリビュートを指定することができるので、エレメント順に依存することなく乱数を生成することができます。
Tip
パーティクルシミュレーションの場合、id
アトリビュートを使用してパーティクルのlifetime
に同じ乱数が適用されています。
Custom Attribute を使用することで、複数のエレメントに同じ乱数を適用することができます。
Custom Attribute
乱数生成のシードに使用するアトリビュート。
Seed
生成されるすべてのランダム値はこの値に依存します。 現在のシードで生成されたサンプルが気に入らないのであれば異なる値を選択してください。
Noise Type
生成するノイズタイプです。アルゴリズムを変更すると異なる特性のノイズが生成されます。
Fast
デフォルト。より高速でもっと面白いPerlinノイズのバリエーションです。
Sparse Convolution
Sparse Convolutionノイズは、Worleyノイズに似ています。グリッドポイントでの乱れはありません。
Alligator
でこぼこの多い出力を作成します。ワニ革に似ているということで、この名前になりました。
Perlin
視覚的ディテールが同じサイズのノイズです。 Wikipedia を参照してください。
Perlin Flow
回転するPerlinノイズのように時間が経過しても安定したノイズ。これは、時間の経過とともに滑らかに渦巻いて流れるようなノイズを作成するのに役立ちます。 以下の Flow Rotation パラメータを使用して回転を制御します。
Simplex
Perlinノイズに似たノイズですが、そのノイズラティスはグリッドではなく四面体メッシュ上に乗っています。 これによって、Perlinノイズでよく見受けられるグリッドパターンを回避することができます。
Worley Cellular F1
植物の細胞や海の波、ハチの巣、クレーターのある景色などに似た細胞特性を作成します。 Wikipedia を参照してください。
Worley Cellular F2-F1
Worleyノイズのバリエーションで、鈍化させたり、角を付けたりする特性を作成します。
Manhattan Cellular F1
マンハッタン距離の計算法を使用したWorley F1ノイズのバリエーション。独特なルックのノイズが必要な時に役立ちます。
Manhattan Cellular F2-F1
マンハッタン距離の計算法を使用したWorley F2-F1ノイズのバリエーション。独特なルックのノイズが必要な時に役立ちます。
Chebyshev Cellular F1
チェビシェフ距離の計算法を使用したWorley F1ノイズのバリエーション。独特なルックのノイズが必要な時に役立ちます。
Chebyshev Cellular F2-F1
チェビシェフ距離の計算法を使用したWorley F2-F1ノイズのバリエーション。独特なルックのノイズが必要な時に役立ちます。
Location Attribute
このノードは、入力ジオメトリ上のこのベクトルアトリビュートで指定された位置におけるノイズフィールドをサンプリングすることで、各エレメントの値を生成します。
これがP
(デフォルトはポイントポジション)の場合、ジオメトリのポイントはノイズを介して泳いだような感じになります。
ノイズをポイントに“接着”させたいのであれば、初期のポイントポジションをrest
アトリビュートにコピーして、代わりにここではそのアトリビュートを使用すると良いでしょう。
Element Size
ノイズ内のエレメントの均一スケール。
Per Componentボタンをクリックすることで軸別に Element Size をスケールすることができます。
Element Scale
Per Componentボタンを有効にすると、これは軸別に Element Size をスケールすることができます。
Offset
評価したノイズフィールドをオフセット(各軸に追加されます)します。 通常のノイズ効果が既に求まったものの、別のルックで別の値セットが必要になった場合、このオフセットを変えて試行錯誤することができます。
ここに$T * 0.25
といったエクスプレッションを使用してノイズをアニメーションさせることができます。
これは Animate Noise よりも計算が速いですが、ノイズフィールド全体が視覚的に“パン”したような効果になるので好みが分かれます。
Per Componentボタンをクリックすることで軸別にオフセットを追加することができます。
Offset
Per Componentボタンを有効にすると、これは軸別にオフセットを追加することができます。
Use VEXpression
このチェックボックスを有効にしてVEXpressionを使用することで、任意のアトリビュート値に基づいてパラメータをオーバーライドすることができます。
Animate Noise
生成されるノイズを時間で変化させます。一部のノイズタイプはこの機能に対応していません。
この方法で数百万ものエレメント数を持つジオメトリにアニメーションを適用するのは、 Offset パラメータで$T * 0.25
といったエクスプレッションを使用してノイズフィールド全体を“パン”するよりも計算が遅いです。
Pulse Duration
Animated Noise が有効な時、これはノイズパターンの変化レートを制御します。
Fractalは、基本ノイズタイプの出力にさらにフラクタルノイズを足すことができます。
Fractal Type
None
基本ノイズに別のノイズを追加しません
Standard
基本ノイズに擬似ランダムノイズを追加します。
Terrain
“Standard”と同様にノイズを追加しますが、窪みの部分のノイズを弱くします。 山のような地形を生成するのに便利です。
Hybrid
“Terrain”と同様ですが、窪みの部分をもっと鮮明にします。
以下のパラメータは、Fractalタイプが None 以外の時に利用可能です。
Max Octaves
基本ノイズの出力に追加するゆがみの繰り返し回数です。 追加する繰り返しが多くなると、よりきめ細かい出力になります。 なお、出力では、このパラメータよりオクターブが少なくなることがあります(つまりパラメータを大きくすると、最終的にはディテールの追加が停止する)。 これは、出力にディテールを追加するスペースがなくなったときに、ノードは最終的に停止するからです。
Lacunarity
基本出力に追加されるフラクタルノイズの繰り返し間での振動数の増分です。なお、マイナス値を使用することができます。
Roughness
基本出力に追加されるフラクタルノイズの繰り返し間でのスケールの増分です。 値を大きくすると、出力に追加される“ジャギー”が大きくなります。Roughnessにはマイナス値を使用することができます。
ノイズ空間を歪ませることで基本ノイズに“フラクタルさ”を足すためのメソッドが2つあり、それが Lattice Warp と Gradient Warp です。
Lattice Warp
標準ノイズに“繊維っぽさ”または“ワイヤーっぽさ”を追加します。
Lattice Warp Size
生成されるノイズの基本特徴サイズを制御します。この値が各軸に適用されます。
Gradient Warp
ノイズ出力の山または谷を広げます。
Accumulate Lattice Warp
追加されるフラクタルノイズの反復(オクターブ)毎に歪みを累積します。 これは、画像で使用すると面白い汚れた効果を追加することができ、地形で使用すると面白いランドマークを追加することができます。
Accumulate Gradient Warp
追加されるフラクタルノイズの反復(オクターブ)毎に歪みを累積します。
Flow Rotation
Noise Type が“Flow”の時の“swirl”(渦巻き)の回転量を0
から1
で指定します。
このパラメータには浮動小数点を指定するので、$F
を使った場合、すべての整数値が同じ値として受け取られて一回転を表現することになるのでアニメーションさせることができません。代わりに、$FF / 100
のようなエクスプレッションを試してください。
Distortion
Distortion が1
より大きい場合はノイズ値が減少する方向で、 Distortion が1
未満の場合はノイズ値が増加する方向で、ノイズが歪められる量を制御します。
Worleyノイズのディテールがノイズパターンに追加されると、この歪み効果は大幅に減少します。
Distortionの値が1
:
Distortionの値が-1
:
Stretch
各方向にノイズを伸ばす量。 Element Size の代わりにこれを使用するメリットは、一部のディテールは引き伸ばされずにそのまま維持され、引き伸ばされたノイズパターンはより自然な感じに見えることです。
X軸方向で Element Scale が3
(左)と Stretch が3
(右)の比較:
Droop
ノイズパターンが指定したDroop方向に曲がったり垂れ下がったりするように、生成されたノイズを歪めます。
Noise pattern without (left) and with droop applied (right):
Droop Direction
ノイズが歪められる方向。
Enable Post-Process
出力されたアトリビュート値をさらに細かく調整するためのコントロールセットを表示します。 アトリビュートに調整が加えられた後で、設定されたすべてのポスト処理による修正が実行されます。
Minimum
このチェックボックスを有効にすると、出力されるアトリビュート値は、指定した Minimum にクランプされます。
Maximum
このチェックボックスを有効にすると、出力されるアトリビュート値は、指定した Maximum にクランプされます。
Default Value
このチェックボックスを有効にすると、そのターゲットアトリビュートのデフォルト値プロパティが上書きされます。 このノードの出力をそのアトリビュートが見つからない他のジオメトリにマージした時に、新しい値がこの Default Value に初期化されることが保証されます。
See also |