DefineLayout コールバックを使用して自己インストール カスタム オペレータに特別なパラメータを定義し、DefineLayout コールバックを使用してこれらのパラメータが表示されるプロパティ ページを調整することができます。
// Add an Alpha parameter in the Define callback CStatus MyOp_Define( CRef& in_ref ) { Context ctxt( in_ref ); CustomOperator op( ctxt.GetSource() ); Factory fact = Application().GetFactory(); // Define the parameters Parameter param; CRef pdef = fact.CreateParamDef( L"Alpha", siDouble, CValue(0.5), CValue(0.01), CValue(0.99) ); op.AddParameter( pdef, param ); } // Put the Alpha parameter in its own grouping CStatus MyOp_DefineLayout( CRef& in_ref ) { Context ctxt( in_ref ); PPGLayout layout( ctxt.GetSource() ); layout.Clear(); // Add a group for the Alpha parameter layout.AddGroup( L"Intensity" ); layout.AddItem( L"Alpha" ); layout.EndGroup(); //... }
// Add an Alpha parameter in the Define callback function MyOp_Define( ctxt ) { var op = ctxt.Source; // Define the parameters var pdef = XSIFactory.CreateParamDef2( "Alpha", siDouble, 0.5, 0.01, 0.99 ); var param = op.AddParameter( pdef ); // ... } // Put the Alpha parameter in its own grouping function MyOp_DefineLayout( ctxt ) { var layout = ctxt.Source; layout.Clear(); // Add a group for the Alpha parameter layout.AddGroup( "Intensity" ); layout.AddItem( "Alpha" ); layout.EndGroup(); //... }
ランタイム(自己インストールでない)オペレータについては、処理中に新しいパラメータを定義および作成できる XSIFactory.CreateParamDef または Factory::CreateParamDef メソッドを使用できます。
カスタム オペレータのパラメータは、custom property のパラメータとよく似ています。ただし、FCurve または FCurve タイプ パラメータ、および GridData または GridData タイプ パラメータはサポートされていません。
カスタム オペレータは、独自のパラメータを持つ代わりに、カスタム プロパティから入力接続を受けることができます。 これは、FCurve パラメータや GridData パラメータが必要な場合や、カスタム プロパティがシーンの深いところに隠されている 1 つまたは複数のオペレータをコントロールするための中心パネルとしての役割を果たしている場合に便利です。