Blueprint
Blueprint (англ. blueprint — план, чертеж) — система визуального скриптинга, представляющая собой визуальный интерфейс для создания элементов Геймплей, используемая в игровом движке Unreal Engine.
Позволяет использовать почти полный потенциал программирования.
Использование[править]
Язык Blueprint может использоваться в движке Unreal Engine для самых разных целей. Несмотря на то, что движок Unreal Engine также поддерживает язык программирования C++, игра может быть написана только на Blueprint.[1]
Существует 2 типа blueprint’ов: Level Blueprint (в котором происходит настройка уровня в целом) и Class Blueprint. Class Blueprint унаследует другие классы, которые в свою очередь унаследуют следующие[2]:
- Class Blueprint — родительский класс для всех подклассов
- Actor Blueprint — объекты, которые могут быть размещены или призваны в мире
- Pawn — объекты, которым можно управлять клавиатурой, мышкой, джойстиком и т. п.
- Character — объекты, имеющие возможность бегать, прыгать, ходить и т. п.
- Pawn — объекты, которым можно управлять клавиатурой, мышкой, джойстиком и т. п.
- GameMode — определяет саму игру, например, ее правила, подсчет очков и т. п. Также здесь настраиваются другие Blueprint’ы по умолчанию, например, скрипт объекта, которым управляет игрок.
- Actor Blueprint — объекты, которые могут быть размещены или призваны в мире
Синтаксис языка[править]
Вся логика языка Blueprint строится из нодов (или блоки), которые соединяются проводами.
Существует несколько типов нодов[3]:
- Event (англ. event — событие) — некоторое событие, после которого начинает выполняться следующий код. Примеры event’ов: event tick (вызывается каждый кадр), event beginPlay (вызывается при запуске игры), event onActorBeginOverlap (вызывается, когда хитбокс какого-либо объекта пересекся с хитбоксом другого объекта). Event — это собственно функции, которые вызываются самим движком при определенных условиях.
- Function (англ. function — функция) - также как и в других языках программирования функции. Составляют большую часть кода на blueprint. Существуют внутриигровые функции, которые можно использовать, например:
- Get/Set variable — получает переменную или устанавливает в нее указанное значение
- AddActorWorldOffset — сдвигает объект в мировых координатах на указанное расстояние.
- PrintString — печатает на экране указанный текст. Текст виден только в редакторе, в уже скомпилированной игре его не будет.
- Delay — приостанавливает выполнение скрипта на указанное количество времени.
- и так далее.
Также функции могут быть созданы самим программистом, после чего вызваны в коде. Функции могут принимать или возвращать значения, в таком случае у блока функции появятся дополнительные контакты, слева и справа, для подсоединения вводных значений и получения вывода.
3. Блок Branch (англ. branch — ветка) — аналог условного оператора if-else
4. Блоки Switch on … (англ. switch — переключатель) — аналог оператора switch case.
5. Блоки циклов for, for with break (цикл for с условием выхода), while.
6. Блок Construction Scipt (англ. Construction — строительство) — специальная функция, вызываемая при спавне объекта или изменении его характеристик. Может быть вызвана даже до начала игры в редакторе.
Blueprint — строго типизированный язык (как и C++), поэтому все переменные должны иметь свой тип данных. Поддерживаются также массивы, словари.
Также Blueprint — язык объектно-ориентированный, поэтому поддерживает все принципы ООП: абстракция, инкапсуляция, наследование и полиморфизм.
Комментарии[4][править]
В Blueprint есть возможность добавлять к коду комментарии, однако при этом, как во всех других языках программирования, код не будет пропускаться, а будет продолжать работать. Комментарий — это белый полупрозрачный квадрат (хотя цвет можно поменять, этим редко пользуются), который оборачивает один или несколько нодов, и имеет сверху поле, в который можно ввести текст, собственно самого комментария.
Компиляция кода[править]
При запуске игры все Blueprint коды переводятся на язык C++. В самой игре используется уже переведенный код на C++. Само переведение занимает некоторое время, поэтому игра на Blueprint может работать несколько дольше, чем на C++, однако это зависит от чистоты кода. У профессионального программиста разница между скриптом на Blueprint и на C++ может быть почти незаметна.
См. также[править]
Источники[править]
- ↑ Maltsev Denis Баланс C++ и Blueprints в UE4 — Gamedev на DTF (2019-07-10). Проверено 6 сентября 2020.
- ↑ Blueprint Class (англ.). Проверено 6 сентября 2020.
- ↑ Nodes (англ.). Проверено 6 сентября 2020.
- ↑ Unreal Engine 4 • » Комментарии Блупринтов (рус.). Проверено 6 сентября 2020.
Мир Unreal ↑ [+] | |
---|---|
Unreal |
Unreal • Unreal Mission Pack I: Return to Na Pali • Unreal II: The Awakening |
Unreal Tournament |
Unreal Tournament • Unreal Tournament 2003 • Unreal Tournament 2004 • Unreal Tournament 3 • Unreal Tournament 4 |
Unreal Championship |
Unreal Championship • Unreal Championship 2: The Liandri Conflict |
Сборники | |
Сотрудники |
Тим Суини • Клифф Блезински • Марк Рэин • Sonic Mayhem • Александр Брэндон • Михиль ван ден Бос • Кевин Рипл |
Компании |
Epic Games • Digital Extremes • Legend Entertainment • EPsyonix • Streamline Studios |
Технологии |
Blueprint • Unreal Engine (список игр) • UnrealScript • UnrealEd |
Связанное |
Игровые движки (избранные) (список) ↑ [+] | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Графические | |||||||||||||||
Физические | |||||||||||||||
Общего назначения |
| ||||||||||||||
Специализированные |
|