3DCGbook

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

OpenMaya 勉強中 その2

基本的ですが、
1.シーン上にあるポリゴンメッシュを走査
2.それらの頂点情報を出力する

import maya.OpenMaya as om

dagPath    = om.MDagPath()
meshFn     = om.MFnMesh()
pointArray = om.MPointArray() 
iter       = om.MItDag()
while not iter.isDone():
	iter.getPath(dagPath)
	if dagPath.apiType() == om.MFn.kMesh:
		meshFn.setObject(dagPath)
		meshFn.getPoints(pointArray,om.MSpace.kWorld)
		
		print meshFn.name()
		for i in xrange(pointArray.length()):
			print "\tvtx[%d] = %f , %f ,%f" %\
			(i , pointArray[i].x,pointArray[i].y,pointArray[i].z)	
	iter.next()

ちなみにPyMelで超適当に取得したのはこっち。

import pymel.core as pm
getMesh = pm.ls(typ='mesh')
print [[getMesh[i],getMesh[i].getPoints()] for i in xrange(len(getMesh))]

リスト内包表記が大好きすぎるのですが見にくすぎる。
のでもちろん人と共有するスクリプトの場合はほとんど使いませんよ!