现在的位置: 首页 > 综合 > 正文

Python:Maya2WRL简单导出脚本(source included)

2013年03月25日 ⁄ 综合 ⁄ 共 1596字 ⁄ 字号 评论关闭

可以快速的导出Maya的mesh到wrl格式(For my GF)

例如,上图Tshape所导出wrl为:

#VRML V2.0 utf8 (Converted to ASCII)
#Exported from Maya by SU&WEI
Shape {
	geometry IndexedFaceSet {
		coord Coordinate {
			point [
			-0.5  -0.5  0.5  -1
			0.5  -0.5  0.5  -1
			-0.5  0.5  0.5  -1
			0.5  0.5  0.5  -1
			-0.5  0.5  -0.5  -1
			0.5  0.5  -0.5  -1
			-0.5  -0.5  -0.5  -1
			0.5  -0.5  -0.5  -1
			-0.5  -0.5  1.94956040382  -1
			0.5  -0.5  1.94956040382  -1
			0.5  0.5  1.94956040382  -1
			-0.5  0.5  1.94956040382  -1
			1.39999997616  -0.5  -0.5  -1
			1.39999997616  -0.5  0.5  -1
			1.39999997616  0.5  -0.5  -1
			1.39999997616  0.5  0.5  -1
			-1.39999997616  -0.5  -0.5  -1
			-1.39999997616  -0.5  0.5  -1
			-1.39999997616  0.5  0.5  -1
			-1.39999997616  0.5  -0.5  -1
			]
		}
		coordIndex [
			  8  9  11  -1
			  9  10  11  -1
			  2  3  4  -1
			  3  4  5  -1
			  4  5  6  -1
			  5  6  7  -1
			  0  6  7  -1
			  0  1  7  -1
			  12  13  15  -1
			  12  14  15  -1
			  16  17  19  -1
			  17  18  19  -1
			  0  1  8  -1
			  1  8  9  -1
			  1  3  9  -1
			  3  9  10  -1
			  2  3  10  -1
			  2  10  11  -1
			  0  2  11  -1
			  0  8  11  -1
			  1  7  13  -1
			  7  12  13  -1
			  5  7  12  -1
			  5  12  14  -1
			  3  5  14  -1
			  3  14  15  -1
			  1  3  15  -1
			  1  13  15  -1
			  0  6  16  -1
			  0  16  17  -1
			  0  2  17  -1
			  2  17  18  -1
			  2  4  18  -1
			  4  18  19  -1
			  4  6  19  -1
			  6  16  19  -1
		]
	}
}

source:

from maya.cmds import *
import re
'''
	Transport selected mesh into .wrl format and write it to d:\\maya_output.wrl
'''

# generate
print('Generating WRL...'),
buffer = '''#VRML V2.0 utf8 (Converted to ASCII)
#Exported from Maya by SU&WEI
Shape {
	geometry IndexedFaceSet {
		coord Coordinate {
			point [
'''
			
numVtx = polyEvaluate(v=1)
for i in range(numVtx):
    pos = pointPosition('.vtx['+str(i)+']')
    buffer+='\t'*3+str(pos[0])+'  '+str(pos[1])+'  '+str(pos[2])+'  -1\n'

buffer+='''			]
		}
		coordIndex [
'''

p=re.compile('\[\d*\]')
numPoly = polyEvaluate(f=1)
for i in range(numPoly):
    vtxIds = polyListComponentConversion('.f['+str(i)+']',tv=1)
    vtxIds = filterExpand(vtxIds,ex=1,sm=31)
    buffer+='\t'*3
    for j in vtxIds:
        id = p.search(j).group()
        id = id[1:-1]
        buffer+='  '+id
    buffer+='  -1'+'\n'

buffer+='''		]
	}
}'''
print('OK')

# write
print(r'Writing to d:\maya_output.wrl...'),
f = open(r'd:\maya_output.wrl','w')
f.write(buffer)
f.close()
print('OK')
【上篇】
【下篇】

抱歉!评论已关闭.