Распечатка инструкций отладки функции вычисления узла пользовательской зависимости Maya в обратном порядке (Maya 2016 SP6, Python API)
У меня странная проблема, когда функция вычисления моего узла выводит отладочную информацию в обратном порядке.
Я пытаюсь создать пользовательский узел синхронизации, который позволит мне синхронизировать атрибуты двух входных узлов без блокировки этих атрибутов. Мой узел имеет четыре общих входных атрибута, которые принимают необработанные входные данные двух атрибутов для синхронизации, а также преобразованную версию каждого атрибута, чтобы обеспечить синхронизацию атрибутов разных типов (rawInputA, rawInputB, convertInputA, convertInputB). Узел имеет два выхода, на которые влияет каждый из соответствующих входов:
На outputA влияет: rawInputA, convertInputA outputB, на которое влияет: rawInputB, convertInputB
Выходы подключены к фиктивному локатору, поскольку в действительности они используются только для запуска функции вычисления узла, которая затем устанавливает правильные значения атрибутов самих входных узлов (это делается для того, чтобы избежать блокирования циклических зависимостей и атрибутов).
Если атрибут inputA изменяется, это приводит к тому, что узел синхронизации вычисляет и устанавливает значение атрибута другого узла inputB, что приводит к повторному вычислению узла синхронизации (хотя на этот раз он не будет устанавливать никаких значений, поскольку они уже верны). Я добавил отладочные операторы печати в функцию вычисления в начале и в конце, а также в середине. При первом вызове вычислений они печатаются в правильном порядке, но при втором вызове они печатаются в обратном порядке, что действительно странно...
Одна возможная проблема, которая, я думаю, может быть связана с тем, что после вычисления узла синхронизации один из плагинов атрибута rawInput остается грязным (не каждый раз, и, похоже, что-то связано с тем, какой входной атрибут, A или B, изменено).
Я должен отметить, что атрибуты обновлены правильно, поэтому кажется, что узел работает должным образом, но я пытаюсь устранить некоторые другие ошибки с обновлением предварительного просмотра окна просмотра и редактора атрибутов для синхронизированных атрибутов, как я и столкнулся с этим странная проблема.
Обновление - здесь приведен пример настройки узла, связывающего положение цветовой записи узла линейного изменения и часть геометрии.
Изменение позиции ввода цвета путем установки значения в редакторе атрибутов приводит к следующему выводу в редакторе сценариев:
setAttr "ramp1.colorEntryList[0].position" 0.5;
SyncNode compute called!
Plug = aOutputA
Value changed
set source plug with 3 double
SyncNode compute finished!
SyncNode compute finished!
Plug = aOutputB
SyncNode compute called!
TL; DR - Есть ли что-нибудь, что заставило бы операторы отладки в вычислительной функции узла зависимости печататься в обратном порядке в выходных данных редактора сценариев?