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

来源:互联网 发布:电子标书制作软件 编辑:程序博客网 时间:2024/05/29 16:04

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


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

#VRML V2.0 utf8 (Converted to ASCII)#Exported from Maya by SU&WEIShape {geometry IndexedFaceSet {coord Coordinate {point [-0.5  -0.5  0.5  -10.5  -0.5  0.5  -1-0.5  0.5  0.5  -10.5  0.5  0.5  -1-0.5  0.5  -0.5  -10.5  0.5  -0.5  -1-0.5  -0.5  -0.5  -10.5  -0.5  -0.5  -1-0.5  -0.5  1.94956040382  -10.5  -0.5  1.94956040382  -10.5  0.5  1.94956040382  -1-0.5  0.5  1.94956040382  -11.39999997616  -0.5  -0.5  -11.39999997616  -0.5  0.5  -11.39999997616  0.5  -0.5  -11.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'''# generateprint('Generating WRL...'),buffer = '''#VRML V2.0 utf8 (Converted to ASCII)#Exported from Maya by SU&WEIShape {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')# writeprint(r'Writing to d:\maya_output.wrl...'),f = open(r'd:\maya_output.wrl','w')f.write(buffer)f.close()print('OK')


原创粉丝点击