Привет!В этой статье я попытаюсь в подробностях объяснить, как именно работают Blueprint функции с точки зрения C++ кода. Разберем разницу в C++ реализации между Blueprint функциями и C++ функциями, а также будет разобран пример одной из "Blueprint схем". Читать далее
Каждый раз, когда вы соединяете ноды в Blueprint и нажимаете Play, Unreal Engine запускает маленький процессор. У него свои инструкции, свой стек, своя защита от бесконечных циклов. Он написан в ~4000 строках C++ и живёт в одном файле. Через него проходит каждый Event Tick, каждый Event BeginPlay, каждый вызов Blueprint-функции.Этот процессор - Blueprint VM (Virtual Machine). И сегодня мы разберём его по винтикам. Читать далее
Список статейUE4 | Инвентарь для Multiplayer #1 | Хранилище данных на DataAsset UE4 | Инвентарь для Multiplayer #2 | Подключение Blueprint к C++ В предыдущей статье я рассказывал как создать DataAsset, и почему он такой хороший и удобный. Здесь же мы рассмотрим то, как получить доступ к DataAsset, точнее к назначенным в нем данным, из Blueprint и C++. Попутно мы ответим на вопрос получения доступа к любому Blueprint из C++. Читать дальше →
UHT сгенерировал 4294 строки кода из одного моего заголовочного файла. Имена свойств, смещения в памяти, флаги сериализации, exec thunks для каждой функции - всё, чтобы движок в runtime знал о классе то, что C++ забывает после компиляции. Это третья и последняя статья в серии про внутренности Unreal Engine: K2Node → Blueprint VM → рефлексия. Разбираем, что внутри этих четырёх тысяч строк, зачем каждая из них, и как ими пользуются Details panel, GC, репликация и сама Blueprint VM. Читать далее