Начнём с того, что же такое Blueprint?
Blueprint — система визуального программирования в Unreal Engine 4 и Unreal Engine 5 на основе нодов с данными: событиями и функциями. Их можно связывать между собой и формировать элементы геймплея. Различают несколько видов блюпринтов, рассчитанных на определённые задачи — от создания события на уровне до интерфейсов и макросов, которые можно использовать как основу для другого блюпринта.
Blueprint или C++?
Я считаю, что всё зависит от проекта и возможностей разработчика. Многие делают только на блюпринтах, другие делают, только на C++. Иногда люди делают код и на C++ и на блюпринте.
Я считаю, что для создания простых игр и малых знаниях программирования у разработчика, лучше подойдёт блюпринт. А для создания уже средних или сложных игр, лучше подойдёт код сделанный на С++.
Создание Blueprint
Перейдём в Content Browser и нажать Add New или нажать правую кнопку мыши на пустом поле. После этого надо нажать на Blueprint class.
Когда мы нажали на blueprint class, появится окно с запросом родительского класса. Есть семь основных класса:
1. Actor: Блюпринт, который может быть помещён на сцену как объект.
2. Pawn: Блюпринт, который можно 'вселиться' и управлять им.
3. Character: Блюпринт, который содержит в себе функциональность готового персонажа. Так же является Pawn.
4. PlayerController: Блюпринт, который отвечает за управлением Pawn классом.
5. Game Mode: Блюпринт, который отвечает за игру, её правила, очки, а так же остальные главные классы(Pawn, HUD, Controller).
6. Actor Component: Блюпринт, который может быть добавлен к любому Actor.
7. Scene Component: Блюпринт, который имеет структуру сцены и может быть присоединен к другим компонентам сцены.
Blueprint редактор
Для начала выберете в редакторе вкладку Event Graph. Event Graph — основное пространство, где происходит сборка кода.
Blueprint редактор состоит из четырёх панелей:
1. Components: Содержит список текущих компонентов.
2. My Blueprint: Этот раздел обычно используется для управления графами, функциями и переменными.
3. Details: Здесь отображаются свойства текущего выбранного элемента.
4. Graph: Все ноды и логика находятся здесь. Перемещаться по панели можно, зажав правую кнопку мыши и перемещая мышь. Масштабирование выполняется прокруткой колеса мыши.
5. Viewport: Здесь отображается все компоненты, имеющие визуальные элементы.
Что такое нод?
До того как приступать к созданию материала, нужно узнать про объекты, которые используются для его создания. Ноды составляют большую часть материала. Существует множество типов нодов, имеющих различные функции. У нодов есть входы и выходы, представленные кругом со стрелкой. Входы расположены слева, а выходы справа.
Вот принцип работы нодов:
Node C и Node D никогда не выполнятся, потому что входной контакт Node C не имеет подключения.
Пример использования Blueprint
Попробуем сделать приветственную надпись на экран по аналогам с самым первым скриптом в языках программирования — Hello World!
Для начала создаём шаблон Third Person(можно взять и другой). Теперь нам надо создать blueprint. Нам предложат выбрать класс.
Выбираем класс Actor. Придумываем любое название для blueprint'а и открываем редактор.
В редакторе графов есть три основных события.
1. Event BeginPlay — событие, которое запускается на старте игры.
2. Event ActionBeginOverlap — событие, взаимодействующее с другим Actor, например зона-триггер или препятствие.
3. Event Tick — событие, которое происходит в каждом кадре.
Находим BeginPlay и вытягиваем цепочку. За набор текста отвечает функция Print Text, поэтому вытягиваем нужную функцию. Компилируем и сохраняем blueprint.
Если мы сейчас запустим, то ничего не произойдёт. Чтобы высветилась надпись надо перенести blueprint на сцену. Надпись появилась и сразу исчезла. потому что мы выбрали событие Event BeginPlay, но если заменить её на Event Tick, строка будет появляться постоянно.
Вот у нас появилась наша фраза, также её можно сделать больше.
На этом вторая часть изучения с движком Unreal Engine закончена.
В следующей части, я расскажу как я создал свою игру на движке Unreal Engine.