2016-08-19 77 views
0

嗨旋转它,我有这样的代码导入OBJ文件到Maya的Python导入单OBJ文件到Maya,移动和使用Python/MEL

**

import maya.cmds as cmds 
 

 
pathOfFiles = "/Path/to/the/files/folder/" 
 
fileType = "obj" 
 

 
files = cmds.getFileList(folder=pathOfFiles, filespec='*.%s' % fileType) 
 
if len(files) == 0: 
 
    cmds.warning("No files found") 
 
else: 
 
    for f in files: 
 
     cmds.file(pathOfFiles + f, i=True)

**

它会导入所有进入该文件夹的obj文件。

不过,我需要的是:

  1. 导入一个OBJ文件一次
  2. 移动和旋转导入的文件
  3. 应用在Maya中已经创建
  4. 渲染
  5. 物料删除文件 6用下一个文件重复该过程

是否有可能与Python或MEL

回答

0

这看起来像一个有趣的挑战做,所以这是我尝试在回答它:

import maya.cmds as cmds 
import glob 

#1. Import an individual OBJ file at once 
def importFile(i): 
    cmds.file(i, i=True, groupReference=True, groupName="myobj") 

#2. Move and rotate the imported file 
def moveFile(): 
    cmds.select("myobj") 
    # Add the X,Y,Z cordinates to change scale, translate and rotate below 
    cmds.scale(1,1,1) 
    cmds.move(0,0,0) 
    cmds.rotate(0,90,0) 

#3. Apply a Material already created in Maya 
    def materialFile(): 
    cmds.select("myobj") 
    myMaterial = "lambert2" + "SG" #replace lambert2 with your material 
    cmds.sets(forceElement=myMaterial) 

#4. Render 
def renderFile(i): 
    cmds.setAttr("defaultRenderGlobals.imageFilePrefix", i, type="string") 
    cmds.render(batch=True) 

#5. Delete the imported file 
def deleteFile(): 
    cmds.select("myobj") 
    cmds.delete() 

# Add the path to your obj files. Make sure to leave the /*.obj at the end 
myglob = glob.glob("/Users/OSX/Desktop/objs/*.obj") 

for i in myglob: 
    importFile(i) 
    moveFile() 
    materialFile() 
    renderFile(i) 
    deleteFile() 

因为你的个人事情的清单,你需要的脚本做我已经把你列表中的每个要求分成它自己的功能。这应该使脚本更加模块化,并且希望易于编辑和重用。

Python对于这类任务的工作要好得多,因为MEL没有函数,而是具有像函数一样工作的过程,但从我所经历的过程中不能很好地工作。

+0

你好K先生,谢谢你的回答。这似乎在我改变了一些变量后正在工作。但是,有些问题我无法修复。 首先,它将图像保存在放置obj的相同文件夹中,但无法打开。只有文件为png和exr。 另外,它不适用该材料。将变量myMaterial更改为在Maya中创建的变量,但仍然没有得到它。 如何应用多种材质?物体需要两种材料。 如何设置多个渲染相机? 欢呼声 – jpits

+0

嗨@ Mr-k我有一个问题,它只是将一个blin着色器应用到整个作品中,而没有更多。我需要应用Maxwell Render materiales并将maxwell设置为渲染器。 – jpits