ParticleBlinkScriptの属性とパラメーター

次のパーティクル属性は、ParticleBlinkScriptカーネル内で使用できます。

float3 p_position

パーティクルの現在の位置。

float3 p_initialPosition

粒子の開始位置。

float3 p_lastPosition

粒子の以前の位置。

float3 p_velocity

粒子の速度。

float4 p_color

粒子の色。

float3 p_size

粒子のサイズ。

float4 p_orientation

粒子の向き。

float3 p_rotationAxis

粒子の回転軸。

float p_rotationAngle

粒子の回転角度。

float p_rotationVelocity

粒子の回転速度。

float p_mass

粒子の質量。

float p_life

粒子の寿命。

float p_startTime

パーティクルの開始時間。

すべてのパーティクルアトリビュート配列はシステム内のパーティクルの数のサイズであるため、必要な数だけカーネルに渡すことができ、すべてのパーティクルを同時に反復処理します。これにより、たとえば、速度と位置に応じて粒子の色を変更したり、新しい力を書き込んだりできるカーネルを作成できます。

ParticleBlinkScriptでノブを作成する

パラメータはカーネルで宣言することもできます。BlinkScriptノードを使用すると、パラメーターノブが自動的に作成されます。ParticleBlinkScriptノードの動作は異なります。ノブを自動的に作成することの欠点は、特定のパラメーターに対して作成するノブのタイプを選択できないこと、およびスライダーまたはツールチップの範囲を設定できないことです。A float3属性にはColor_knob、またはXYZ_knob。ノブを自動的に生成することは、コントロールパネルのレイアウトを制御できないことも意味します。

ParticleBlinkScriptは代わりにUser Knobsそして、それらの名前をパラメーターに一致させることによってそれらをバインドします。カーネルにfloat4呼び出されたパラメーターpa_color、RGBAカラーのユーザーノブと呼ばれる pa_colorにバインドすることも作成する必要があります float4 パラメータ。

ParticleBlinkScriptメソッドは少し時間がかかる場合がありますが、はるかに制御可能です。

注意:  パラメータのユーザーノブを作成しない場合、デフォルト値に設定されます。のCreate Knobsボタンは、まだ持っていないパラメーターのノブを作成します。これらは必要に応じて削除、置換、編集できます。

魔法の属性

カーネルでは、現在のフレームなどのいくつかの追加情報が役立つ場合があります。ParticleBlinkScriptは、属性が特定のマジック名で定義されている場合にこれを提供します。これらは:

float _frame

現在のフレームNukeレンダリングしています。

float _systemTime

パーティクルシステムの現在の時刻。

float _dt

このフレームの時間差。

float _startTime

タイムステップの始まり。

float _endTime

タイムステップの終了。

これらはすべてアンダースコアで始まります_それらを区別するためにp_ カーネル属性。使用する最も一般的なものは_始まる時間 _終了時間そして _dt

これらの属性を一緒に使用して、たとえば次のようなさまざまな情報を取得できます。

_systemTime-p_startTime()

パーティクルの年齢。

(_systemTime-p_startTime())/ life()

寿命の割合としてのパーティクルの年齢。

float _dt = max(0.0f、min(_dt、float(_endTime-p_startTime())));

力を加えるための正しい時間差。

注意:  ParticleBlinkScriptノードのカーネルの作成の詳細については、 Nuke開発者ガイド

画像入力

粒子入力だけでなく、画像を生成するノードに接続できるParticleBlinkScriptノードに画像入力を提供できます。これらは、次で始まる名前で宣言する必要があります画像_、そしてeAccessRandom、それ以外の場合は、パーティクルの反復空間で反復されます。

たとえば、という画像を宣言するimage_textureという新しい入力を作成しますtexture

追加の画像入力を持つParticleBlinkScriptノードの例

追加の画像入力を使用して、フローマップや高さマップなど、より多くのデータをカーネルに渡すことができます。また、シーン内の位置によって粒子を着色するなど、さまざまな目的に使用できます。