Ноды, поток выполнения и события
Урок учит читать 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++, но достаточно для большинства задач.