这看起来像一个有趣的挑战做,所以这是我尝试在回答它:
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没有函数,而是具有像函数一样工作的过程,但从我所经历的过程中不能很好地工作。
你好K先生,谢谢你的回答。这似乎在我改变了一些变量后正在工作。但是,有些问题我无法修复。 首先,它将图像保存在放置obj的相同文件夹中,但无法打开。只有文件为png和exr。 另外,它不适用该材料。将变量myMaterial更改为在Maya中创建的变量,但仍然没有得到它。 如何应用多种材质?物体需要两种材料。 如何设置多个渲染相机? 欢呼声 – jpits
嗨@ Mr-k我有一个问题,它只是将一个blin着色器应用到整个作品中,而没有更多。我需要应用Maxwell Render materiales并将maxwell设置为渲染器。 – jpits