3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

Maya Python API "HelloWorld"

import maya.OpenMaya as om
import maya.OpenMayaMPx as ommpx

class pyHelloWorldCmd(ommpx.MPxCommand):
	
	#プラグインコマンドを指定する
	kPluginCmdName = 'pyApiHelloWorld'
	def __init__(self):
		ommpx.MPxCommand.__init__(self)
		
	def doIt(self, args):
		print('Hello Python API!')
"""	
	@classmethod
	def cmdCreator(cls):
		return ommpx.asMPxPtr(cls())
"""

def cmdCreator():
	return ommpx.asMPxPtr(pyHelloWorldCmd())
	
def initializePlugin(obj):
	plugin = ommpx.MFnPlugin(
		obj,
		'Vendor Name',
		'Version', 'API Version'
	)
	try:
		plugin.registerCommand(
			pyHelloWorldCmd.kPluginCmdName,
			cmdCreator
		)
	except:
		raise Exception(
			'Failed to register command: %s'%
			pyHelloWorldCmd.kPluginCmdName
			)
def uninitializePlugin(obj):
	plugin = ommpx.MFnPlugin(obj)
	try:
		plugin.deregisterCommand(
			pyHelloWorldCmd.kPluginCmdName
		)
	except:
		raise Exception(
			'Failed to unregister command: %s'%
			pyHelloWorldCmd.kPluginCmdName
		)

うーむ、変な隙間があって見づらいですね…
長くなれば長くなるほど、はてなのやつは見づらい。
といってもSyntaxHighlighterは相性が悪かったのでこれになったわけで(^^;

さてさてMayaPythonAPIをちょっと勉強中です。
といってもまだ初歩の初歩なんですけどね。

クラスメソッドを使ったcreatorも無駄に入れてあります。

ただ正直、mel、cmds、PyMelとは比べ物にならないくらい理解不能です(笑)

目的が不明瞭なせいもあるんでしょうが…
コンスタントにやらないとすぐ忘れてしまいそうです(^^;