Создание экземпляров объектов (Инстансинг)
Виртуальный мир, который вы строите, может содержать множество одинаковых объектов, которые всегда должны выглядеть одинаково, например, электрические опоры, самолеты, колеса, коробки и т.д.
Когда вы клонируете эти объекты и помещаете их в свой мир, создается несколько отдельных копий. Таким образом, если вы решите что-то изменить (например, геометрию или материалы некоторых частей пилонов), вам придется сделать это для каждой копии индивидуально.
Вместо копирования объекта рекомендуется создавать экземпляры одного объекта. Такой подход обеспечивает целостность при изменении параметров многократно используемых объектов, особенно если они сложные. Для этого вы можете просто добавить несколько Node References, относящихся к одному файлу *.node, а затем отредактировать только один Node Reference, чтобы обновить их все.
Ниже приведен типичный алгоритм создания экземпляра составного объекта на основе Node References.
1. Создание базовой иерархии#
Прежде всего мы должны подготовить базовую иерархию, которая будет представлять наш объект. Предположим, мы организовали иерархию нод для вертолета, который мы собираемся повторно использовать несколько раз в нашем мире (см. Рисунок ниже)
2. Преобразование иерархии нод#
Второй шаг - преобразовать иерархию нод в Node Reference. Вы можете сделать это, просто перетащив корневую ноду иерархии в нужную папку в Asset Browser . В папке будет создан соответствующий ассет *.node (источник), содержащий иерархию. Иерархия нод будет заменена ссылкой на этот ассет.
Вы также можете преобразовать отдельную ноду или группу выбранных нод в окне World Nodes Hierarchy через контекстное меню. Для этого выберите требуемую ноду (группу нод) в окне World Nodes Hierarchy, щелкните правой кнопкой мыши выбранную ноду и выберите Create a Node Reference. Соответствующий ассет *.node (источник), содержащий выбранную ноду (или группу нод в качестве дочерних с Dummy Node в качестве корня), будет создан в текущей папке, открытой в Asset Browser . Выбранные ноды будут заменены ссылкой на этот ассет.
3. Размещение экземпляров#
Итак, у нас уже есть первый экземпляр в мире. Это тот, который заменил иерархию, когда мы перетащили ее в Asset Browser . Чтобы добавить другие экземпляры в мир, мы можем просто перетащить нужный *.node ассет из Asset Browser прямо в Scene Viewport.
Или вы можете просто клонировать Node Reference, как и любую другую ноду, через Scene Viewport, перемещая ее с помощью манипулятора и удерживая клавишу Shift . В этом случае новый экземпляр будет размещен именно там, где вы укажете.
4. Редактирование исходного Node Reference из его экземпляров.#
Если вы решили что-то изменить в исходном Node Reference, вы можете сделать это, отредактировав любой из его экземпляров. Для этого выполните следующие действия:
Выберите любой экземпляр в мире через окно Scene Viewport или World Nodes Hierarchy. Параметры Node Reference будут отображены в окне Parameters.
Щелкните Edit. Иерархия исходного Node Reference будет отображаться в окне World Nodes Hierarchy.
Отредактируйте исходный Node Reference. Вы можете вносить любые изменения: изменять материалы, добавлять новые ноды, удалять существующие и т.д.
Щелкните Apply, чтобы сохранить внесенные изменения, или Cancel, чтобы отменить их. Изменения будут применены ко всем экземплярам сразу.