Заготовки — это стабильные объекты, использующие иерархию модулей и компонентов для хранения базовой информации, которая распространяется на все экземпляры заготовок.
Это упрощает процесс редактирования заготовок (как в общем, так и по отдельности) по мере создания уровня. Вы можете создавать и переопределять экземпляры, созданные в Scene Graph, для создания новых игровых объектов и заготовок.
Заготовки позволяют «штамповать» игровые объекты, поэтому вы можете помещать их в сцену сколько угодно. Все созданные вами экземпляры можно редактировать как в группе, так и по отдельности.
Для получения дополнительной информации о возможностях заготовок обратитесь к следующей документации:
Сохранение модулей в качестве готовых элементов
Заготовки должны быть максимально компактными — их дизайн не должен быть слишком сложным. Заготовки с большим количеством модулей и компонентов содержат много данных и могут создать сложности в проекте.
В одном модуле в каждый момент времени может использоваться только один компонент одного типа. Это означает, что, если вы выберете тип компонента, вы не сможете использовать этот тип компонента повторно на том же модуле. Чтобы использовать тот же компонент, нужно добавить другой модуль, а затем добавить этот компонент к новому модулю.
Чтобы создать заготовку:
В окне Структура нажмите правой кнопкой мыши на родительский модуль и выберите Сохранить как готовый элемент…. Откроется окно Создать новый готовый элемент.
Нажмите на изображение для увеличения.
Вы можете сначала добавить модули в качестве вложенных в окне **Структура** или позже добавить новые модули к заготовке в **Редакторе заготовок**.
Назовите готовый элемент и выберите Создать класс модуля. В окне просмотра откроется Редактор заготовок с созданной ранее заготовкой. Миниатюра заготовки появится в Каталоге ресурсов.
Чтобы упростить процесс редактирования, заготовки можно делать вложенными, а также группировать в окне «Структура».
Выберите миниатюру заготовки и перетащите её из Каталога ресурсов в окно просмотра. Это создаст новый экземпляр заготовки.
Распространение изменений на все экземпляры готовых элементов
Экземпляр заготовки — это не просто визуальная копия оригинала. При внесении изменений при помощи Редактора заготовок сохранённые изменения автоматически распространяются на все экземпляры. Для определения того, как дочерние заготовки и модули взаимодействуют с родительскими, в Scene Graph рекомендуется использовать иерархии. В особенности это применимо, если вы работаете с ресурсами, точки вращения которых располагаются не по центру, или не используете единицы Unreal Unit для выравнивания объектов в мире.
Это экономит время, поскольку при таком подходе вам не нужно искать каждый отдельный экземпляр заготовки и по нескольку раз вносить одни и те же изменения.
Чтобы создавать более сложные заготовки, вы также можете объединять различные заготовки в иерархию.
Переопределение экземпляров готовых элементов
Вы можете переопределять компоненты в экземпляре заготовки, что позволит вносить изменения, уникальные для выбранного экземпляра. При переопределении компонента значок Переопределить появляется на модуле в окне «Структура», на карточке компонента и рядом с переопределённым компонентом на панели «Сведения».
Переопределяет замену построения родительской заготовки на уровне затрагиваемого компонента, с изменениями в переопределённом свойстве компонента. Переопределить компоненты можно двумя способами:
Изменить заготовку в редакторе заготовок.
Переопределение модуля или компонента в карточке компонента.
Добавьте новый компонент в Редакторе заготовок или создайте компонент Verse, чтобы придать заготовке функции, такие как перемещение или возможность взаимодействия. Если сохранить эти изменения в редакторе заготовок, они будут применены к каждому экземпляру заготовки в сцене.
Переопределить модуль можно, добавив новый компонент или создав компонент Verse, для которых можно задать такие функции, как перемещение или возможность взаимодействия.
Переопределение модуля или компонента через карту компонента в экземпляре заготовки применяет уникальные изменения к этому отдельному экземпляру. На изображении ниже показаны два деревянных домика, созданные на основе одной заготовки, но у второго домика внесены переопределения в карточки ключевых компонентов ключевых, чтобы добавить другие сетки или повернуть части заготовок в разные стороны, чтобы показать другую сторону дома.
Как переопределить компонент:
Перетащите экземпляр готового элемента из Каталога ресурсов в окно просмотра.
Выберите модуль в экземпляре готового элемента на панели Структура.
На панели Сведения нажмите кнопку выпадающего меню карточки компонента и выберите Переопределить компонент.
Выберите новое свойство для компонента. Для переопределения этого компонента, в данном экземпляре, она теперь отличается от родительской заготовки и останется прежней, даже если вносить изменения в родительскую заготовку.
Значки переопределения
Значки переопределения — это синие кружки с синей стрелкой, указывающей в центр кружка. Значок указывает на переопределение компонента в этом модуле. Если у модулей есть переопределения, вы можете использовать их в сцене много раз, а сами модули в заготовке по-прежнему будет работать стабильно.
Новые модули, добавленные к заготовке, обозначаются зелёными кружками со знаком «+» в центре, что указывает на то, что они были добавлены после создания заготовки.
Иерархии заготовок
Иерархии заготовок создаются путем размещения модулей и заготовок под родительским модулем или заготовкой. Создание наследования элементов позволяет:
масштабировать функции компонента заготовки, что позволяет задать поведение заготовки в сцене;
определить, как дочерние модули взаимодействуют с родительской заготовкой.
Иерархии позволяют привязывать ресурсы к определённому вектору в сцене через размещение точек вращения. Это полезно не только для настройки внешнего вида, но и для создания элементов игрового процесса, в которых используются координаты.
Размещение точек вращения и привязка к решётке
Точки вращения и привязка к решётке вместе с transform_component модуля служат для выравнивания игровых объектов и заготовок в сцене.
Редактор заготовок не использует решётку для их масштабирования. Вместо этого для определения смещения для точки вращения заготовки следует использовать меню «Структура», вызываемое нажатием правой кнопки мыши.
Привязка к решётке выполняется относительно размера ресурса. Для корректного поведения ресурсов их следует масштабировать до 512 Unreal Unit и использовать аналогичную систему измерения решётки, что и в UEFN. Если вы не выполняете масштабирование ресурсов, сбросьте точки вращения ресурсов и измените масштабирование настроек привязки к решётке.
Размещение точки вращения по центру заготовки может не подойти к некоторых типам ресурсов, например, к лестницам. Вместо этого попробуйте использовать функцию Редактировать преобразование в Режиме моделирования и сместите точку вращения таким образом, чтобы ресурсы отображались и располагались в мире так, как это требуется.
Узнайте больше о трёхмерном пространстве мира из документа Система координат «влево-вверх-вперёд».
Композиция в Scene Graph
Композиция в Scene Graph позволяет выравнивать ресурсы. Все дочерние модули и заготовки вращаются со смещением относительно родительского объекта. Если повернуть конструкцию заготовки на 360 градусов, объект будет двигаться вокруг своего центра на решётке.
При вращении актора в редакторе UEFN оно определяется его расположением в мире. Это усложняет выравнивание отдельных акторов для создания цельной конструкции.
Для определения того, как дочерние заготовки и модули взаимодействуют с родительскими, в Scene Graph рекомендуется использовать иерархии. В особенности это применимо, если вы работаете с ресурсами, точки вращения которых располагаются не по центру, или не используете единицы Unreal Unit для выравнивания объектов в мире.
Также это полезно при размещении декоративных ресурсов в сцене относительно родительских заготовок, на которых они размещаются.
Чтобы больше узнать об использовании компонента преобразования, см. документ Компонент преобразования(RYANS DOC LINK here).
Класс готового элемента в Verse
Готовые элементы, которые вы создаёте в своём проекте, представлены как классы Verse в файле Assets.digest.verse вашего проекта. Для создания экземпляров заготовок достаточно создать экземпляр класса заготовки и добавить их к модулю в сцене в Verse.
О том, как работать с готовыми элементами, читайте в разделе Создание собственного компонента в Verse.