Ноды, поток выполнения и события

Урок учит читать Blueprint-графы: что такое ноды, поток выполнения и события.

Blueprint — это визуальный язык программирования Unreal, где логика собирается из соединённых блоков-нод вместо текстового кода.

Зачем нужны Blueprints

Blueprints позволяют программировать игру, не написав ни строки C++. Это не «упрощённая игрушка»: на чистых Blueprints выходят коммерческие игры. Для новичка это главный путь — можно сразу строить логику, видеть связи наглядно и быстро пробовать идеи. В Unity ближайший аналог — Visual Scripting, но в Unreal блюпринты гораздо более центральны.

Из чего состоит граф

Граф Blueprint читается слева направо. В нём два вида соединений. Белая линия — это поток выполнения (execution): она задаёт порядок, в каком ноды срабатывают. Цветные линии — это данные: они передают значения (число, текст, объект) из выхода одной ноды во вход другой. Каждая нода имеет пины: слева входные, справа выходные.

[Event BeginPlay] ==> [Print String: "Старт"] ==> [Set Score = 0]
       ^                                            ^
   событие                                  белая линия = поток

[Get Health] --(данные)--> [Branch: Health > 0 ?]

События — точки входа

Граф не выполняется сам по себе — его запускает событие. Событие это красная нода, от которой начинается белая линия потока. Самые частые события вам уже знакомы по жизненному циклу Actor'а.

СобытиеКогда срабатывает
Event BeginPlayОдин раз при старте
Event TickКаждый кадр
Event ActorBeginOverlapКогда другой объект вошёл в коллизию
Custom EventКогда вы сами его вызвали

Пины и типы данных

Цвет пина показывает тип данных: синий — объекты, красный — булево, зелёный — числа с плавающей точкой, бирюзовый — целые, розовый — строки. Соединять можно только совместимые типы; Unreal не даст подключить булево к строковому входу.

Как работает под капотом

Blueprint не интерпретируется «как есть» — он компилируется в байт-код виртуальной машины Blueprint. Когда вы нажимаете Compile, движок превращает граф в последовательность инструкций. Эта VM работает медленнее нативного C++, поэтому тяжёлые вычисления в Tick на блюпринтах могут просесть по производительности — но для большей части игровой логики скорости хватает с запасом.

Частые ошибки

  • Забыть событие. Граф без подключённого события никогда не выполнится — это самая частая ошибка новичка.
  • Путать поток и данные. Белая линия — порядок; цветная — значения. Их нельзя смешивать.
  • Тяжёлая логика в Tick. Сложные вычисления каждый кадр на блюпринтах бьют по FPS.

Комментарии и порядок в графе

Графы быстро превращаются в запутанную паутину проводов — это знаменитое «блюпринт-спагетти». Хорошая привычка с самого начала — наводить порядок. Выделите группу нод и нажмите C: появится цветной комментарий-рамка, в которую можно написать, что эта часть делает. Узлы Reroute помогают аккуратно вести длинные провода, а нода Sequence позволяет выполнить несколько ветвей по порядку от одного события, не громоздя всё в линию.

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

Итоги

  • Blueprint — визуальный язык; логика строится из нод.
  • Белая линия — поток выполнения, цветные — передача данных.
  • Граф запускается событием (BeginPlay, Tick, Overlap, Custom Event).
  • Blueprint компилируется в байт-код VM — медленнее C++, но достаточно для большинства задач.
Проверьте себя
1. Что задаёт белая линия в Blueprint-графе?
AПередачу данных
BПорядок выполнения нод
CЦвет ноды
DТип переменной
2. Почему граф из нод может вообще не выполниться?
AНе скомпилирован проект
BК нему не подключено событие
CСлишком много нод
DИспользованы цветные пины
3. Во что превращается Blueprint при компиляции?
AВ нативный C++
BВ байт-код виртуальной машины Blueprint
CВ HTML
DВ текстовый скрипт