Могу ли я запустить pm.playblast из Mayabatch?

Я пытаюсь воспроизвести несколько сцен Maya в папке, не открывая графический интерфейс Maya.

  • Я успешно запустил безголовый экземпляр Maya с помощью mayabatch.exe
  • Этот экземпляр вызывает скрипт, который сканирует папку
  • Каждая сцена открывается
  • Но я не могу воспроизвести файл сцены

<сильный>1. Фиолетовый шум

Если я просто вызову pm.playblast(format='movie', filename=some_filepathname, viewer=False, forceOverwrite=True, offScreen=True), я получу файл AVI с фиолетовым шумом. Если я переключаюсь на format='image', я получаю последовательность изображений с фиолетовым шумом.

<сильный>2. Невозможно смотреть насквозь

Основываясь на каком-то образце кода воспроизведения, я попытался сначала вызвать pm.lookThru("persp"), но это вызывает следующую трассировку:

#   File "C:\Users\username\Documents\playbatch\blaster.py", line 23, in blast_file
#     pm.lookThru("persp")
#   File "C:\Program Files\Autodesk\Maya2016\Python\lib\site-packages\pymel\inte
rnal\pmcmds.py", line 133, in wrappedCmd
#     res = new_cmd(*new_args, **new_kwargs)
# RuntimeError: There is no active view.

...предположительно, потому что безголовый экземпляр не имеет представления.

<сильный>3. Принудительное использование одной визуализируемой камеры не имеет никакого эффекта

Относительно недавний (2015 г.) пост TO [Maya-Python], "Playblasting in standalone" предполагает, что все, что нужно, это одна камера с возможностью рендеринга.

cams = cmds.ls(type='camera')
for cam in cams:
    cmds.setAttr(cam + '.rnd', 0)
cmds.setAttr('persp.rnd', 1)

... но это по-прежнему создает фиолетовый шум.

Вызов команды playblast из Maya Script Editor/GUI работает. Можно ли воспроизвести из экземпляра без головы/маябатча? Если да, то какие еще значения необходимо установить для успешного воспроизведения?


person lofidevops    schedule 13.04.2016    source источник


Ответы (2)


Вы не можете взорвать Mayabatch, так как он использует графический интерфейс.

У вас есть два варианта:

  • Рендер с аппаратным рендерером
  • Откройте Maya и запустите playblast
person DrWeeny    schedule 13.04.2016

На самом деле вы можете запускать плейбласты в режимах Mayabatch или Mayapy (по умолчанию в playblasts у них разный фон). Я никогда не углублялся в это, но у меня были те же результаты, что и с классическим плейбластом Maya. Я не думаю, что у вас есть доступ к параметрам HUD и другим графическим настройкам, и могут возникнуть проблемы, если у вас есть аппаратные шейдеры или другие нестандартные шейдеры для отображения.

Никогда не используйте «просмотр», просто установите свои камеры как камеры для рендеринга с помощью этого скрипта, который вы связали, Maya сделает все остальное. Также не используйте pymel, он может привести к очень скрытым ошибкам, и я не удивлюсь, если он не будет работать в пакетном режиме. Старайтесь даже не импортировать его модуль, так как он устанавливает много вещей в фоновом режиме (я столкнулся с некоторым странным поведением и ошибками в пакетном режиме, пока он работал в интерактивном режиме).

  1. Ваши пурпурные плейбласты сделаны с уже сделанной на заказ сценой Maya, или вы сначала создали очень простой файл с такими же примитивами и ничего особенного? Получите хороший результат с базовой настройкой, затем, когда у вас будет хороший результат, попробуйте свои реальные сцены. Если это не работает с ними, попробуйте уменьшить его, чтобы найти, что в нем не так. Или реализуйте, шаг за шагом, вещи от ваших финальных сцен до вашей базовой рабочей сцены, чтобы найти, что это делает.

  2. В противном случае вы можете запустить Maya без графического интерфейса с помощью переменной среды MAYA_OVERRIDE_UI. Установите для него имя файла mel, расположенное в папке сценария, и вы сможете запустить Maya в более простом окне с небольшим количеством мела.

  3. Вы также можете получить помощь от библиотеки maya-capture, чтобы вам не приходилось кодировать все самим собой.

  4. Используйте аппаратный рендерер.

person Regnareb    schedule 03.05.2016
comment
фиолетовый оказался проблемами в сцене, когда я починил сцену, фиолетовый ушел, но плейбласты были черными; с тех пор я перешел на аппаратный рендерер - person lofidevops; 05.05.2016
comment
спасибо за ссылку на Maya-Capture, меня всегда воодушевляет X, сделанный прямо в описании библиотеки :) - person lofidevops; 05.05.2016