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 — объекты, имеющие возможность бегать, прыгать, ходить и т. п.
    • GameMode — определяет саму игру, например, ее правила, подсчет очков и т. п. Также здесь настраиваются другие Blueprint’ы по умолчанию, например, скрипт объекта, которым управляет игрок.

Синтаксис языка[править]

Вся логика языка Blueprint строится из нодов (или блоки), которые соединяются проводами.

Существует несколько типов нодов[3]:

  1. Event (англ. event — событие) — некоторое событие, после которого начинает выполняться следующий код. Примеры event’ов: event tick (вызывается каждый кадр), event beginPlay (вызывается при запуске игры), event onActorBeginOverlap (вызывается, когда хитбокс какого-либо объекта пересекся с хитбоксом другого объекта). Event — это собственно функции, которые вызываются самим движком при определенных условиях.
  2. 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++ может быть почти незаметна.

См. также[править]

Источники[править]

  1. Maltsev Denis Баланс C++ и Blueprints в UE4 — Gamedev на DTF (2019-07-10). Проверено 6 сентября 2020.
  2. Blueprint Class (англ.). Проверено 6 сентября 2020.
  3. Nodes (англ.). Проверено 6 сентября 2020.
  4. 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

Сборники

Unreal Gold Totally Unreal Unreal Anthology

Сотрудники

Тим СуиниКлифф БлезинскиМарк РэинSonic MayhemАлександр БрэндонМихиль ван ден БосКевин Рипл

Компании

Epic GamesDigital ExtremesLegend EntertainmentEPsyonixStreamline Studios

Технологии

BlueprintUnreal Engine (список игр) • UnrealScript UnrealEd

Связанное

Make Something Unreal[en]Facing Worlds

 
Графические
Свободные

GLSceneHorde3D[en]IrrlichtOGREOpenSceneGraph

Проприетарные

Outerra[en]

Физические
Свободные

Box2DBulletChipmunk[en]NewtonODETokamak

Проприетарные

DMMHavokPhysX

Общего назначения
Свободные
Проприетарные
Специализированные
Свободные
Проприетарные