v4.0
新しいカスタムパラメータ定義を作成します(ParamDef オブジェクト)。
ParamDef オブジェクトには、複数のプロパティセットまたはオペレータの新規パラメータを 1 度の操作で作成できるパラメータの定義があります。たとえば、同じ最小値/最大値の範囲を複製して複数のプロパティセットで使用する場合や、スクリプトを使用してランタイムスクリプトオペレータにパラメータをすばやく追加する場合などに有効です。XSIFactory オブジェクトから新しい ParamDef オブジェクトを作成できます。
注:特性、分類、提示される最小値および最大値を指定する必要がある場合は、代わりに XSIFactory.CreateParamDef を使用します。
ParamDef XSIFactory.CreateParamDef2( String in_ScriptName, siVariantType in_Type, Object in_default, Object in_Min, Object in_Max ); |
oReturn = XSIFactory.CreateParamDef2( ScriptName, Type, [DefaultValue], [Min], [Max] ); |
新しく作成された ParamDef オブジェクト
パラメータ | タイプ | 説明 |
---|---|---|
ScriptName | String | この引数はパラメータの ScriptName を指定します(Parameter.ScriptName を参照)。引数のショート名またはロング名が指定されていない場合は、この名前がショート名および説明として使用されます。 |
Type | siVariantType | カスタムパラメータのタイプ。推奨タイプは siString、siBool、siInt4、siUByte、および SiDouble です。使用可能なタイプは、siString、siBool、siDouble、siFloat、siInt4、siInt2、siUInt4、siUInt2、siByte、siUByte です(Parameter.ValueType を参照)。 |
DefaultValue | Variant | カスタムパラメータのデフォルト値。ブール値および数値の場合のデフォルト値は 0 で、文字列のデフォルト値は""です(Parameter.Default を参照)。 |
Min | Variant | カスタムパラメータの最小値。siString タイプと siBool タイプでは Min 値は不要です。その他の数値タイプでは、デフォルト値をそのタイプの最小値にすることができます。たとえば、すべての未署名値には min=0 が設定されます(Parameter.Min を参照)。 |
Max | Variant | カスタムパラメータの最大値。siString タイプと siBool タイプでは Max 値は不要です。その他の数値タイプでは、デフォルト値をそのタイプの最小値にすることができます。たとえば、siUByte の最大値は 255 です(Parameter.Max を参照)。 |
// This example illustrates how to add parameters to a custom operator NewScene( null, false ) var null1 = GetPrim("null"); // Create the operator var sop = XSIFactory.CreateScriptedOp( "MySOP", MySOP_Update.toString(), "JScript" ); // Add the ports sop.AddOutputPort( null1.posx ); // Add the parameters var param1 = sop.AddParameter( XSIFactory.CreateParamDef2("text", siString, "hello") ); var param2 = sop.AddParameter( XSIFactory.CreateParamDef2("bool", siBool, true) ); var param3 = sop.AddParameter( XSIFactory.CreateParamDef2("int", siInt4, 10, 0, 100) ); var param4 = sop.AddParameter( XSIFactory.CreateParamDef2("dbl", siDouble, 0.5, 0.0, 1.0) ); // List operator's parameters var eParams = new Enumerator( sop.parameters ); for ( ; !eParams.atEnd(); eParams.moveNext() ) { var param = eParams.item(); Application.LogMessage( param.Name + " = " + param.Value ); } // Connect the operator sop.Connect(); // Operator's update function function MySOP_Update( ctx, out ) { out.Value = ctx.CurrentFrame; } |