pythonを使用して
自作のノードプラグインを作成することができます。
HelloNode.py)
# -*- coding: utf-8 -*-
import sys
import maya.OpenMaya as OpenMaya
import maya.OpenMayaMPx as OpenMayaMPxkPluginNodeId = OpenMaya.MTypeId( 0x8FFFF )
# Helloノード
class myNode( OpenMayaMPx.MPxNode ):# 値アトリビュート
m_value = OpenMaya.MObject()# init
def __init__(self):
OpenMayaMPx.MPxNode.__init__(self)# compute
def compute( self, plug, pDataBlock ):
return OpenMaya.kUnknownParameter# creater
def nodeCreator():
return OpenMayaMPx.asMPxPtr( myNode() )# initializer
def nodeInitializer():
numAttrFn = OpenMaya.MFnNumericAttribute()# アトリビュートの作成
myNode.m_value = numAttrFn.create( 'value', 'v', OpenMaya.MFnNumericData.kFloat, 100 )
numAttrFn.setWritable( True )
numAttrFn.setStorable( True )
numAttrFn.setHidden( False )
myNode.addAttribute( myNode.m_value )
# プラグインの登録
def initializePlugin( obj ):
plugin = OpenMayaMPx.MFnPlugin( obj, 'toncrimentan', '1.0', 'Any' )
plugin.registerNode( 'helloNode', kPluginNodeId, nodeCreator, nodeInitializer )# プラグインの解除
def uninitializePlugin( obj ):
plugin = OpenMayaMPx.MFnPlugin( obj )
plugin.deregisterNode( kPluginNodeId )
プラグインマネージャーで
自作したノードプラグインを読み込みます。
スクリプトエディタで
createNode "helloNode" -n "myNode1"
を実行し自作ノードを作成します。
ハイパーグラフ:コネクション
で選択中のノードを表示するときちんとできていることがわかる。
使いどころに悩む。
というのが個人の意見です。
ロケーターノードにエクストラアトリビュートをつけて使用しても事足りる。
ということと
同様のノードプラグインを持っていない方にも
配給することが可能だからです。