Со Scene Graph вы сможете быстро перейти от тестирования методом серого ящика и компоновки уровня к полностью готовой игре за несколько простых шагов.
Scene Graph — это система, встроенная в язык Verse. Она использует все его преимущества и позволяет делать ваши проекты более уникальными с помощью интерактивных пользовательских объектов и игровых возможностей.
Scene Graph делает проект стабильнее, так как Verse выполняет самые ресурсоёмкие операции в фоновом режиме, обеспечивая бесперебойную работу модулей. Также Verse позволяет глубоко погружаться в любой модуль или компонент сцен, что дает возможность значительно расширить их функционал и разнообразие.
Как включить Scene Graph в вашем проекте
Чтобы начать использовать Scene Graph в своём проекте:
На панели инструментов выберите Проект > Настройки проекта, чтобы открыть окно настроек проекта.
В окне Настройки проекта в разделе Бета-доступ включите Инструменты Scene Graph. В бета-версии Scene Graph включён по умолчанию.
Чтобы убедиться, что у вас есть доступ к функциям Scene Graph, откройте панель инструментов, выберите Расстановка акторов и посмотрите, есть ли пункт Модули в выпадающем меню Расстановка акторов.
Объекты в метавселенной
Метавселенная — это социальное онлайн-пространство, в котором люди могут играть и общаться друг с другом в 3D-мире в режиме реального времени. По задумке Epic Games Scene Graph для UEFN позволит вам создавать такие миры для метавселенной.
В системе Scene Graph вы можете создавать экземпляры объектов и использовать их повторно, не классифицируя их как акторы Unreal Engine. По своей сути Scene Graph — это набор структурных элементов. В нём используются данные и логика для создания игры, отрисовки и симуляции объектов в различных игровых средах.
Акторы и модули не являются взаимозаменяемыми, это разные системы, которые работают в сцене совместно.
Со Scene Graph вы можете создать инфраструктуру для 3D-симуляции ваших творческих задумок в режиме реального времени, а результаты будут отображаться в окне просмотра. Вы можете вносить изменения через панель «Сведения» или редактор заготовок.
Вы можете импортировать ресурсы, которые вы создаёте сами или покупаете в магазине, и использовать их со Scene Graph для создания собственных объектов и готовых элементов.
Всё, что вы создаёте в Scene Graph, можно использовать повторно с минимальными затратами памяти. Система создания в Scene Graph предназначена для совместного использования сложного контента и совместной симуляции, обеспечивая при этом соблюдение границ между ресурсами.
Модули и компоненты
Модули и компоненты — это сердце Scene Graph. Они контролируют и определяют поведение объектов.
Модули — это контейнеры, которые содержат компоненты или другие модули. Пустой модуль не имеет видимых эффектов или функций. Компоненты — это то, что предоставляет данные и задаёт поведение модуля. Комбинация компонентов, добавленных в модуль, определяет, что модуль должен делать в сцене.
Модуль может содержать любое количество различных компонентов. При этом в одном модуле за раз может использоваться только один компонент одного типа. Например, для модуля можно использовать только один тип light_component. Чтобы использовать несколько компонентов общего типа, можно создать новые модули, которые будут содержать каждый экземпляр этого компонента.
Компоненты некоторых типов генерируются ресурсами, созданными в UEFN. ССР-компоненты — это класс компонентов, который создаётся автоматически на основе уже существующих материалов вашего проекта — сетки, звука или ресурса системы частиц. Эти ресурсы также могут предоставлять свойства, которые вы можете изменять в сгенерированном компоненте.
Компоненты имеют настраиваемые свойства. Эти свойства могут быть физическими, как статичная сетка или система частиц, или логическими, как, например, тег игрового процесса или пользовательский код Verse, который определяет движение платформы. По умолчанию все модули имеют компонент преобразования, указывающий, в какой точке мира должен существовать модуль.
Создание модуля в Verse не создаёт компонент преобразования автоматически.
Scene Graph позволяет быстро объединить несколько элементов и игровую механику, связав данные физики с сетками, звуковыми схемами и другими аспектами игры.
Модуль становится физическим представлением статичной сетки при добавлении компонента сетки к модулю, когда сетка выбрана в ячейке компонента «Сетка». Это означает, что вы можете быстро составлять здания или отдельные наборы элементов и использовать их прямо в сцене.
Например, в видео ниже модуль преобразуется в скопление вечнозелёных деревьев.
Вы можете создать отдельный готовый элемент из этой группы деревьев или объединить модули и создать готовый элемент в виде целого леса.
Один модуль (модуль симуляции) размещается в корне проекта, представляя там симуляцию. Сцена считается созданной, когда есть модули, вложенные в модуль симуляции. Добавляя модули на карту, вы автоматически делаете модули дочерними для модуля симуляции.
Верхний модуль заготовки — это корневой модуль этой заготовки, а другие заготовки и модули размещаются под ним. Родительская заготовка определяет внешний вид и поведение дочерних — как они будут взаимодействовать с другими объектами в сцене.
Нажмите на изображение, чтобы увеличить его.
Корневой модуль заготовки → WoodenHouse_Tiny_Prefab
Дочерняя заготовка → WoodenHouse_RoofSmall_Prefab_C_1
Дочерний модуль → Building_WIndowCircle_Bright2
Дочерний модуль → Building_WIndowCircle_Bright4
Дочерний модуль → Building_WIndowCircle_Dark2
Дочерний модуль → Building_WIndowCircle_Dark4
Дочерний модуль → WoodenHouse_Floor
Дочерний модуль → WoodenHouse_RoofCap2
Дочерний модуль → WoodenHouse_RoofCap3
Дочерний модуль → WoodenHouse_RoofWindow2
Дочерняя заготовка → WoodenHouse_SmallFloor_Prefab_C_1
Дочерний модуль → WoodenHouse_Floor
Дочерний модуль → WoodenHouse_Wall10
Дочерний модуль → WoodenHouse_WallDoor_C4
Дочерняя заготовка → WoodenHouse_Windows_Prefab_C_3
Дочерний модуль → Building_WindowPlane_Bright3
Дочерний модуль → Building_WindowPlane_Bright4
Дочерний модуль → Building_WindowPlane_Dark3
Дочерний модуль → Building_WindowPlane_Dark4
Дочерний модуль → WoodenHouse_Windoows_10
Каждая дочерняя заготовка содержит компоненты, определяющие её внешний вид и способы взаимодействия с другими заготовками сцены. Вы можете использовать Verse для работы с отдельными модулями и заготовками, заменяя дочерние заготовки на другие или даже изменяя их цвет, как это сделано для модулей Building_WindowPlane_Bright и Building_WindowPlane_Dark.
Существует множество типов компонентов, определяющих, как действует весь модуль или его часть. Чтобы узнать больше о различных типах компонентов, доступных в Scene Graph, см. раздел Компоненты.
Больше информации об использовании модулей и компонентов см. в разделе Работа с модулями и компонентами.
Заготовки
Scene Graph создаёт заготовки, упаковывая модули вместе по взаимосвязям родительских и дочерних элементов. Предок — это любой модуль, уровень которого выше, чем у других модулей (родительский, родительский для родительского и т. д.). Наследник — это любой модуль, уровень которого ниже, чем у других модулей (дочерний, дочерний для дочернего и т. д.).
Все выбранные модули, их иерархические структуры и компоненты мгновенно добавляются в это дерево модулей в заготовке. Как только у вас появляется заготовка, вы можете индивидуально настроить каждый её экземпляр в редакторе заготовок.
Чтобы создать экземпляр заготовки, перетащите её из Каталога ресурсов в окно просмотра. Вы также можете вкладывать одни заготовки в иерархическую структуру других. Пользуйтесь иерархией, чтобы применить изменения ко всем экземплярам и заготовкам, входящим в неё.
Обновив и исправив заготовку, вы экономите время — вам больше не нужно искать каждый экземпляр объекта по отдельности.
Кроме того, вы можете создать множество похожих объектов, выбирая подэлементы в иерархии и переопределяя различные значения компонентов. Вы также можете вращать объекты и добавлять новые значения компонентов в различные экземпляры заготовок в Редакторе заготовок.
Все изменения в редакторе обозначаются на панели «Сведения» значком переключателя переопределения для отдельных атрибутов компонентов. Также на кнопке раскрывающегося меню карточки компонента отображаются значки различных компонентов.
Чтобы вернуть заготовку к исходному состоянию, нажмите на переключатели переопределения отдельных компонентов. Объект автоматически перейдёт в состояние родительской заготовки. Вы также можете нажать на кнопку выпадающего меню карточки компонента и выбрать Сбросить переопределение.
Чтобы узнать больше о модификации заготовок, см. Заготовки и экземпляры заготовок.
На видео ниже показано, как Scene Graph используется для создания двух заготовок комнат замка.
Комната дублируется. Один из элементов комнаты изменяется путём выбора сетки пола и замены оригинала, что создаёт новую заготовку. Можно продолжить копировать и заменять различные части, чтобы быстро создать небольшой замок и даже деревню. Такой способ работает также и с компонентами, поэтому можно задать уникальное поведение для каждой из комнат в замке.
Изменение заготовок не влияет на стабильность работы и расход памяти исходного объекта или его копий. То есть, вы можете создавать собственные объекты для своего острова, когда макет уровня, абстрактное проектирование и художественное оформление уже завершены. Система создания Scene Graph позволяет многократно использовать заготовки, которые вы создаёте в проекте, чтобы строить собственную игровую вселенную в Fortnite.
Verse в Scene Graph
Verse — это язык программирования, используемый Scene Graph для создания и удаления модулей из мира, а также для создания собственных компонентов и поведения.
С помощью Verse можно сделать раскачивающийся фонарь для дома, как в предыдущем примере. Verse позволяет задать свойства раскачивания, вращения и длительности, определяющие, как движется фонарь.
Заготовки, которые вы создаёте в своём проекте, представлены как классы Verse в файле Assets.digest.verse вашего проекта. Модули и компоненты, указанные в вашей заготовке, доступны в Verse с помощью вызовов GetEntities() и GetComponents().
Перед тем, как начать пользоваться Verse в Scene Graph, изучите раздел Создание собственного компонента с помощью Verse.
Практика
Пример шаблона Scene Graph знакомит вас с основными концепциями Scene Graph и строится на базовых рабочих процессах, демонстрируя возможности создания проекта с использованием заготовок и Verse. Каждый пример демонстрирует возможности использования Scene Graph для доработки, чтобы создать интересные и функциональные игровые объекты и игровой процесс.
Откройте раздел Создание «платформера» с помощью Scene Graph, чтобы узнать больше об использовании Scene Graph для создания увлекательного игрового процесса.
Дополнительная информация и более подробные уроки можно найти в разделе Обучение работе со Scene Graph.