使用 python 在 Maya 中导入和重命名多个对象
importing and renaming multiple objects in maya with python
我正在尝试使用 python 在 Maya 中导入多个对象文件,并将文件名用作 Maya 中的对象名称。我已经设法导入了对象,但我只能将文件名用作命名空间而不是对象名。
import maya.cmds as cmds
def import_multiple_object_files():
files_to_import = cmds.fileDialog2(fileFilter = '*.obj', dialogStyle = 2, caption = 'import multiple object files', fileMode = 4)
for file_to_import in files_to_import:
names_list = file_to_import.split('/')
object_name = names_list[-1].replace('.obj', '')
cmds.file('%s' % file_to_import, i = True, type = "OBJ", namespace = object_name, mergeNamespacesOnClash = False, ignoreVersion = True, options = "mo=0", loadReferenceDepth = "all" )
好的,所以此脚本假定您的 .obj 文件中 只有一个网格。事实上,只有从您的导入返回的第一个网格被重命名。
为了检索返回的节点,我使用了 returnNewNodes flag from file 命令。
然后我用rename command将导入的节点重命名为你的文件名
我还删除了命名空间和 mergeNamespacesOnClash 标志。
注意:我今天有点懒,这里没有任何.obj文件,所以我没有测试这段代码。如果你想加载一个包含多个网格的obj文件,给我评论,我会编辑我的答案。
import maya.cmds as cmds
def import_multiple_object_files():
files_to_import = cmds.fileDialog2(fileFilter = '*.obj', dialogStyle = 2, caption = 'import multiple object files', fileMode = 4)
for file_to_import in files_to_import:
names_list = file_to_import.split('/')
object_name = names_list[-1].replace('.obj', '')
returnedNodes = cmds.file('%s' % file_to_import, i = True, type = "OBJ", rnn=True, ignoreVersion = True, options = "mo=0", loadReferenceDepth = "all" )
cmds.rename( returnedNodes[0], object_name)
我正在尝试使用 python 在 Maya 中导入多个对象文件,并将文件名用作 Maya 中的对象名称。我已经设法导入了对象,但我只能将文件名用作命名空间而不是对象名。
import maya.cmds as cmds
def import_multiple_object_files():
files_to_import = cmds.fileDialog2(fileFilter = '*.obj', dialogStyle = 2, caption = 'import multiple object files', fileMode = 4)
for file_to_import in files_to_import:
names_list = file_to_import.split('/')
object_name = names_list[-1].replace('.obj', '')
cmds.file('%s' % file_to_import, i = True, type = "OBJ", namespace = object_name, mergeNamespacesOnClash = False, ignoreVersion = True, options = "mo=0", loadReferenceDepth = "all" )
好的,所以此脚本假定您的 .obj 文件中 只有一个网格。事实上,只有从您的导入返回的第一个网格被重命名。
为了检索返回的节点,我使用了 returnNewNodes flag from file 命令。
然后我用rename command将导入的节点重命名为你的文件名
我还删除了命名空间和 mergeNamespacesOnClash 标志。
注意:我今天有点懒,这里没有任何.obj文件,所以我没有测试这段代码。如果你想加载一个包含多个网格的obj文件,给我评论,我会编辑我的答案。
import maya.cmds as cmds
def import_multiple_object_files():
files_to_import = cmds.fileDialog2(fileFilter = '*.obj', dialogStyle = 2, caption = 'import multiple object files', fileMode = 4)
for file_to_import in files_to_import:
names_list = file_to_import.split('/')
object_name = names_list[-1].replace('.obj', '')
returnedNodes = cmds.file('%s' % file_to_import, i = True, type = "OBJ", rnn=True, ignoreVersion = True, options = "mo=0", loadReferenceDepth = "all" )
cmds.rename( returnedNodes[0], object_name)