3DCGbook

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

はじめてのOpenMaya ~Attributes~

完全にメモレベルなので汚いですが…
maya.cmdsやPyMelだったらすぐ取得できるのに…とたまに考えてしまう。

変数 = 関数(セットするもの)
に全く慣れないです(^^;

#MSelectionListを作る。これはオブジェクトを入れておく配列。
mSel = OpenMaya.MSelectionList()
mSel.add('pPlane1')

#MObject と MDagPathを作る。
mObj = OpenMaya.MObject()
mDagPath = OpenMaya.MDagPath()

#getDependencyNode & getDagPath
mSel.getDependNode(0,mObj)
mSel.getDagPath(0,mDagPath)
print mDagPath.fullPathName()

#Mesh Function Set
mFnMesh = OpenMaya.MFnMesh(mDagPath)
print mFnMesh.fullPathName()

#DependencyNode function Set
mFnDependNode = OpenMaya.MFnDependencyNode(mObj)
print mFnDependNode.name()

#Shapeのコネクションを獲得
mPlugArray = OpenMaya.MPlugArray()
mFnMesh.getConnections(mPlugArray)

mPlugArray.length()
print mPlugArray[0].name()
print mPlugArray[1].name()

mPlugArray2 = OpenMaya.MPlugArray()
#mPlug1はinMesh。inMeshはDestinationなのでTrue。sourceではないのでFalse。
mPlugArray[1].connectedTo(mPlugArray2,True,False)

#アトリビュートのgetとset
mObj2 = mPlugArray2[0].node()
mFnDependNode2 = OpenMaya.MFnDependencyNode(mObj2)

#プラグを見つける
mPlug_width = mFnDependNode2.findPlug('width')
mPlug_height = mFnDependNode2.findPlug('height')

#get
mPlug_width.asInt()
mPlug_height.asInt()

#set
mPlug_height.setInt(20)