ユーザ独自の .NET プラグインの作成

Maya .NET SDK は 64 ビットのみで使用できます。Maya .NET プラグイン プロジェクトも x64 でコンパイルされていることを確認してください。

プラグインは、Autodesk.Maya.OpenMaya.IExtensionPlugin インタフェースを実装する必要があります。何も行わない既定の実装でもかまいません。

SDK はこのインタフェースを実装する最初のクラスを検索しますが、IExtensionPlugin の実装の検出を速くするため、.NET プラグインには次のように 1 つの ExtensionPlugin アセンブリ アトリビュートをオプションで含めることもできます。

[assembly: ExtensionPlugin(typeof(MayaNetPlugin.helloWorldPlugin), "Autodesk", "1.0", "Any")]

アセンブリ アトリビュートの詳細については、「.NET アセンブリ アトリビュートを使用する」を参照してください。

このアセンブリ アトリビュートは、通常は宣言を使用した後に、ネームスペース外部のライブラリの任意のソース ファイル内で出現できます。

プラグイン ライブラリは、任意の数のカスタム .NET コマンド、または .NET ノードを含むことができます。

Maya .NET SDK メソッドのマニュアルは IntelliSense をサポートし、コードを入力するとポップアップ表示されます。

注:
  • 独自のカスタム .NET プラグイン プロジェクトを作成する場合には、Maya アセンブリ リファレンスの[ローカル コピー](Copy Local)プロパティを false に設定する必要があります。

    [ローカル コピー](Copy Local)プロパティが有効になっていると(既定)、Visual Studio はコードを実行するのに必要なリファレンスを .NET プロジェクトの出力フォルダ ¥bin にコピーし、それらを毎回ロードします。しかし、そのプラグインは Maya で実行されるので、リファレンスは既に Maya にインストールおよびロードされており、使用可能になっています。

    結果として、そのプラグインは初期化に失敗することがあります。

    [ローカル コピー](Copy Local)を false に設定するには、Visual Studio の[ソリューション エクスプローラ](Solution Explorer)で、リファレンスを右クリックします。そして[プロパティ](Properties)を選択し、表示された[プロパティ](Properties)ウィンドウで、[ローカル コピー](Copy Local)を false に設定します。

  • Maya の bin フォルダ内にないアセンブリをプラグインが参照している場合、Maya がプラグインをロードするように、PATH 環境変数にこれらのアセンブリのパスを追加する必要があります。

オブジェクト インスタンスの比較

== または != を使用した 2 つのオブジェクト参照の比較は、常に、意図したように動作しない可能性があります。たとえば、.NET ベース クラスから派生されるオブジェクトが新しいメモリ インスタンスに移動することがあります。Maya オブジェクトを比較するには、メンバ関数 MObject.equalEqual および MObject.notEqual を代わりに使用します。

内部 SWIG 型について

API で公開される一部の型の名前には、swig が含まれています。これは内部使用専用であり、サポートされていません。

ドッキング可能な WPF コントロールの作成

MDockStation クラスは、Windows コントロールで WPF コントロールをドッキングするための機能を提供します。Developer Kit をインストールしたフォルダの devkit¥dotnet¥wpfexamples フォルダにある DAGExplorer のサンプルを参照してください。