Init (コマンド)


詳細

プラグインのロード後に、初めてコマンドが起動されると発生します。 コマンドの戻り値と引数を指定します。

自己インストール カスタム コマンドは、Softimage の他のコマンド(カスタムおよびネイティブの両方)と異なり、Softimage のロード時には Softimage コマンド マップに追加され、Softimage の終了時や明示的にアンインストールされたときには削除されます。 このため、自己インストール コマンドは、Init コールバック内部で定義する必要があります。


適用対象

カスタム コマンド


構文

public class <command_name>

{

	public bool Init( Context in_context )

	{

		...

	}

}
CStatus <command_name>_Init( CRef& in_context ) 

{ 

	... 

}
function <command_name>_Init( in_context ) 

{ 

	... 

}
def <command_name>_Init( in_context ):

	...
Function <command_name>_Init( in_context )

	...

End Function
sub <command_name>_Init 

{ 

	my $in_context = shift; 

}

<command_name> は、PluginRegistrar.RegisterCommand の呼び出しで指定されている名前です。この名前に含まれるスペースはアンダースコアに置き換えられます。


パラメータ

パラメータ 言語 タイプ 説明
in_context スクリプティングおよび C# コンテキスト Context.SourceCommand を返します。
C++ CRef& Context オブジェクトへのリファレンス。 Context::GetSourceCommand を返します。


// JScript code generated by the Command Wizard

function XSILoadPlugin( in_reg )

{

	in_reg.Author = "sblair";

	in_reg.Name = "My_JsCommandPlugin";

	in_reg.Email = "";

	in_reg.URL = "";

	in_reg.Major = 1;

	in_reg.Minor = 0;



	in_reg.RegisterCommand("My_JsCommand","My_JsCommand");

	//RegistrationInsertionPoint - do not remove this line



	return true;

}



function My_JsCommand_Init( ctxt )

{

	var oCmd;

	oCmd = ctxt.Source;

	oCmd.Description = "";

	oCmd.ReturnValue = true;



	var oArgs;

	oArgs = oCmd.Arguments;

	oArgs.AddWithHandler("Arg0","AnimatableParameters");

	oArgs.AddWithHandler("Arg1","Collection");

	oArgs.AddWithHandler("Arg2","SingleObj");

	oArgs.Add("Arg5",siArgumentInput);

	return true;

}



function My_JsCommand_Execute( Arg0,Arg1,Arg2,Arg5 )

{



	Application.LogMessage("My_JsCommand_Execute called");

	// 

	// TODO: Put your command implementation here.

	// 

	return true;

}
// C++ code generated by the Command Wizard

#include <xsi_application.h>

#include <xsi_context.h>

#include <xsi_pluginregistrar.h>

#include <xsi_status.h>

#include <xsi_argument.h>

#include <xsi_command.h>

using namespace XSI; 



SICALLBACK XSILoadPlugin( PluginRegistrar& in_reg )

{

	in_reg.PutAuthor(L"sblair");

	in_reg.PutName(L"CmdCppExamplePlugin");

	in_reg.PutEmail(L"");

	in_reg.PutURL(L"");

	in_reg.PutVersion(1,0);

	in_reg.RegisterCommand(L"CmdCppExample",L"CmdCppExample");

	//RegistrationInsertionPoint - do not remove this line



	return CStatus::OK;

}



SICALLBACK XSIUnloadPlugin( const PluginRegistrar& in_reg )

{

	CString strPluginName = in_reg.GetName();

	Application().LogMessage(strPluginName + L" has been unloaded.");

	return CStatus::OK;

}



SICALLBACK CmdCppExample_Init( CRef& in_ctxt )

{

	Context ctxt( in_ctxt );

	Command oCmd;

	oCmd = ctxt.GetSource();

	oCmd.PutDescription(L"");

	oCmd.EnableReturnValue(true);



	ArgumentArray oArgs;

	oArgs = oCmd.GetArguments();

	oArgs.AddWithHandler(L"Arg0",L"AnimatableParameters");

	oArgs.AddWithHandler(L"Arg1",L"Collection");

	oArgs.AddWithHandler(L"Arg2",L"SingleObj");

	oArgs.AddWithHandler(L"Arg3",L"Frame");

	oArgs.AddWithHandler(L"Arg4",L"MarkedParameters");

	oArgs.Add(L"Arg5");

	return CStatus::OK;

}



SICALLBACK CmdCppExample_Execute( CRef& in_ctxt )

{

	Context ctxt( in_ctxt );

	CValueArray args = ctxt.GetAttribute(L"Arguments");

	CValue Arg0 = args[0];

	CValue Arg1 = args[1];

	CValue Arg2 = args[2];

	CValue Arg3 = args[3];

	CValue Arg4 = args[4];

	CValue Arg5 = args[5];



	Application().LogMessage(L"CmdCppExample_Execute called");

	// 

	// TODO: Put your command implementation here.

	// 

	// Return a value by setting this attribute:

	ctxt.PutAttribute( L"ReturnValue", true );



	// Return CStatus::Fail if you want to raise a script error

	return CStatus::OK;

}


関連項目