説明された Python API 1.0 Hello World のサンプル

Hello World のサンプルは、Maya Python API 1.0 を使用するプラグイン開発の重要な構成要素をいくつか示します。

Python 関数とプラグインの詳細については、「Maya Python API」セクションを参照してください。

コマンド プラグインは MPxCommand から継承されます。

class Py1HelloWorldCmd(OpenMayaMPx.MPxCommand):
    kPluginCmdName = "py1HelloWorld"

コマンドをインスタンス化する

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

詳細については、「doIt() 関数と redoIt() 関数」を参照してください。

@staticmethod
   def cmdCreator():
        return OpenMayaMPx.asMPxPtr( Py1HelloWorldCmd() )

        def doIt(self,argList):
            print ("Hello World!")

プラグインを初期化する

すべてのプラグインは、initializePlugin() 関数を実装する必要があります。次に、この関数が registerCommand() を呼び出します。initializePlugin() が実装されていない場合、プラグインのロードは失敗します。詳細については、「プラグインの初期化と初期化解除」を参照してください。

def initializePlugin(plugin):
    pluginFn = OpenMayaMPx.MFnPlugin(plugin)
    try:
        pluginFn.registerCommand(
        Py1HelloWorldCmd.kPluginCmdName, Py1HelloWorldCmd.cmdCreator
    )
    except:
        sys.stderr.write(
            "Failed to register command: %s\n" % Py1HelloWorldCmd.kPluginCmdName
    )
    raise

プラグインの初期化を解除する

すべてのプラグインは、uninitializePlugin() 関数を実装する必要があります。次に、この関数が deregisterCommand() を呼び出します。uninitializePlugin() が実装されていない場合、プラグインのロードは失敗します。詳細については、「プラグインの初期化と初期化解除」を参照してください。

def uninitializePlugin(plugin):
    pluginFn = OpenMayaMPx.MFnPlugin(plugin)
    try:
        pluginFn.deregisterCommand(Py1HelloWorldCmd.kPluginCmdName)
    except:
        sys.stderr.write(
            "Failed to unregister command: %s\n" % Py1HelloWorldCmd.kPluginCmdName
        )
    raise