Введение в Blueprints

Система  Blueprints Visual Scripting в Unreal Engine – это полноценная система написания скриптов геймплея, в основу которой положена концепция использования интерфейса узлового типа, позволяющая создавать элементы геймплея прямо в Unreal-редакторе. Как и многие распространённые языки скриптования, он используется для определения объектно-ориентированные (OO) классы или объекты в движке.  Если вы используете UE4, вы увидите, что объекты, использующие Blueprint, в народе называются просто «Blueprints».

Эта весьма гибкая и мощная система позволяет дизайнерам виртуально использовать полный комплект концептов и инструментов, которые, в общем-то доступны, только программистам. В дополнение, Blueprint-специфическая разметка, доступная в Unreal Engine’s C++ -инструменте, позволяет программистам создавать базовые системы, которые в дальнейшем могут быть расширены дизайнерами.

Как работает  Blueprints?

В своей базовой форме Blueprints виртуально скриптует дополнения к вашей игре. Сложные элементы геймплея создаются посредством связывания узлов, событий, функции и вариации в единую сеть.

Blueprints использует узловые сетки для реализации различных целей – конструирования объектов, единичных функций и общих событий геймплея, которые специфичны для каждого случая, создаваемого Blueprint —  и внедрения нужного поведения и функциональности.

Часто использующиеся типы Blueprint

Самые распространенные типы Blueprint, с которыми вам придется работать – это Level Blueprints (уровни) и Blueprint Classes (классы).

Это всего два из всех доступных типов  Blueprints, среди которых также есть  Blueprint Macros  (макросы) и Blueprint Interfaces (интерфейсы).

Level Blueprint

Level Blueprint играет ту же роль, что Kismet играл в Unreal Engine 3, и имеет те же возможности. Каждый уровень имеет свой собственный уровневый Blueprint, и он может управлять Актерами (Actors), контролировать все, что относится к фильмовой составляющей, используя Matinee Actors, и управлять вещами типа, стримов уровня, чекпоинтов и систем, связанных с уровнем. Level Blueprint также может взаимодействовать с Blueprint Classes, которые находятся внутри уровня, к примеру, читать/настраивать вариации или запускать кастомные события, которые те содержат.

Blueprint Class

Blueprint Classes идеальны для создания интерактивных ассетов, таких, как двери, выключатели, собираемые предметы и объекты разрушаемой среды. На картинке выше кнопка и набор дверей являются отдельными Blueprint, которые содержат необходимые скрипты, отвечающие, если  игрок провоцирует определенные события, анимируя их, включая необходимые звуковые эффекты и изменяя их внешний вид  (например, когда нажимают на кнопку, она начинает светиться).

В этом случае нажатие кнопки активирует событие внутри Blueprint, отвечающего за дверь, в результате чего она открывается.  Но двери также можно с легкостью активировать с помощью другого типа Blueprint или с помощью Level Blueprint-последовательности. Благодаря самозаполняющейся природе Blueprints, их можно создать, просто набросав  в уровни, и они будут прекрасно работать с минимумом настроек. Также это значит, что редактирование  Blueprint, который используется в проекте, приведет к полному обновлению всех его структур.

Что еще умеет делать Blueprints?

Ниже приведены некоторые примеры того, как и для чего  вы можете применить систему Blueprint.

Создание настраиваемых префабов  (Prefabs) с помощью скриптов конструирования

Construction Script (скрипт конструирования) – это тип графа, содержащийся внутри Blueprint -классов, который выполняется, если Актер помещается в редактор или изменяется там, но это происходит не во время геймплея. Это может быть полезно для создания простых в кастомизации предметов окружения,  позволяющих Художникам 3D Окружения работать быстрее.  К примеру, изменение подсветки автоматически подстраивается под материю, чтоб по цвету и яркости соответствовать своему  компоненту подсветки или Blueprint’у, который рандомно рассеивает объекты флоры по местности.

В картах Content Examples длинные комнаты, которые содержат каждый  пример  (картинка сверху) – это отдельно взятый  Blueprint, созданный из множества компонентов. Скрипт конструирования Blueprint создает и обслуживает различные  Static Meshes (полигональные сетки) и подсветки, согласно параметрам, описанным в Blueprint’s Details panel (панель деталей). С помощью каждой созданной нами картой Content Example мы можете войти в демо-комнату Blueprint, установить значения, отвечающие за ее  длину и высоту и количество комнат, которые можно сгенерировать (плюс некоторые другие опции), и в момент получить готовый набор комнат.

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

Создание играбельного игрового персонажа

Pawns (пешки)- это еще один тип Blueprint Class, с помощью которого вы можете смиксовать вместе все необходимые элементы для создания играбельного персонажа в Blueprint-графе. Вы можете управлять поведение камеры, создавать вводимые события для мышки, контроллера и тач скринов, а также создавать Animation Blueprint- ассеты для управления скелетной сеткой анимации.

Когда вы начнете создавать нового Blueprint-персонажа, то столкнетесь  с необходимостью добавления большого количества поведенческих компонентов, нужных  для того, чтоб он мог передвигаться по территории, прыгать, плавать, падать, Для этого пригодятся вводимые события, координирующие то, как должен управляться персонаж.

Создание HUD

Скрипт Blueprint также может быть использован для создания игрового HUD, который похож на Blueprint Classes в том плане, что он может содержать событийные последовательности и вариации, но они не добавляются прямо к уровню, а применяются к ассету GameMode вашего проекта.

Вы можете установить HUD, чтоб читать вариации других  Blueprints и использовать их для отражения шкалы здоровья, обновлять значение счета, отображать объектные маркеры и т.д. Также возможно использовать HUD для добавления зон поражения к таким элементам, как  кнопки, которые можно кликнуть или в случае мобильных игр, получить реакцию на прикосновение к экрану.

Все примеры, описанные выше, существуют в контенте-образце, доступном в UE4, так что если вы хотите получше познакомиться с этими примерами, то их можно найти в Content Examples, в проектах First Person Shooter и Swing Ninja.

Blueprint Редакторы и графы

Создаете ли вы Level Blueprint или Blueprint Class, вы будете использовать Blueprint элементы, которые собраны в Blueprint Editor .

Разные типы  Blueprint-редактора доступны в зависимости от типа Blueprint, над которым вы работаете. Корневая функция большинства Blueprint Editors – это Graph mode (режим графов), с центральным табом Graph, позволяющим разложить сеть вашего Blueprint.

Источник