Unreal engine blueprint переключатель

Основные приёмы Blueprint-программирования

Blueprints — это визуальная, нодовая система программирования, которая используется в Unreal Engine 4. С помощью составления логических блоков нодов, можно «собрать» как из конструктора программу любой сложности, начиная от простого кликера, заканчивая полноценной RPG-игрой. Так как в блупринтах не используется программный код — написать программу может каждый, кто понимает основные принципы ООП.

В первую очередь идём по переменным:

Каждый тип переменных в движке имеет свой цвет, чтобы их было удобно различать. Это же визуальное программирование;

Работая с переменными, мы можем либо получить значение, которое в них лежит, либо записать в них новое значение. За эти операции отвечают ноды Get (получить значение) и Set (задать новое значение).

Array — это массив переменных того или иного типа. Например, нам надо хранить результаты турнирной таблицы для всех игроков. Мы запишем очки каждого игрока в массив в определённой последовательности. На скриншоте мы добавляем в конец массива число 12,54.
А когда нам понадобится достать из массива какое-то значение, мы укажем его порядковый номер и получим результат с помощью ноды Get. На скриншоте — получаем из массива значение переменной с индексом 2.

Есть ещё ноды, отвечающие за ход выполнения логики. Называются они нодами FlowControl

Ноды этого типа регулируют то, по какому «пути» или по какой «ветке» пойдёт дальнейшее выполнение алгоритма в зависимости от заданных условий.

Работает как оператор IF в языках программировании и в зависимости от того какое значение стоит во входном значении Condition — Branch перенаправляет ход исполнения функций по той или иной «ветке» событий.

Это цикл. Он выполняет определённые последовательности команд N-ое количество раз и после завершения запускает последовательность по пину Completed. В параметрах этой ноды стоит первый и последний индекс, по диапазону между ними и проходит сам цикл. При этом внутри цикла мы можем использовать тот самый индекс, по которому в данный момент происходит выполнение тела цикла «Loop Body».
Например, вам надо создать 50 врагов — тогда соедините функцию «Создание врагов» с пином «Loop Body» и укажите диапазон индексов от 0 до 49.

Тот же цикл, только в этом варианте он работает с массивом и выполняется столько раз, сколько в присоединённом массиве находится элементов. Так же в теле цикла мы получаем доступ к N-ому объекту этого массива и можем с ним работать.
Например, мы хотим увеличить каждое значение в массиве на единицу — прогоним массив циклом и каждый элемент увеличим на единицу (нода «++»).

В зависимости от типа сравнения — сравниваются либо целочисленные (Integer) значения, либо значения с запятой (Float). На входе указывается с каким числом мы сравниваем ту или иную переменную, на выходе выполняется соответственный результату сравнения пин «больше», «меньше» или «равно».

Это переключатель. Когда сигнал приходит в ноду в первый раз — выполняется Пин «A», когда второй раз — Пин «B», в следующий раз снова «A» и так далее. Кстати выходное значение так же меняется с true на false в зависимости от того какой пин выполняется в данный момент.

Всё это лишь верхушка айсберга, но, думаю суть ясна: программировать на блупринтах совсем не сложно, ведь нет необходимости учить сложный синтаксис и писать код, а визуальное взаимодействие сильно помогает ориентироваться в алгоритме и «писать» программы быстрее.

Источник

Flow Control

Nodes that allow for controlling the flow of execution based on conditions.

Choose your operating system:

Switch Nodes

A switch node reads in a data input, and based on the value of that input, sends the execution flow out of the matching (or optional default) execution output. There are several types of switches available: Int, String, Name, and Enum.

In general, switches have an execution input, and a data input for the type of data they evaluate. The outputs are all execution outputs. Enum switches automatically generate the output execution pins from the Enum‘s properties, while Int, String, and Name switches have customizable output execution pins.

Editing Switch Nodes

When an Int, String, or Name switch node is added to a Blueprint, the only output execution pin available is the Default pin. The Default output execution pin will fire if the input fails to match any of the other specified output pins. It can be removed by either right-clicking on the pin and selecting Remove Execution Pin or by unchecking the Has Default Pin option in the Details tab for the switch node.

Editing an Int Switch:

Select the switch node in the Graph tab to bring up its properties in the Details tab.

Change the Start Index to the lowest integer value that you want to check against.

Click on Add Pin on the switch node to add the pin with your Start Index value.

Clicking on Add Pin further will add more pins, with the value incremented by 1 each time. To delete an execution pin, right-click on the pin and select Remove Execution Pin. Note that removing an output execution pin on a Switch on Int node causes any higher-valued pins to decrease their value by 1 to fill the gap.

Editing a Name or String Switch:

Select the switch node in the Graph tab to bring up its properties in the Details tab.

icon to the right of Pin Names.

Type the value you would like your String or Name to compare to in the text box that appears.

Repeat the process for any other pins you would like to add. Pins can also be duplicated, inserted, or deleted by clicking on the

icon by the desired pin in the Details tab. To delete an execution pin, you can also right-click on the pin and select Remove Execution Pin.

Standard Flow Control Nodes

These nodes provide a variety of means to control the flow of execution.

Branch

The Branch node serves as a simple way to create decision-based flow from a single true/false condition. Once executed, the Branch node looks at the incoming value of the attached Boolean, and outputs an execution pulse down the appropriate output.

In this simple example, the branch is checking the current state of a boolean variable. If true, it sets the color of a light to be red. If false, it sets it to blue.

Источник

UEngine.Ru

Русскоязычное сообщество Unreal Engine 4

Контроль последовательности

Блоки управления логическими последовательностями позволяют контролировать то, в какой последовательности вызываются функции. Данные блоки могут делать разветления, выполнять последовательности определенное количество раз, определять, какие последовательности будут исполняться раньше других и так далее. Данные блоки можно найти в разделе Utilities > Flow Control.

Блок Switch (переключатели)

Блок Switch считывает входящие данные, и на их основе выполняет соответствующую последовательность. Такие переключатели доступны 4-х видов: Int, String, Name и Enum.

В основном, переключатели имеют исполняемый вход и контакт для данных, на основе которых он будет выполнять одно из последовательностей. На выходе имеются только исполняемые контакты. Переключатели Enum автоматически генерируют выходные контакты, в то время как Int, String и Name имеют настраевымые контакты.

Блоки Switch доступны в разделе Utilities > Flow Control > Switches в списке всех блоков(например контекстное меню графика).

Редактирование переключателей

Как только переключатель добавлен в Блупринт, единственный контакт на выходе — Default. Данный контакт сработает в том случае, если данные на входе не совпадают ни с одним вариантом в переключателе. Его можно удалить, нажав правой кнопкой на нем и выбрав Remove Execution Pin, или отключив опцию Has Default Pin на панеле Defaults.

  1. Выставите Switch блок на график для настройки
  2. Измените Start Index на самое низкое значение, с которого вы хотите вести сравнение
  3. Нажмите Add Pin на блоке что бы добавить выходной исполняемый контакт. Число введенное в Start Index отвечает за первый контакт. Все остальные за следующие по порядку

Что бы удалить контакт, нажмите правой клавишей мыши по контакту и выберете Remove Execution Pin. Учтите, что удаление контакта в Switch on Int блоке, придаст всем следующим блокам по списку знаечение на 1 меньше.

Name или String Switch

  1. Нажмите на кнопку + на панеле Defaults что бы добавить параметр для сравнения
  2. Введите желаемое значение для сравнение в поле.

Повторяйте процес, добавляя нужное количество сравнений для данных. Выходные контакты будут созданы автоматически и соответствуют указаным параметрам.

Branch

Branch блок предоставляет стандартное TrueFalse разветление. Как только блок вызван, он считывает булевый параметр на входе и в зависимости от значения, вызывает True(если правда) или False(если ложь).

Входные конекторы
Без названия Вызывает срабатывание блока
Condition Булевое значение(Правда/Ложь), которое влияет на то, какой выход будет использован для продолжения последовательности
Выходные конекторы
True Срабатывает, если значение на входе — True(Правда)
False Срабатывает, если значение на входе — False(Ложь)

Блок Do N позволяет вызвать последующую последовательность только Определенное количество раз. Как только достигнут лимит, последовательность будет прерываться на блоке Do N. Вызовете блок через контакт Reset, что бы обнулить счетчик и возобновить срабатывание последовательностей.

Входные конекторы
Enter Вызывает срабатывание блока
N Числовое значение Int, обозначающее количество раз, которое DoN блок продолжит последовательность.
Reset При срабатывании, сбрасывает блок, что позволит заново продолжать последовательность
Выходные конекторы
Exit Выход на последовательность, срабатывающая нужное количество раз.

DoOnce

Блок DoOnce вызовет следующую последовательность только один раз. После того, как блок один раз пропустил последовательность, он блокируется и продолжить последовательность можно только вызвав Reset. Блок является эквивалентом Do N блока со значением 1.

Вход
Без названия Вызывает блок
Reset Перезапускает блок, позволяя снова пропустить последовательность
Выход
Completed Продолжает следующую последовательность, если блок не был вызван ранее или не был сброшен

FlipFlop

Вызывает выходящие события по очереди. Первый раз, когда вызван блок, вызывается последовательность А, второй раз — В. Потом A, потом В и так по очереди. Блок так же имеет булевый контакт, который предоставляет информацию о том, какая последовательность вызвана.

Вход
Без названия Вызывает блок
Выход
А Вызывается каждый нечетный раз при срабатывании блока
В Вызывается каждый четный раз при срабатывании блока
Is A Предоставляет булевое значение, которое указывает, какая последовательность была продолжена. А — Правда, В — Ложь.

For Loop

Блок ForLoop вызывает последовательность определенное количество раз повторно. После того, как последовательность была вызвана нужное количество раз, вызывается последовательность Completed.

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

Вход
Без названия Вызывает блок
First Index Числовое значение, с которого начнется отсчет повторов
Last Index Числое значение, до которого будет произведен отсчет повторов. Количество повторов = Last Index — Fist Index
Выход
Loop Body Последовательность, которое нужно вызвать нужное количество раз
Index Номер текущего повтора
Completed Последовательность, которая будет вызвана после окончания повторов

For Loop With Break

Работат по тому же принципу, что и ForLoop, однако может быть прерван.

Вход
Без названия Вызывает блок
First Index Числовое значение, с которого начнется отсчет повторов
Last Index Числое значение, до которого будет произведен отсчет повторов. Количество повторов = Last Index — Fist Index
Break Прерывает повтор последовательностей
Выход
Loop Body Последовательность, которое нужно вызвать нужное количество раз
Index Номер текущего повтора
Completed Последовательность, которая будет вызвана после окончания повторов

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

Вход
Enter Вход для последовательности, которая может быть продолжена или нет.
Open Открывает блок для продолжения последовательности
Close Закрывает блок
Toggle Переводит блок в другое состояние при срабатывании. От закрытого к открытому или наоборот.
Start Closed Булевое значение, определяющее, будет ли блок открыт изначально или нет
Выход
Exit Вызывает последовательность в том случае, если блок открыт.

Multi Gate

Блок Multy Gate вызывает соответствующую последовательность по очереди в зависимости от заданных значений. Так же может вызывать последовательности в случайном порядке.

Вход
Без названия Вызывает блок
Reset Сбросить блок, тем самым установить отсчет на 0
Is random Если правда, последовательности будут вызваны в случайном порядке
Loop Зацикливает вызов последовотельностей. В ином случае вызов последовательностей прекратится после всех вызванных событий один раз.
Start Index Устанавливает номер начальной последовательности. Значениебудет означать, что будет вызвана последовательность по умолчанию.
Выход
Out # Выход для последовательности.
Add pin Добавить выход для езё одной последовательности. Удалить созданные выходы можно нажав по одному правой клавишей мыши и выбрав Remove Pin.

Sequence

Sequence блок позволяет выполнить любое количество последовательностей по очереди. Последовательности вызываются без какой либо заддержки, так что можно считать, что последовательности выполняются одновременно.

Вход
Без названия Вызывает срабатывание блока
Выход
Then # Вызывает последовательность в свою очередь.
Add Pin Добавить контакт для присоеденения дополнительной последовательности.

While Loop

Блок WhileLoop циклично вызывает последовательность до тех пор, пока условие — Правда.

Источник

Оцените статью
Частотные преобразователи