API ガイド > Maya Python API > Maya Python API 1.0 >

# 初めての Maya Python プラグイン

このトピックは、初めて Maya Python プラグインを作成して実行する場合の手順について説明します。

Maya プラグイン環境変数を設定する

Maya 向けの Python プラグインを作成するには、まず最初に MAYA_PLUG_IN_PATH 環境変数を定義します(まだ定義していない場合)。Maya が起動すると、この変数によってプラグインの場所が認識されます。

Windows 7 の場合は、スタートメニューを開き、検索ボックスに「env」と入力し、Enter を押します。ユーザ変数(User variables)セクションで、新規(New)ボタンをクリックし、変数名として「MAYA_PLUG_IN_PATH」と入力します。選択するパスに変数値を設定します。後でこのパスにスクリプトを格納します。たとえば、変数値「%USERPROFILE%¥Documents¥Maya¥scripts」は現在のユーザの My Documents¥Maya¥scripts ディレクトリに対応します。複数のパスを指定するには、変数値をセミコロン「;」で区切ります。

Maya を起動すると、MAYA_PLUG_IN_PATH に含まれるディレクトリがウィンドウ > 設定/プリファレンス > プラグイン マネージャ(Window > Settings/Preferences > Plug-in Manager)に別のセクションとして表示されます。

スクリプト エディタを使用して Python プラグインを作成する

Python および MEL Script Editor (Python and MEL Script Editor)ウィンドウは、ウィンドウ > 一般エディタ > スクリプト エディタ(Window > General Editors > Script Editor)にあります。Python プラグインは任意の外部テキスト エディタを使用して作成することもできますが、このトピックでは Maya にビルトインされた対話型スクリプト エディタを使用した手順を説明します。Maya の現行バージョンは Python 2.6 インタプリタをサポートすることに注意してください。

スクリプト エディタの Python タブに、以下のプラグイン コードをペーストしてください。このプラグイン(helloWorldCmd.py)を含む他の Python プラグインのサンプルは、API リファレンス > 例(API Reference > Examples)の左側の HTML フレームに表示されます。次のトピックでは、プラグインのプログラム構造を説明します。ここでは、最初のプラグインの実行に焦点を置きます。

    import sys
    import maya.OpenMaya as OpenMaya
    import maya.OpenMayaMPx as OpenMayaMPx

    kPluginCmdName = "spHelloWorld"

    # Command
    class scriptedCommand(OpenMayaMPx.MPxCommand):
        def __init__(self):
            OpenMayaMPx.MPxCommand.__init__(self)

        # Invoked when the command is run.
        def doIt(self,argList):
            print "Hello World!"

    # Creator
    def cmdCreator():
        return OpenMayaMPx.asMPxPtr( scriptedCommand() )

    # Initialize the script plug-in
    def initializePlugin(mobject):
        mplugin = OpenMayaMPx.MFnPlugin(mobject)
        try:
            mplugin.registerCommand( kPluginCmdName, cmdCreator )
        except:
            sys.stderr.write( "Failed to register command: %s\n" % kPluginCmdName )
            raise

    # Uninitialize the script plug-in
    def uninitializePlugin(mobject):
        mplugin = OpenMayaMPx.MFnPlugin(mobject)
        try:
            mplugin.deregisterCommand( kPluginCmdName )
        except:
            sys.stderr.write( "Failed to unregister command: %s\n" % kPluginCmdName )

ここで、スクリプト エディタ ウィンドウで、ファイル > スクリプトの保存(File > Save Script)を選択し、ファイル名「myFirstPlugin.py」 (.py 拡張子は自動的に追加されるので省略可)を使用して、MAYA_PLUG_IN_PATH 環境変数によって指定されるのと同じディレクトリにスクリプトを保存します。

新規保存したスクリプトを Maya が認識しているか確認するには、プラグイン マネージャ(Plug-in Manager)ウィンドウに、ウィンドウ > 設定/プリファレンス > プラグイン マネージャ(Window > Settings/Preferences > Plug-in Manager)でアクセスし、更新(Refresh)ボタンを押します。プラグイン ファイルはここに表示されます。ロード(Loaded)または自動ロード(Auto load)チェックボックスはここではオンにしないでください。

Python プラグインをロードする

新規作成されたプラグインを Maya にロードするには、2 つの方法があります。

- プログラムを使用 - スクリプト エディタで、以前の Python コードを削除します。ここで次のコード行を書き、スクリプト エディタのツールバー上の青色の実行(Play)ボタンを使用してコードを実行します。

      import maya.cmds
      maya.cmds.loadPlugin("myFirstPlugin.py")

  プラグイン マネージャ(Plug-in Manager)ウィンドウを表示したときに、プラグインのロード(Loaded)チェックボックスがオンになっていることを確認します。
- 手動 - プラグイン マネージャ(Plug-in Manager)ウィンドウ内で、ロード(Loaded)および自動ロード(Auto load)チェックボックスをオンにすることができます。ロード(Loaded)チェックボックスをオンにするとプラグインがロードされ、自動ロード(Auto load)チェックボックスをオンにすると、Maya を起動したときに自動的にプラグインがロードされるようになります。ロード(Loaded)チェックボックスを一度オフにしてから再度オンにするとプラグインがリロードされます。これは、コードのテストやデバッグの際に便利です。

Python プラグインを起動する

ここで作成したのは、「Command」プラグインです。つまり、このプラグインは、呼び出されたときに「Hello World!」を出力する新しいコマンドを定義します。作成したプラグインが正しくロードされると、Python モジュール maya.cmds 内に関数として表示されます。このモジュールはすべての利用可能な Maya Python コマンド(利用可能な MEL コマンドのサブセット)を定義します。コマンドを実行するには、スクリプト エディタ内で次のコードを実行します。

    import maya.cmds as cmds
    cmds.spHelloWorld()

スクリプト エディタには次の行が表示されます。ここには、「Hello World!」という出力とともにコマンドがエコーされます。

    import maya.cmds as cmds
    cmds.spHelloWorld()
    Hello World!

これで 初めての Maya Python プラグインが実行されました。