Blueprints Урок 1

Опубликовал Konradvall
31-08-2018, 08:38
566
0
Blueprints Урок 1

Итак, дорогие друзья, начнем! Давай те вообще разберемся что такое Blueprint. Дословный перевод с английского – чертеж, отсюда становиться понятен принцип работы с данной системой. По факту это система графического программирования с возможностью расширения скриптов и функций посредством программирования классического. Для тек кто не понял – мы можем по средством нод выстраивать логику поведения мира или объектов на уровне, если у нас нет необходимых нам нод, мы можем написать свои используя среду разработки, поддерживающую программирование в С++.
Что такое ноды – это графическое представление переменных, постоянных, контекстных функций а также заранее спрограммированных логик. Отсюда мы делаем вывод, что ноды это скрипты, заранее подготовленные разработчиками, для удобства программирования тех, кто не сечет в «плюсах».
Многие ошибочно считают, что если все наглядно, то и понятно. Это не так. Одна категория начинающих считают, что Blueprint – это вот это:

Это друзья мои – страница редактора! Не путайте. И таких страниц может столько, сколько вам угодно при разграничении логики. Вы создаете их сами.
BP – это связка ряда нод, направленных на выполнение логики для той или иной игровой ситуации, или обработки действий игрока, принимая от него сигналы (к примеру управление объектом или героем).
Вообще знакомство с нодами нужно на мой взгляд начинать, с постоянных и переменных. Именно с них, так как с ними вы будете работать наибольшее количество времени на первых порах вашего обучения.
Но для начала мы разберем как создать BP и функционалом редактора. Поехали.
После открытия проекта, найдите Content Browser и правым кликом мыши вызовите контекстное меню. Далее выберите Blueprint Class. Выберем класс Actor (для примера поработаем в нем). Назовем его TestBP и двойным кликом откроем сам редактор.

Заведите себе привычку сохранять все действия на автомате, порой движок может вылететь без всяких видимых причин, для этого используйте стандартную комбинацию Ctrl+Shift+S.
Итак откроем редактор.

Итак слева в вертикальной проекции мы увидим два окна. Первое Components – отвечает за добавление компонентов в ваш BP. Ниже находиться My Blueprint – здесь будут категорироваться создаваемые нами переменные и постоянные, а также находятся зависимые от компонентов ноды, для передачи логики.
В верхнем тулбаре мы увидим стандартные пункты меню, они присутствуют и основном окне проекта, их пока трогать не будем, а вот под ним находится панель управления самим BP.

Здесь по порядку идут Компиляция, Сохранение, Обзор, Поиск, Настройки класса, Настройки класса по умолчанию, Симуляция, Проигрывание и выбор Дебаг фильтров.
Сейчас подробнее о каждом:
1. Compile – после внесения исправлений или дополнения логики, для того чтобы она работала в основном редакторе, BP обязательно необходимо скомпилировать. При компиляции могут возникнуть ошибки и вы можете быстро перейти к «ломанным» нодам при помощи ниспадающего меню, нажав на указатель «вниз» и установив чекбокс в положение правда на параметре «Jump to Error Node». Советую сразу это и сделать. Также вы можете выбрать будет ли сохранятся BP при компиляции.
2. Save – сохранение BP но не компилирование, необходимо для промежуточного контроля. К примеру, вы вносите большие правки в логику и просто сохраняете их без компиляции, т.е. движку не надо просчитывать логику BP после каждого сохранения.
3. Browse – обзор, по факту здесь вы можете все ассоциированные связи с данным BP.
4. Find – поиск по BP
5. Class Settings – основные настройки BP
6. Class Defaults – детализированные настройки BP по умолчанию
7. Simulation – симуляция выполнения логики BP без обязательного вывода в игровой режим, очень полезно при построении логики, будем пользоваться постоянно.
8. Play – проигрывание актуальной версии билда прямо из редактора. При настройке данного режима можно вывести окно игры на второй монитор либо поверх всех остальных окон, позволяет пощупать то, что вы сотворили.
Идем дальше. Центральное окно и есть наша чертежная доска, наш мольберт, где мы будем работать.

Здесь мы можем переключать вкладки с категориями написанной нами логики.
Ниже идет строка состояния, где будет отражаться информация компиляции, поиска п т.д.

Справа мы найдем окно детализации, где будет отражаться информация в зависимости от выбранной ноды или компонента.

Вы можете путем перетаскивания окон настроить внешний вид редактора, а также других разделов движка. Не спешите настраивать пока не попробуете поработать в нем, иначе вы начнете путаться. У меня настроено как удобно мне, поэтому будут отличия от описанных мест где находиться окна по умолчанию.
Теперь к главному. В окне редактора закройте вкладку Construction Script, пока нам это не понадобиться. Оставим две – это Viewport и Event Graph.
Viewport – это визуализированная часть редактора BP где мы можем наглядно посмотреть на объект при написании логики, а также добавления мешей и других компонентов, настройка их логики по умолчанию.

Event Graph – основное окно созданное по умолчанию движком для данного BP, такие окна вы можете создавать сами для разграничения логик в одном чертеже.
Создадим первые переменные и постоянные, для этого просто в My Blueprint найдем категорию Variables и нажмем на «+». По умолчанию первой должна появиться постоянная типа Boolean, дайте ей название «Test_bool». Boolean, она же постоянная – это параметр, который имеет не изменяемый параметр и принимает логику принятия или отрицания, или точнее true и false (правда и ложь). Что бы присвоить параметр любой переменной, для начала после ее создания скомпилируйте BP. Отлично, теперь в окне Details вы можете изменить параметры постоянной, ее имя, тип, реплицированние, приватность, категорию и т.д. и самое главное присвоить ей значение. Давайте это и сделаем, установив чекбокс в категории Default Value в положение true (для уникумов – щелкните мышкой в квадратике, там появится птичка – галочка).

Выбрав ее, вы можете перетащить ее на полотно чертежа и увидите два входящих параметра Get Test_bool и Set Test_bool.
Get – получение значения постоянной или переменной для оперирования оной для построения логики.
Set – задать значение постоянной или переменной в зависимости от логики построения цепочки нод, для последующего вычисления оперирования оными.
Что бы у вас не было таких проблем с выбором вот вам сочетания клавиш для быстрого добавления: при зажатой Ctrl при перетаскивании на плоскость чертежа, вы получите ноду со значением Get, а при зажатой Alt значение Set соответственно. Вот так должно у вас это выглядеть в редакторе.

По тому же принципу создайте переменную типа float, после нажатия на «+» введите название слева от него вы увидите цветовой индикатор, щелкните по нему и выберите Float. После этого присвойте значение переменной «1» и добавьте ее на чертежную доску в обоих значениях. Должно выглядеть так:

Это азы дорогие друзья, запоминайте, потом я не буду возвращаться к данным напоминаниям. Едем дальше.
Конечно, количество нод намного больше, чем две, их около 150 штук (это те, которые написаны Epic’ами). И делятся они на категории, которые мы затронем позже, скажу лишь одно что у некоторых нод есть еще и внутренняя градация.
Ну а теперь давайте создадим что-нибудь рабочее используя ноды. Удалите наш тестовый BP и создайте новый с выбором категории Actor. Назовите это дело к примеру «Sculpt». Перейдем в BP и откройте Viewport. Теперь добавьте новый компонент Cube в композицию или несколько компонентов что бы получилась скульптура, к примеру, вот так:

Теперь перейдем в Event Graph и начнем ваять – создайте переменную float «rotate_speed» и задайте ей значение «50».
Теперь щелкнув правой клавишей по чертежной доске вызовите контекстное меню и введите в поиске Event Tick.
Event Tick – внутренняя нода, принимающая только входные параметры и выполняющая логику каждый тик во время режима проигрывания. Теперь стоит пояснить что такое тик. Тик это – как ни странно это кадр (fps), именно кадр, а не секунда или другая единица времени. Это необходимо учитывать при использовании данной ноды, как ее использовать именно для временной шкалы я расскажу в другой раз.
Тем же способом найдем ноду AddActorLocalRotation и ScaleRotator. Эти ноды отвечают за вращение того или иного объекта или объектов в нашем BP. Также нам понадобиться Make Rotator для получения значения переменной, а именно скорости вращения.
Теперь соединим ноды как показано на скриншоте ниже:

Давайте разберемся что к чему и почему я начал именно с этого: каждый тик наша скульптура будет вращаться, для этого мы запитываем переменную со значением скорости к ноде Make Rotate (в зависимости от того куда мы подключим переменную, по той оси и будет вращаться скульптуре), далее мы передаем значение в Scale Rotator а также передаем значение Delta Seconds из Event Tick (таким образом каждый тик скульптура будет двигаться с заданной скоростью) и в конечном итоге мы передаем все это на AddActorLocalRotation, что бы привести логику к логическому завершению.
Запустите проект и посмотрите что из этого вышло, вы можете увеличить или уменьшить скорость.
Теперь мы изменим логику, создайте постоянную типа boolean «speed_brake» и измените код таким образом посредством использования разделителя логики Branch

Запустите проект и посмотрите, что получилось. Если тормоз включить, то вращение упадет до 50, если нет, то до 1000. Это очень хорошо использовать с триггерами. В дальнейшем мы будем разбирать более сложные коды. Так как нод очень много я могу просто не которые не зацепить в своих уроках.
Также посмотрите видео для данной статьи. Прошу строго не судить, я никогда не писал таких видео, так что считайте что это проба пера, плюс к этому я еще и простужен, поэтому голос у меня гнусавый))) ну и конечно я картавлю))) Полный набор для начинающего учителя))) Ну и конечно у меня нормального звукового оборудования, что бы видео были наивысшего качества.


Для тех у кого не отображается видео, прямая ссылка Blueprints part 1

Не знаю как другие интернет педагоги, но мой подход таков - вот вам первое домашнее задание!!!
Измените логику которую мы написали сегодня, таким образом что бы при при выключенном тормозе, была возможность изменять ось вращения стелы между осями Z и X.
Для проверки домашнего задания вы можете отправить мне скриншоты или видео на ящик konradvall@gmail.com. Обязательно укажите ваш никнейм на сайте GFX-HUB. Проект присылать не надо! Первая петёрка приславшая правильные ответы на ДЗ будут упомянуты в статье.

Со следующего урока мы займемся написанием большого объема BP и видео будет намного больше и наполнение на порядок выше. А именно мы начнем писать небольшую игру в формате Side Scroll. Для меня эта тема новая, я не работал с данным направлением и как хороший учитель - должен учиться вместе с учениками. Отдельное спасибо нашему главному редактору за предоставленные материалы для видения уроков.

Друзья я также прошу вашей помощи. Дело в том что у меня есть мечта, хочу создать домашнюю студию по разработке в UE4. Средств на это конечно уйдет много, а при наличии грудного ребенка - цель вообще заоблачная. Если вы хотите поддержать меня и мои начинания, то можете сделать это просто:
Яндекс.Деньги - 410014371649547;
QIWI - +79141970017;
WebMoney - R277462752505;

До встречи на страницах GFX-HUB.
Комментарии к новости
Добавить комментарий
Добавить свой комментарий:
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Введите два слова, показанных на изображении: *
Архив
«    Сентябрь 2018    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
Сентябрь 2018 (84)
Август 2018 (117)
Июль 2018 (26)
Июнь 2018 (149)
Май 2018 (172)
Апрель 2018 (188)
Опрос