パーティクル フローは、コア インタフェースの particleFlow を提供します。
メソッド:
<void>particleFlow.beginEdit()
<void>particleFlow.endEdit()
MAXScript で作成されたパーティクル フローアクションのイベント カプセル化をブロックします。
作成された パーティクル フローアクション (オペレータかテスト) は、自動的にパーティクル フロー イベントにカプセル化されます。これは、すべての パーティクル フロー アクションをイベントに所属させるための処理です。
この処理が MAXScript を使ってアクションを作成するとき邪魔になることもあります。この場合は beginEdit と endEdit の組み合わせを使用できます。
<node>particleFlow.openParticleView()
パーティクル ビューを開きます。パーティクル ビュー ノード に戻ります。
例:
--Disable Automatic Event Encapsulation particleFlow.beginEdit() OK --Create a new Find_Target Action ft = Find_Target() --> $Find_Target:Find Target 01 @ [0.000000,0.000000,0.000000] --Enable Automatic Event Encapsulation again particleFlow.endEdit() OK --Open Particle View and take a look: pview = particleFlow.openParticleView() --> $Particle_View:Particle View 01 @ [0.000000,0.000000,0.000000] --As expected, Find_Target will not appear inside --an Event in Particle View
ツールバー、メニュー、クアッド メニュー、キーボード ショートカットなどに配置可能なアクション項目を生成して、シーン内に PF_Source がない場合でも迅速にパーティクル ビューを開けるようにするには、次の短い MacroScript を使用します。
サンプル スクリプト:
macroScript PView_Open category:"Particle View" buttontext:"Open PView" tooltip:"Open Particle View" ( -- Open Particle View particleFlow.openParticleView() )
<node>particleFlow.scriptRunner()
このメソッドを PF_Source、更新したステップ毎スクリプト、および最終ステップ更新スクリプト内で使用して、現在実際にスクリプトを実行している PF_Source を特定することができます。
例:
pf= particleFlow.ScriptRunner()
<int>particleFlow.getActionOrder()
パーティクル フロー アクションの順番を取得します。
<void>particleFlow.setActionOrder <integer>order
パーティクル フロー アクションの順番を設定します。
有効な値は次のとおりです。
0: [グローバルを最初] - 各インテグレーション ステップで、パーティクル フロー は最初にグローバル イベント内のアクションを適用し、続いてその他のローカル イベント内のアクションを適用します。通常、ローカル イベント内のアクションによって、グローバル イベント内の同等のアクションが無効になります。
1: [ローカルを最初] - 各インテグレーション ステップで、パーティクル フロー は最初にローカル イベント内のアクションを適用し、続いてグローバル イベント内のアクションを適用します。通常、グローバル イベント内のアクションによって、ローカル イベント内の類似のアクションが無効になります。
<integer>particleFlow.getUpdateType()
パーティクル フロー の更新タイプを取得します。
<void>particleFlow.setUpdateType <integer>type
パーティクル フロー の更新タイプを設定します。
有効な値は次のとおりです。
0: [Complete モード] - パーティクル アニメーション全体が最初のフレームから再計算されます。
1: [Forward モード] - パーティクルはすぐには更新されません。 再生時には、パーティクル履歴は再計算されません。新しいイベントにだけ新しい設定が適用されます。
<integer>particleFlow.cleanUpParticleFlow <boolean>doReport
使用されていない項目を削除することで、パーティクル フローをクリーンアップします。
引数に true が渡された場合、処理の結果がポップアップ ダイアログ ボックスとして表示されます。false の場合、処理は暗黙的に行われます。
削除された ParticleFlow 項目「dirty」の数を返します。
3ds Max 2010以降で使用可能です。
<void>particleFlow.repairCacheSystem <boolean>doReport
キャッシュ システムを修復します。
引数に true が渡された場合、処理の結果がポップアップ ダイアログ ボックスとして表示されます。false の場合、処理は暗黙的に行われます。
3ds Max 2010以降で使用可能です。
<integer>particleFlow.synchronizeLayers <boolean>doReport
パーティクル フロー項目を、同じレイヤにパーティクル フロー エミッタ オブジェクトとして移動します。
レイヤ マネージャを使用してパーティクル フロー エミッタ オブジェクトを別のレイヤに移動したとき、関連するその他のオブジェクト (すべてのパーティクル フロー オペレータ ヘルパーや一部の内部オブジェクトなど) は自動的には同じレイヤに移動されません。これにより、たとえばレイヤがオフになっている場合に、フローが不正な動作をする可能性があります。
このメソッドは同期を実行するため、すべてのオブジェクトが確実に同じレイヤに移動します。
引数に true が渡された場合、処理の結果がポップアップ ダイアログ ボックスとして表示されます。false の場合、処理は暗黙的に行われます。
同期されたレイヤの数を返します。
3ds Max 2010以降で使用可能です。
<void>particleFlow.resetParticleView()
パーティクル ビューをリセットします。
3ds Max 2010以降で使用可能です。
<void>particleFlow.presetManager()
プリセット マネージャ ダイアログ ボックスを開きます。
3ds Max 2010以降で使用可能です。
<void>particleFlow.setNodeEditorDisplayFlags <integer>displayFlags
ノード エディタの display フラグを設定します。
3ds Max 2015 以降で使用可能です。
<void>particleFlow.forceRedrawParticleView <node>particleView
パーティクル ビュー エディタの再描画を強制します。
3ds Max 2015 以降で使用可能です。