background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]"

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Оглавление
|

Оглавление

2:12
Как создать Blueprint и его разновидности
4:17
Обзор Blueprint редактора
6:23
Как создавать логику в Blueprint и разновидность блоков - нод
11:06
Создаём свою первую логику!
15:18
ПЕРЕМЕННЫЕ
26:53
МАССИВЫ
38:54
Строки
42:45
ЦИКЛЫ
48:01
МАТЕМАТИКА!
56:27
Random - случайное число
56:49
Math Expression
57:43
ЛОГИЧЕСКИЕ ОПЕРАТОРЫ
1:03:21
ФУНКЦИИ
1:06:57
Макро Функции
Теги видео
|

Теги видео

unreal engine 4
unreal engine 4 blueprint
unreal engine 4 blueprints
ue4
unreal engine 5
blueprints
cyberstars
bluprint
программирование
blueprints unreal engine 4
разработка
blueprint
unreal engine
unreal engine 4 blueprint уроки
unreal engine 4 уроки
unreal engine уроки
блупринт
переменные
циклы
массивы
arrays
integer
логические операторы
logical operators
функции
functions
обучение
курс
основы
знакомство
логика
подробно
games
tutorial
создание
уроки
как создать игру
unrealengine4
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:01
любая игра программируется на стадии
00:00:04
разработки будь то стрельба
00:00:06
взаимодействие сам писем действие
00:00:08
искусственного интеллекта передвижение и
00:00:11
анимация главного героя или динамическая
00:00:14
смена окружения все это заранее
00:00:16
прописаны и скрипты большинстве случаях
00:00:18
игры программируется на диалекте си это
00:00:21
си плюс плюс или сишарп если на
00:00:23
мобильное устройство то это может быть
00:00:25
java или html5
00:00:27
конкретно unreal engine 4 использует
00:00:30
язык программирования си плюс плюс для
00:00:32
построения логики для этого необходимо
00:00:34
visual studio и знание языка на си плюс
00:00:37
плюс но помимо этого в четвертом unreal
00:00:40
engine присутствует внутренней редактор
00:00:42
логике который называется bluprint
00:00:45
и он является высокоуровневым визуальным
00:00:47
языком программирования в этом уроке мы
00:00:50
с вами разберем что такое bluprint
00:00:53
и как он устроен как и с помощью чего
00:00:55
выстраивается логика также вы узнаете
00:00:58
что такое переменные массивы циклы как
00:01:01
вести математические расчеты и что такое
00:01:04
логические операторы и функции данный
00:01:07
урок больше рассчитан на новичков не
00:01:09
знакомых с программированием но также
00:01:11
будет полезен программистом и людям
00:01:13
незнакомых сбу print а теперь погнали
00:01:19
[музыка]
00:01:27
отличие bluprint от си плюс плюс в том
00:01:30
что было print работает в рамках движка
00:01:33
в то же время си плюс плюс позволяет
00:01:36
работать с посторонними ресурсами извне
00:01:38
создавать и взаимодействовать с
00:01:40
посторонними папками
00:01:41
или подключать сторонние базы данных
00:01:43
наподобие сиквелл то есть если вы
00:01:45
создаете сингл-плеер игру то вы можете
00:01:47
реализовать все свои задумки
00:01:49
используя лишь bluprint но а если вы
00:01:51
создаете какую-то игру с мультиплеером с
00:01:54
базой данных для хранения достижения
00:01:56
игроков и сервером то уже необходимо
00:01:58
использовать си плюс плюс хотя bluprint
00:02:00
можно расширять с помощью сторонних
00:02:02
плагинов взятых из marketplace и он
00:02:04
гораздо удобней для визуального
00:02:06
восприятия нежели классическое написание
00:02:09
программного кода
00:02:12
создавать bluprint и нужно в контент
00:02:14
браузере нажав либо от нее или правой
00:02:20
кнопкой по пустой области контент
00:02:22
браузера здесь мы можем выбрать либо
00:02:24
вкладку был принц bluprint класс или
00:02:26
среди базовых ассетов выбрать bluprint
00:02:28
класс
00:02:29
дальше нам предлагает выбрать класс
00:02:31
bluprint а сперва идут семь основных
00:02:33
классов и если мы раскроем вкладку all
00:02:35
classes то здесь мы увидим все возможные
00:02:39
классы было print да можно сказать что
00:02:41
они являются дочерними элементами
00:02:43
классического bluprint
00:02:44
отличается между собой тем что каждый из
00:02:47
них оптимизирован под конкретные нужды
00:02:50
вот как примеру pepper cherry clear
00:02:53
bluprint который оптимизирован под
00:02:54
двухмерного персонажа то есть в нем
00:02:56
сразу дать нужные настройки и вырезано
00:02:59
ненужное
00:03:01
все по 7 основным классам первый актер
00:03:04
это является классическим классом
00:03:05
bluprint который чаще всего используется
00:03:07
классом актер может быть любой объект на
00:03:09
сцене будь то коробка или персонаж pawn
00:03:13
пешка больше подходит для создания
00:03:14
каких-то транспортных средств
00:03:16
управляемых игроком директор подходит
00:03:19
для создания персонажа playercontroller
00:03:21
подходит для создания логики для
00:03:23
управления какими-либо объектами game
00:03:25
and bass хранит в себе игровые настройки
00:03:26
то есть распоряжается кто является
00:03:29
персонажа в начале игры и как им
00:03:31
управлять вектор компонент не имеет в себе 2 порта
00:03:34
как в классических был принтах больше
00:03:35
подходит для написания лишь одной логики
00:03:37
и сцен компонент тоже является
00:03:40
компонентом как предыдущий только с
00:03:42
возможностью трансформации ну а так
00:03:44
самые основные это первые три класса но
00:03:48
мы рассмотрим классический bluprint
00:03:49
класса актер присвоим ему название bb1
00:03:54
было принято один
00:03:59
чтобы был
00:04:00
отработал необходимо перетащить его на
00:04:02
главную сцену
00:04:04
теперь можем перейти в сам bluprint
00:04:11
здесь идут настройки bluprint
00:04:13
и нажмем up on full bluprint editor для
00:04:22
начала познакомимся с интерфейсом
00:04:23
bluprint
00:04:24
в левой части находится раздел компонент
00:04:26
в котором отображаются все объекты
00:04:28
которые используются в данном bluprint и
00:04:31
раздел мои bluprint в котором
00:04:32
отображаются все переменные функции и
00:04:35
ивенты которые используются в данным
00:04:37
bluprint право часть отображаются детали
00:04:39
конкретного объекта в данный момент
00:04:41
здесь отображены на стройке bluprint
00:04:43
также любую вкладку в редакторе можно
00:04:45
перетащить на удобное для вас место
00:04:47
путем драган drop
00:05:01
верхней части редактора имеются три
00:05:03
вкладки первое это viewport это
00:05:07
локальная сцена данного bluprint а здесь
00:05:09
мы можем создавать или перетаскивать
00:05:10
сюда различные объекты мы можем создать
00:05:13
объект из редактора нажав на плюсик этот
00:05:16
компонент здесь находится большое
00:05:21
количество различных компонентов либо
00:05:25
перетащить сюда объект из контент
00:05:27
браузера вот перетащу сюда объект куба
00:05:49
и объект появился в разделе компонент мы
00:05:52
можем его передвигать по сцене
00:05:57
bluprint а потянул за стрелочки которые
00:05:59
называются gizmo видим что справа
00:06:01
появились настройки данного объекта это
00:06:04
его текстура материал масштабирование и
00:06:07
расположение в координатной сетки вторая
00:06:11
вкладка это construction script логика
00:06:15
созданная в construction script
00:06:16
выполняется лишь один раз после
00:06:18
компиляции и больше подходит для
00:06:20
написания логики для внутренних
00:06:22
служебных нужд и третья вкладка event
00:06:24
граф в которой собственно и создается
00:06:26
игровая логика в данной рабочей области
00:06:29
ведь bluprint в переводе означает чертеж
00:06:32
видим изначально здесь находится 3
00:06:34
ивента и the event by геймплей к нему
00:06:36
прикрепляется логика которая срабатывает
00:06:38
в начале игры
00:06:40
актер бегин overlap логика прикрепленное
00:06:43
к нему срабатывает в случае если данный
00:06:46
bluprint был пересечен каким-то другим
00:06:48
объектам и
00:06:49
event тег срабатывает каждый кадр и
00:06:51
каждый раз он выполняет логику заново по
00:06:53
новой если не хотите делать это прям
00:06:56
каждый кадр то нажмите на класс дефолт
00:06:58
верхней панели инструментов и во вкладке
00:07:01
актер тег укажите тег интервал то есть
00:07:04
задержку в секундах между срабатываниям
00:07:06
как строится логиков bluprint путем
00:07:08
вызова необходимых блоков и
00:07:10
последовательного соединения их в
00:07:12
логические цепочки вызвать блок можно
00:07:14
щелкнув по пустой рабочей областью
00:07:17
bluprint правой кнопкой и выбора необходимого
00:07:20
блока в контекстном меню они все разбиты
00:07:22
по разделам
00:07:23
но также их можно найти через поиск
00:07:25
писав название галочка контекст сенситив
00:07:28
отображает все возможные блоки которые
00:07:30
можно использовать в данном bluprint
00:07:32
если ее убрать то отобразятся все
00:07:34
существующие блоки
00:07:37
часть которых может не сработать
00:07:38
конкретно в этом bluprint и
00:07:41
логика выстраивается путем соединения
00:07:43
различных блоков между собой
00:07:48
в последовательном порядке каждый блок
00:07:50
выполняет какую-то функцию в него
00:07:52
поступает какая-то информация что-то
00:07:54
происходит затем дальше идет следующий
00:07:57
блок он опять выполнять какую-то функцию в
00:07:59
блок поступает информация и происходит
00:08:01
какое-то действие а тип действия уже
00:08:04
зависит от разновидности блока и так
00:08:07
последовательно получается своего рода конвейер только
00:08:10
очень быстрый данные блоки называются
00:08:13
ноды в переводе узлы их можно разделить
00:08:15
на четыре типа первое это event событие
00:08:19
имеет только выходной исполнительный
00:08:21
контакт то есть он выполняет логику
00:08:23
прикрепленную к нему при каком-то
00:08:24
событии это может быть нажатии кнопки
00:08:26
или пересечение объекта event бегин play
00:08:29
это начало игры что тоже является
00:08:31
событием
00:08:32
второй тип нот это исполнительные блоки
00:08:35
той чтобы они работали нужно их
00:08:37
исполнить а это прикрепить какому-то
00:08:39
событие чтобы он сработал следующий тип
00:08:43
нот это информационный он имеет только
00:08:45
информационный выход и позволяет ли
00:08:47
считывать с него информацию последний
00:08:49
тип нодов это служебные ноды они
00:08:51
являются исполняемыми но предназначены
00:08:53
лишь только для служебных целей на
00:08:55
стадии разработки к примеру вывод
00:08:57
информации для разработчика
00:08:59
чтобы связать логику воедино нужно
00:09:02
скрепить их своего рода проводами
00:09:03
вытянув из одного в другой чтобы
00:09:07
открепить щелкни правой кнопкой по соединению и
00:09:10
выберем breitling
00:09:12
информационный ноты скрепляются таким же
00:09:14
путем соответствующими входами своего же
00:09:17
цвета видим что здесь данные одного типа
00:09:21
а вход для данных в ноги принц string
00:09:24
предназначен для другого типа данных
00:09:26
поэтому либо у нас не получится
00:09:28
соединить
00:09:29
либо информация будет конвертирована
00:09:33
получается что мы берем наш cube
00:09:37
и получаем его имя название и выводим
00:09:41
его на экран помимо события начала игры
00:09:43
существует события конец игры которые
00:09:48
срабатывают как несложно догадаться при
00:09:51
завершении игры также мы можем
00:09:52
обращаться к объектам помещенным в
00:09:55
bluprint путем перетаскивания их из
00:09:59
раздела компонент чтобы удалить ноду
00:10:03
достаточно выделить или щелкнуть по ней
00:10:06
и нажать клавишу del it рассмотрим
00:10:09
верхнюю панель инструментов первая
00:10:12
кнопка это компиляция то есть после
00:10:14
создания логике нам необходимо ее
00:10:16
скомпилировать чтобы она сработала
00:10:17
дальше сейф и сохраняет все что вы
00:10:20
сделали в bluprint brows обозревателя
00:10:22
set of fine
00:10:26
позволяет совершать поиск объектов или
00:10:29
нодов в bluprint редакторе
00:10:31
класс settings здесь находится на
00:10:34
стройке класса класс дефолт
00:10:36
здесь также находится на стройке
00:10:37
bluprint только другие символы yt если у
00:10:40
вас написано какая-то логика допустим на
00:10:43
передвижение какого-то объекта то
00:10:44
символа id позволяет выполнить симуляцию
00:10:47
сцены допустим если есть какая то физику
00:10:49
объектов то они будут вести себя по
00:10:51
физике и play собственно запускает
00:10:53
bluprint в рамках в упор то и здесь
00:11:01
можно выбрать дэбак чего совершать итак
00:11:06
давайте создадим нашу первую логику по
00:11:09
традиции это будет вывод сообщения
00:11:11
хеллоу ворлд на экран за вывод служебных сообщений на
00:11:14
экран отвечает но да принц string
00:11:15
вытянем ее а прямиком из ноды бегин play
00:11:25
и впишем в нее наш
00:11:27
они
00:11:34
видим что это надо отмечена как
00:11:36
девелопмент only
00:11:37
нажав на стрелочку под ней откроются
00:11:39
дополнительные настройки и здесь можно
00:11:42
менять цвет шрифта и задержку его на
00:11:44
экране такие вещи как размер или шрифт
00:11:46
здесь нельзя менять так как в этом нет
00:11:48
необходимости потому что этот мод
00:11:50
предназначен только для вывода служебных
00:11:53
сообщений верхнем левом углу
00:11:55
и сделаем небольшую задержку в начале
00:12:06
видим что я вытянул ноду делай то же из
00:12:08
бегин play и она уже автоматически
00:12:10
соединилось со следующей но дай здесь мы
00:12:13
укажем время задержки пускай это будет 3
00:12:16
секунды как сработает наша логика
00:12:20
сначала начнется игра затем пройдет три
00:12:24
секунды и в это время ничего не будет
00:12:26
происходить и верхнем левом углу будет
00:12:30
вы видно сообщение hello world
00:12:32
теперь нам нужно скомпилировать нашу
00:12:34
логику
00:12:38
также мы можем посмотреть логи в разделе
00:12:41
composer резался в нижней части
00:12:43
редактора как можно наблюдать
00:12:50
компиляция прошла успешно есть ли у вас
00:12:53
в логике имеются какие-то синтаксические
00:12:54
ошибки то об этом будет сообщено в окне
00:12:57
кампай лир резал
00:12:58
теперь посмотрим как выполнится наш
00:13:00
скрипт в игре
00:13:03
нажму play
00:13:13
вот прошу три секунды и мелькнула наша надпись
00:13:18
сделаем так
00:13:20
надпись не исчезала вместо двух секунд
00:13:22
поставим 999 и посмотрим теперь вот идет
00:13:33
три секунды
00:13:37
и появляется наши надпись у нас логика
00:13:54
состоит из трех блоков и в процессе
00:13:56
создания игры bluprint
00:13:58
обрастет очень большим количеством
00:14:00
блоков как видно здесь и какие-то
00:14:02
сегменты логике можно отделять от
00:14:03
остальных так сказать закомментировать
00:14:06
для этого необходимо выделить нужные
00:14:08
блоки и нажать клавишу си на клавиатуре
00:14:11
и написать любое название для удобства
00:14:17
хочу отметить что комментарии никак не
00:14:20
влияет на логику
00:14:21
а служат только для визуальной
00:14:22
ориентации в редакторе bluprint а если
00:14:24
щелкнуть на сам комментарий то можно его
00:14:26
настроить
00:14:29
в разделе details поменять его цвет
00:14:36
также размер шрифта
00:14:46
мы под
00:14:48
амели с простыми вещами в bluprint
00:14:49
теперь можем перейти к основам любого
00:14:51
программирования как переменные массивы
00:14:53
циклы математические выражения и
00:14:56
логические операторы хочу подчеркнуть
00:14:58
что вам необязательно учить все типы
00:15:00
переменных или циклов чтобы в голове не
00:15:02
образовывалось каша вам достаточно лишь
00:15:04
понять их функционал и в дальнейшем
00:15:07
использовать этот урок как справочник по
00:15:09
необходимости а все типы данных вы таки
00:15:11
так запомните на стадии практики и уже
00:15:14
будете легко в них ориентироваться
00:15:18
переменные переменные
00:15:20
это специально выделенная память
00:15:22
компьютера под хранение каких-то данных
00:15:24
которым можно обратиться в любой момент
00:15:26
по необходимости
00:15:27
или перезаписать их давайте объясню на
00:15:30
простом примере
00:15:31
представьте что переменная это пустая
00:15:33
коробка
00:15:34
а записанная в нее информация это
00:15:36
какой-то предмет получается что мы ложим
00:15:39
предмет в коробку предварительно создав
00:15:41
ее и присвоим ей имя чтобы ее легко
00:15:44
найти среди других коробок и забрать или
00:15:46
поменять предмет внутренние
00:15:48
но вы не можете хранить жидкость в
00:15:50
коробках для этого лучше подойдет бочка
00:15:53
каждый контейнер под свои нужды у
00:15:55
переменных это называется тип переменной
00:15:58
а разновидность информации
00:15:59
тип данных также специально вы не будете
00:16:02
хранить пол-литра воды в бочки для этого
00:16:05
лучше подойдет бутылка также и в
00:16:07
программировании зачем выделять огромные
00:16:09
пространства в памяти для хранения лишь
00:16:12
одного символа чтобы создать переменную
00:16:14
в bluprint достаточно в разделе
00:16:16
variables нажать плюсик
00:16:19
и затем придумать и присвоить ей
00:16:22
название обычно название переменных
00:16:24
может состоять из больших или маленьких
00:16:26
латинских букв нижнего подчеркивания
00:16:28
дефиса и цифр от 0 до 9
00:16:33
но в случае с bluprint в названии
00:16:35
переменных могут присутствовать любые
00:16:37
символы также и русские примеру я назову
00:16:40
переменную war 1
00:16:46
что сокращенно значит варей был один
00:16:50
теперь переместимся в правую верхнюю
00:16:53
часть экрана здесь можно совершать
00:16:55
настройки переменной первое это менять
00:16:57
ее название и следующая собственно сам
00:17:00
тип переменной про который я рассказывал
00:17:02
каждый из которых мы подробно разберем
00:17:06
из в правой части v-ray был type мы
00:17:09
можем поменять переменную на массив
00:17:11
выбрав эрой массива мы подробно разберем
00:17:14
чуть позже но в двух словах это тоже
00:17:16
переменная только с большим количеством
00:17:18
ячеек то есть если переменный мы можем
00:17:20
поместить какое-то одно значение
00:17:22
допустим цифру то в массив можно
00:17:24
поместить большое количество этих
00:17:26
значений массив необходим для
00:17:27
использования большого количества
00:17:29
однотипных переменных сытым об это тоже
00:17:32
массивы только более узко
00:17:34
специализированные в основном
00:17:36
используется либо переменная либо массив
00:17:39
во вкладке дефолт волею
00:17:41
собственно и обозначается самая
00:17:43
информация которая будет хранится в
00:17:45
переменной
00:17:46
чтобы это поместить для начала нужно
00:17:48
скомпилировать
00:17:50
разберем все типы переменных по пункт на
00:17:53
1 идет булин переменная более на
00:17:55
является логической переменной и может
00:17:57
хранить в себе лишь два значения
00:17:59
это правда или ложь true force 1 или 0 0
00:18:03
и как видно и самом был принц это либо
00:18:05
галочка либо отсутствии галочки
00:18:07
чтобы работать с переменными необходимо
00:18:10
их перетащить на рабочую поверхность
00:18:12
bluprint
00:18:15
из списка переменных которые находятся в
00:18:17
левой части было приду предлагает нам
00:18:23
выбрать что мы хотим get получить данные
00:18:26
из переменной или сет это задать данные
00:18:29
для переменной то есть поместить данные
00:18:31
в переменную видим что надо сайтов
00:18:40
это исполнителей но дай так как имеет
00:18:42
вход и выход aged лишь позволяет забрать
00:18:45
из неё информацию
00:18:49
для удобства если мы зажмем левой
00:18:51
control и перетащим тоже сразу
00:18:55
перетащить в виде get если зажмем левый
00:18:58
alt и перетащим то сразу перед тащиться
00:19:01
виде set это также работает и для
00:19:03
правого control alt
00:19:06
мы можем поместить информацию в
00:19:09
переменную сразу в разделе дефолт валью
00:19:11
или путем логике через но dooset
00:19:15
разберём остальные типы переменных для
00:19:17
каждого типа я создам отдельную
00:19:19
переменную могу нажать плюсик
00:19:22
или просто продублировать уже готовую и
00:19:24
затем поменять и тип если дублировать
00:19:29
переменные то они автоматически
00:19:30
индексируется и им присваиваются число
00:19:36
следующий тип данных это байт байт может
00:19:38
хранить в себе целочисленное число от 0
00:19:41
до 255 и
00:19:56
умолчанию 0
00:20:04
ну и самый популярный часто используемый
00:20:07
тип переменных это интеджер
00:20:09
integer тоже хранит в себе целочисленные
00:20:11
числа интеджер может хранить в себе
00:20:13
числа от минус 32768 до плюс 32767
00:20:19
но переменная bluprint может хранить вот
00:20:22
такие числа идем дальше
00:20:28
float тоже хранить в себе числа но
00:20:30
только дробные числа с десятичной дробью
00:20:32
или как еще говорят число с плавающей
00:20:34
запятой вот например
00:20:41
от их
00:20:54
дальше тип name позволяет хранить в себе
00:20:59
строку которая может состоять из любых
00:21:01
символов будь то цифры или числа но если
00:21:04
вы поместите цифры
00:21:05
строку name и в подобные перемены такого
00:21:08
типа тоже с ней невозможно будет
00:21:10
проводить какие-то логические вычисления
00:21:11
то есть нельзя будет складывать делить и
00:21:14
так далее только лишь хранить информацию
00:21:15
но конечно можно будет сконвертировать
00:21:18
строку в число если в этой строке и
00:21:21
конечно же имеется число в общем
00:21:23
простыми словами through a name служит
00:21:25
для хранения каких-то отдельных слов
00:21:34
переменная string может хранить в себе
00:21:36
строки это могут быть предложения
00:21:38
составленные из различных символов
00:21:56
идем дальше
00:22:02
переменная текст также может хранить
00:22:04
себе предложение строки любые символы
00:22:07
но только в большом количестве не так
00:22:09
как переменные string или name
00:22:11
собственно название типов переменных
00:22:13
говорит сама за себя
00:22:22
тип переменной вектор хранит в себе вы
00:22:25
не поверите вектор вектор а может быть
00:22:29
глобальное
00:22:30
положение объекта в пространстве по осям
00:22:32
x и y и z также масштаб по осям x и y и
00:22:36
z и поворот по осям x и y и z также
00:22:39
векторе можно хранить цвета
00:22:40
вектор состоит из трех переменных типа
00:22:42
float
00:22:47
здесь мы можем поместить или выбрать из
00:22:49
переменной
00:22:50
сразу всю информацию и конкретно какой
00:22:53
то из трех осей
00:22:56
щелкни правой кнопкой по кружочку сплит
00:23:03
тракт пин теперь видно что мы можем
00:23:08
получить лишь только то что нам нужно
00:23:09
также можно проделать и со стальными
00:23:12
здесь и здесь
00:23:16
разбить на ячейки и также их собрать
00:23:28
существует второй способ разбить или
00:23:31
собрать информацию и to break вектор то
00:23:42
есть это просто брейка и тип переменной
00:23:45
которым хотим разбить
00:23:53
и мейк как бы группирует данный в 1
00:23:56
пучок
00:23:58
идем дальше
00:24:07
ротатор выглядит аналогично но хранит
00:24:09
данные для угла поворота объекта в
00:24:12
пространстве по сути переменной типа
00:24:14
ротатор аналогично вектору
00:24:22
и последний тип это тип transform
00:24:25
он объединяет в себе все три типа
00:24:27
переменных глобального позиционирования
00:24:29
объектов это местонахождение разворот и
00:24:32
масштаб
00:24:36
их также можно разбить на подкатегории
00:24:41
эти категории
00:24:42
также на подкатегории вплоть до
00:24:45
индивидуального значения вот мы и
00:24:47
разобрали основные типы переменных
00:24:51
но это еще не все в переменной также
00:24:54
могут храниться
00:24:55
объекта будь то какой-то другой bluprint
00:24:57
какая-то 3d модель или персонаж
00:25:06
также как видно мы можем поместить
00:25:08
структуру это может быть своя структура
00:25:10
структуру мы разберём позже или какая-то
00:25:13
специальная конкретная структура из
00:25:15
движка
00:25:16
интерфейс и не путайте 7g игровым
00:25:18
интерфейсом который отображает все раз
00:25:21
подобное именно это это интерфейс и
00:25:23
bluprint который служит для удобного
00:25:25
обмена данными между было принтом вот
00:25:28
собственно самый объект перемены может
00:25:29
помещать также объекты тот же самый
00:25:31
эктор bluprint
00:25:32
мы можем тоже поместить в переменную
00:25:35
но и дальше идет огромный список
00:25:36
различных bluprint классов
00:25:49
но и также нумерацию и нумерация это
00:25:51
тоже таки своего рода файлы
00:25:54
списки для хранения информации также
00:25:57
можно запретить поступления данных в
00:26:00
переменную и отметить здесь если вы
00:26:02
хотите лишь только получать данные с
00:26:04
переменной
00:26:06
дальше смотрим видео в правой части
00:26:09
пентаграмму ведь глазика если мы его
00:26:11
включим то что это нам даст
00:26:19
это даст доступ к переменной извне
00:26:24
допустим если мы перетащим bluprint
00:26:27
на нашу сцену и щёлкнем по самому был
00:26:30
принту
00:26:31
то в правой части которой относится к
00:26:33
настройкам конкретного bluprint а во
00:26:34
вкладке дефолт мы можем найти эту
00:26:37
переменную которую мы открыли для общего
00:26:39
доступа и мы можем задавать уже ее
00:26:42
значение
00:26:43
отсюда это служит для удобства вот мы и
00:26:47
разобрали основные типы переменных
00:26:49
поэтому можем двигаться дальше массивы
00:26:54
массив эта структура данных в которой
00:26:57
может храниться какое-то количество
00:26:59
однотипных переменных то есть это как
00:27:01
склад с коробками
00:27:03
или с бочками но на этом складе не могут
00:27:05
быть коробки и бочки одновременно это
00:27:08
уже база данных но речь сейчас не о ней
00:27:10
в общем массив это как переменная только
00:27:12
с большим количеством ячеек и каждая
00:27:14
ячейка имеет свой индекс
00:27:16
начиная с нуля чтобы вы могли обращаться
00:27:18
к ней массивы бывают одномерные и
00:27:21
многомерные в одномерном массиве просто
00:27:23
хранится энное количество однотипных
00:27:25
переменных а если в течение сила
00:27:28
находится еще одни массивы
00:27:29
то это уже многомерные если одномерный
00:27:33
массив влажно массив то это двухмерный
00:27:35
массив про трехмерный массив объяснять
00:27:38
не буду создаются массивы точно так же
00:27:42
как и переменные во вкладке variables
00:27:44
нажимаем плюсик
00:27:46
по умолчанию создается булевой
00:27:47
переменной а дам название
00:27:49
эрой один что означает массив один так я
00:27:57
буду помещать в этот массив слова
00:27:59
поэтому выберу тип
00:28:01
string конечно для одного слова лучше
00:28:04
подойдет тип ней опуская будет string и
00:28:06
теперь нужно переменную сконвертировать
00:28:08
в массив выборов правее variable types
00:28:10
некий символ решеточки с компилирую и
00:28:14
добавлю в массив пять элементов
00:28:23
элементы в массивах индексируются с нуля
00:28:25
поэтому последний будет 4 это важно
00:28:28
знать чтобы не путаться в дальнейшей
00:28:29
работе с массивами теперь можно
00:28:31
заполнить массив
00:28:41
нажав на маленький треугольничек
00:28:43
праве элемента можем взаимодействовать с
00:28:46
ним insert позволяет вставить еще один
00:28:48
элемент между этими предыдущем элементом
00:28:51
как видно на примере далит удаляет и
00:28:54
дубликат дублирует
00:29:00
если просто перетащить get и set the
00:29:09
новых мы будем получать весь массив сразу как
00:29:11
видно что место кружочка как в
00:29:13
переменных теперь здесь символика
00:29:15
массива также как на входе и на выходе
00:29:17
но большинстве случаев работы с
00:29:19
массивами необходимо выводить лишь одно
00:29:21
значение из массива
00:29:22
поэтому сет я уберу теперь я покажу
00:29:24
способы взаимодействия с массивом
00:29:26
сначала два самых распространенных
00:29:34
get позволяет выбрать конкретный элемент
00:29:37
указав его индекс
00:29:41
допустим я хочу получить третье значение
00:29:42
она находится под индексом 2
00:29:44
тогда я просто вписываю индекс элемента
00:29:48
здесь это число интеджер и на выходе
00:29:50
получая нужный элемент из массива в
00:29:52
данном случае toast ринговой а
00:29:53
переменная со словом 3 давайте посмотрим
00:29:56
на примере
00:29:58
это можно удалить чтобы не мешала
00:30:02
выведем элемент на экран с помощью принц
00:30:04
string
00:30:16
помним что чтобы было принты заработал
00:30:18
нужно перетащить его на нашу сцену
00:30:41
и поставим
00:30:42
оддержки ну допустим 6 секунд
00:30:59
и следующий блок который записывают
00:31:02
данные в ячейку под конкретным индексом
00:31:05
set арай элемент
00:31:08
он является исполнительным блоком
00:31:12
здесь мы выбираем какой индекс и в этом
00:31:17
пишем ту информацию которую нужно
00:31:19
поместить
00:31:32
тогда он возьмет второй индекс и
00:31:35
перезапишет его
00:32:03
здесь мы перезаписываем и потом выводим
00:32:05
на экран перезаписаны елемент
00:32:28
если в сад р
00:32:30
мент поставить галочку says to fit the в
00:32:34
случае если не существует индекса
00:32:36
которого указали то он расширить массив
00:32:39
до его количество
00:32:42
в моем массиве последний индекс
00:32:44
это 4 если я укажу 7 то с поставленной
00:32:51
галочкой says to fit массив будет
00:32:53
расширен до 7 индекса
00:32:56
то есть будет добавлено еще три элемента
00:33:00
все блоки для взаимодействия с массивом
00:33:09
находится во вкладке телитесь ray
00:33:23
также они доступны через поиск давайте
00:33:26
рассмотрим функциональность каждого
00:33:27
блока и добавлю
00:33:39
элемент в конец массива и в конце
00:33:41
выводит его индекс тем самым как бы
00:33:43
увеличивая массив от uniq сперва
00:33:51
проверяет существует ли элемент с таким
00:33:54
значением если же элемент с таким значением уже
00:33:56
существует он его не добавляет но и в
00:33:58
конце по традиции выводит его индекс
00:34:02
допустим если я хочу добавить в массив
00:34:05
элемент со словом 1
00:34:07
то он его не добавит так как элемент с
00:34:10
такими данными уже существует если я
00:34:12
захочу добавить слово допустим 6 так как
00:34:14
его нет в массиве он его добавить в
00:34:16
конец
00:34:17
а пантерой добавляет в конец массива
00:34:20
данные из другого массива допустим
00:34:27
представим что нас два массива
00:34:35
получается что он добавит массив
00:34:37
r1 данная из массива array 0 получается
00:34:40
как бы он сложит два массива вместе
00:34:43
clear очищает массив то есть опустошает
00:34:46
его ячейки
00:34:48
контент айтем проверяет существует ли
00:34:51
такие данные массиве и в конце выводит
00:34:53
булево и значение true или false
00:34:55
допустим хочу проверить если в массиве
00:34:59
элемент со словом 5 то вписываю его сюда
00:35:02
и он это проверяет и в конце выдает есть
00:35:05
или нету true или false
00:35:08
faint точно также как предыдущий блок
00:35:11
проверяет существует ли такие данные
00:35:13
только на выходе выдает не значение
00:35:16
да или нет а яндекс этого элемента то
00:35:19
есть если элемент был найден там выдает
00:35:21
его индекс
00:35:22
а если элемент не найден тон выдает -1
00:35:25
дальше идут специальные циклы которые
00:35:28
позволяют последовательно то есть друг
00:35:30
за другом выводить информацию из массива
00:35:32
и выполнять логику который выходит из
00:35:34
лук body такое количество раз которое
00:35:37
равно количество элементов в массиве
00:35:39
циклы мы рассмотрим подробно чуть позже
00:35:42
insert вставляет нужный элемент перед
00:35:45
указанным индексом то есть по аналогии
00:35:49
как в выпадающем меню
00:35:51
допустим сделаем insert для элементы под
00:35:54
индексом 1
00:35:55
как видно из арт вставил новый элемент
00:35:58
на яндекс один элемент который был в нем
00:36:00
до этого подвинул вперед то есть сместил
00:36:02
весь массив после указанного индекса
00:36:06
ice white индекс просто проверяет
00:36:08
существует ли указанный яндекс и в конце
00:36:10
выдает true или фолз виде булевой
00:36:13
переменной
00:36:14
last индекс выводит в виде переменной
00:36:17
интеджер последний индекс массиве видим
00:36:19
что у нас в массиве
00:36:21
пять элементов и последний под номером 4
00:36:24
значит vast индекс выведет число 4 likes
00:36:28
выводят в виде переменной интеджер
00:36:30
длину всего массива то есть количество
00:36:32
элементов в массиве у нас их 5 и 5
00:36:35
элемент под индексом 4 не путайте яндекс
00:36:37
и количество элементов
00:36:39
remove индекс удаляет все по указанному
00:36:42
индексу допустим если мы укажем здесь 3
00:36:45
индекс то они просто опустошит его и
00:36:47
сделать этот элемент пустым он как бы
00:36:49
выдерет элемент из массива тем самым
00:36:51
элементы что шли после этого индекса
00:36:54
сместятся на его место и индексация
00:36:56
начнется с элемента которому удалили
00:36:59
громов ой там совершает поиск информации
00:37:02
в массиве и в случае если на совпадает с
00:37:04
указанной то удаляет ее
00:37:06
и на выходе выдает булеву переменную
00:37:07
true или false то есть если мы введём
00:37:10
него слова 1
00:37:13
то он увидит что элемент с такими же
00:37:16
данными существует и удалит его и на
00:37:18
конце выведет true
00:37:19
если не найдет ничего не произойдет и
00:37:22
просто выведет фолз ресайз меняет
00:37:25
количество элементов на указанное в
00:37:28
данный момент в массиве пять элементов
00:37:30
если мы укажем больше допустим 7 то он
00:37:33
просто создаст плюс два пустых элемента
00:37:36
если укажем меньше чем существует с
00:37:38
примеру два или три танка бы удалит
00:37:40
остальные
00:37:41
и оставить только лишь те что есть
00:37:44
shuffle
00:37:45
рандомно перемешивают элементы массива
00:37:47
между собой к примеру что было под
00:37:49
индексом 4 станет под индексом ноль или
00:37:52
один что было под индексом 3 станет под
00:37:55
другим индексом с веб меняет два
00:37:58
элемента между собой mike & ray
00:38:02
позволяет создавать массив из однотипных
00:38:04
переменных чтобы добавить индекс массив
00:38:07
достаточно нажать плюсик снизу таким
00:38:14
образом получится массив состоящий из 9
00:38:16
элементов в ходы автоматически
00:38:18
подстроится под нужный тип переменной мы
00:38:21
подаем на про индексированные входы
00:38:23
однотипные переменные и на выходе
00:38:25
получаем готовый массив только
00:38:27
добавленные таким способом элементы
00:38:29
вы не сможете увидеть или
00:38:30
отредактировать через редактор это уже
00:38:32
будет возможна только через bluprint
00:38:36
точно так же если мы переведем
00:38:39
переменную в set the во вкладке
00:38:43
utilities можно найти в
00:38:50
возможные взаимодействия так же как и с
00:38:52
массивом строки переменной a string тоже
00:38:56
является массивом в котором каждый
00:38:59
символ имеет свой индекс и даже пробел
00:39:01
это значит что мы можем манипулировать
00:39:04
строкой также как и массивом то есть
00:39:06
что-то добавлять искать удалять или
00:39:09
менять самой строке
00:39:10
создам переменную типа string
00:39:19
все функции позволяющие манипулировать
00:39:20
строкой находится во вкладке utilities
00:39:24
string
00:39:34
их тут немалое количество бегло
00:39:36
пробежимся по ним
00:39:38
and позволяет добавлять информацию в
00:39:40
конец строки
00:39:42
все что касается build string также
00:39:46
добавляет информацию в конец строки
00:39:47
только такого типа которая указана в
00:39:50
скобках
00:39:52
контент совершает поиск указанного
00:39:55
символа или
00:39:56
слова в строке и в конце выводит булевой
00:39:59
перемена true или false допустим давайте
00:40:02
проверим имеется ли в строке string один
00:40:05
символ м
00:40:15
и на конце нас болевая переменная
00:40:17
конвертируется в стрингах ую переменную
00:40:30
несмотря на то что у нас в строке
00:40:32
имеется буква м он вывел фолз так как
00:40:35
для него большая м и маленькое м это
00:40:37
разные вещи если мы укажем большую м что
00:40:41
в программировании называется верхний
00:40:43
индекс
00:40:45
то выдаст ru идем дальше и quill
00:40:54
сравнивать две строки
00:40:55
если они идентичны то он выводит
00:40:57
соответствующие булево значение фансаб
00:41:01
string находит ключевые слова в строке
00:41:03
который вы укажете get характер эрой
00:41:06
from string
00:41:07
выводит все символы содержимые в строке
00:41:09
виде массива 5 характер а снайпер
00:41:12
выводит индекс символа порядка
00:41:14
расположения таблицы символов
00:41:17
дальше идут манипуляции лифт они
00:41:19
позволяют выводить либо убирать
00:41:21
определенное количество символов который
00:41:23
вы укажете в левой части строки
00:41:25
он выводит количество символов в строке
00:41:28
в виде переменной интеджер
00:41:32
мидэ водят символы середины строки здесь
00:41:34
указан с какого символа и какое
00:41:36
количество символов необходимо выводить
00:41:51
под первым индексом у нас символ о и
00:41:54
будет выведена два символа начиная с о
00:42:12
replace меняет указанные данные строки
00:42:15
на те что вы укажете и в конце выведет
00:42:18
строку с изменениями и манипуляции right
00:42:21
все точно так же как и свифт только с
00:42:24
правой части строки
00:42:26
сплит делит строку дальше идут
00:42:30
конвертеры
00:42:31
они конвертируют строку в указанный тип
00:42:34
переменной троян 1 убирать пробелы в
00:42:37
начале строки а второй убирает пробелы в
00:42:39
конце строки со строками пока хватит
00:42:44
циклы циклы циклы циклы повторяются
00:42:49
цикла нужны для многократного исполнения
00:42:52
какой-то логики чтобы по многу раз не
00:42:54
создавать одинаковые фрагменты логики и
00:42:56
и помещаются цикл и она выполняется
00:42:59
необходимое количество раз также можно
00:43:01
помещать циклы
00:43:02
внутри другого цикла и подменивать
00:43:04
данные при каждом исполнении допустим мы
00:43:06
хотим вывести информацию из массива
00:43:08
ra1 мылко
00:43:19
номер ячейки откуда хотим взять
00:43:21
информацию и берем принц string чтобы
00:43:31
вывести на экран
00:43:44
дальше мы берем то что под индексом 1
00:43:47
этаже выводим это на экран
00:44:03
дальше то что под индексом 2 и так далее
00:44:06
34 пока не выберем весь массив
00:44:17
ладно если вас три элемента то еще можно
00:44:19
вывести их вручную таким образом
00:44:21
получается что мы выполняем
00:44:23
определенную логику энное количество раз
00:44:25
меняя лишь один параметр это индекса
00:44:29
но что делать если вы работаете с
00:44:30
большими объемами данных и это не
00:44:32
обязательно должны быть массива
00:44:33
любая логика который необходимо
00:44:35
повторить большое количество раз
00:44:36
вот тогда и нужно использовать циклы
00:44:39
чтобы вызвать цикл достаточно в
00:44:41
контекстное меню вписать лук и она
00:44:47
выдаст все возможные циклы как видно их
00:44:50
6 первые три
00:44:51
для манипуляции с массивами они
00:44:53
находятся во вкладке и рэй и следующие
00:44:56
три во вкладке flow control
00:44:57
являются универсальными циклами разберем
00:45:00
каждый из них
00:45:02
первый классический цикл for здесь мы
00:45:04
указываем с какого по какой индекс
00:45:07
выполнять цикл то есть если мы укажем
00:45:10
fears индекс 0 а last индекс 3 то
00:45:13
счетчик циклов
00:45:14
начнется с нуля каждый раз увеличиваясь
00:45:17
на единицу пока не дойдет до 3
00:45:18
получается что логика прикрепленная клуб
00:45:22
body выполнится 4 раза с каждым циклом
00:45:25
будет выдавать индекс то есть 0 1 2 3 и
00:45:28
комплит
00:45:29
присоединяется логика который идет
00:45:31
следом за циклом for лупу it break
00:45:38
работать точно также как и классический
00:45:40
цикл for только имеет вход на остановку
00:45:42
то есть мы можем прервать его в любой
00:45:44
удобный 12 момент и третий вид цикла это
00:45:52
цикла while он управляется булевой
00:45:54
переменной кондишен то есть пока здесь
00:45:56
стоит true цикл выполняется как только
00:46:00
здесь будет фолз цикл прекращает
00:46:02
выполняться теперь рассмотрим цикл и для
00:46:05
работы с массивами
00:46:12
for each лук является простым циклом for
00:46:15
для перебора массива на вход мы подаем
00:46:17
массив и логика закрепленная на lut
00:46:19
buddy выполняется такое количество раз сколько
00:46:21
элементов в массиве ара элемент выдает
00:46:24
элемент массива по текущему индексу арай
00:46:27
яндекс выдает текущий индекс i come
00:46:29
played it выполняет логику по завершению
00:46:31
цикла
00:46:37
давайте выведем все данные из массива с
00:46:40
помощью цикла for each лук и по
00:46:44
завершению сообщим об этом
00:47:04
for each лупу it break
00:47:06
все точно так же только с возможностью
00:47:08
остановки реверс for each луп работает
00:47:14
точно также как и for each луп только
00:47:16
задом наперед о чем не говорит приставка
00:47:17
реверс
00:47:18
если кликнуть по самому циклу то внутри
00:47:22
можно обнаружить целую функцию которую
00:47:24
можно модернизировать
00:47:26
допустим поставить делай задержку чтобы
00:47:29
цикл выполнялся не весь сразу также к
00:47:33
цикла можно отнести дуэн дуван
00:47:36
еду vans multi input все они находятся
00:47:38
во вкладке flow control контроль
00:47:41
последовательности до н выполняет логику
00:47:43
энное количество раз до wynn's выполняет
00:47:45
логику один раз с возможностью раз эта
00:47:48
еду vans multi input работает точно
00:47:50
также как дуван столько иметь большое
00:47:52
количество входов и выходов при входе в
00:47:54
by вызывается be out при входе все
00:47:57
вызывается выход 7 и так далее
00:48:01
математические выражения как и в любом
00:48:05
программирование в глубь можно совершать
00:48:07
математические расчеты такие как
00:48:10
сложение или вычитание переменных
00:48:11
деления округления
00:48:13
возведение в степень сравнение
00:48:15
увеличение
00:48:16
и много многое другое все математические
00:48:18
выражения находится во вкладке move
00:48:21
математика
00:48:26
и дальше по разделам идут математические
00:48:30
действия с конкретным типом данных
00:48:36
часть из которых вам уже знакомо
00:48:40
разберем математические операции с типом
00:48:43
переменных интеджер
00:48:45
с остальными типами данных
00:48:48
математические операции практически
00:48:49
такие же за исключением конкретных видов
00:48:52
разберём на примере интеджер первая
00:48:54
функция с символом процентов выводит
00:48:57
остаток после деления двух чисел
00:48:59
если деление была совершена без остатка
00:49:00
то на выходе получится 0
00:49:03
обследует на вход подается нужное число
00:49:05
и в случае если она отрицательная она
00:49:08
конвертируется в положительное бит вайс
00:49:11
выбирает что-то одно из переменных
00:49:14
который поступает в него примеру or
00:49:16
случайно выберет любой из поступивших
00:49:21
переменных и выведет ее в конце
00:49:24
compair сравнивает 2 поступивших в него
00:49:27
переменные и зависимости больше равные
00:49:30
или меньше они друг другу выполняет
00:49:33
логику прикрепленную за конкретным
00:49:35
сравнением если числа равны то
00:49:37
выполняется это если число которые
00:49:40
сравнивают больше то выполняется эта
00:49:42
логика если меньше то эта логика и для
00:49:44
заметки двойной символа равно означает
00:49:46
сравнение чисел один символ означает
00:49:49
приравнивание то есть если x равен 7
00:49:52
то получается мы помещаем в переменную x
00:49:54
число 7 а если x и двойное равно семьи
00:49:57
дойдет сравнение двух чисел того чему
00:49:59
равен x и 7
00:50:02
декремент с каждым разом уменьшает число
00:50:05
на единицу хорошо подходит для
00:50:06
использования с циклами на вход подаем
00:50:09
число а на выходе получаем это же число
00:50:11
только -1 и quill как видно имеет
00:50:16
двойное равно это означает что он
00:50:18
сравнивает два числа если они равны друг
00:50:20
другу то в на выходе получаем болевую
00:50:22
переменную true или falls
00:50:24
если они не равны топ будет фолз и quill
00:50:27
часто используются в построении логике
00:50:31
дальше инкремент он по аналогии с
00:50:34
декремент только увеличивает число на
00:50:36
единицу
00:50:40
ряд входит ли число волею в
00:50:42
установленные рамки то есть к примеру
00:50:43
пишем число 3 6 3 как бы помещается
00:50:46
между чувством 1 и 10 и на выходе
00:50:49
получим true
00:50:50
если поменяю на минус 3х минус 3 не
00:50:53
входит в диапазон чисел от одного до
00:50:55
десяти и на выходе получим falls
00:50:58
дальше идет вычитание переменных
00:51:02
первая идет числа от которого отнимают и
00:51:04
второй идет число которое отнимают и на
00:51:08
выходе мы получаем результат для
00:51:11
наглядности создам три переменные
00:51:16
я могу поместить значение в них вручную
00:51:18
через редактор или с помощью был принта
00:51:23
задав сад
00:51:37
значение первой переменной будет 10
00:51:41
значение 2 7
00:51:45
и мем вторую переменную от 1
00:52:04
именную
00:52:13
и в конце мы видим результат на экран
00:52:28
можем взять его отсюдова или обратиться
00:52:35
сразу к переменной с помощью запросы get
00:52:39
видим что принц string принимает себя
00:52:42
переменные типа string поэтому сначала
00:52:45
происходит конвертация интеджер в string
00:52:48
так же можно делать почти с любыми
00:52:50
типами перемена допустим если бы это
00:52:52
была перемена типа float то она бы с
00:52:53
конвертировалась в интеджер
00:52:55
и тогда бы можно было совершать операцию
00:52:57
с помощью функции интеджер минус
00:52:59
интеджер 10 -7 получается 3 и все точно так же с
00:53:04
остальными операциями умножить разделить
00:53:07
и сложить чтобы быстро вызвать нужную
00:53:10
функцию достаточно вбить в поиск или
00:53:16
сразу вытянуть с нужной переменной
00:53:19
допустим сравнить
00:53:20
является ли эта переменная больше и нам
00:53:23
сразу выдает нужную функцию здесь идет
00:53:29
сравнение и на конце получаем true или
00:53:32
false также есть меньше
00:53:40
равно i больше или равно
00:53:49
мы проверяем является ли первое число
00:53:52
меньше либо равно второму то есть если
00:53:56
оно меньше чем второе
00:53:57
или если оно равно второму то на выходе
00:54:00
получится true
00:54:01
если что то другое то на выходе
00:54:02
получится falls
00:54:05
так же мы можем перемножать большое
00:54:07
количество переменных
00:54:10
и складывать большое количество
00:54:13
переменных еще как видите я присвоил
00:54:19
переменной var 1 и переменной war 2
00:54:21
значение 10 и 7
00:54:23
если кликнуть по самим переменным в
00:54:26
разделе моя bluprint
00:54:28
во вкладке variables то увидим что здесь
00:54:31
ноль то есть что происходит здесь внутри
00:54:35
bluprint а и внутри редактора не как
00:54:38
визуально не связано
00:54:39
здесь мы просто задаем значение по
00:54:41
умолчанию дальше идет max and eager он
00:54:45
просто выводит максимальное значение из
00:54:47
поступивших в него переменных макс of
00:54:50
intern выводит перемены с максимальными
00:54:52
значениями из массива и также выводит
00:54:54
индекс этого элемента здесь все ясно
00:54:59
выводит минимальное значение из
00:55:01
поступивших переменных
00:55:03
но и quill он вводит true только в
00:55:08
случае если поступившие в него числа не
00:55:11
равны друг другу select позволяет
00:55:15
выбирать одну из двух переменных с
00:55:17
помощью булевой переменной есть отметим
00:55:19
пик эй то на выходе получится переменная
00:55:22
эй если уберем то на выходе получится
00:55:24
переменная b
00:55:26
seine если поступившие всегда число
00:55:29
является положительным то на выходе
00:55:31
будет плюс 1
00:55:32
если отрицательным то -1 а если
00:55:35
поступившие число будет 0 то и на выходе
00:55:37
тоже будет 0
00:55:42
поподробней об and и or покажу на
00:55:45
примере булевых переменных
00:55:50
если все перемены на входе являются
00:55:53
положительными той на выходе будет true
00:55:58
если хоть одна отрицательная то на
00:56:01
выходе будет falls но он and точно так
00:56:05
же только если на входе будут все
00:56:07
отрицательные переменные то на ее выходе
00:56:09
будет положительная переменная
00:56:13
и он выбирает одно из положений случайно
00:56:17
то есть если хоть какой-то из этих
00:56:20
будет положительным той на выходе будет
00:56:25
положительный результат рассмотрим
00:56:28
random random позволяет получить
00:56:34
случайное число это может быть различный
00:56:36
тип данных рандом флот вводит случайную
00:56:40
переменную типа float и рандом in range
00:56:44
позволяет вывести рандомное число то
00:56:47
есть случайная заданном диапазоне а если
00:56:50
у вас большое количество логике
00:56:52
связанная с математикой то на помощь
00:56:53
придет блок move expression
00:57:08
это нужно в его
00:57:13
части вписать уравнения допустим мы
00:57:15
хотим сложить x плюс y разделить это на
00:57:18
2 и умножить это на x то так и пишем как
00:57:21
простое уравнение он сразу определил x и
00:57:30
y как переменная и правильно расставил
00:57:33
скобки если щелкнуть по нему два раза
00:57:36
то внутри мы увидим что он сам создал
00:57:38
необходимую логику и также появилась во
00:57:40
вкладке граф логические операторы они
00:57:46
служат своего рода логическим шлюзом то
00:57:49
есть при соблюдении каких-то условий
00:57:51
они могут выполнять или не выполнять
00:57:52
определенную логику для начала
00:57:55
рассмотрим блок branch он находится во
00:57:59
вкладке flow control
00:58:00
но проще вызвать во через поиск написав
00:58:02
его название или iv по аналогии с
00:58:05
логическим оператором if из
00:58:07
классического программирования
00:58:11
здесь все просто если стоит галочка
00:58:13
кондишен то выполняется логика
00:58:15
прикрепленные актру
00:58:16
если отсутствует галочка кондишен то
00:58:18
выполняется логика прикрепленные к фолз
00:58:21
на вход мы подаем булеву переменную
00:58:22
которое и является условием для
00:58:25
выполнения логике покажу небольшой
00:58:27
пример
00:58:55
переменные зададим им значение по
00:58:58
умолчанию 1 10 другой 9 и будем
00:59:10
использовать и quill то есть сравнивать
00:59:13
их получается равно ли 10 9
00:59:19
конечно же нет и мы получим фолз и фолз
00:59:26
выдаст ложь здесь может быть любая
00:59:29
логика теперь
00:59:43
верим больше ли первая переменная чем 2
00:59:47
то есть больше ли 10 чем 9
00:59:55
идем дальше оператор switch как вы
01:00:02
можете наблюдать здесь есть огромное
01:00:04
количество свечей но смысл у них один и
01:00:06
тот же рассмотрим switch он интеджер
01:00:09
сразу добавлю в него выходы их может
01:00:16
быть большое количество
01:00:19
и в зависимости от подаваемого числа
01:00:21
выполняется логика под соответствующим
01:00:24
числом если сюда подать допустим 3 той логика
01:00:27
будет выполняться под номером три
01:00:28
а если подать число которого здесь не
01:00:31
существует то выполнится логика дефолт
01:00:35
это были два самых часто используемых
01:00:38
логических операторов рассмотрим
01:00:40
остальные
01:00:45
gate работа это
01:00:47
как branch только его затвор управляется
01:00:49
не булевой переменной как в branch of
01:00:51
ходами обман или клаус сперва нам нужно
01:00:53
соединить этот блок с основной логикой
01:00:55
то есть если я подам логику на оппанта
01:00:58
логика идущий отсюда будет выполняться
01:01:00
ясюк лоу станет
01:01:02
select
01:01:07
работы так же как с вич мы подаем него
01:01:09
переменную и в зависимости от номера мы
01:01:12
получаем на выходе то что прикреплена к
01:01:14
входному номеру
01:01:24
ссылают предназначена для манипуляции
01:01:26
информацией
01:01:29
травиться под тип данных также как вход
01:01:31
индекс можем выбрать его вручную и в
01:01:34
зависимости от числа подданного на вход
01:01:36
будет выбрана
01:01:37
необходимая переменная и выведена на
01:01:39
выходе
01:01:43
это также работает на булевой переменной
01:01:50
мульти gate имеет много выходов который
01:01:53
выполняет последовательно или рандомно
01:01:55
его можно зациклить и указать начальный
01:01:58
яндекс
01:01:59
циклы и логические операторы bluprint
01:02:02
представлены как контроль
01:02:04
последовательности то есть то что
01:02:05
позволяет контролировать выполнение
01:02:07
логике когда и сколько раз я выполнять
01:02:09
также здесь есть not sequence
01:02:13
имеет много выходов но служит для
01:02:15
удобства просто выполняет друг за другом
01:02:17
логику начиная с 0
01:02:26
то есть мы могли вывести слова хэллоу
01:02:29
последовательно
01:02:30
но если логика очень длинная то для
01:02:32
удобства можно использовать sequence
01:02:41
sequence служит для удобства
01:02:52
также рассмотрим not флип-флоп он просто
01:02:55
поочередно выполнять две
01:02:56
последовательности сначала эй потом by
01:02:58
потом снова эй потом snow by такой
01:03:01
своего рода переключатель red риге был
01:03:04
белый белый который можно выполнять
01:03:06
много раз простой белой выполняется один
01:03:08
раз выполнять задержку если использовать
01:03:11
его повторно то задержки уже не будет но
01:03:13
в случае с вид риге был белей если его
01:03:15
выполнить еще раз то каждый раз будет
01:03:17
задержка указанная здесь функции функция
01:03:23
то фрагмент программы которому можно
01:03:25
обратиться из любого места программе к
01:03:28
примеру у вас есть фрагмент логике
01:03:30
которая является калькулятором вы
01:03:33
помещаете ее функцию присваивать ей
01:03:36
название и можете в любой момент вызвать
01:03:38
ее также у функции есть входные и
01:03:41
выходные данные
01:03:42
вот вызываете функцию внутри которой к
01:03:46
примеру калькулятор помещайте в нее
01:03:48
числа внутри этой функции происходят какие-то
01:03:50
расчеты и на выходе вы получаете
01:03:52
результат функции служит для удобства
01:03:55
чтобы при необходимости
01:03:56
не копировать по многу раз один и тот же
01:03:58
фрагмент логике чтобы создать функцию
01:04:01
нужно в разделе мая bluprint во вкладке
01:04:04
functions нажать плюсик и так же как для
01:04:07
переменных
01:04:08
придумать название для функции открыл
01:04:18
вкладка в blu printy отведенная под
01:04:20
функцию видим что слева в разделе моя
01:04:23
bluprint доступно все то же самое что и в венгров
01:04:25
имеем доступ ко всем ресурсам данного
01:04:28
bluprint
01:04:29
плюс локальные переменные это переменные
01:04:32
которые принадлежат этой функции и все
01:04:35
операции с ними можно проводить только в
01:04:37
рамках данной функции перейдем в раздел
01:04:39
details правой части функции есть
01:04:43
входные и выходные данные создам
01:04:46
несколько для примера
01:04:50
выберу тип входных данных integer
01:04:54
название менять пока не буду и выходные
01:04:59
данные здесь дам название экзит
01:05:11
как видно появился входной нот и
01:05:15
выходной то есть отсюда поступать информация
01:05:17
происходит какая-то логика здесь с
01:05:20
использованием этой информации допустим
01:05:22
вычисления и на выход подается результат
01:05:29
перейдем обра
01:05:31
граф чтобы использовать функцию
01:05:32
достаточно вызвать в нужное время
01:05:37
просто перетащив видите здесь мы подаем
01:05:41
данные здесь выводим функции служит для
01:05:44
удобства грубо говоря мы создали
01:05:46
собственный not если присмотреться то
01:05:48
большинство модов в bluprint
01:05:50
также является функциями об этом
01:05:53
символизирует символ f верхнем левом
01:05:56
углу только эти функции мы не можем открыть
01:05:58
так как они написаны на си плюс плюс то
01:06:00
есть вся их не а логика обрабатывается
01:06:02
на си плюс плюс
01:06:03
давайте создам простейший логику внутри
01:06:05
функции чтобы было понятно как она
01:06:07
устроена
01:06:09
возьму две переменные первый у нас 10 во
01:06:13
второй 9 и сделаю просто логику на их
01:06:16
сложение внутри этой функции и вы ведь
01:06:22
ее на экран хочу под
01:06:35
путь функциях доступны не все ноды
01:06:42
я думаю этого
01:06:44
точно чтобы вы поняли как устроена
01:06:45
функция теперь я могу вызывать эту
01:06:48
функцию сколько угодно раз
01:06:51
подавая в нее различные данные и в конце
01:06:54
получать результат помимо функций в
01:06:58
bluprint есть макро функции
01:07:00
создаются они во вкладке imacros
01:07:06
их отличие
01:07:07
ст их функций в том что в них нельзя
01:07:09
использовать исполнительные ноды только
01:07:11
информационные
01:07:12
вспомнить им of expression здесь также
01:07:15
есть входные и выходные данные
01:07:25
но как видите я могу подсоединять только
01:07:31
данные подобные исполнительные но ты как
01:07:34
for лук просто-напросто ни к чему
01:07:36
прикрепить этот урок конечно не научит
01:07:40
вас полностью выстраивать игровую логику
01:07:42
а даст общее понимание программирование
01:07:45
в глубь которые возможно в дальнейшем
01:07:47
помогут состоянием классического
01:07:49
программирования ведь все эти переменные
01:07:51
массивы циклы логические операторы точно
01:07:54
так же работают в большинстве языках
01:07:56
программирования в следующем уроке про
01:07:58
bluprint на канале кибер stars
01:08:00
entertainment вы научитесь уже всем
01:08:03
возможностям bluprint например таким как
01:08:05
взаимодействие с объектами обмен данными
01:08:08
и многому другому
01:08:09
тогда вы уже сможете выстраивать
01:08:11
собственную игровую логику и создавать
01:08:13
игры
01:08:14
но а пока подписывайтесь в дальнейшем мы
01:08:17
разберем много различных тем не только в
01:08:19
рамках unreal engine 4
01:08:22
[музыка]

Описание:

Этот урок для начинающих будет полезен начинающим разработчикам и программистам не знакомых с Blueprint. В этом уроке мы разберём - что такое Blueprint в игровом движке Unreal Engine и зачем он нужен, Blueprint классы и как устроен этот самый Blueprint. А так же мы разберём - Что такое и как устроены: Переменные и их виды, Массивы, Взаимодействие со строками, Циклы, Логические операторы, Функции, Макро-функции. 0:00 2:12 Как создать Blueprint и его разновидности 4:17 Обзор Blueprint редактора 6:23 Как создавать логику в Blueprint и разновидность блоков - нод 11:06 Создаём свою первую логику! 15:18 ПЕРЕМЕННЫЕ 26:53 МАССИВЫ 38:54 Строки 42:45 ЦИКЛЫ 48:01 МАТЕМАТИКА! 56:27 Random - случайное число 56:49 Math Expression 57:43 ЛОГИЧЕСКИЕ ОПЕРАТОРЫ 1:03:21 ФУНКЦИИ 1:06:57 Макро Функции Разовый донат https://new.donatepay.ru/@cyberstars Patreon - https://www.patreon.com/cyberstars Discord - https://discord.com/invite/z8t2uSWCBq Google Play - https://play.google.com/store/apps/dev?id=8243028543036659870 Facebook - https://www.facebook.com/unsupportedbrowser Instagram - https://www.facebook.com/unsupportedbrowser ВКонтакте - https://vk.com/cyberstars_entertainment @Unreal Engine

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "[Глава 1] Как создать игру на Unreal Engine 4/5. Основы программирования в Blueprint [в одном уроке]"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.