Blueprints: Краткое руководство для освоения

Этот стартовый гайд научит вас тому, как можно создать Актера (Actor) внутри уровня, используя разные компоненты (Components), а затем перевести в Blueprint-класс (Class), к которому можно добавить пусковое поведение, чтоб ваш Персонаж (Character) мог передвигаться по уровню. Если вы конвертируете работу в Blueprint Class, это  также значит, что вы можете создать в вашем мире столько пусковых платформ, сколько захотите, просто перетаскивая в уровень из Content Browser.

Шаги:

Шаг 1. Базовая настройка проекта

  • Создаем новый проект (new project).
  • Выбираем шаблон Side Scroller в табе Blueprint мастера настройки  нового проекта.
  • Выберете нужные настройки масштабируемости и качества, которые наилучшим образом подойдут для вашей установки, но убедитесь в том, что вы не забыли добавить стартовый контент (Starter Content). Если вы не уверены в том, с каких настроек нужно начать, то полезная информация ждет вас в разделе Project Settings.
  • Назовите ваш проект, а затем создайте его, кликнув на кнопочку  Create Project .
    Теперь вы должны увидеть уровень side-scroller, готовый для работы и добавления чего-либо.

Шаг 2. Сконструируйте собственную пусковую платформу

Вам нужно будет создать пусковую платформу в Редакторе уровней (Level Editor) и конвертировать ее в Blueprint Class, чтоб вы могли добавить к ней геймплей-поведение.

  1. Сначала двигайте область просмотра, пока не увидите верхние платформы в уровне.

    Мы собираемся создать своего рода контейнер для частей пусковой платформы, используя Empty Actor. Две части (или компонента) вам понадобятся, чтоб создать форму, представляющую собой вашу пусковую платформу.  Запуск событий произойдет, когда персонаж ее перекроет.
  2. В панели Modes кликните на  Basic, а затем найдите  Empty Actor.
  3. Перетащите его в уровень, чтоб компонент оказался на одной из верхних платформ.
  4. Теперь у вас есть актер (Actor), выбранный в уровне, и его значения видны в панели   Details. В верхней части панели Details, вы можете его переименовать.

    Просто кликните на бокс, чтоб ввести имя, типа «LaunchPad». Первый компонент, который мы собираемся добавить, это — куб, но мы собираемся немного уменьшить его, чтоб он большее соответствовал размеру платформы. Если мы добавили компонент первым, то он станет Корневым компонентом, так что другие компоненты будут соответствовать ему в плане позиции, масштаба и передвижений по экрану. Вы можете перераспределить ранжирование компонентов по ходу работы.
  5. В панели Details кликните кнопку «Add Component», а затем выберете  Cube в Basic Shapes.
  6. Теперь, когда ваш компонент  Cube выделен, вы можете изменить его параметры. Измените размеры куба (1, 1, 0.1).
  7. Теперь мы добавим компонент Box Collision, который будет выпаливать каждый раз при его пересечении. В панели Details кликните кнопочку «Add Component», а затем кликните  Box Collision в Collision.
  8. Измените размеры бокса, чтоб тот соответствовал размеру платформы в X и Y, и расширьте его немного над платформой в Z. Если вы хотите ввести ваши параметры (Scale) напрямую, попробуйте (1.25, 1.25, 1.5).

Если вам нужно изменить параметры вашего актера (Actor), например, увеличить разметры всей пусковой площадки, вы можете кликнуть LaunchPad (Instance), прямо под  кнопкой Add Components в панели Details.

Теперь ваш Actor такой, каким вы его хотите видеть, так что самое время превратить его в Blueprint Class. Вы можете добавить больше компонентов, находясь в Blueprint Editor и настраивать их так, как если бы вы находились в уровне.

Шаг 3. Конвертация  Актер (Actor) в Blueprint-класс (Class)

Если вы вносите изменения внутри Blueprint, это значит, что каждый раз, когда вы создаете новую пусковую платформу, все выглядит и воспринимается так, как будто вы работаете в Blueprint Editor. Несмотря на то, что вы можете скопировать вашего актера пусковой площадки (LaunchPad Actor) в вашем уровне (level), любые изменения, которые вы проделаете на определенной спусковой платформе, будут затрагивать только одну эту копию.

  1. В панели Details кликните на кнопку  «Blueprint/Add Script».
  2. Разверните папку SideScrollerBP, затем выберете папку  Blueprints.
  3. Здесь вы можете переименовать ваш Blueprint или оставить, как есть LaunchPad_Blueprint.
  4. Кликаем Create Blueprint.

    Теперь ваш Blueprint виден в Content Browser. Теперь вы можете перетаскивать что-либо из  Content Browser в уровень (level), что позволяет создавать множественные копии платформы  mesh и тригера, но здесь еще нет никакого поведения вообще.

В следующем шаге вы начнете настраивать узлы графа внутри вашего Blueprint,  чтоб запустить вашего персонажа (Character), который должен  пересечь пусковую площадку.

Шаг 4. Создание стартовой точки

Чтоб добавить поведение к вашему Blueprint-классу (Class), вам нужно открыть его в Blueprint Editor.

  1. Двойной клик на Blueprint Class в Content Browser.
  2. Blueprint Editor откроется и в области просмотра вы увидите ваши компоненты Cube и Box. Здесь, если вы расширите местоположение компонента Box, то он применится ко всем пусковым площадкам, которые вы создали из этого   Blueprint Class. Прямо так, как если бы вы работали с компонентами на вашем LaunchPad Actor, вы можете выбрать компонент Box в списке Components и расширить его местоположение. Попробуйте такую локацию (0.0, 0.0, 50.0).
  3. Рядом с табом  Viewport находятся табы  Construction Script и Event Graph. Так как вы собираетесь установить поведение геймплея, вы должны начать с Event Graph. Прямо сейчас кликните на этот таб. Events (события) – это стартовые точки вашего графа выполнения, и они могут ассоциироваться с некоторым количеством разных ситуаций геймплея.

    Набор самых часто использующихся событий всегда  предстает в виде полупрозрачных узлов события. Несмотря что они очень полезны для многих ваших Blueprint-графов, мы создадим нечто свое.
  4. Мы хотим событие, которое будет запускаться, когда что-либо перекроет ваш компонент Box. Сначала выберете компонент  Box в табе Components.
  5. Правый клик на пустой области в вашем графе вызовет контекстное меню узлов, которые можно добавить в граф.

    Чтоб перемещаться по графу, используйте клики и перетаскивания. Здесь вы могли бы перетащить граф налево, переместив размещенные  узлы событий с левой стороны экрана  и тем самым создав больше пустого пространства для дальнейшего создания пусковой площадки.
  6. Мы хотим добавить событие для этого компонента, так что разверните выпадающий список Add Event for Box, а затем и Collision. Также вы можете использовать поиск, используя  «Component Begin Overlap» для фильтрации меню.
  7. Выбираем On Component Begin Overlap.

Теперь ваш граф имеет OnComponentBeginOverlap-узел. Любые узлы, связанные с этим событием будут задействованы, когда что-то перекроет компонент  Box вашей пусковой площадки.

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

Шаг 5. Тестирование перекрывающего актера  (Overlapping Actor)

Прямо сейчас событие OnComponentBeginOverlap будет задействовано, когда что-то пересечет   Box-триггер. Мы хотим включить  запускающее поведение, учитывая тот факт, что пересекающая штука – это наш аватар или пешка (Pawn). Подумайте об этом, если задаетесь вопросом «Актер (Actor), пересекающий Box-триггер, это тот же самый актер, что и пешка (Pawn)?»

Мы сделаем это, работая с выводом Other Actor из события OnComponentBeginOverlap.

  1. Кликаем на пин Other Actor в событии OnComponentBeginOverlap, перетаскиваем на пустое место графа и отпускаем, чтоб вызвать контекстное меню. Контекстное меню адаптивно и заполняется пином, с которым вы сейчас работаете, что позволяет показать только те узлы, которые с ним совместимы.
  2. Напечатайте «=» в поле поиска, чтоб отфильтровать доступные узлы, а затем кликните Equals (Object).

    Вы можете установить Side Scroller Char, как любое другое вводное значение для  узла Equals , но если вы смените персонажа (Character), которого использовали, вам нужно будет переоткрыть этот Blueprint и вручную обновить его. Вместо этого давайте обратимся к действительной пешке (Pawn), которую вы используете.
  3. Кликаем правой кнопкой мыши по пустой части графа, тоб вызвать контекстное меню.
  4. Напечатайте «Pawn» в поисковой строке, затем выберете Get Player Pawn (под Game).
  5. Соедините выходное значение Return Value на Get Player Pawn со вторым входным значение на узле Equals.

    Теперь, когда у нас есть узел, который скажет нам, если Other Actor- это пешка (Pawn), которая контролируется вашим игроком, мы можем использовать ответ, чтоб изменить порядок выполнения вашего графа. Так мы направим поток выполнения, таким образом, чтоб он покидал узел  Component Begin Overlap. Для этого мы хотим использовать узел контроля потока (Flow Control), а именно узел Branch.
  6. Возьмите пин выполнения на узле OnComponentBeginOverlap и переместите его на пустую часть графа.
  7. Напечатайте «Branch» в поиске, и выберете Branch из контекстного меню.
  8. Соедините выходной пин узла Equals, с входным Boolean-пином на узле Condition.
    Граф теперь готов для установки другого поведения, которое будет исполнено в зависимости от того является ли пересекший актер вашей пешкой

(Pawn) или нет. В следующем шаге мы установим Blueprint-узлы, позволяющие запустить ваш персонаж (Character), если результатом  сопоставления Equals  является True.

Шаг 6. Запускаем свой персонаж

Наша пусковая платформа будет работать, используя функцию, которая   называется Launch Character. Функция  Launch Character добавляет скорость, которую вы определили в качестве текущей скорости персонажа и  позволяющую вам вбросить его внутрь в любом выбранном направлении. Работает только для персонажей, но вам нужно убедиться в том, что ваша  Pawn (аватар) – это Character (персонаж или человекоподобный аватар).

Для этого мы будем использовать casting. Casting позволяет конвертировать ваше входное значение в другой тип.  Таким образом, вы получите  доступ к специфической функциональности, которая разрешена только для этого определенного типа. Вы только выиграете, если ваше входное значение будет основываться на этом типе.

Все, что вы можете поместить в ваш уровень (level) – это Actor, которого поздеее можно дополнить определенным поведением. Это значит, что вы можете получить ссылку на все, что находится в вашем уровне, кастинговать это к  актеру (Actor) и всегда успешно. Как бы то ни было, не все в вашем уровне – это Pawn, представляющая вас в игре, так что кастингование чего-либо с Pawn может быть, как успешным так и нет.

  1. Перетащите с пина Return Value в  Get Player Pawn.
  2. Напечатайте «Cast» в поле для поиска, затем выберете Cast to Character в контекстном меню.
  3. Перетащите с пина с As Character на узле Cast.
  4. Напечатайте «Launch» в поле поиска, затем выберете Launch Character в контекстном меню.

    Заметим, что для успешного кастингования пин выходного выполнения автоматически соединяется с входным исполнением пина Launch Character.
  5. Впечатайте «3000» в Z -поле узла Launch Character.
  6. И наконец, соедините пин True-исполнения узла Branch с входным исполнением узла Cast to Character. Тем самым мы получаем, что Cast to Character и Launch Character будут приводиться в действие только, если пересекающий Actor – это ваша Pawn.

    Теперь скомпилируйте и сохраните Blueprint, используя кнопки тулбара, а затем закройте  Blueprint Editor.
  7. Перетащите несколько пусковых платформ в ваш уровень из Content Browser.
  8. Кликаем на Play в тулбаре, затем пробегаем по уровню (используя  WASD) и прыгаем (используя «пробел»), приземляемся на одной из платформ и наблюдаем, как парим в воздухе!

Шаг 7. Самостоятельно!

Используя полученные во время прохождения курса знания, попробуйте воплотить в жизнь следующее:

  • Включите звук, который раздается при приземлении Персонажа, используя Audio Component.
  • Создайте вариацию, для хранения вашей Launch Velocity (скорость запуска) и экспонируйте ее, чтоб можно было установить ее на каждую копию в уровне.
  • Добавьте Particle System Component в ваш Blueprint, и используйте одну Particle Systems (систем частиц) из  Starter Content.
  • Добавьте Arrow Component и используйте ротацию, чтоб определить направление, в котором будет запущен персонаж.
  • Используя  Timelines , добавьте анимацию к Box Mesh для презентации запуска персонажа.

Ссылки, связанные со стартовым гайдом:

  • Чтоб быстренько узнать о том, какие существуют типы Blueprint Classes (классов) читайте: Introduction to Blueprints
  • Для более подробной информации о Blueprint Classes, читайте: Blueprint Class
  • Больше коротких уроков, посвященных созданию и работе с Blueprint Classes, ищите здесь: Blueprints — How To’s
  • Более подробную информацию о Blueprint Editor, ищите здесь: Blueprint Editor Reference

Источник