Blueprint

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Blueprint (блюпринт[1], англ. blueprint — план, чертеж) — система визуального скриптинга, представляющая собой визуальный интерфейс для создания элементов Геймплей, используемая в игровом движке Unreal Engine.

Позволяет использовать почти полный потенциал программирования.

Использование[править]

Язык Blueprint может использоваться в движке Unreal Engine для самых разных целей. Несмотря на то, что движок Unreal Engine также поддерживает язык программирования C++, игра может быть написана только на Blueprint.[2]

Существует 2 типа blueprint’ов: Level Blueprint (в котором происходит настройка уровня в целом) и Class Blueprint. Class Blueprint унаследует другие классы, которые в свою очередь унаследуют следующие[3]:

  • Class Blueprint — родительский класс для всех подклассов
    • Actor Blueprint — объекты, которые могут быть размещены или призваны в мире
      • Pawn — объекты, которым можно управлять клавиатурой, мышкой, джойстиком и т. п.
        • Character — объекты, имеющие возможность бегать, прыгать, ходить и т. п.
    • GameMode — определяет саму игру, например, ее правила, подсчет очков и т. п. Также здесь настраиваются другие Blueprint’ы по умолчанию, например, скрипт объекта, которым управляет игрок.

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

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

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

  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 — язык объектно-ориентированный, поэтому поддерживает все принципы ООП: абстракция, инкапсуляция, наследование и полиморфизм.

Комментарии[5][править]

В Blueprint есть возможность добавлять к коду комментарии, однако при этом, как во всех других языках программирования, код не будет пропускаться, а будет продолжать работать. Комментарий — это белый полупрозрачный квадрат (хотя цвет можно поменять, этим редко пользуются), который оборачивает один или несколько нодов, и имеет сверху поле, в который можно ввести текст, собственно самого комментария.

Компиляция кода[править]

При запуске игры все Blueprint коды переводятся на язык C++. В самой игре используется уже переведенный код на C++. Само переведение занимает некоторое время, поэтому игра на Blueprint может работать несколько дольше, чем на C++, однако это зависит от чистоты кода. У профессионального программиста разница между скриптом на Blueprint и на C++ может быть почти незаметна.

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

  1. ↑ https://skillbox.ru/media/gamedev/chto-takoe-blyuprinty-i-kak-oni-rabotayut-v-unreal-engine/
  2. ↑ Maltsev Denis Баланс C++ и Blueprints в UE4 — Gamedev на DTF. DTF (2019-07-10). Проверено 6 сентября 2020.
  3. ↑ Blueprint Classангл.. docs.unrealengine.com. Архивировано из первоисточника 27 сентября 2020. Проверено 6 сентября 2020.
  4. ↑ Nodesангл.. docs.unrealengine.com. Архивировано из первоисточника 21 октября 2020. Проверено 6 сентября 2020.
  5. ↑ Unreal Engine 4 • » Комментарии Блупринтоврус.. Архивировано из первоисточника 25 февраля 2020. Проверено 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 Games • Digital Extremes • Legend Entertainment • EPsyonix • Streamline Studios

Технологии

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

Связанное

Make Something Unreal[en] • Facing Worlds

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

GLScene • Horde3D[en] • Irrlicht • OGRE • OpenSceneGraph

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

Outerra[en]

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

Box2D • Bullet • Chipmunk[en] • Newton • ODE • Tokamak

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

DMM • Havok • PhysX

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