#python #maya
#python #maya
Вопрос:
Возможно ли будет автоматически запускать небольшой набор кода после запуска скрипта?
Я спрашиваю об этом, потому что по некоторым причинам, если я добавлю этот набор кода в основной скрипт, хотя он и работает, он отобразит список ошибок табуляции (он уже есть, но в нем указано, что он не может найти его каким-либо образом).
Я понял, что после запуска моего скрипта Maya, похоже, «загружает» свою собственную настройку обновления вместе с некоторыми плагинами, созданными моей компанией. Таким образом, если я запускаю небольшой набор кода после выполнения моего основного скрипта и обновления Maya / plugins, это работает без проблем. Я хотел бы сделать процесс максимально автоматизированным, все в скрипте, если это возможно…
Таким образом, возможно ли это сделать? Нравится какой-то отложенный метод кодирования? К вашему сведению, время выполнения основного скрипта зависит от количества элементов в сцене. Чем их больше, тем дольше это займет…
Комментарии:
1. Не могли бы вы создать подпроцесс скрипта обновления и подождать, пока он будет завершен?
2. Включить оба скрипта в пакет или оболочку?
3. Просто напишите плагин Maya, который запускает ваш код после обновления?
4. @SukritKalra Что вы имеете в виду?
5. @SergeBallesta С точки зрения практики, как мне поступить в дальнейшем? Простите меня за недостаток знаний..
Ответ №1:
У Maya есть команда Maya.cmds.evalDeferred, предназначенная для этой цели. Он ожидает, пока обработка Maya больше не будет отложена, а затем выполняет самооценку.
Вы также можете использовать Maya.cmds.scriptJob для той же цели.
Примечание: Хотя eval считается опасным и небезопасным в контексте Maya, на самом деле это нормально. Главным образом потому, что все в Maya изначально небезопасно, поскольку почти все элементы графического интерфейса — это просто команды eval, которые пользователь может изменять. Итак, в ту секунду, когда вы позволяете кому-либо использовать вашу оболочку Maya, ваша безопасность нарушена.
Комментарии:
1. Спасибо за понимание проблем. Я согласен с тем, что время от времени задавал довольно нелепые (несколько невозможные) вопросы, отчасти потому, что бывают случаи, в которых, как вы заявили, Maya скорее против меня, чем наоборот. И, честно говоря, на сегодняшний день мне все еще в значительной степени не хватает того, как правильно писать сценарии, то же самое касается различных типов модулей / плагинов, установленных в Maya.
2. Нет ничего невозможного. Мне кажется, что вы привязываете графический интерфейс maya к однослойному подходу, в то время как maya ожидает, что вы будете использовать двухслойный. У вас должен быть автономный вычислительный уровень, а затем позволить gui творить свое волшебство независимо от этого. Так работает вся maya, пытаться сделать это по-другому бесполезно, поскольку maya может работать без графического интерфейса. В любом случае вам, вероятно, следует задавать вопрос о вашем дизайне не так часто на каждом шаге. На данный момент вы копаете себе могилу, каждый ваш шаг ведет вас дальше к формированию решения, которое действительно сработало бы.
3. Также обратите внимание, что мне кажется, что всю вашу работу можно обойти с помощью getAttr