Майя: Импортируйте один и тот же файл FBX несколько раз с помощью Python

#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 дважды, насколько я могу судить. Что вы можете сделать в качестве обходного пути:

  1. Попытка импортировать файл
  2. Если это не работает, импортируйте файл fbx в качестве ссылки
  3. Сделайте эту ссылку частью сцены.
 # 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)