编辑:我设法解决了我以前遇到的问题,但不是我创建另一个新问题,我遇到的这个问题与我猜的几乎相似?如何从另一个函数中选择导入对象名称
由于我修改了一些这个脚本,我目前doingn的内容,它会启动这个UI,每当用户进口的.chan
对象
目前,我试图编辑摄像机名称,这样当用户选择相机,它会将导入相机的名称继承到其名称空间。 虽然我不是很确定,但我认为customNodeTranslator
类中的reader
函数是读取导入相机的函数吗?
这是错误messgae:
# Error: global name 'cameraName' is not defined
# Traceback (most recent call last):
# File "/user_data/scripts/test/maya/plugins/chan.py", line 210, in readFileIn
# self.importTheChan = ChanFileImporter(chanRotationOrder)
# File "/user_data/scripts/test/maya/plugins/chan.py", line 286, in __init__
# self.cameraName = cameraName
# NameError: global name 'cameraName' is not defined #
这是原来的代码:
class customNodeTranslator(OpenMayaMPx.MPxFileTranslator):
...
...
...
def reader(self, fileObject, optionString, accessMode):
self.initialWindow()
try:
fullName = fileObject.fullName()
print ">>> full Name is %s" %fullName
#self.fileHandle = open(fullName,"r")
camHandle = open(fullName,"r")
camPath = os.path.basename(camHandle.name)
camName = os.path.splitext(camPath)[0]
print ">>> This is the name: %s" % camName
except:
sys.stderr.write("Failed to read file information\n")
raise
return camName
class chanImport():
""" importing chan camera from nuke """
def __init__(self, rotation):
self.rotation = rotationOrder
# create the camera
self.cameraName = cmds.camera(n=str(camName))
self.cameraShape = self.cameraName[1]
cmds.select(self.cameraShape)
cmds.scale(0.5, 0.5, 0.5)
下面的代码是实际的代码本身我修改前:
class customNodeTranslator(OpenMayaMPx.MPxFileTranslator):
...
...
...
def writer(self, fileObject, optionString, accessMode):
try:
fullName = fileObject.fullName()
fileHandle = open(fullName,"w")
selectList = OpenMaya.MSelectionList()
OpenMaya.MGlobal.getActiveSelectionList(selectList)
node = OpenMaya.MObject()
depFn = OpenMaya.MFnDependencyNode()
path = OpenMaya.MDagPath()
iterator = OpenMaya.MItSelectionList(selectList)
animationTime = OpenMayaAnim.MAnimControl()
class ChanFileImporter():
def __init__(self, rotationOrder):
self.rotationOrder = rotationOrder
# create the camera
self.cameraName = cmds.camera()
self.cameraShape = self.cameraName[1]
cmds.select(self.cameraShape)
cmds.scale(0.5, 0.5, 0.5)
你能分享充分和准确的错误信息你越来越?您可能需要取出异常处理,以确保不会掩盖该错误。 – mhlester 2014-09-02 14:08:49
@mhlester对不起,回复迟了。我刚刚在错误消息中添加了如下内容。看起来全局变量可能不是一个好主意。有没有什么方法可以尝试修改它以获取相机的名称? – dissidia 2014-09-16 09:12:38