Particle SOP

概要

Particle SOPはパーティクル・ミュレーションのために粒子運動を発生させてコントロールします。パーティクル・システムは例えば雨や雪または花火や火の粉のような、自然現象のシミュレーションの発生に使用されます。Touchでは、入力ジオメトリーのポイントがパーティクルの開始ポジションとして使用されます。入力の各ポイントは外部のフォース(重力)と風に作用されます。パーティクルはCollision Sourceによって設定されたオブジェクトに衝突、はね返ることができます。パーティクルはX、Y、Zで設定される制限面ではね返るあるいは、消滅することができます。
パーティクルは通常のジオメトリーには無い、ベロシティ、寿命と年齢のような、さまざまなアトリビュートを持ちます。これらのアトリビュートは、シミュレーションを行うために、各ポイントで持たなければなりません。

パラメータ
Source Group / sourcegrp

入力ソースにあるグループを指定すると、グループのみ処理されます。Pattern Matchingの章で説明されているようにパターンを受け入れます。

パラメータ- State ページ
Particle Type / prtype

パーティクルのレンダリング方法を設定します。

  • Render as Lines / lines
    各パーティクルは、パーティクルの速度に基づいて長さが決定される2ポイントの線としてレンダリングされます。 パーティクルに速度がない場合、サイズは1ピクセルになります。
  • Render as Point Sprites / pointprites
    Point Sprite MATで使用します。 各パーティクルは、常にカメラに向いている正方形のピクセルです。 正方形のサイズは、Point Spriteパラメーターとpscaleのvertex/pointアトリビュートによって決まります。 ポイントスプライトのテクスチャ座標も自動的に生成されます(左下に(0,0)、右上に(1,1))。
Behavior / behave
  • Particle System / psystem
    入力ジオメトリのポイントからパーティクルが生成されるパーティクルシステムのように動作します。
  • Modify Source Geometry / modify
    入力ジオメトリを変形します。
    Tip:ジオメトリをパーティクルにインスタンス化することもできます。 SOP to CHOPを使用してパーティクルの位置をCHOPに取り込み、Geometry COMPのInstanceページで各パーティクルの位置にジオメトリを配置します。 これは、パーティクルシステムで多くのジオメトリのコピーをアニメーション化する最も効率的な方法です。
Compute Normals / normals

ジオメトリに法線を作成します。 BehaviorがModify Source Geometryに設定されている場合にのみ使用します。

Point Reuse / ptreuse

ポイントを作成する必要があるとき、またはポイントが死んだときに、ポイントの内部メモリを再利用する方法を設定します。

  • Reuse Points in Loop / loop
  • Reuse First Available Point / unused
  • Don’t Reuse Points / none
Preroll Time / timepreroll

リセット時間に達した後、バイパスするシミュレーションの秒数。 たとえば、このフィールドに数値33を入力した場合(およびリセットはTstartにある場合)、フレーム1には33秒の時点のシミュレーションが表示されます。 つまり、最初の32秒はバイパスされ、33秒の時間はフレーム1にシフトされます。 ポイントのステータスを計算するには、最初の32秒を計算する必要があります。そのため、リセット時に多少の遅延が発生します。

Time Inc / timeinc

Time Incパラメーターは、SOPをcookする頻度を決定します。 デフォルトでは、このパラメーターは1 / $ FPSに設定されています。 これは、SOPがフレームごとに1回cookすることを意味します。 複雑なダイナミクスが含まれる場合、SOPは数学的な精度を高めるために、より頻繁に調理する必要があります。 cookingのサブフレームの精度を得るには、Time Incを1 / $ FPSより小さい値に設定します。

例:Time Incを0.5 / $ FPSに設定すると、SOPはフレームごとに2回cookされます。

注:このパラメーターを1 / $ FPSより大きく設定しないでください。

Max Steps / maxsteps

TouchDesignerが適切な相互作用のためにパーティクルの位置を計算する時間を制限します。 フレームレートが遅い場合、この計算は時間を遡って高くなる可能性があり、このパラメーターはその影響を制限します。

Jitter Births / jitter

パーティクルが生成されるときに、各パーティクルのピクセル位置をジッタさせることができます。

Accurate Moves / accurate

このオプションは、分数フレーム値の軌跡を計算することにより、フレーム間でパーティクルをより正確に移動させます。

Remove Unused Points / rmunused

入力ジオメトリからすべての未使用のポイントを削除します。 これは、シミュレーション中にメモリからポイントをパージするのに必要な時間を節約するため、自動的にではなく明示的なオプションとして提供されます。 これにより、シミュレーション中の不必要なスローダウンを防ぎます。

Attractor Use / attractmode

– All Points / all
すべてのポイントアトラクタは、すべてのパーティクル(またはポイント)に影響します。

  • Single Point per Particle / single
    有効にすると、各パーティクルに単一のアトラクタポイントが割り当てられ、そのポイントのみの影響を受けます。 割り当ては、アトラクタポイントの総数を剰余演算とするポイント数によって行われます。
  • Reset / reset
    ResetパラメーターのOn/Offを設定します。
Reset Pulse / resetpulse

Resetのパルスを送信します。

パラメータ – Forces ページ
External Force / external

パーティクルに作用する重力。 dragがゼロの場合、パーティクルは速度制限なしで加速します。

  • X / externalx
  • Y / externaly
  • Z / externalz
Wind / wind

パーティクルに作用する風力。 外力に似ています。 Windを使用すると(Turbulenceなどの他の力は使用しません)、パーティクルは風速を超えません。

  • X / windx
  • Y / windy
  • Z / windz

Wind 対 External Force
External Forceの適用は、パーティクルの加速度に直接影響し、その速度は質量によって決定されます(F =質量加速度)。 Windは追加の力ですが、速度に敏感です。 パーティクルがすでに風速で移動している場合、パーティクルから余分な力を受けることはありません。 これは、Windを単独で使用する場合の最大速度を意味します。
質量の増加は、一定の力の加速を妨げます。 Dragは、速度に敏感な動きの方向と反対の力です。つまり、速度が大きいほど、ドラッグの効果が大きくなります。 パーティクルの速度を制限するのに役立ちます。

Turbulence / turb

各軸に沿った乱流(カオス)力の振幅。 正の値を使用します。

  • X / turbx
  • Y / turby
  • Z / turbz
Turb Period / period

短い周期は乱流が小さな領域で急速に変化することを意味し、値が大きいほど近いポイント同士で影響を受けることを意味します。

Seed / seed

パーティクル シミュレーション用の乱数シードを設定します。

パラメータ – Particles ページ
Add Particle ID / doid

パーティクルが生成されるたびに、ID番号を各パーティクルに追加します。

Add Mass Attribute / domass

チェックすると、Massフィールドで指定されたとおりに、パーティクルの質量が計算されます。

Mass / mass

各パーティクルの相対質量。 パーティクルが重いほど、動き始めるのに時間がかかり、減速するのに時間がかかります。

Add Drag Attribute / dodrag

チェックすると、Dragフィールドに入力されたパーティクルのドラッグ係数を計算します。

Drag / drag

各パーティクルのドラッグを設定します。

Birth / birth

毎秒生まれるパーティクルの数。 パーティクルはクラスターで放出されません。 パーティクルは存在する最初のフレームの間にランダムに生まれます。 彼らの誕生時間は、最初のフレームでランダムに設定されます。

Life Expect / life

各パーティクルが存在する期間(秒単位)。 デフォルトは3秒です。 アニメーションの長さに基づいて、この数値を調整することができます。

Life Variance / lifevar

パーティクルの平均寿命の秒単位の分散数。 平均寿命が1秒で、分散数がゼロ秒である場合、各パーティクルは正確に1秒存続します。 分散数が0.5に設定されている場合、一部のパーティクルは0.5秒しか存続せず、他のパーティクルは1秒半存続します。 残りは、その間の時間内で存続します。 このランダム性により、パーティクルの誕生がより自然になります。

Alpha Speed / alpha

パーティクルが高速になると、パーティクルはより透明になります。 Alpha Speedパラメータのデフォルトは0で、速度が増加してもアルファは変化しません。 典型的な値が0.5の場合、パーティクルは1ユニット/秒になると70%不透明になります。 Alpha Speedパラメーターを大きくすると、指定した速度でより透明になります。 ゼロ速度では、パーティクルは常に100%不透明です。

パラメータ – Limits ページ
Limit Plane / limitpos

パーティクルが到達すると設定した制限平面から消滅または跳ね返ります。 6つの制限平面フィールドは、境界キューブを定義します。 デフォルト設定は1000単位離れており、非常に大きいです。 値を約1に減らして、効果を確認する事が出来ます。

  • X / limitposx
  • Y / limitposy
  • Z / limitposz
Limit Plane / limitneg

パーティクルが到達すると設定した制限平面から消滅または跳ね返ります。 6つの制限平面フィールドは、境界キューブを定義します。 デフォルト設定は1000単位離れており、非常に大きいです。 値を約1に減らして、効果を確認する事が出来ます。

  • X / limitnegx
  • Y / limitnegy
  • Z / limitnegz
Hit Behavior / hit

パーティクルが6つの衝突面またはコリジョン オブジェクトに衝突したときの動作を制御します。 オプションは次のとおりです。

  • Die on Contact / die
    パーティクルは、コリジョンに衝突すると消えます。
  • Bounce on Contact / bounce
    パーティクルは、コリジョンに接触すると跳ね返ります。
  • Stick on Contact / stick
    パーティクルはコリジョンに接触すると付着します。
Gain Tangent / gaintan

衝突時のエネルギー損失とみなせる摩擦パラメーター。 最初のパラメーターは、面に対して垂直なエネルギー損失(gain)に影響します。 0はすべてのエネルギー(velocity)が失われ、1は面に対して垂直なエネルギーは失われないことを意味します。 2番目のパラメーターは、面に接するエネルギーゲインです。

Gain Normal / gainnorm

衝突時のエネルギー損失とみなせる摩擦パラメーター。 最初のパラメーターは、面に対して垂直なエネルギー損失(gain)に影響します。 0はすべてのエネルギー(velocity)が失われ、1は面に対して垂直なエネルギーは失われないことを意味します。 2番目のパラメーターは、面に接するエネルギーゲインです。

– 1と1は、何も損失したり獲得されたりしないことを意味します。

– 0.1と1を設定すると、パーティクルが面にぶつかり、屋根の上の雨のように面に沿ってドリブルします。

– 1と0は、どの角度で面に接触しても、面に対して垂直に跳ね返ります。

– -1と1を設定すると、パーティクルは元の場所へ跳ね返ります。

– 1より大きいゲインは、ピンボールマシンバンパーのようなエネルギーのゲインを引き起こします。

Split / splittype
  • No Splitting / no
    デフォルト設定で、パーティクルがそのまま保持されます。
  • Split on Contact / bounce
    パーティクルはコリジョンに接触すると分割します。
  • Split on Death / die
    パーティクルは消滅すると同時に分割します。
Min/Max Splits / split

パーティクルが分割する時、パーティクルの分割数は、この範囲内でランダムに設定されます。

  • splitmin
  • splitmax
Split Velocity / splitvel

分割した各パーティクルに与えられるvelocityを設定します。

  • X / splitvelx
  • Y / splitvely
  • Z / splitvelz
Velocity Variance / splitvar

これは、分割したパーティクルのvelocityに追加されるランダムなvelocity量です。 花火を作成する場合、velocityは低く、分散は大きくなります。 雨滴のしぶきをレンダリングするとき、分割したパーティクルのvelocityはYで大きく、XとZに分散する事で、パーティクルはXZ平面でランダムに跳ね上がります。

  • X / splitvarx
  • Y / splitvary
  • Z / splitvarz