【问题标题】:Batch convert Maya files批量转换 Maya 文件
【发布时间】:2018-04-02 08:59:11
【问题描述】:

我实际上正在编写一个脚本,以使用 Maya 批处理模式 (mayapy.exe) 将一个非常基本的 Maya .ma 场景转换为 Nuke .nk 项目

我找到了如何从相机中选择、搜索信息,但我不知道如何将它们导出到文本文件中,因为带有.nk 扩展名的文本文件在 Nuke 中有效。 目前我使用它来将相机导出为 FBX:

outputFilename = os.path.splitext(current)[0]+'.fbx'
    print "Output file: ", outputFilename

cmds.file(outputFilename, exportSelected=True, typ="FBX export", force=True, options="v=0;", es=1)

但这不适用于文本文件或.nk 文件,因为 Maya 在导出设置中没有此选项。 知道如何指定使用 .nk 扩展名写入文本文件吗?

谢谢。

【问题讨论】:

  • 据我所知,maya 没有 nuke .nk 导出器。因此,唯一的解决方案是找到一个已经可以执行您想要的操作的脚本或编写您自己的脚本。这意味着您需要打开一个文本文件并用来自 Maya 的适当数据填充它。
  • 是的,这正是我的问题,如何创建文本文件?我知道如何创建内容,但不知道文件本身没有 .nk 文件,但作为 nuke .nk 文件只是一个带有 .nk 扩展名的文本文件

标签: python maya nuke


【解决方案1】:

批量转换使用类似这样的语法来完成fbx导出:

import maya.mel as mel

mel.eval('FBXExport -f "/Users/swift/Desktop/fileName";')

您将在桌面上获得fileName.fbx 文件。

...或者只是将您想要的内容写入.nk 文件...

fileName = "/Users/swift/Desktop/fileName.nk"

# pass in 'r' for reading a file
# pass in 'r+' for reading and writing a file
# pass in 'w' for overwriting the file
# pass in 'a' for appending to the file

fileWrite = open(fileName,'w')

# write here a content of .nk file
fileWrite.write('Hello, NUKE! ...blah, blah, blah...') 
fileWrite.close()

您将在桌面上获得fileName.nk 文件。


非批量转换使用如下代码:

from pymel.core import *

fileName = fileDialog2()
print fileName[0]
fileWrite = open(fileName[0],'w')

# write here a content of .nk file
fileWrite.write('Hello, NUKE') 
fileWrite.close()
print open(fileName[0],'r').read()

在打开的对话框中输入fileName,扩展名为.nk。你会得到.nk ASCII 文件。

【讨论】:

  • 基础运行良好,但是当我使用其他命令来确定精细名称时,我无法使用您的行 fileName = "/Users/swift/Desktop/fileName.nk" 我使用:fileWrite = open(filename+'.nk', 'w') 并导致 aname.ma.nk 任何想法从中删除 .ma它 ? (即使是负 3 个字符也可以完成这项工作)
  • 您需要一个替换命令。以下是一些示例:stackoverflow.com/questions/4128144/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2019-08-02
  • 2013-04-15
  • 1970-01-01
  • 2019-01-04
  • 2011-10-05
  • 1970-01-01
相关资源
最近更新 更多