スクリプト オペレータ プリセットには、UpdateContext クラスの[UserData]プロパティの独自のプライベート データを保存する機能があります。
スクリプト オペレータ内では、[In_UpdateContext.UserData] を使用して[UserData]プロパティにアクセスできます。プライベート データはプリセット オペレータのインスタンスごとに個別にキャッシュされるため、Update メソッドでは同じオペレータの他のどのインスタンスにも影響を与えることなく、入力接続と変数値に基づき、[UserData]プロパティを変更できます。[UserData]プロパティは変数のため、配列およびコレクションを含む任意の値のタイプを保存する場合に使用できます。
[UserData]プロパティと併せて使用する方法は 2 つあります。
[Init]: オペレータが適用または再適用される際、およびシーンを開く際に実行されます。通常は、Init メソッドを使用して[UserData]プロパティを初期値に設定します。
[Term]: シーンを閉じる際、つまり、他のシーンを開く際や Softimage を閉じる際に実行されます。Term メソッドは、ユーザ データをファイルに保存するなど、最後に実行する操作に使用します。
Init メソッドでインスタンスを作成したオブジェクトはすべて、修正されずにそのまま残ります。この処理は Softimage が自動的に行います。
たとえば、Init メソッドにより SpreadSheet のような ActiveX オブジェクトのインスタンスを作成し、In_UpdateContext.UserData に保存します。その後、Update メソッドで、このデータを使用および変更します。さらに、Term メソッドを使用して、変更済みの SpreadSheet を保存します。これで、独自のシミュレーションを作成し、結果を保存できます。
Scripted Operator Editor の下のペインに直接、Init および Term 関数を記述できます。これらの関数には、Softimage が UpdateContext オブジェクトへのポインタに渡すために使用する 1 つの引数が必要です。
UpdateContext でサポートされるプロパティとメソッドについては、「UpdateContext」(『SDK ガイド』)を参照してください。
VBScript の sub Init および sub Term プロシージャの例を以下に示します。
Sub Init (InUC) LogMessage "Initializing scripted operator..." End Sub Sub Term (InUC) LogMessage "Terminating scripted operator..." End Sub