Выполнить GameFbxExporter Maya с Python - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужно экспортировать тысячи файлов с помощью плагина GameFbXExporter из Maya, и мне было интересно, есть ли какой-нибудь способ для сценариев такого экспорта, зная, что параметры подходят для всех файлов. Все, что мне нужно сделать, это заполнить раздел пути и имя экспортируемого файла в FBX, а затем запустить сам экспорт с помощью плагина.

Я немного растерян и не знаю, как это сделать. Может ли кто-нибудь помочь мне понять, как этого достичь?

Спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

Экспортер игры написан на MEL, поэтому вы можете взаимодействовать с ним из Python, используя модуль maya.mel.Откроется диалоговое окно, например:

import maya.mel as mel
mel.eval("gameFbxExporter();")

К сожалению, быстрый взгляд на скрипты экспортера игры (которые находятся в вашем каталоге установки maya в каталоге scripts/others - все они начинаются с префикса«gameFBX») чтобы выглядело так, будто пользовательский интерфейс безнадежно запутан в фактическом экспорте;кажется, что он не предоставляет ничего, что на самом деле просто экспортирует текущий файл в пакетном режиме.

Оперативная процедура называется gameExp_FBXExport, определенная в "gameFbxExporter.mel."Похоже, что фактический бизнес экспорта фактически делегирован обычному плагину FBX - все остальное в экспортере игр - это просто управление пресетами fbx, выбор частей сцены для экспорта (если сцены установлены таким образом) изатем вызывая плагин fbx.Таким образом, вы можете быть в состоянии пакетировать процесс, используя Python, перебирая файлы и вызывая FBXExport() из Python.Это позволит экспортировать файл в FBX:

 import maya.cmds as cmds
 cmds.FBXExport('-file', 'path/to/file.fbx')

Он будет использовать только те настройки FBX, которые активны в данный момент, поэтому вам нужно быть уверенным, что файлы настроены правильно.Вы будете испытывать желание написать это как cmds.FBXExport(f='path/to/file'), но не будет работать - команды плагинов FBX не используют обычный синтаксис python.

Если ваши текущие настройки основаны на выбранных функциях экспорта, вам необходимо выяснить, как кэшировать правильные выборки - если вы используете функцию «набор выборок экспорта», у вас должна быть возможностьваш экспортер находит набор по имени и выбирает его перед экспортом.

 cmds.select("name_of_selection_set")
 cmds.FBXExport('-file', 'path/to/file.fbx')

Вы можете использовать другие команды плагина FBX - задокументировано здесь для проверки и манипулирования настройками в ваших файлахкак вы идете вместе.

Большинство профессиональных пользователей не используют конвейер GameExport именно потому, что он очень непрозрачен и не поддерживает партию.В долгосрочной перспективе вы, вероятно, захотите написать простую систему, которая предоставляет стандартные настройки для файлов различных типов и экспортирует FBX-файлы напрямую без GameExporter - хотя это не простой проект, его будет проще поддерживать и расширять, чем взламывать вашпо краям версии Autodesk, которая, честно говоря, довольно хромая.

Если вы еще не знакомы с ней http://tech -artists.org / - отличное место для поискадля помощи и совета трубопровода.

...