検索はキーワードに基づいています。
例:「手順」
自然言語で検索しないでください
例:「新しいプロシージャを作成するにはどうすればよいですか?」
ParticleBlinkScriptノードの使用
ParticleBlinkScriptノードは、 BlinkScriptノードですが、画像ではなくパーティクルシステムで動作します。これはパーティクルノードであり、Blinkカーネルを記述してパーティクルを変更することで、次の方法では達成できないカスタム動作を可能にします。 Nukeの組み込みのパーティクルノード。
ParticleBlinkScriptノードを使用するには、他のパーティクルノードと同じ方法でパーティクルシステムに接続します。
注意: ParticleBlinkScriptノードプロパティの完全な内訳については、 ParticleBlinkScriptリファレンスガイド。
ParticleBlinkScriptでPropertiesタブ、 scriptセクションでは、粒子の属性を変更するためにBlinkカーネルを作成します。読み書きする各属性を宣言します画像。ノードはそれぞれをバインドします画像同じ名前のパーティクル属性にカーネルで宣言します。
たとえば、パーティクルの位置を変更する場合は、 画像呼ばれたp_position。すべてのパーティクルイメージ名はプレフィックスで始まる必要がありますp_。
注意: プレフィックスは、属性名と一致する前に削除されます。接頭辞の理由は、宣言できる他のタイプの特別なイメージがあるためです(以下を参照)。
点滅カーネルの例
Nuke各パーティクルの速度にドラッグ係数を掛けるParticleDrag opがあります。以下は、同じことを行うBlinkカーネルの例です。
kernel ParticleDragKernel : ImageComputationKernel<ePixelWise> { //関心のあるパーティクル属性の画像を宣言します Image<eRead> p_startTime; Image<eReadWrite> p_velocity; param: //パラメータを宣言します float _drag; // This will be a knob for the drag factor float _dt; // The time step for the kernel float _endTime; // The particle system time at the end of the step void define() { defineParam(_drag, "pa_drag", 1.0f); defineParam(_dt, "_dt", 1.0f); defineParam(_endTime, "_endTime", 1.0f); } void process() { //このパーティクルのタイムステップを計算します float dt = max(0.0f, min(_dt, float(_endTime - p_startTime()))); //これは抗力であるため、dtに対して指数関数的に減衰させるとより正確になります。他の力については、単にdtで乗算することができます。 float t = pow(1.0f-_drag, dt); p_velocity() *= t; } }; |
あ画像粒子速度属性に対して宣言されている、 p_velocity。この場合、 画像読み書きされるため、次のように宣言する必要があります。 eReadWrite。このカーネルでは、 画像の幅は1で、パーティクルシステムのパーティクル数の高さです。
注意: 多くの場合、属性を読み取るだけでよく、その場合は次のように宣言できます。 eRead。
単一のパラメーターがあります。 pa_drag、そして速度は処理する()方法。Nukeすべてのパーティクルに対してプロセスメソッドを1回呼び出します。
注意: プレフィックスpa_ドラッグパラメータ名に追加することは必須ではありませんが、ParticleBlinkScriptがカーネルパラメータのノブを作成するときに名前の衝突を防ぐため、良い習慣です。
詳細については、 NukeのHelp下のメニューDocumentation > Guide to Writing Blink Kernelsまたは次の場所に移動します: https://learn.foundry.com/nuke/developers/121/BlinkKernels/
警告: ParticleBlinkScriptは、カーネル内で記述できるコードに制限がないため、非常に柔軟です。その結果、カーネルソースからコンパイルされたコードにより、 Nukeクラッシュするため、注意してください!
申し訳ありませんが、これは役に立ちませんでした
なぜこれが役に立たなかったのですか? (当てはまるもの全てをご確認ください)
ご意見をいただきありがとうございます。
探しているものが見つからない場合、またはワークフローに関する質問がある場合は、お試しくださいファウンドリサポート。
学習コンテンツを改善する方法についてご意見がある場合は、下のボタンを使用してドキュメントチームにメールを送信してください。
フィードバックをお寄せいただきありがとうございます。