とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

maya:pythonによる コマンドプラグイン の作成手順

1.プラグインパスのいずれかに

  コマンドプラグインを作成(HelloWorld.py)

  ※筆者の場合は:C:\Users\(ユーザー名)\Documents\maya\plug-ins

f:id:toncrimentan_w:20200305004112j:plain

 2.プラグインの内容を記述

  ※ -*- coding: utf-8 -*- はutfで書いてますよというおまじないなので必要

  参考:http://help.autodesk.com/view/MAYAUL/2016/JPN/?guid=__files_GUID_B968733D_B288_4DAF_9685_4676DC3E4E94_htm

 
# -*- coding: utf-8 -*-

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

# ハローコマンド
class HelloWorldCmd(OpenMayaMPx.MPxCommand):
    kPluginCmdName = u'HelloWorldCmd'

    # init
    def __init__(self):
        OpenMayaMPx.MPxCommand.__init__(self)

    # creator
    @staticmethod
    def cmdCreator():
        return OpenMayaMPx.asMPxPtr( HelloWorldCmd() )

    # doIt
    def doIt(self,argList):
        print u'Hello World'

# プラグインの登録
def initializePlugin(plugin):
    pluginFn = OpenMayaMPx.MFnPlugin(plugin)
    pluginFn.registerCommand( HelloWorldCmd.kPluginCmdName, HelloWorldCmd.cmdCreator )

# プラグインの解除
def uninitializePlugin(plugin):
    pluginFn = OpenMayaMPx.MFnPlugin(plugin)
    pluginFn.deregisterCommand( HelloWorldCmd.kPluginCmdName )

 3.プラグインをロードする

import maya.cmds as cmds
cmds.loadPlugin('HelloWorld.py'quiet=True )

 4.プラグインのロードに成功

f:id:toncrimentan_w:20200305004715j:plain

 5.コマンドを実行

import maya.cmds as cmds
cmds.HelloWorldCmd()

 6.実行に成功し文字が表示することができました

f:id:toncrimentan_w:20200305004942j:plain

 7.ちなみにアンロード

import maya.cmds as cmds
cmds.unloadPlugin( 'HelloWorld.py'force=True )