Советы по работе с Blueprint Editor в Unreal Engine 4

Советы по работе с Blueprint Editor в Unreal Engine 4

Ну что, покринжевали вдоволь с картинки? Пора читать статью. Вряд ли вы найдёте здесь какие-то откровения, вещи я рассказываю довольно базовые. Некоторые из них могут даже показаться очевидными, но они мне сохранили много нервов в своё время и сделали работу с редактором блупринтов приятной.

Следите за порядком

Если вас не пугает картинка из начала поста - ну и ладно, ну и не читайте, больно нужно! (╯ ͠° ͟ʖ ͡°)╯┻━┻

А если серьёзно - сейчас я расскажу, как такое не допустить.

Используйте функции и макросы

Если интересно, чем они отличаются - лучше почитать официальную документацию. Но если совсем влом читать - ладно, так и быть, напилю статью, только дайте знать)

По какой-то причине люди (в основном, конечно, новички) боятся использовать функции и макросы. Не надо так. Блупринты очень быстро захламляются десятками и сотнями нодов. А порой вы просто копипастите определённый набор нодов с места на место. Так почему бы не свернуть их в функцию или макрос?

Можно либо создать их, нажав соответствующую кнопку в левой части интерфейса, либо, если у вас уже есть на примете ноды, которые вы хотите включить в функцию/макрос, выделите их, кликните по любому из них ПКМ и выберите "Collapse to Marco/Function".

Потом сможете использовать их где нужно, вместо копирования-вставки целой кучи нодов. Да и даже если их нельзя повторно использовать где-то ещё, всё равно удобнее свернуть ноды в функцию/макрос. Намного удобнее будет визуально воспринимать ноду с названием "Calculate Galaxy Size" чем пару десятков математических нодов.

Добавляйте reroute ноды

Советы по работе с Blueprint Editor в Unreal Engine 4

Не круто, если у вас вместо блупринтов свисающая отовсюду лапша. Просто кликните дважды на любой связи между нодами (или ищите в меню создания):

Таким образом можно очень сильно упорядочить мешанину из связей.

Категоризируйте переменные

Замечали, что у каждой переменной в панели Details есть поле "Category"? Это не какое-то рандомное поле, а ещё один способ упорядочить ваши блупринты. Категорию можно назвать как угодно, но называйте их разумно - без всяких "testCat 12411kof", иначе очень быстро потеряете, где у вас что.

Группировка переменных в категории - чисто визуальная штука, и она напрямую не влияет на блупринты, в общем-то, но это всё равно довольно удобная фишка, которая позволит вам положить все переменные в сворачиваемые группы, а не хранить их единым списком.

Добавляйте комментарии

Комменты - ещё одна удобная штука для организации блупринтов. Просто выберите нужные ноды и нажмите "С". Вокруг выбранных нодов появится цветная (по умолчанию серая) зона. Можно будет поменять описание и цвет фона - таким образом вы сможете узнавать разные части вашего кода даже издали. Более того, таким образом вы сможете легко перемещать ноды группами, просто перетаскивая комментарий.

Следуйте единому способу именования

Способ именования (также соглашение о наименованиях) - это свод правил, как следует называть разные файлы/переменные/функции и всё такое прочее в программировании. Это относится далеко не только к блупринтам, но и к ним тоже, поэтому я считаю важным это упомянуть.

Чтобы особо не раздувать этот пост, советую вам почитать Asset Naming Convention на официальной вики, там много интересного. Вот лишь пара основных моментов:

  • Все названия должны быть на английском и только на английском.
  • Существуют префиксы и суффиксы
    Префиксы зависят от типа ассета. Например, BP_Character01 - это Blueprint
    Суффиксы используются реже, например в текстурах: T_BrickWall_01_AO для карты Ambient Occlusion
  • Используйте цифровые значения (две цифры) для идентификации вариантов ассетов: T_Grass_01, T_Grass_02 и так далее

Что касается переменных, функций и прочего "программистских" вещей, тут всё чуть менее строго и не обязательно использовать CamelCase ("верблюжью" нотацию). В анриле можно в названиях переменных/функций допустимы даже пробелы. Вообще, хорошей идеей будет прочитать Coding Standard из их вики. Он хоть и про C++, но несколько интересных мыслей можно почерпнуть.

Также хочется заметить, что какого-то единого стандарта относительно блупринтов нет (например, в Coding Standard рекомендуется начинать имя булевой переменной с "b", например bFadedOut, но при этом на большинстве стримов их прогеры называют такие переменные вроде "isDead?"), и от студии к студии соглашение о наименованиях может различаться, но оно должно быть. Оно как хороший стайлгайд - призвано сделать так, чтобы разные люди в рамках одного проекта писали код так, будто это сделал один человек.

Совершайте действия быстрее

Сделайте себе одолжение и выучите комбинации горячих клавиш. Таким образом вы сохраните себе кучу времени. Серьёзно, мне больно смотреть на то, как люди используют контекстные меню там, где то же самое можно было сделать с помощю хоткеев в разы быстрее.

В документации есть Blueprint Editor Cheat Sheet - почитайте. А я хочу показать пару самых основных действий, которые вы будете постоянно использовать.

Get/Set Variable

Вместо перетаскивания переменной из списка и затем выбора опции get или set, можно просто нажать Ctrl для получения или Alt для присваивания значения:

Нода if (branch)

Для создания этой ноды нужно просто задать B и кликнуть ЛКМ на пустом месте:

Нода Math

Вместо того, чтобы выкладывать кучу нодов, чтобы провести с ними какую-то математическую операцию, можно просто использовать ноду Math Expression:

Удаление/перемещение связи

Чтобы удалить связь между двумя нодами, не нужно кликать на одном из них и выбирать "Break link...", есть способ побыстрее. Как и для преноса связи из одного пина в другой:

Я знаю, что это не очень много, но надеюсь, что хотя бы что-то полезное вы узнали :)

7575
42 комментария

Комментарий недоступен

6
Ответить

Будто в нем нельзя написать спагетти-код

4
Ответить

Не все хотят морочиться с плюсами. Лучше тогда начать с шарпа на юнити, он проще будет.

1
Ответить

Ещё в хоткеях можно забиндить выравнивание нод. Очень полезно если размер ноды не позволяет выпрямить соединенине между нодами. 

5
Ответить

Комментарий недоступен

2
Ответить

По горизонтали по лапше - Q
По вертикале - Alt+Shift+S
По горизонтали -Alt+Shift+W

Ответить

Охуеть сколько илиты с++ набежало...

4
Ответить