Если просто выполнить Edit=>Duplicate с параметрами по умолчанию, новый объект, как только что говорилось, вообще не будет иметь истории.

Однако если в Option Box операции Duplicate включить галочку Duplicate Input Graph (памятливые умы не могут не помнить, что History - это и есть «входящее» дерево) и если скопировать объект, новая копия будет обладать собственной Construction History и иметь аналогичное дерево в Hypergraph.

Теперь можно индивидуально изменять атрибуты Construction History для каждого объекта. (Поиграйте, например, с атрибутами ноды polyCube.)

Но если мы хотим, чтобы все копии объекта были единообразны и менялись одинаково в ответ на изменение атрибутов в нодах History, то следует, очевидно, дублировать не все дерево целиком со всеми нодами, а скопировать лишь связь объекта с уже имеющимся деревом.

Выберите объект и в Option Box операции Duplicate включите галочку Duplicate Input Connections.

После копирования новый объект уже не будет иметь собственную независимую Construction History, а будет зависеть от истории оригинального объекта.

Теперь в Attribute Editor или Channel Box легко заметить, что у выбранных атрибутов одинаковая история. А изменение Subdivision Level в Attribute Editor одинаково изменяет все

...........................................................................................................................................................................................................................

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

Я хотел бы сразу отметить, что принципы дублирования Input Graph или Input Connections распространяются не только на объекты, имеющие History, но и на все объекты, просто имеющие входящие связи. Так, например, если объект имеет expression, заставляющий его двигаться определенным образом, то при дублировании по умолчанию этот expression просто «отвалится» от объекта; при дублировании Input Graph будет создан новый expression для копии объекта, а при копировании Input Connections один старый expression будет управлять сразу двумя объектами. (Хотя это может не соответствовать текстовому содержанию самого expression.)

Для взрослых. Это можно легко проверить. Оставьте в сцене один объект, выберите его, в Attribute Editor впишите - в ячейку для translateY - следующий текст:

=noise(time)

и нажмите Enter. Expression готов. Теперь в Duplicate Option Box включите галочку Duplicate Input Connections и скопируйте объект. Оттащите его куда-нибудь неподалеку и посмотрите в Expression Editor, что хотя формула написана для первого объекта, второй объект прекрасно движется в соответствии с нею. Осознать этот парадокс вам поможет Hypergraph, где можно увидеть, что expression - это просто вычислитель, имеющий выходы, которые могут быть подсоединены к любому объекту.

Стэк деформаций и история моделирования

Иногда некоторые, более хорошо подкованные индивидуумы, случайно знакомые с понятием «стэк деформаций», начинают воспринимать Construction History тоже как своеобразный стэк моделирования. В принципе это так и есть, за исключением того, что в отличие от деформаций, порядок операций моделирования не может быть произвольно изменен. Посудите сами: если провести лофт через три кривые, а потом пересечь его со сферой, получив замкнутую кривую, то какие операции и в каком порядке здесь можно переставить?! Да, для некоторых операций полигонального моделирования, последовательно передающих данные типа inMesh, outMesh, можно ставить задачу изменения порядка следования нод в дереве зависимостей. Такая задача легко решается (либо при помощи небольшого скрипта, либо ручной переустановкой связей в Hypergraph), но вряд ли результат перестановки операций, в общем случае, будет предсказуем.


⇐ вернуться назад | | далее ⇒