#python #maya #autodesk #fbx
Вопрос:
Я сделал кнопку в Maya, которая при нажатии импортирует файл .fbx. Когда я снова нажимаю кнопку, чтобы импортировать тот же файл .fbx, он перезаписывает тот, который уже есть в сцене, когда цель состоит в том, чтобы сделать дубликат.
Пример того, чего я пытаюсь достичь: я нажимаю кнопку, и она импортирует «sphere.fbx» в сцену как «сфера». Я снова нажимаю кнопку, и она импортирует «sphere.fbx» в сцену как «sphere1».
Это все, что я использую для импорта файла .fbx:
cmds.file(shapePath shapeList[value], i = True, mnc = True, ns = ":")
Я пытался найти какие-то решения, но мне не повезло.
Комментарии:
1. Импорт лучше всего обрабатывать с помощью пространств имен, которые управляются
ns
аргументом в вашейcmds.file
команде. Попробуйте там несколько разных строк, и я уверен, вы поймете, что я имею в виду. Это не совсем то решение, которое вы ищете, но я осмелюсь сказать, что это правильный подход.
Ответ №1:
Оказывается, вы не можете импортировать файл fbx дважды, насколько я могу судить. Что вы можете сделать в качестве обходного пути:
- Попытка импортировать файл
- Если это не работает, импортируйте файл fbx в качестве ссылки
- Сделайте эту ссылку частью сцены.
# Attempt to import fbx into the scene
# returnNewNodes(rnn) flag will tell us if it added anything
new_nodes = cmds.file(file_path, i=True, rnn=True)
print("Nodes added: {}".format(new_nodes))
# If nothing was added to the scene, import as reference
if not new_nodes:
cmds.file(file_path, mnc=True, reference=True)
# Make reference part of the scene
cmds.file(file_path, importReference=True)