Hello World の説明

Hello World のサンプルは、プラグイン開発の重要なコンポーネントをいくつか示します。

ここに示されているクラスおよび関数の詳細については、C++ API リファレンスを参照してください。

MArgList

MArgList はプラグインの引数を収集して、リストに保存します。また、C と C++ の標準の argc および argv にも同様な機能を提供します。

いずれのバージョンの Hello World でも、MArgList 代入演算子 const MArgList& args を使用して、プラグインに渡される引数を収集します。ただし、2 番目のバージョンのプラグインのみは、渡された引数を使用します。

cout << args.asString( 0 ).asChar() <<  " " << args.asString( 1 ).asChar() << endl;

プラグインに渡された引数は、args リストに保存されます。asString() 関数はリストの引数を MString オブジェクトとして返します。asChar() 関数は MString を C++ の char * に変換します。

DeclareSimpleCommand

すべてのプラグインで、initializePlugin()uninitializePlugin()、および creator() 関数を実装する必要があります。

単純なプラグインでは、initializePlugin()uninitializePlugin()、および creator() の代わりに DeclareSimpleCommand() マクロが使用されるため、これらの関数自体を実装する必要はありません。

DeclareSimpleCommand() は、プラグインのクラス、プラグインの所有者、バージョンという 3 つの引数を取ります。

DeclareSimpleCommand( helloWorld, "Autodesk", "2020");

DeclareSimpleCommand() は取り消し可能なコマンドを作成する場合のみ使用できます。取り消し可能なコマンドを元に戻すことはできないため、これらのコマンドではシーンの照会のみが行われます。シーンの変更は、いかなる方法でも行われません。

重要: シーンを変更する取り消し可能なコマンドを作成すると、Maya の「元に戻す」機能が正常に行われなくなります。

DeclareSimpleCommand() を使用するには、MSimple.h を含める必要があります。

doIt

この単純な例では、doIt() は、Maya 出力ウィンドウに書き込むというコマンドのアクションを実行します。

より複雑なコマンド プラグインでは、doIt() を使用して引数を解析し、内部データを設定し、その他のハウスキーピング処理を行ってから、redoIt() 関数を呼び出します。その後、redoIt() 関数はコマンドのアクションを実行します。

ほとんどの API 関数と同様に、doIt()MStatus オブジェクトを返します。返されたステータスは、さらに複雑なプラグインでエラー処理やエラー ロギングに使用できます。この場合、プラグインは常に、成功を表すステータス コード MS:kSuccess を返します。