Если просто выполнить 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), но вряд ли результат перестановки операций, в общем случае, будет предсказуем.