衝突イベント発生時にイベント プロシージャを実行させるには、そのプロシージャを含む MEL スクリプトを次の書式と引数リストにする必要があります。
global proc
myEventProc
(string
$particleObject
, int
$particleId
, string
$geometryObject
) {
Type MEL statements here;
}
この場合:
- myEventProc は、MEL プロシージャとスクリプトの名前です。
- $particleObject は、ジオメトリと衝突するパーティクル オブジェクトの名前です。
- $particleId は、衝突するパーティクルのパーティクル IDです。
- $geometryObject は、ジオメトリの名前です。
イベント プロシージャを作成する場合は、次の点に注意してください。
- プロシージャの引数の内容を使用する必要はありませんが、引数はプロシージャ定義に存在していなければなりません。
- MEL ファイルにプロシージャと同じ名前を付けて、スクリプトをソースとして指定した時にプロシージャがメモリにロードされるようにします。
- Maya を起動したときに必ずスクリプトとそのプロシージャがソースになるようにするには、MEL スクリプトを Maya プロジェクトの scripts フォルダ内に置きます。たとえば、maya¥2015¥scripts¥ となります。
スクリプト プロシージャをパーティクルの衝突イベントに追加するには
- ウィンドウ > 一般エディタ > スクリプト エディタ(Windows > General Editors > Script Editor)を選択してスクリプト エディタ(Script Editor)を開きます。
- スクリプト エディタ(Script Editor)で、ファイル > スクリプトのソース(File > Source Script)を選択して、プロシージャを含んだスクリプトをソースとして指定します。
注:
プロシージャを使ってオブジェクトを作成した場合、シミュレーションを巻き戻してもそのオブジェクトは除去されません。プロシージャを含むスクリプトを読み込まなくても、プロシージャをメモリに読み込み使用することができます。スクリプトおよびプロシージャの詳細については、「MEL とエクスプレッション」を参照してください。
- パーティクルのタイプに応じて、次のいずれかを実行します。
パーティクル衝突イベント エディタ(Particle Collision Event Editor)が表示されます。
- パーティクル衝突イベント(Particle Collision Event)で、次の操作を行います。
- イベントの作成(Create Event)ボタンをクリックします。
- (任意)衝突後にソース パーティクル オブジェクトを消滅させたい場合は、元のパーティクルの消滅(Original Particles Die)をオンにします。
- イベント プロシージャ(Event procedure)フィールドに、イベント プロシージャの名前を入力します。