カスタム パラメータの追加

 
 
 

DefineLayout コールバックを使用して自己インストール カスタム オペレータに特別なパラメータを定義し、DefineLayout コールバックを使用してこれらのパラメータが表示されるプロパティ ページを調整することができます。

C++ の例: カスタム パラメータの定義

// 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();

	//...
}

JScript の例: カスタム パラメータの定義

// 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 つまたは複数のオペレータをコントロールするための中心パネルとしての役割を果たしている場合に便利です。