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

Скачать "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials"

input logo icon
"videoThumbnail How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials
Оглавление
|

Оглавление

5:33
обзор архитектуры движка и структуры классов
37:42
создание персонажа с нуля на блупринтах
1:00:55
создание персонажа с нуля на c
Похожие ролики из нашего каталога
|

Похожие ролики из нашего каталога

Создаем ДВИЖЕНИЕ игрока // Создаем игру в Unreal Engine. Урок 2
16:58

Создаем ДВИЖЕНИЕ игрока // Создаем игру в Unreal Engine. Урок 2

Канал: MakeYourGame!
Урок 13 | Unreal Engine 4 Blueprint - Event   События: Custom Event, на взаимодействие и.т.д.
9:24

Урок 13 | Unreal Engine 4 Blueprint - Event События: Custom Event, на взаимодействие и.т.д.

Канал: Cyberstars - Как создать игру
Lumberyard | Обзор. Коротко для новичков @AmazonLumberyardTutorials #Shorts
0:36

Lumberyard | Обзор. Коротко для новичков @AmazonLumberyardTutorials #Shorts

Канал: Cyberstars - Как создать игру
Создание игр / Уроки по Unreal Engine 4 / #26 - создание инвентаря. Виджеты.  Часть 2
1:56:07

Создание игр / Уроки по Unreal Engine 4 / #26 - создание инвентаря. Виджеты. Часть 2

Канал: Институт марксизма-ленинизма
Как сделать ПРЫЖОК в Unreal Engine 4 - Создание игры. Урок 12
16:43

Как сделать ПРЫЖОК в Unreal Engine 4 - Создание игры. Урок 12

Канал: MakeYourGame!
Урок 11 | Unreal Engine 4 Blueprint - Назначение клавиш - Клавиатура и мышь [input]
13:54

Урок 11 | Unreal Engine 4 Blueprint - Назначение клавиш - Клавиатура и мышь [input]

Канал: Cyberstars - Как создать игру
Как добавить БРЫЗГИ КРОВИ в Unreal Engine - Создание игры. Урок 26
16:45

Как добавить БРЫЗГИ КРОВИ в Unreal Engine - Создание игры. Урок 26

Канал: MakeYourGame!
Создание игр / Уроки по Unreal Engine 4 / #22 - инициализация персонажа и начала игры.
1:41:56

Создание игр / Уроки по Unreal Engine 4 / #22 - инициализация персонажа и начала игры.

Канал: Институт марксизма-ленинизма
[Урок 4.1] Размещение Объекты Эффекты - Modes Place | Unreal Engine 4 Знакомство
19:06

[Урок 4.1] Размещение Объекты Эффекты - Modes Place | Unreal Engine 4 Знакомство

Канал: Cyberstars - Как создать игру
Как с нуля нарисовать интерфейс для Unreal Engine 4 | UI/UX для UE4
29:24

Как с нуля нарисовать интерфейс для Unreal Engine 4 | UI/UX для UE4

Канал: Институт марксизма-ленинизма
Теги видео
|

Теги видео

Unreal Engine 4
UE4
c++
разработка игр
Unreal Engine 4 c++
UE4 c++
создание игр
уроки по unreal engine 4
геймдев
создание игр на unreal engine 4
как создать свою игру
создание персонажа unreal engine 4
c++ уроки
создание игры на c++
для новичков
на русском
blueprints
gamedev
unreal engine 4 tutorial
создание игры на unity
создание игр на андроид
создание игры с нуля
с++ уроки
c++ с нуля
c++ игры
геймдев для чайников
ue4 уроки
как создать игру
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:01
shift и пошла компиляция возвращаясь в
00:00:04
unreal engine 4
00:00:05
смотрим у нас была здесь 88 . 34 у нас
00:00:09
пошла компиляция сейчас ну короче все
00:00:12
смотрим сейчас мы у нас сама изменится
00:00:15
быть после того она у нас
00:00:16
унаследует значение которой мы прописали
00:00:18
на си плюс плюс вот движок увидел
00:00:23
изменения теперь мы можем виде что
00:00:25
капсула наша немножко увеличилась
00:00:27
немного изменилось сейчас я выбираю вот
00:00:30
этот капсюль компонент и смотрим у нас
00:00:32
изменилось теперь у нас то что мы
00:00:34
прописали вот здесь 42 и 96 у нас сейчас
00:00:38
здесь 42 и 96 давайте подведем итоги что
00:00:43
мы сейчас проделали так давайте подведем
00:00:45
итоги что мы написали сегодня на си плюс
00:00:47
плюс
00:00:48
защитах мы создав класс получили два
00:00:50
файла .
00:00:51
эй это заголовочный файл и . степи это у
00:00:54
нас файл реализации вот значит что мы
00:00:57
здесь сделали в файле степи мы
00:00:59
подключили все необходимые библиотеки в
00:01:02
первую очередь после чего
00:01:04
после чего мы в заголовочной файле
00:01:08
объявили все нужные нам переменные и
00:01:11
методы то есть мы объявили здесь о
00:01:14
создании нового компонента камера бум
00:01:18
вернее с принтером компонента самой
00:01:21
камеры дальше методы движения вперед назад
00:01:24
влево вправо прыжок остановка прыжка и
00:01:26
также объявили здесь переменную т.д.
00:01:28
после этого мы в нашем уже типе файле
00:01:33
файлы реализации
00:01:35
мы здесь в конструкторе задали различные
00:01:38
мы здесь за далее собственно размер
00:01:41
капсулы изменили мы здесь изменили
00:01:44
поведение управления персонажем
00:01:47
мы здесь создали сами объекты спринтер
00:01:50
компоненты то есть руки который держит
00:01:52
камеру а также мы здесь изменили также
00:01:56
создали и настроили саму камеру дальше
00:01:58
настроили наш момент компонент задали
00:02:00
скорость высоту прыжков и потом про
00:02:02
инициализировали переменную
00:02:04
ds после чего мы задав после чего мы
00:02:09
из-за бенди все управление из наших
00:02:11
input of data тьмы на наши input и за
00:02:14
бенди ли выполнение вот этих самых
00:02:16
функций но вы забили вот выполнение всех
00:02:20
вот всех вот этих фунтов на нажатие
00:02:23
клавиши на нажатие с пейсами забить или
00:02:25
прыжки там дальше в движение вперед назад влево
00:02:28
вправо вот мы вот все забил деле на
00:02:31
выполнение методов которой мы здесь сами
00:02:34
и создали
00:02:35
и здесь у нас есть метод движения
00:02:37
вперед-назад
00:02:38
дальше вот это у нас метод движения
00:02:41
влево-вправо здесь можно
00:02:43
закомментировать если мы хотим
00:02:45
например что это у нас движение вперед
00:02:54
назад вот вот здесь вернее даже не вот
00:02:59
сюда и закомментировал а вот так вот это
00:03:01
у нас движение вперед назад вот это у
00:03:03
нас движение получается будет
00:03:07
влево-вправо да то есть вот здесь массу
00:03:11
в движении влево вправо и дальше у нас
00:03:14
есть прыжки при этом нас все эти функции
00:03:17
проверяют ещё дополнительную логику
00:03:19
не мертв ли персонаж что с мы создали
00:03:21
переменную д-р которая собственно нас
00:03:24
доступностью плинтов который мы уже
00:03:26
переключить и наш персонаж будет мертв
00:03:29
теперь я могу зайти в игру
00:03:30
вот у нас все уже есть мы бегаем мы
00:03:34
можем двигаться вперед назад можем
00:03:36
двигаться бегать вправо влево мы можем
00:03:39
прыгать мы можем управлять немножко
00:03:41
персонажем в прыжке вот и таким образом
00:03:45
мы только что создали управление
00:03:48
персонажем создали персонажа третьего
00:03:50
лица полностью абсолютно с нуля на языке
00:03:53
си плюс плюс и на нажатие зетр мы будем
00:03:57
делать персонажа мертвым-то мертвым да и
00:04:02
на нажатие клавиши
00:04:04
x мы будем делать персонажа живым что у
00:04:08
нас сейчас будем делать его живым
00:04:10
соответственно смотрим что у нас
00:04:11
получается я нажимаю клавишу play
00:04:13
у нас пишет смерть фолз и приятному
00:04:16
им прыгать мы можем бегать у нас
00:04:18
полностью работает управление
00:04:20
теперь я нажал клавишу z нас пишет
00:04:22
смерть true то есть мы изменили нашу
00:04:24
переменную написанную на си плюс плюс
00:04:26
и всю логику натру и теперь я нажимаю
00:04:29
клавишу там wsd дату себя пытаюсь
00:04:32
двигаться я нажимаю space lab и прыгать
00:04:34
наш персонаж мертв
00:04:36
у нас управление нет то есть вся та
00:04:37
логин который вы когда-то писали на
00:04:39
bluprint ок сейчас это все написано уже
00:04:41
на си плюс плюс то есть мы видим что вот
00:04:44
у нас персонаж не двигается вы можете
00:04:46
быть уверены что я действительно нажимаю
00:04:48
ситы клавишу нас не двигается есть я
00:04:50
нажму сейчас x
00:04:51
выпиши мы видим сверху слева что у нас
00:04:54
смерть стала фолз и сейчас я опять могу
00:04:57
управлять персонажем
00:04:59
если я опять нажму z смерть станет труп
00:05:02
наш персонаж стань как будто мертвый и
00:05:05
никакого управления нет и причем это все
00:05:07
нас написана исключительно на языке
00:05:10
программирования си плюс плюс опять же я
00:05:12
пишу здесь фол нажимаю сет у нас смерть
00:05:15
выключается и наш персонаж уже бегать
00:05:19
туда соответственно осталось только
00:05:20
создать там на здоровье персонажа
00:05:23
проверку на здоровье и переключений вот
00:05:25
этой переменной смерти да то есть есть
00:05:27
или нет и соответственно все управление
00:05:30
у нас уже работает
00:05:33
всем привет рад приветствовать данное
00:05:36
видео сегодня мы поговорим на такую тему
00:05:38
как создание персонажа в движке unreal
00:05:40
м4 с нуля с используем язык ар си плюс
00:05:43
плюс до этого мы всегда использовали
00:05:46
исключительно был принят и сегодня у нас
00:05:47
будет первый урок когда мы рассмотрим
00:05:49
как состояться персонаж с использованием
00:05:51
си плюс плюс но прежде чем говорить о
00:05:54
том что и как как создать персонаж
00:05:56
необходимо точно определить рамки что
00:05:59
такое сам персонаж и что нам
00:06:01
предоставляет движок и что нам
00:06:03
необходимо написать самостоятельно для
00:06:05
этого я предлагаю перейти в следующий
00:06:08
слайд и обратить внимание на вот
00:06:10
следующий древо наследования то есть
00:06:12
здесь мы видим такие объекты как объект
00:06:15
как экторп own и корректор давайте
00:06:17
сейчас разберем что это такое в первую
00:06:20
очередь вот все по все вот эти объекты
00:06:23
которые идут один за другим они все
00:06:25
являются на
00:06:26
они все наследуется от предыдущего то
00:06:28
есть эктор наследуется а также так по у
00:06:31
нас ли наследуется от эктора и корректор
00:06:33
наследуется от павла и если мы сейчас на
00:06:36
жмем правой кнопкой мыши по любому
00:06:37
пустому месту выберем создание нового
00:06:40
bluprint класса после этого если мы
00:06:44
развернем вот эту нижнюю часть мы здесь
00:06:46
мы видим такой класс как общем и мы
00:06:48
видим что от него наследуется все
00:06:50
существующие классы в движке также мы
00:06:53
здесь можем видеть класс actor который
00:06:55
также наследуется от класса общем если
00:06:58
мы здесь в классе эктор будем искать мы
00:07:00
здесь найдем полнота здесь у нас также
00:07:03
находится где-то внутри power вот мы его
00:07:07
нашли вот у нас есть в классе эктор
00:07:09
находится класс pawn пешка мы им можем
00:07:12
раскрыть и видим что в классе по
00:07:14
у нас наследуется у нас есть класс
00:07:16
корректор мы в частности в коррекции там
00:07:19
тоже есть определенные классы и вот
00:07:22
таким образом это работает если я еще
00:07:24
вот здесь пропишу сразу корректор что мы
00:07:27
здесь можем четко увидеть что на this
00:07:29
class общих от него наследуется класс
00:07:31
spawn от него наследуется класс actor
00:07:34
от класса actor наследуется класс pawn и
00:07:36
от класса пал наследуется коллег а самым
00:07:39
базовым классом для всех классов движке
00:07:41
unreal engine 4 является класс объект по
00:07:44
сути
00:07:45
это самый базовый класс там почти ничего
00:07:48
нет это все что мне можно делать это
00:07:51
обычный кот то есть он по сути не
00:07:52
предоставляет никаких больше
00:07:54
возможностей он очень маленький он по
00:07:55
сути пустой дальше от класса общих у нас
00:07:59
наследуется такой
00:08:00
именно наследуется в дереве что которое
00:08:03
нас ведет именно к персонажу дальше у
00:08:05
нас от класса общих наследуется такой
00:08:07
класс к класс actor этот класс
00:08:10
он себе он наследуется от объекта и он
00:08:13
имеет в себе намного больше
00:08:14
функциональности в частности одной из
00:08:17
ключевых его особенностей это то что его
00:08:19
можно уже размещать и игровом мире то
00:08:21
есть если вы создаете объект если там
00:08:23
правой кнопкой мыши создать наследуется
00:08:25
от объекта то вы общих не можете
00:08:27
перенести в какой-то и в игровой мир в
00:08:30
принципе да эктор уже эту проблему
00:08:32
решает эктор уже можно привносить в
00:08:35
игровой мир и на этом их отличие
00:08:39
основные можно сказать заканчивается
00:08:41
дальше у нас есть такой класс как пал
00:08:44
это класс который наследуется от класса
00:08:47
actor который точно также может быть
00:08:51
размещен на уровне как и эктор но класс
00:08:53
пан что в переводе значит пешка он
00:08:57
критически отличается от эктора тем что
00:09:00
он может выступать в роли персонажа
00:09:02
которым управляет игрок то есть именно
00:09:05
если вы наследуете от pавно то этим
00:09:07
парнем вы уже можете управлять то есть
00:09:10
вы можете своему контроллере задать
00:09:12
функцию ну вообще задач управления
00:09:14
именно на полу то есть pawn это
00:09:16
минимальная такая единица который может
00:09:18
управлять игрок и точно также по
00:09:21
парадигме наследования у нас есть класс
00:09:24
correct класс корректор точно также
00:09:25
наследуется от класса полам и этот же
00:09:28
сам класс корректор можно точно также
00:09:31
может быть размещен на уровне он точно
00:09:33
так же может выступать в роли персонажа
00:09:35
которым управляет игрок но в нем есть
00:09:37
еще дополнительная логика в частности
00:09:40
это капсюль компонент то есть это некая
00:09:42
коллизия да то есть нас персонаж он нас
00:09:45
не дух как который везде летают да он
00:09:48
имеет вполне какую конкретную капсулу
00:09:50
капсульную коллизию
00:09:52
кроме этого у него есть скелетон меж то
00:09:54
есть уже скажем так система которая
00:09:57
позволяет туда закинуть какой-то
00:09:59
какой-то или от какой-то какого-то
00:10:02
писанок уют и 3d модельку со скелетом и
00:10:04
собственно этим самым управлять и самые
00:10:07
важные что у нас здесь есть еще это
00:10:09
момент компонент момент компонент это
00:10:11
компонент который отвечает за все забег
00:10:14
за биггза ходьбу за прыжки за плаванья
00:10:18
за ускорение за замедление за
00:10:21
максимальную скорость
00:10:22
также он отвечает за скажем так за
00:10:26
скользкость поверхности да то есть мы
00:10:28
можем за сцепление между персонажем и
00:10:31
поверхностью по которому по которой он
00:10:33
ходит то есть мумин компонент это такой
00:10:36
компонент который нам позволяет
00:10:38
вызывая функцию например движение вперед
00:10:41
автоматически двигать персонажи вперед
00:10:43
по заданным с заданной скоростью кота с
00:10:46
заданным ускорением заданной скоростью
00:10:48
которой задается у нас опять же при
00:10:50
настройке этот же момент компонента вот
00:10:52
и при этом с проигрыванием анимации и
00:10:54
тот же сама скелетон миша потому что
00:10:57
есть мы рассматриваем power to полна в
00:10:59
принципе тоже можно управлять но
00:11:01
посылает и посылая собственно команды
00:11:03
управления нет ни в момент компонент
00:11:05
которого вполне нет а именно посылая
00:11:07
просто движения просто смещения по
00:11:09
каким-то координатам то есть в принципе
00:11:11
можно в по он тоже вызвать там функции
00:11:14
но это будут функции уже не проигрывание
00:11:16
анимации не ходьба в классическом
00:11:18
понимании это будет просто грубо говоря
00:11:20
можно просто создать кубик либо какую-то
00:11:22
сферу шарик и просто нажимая клавишами
00:11:25
дат мы можем перемещать по сцене этот
00:11:28
шарик call куда-то вперед назад влево
00:11:29
вправо вверх вниз как-то оборачивать но
00:11:32
по сути это у нас не перемещение поэтому
00:11:34
таким образом мы разобрались что такое
00:11:36
персонаж именно в понимании движка то
00:11:40
есть вот этот корректор это то что нам
00:11:42
предоставляет сам движок уже готовой то
00:11:44
есть у нас это все есть а ну и кстати не
00:11:47
стоит забывать о том что вот этот же
00:11:48
момент компонент на он к слову еще и
00:11:51
поддерживает репликации он отлично
00:11:53
работать в сетевой игре давайте сейчас
00:11:55
посмотрим как выглядит стандартный
00:11:57
персонаж который идет внутри движка без
00:12:00
всякого допо
00:12:01
мнения то есть я нажал кнопку мыши лупит
00:12:04
класс здесь можно найти корректор вот
00:12:09
можно вот так взять и можно взять вот
00:12:11
таким образом взять просто керрик так я
00:12:13
нажимаю вот так у нас создается просто
00:12:15
персонаж если я его сейчас открою
00:12:17
разверну на весь экран то что мы сейчас
00:12:19
в виде мы здесь увидим что у нас есть
00:12:22
только капсюль компонент mesh и
00:12:24
корректор мубинт да ну еще есть
00:12:26
стрелочка который я уже не говорю но она
00:12:28
просто показывают направление
00:12:30
она невидима в игровом мире вот и если
00:12:32
мы сейчас увидим то в нашем чистом
00:12:34
персонажи он наследуется естественно от
00:12:36
корректоров вот то есть он по сути
00:12:38
является корректором и только что просто
00:12:40
чист от наследовались вот мы видим что
00:12:43
здесь у нас никакой не камеры не
00:12:45
компонента который держит камеру здесь
00:12:47
нет и также мы здесь видим что здесь
00:12:50
тоже внутри нет никакой логики то есть
00:12:52
это просто вот чистый класс персонажа
00:12:54
который имеет только капсюль компонент
00:12:56
то есть коллизию он имеет компонент mesh
00:13:00
куда можно на куда можно назначить
00:13:02
какой-то скелетон лишь вот таким образом
00:13:05
можно его допустим развернуть но это уже
00:13:08
стандартные вещи да вот таким образом да
00:13:12
и куда можно назначить ну например
00:13:15
анимацию вот таким образом и у нас
00:13:17
персонаж уже становится анимированы вот
00:13:19
мы видим да но здесь нет никакой камеры
00:13:22
здесь нет никакого компонента камера бум
00:13:24
и здесь естественно не какое управление
00:13:26
еще не настроена что же давайте перейдем
00:13:30
здесь сейчас к следующему слайду и
00:13:32
сейчас я хочу провести скажем так
00:13:35
сравнение между вот этим чистым
00:13:37
корректором который у нас идёт как бы в
00:13:40
комплекте вместе с движком то есть когда
00:13:42
мы создаем какой-нибудь класс не важно
00:13:43
только создаем си плюс плюс класс
00:13:45
т.е. мы создаем новый bluprint класс
00:13:47
когда мы выберем пишем там что мы
00:13:49
создаем корректор или наследуем ся же от
00:13:51
корректора то соответственно создается
00:13:53
класс который наследуется от чистого
00:13:55
корректор но при этом если мы создаем
00:13:59
проект у нас есть возможность выбрать не
00:14:01
пустой проект в котором мы будем это
00:14:02
создавать 0 у нас есть возможность
00:14:04
выбрать какой-то шаблон по умолчанию вот
00:14:06
этот шаблон по умолчанию например я я
00:14:08
буду разбор
00:14:09
рассматривать на примере торт картон
00:14:10
корректор то есть персонажа от третьего
00:14:12
лица и давайте посмотрим что у нас это
00:14:15
мы нас тоже уже есть определенный класс
00:14:17
в зависимости от того как мы вы как мы
00:14:20
создадим проект написано bluprint арх
00:14:22
либо на си плюс плюс и он помимо
00:14:24
стандартных возможностей самого
00:14:26
корректора он еще он от него наследуется
00:14:29
и там реализовано еще дополнительные
00:14:31
вещи как какие мы сейчас посмотрим то
00:14:34
есть мы видим что вот здесь у нас
00:14:35
находится чистый корректор и здесь у нас
00:14:38
находится торт ворсинки ректор чёрным
00:14:40
написано то что у него то что одинаково
00:14:43
между этим персонажами и красные это то
00:14:45
что нам дают именно шаблон который нам
00:14:47
также идет в комплекте с движком но как
00:14:49
бы это шаблон который просто показывает
00:14:52
демонстрирует что можно сделать в
00:14:54
частности помимо того что у нас чистого
00:14:56
половина того что у нас есть в чистом
00:14:57
персонажи у нас есть еще когда мы
00:15:00
создаем по шаблону у нас есть первую
00:15:02
очередь такой компонент как камера бум
00:15:04
то есть когда мы создаем персонажа
00:15:06
третьего лица то у нас камера не от
00:15:09
класс персонажа не как-то сверху завиша
00:15:11
она как будто на некой невидимой
00:15:13
сэлфи-палки вот сзади персонажа
00:15:15
размещается и камера висит на
00:15:17
определенном расстоянии сзади персонажа
00:15:19
0 и без перец а кроме компонента вот
00:15:21
этого камера пум у нас есть еще
00:15:23
непосредственно сама камера то есть в
00:15:25
обычном в обычном корректоре как мы
00:15:26
видим камеры нет то есть для того дать я
00:15:30
даже по-другому перефразирую для того
00:15:31
чтобы из обычного персонажа из того что
00:15:34
у нас это предоставляет нам движок
00:15:36
создать именно присед
00:15:37
персонажа третьего лица нам необходимо в
00:15:40
первую очередь добавить вот это
00:15:41
компонент камера бум на котором будет
00:15:43
висеть камера то дальше нам нужно
00:15:45
добавить саму камеру саму камеру нужно
00:15:47
добавить чтобы она висела и было вложено
00:15:49
вот в этот компонент вот в эту некую
00:15:51
невидимую руку так же нам необходимо
00:15:52
настроить и нам нужно настроить чтобы мы
00:15:55
управляем мышкой двигали камеру это тоже
00:15:58
как бы по умолчанию не настроен это
00:16:00
можно настроить ее точно так же здесь
00:16:02
необходимо настроить движение на клавишу
00:16:07
вст опять же то есть нужно из нужно
00:16:11
задать настройках проекта input и и эти
00:16:13
input и потом внутри персонажа там
00:16:16
соединить таллина bluprint актуален на
00:16:18
языке си плюс плюс
00:16:19
вместе с функциями в нашем именно вот
00:16:24
этот момент компоненте коту о которой мы
00:16:26
говорили вот только что сейчас мы
00:16:28
посмотрим как устроен шаблон на blu
00:16:31
принтах я выбираю asset от третьего лица
00:16:34
нажимаю далее выбираю что он у нас здесь
00:16:37
на углу принтах ничего здесь не меняю
00:16:40
создаю проект и мы сейчас посмотрим
00:16:42
убедимся
00:16:44
как устроена архитектура именно шаблона
00:16:47
на bluprint ах вот у нас открылся проект
00:16:50
я сейчас открываю папку захожу полку
00:16:53
торт прошлом веке был принц и мы здесь
00:16:56
видим торт person корректор я его здесь
00:16:58
открываю я открываю этот персонаж как мы
00:17:02
можем видеть спровоцировав справа сверху
00:17:05
мы можем видеть что этот класс
00:17:07
наследуется от класса корректор если я
00:17:09
его открою и мы сейчас увидим что у нас
00:17:13
загружается именно класс корректор
00:17:15
который написан на языке си плюс плюс
00:17:17
который идет как бы внутри самого движка
00:17:20
то есть это встроенный класс который
00:17:22
диоды движке но тем не менее давайте
00:17:25
сейчас закроем но тем не менее мы видим
00:17:27
что у нас сейчас создан здесь вот такой
00:17:32
вот новый класс который наследуется от
00:17:34
корректор который помимо того что мы
00:17:36
говорили помимо как у компонента помимо
00:17:39
маша он и помимо корректор мы компонента он
00:17:43
еще имеет компонент камера бум вот на
00:17:45
котором держится камера и так же у нас
00:17:47
есть здесь сама камера и также если мы
00:17:51
посмотрим вот сюда то мы здесь увидим
00:17:53
что у нас настроено как раз таки все то
00:17:56
управление о котором мы говорили то есть
00:17:58
на здесь есть управление мышки у нас
00:18:01
есть прыжки у нас есть управление
00:18:04
движением у нас есть поддержка
00:18:06
джойстиков и так далее то есть вот здесь
00:18:10
мы видим в чем отличается именно шаблоны
00:18:12
третьего лица от обычного персонажи ну я
00:18:14
уже здесь не сказал что также кроме
00:18:17
управления на w и есть еда на
00:18:19
клавиатурный еще здесь если мы создаем
00:18:22
шаблон от третьего лица на на
00:18:23
автоматически еще создается поддержка
00:18:25
этих очков виртуальной реальности
00:18:27
геймпада то есть джойстик можно
00:18:29
подключить и на нем
00:18:30
вы будет все работать и можно на
00:18:32
тачскрине если вас сенсорный экран вы
00:18:33
можете также играть на тачскрине
00:18:35
но опять же то есть вот это самое самое
00:18:40
самое основные различия между вот чистым
00:18:42
персонажем и тем что у нас превращают
00:18:44
вот сама так такого как бы чистого
00:18:46
персонажа именно в о персонажа от
00:18:48
третьего лица уже настроенного то есть
00:18:50
это то что предоставляется шаблон
00:18:52
давайте сейчас сравним шаблонами которые
00:18:55
создаются на blu принтах и на си плюс
00:18:58
плюс для того чтобы увидеть как это все
00:19:00
происходит если мы говорим если мы
00:19:03
создаем проект и в этом проекте мы
00:19:05
выбираем что мы хотим создать на углу
00:19:07
принтах шаблон от третьего лица как
00:19:08
обычно все делают в этом случае в этом
00:19:12
случае у нас от чистого корректора
00:19:14
который есть внутри движка написан
00:19:16
который компании pgs данности плюс плюсе
00:19:18
у нас наследуется персонаж создаю
00:19:22
наследуется наследуется тарт форсунки
00:19:25
ректор наследуется новый класс который
00:19:27
вбирает в себя все те же все то же что
00:19:30
есть стандартам чистом корректоре но еще
00:19:32
дописывает вот так раз на и что мы здесь
00:19:35
написали то есть как раз таки это все
00:19:36
создается на буду принтах если мы уже
00:19:39
создаём а шаблоны на си плюс плюс то у
00:19:43
нас получается следующая система у нас
00:19:44
есть чистый также персонаж только от
00:19:47
него уже наследуется не bluprint класс а
00:19:49
еще один класс на языке си плюс плюс
00:19:52
и в котором уже на языке си плюс плюс
00:19:55
опять же создана все то что здесь
00:19:58
создано вот как раз таки вот что
00:20:00
написано красными буквами
00:20:01
вот это все именно компонент камера бум
00:20:03
камера управление мышкой
00:20:05
управление камер управление мышкой там
00:20:07
поддержка кие подай так дальше это все у
00:20:09
нас также создается вот здесь на си плюс
00:20:12
плюс и и потом все равно у нас наследуется по
00:20:15
всему у нас наследуется от этого уже с
00:20:18
нами созданного ну как бы нам мире peak
00:20:20
games on that шаблоном созданного
00:20:23
casanova си плюс плюс также наследуется
00:20:26
создается к класс дочерней на blu
00:20:29
принтах у нас этот класс на blu принтах
00:20:32
он имеет в себе все управление но в
00:20:37
отличие от класса который создается на
00:20:39
blu принтах если мы туда зайдем мы там
00:20:41
ничего не увидим то есть если мы создаем
00:20:44
класс
00:20:45
если мы создаем проект по шаблону от
00:20:48
третьего лица на си плюс плюс то у нас
00:20:50
создается так как мы видим справа то
00:20:52
есть автоматически создается си плюс
00:20:53
плюс класс который наследуется от класса
00:20:56
корректор и от класса к ректору нас
00:20:58
наследуется класс торт снг пик от ну как
00:21:01
бы там неважно уже на blu принтах и в
00:21:04
результате мы получаем классно bluprint
00:21:06
ах который в себе имеет все написано на
00:21:09
си плюс плюс а теперь давайте посмотрим
00:21:11
как устроен шаблон от третьего лица уже
00:21:14
на си плюс плюс я выбираю здесь шаблон
00:21:16
от третьего лица нажимаю далее здесь я
00:21:19
уже меняю из blu принтов на си плюс плюс
00:21:22
все остальное я оставляю без изменений и
00:21:24
создаю проект теперь при создании
00:21:27
проекта уже на си плюс плюс у нас
00:21:29
открылся в первую очередь движок но
00:21:32
также у нас сразу еще открылась и visual
00:21:34
studio которая сейчас здесь загружается
00:21:36
но мы сейчас что можем увидеть если мы
00:21:39
зайдем в торт person степи в папку
00:21:42
bluprint мы также увидим персонажи на blu принтах
00:21:45
который написан называется торт пирсинг
00:21:47
эрик но если мы зайдем сейчас в этого
00:21:50
персонажа вот таким образом то мы сейчас
00:21:53
с ним увидим что этот bluprint
00:21:56
абсолютно пустой но тем не менее в нем
00:21:59
также есть компонент камера бум follow
00:22:01
камера но если мы обратим внимание
00:22:04
сверху он уже наследуется не от нашего
00:22:08
не от к не от встроенного корректора оон
00:22:12
наследуется от какого-то персонажа
00:22:14
давайте мы сейчас откроем вот у нас
00:22:17
открывается сейчас visual studio
00:22:21
да у нас сейчас открылась visual studio
00:22:23
если мы сейчас здесь поищем вот таким
00:22:27
образом то в папке source мои project мы
00:22:33
здесь как раз таки можем найти вот этот
00:22:36
май project корректор то есть если мы
00:22:39
посмотрим у нас здесь есть май project
00:22:42
корректор . себе и май project корректор
00:22:45
.
00:22:46
эйч и если мы сейчас здесь посмотрим на
00:22:51
языке си плюс плюс то мы увидим что наш
00:22:54
вот этот amoi project корректор он у нас
00:22:57
здесь написан он в нас здесь наследуется
00:23:00
точно также от встроенного директора то
00:23:04
здесь есть и что значит что значит эктор
00:23:08
корректор вот у нас есть стандартный
00:23:10
встроенный корректор
00:23:11
от него от стандартного корректора у нас
00:23:14
наследуется наш май project director мы
00:23:18
также этого мая прочистки ректора можем
00:23:20
увидеть если заем в папку си плюс плюс
00:23:22
класс с моей прожиг и мы здесь увидим
00:23:25
как раз и вот этот созданный май project
00:23:28
director то есть также как я только что
00:23:30
показывал в презентации у нас от
00:23:33
встроенного класса корректор наследуется
00:23:35
класс на си плюс плюс который называется
00:23:38
в на на данном случае май прачек
00:23:40
корректор в этом классе мы можем как раз
00:23:43
таки увидеть все то всю ту всю ту логику
00:23:48
которой у нас в предыдущем варианте было
00:23:51
написано на си плюс плюс то есть мы
00:23:53
здесь точно также видим функции которые
00:23:56
отвечают за движение вправо влево мы
00:23:59
видим функции методы которые отвечают за
00:24:02
движение вперед назад мы здесь видим
00:24:05
повороты так это нас не интересует вот у
00:24:09
нас есть настройка тачпада
00:24:11
и так же у нас есть здесь вызов где у
00:24:14
нас и здесь у нас есть также вот прыжки
00:24:18
то есть вся эта логика которую мы видели
00:24:21
с вами на blu принтах в прошлом примере
00:24:23
сейчас вся эта логика вот у нас здесь
00:24:27
идут настройки вот у нас здесь
00:24:31
настраивается му
00:24:32
mint компонент устанавливается
00:24:34
максимальная сила прыжков управления в
00:24:37
полете и так дальше то есть
00:24:39
устанавливается как раз таки создаются
00:24:41
давайте перейдем вот заголовочный файл
00:24:44
мы здесь можем видеть что у нас здесь
00:24:46
создается компонент именно камера бум
00:24:49
вот класс юсб ренгар компонент с
00:24:53
названием камера бум также у нас здесь
00:24:55
создается follow камера до которые мы
00:24:58
можем здесь видеть и в чем смысл что у
00:25:01
нас получается что мы вот этот класс на
00:25:04
bluprint а вот этот класс на blu принтах
00:25:07
который наследуется от класса на си плюс
00:25:09
плюс он у нас
00:25:11
казалось бы пустой то с ним нету никакой
00:25:14
логики которая была у нас на был принтах
00:25:16
но тем не менее этот класс у нас
00:25:18
настроен быть игровым классом давайте мы
00:25:22
сейчас об этом убедимся давайте зайдем
00:25:24
прочих целей
00:25:25
давайте зайдем сейчас в map and miles
00:25:29
вот у нас дефолтный мод стоит вот этот
00:25:32
май почек game mode
00:25:35
найдем он у нас есть давайте по-простому
00:25:40
мой проект ей мод вот мы видим что у нас
00:25:43
дефолт по ул класс этот сорт person
00:25:46
корректор да то есть вот это наш
00:25:48
персонаж он пустой внутри но тем не
00:25:51
менее если мы заходим мы видим что в нем
00:25:54
точно также работает управление как она
00:25:56
работала и в углу принтах то есть у нас
00:26:00
получается что от базового класса а у
00:26:04
нас получается что от базового класса
00:26:05
корректор наследуется класс май поджиг
00:26:09
корректор на си плюс плюс и на котором
00:26:11
создается вся логика уже на языке си
00:26:14
плюс плюс и потом уже от этого класса у
00:26:17
нас наследуется класс вот именно торт
00:26:21
парсон корректор на blu принтах он у нас
00:26:23
наследуется от класса май project
00:26:25
корректор который написан на си плюс
00:26:27
плюс и вот это как раз таки и является
00:26:31
основных шаблоном то есть здесь сейчас
00:26:33
мы перейдем к такому небольшому
00:26:36
развенчание мифов
00:26:39
который звучит следующим образом как
00:26:41
будто у нас есть две анриал и проектов
00:26:44
adria лина клуб принтах написанные либо
00:26:47
же написаны на языке си плюс плюс на
00:26:49
самом деле дела обстоят иначе и мы
00:26:51
сейчас придем посмотрим почему что нам
00:26:55
дает вот эта система когда мы
00:26:56
комбинируем
00:26:57
и bluprint и и язык си плюс плюс
00:27:00
смотрите если мы берем кладу принтер
00:27:03
это нам просто и удобно то есть это
00:27:05
визуальное программирование это очень
00:27:07
удобно это быстро для разработки опять
00:27:10
же то есть для бизнеса это рабочее время
00:27:13
это время право ты специалистов и это на
00:27:15
самом деле намного быстрее то есть
00:27:17
создания прототипа на blueprint ах
00:27:18
создается очень быстро кроме этого
00:27:22
использования bluprint of не требует
00:27:24
очень высокой квалификации а то есть
00:27:26
простыми словами для того чтобы изучить
00:27:27
bluprint и изучить bluprint и вообще нам
00:27:31
можно намного быстрее чем изучить тот же
00:27:33
язык си плюс плюс
00:27:34
с другой же стороны что он имеем на
00:27:36
языке си плюс плюс во-первых мы имеем
00:27:38
безграничные возможности поскольку на
00:27:40
языке си плюс плюс можно делать все что
00:27:42
угодно например какие-то запросы в
00:27:45
какие-то базы данных получать ответы
00:27:47
что-то с этими ответами делать тогда как
00:27:49
билл бритт и работает исключительно
00:27:50
внутри движка и они управляют всем что
00:27:53
есть движке но на blu плитах куда то
00:27:55
выйти нельзя можно к слову подключить
00:27:57
какие-то сторонние плагины но опять же
00:27:58
все эти плагины
00:27:59
они пишутся на языке си плюс плюс кроме
00:28:02
этого си плюс плюс нам предоставляет
00:28:03
высокую скорость работы приложения опять
00:28:06
же здесь не нужно воспринимать что
00:28:07
bluprint и всегда работает медленнее чем
00:28:09
си плюс плюс на самом деле всё не так
00:28:12
зависит от конкретной задачи то есть
00:28:14
если мы хотим установить какую-то
00:28:16
настройку какого-то класса то есть если
00:28:19
мы например хотим взять и поставить
00:28:21
какую-то галочку где-то там по умолчанию
00:28:23
то что мы поставим эту галочку на blu
00:28:26
принтах реально поставим галочку что мы
00:28:28
пропишем команду которая поставит
00:28:29
галочку на си плюс плюс
00:28:31
разницы по сути не будет никакой этим
00:28:33
ними если мы говорим про какие-то
00:28:35
большие перебор и массивов там из каких
00:28:37
то там тысяч объектов и каждый этот
00:28:40
объект еще состоит из десятка или сотни
00:28:42
объектов в этом случае и если мы будем
00:28:44
сравнивать вот перебор там тысячи
00:28:46
объектов цикле на из на bluprint
00:28:49
афина си плюс плюс туда здесь конечно на
00:28:51
си плюс плюс будет более высокая
00:28:52
скорость и вот такая как раз таки вот
00:28:55
этот шаблон который мы видим сейчас
00:28:57
справа это является самая популярная у
00:29:01
нас сейчас самый популярный шаблон по
00:29:04
работе с движком unreal engine 4 то есть
00:29:07
у нас получается что от базовых классов
00:29:10
которые нам предоставляет уже движок мы
00:29:12
наследуем ся своими классами но все
00:29:15
равно еще на си плюс плюс
00:29:17
добавляем туда ту логику на си плюс плюс
00:29:19
которой нам нужно которая могла бы
00:29:21
медленно работать например на где на blu
00:29:23
принтах и потом уже как мы здесь можем
00:29:26
видеть и уже потом от этого нашего
00:29:28
класса на си плюс плюс мы еще раз
00:29:31
наследуем ся на blu принтах и уже
00:29:33
соответственно смотрите что мы получаем
00:29:35
мы получаем bluprint и мы получаем
00:29:37
простоту и удобство от glu принтов мы
00:29:40
получаем быстроту для разработки от glu
00:29:42
принтов мы получаем безграничные
00:29:44
возможности
00:29:45
на си плюс плюс который нам
00:29:47
предоставляете плюс плюс мы получаем
00:29:49
высокую скорость работы приложения
00:29:51
поскольку все что нам надо мы пишем на
00:29:52
си плюс плюс
00:29:53
и при этом не я уже перефразировал фразу
00:29:56
не требует высокой высокой квалификации
00:29:58
на такую фразу как не требует от
00:30:00
художников быть программистами поскольку
00:30:02
какой-то кто-то программистом в любом
00:30:04
случае должен быть
00:30:05
но тем не менее если раньше художники
00:30:07
там 3d моделлер и насилию там картинки
00:30:10
3d модельки к программистам чтобы они
00:30:13
строили эти картинки эти 3d модели к
00:30:15
внутрь флеш-карт движок игровой мир то
00:30:17
сейчас все намного проще сейчас с
00:30:19
помощью bluprint of может любой художник
00:30:22
любой дизайнер а свой движок и выполнять
00:30:25
те функции которые на него
00:30:27
изложены значит давайте я еще раз даче
00:30:31
так мы закрепили что основной основной
00:30:34
принцип работы с движком заключается
00:30:36
вообще в профессиональных современных
00:30:38
студий заключается в следующем в образе
00:30:40
то есть у нас есть классы базовый
00:30:41
который нам предоставляет движок от них
00:30:44
обычно наследуется создают класс на
00:30:46
языке си плюс плюс и потом от этих
00:30:49
классов еще раз наследуется уже создают
00:30:52
классы на blu принтах в результате
00:30:53
получается что у нас есть классному
00:30:56
принтах то что надо выпишем на bluprint
00:30:58
art
00:30:59
что надо мы пишем на языке от си плюс
00:31:01
плюс переходим к следующему слайду опять
00:31:05
же это то о чем я уже до этого говорил
00:31:07
но я еще раз хочу обратить внимание на
00:31:10
вот этот миф что создавая нам это вот
00:31:13
развенчание этого мира что создавая
00:31:14
проект с шаблоном на blu принтах или на
00:31:17
си плюс плюс это все равно в конечном
00:31:19
итоге один и тот же проект то есть в
00:31:22
проекте который вы создаете на blu
00:31:23
принтах у вас ничего не отличаю у вас не
00:31:27
нет никакой разницы между проектом
00:31:29
созданным на bluprint ахил на си плюс
00:31:31
плюс в частности когда вы создаете проект до
00:31:33
поговорим о создании кроме вот этого
00:31:36
кроме того как создан вас каркасом
00:31:38
персонаж даст настройками от третьего
00:31:40
лица
00:31:41
если вы создаете проект на bluprint ах
00:31:44
вы можете создавать си плюс плюс классы
00:31:47
если вы создаете проект настиг плюс плюс
00:31:49
вы в нём точно также можете создавать
00:31:50
blueprint класс этой разницы здесь на
00:31:52
самом деле нет никакой разницы не в
00:31:56
проектах а всего лишь там на чем написан
00:31:58
шаблон персонажа это важно знать и
00:32:01
сейчас мы плавно переходим к теме
00:32:04
сегодняшнего урока тема стима
00:32:07
сегодняшний урок у нас будет создан
00:32:08
описание с нуля на си плюс плюс в чистом
00:32:11
проекте пустом а персонажу от третьего
00:32:14
лица в частности как мы то есть мы
00:32:16
проделаем примерно то что мир точно
00:32:19
только что рассматривали то есть мы
00:32:21
возьмем самый обычный класс корректор да
00:32:23
то есть который нам предоставляется
00:32:25
движку движок который нам предоставляет
00:32:27
движок мы дополнительно в нем создадим
00:32:30
компонент который будет держать камеру
00:32:32
мы создадим саму камеру мы создадим
00:32:34
настройки для управления камеры мышкой
00:32:37
мы создадим настройки для wsd
00:32:40
что касается поддержки we are геймпады и
00:32:43
тачскринов одно и вот эта поддержка это
00:32:46
такие же самые функции точно так же
00:32:48
берётся как и управление мышкой поэтому
00:32:51
мы сегодня не будем заострять внимание
00:32:53
именно на мы не будем дополнительно
00:32:55
помимо поддержки клавиатуры мыши еще там
00:32:58
по дев еще подключать джойстики так
00:33:00
дальше поэтому мы сейчас мусор виде
00:33:02
поддержки вот эта we are геймпада тоже
00:33:04
скином и сегодня разбирать не будем кому
00:33:06
интересно думаю
00:33:07
и опять же открыть также как мы сегодня
00:33:09
откроем проект который предоставляет
00:33:11
epic games и посмотреть как это
00:33:13
происходит это просто такая же
00:33:14
дополнительная функция вы можете и даже
00:33:16
просто скопировать но и дополнительно
00:33:19
чтобы не получилось что чтобы мы сегодня
00:33:21
скажем так не изобретали велосипед
00:33:23
заново для того чтобы просто не
00:33:24
повторить не показать как работает
00:33:26
именно сам сама основа персонажа на
00:33:29
языке си плюс плюс
00:33:30
до чтобы не просто не просто не вас
00:33:32
создать то что уже было создано
00:33:34
мы еще сегодня добавим дополнительное
00:33:36
систему дополнительно систему блокировки
00:33:39
движения при смерти персонажа в нашем
00:33:42
основном проекте каком-нибудь я не
00:33:44
помнит он до 10 урока мы создавали там
00:33:47
нашего главного персонажа не было
00:33:48
система жизни и в частности у нас там мы
00:33:51
создавали там переменную смерти на потом
00:33:55
мы создавали кроме перемены кроме
00:33:57
логичен голове ческой булевой переменной
00:33:59
да нет который отвечает за смерть
00:34:01
персонажа мы создавали еще макрос
00:34:03
который проверку делает на вот это
00:34:05
мертвый персонаж или нет и вешали вот
00:34:07
этот макрос именно вот обрыв всех наших
00:34:10
между нашими им путами и функциями
00:34:13
которые управляют самим персонажем да
00:34:16
таким образом мы делали систему когда
00:34:18
выключая вот эту перемену переключая
00:34:21
переменную смерти мы блокировали мы
00:34:23
блокировали управление нашим персонажам
00:34:27
и давайте сейчас посмотрим как логика
00:34:29
смерти персонажа реализовано у нас на
00:34:32
blu принтах то есть я сейчас нахожусь
00:34:34
компоненте half stats который является
00:34:36
компонентом торт перцем корректора вот
00:34:39
здесь у нас создана перемен некая
00:34:41
переменная бульвар из да это вот таким
00:34:44
образом она у нас здесь включается
00:34:45
заключается в зависимости от от
00:34:47
количества здоровья персонаж то есть нас
00:34:49
вызывается при канал включается при
00:34:52
количестве здоровья которые доходят до
00:34:54
нуля до и здесь внутри самого персонажа
00:34:57
мы здесь можем найти макрос который я
00:35:00
назвал is alive kindle вот мы заходим
00:35:02
это проверим проверочный макрос который
00:35:04
вызывает как раз таки вот эту переменную
00:35:06
и собственно создает такую условную
00:35:10
конструкцию что если вот эта переменная
00:35:12
если эта переменная ложное то есть если
00:35:15
мы ни мертвы тогда мы можем
00:35:17
это делать тогда у нас идет выход вот
00:35:19
этого макроса а если нет тогда у нас
00:35:22
ничего не происходит и этот макрос
00:35:25
свою очередь он у нас здесь повешен
00:35:27
везде в разрывы нашего управления то
00:35:30
есть если мы сейчас посмотрим на наше
00:35:34
управление вот например мы видим
00:35:36
управление движения вперед-назад у
00:35:38
нас-то но по умолчанию было просто
00:35:40
напрямую про брошена но сейчас у нас
00:35:42
подключать через этот макрос
00:35:44
точно также вправо-влево управление
00:35:47
персонажем право влево до тоже у нас
00:35:49
была подключена напрямую изначально но
00:35:52
мы здесь про бросили через этот макрос и
00:35:54
точно так же вы например прыжки
00:35:56
сначала прыжка остановка прыжка то есть
00:35:58
все это все наше управление она у нас
00:36:01
как бы через вот такую условной
00:36:03
конструкции if-else
00:36:04
через вот этот макрос у нас и работает
00:36:07
сегодня мы это всё строим в
00:36:09
непосредственно в наш в нашу в нашего
00:36:13
персонажа на языке си плюс плюс то есть
00:36:15
у нас уже в конечном итоге мы когда от
00:36:18
наследуем ся когда мы создадим дочерний
00:36:21
класс на blu принтах от нашего класса на
00:36:23
си плюс плюс которым мы создадим сегодня
00:36:25
у нас уже там внутри будет переменной
00:36:28
уже нас будет ждать миленькая переменная
00:36:30
именно dead да там и стену короче
00:36:33
который будет отвечать за смерть
00:36:34
персонажа и нам достаточно будет просто
00:36:36
переключить эту переменную и
00:36:38
автоматически наш персонаж уже
00:36:40
перестанет передвигаться то есть по сути
00:36:43
мы то что делали на blu принтах мы
00:36:44
сейчас вот такую логику смерти смерти
00:36:47
персонажа мы ее и создадим кроме этого
00:36:50
чтобы напомнить
00:36:52
и в принципе увидеть вот эту параллель
00:36:54
между blu принтами и си плюс плюс
00:36:56
увидеть что разницы по сути внутри
00:36:58
движка нету я сейчас по быстрому создам
00:37:01
вот начинать чистом проекте вот все что
00:37:03
я сказал я создам сейчас за несколько
00:37:05
минут это на blu принтах я покажу как
00:37:08
это создает на blu принтах в чистом
00:37:10
проекте и после этого мы уже с вами с
00:37:12
разбором сейчас будем разбирать и
00:37:14
создадим как раз таки уже персонажа на
00:37:17
си плюс плюс
00:37:19
с нуля в чистом проекте поехали так же в
00:37:23
свою очередь хочу выразить благодарность
00:37:24
спонсором проекта на патреоне данный
00:37:27
момент у нас 5 спонсор
00:37:28
это евгений конников холли shark и
00:37:31
владимир кос
00:37:32
эллис питерс и дрон антон если вы хотите
00:37:36
поддержать наш канал
00:37:37
вы можете оформить платную спонсорскую
00:37:38
подписку по ссылке который вы видите на
00:37:41
экране как я уже говорил я считаю
00:37:45
правильным перед тем как создавать
00:37:47
персонажа она полностью чисто на си плюс
00:37:50
плюс перед этим было бы хорошо буквально
00:37:53
несколько минут уделить тому что
00:37:55
посмотреть как создается именно персонаж
00:37:57
именно персонаж на blu принтах поэтому
00:38:00
сейчас мы здесь видим окно создания
00:38:04
проекта движок версия 424 я выбираю
00:38:07
пустой проект
00:38:08
нажимаю next дальше здесь абсолютно
00:38:11
неважно можно выбрать bluprint элисте
00:38:13
плюс плюс это тоже все это сейчас не
00:38:14
важно я выбираю без стартового контента
00:38:18
он не сейчас не нужен здесь все по
00:38:20
умолчанию я нажимаю круги прочь сейчас
00:38:23
на буквально за несколько минут вас
00:38:24
создадим как раз таки все это на blu
00:38:27
принтах то есть то что мы сейчас здесь
00:38:30
видим красные вот мы это сами создадим
00:38:33
значит так и у меня открылся проект
00:38:36
первым делом что мне нужно сейчас здесь
00:38:39
создать мне нужно создать самого
00:38:42
персонажа на был принтах и game о то
00:38:44
есть в первую очередь необходимо создать
00:38:47
новый bluprint класс можно здесь
00:38:49
прописать слова
00:38:50
корректор вот таким образом и здесь
00:38:53
можно взять корректор либо можно нажать
00:38:55
вот эту клавишу давать я в этот раз
00:38:56
нажму вот так нажми приедет и выберу что
00:39:00
здесь будет ну как его назвать просто
00:39:01
май-май корректор например вот так так
00:39:06
же для того чтобы ну сейчас семена и им
00:39:09
зайдём в игру мы будем просто летать да
00:39:11
то есть нас нету димона гимат это такой
00:39:13
bluprint который устанавливает как раз
00:39:15
таки персонажа по умолчанию поэтому я сейчас
00:39:17
еще нажму созданию прям класс дальше
00:39:21
здесь хорошо game mode или в принципе
00:39:23
можно выбрать вот здесь ему отбей сном
00:39:26
это не важно я выбираю гей мод я также
00:39:28
называю что это май май гейм мод на вот
00:39:33
таким образом теперь теперь мне нужно
00:39:36
зайти внутрь и
00:39:37
дорогие мода открыть его на весь экран
00:39:39
здесь в класс дефолте дефолт по он класс
00:39:43
не необходимо выбрать установить именно
00:39:46
моей корректор вот я установил мой корректор
00:39:48
теперь мне нужно зайти в прочих цари мне
00:39:53
нужно зайти в настройки и здесь во
00:39:56
вкладку maps and battles выбрать дефолт
00:40:00
гей мод выбрать именно майский мод
00:40:02
теперь когда я нажимаю клавишу play мы у
00:40:06
нас создается наш персонаж и поскольку
00:40:08
там камеры нет в этом персонаже мы
00:40:10
сейчас это увидим постольку поскольку у
00:40:13
нас камер создается в 0 координате
00:40:15
персонаж 18 дается на месте персонажа
00:40:17
давайте я сейчас возьму здесь наш мой
00:40:20
отравиться rings нет тоже не так это
00:40:24
самом деле неважно так давайте важно
00:40:26
чтобы создавалось новом окне вот то есть
00:40:27
мы видим что у нас вот здесь стоит такой
00:40:30
объект как плеер старт и в частности в
00:40:33
ними создается на жку 100 персонаж но
00:40:34
теперь если мы зайдём внутрь нашего
00:40:37
персонажа вот этого то мы сейчас увидим
00:40:40
что он как раз таки пустой как я и
00:40:42
говорил то есть все то все то что мы
00:40:44
видим вот здесь в презентации то есть
00:40:47
все это есть все что видно здесь черным
00:40:49
цветом все это у нас есть то что нас
00:40:51
красным это все необходимо создать
00:40:53
значит по поводу анимации и самой
00:40:56
модельке персонажа по той причине что ну
00:40:59
как бы я мог бы сейчас зайти на сайт
00:41:00
микса маска накачайте туда анимаций
00:41:03
закинуть их всех проектах скомбинировать
00:41:06
до создать создать мастер анимации
00:41:08
анимационный bluprint
00:41:09
но на самом деле это просто трата
00:41:11
времени мы сейчас не занимаемся
00:41:13
анимациями наша цель сейчас именно
00:41:16
разобраться с созданием персонажа именно
00:41:18
его программного кода а поэтому я
00:41:20
добавлю сюда нашего манекена но на самом
00:41:23
деле он у нас здесь сейчас добавится
00:41:25
вместе с другими вещами из шаблона
00:41:28
паяете все вещи сейчас удалю поэтому я
00:41:30
нажимаю эту фичу pack
00:41:32
я здесь выберу сейчас торт person вот
00:41:37
таким образом я отцу project а значит
00:41:40
что она сделала в кого первых она нам
00:41:42
еще в project series нужно помнить
00:41:43
добавила еще input и при этом нам и
00:41:46
квинты на самом деле
00:41:48
но для того же поскольку мы говорим о
00:41:50
создании с нуля я эти gain бы ты сейчас
00:41:52
все абсолютно поудаляю и вот эти генку
00:41:55
ты я сам сам создан вручную при вас что
00:41:57
вы смотрели видели как это происходит
00:41:59
теперь я так это я закрыл хорошо так
00:42:03
дальше maps папка maps нам сейчас здесь
00:42:05
не нужно там стандартной карты от
00:42:08
третьего лица в принципе нам здесь
00:42:09
ничего был принц это тоже на blu принтах
00:42:11
это нам тоже не нужно я полностью торт
00:42:14
карсон bp эту папку сейчас удаляю то
00:42:19
сейчас дождемся удалением вот эта папку
00:42:26
на сейчас ударилась так third-person это
00:42:28
у нас машин стандартной не нам тоже не
00:42:31
нужны я тоже нажимаю далее я их тоже
00:42:34
удаляю дальше папка чего моторы это
00:42:36
здесь нас кубики и сверки нам тоже они
00:42:38
не нужны папку геометрия здесь удаляем
00:42:42
вот таким образом нас остается
00:42:44
исключительно папка манекен где у нас
00:42:47
есть анимация то есть у нас есть набор
00:42:48
анимации да и здесь у нас есть материалы
00:42:52
материал и собственно с текстуры и
00:42:55
машина и вот наш вот этот с к манекен да
00:42:58
то есть мы просто добавили сюда 3d
00:43:01
модель с анимациями теперь когда мы
00:43:03
находимся внутри этого персонажа нам
00:43:06
необходимо сюда добавить нам нужно
00:43:10
добавить моя же давайте начнем знаешь то
00:43:12
что мы делали просто добавляем сюда уже
00:43:14
меж я его помещаю вот примерно как то
00:43:18
вот сюда так ну допустим представим что
00:43:22
он стоит на земле не буду я здесь сейчас
00:43:24
выравнивать это не тема нашего
00:43:25
сегодняшнего урока
00:43:26
то есть я добавляю сюда модельку 3d
00:43:31
модельку также я добавляю здесь
00:43:34
партнерство на нем п п то есть я
00:43:36
добавляю анимационный bluprint теперь
00:43:38
когда я нажимаю клавишу play
00:43:39
у нас мы уже видим что наша камера
00:43:41
создалась в посередине посредине вот
00:43:44
этого самого персонажа отлично на что
00:43:47
нам необходимо сделать дальше дальше нам
00:43:50
необходимо ну во-первых зайти в класс
00:43:54
default и у нас здесь есть такая галочка
00:43:56
как you scan шел и rotation яуза что она
00:43:58
отвечает она
00:44:00
в частности есть мы хотим создать
00:44:02
классическое управление от третьего лица
00:44:04
то она как бы она отвечает за то как бы
00:44:08
это сказать давайте мы более позже
00:44:11
сейчас про нее посмотрим она отвечает за
00:44:13
то управление стандартный который есть у
00:44:15
нас в игре это управление который есть
00:44:17
например we were the san andreas то есть
00:44:19
вот в gta san andreas и во многих других
00:44:21
играх
00:44:22
морды могли встречать такое в такое
00:44:24
управление когда вы мышкой крутите и
00:44:26
персонаж сразу автоматически
00:44:28
поворачивать как бы вы сразу мышкой
00:44:31
поворачивайте персонажи не поворачивайте
00:44:33
камеру и можете камеру поворачивать и
00:44:35
потом персонаж ходит только вперед
00:44:36
камеры мы с этим сейчас познакомимся
00:44:40
намного немного поближе да но пока я эту
00:44:42
галочку убираю поскольку мы создаем
00:44:44
классического персонажа третьего лица
00:44:46
что нам нужно дальше мы можем сейчас
00:44:49
открыть вот этой мы можем лишь нам
00:44:51
необходим компонент камера бум и нам
00:44:52
необходимо сама камера отлично то есть
00:44:55
100 я беру я беру от компонент я еще
00:44:57
здесь так и называется follow камера так
00:45:02
или камера бум камера нет так так платье
00:45:10
вот так сейчас найду этот компонент
00:45:12
нет и splendor моя ошибка да пусть он
00:45:15
так и называется arm это вот как раз таки то рука на
00:45:18
который то сэлфи палка на которой
00:45:20
держится камера также нам необходимо
00:45:21
добавить
00:45:22
самую камеру я нажимаю здесь вот таким
00:45:25
образом и камера в принципе
00:45:26
автоматически здесь добавилась на выбор
00:45:28
она была от рука она добавилось дочерним
00:45:30
элементом вот spring arm отлично нашим
00:45:32
компаниям наш массив я нажимаю play и
00:45:34
как мы сейчас можем видеть у нас камера
00:45:36
уже не в центре персонажа она у нас уже
00:45:39
здесь
00:45:40
что нам дальше нужны нам теперь
00:45:45
необходимо установить именно управление
00:45:48
как раз таки и компонентом spring or это
00:45:50
важно то есть на 3 нас есть камера
00:45:52
которая может так давайте собью у нас
00:45:59
есть камера который может вот так вот
00:46:00
вращаться доведите что она может
00:46:02
вращаться у нас есть персонаж который
00:46:04
может вращаться носить компонент
00:46:05
спринтером здесь нам нужно чтобы у нас
00:46:07
как раз таки крутился вот этот компонент
00:46:09
спринтером это то что нам нужно поэтому
00:46:12
я захожу вот в этот компонент и здесь
00:46:15
ставлю галочку и usb аанг анджелы
00:46:16
rotation
00:46:17
вот таким образом дальше нам необходимо
00:46:19
еще зайти в карцер момент и найти здесь
00:46:24
такую такую галочку как сейчас вот такую
00:46:30
галочку как aren't they shantou момент
00:46:33
то есть если эту галочку не поставить то
00:46:35
мы будем как бы бегать персонажем прыгай
00:46:38
все делать но он был всегда повёрнут в
00:46:39
одну сторону этот эта галочка
00:46:41
она будет автоматически поворачивать
00:46:43
лицо персонажа в сторону его бегать это
00:46:46
очень важная вот эта галочка и однако
00:46:47
создать коры и на что значит ли здесь
00:46:49
вот our winter утаишь над умом от это
00:46:51
очень важно поставить эту галочку
00:46:53
отлично что нам нужно дальше создать
00:46:57
дальше нам необходимо добавить эти самые
00:46:58
input и о которых мы с вами
00:47:00
разговаривали
00:47:01
поэтому я опять же я не мог их не
00:47:03
удалять но опять же не сказались
00:47:04
полностью с нуля поэтому я захожу в
00:47:07
настройки я захожу в input выбираю нас
00:47:11
есть экшн не пинг и xs небе вообще
00:47:14
разница значит action не pink это такие
00:47:17
события которые могут быть либо да либо
00:47:19
нет то есть мы нажали
00:47:20
мы как бы нажали данные нажали
00:47:23
если мы или мы не нажали то есть или дар
00:47:26
или нет вот это exec небе этот параметр
00:47:29
он на самом деле это плавающий параметр
00:47:33
вот например этом скорость и rigos
00:47:35
автомобиля либо поворот руля автомобиля
00:47:37
до если вы играете на клавиатуре вы
00:47:39
можете нажать допустим просто либо
00:47:40
вправо либо влево и либо просто ничего
00:47:42
не нажимать и ваша любимый я здесь либо
00:47:44
влево или вправо там до либо прямо
00:47:46
неважно вот но если вы подключите руль
00:47:49
или джойстик да с какой который имеет
00:47:51
аналоговые стики соответственно там вы
00:47:53
можете немножко повернуть и тогда в этом
00:47:55
случае вот этот параметр он будет
00:47:57
выдавать не просто дании до нажата
00:47:59
клавиша либо отжата алон помимо нажатия
00:48:01
клавиши будет еще отдавать
00:48:03
значение насколько эта клавиша сильно
00:48:05
нажата да не просто там 1 или минус 1 а
00:48:08
там 0501 короче мы сейчас к этому
00:48:11
подойдем защита
00:48:12
давайте наверное с пропишем все ивенты
00:48:15
которые нам сейчас нужны или не все
00:48:17
давайте насчет давайте начнем сначала с
00:48:18
камер
00:48:19
а в вест на самом деле action над этими
00:48:23
pink нам сейчас не нужен нам нужно как
00:48:25
раз таки вот это плавный параметр
00:48:26
поэтому что и был я беру здесь exxon
00:48:29
mobil и что он есть здесь надо во первых
00:48:31
мне нужно создать такую во первых нужно
00:48:37
создать и такой момент как чёрным то
00:48:40
есть такой такое событие как
00:48:42
кирэн на самом деле его можно назвать
00:48:43
как угодно я просто беру те названия
00:48:45
которые исключат которые используются в
00:48:47
движке который всем уже привычной на
00:48:49
черном должны нам нужно ось x то есть
00:48:53
именно вот грубо говоря вот это вот
00:48:56
события терн она будет отвечать за
00:48:58
поворот персонажа ну опять-таки персонаж
00:49:01
может поворачивать только вправо-влево
00:49:03
да вот по в разный статус он не вверх
00:49:05
внизу не может идти как бы по воздуху
00:49:07
вверх до или там куда то вниз поэтому и
00:49:10
отвечать за это будет маус x
00:49:13
давать я сейчас на что здесь маус x вот
00:49:16
мы видим затем
00:49:17
x раз таки по горизонтали когда мы
00:49:19
мышкой крутим вот таким образом по
00:49:21
горизонтали здесь нам нужно поставить
00:49:23
единичку хорошо и так же нам здесь для
00:49:27
мышки нужно будет ещё одно свойство в
00:49:30
частности look up
00:49:31
я пишу вот таким образом look of и здесь
00:49:36
как можно догадаться нам нужно маус y
00:49:41
вот мы здесь сейчас видимо ось y я
00:49:45
нажимаю сейчас нам эрик отлично ну как
00:49:48
слово здесь mouse игорь необходимо
00:49:50
поставить минус 1 и на самом деле здесь
00:49:52
как бы если поставить один это будет
00:49:55
инвертированная мышь к да то есть знаете
00:49:57
некоторых играх есть кая настройка когда
00:50:00
вы можете когда вы можете как бы вы
00:50:04
мышкой поворачиваем нож кубышку как бы
00:50:07
вверх как подсовываете да и персонажи
00:50:11
как бы смотрит вниз или есть наоборот
00:50:13
когда вы мышкой поворачиваете мышку как
00:50:16
бы сунете вверх сунете вперед и персонаж
00:50:18
смотрит вверх взята из отвечает за и и
00:50:21
как вырезаю invert мышки да по умолчанию
00:50:25
у нас здесь должно быть минус а
00:50:27
если вы хотите вы можете изменить
00:50:28
параметры отлично то есть мы здесь
00:50:30
прописали вот как раз таки управления и
00:50:33
к этому управлению здесь еще необходимо
00:50:36
к этому управление еще необходимо
00:50:39
написать сам код в частности код у нас
00:50:41
будет выглядеть следующим образом
00:50:43
во-первых я вызываю здесь два ивента я
00:50:46
вызываю во-первых винт вот таким образом
00:50:50
вот у нас он есть event тёрн и также
00:50:53
look up тоже так же у нас есть вариант
00:50:56
look up
00:50:57
и что мы сейчас делаем я на ивент терн
00:51:00
повешу такую функцию как от контроллера
00:51:03
т.н. я взял это у нас как раз таки
00:51:05
поворот контроллера по горизонтали
00:51:08
поэтому я здесь пишу ндс контроллер
00:51:14
rotation я у input вот таким образом и
00:51:17
вот это целью я подключаю вот сюда то
00:51:20
что вы понимали это в илью она может
00:51:22
быть как бы плюс-минус да то есть оно не
00:51:24
он и плавающие да то есть на сам мы
00:51:28
можем поворачивать мышкой резко или мы
00:51:30
можем поворачивать мышкой как бы
00:51:31
медленно да и соответственно ну как бы
00:51:35
зависимости от поворота и также вот на
00:51:38
and look of нам необходимо вызвать по
00:51:40
сути такой же самый fn столько уже не
00:51:43
yall apeach я здесь пишу
00:51:45
давайте даже не так давайте я выслал
00:51:47
только один ивент сейчас я 8 composite я
00:51:50
нажимаю play и смотрите то есть я не
00:51:52
могу поворачивать вверх-вниз я могу
00:51:54
крутить только в левов провода то есть
00:51:56
мы видим вот это у нас как раз такими
00:51:58
мышкой я мышкой сейчас двигаю по оси x
00:52:02
по оси x до по горизонтали и мы видим
00:52:04
что у нас уже есть персонаж и уже в этом
00:52:06
персонаже мы можем смотреть в разные
00:52:08
стороны у нас работают в разные стороны
00:52:10
теперь когда я создам здесь
00:52:13
такую же функцию этот контроллер
00:52:18
rotation peach вот таким образом я
00:52:21
подключу его вот сюда нажимай у компа я
00:52:24
нажимаю сейф захожу и мы видим что вот
00:52:27
все у нас уже есть управление мы уже
00:52:29
создали с нуля персонажа и добавили в
00:52:31
частности управления полностью на мышку
00:52:34
да то есть мы вернемся сейчас в нашу
00:52:36
презентацию то мы уже добавили к
00:52:38
banned камера бум на blu принтах мы
00:52:40
добавили к миру мы камеру настроили на
00:52:42
управление мышкой
00:52:43
если нам осталось это движение настроить
00:52:46
на клавиши w и и здесь мы на самом деле
00:52:48
счет прыжки настроить поэтому я здесь
00:52:50
это самое здесь я могу закомментировать
00:52:53
что это нас камера просто я напишу что
00:52:57
это нас камера и что нам нужно сделать
00:52:58
дальше нам необходимо прописать
00:53:01
дополнительные input и
00:53:02
в частности нам необходимо создать такой
00:53:05
input в именно action то есть он либо да
00:53:08
либо нет как jump то есть это прыжок но
00:53:12
на самом деле это делать не обязательно
00:53:13
но давайте уж если мы взяли повторяет
00:53:16
стандарт тогда так я пишу здесь джан и я
00:53:20
здесь ищу
00:53:21
space вот у нас я выбираю здесь space
00:53:23
bar и по сути все да она у нас добавлено
00:53:27
теперь в
00:53:28
exec небе мне необходимо добавить
00:53:30
во-первых такую функцию карт move move
00:53:36
forward
00:53:37
вот таким образом move forward w пишет
00:53:43
вот форвард пишите через вот так и
00:53:45
сейчас что нам необходимо здесь добавить
00:53:48
мне здесь нужно добавить две клавиши
00:53:50
это w и это с то есть w это вперед с это
00:53:54
назад и мы сейчас посмотрим как эта
00:53:56
работа есть я пишу здесь w выбираю ищу
00:54:00
здесь где у меня вот клавиша w
00:54:02
добавляю еще одну клавишу вот сюда пишу
00:54:05
здесь с нахожу здесь клавишу с и что и
00:54:08
дело смотрите здесь у нас есть скейл то
00:54:11
есть у нас при нажатии может быть от по
00:54:14
умолчанию она 0 когда мы ничего не
00:54:15
нажимаем но когда нажимаем w
00:54:17
у нас значение идет в единичку либо если
00:54:20
у нас будет stick
00:54:21
если мы сюда допустим stick какого-то
00:54:23
джойстик либо педаль какой-то руля
00:54:26
атасов автомобильного руля спи далее
00:54:28
подключим и будем нажимать плавно педаль
00:54:30
то у нас получается что это будет газ а
00:54:33
чтобы вот это с было
00:54:36
чтобы она особо с отвечала за
00:54:38
отрицательное значение что мы могли
00:54:40
ходить назад я пишу здесь минус единицу
00:54:43
да вот таким образом это выглядит это у
00:54:46
нас будет уже движения вперед-назад и
00:54:47
последнее что нам нужно здесь добавить
00:54:49
это еще такой функции как он лайн такая
00:54:54
функция как му райт сюда необходимо
00:54:57
добавить такие клавиши как эй иди да я
00:55:01
здесь беру эй и еще один это я выбираюсь
00:55:05
есть где
00:55:06
вот таким образом эй иди и в частности
00:55:10
эй нужно здесь поставить нас минус
00:55:11
единицу отлично то есть что у нас сейчас
00:55:15
получается что мы добавили вот все что
00:55:18
нам нужно не будем на этом
00:55:19
останавливаться давайте создадим давайте
00:55:22
еще прыжки создадим поэтому я здесь ищу
00:55:24
такую функцию как джан action and jump и
00:55:27
я здесь вызываю такие винты как опять же
00:55:31
тоже как вот такую функцию на нажатие
00:55:34
как джан и на визит как стоп стоп
00:55:40
джампинг да то есть когда она
00:55:42
мы отпускаем мы апельсин перестаем это
00:55:45
самое делать да и я также закомментирую
00:55:48
что это у нас прыжки вот таким образом
00:55:51
теперь я нажимаю кампана нажимаю сейф и
00:55:53
наш марк леви и увидим что вот мы только
00:55:56
что уже создали персонажа абсолютно
00:55:58
полностью с нуля до то есть полностью
00:56:00
весь год написали самостоятельно и он у
00:56:02
нас уже у нас уже работает камера мы
00:56:04
можем двигать камерой и мы можем уже
00:56:06
прыгать хорошо отлично я отпускаю и
00:56:09
последнее что нам нужно создать это
00:56:11
нужно создать управление вперед назад
00:56:12
влево вправо поэтому здесь нужно вызвать
00:56:15
но сначала такую функцию как get как get
00:56:19
a rotation вот таким образом такой
00:56:24
воздуха get consultation здесь можно
00:56:26
выбрать в принципе break брейк вот так
00:56:29
но я так не буду делать я просто возьму
00:56:30
шприц рок-н дальше необходимо создать
00:56:34
такую функцию как
00:56:35
мейк вот то-то .
00:56:39
вот таким образом подключить опять же то
00:56:42
есть мы должны нас интересует
00:56:44
исключительно сейчас ось за
00:56:45
то есть мы должны и наш персонаж должен
00:56:48
идти а как бы от контроллера только по
00:56:51
ну как бы мы управляем им только по
00:56:54
горизонтали мы не можем как бы сказать
00:56:56
что персонаж шел вверх данное можем
00:56:58
камеру по направить вверх и скрипишь на
00:57:01
персонаж по воздуху чтобы шел вверх по
00:57:03
этому нас интересует исключительно ось z
00:57:05
после чего я здесь вызывают 2 2 функции
00:57:09
как форм
00:57:11
так форвард вектор get форвард вектор i
00:57:16
get white виктор do i get right вектор
00:57:20
что я делаю дальше после этого я вызываю
00:57:26
как раз таки наши винты винт я могу
00:57:29
прямо сюда скопировать мой форвард я
00:57:31
копирую нажимаю правой кнопкой мыши
00:57:33
вызываю здесь move forward
00:57:36
и точно также здесь вызываю здесь
00:57:39
копируем of light вот таким образом
00:57:42
вызываю здесь мув white точно также
00:57:45
event вызывай move right
00:57:47
и что и делаю дальше дальше мне
00:57:50
необходимо вызвать такую функцию как и
00:57:53
да да бум and input вот таким образом не
00:57:58
надо будет поставить слову вызвать 2
00:58:00
одинаковых функций поэтому я нажимаю
00:58:01
kontrol ц и номера здесь control vi и
00:58:04
подключаю все элементарно просто в илью
00:58:06
я подключаю в илью вот это вот это
00:58:09
направление куда бежать до направляю в
00:58:11
world direction точно так же я здесь
00:58:14
подключаю на исполнение подключаю
00:58:16
направлении и подключаю скорость в
00:58:19
результате все таким образом я это могу
00:58:21
сейчас закомментировать таким образом я
00:58:24
вот эта могу сейчас закомментирую что
00:58:26
это у нас получается движение давайте
00:58:35
просто движением бы на сейчас здесь урок
00:58:37
не пабло принтом я просто так взял и
00:58:39
сейчас смотрим теперь я нажимаю клавишу
00:58:42
play и смотрим у нас персонаж может уже
00:58:45
бегать абсолютно правильно прыгать вот
00:58:48
все у нас работают я могу бегать я могу
00:58:51
как угодно прыгать вот я упал так же я
00:58:54
только что забыл что устанавливая вот
00:58:56
эту галочку
00:58:57
было веб-камер вы могли не увидел на
00:58:58
самом деле это достаточно я все озвучат
00:59:01
словами но тем не менее вот смотрим вот
00:59:02
эта галочка называется entertainment да
00:59:06
вот это новый она достаточно важной если
00:59:08
бы моя эту галочку не поставили я
00:59:10
нажимаю клавишу play the наш персонаж
00:59:12
всегда бы им падай вот наш персонаж
00:59:15
всегда бы куда бы мы ни бежали он бы
00:59:17
просто не поворачивался поэтому это
00:59:20
достаточно важная галочка ее нужно
00:59:22
поставить ну и также что я забыл вам еще
00:59:24
сказать номере я еще не до показал это
00:59:27
то что будет если если поставить вот
00:59:30
здесь галочку сессии не убирай
00:59:31
соответственно будет управления чем-то
00:59:33
похоже на jetta san andreas то есть
00:59:37
давайте вот то есть смотрим то есть у
00:59:40
нас получается что я поворачиваю сейчас
00:59:42
камерой да и у нас у меня параллельно
00:59:44
вместе с камеры поворачивается и
00:59:46
персонаж соответственно есть я бегу
00:59:48
назад как-то в попу и
00:59:50
и бегу вправо-влево у нас сейчас не
00:59:52
корректно отображаются анимации потому
00:59:54
что у нас сейчас недостаточно сейчас
00:59:55
анимации именно под управления то
00:59:57
которое было настроено для того чтобы у
00:59:59
нас сейчас была анимация
01:00:01
века назад и там в бегали по диагонали
01:00:03
нам необходимо добавить и дополнительные
01:00:06
анимации то есть там нужно еще больше
01:00:07
анимаций сейчас носить только анимация
01:00:09
вперед поэтому нас персонаж бегает
01:00:11
только вперед но вы теперь видите как
01:00:13
можно создать вот такое управление тоже
01:00:16
да то есть за него отвечает такая
01:00:18
галочка вот как здесь в класс дефолт как
01:00:20
из консоли rotation я
01:00:22
если я эту галочку забираю то теперь у
01:00:25
нас вот мы можем камеры крутить но у нас
01:00:27
персонаж не будет поворачиваться да вот
01:00:31
таким образом на этом собственно все на
01:00:33
этом мы только что paбoчим по-быстрому
01:00:35
разобрали как создается персонаж именно
01:00:38
на пду принтах и для того чтобы как раз
01:00:40
таки когда мы будем сейчас создавать на
01:00:42
языке программирования си плюс плюс для
01:00:45
того чтобы мы понимали вообще что мы
01:00:47
делаем и в принципе понимали что мы
01:00:48
будем делать вот примерно то же самое
01:00:50
что мы будем делать вот сейчас здесь
01:00:54
продолжаем и после того как мы сейчас
01:00:57
создали персонажа от третьего лица
01:01:00
абсолютно с нуля на blu принтах сейчас
01:01:03
мы проделаем то же самое
01:01:04
и плюс плюс а при этом имея в памяти
01:01:07
только что то что мы делали на blu при
01:01:09
так нам будет легче сейчас понять вам
01:01:12
будет легче сейчас понять что мы делаем
01:01:14
на языке си плюс плюс у меня сейчас
01:01:16
точно также открытый открыто окно
01:01:18
создания нового проекта я выбираю что
01:01:20
это у нас пустой естественно проект я
01:01:23
нажимаю далее дальше здесь я меняю из
01:01:26
глубин тов на си плюс плюс хотя в пустом
01:01:28
проекте здесь разницы особо и вообще
01:01:30
никакой нет дальше я оставляю все
01:01:33
настройки по умолчанию здесь без
01:01:35
стартового контента путь пусть у меня
01:01:37
будет такой я нажимаю клавишу курит
01:01:39
project сейчас у нас сгенерируется файлы
01:01:42
а после того как у нас открылся наш
01:01:45
проект после того как он загрузился у
01:01:46
нас также здесь открылась visual studio
01:01:49
она сейчас еще продолжает немножко
01:01:51
загружаться а здесь мы проделаем в
01:01:53
начале то же самое что мы делали и
01:01:55
раньше здесь у нас автоматически bass
01:01:59
гейма сгенерирован но по сути у нас
01:02:01
проект тот же самый что у нас был и на
01:02:03
blu принтах значит первое что нам нужно
01:02:06
сделать это создать свой мод я создаю
01:02:09
здесь какой-нибудь гейм мод для того
01:02:14
чтобы указать персонажа по умолчания
01:02:16
создает здесь сейчас гейм мод называю
01:02:18
что это будет май
01:02:22
майки мод вот таким образом сохраняясь
01:02:26
теперь я захожу в настройки я вы
01:02:29
открываю прочих сервис и здесь в
01:02:32
настройках я сейчас укажу этот гейм мод
01:02:34
как основной и мод для нашего проекта я
01:02:38
захожу в maps and modules выбираю здесь
01:02:40
май гей мод как основной гей мод
01:02:43
сохраняюсь и сейчас и сейчас нам нужно
01:02:48
создать нашего персонажа именно на был
01:02:51
при именно на языке си плюс плюс
01:02:53
создавать мы его будем по той схеме о
01:02:56
которой мы уже сегодня говорили то есть
01:02:57
мы от чистого класса на си плюс плюс 1
01:03:00
следуем ся и создадим наш свой наш свой
01:03:04
класс тоже создано с помощью языка си
01:03:06
плюс плюс и потом после этого мы еще раз
01:03:09
от нашего класса на си плюс плюс в
01:03:10
котором будет вся логика мы еще раза
01:03:13
последуем ся уже классом на blu принтах
01:03:15
для того что
01:03:16
b вот здесь как раз таки объединить всю
01:03:18
мощность как раз таки скорости си плюс
01:03:20
плюс
01:03:21
и удобство был принтов соответственно
01:03:24
для того чтобы создать вот этот класс на
01:03:27
си плюс плюс мне необходимо нажать
01:03:29
клавишу file
01:03:30
дальше здесь выбрать мусе плюс плюс
01:03:33
класс у нас открывается окно в котором
01:03:35
мы можем выбрать от карту от какого
01:03:37
класса мы хотим от наследоваться здесь
01:03:39
есть можно ни от какого не наследоваться
01:03:41
здесь можно наследоваться от эктора
01:03:43
можно наследоваться от павла можно следа
01:03:45
от кейт рада
01:03:46
здесь есть перечень основных классов
01:03:48
наиболее по часто используемых и также
01:03:50
здесь если нажать галочку здесь не можем
01:03:52
и перечень абсолютно всех классов на си
01:03:54
плюс плюс от которых мы можем здесь от
01:03:56
наследоваться и получите функционал
01:03:58
сейчас не интересует корректор я его
01:04:02
выбираю и нажимаю клавишу next дальше в
01:04:04
следующем окне нам предлагается указать
01:04:06
по его указать вас вот этот путь и где
01:04:10
будет будут находиться наши файлы на си
01:04:12
плюс плюс и также указать название для
01:04:15
того чтобы нам было проще сейчас
01:04:16
понимать я предлагаю вот просто
01:04:19
скопировать вот это название
01:04:20
third-person корректор степи
01:04:21
я просто копирую и вставляю вот сюда
01:04:25
после того как я сюда вставил вот это
01:04:27
название
01:04:28
а я здесь ничего сейчас не меняю путь
01:04:30
меня меня устраивает по-умолчанию и я
01:04:32
нажимаю клавишу q ведь класс если сейчас
01:04:35
необходимо подождать а пока отдела м4
01:04:38
вместе с visual studio сгенерирует всей
01:04:41
необходимой для нас файла в результате
01:04:43
нам нужно будет два файла . себе пяточка
01:04:46
из сейчас мы к этому подойдем время
01:04:48
компиляции может занять время создание
01:04:51
вот этого нового класса может занять там
01:04:54
от 10 секунд может до минуты это зависит
01:04:56
только от мощности вашего конкретного
01:04:58
компьютера что же сейчас нам нужно
01:05:01
подождать а вот только что у нас все
01:05:04
загрузилось и если мы сейчас откроем вот
01:05:06
мы здесь видим проект который именно наш
01:05:09
unreal engine 4 сам движок и вот здесь
01:05:11
мы видим май project то есть это
01:05:13
название нашего проекта на благо
01:05:14
которого который мы только что создали и
01:05:17
здесь в папки соурс в папке соус есть
01:05:21
папка мой project она была
01:05:22
это папка с названием нашего проекта
01:05:24
если мы ее откроем то здесь мы можем
01:05:27
найти 20 файла как торт person корректор
01:05:30
. .
01:05:32
the sea baby не надо это просто название
01:05:34
такое вот здесь у нас есть . файл с
01:05:38
названием нашего персонажа . степи и
01:05:40
с названием нашего персонажа . эй это у
01:05:43
нас соответственно файл заголовочный
01:05:46
файл и файл реализации это уже не
01:05:48
относится и тоже не относится к движку
01:05:51
unreal engine 4 это уже основа работы с
01:05:53
языком программирования си плюс плюс к
01:05:55
слову естественно для того чтобы
01:05:57
понимать что я делал что сейчас
01:05:59
происходит на языке си плюс плюс
01:06:00
необходимо иметь хотя бы базовые навыки
01:06:02
я сейчас не буду очень сильно
01:06:04
останавливаться на том как создать общее
01:06:08
как работать с языком си плюс плюс по
01:06:10
той причине что если вы не разбираетесь
01:06:12
это не знает язык си плюс плюс то я вам
01:06:15
там за несколько минут не смогу ничего
01:06:17
объяснить то есть я вам не смогу вас
01:06:18
научить и использовать язык си плюс плюс
01:06:20
за несколько минут а если вы уже знаете
01:06:22
на как работать с языком си плюс плюс то
01:06:25
вам нечего объяснять вы сами все
01:06:26
понимаете сейчас точно так же вот здесь
01:06:29
в вижу вот сейчас в нашем самом движке у
01:06:33
нас здесь папки си плюс плюс классы в
01:06:37
папке мой прочих у нас появился как раз
01:06:39
таки наш класс торт person корректор си
01:06:42
пи пи
01:06:43
а если мы сейчас зайдем внутрь нашего
01:06:45
гей мода для того чтобы установить
01:06:47
персонажа по умолчанию мы здесь принципе
01:06:50
в на вкладке дефолт дефолт по он класс
01:06:53
мы в принципе можем сейчас здесь выбрать
01:06:55
нашего торт корзинки ректор и pepe
01:06:57
но опять же мы сейчас следуем вот такой
01:07:01
логике то есть мы сейчас создали только
01:07:04
что от наследовались от чистого
01:07:06
корректора на си плюс плюс вот он у нас
01:07:09
есть этот класс вот у нас это его
01:07:11
заголовочный файл и вот это файл его
01:07:13
реализации да то есть вот это наш
01:07:15
персонаж на языке си плюс плюс и вот
01:07:20
сейчас мы его здесь видим да вот это наш
01:07:24
класс и сейчас нам нужно от него еще
01:07:26
разок наследоваться
01:07:27
уже на blu принтах для того чтобы как
01:07:29
раз таки соединить вот эту мощность был
01:07:31
принтов и си плюс плюс месте а поэтому
01:07:34
что я сейчас делаю я перехожу
01:07:35
сейчас к нашему только что созданному
01:07:37
власти плюс плюс close to the person
01:07:39
корректор степи я нажимаю правой кнопкой
01:07:41
мыши и выбираю здесь кроить bluprint
01:07:44
класс based on the распашонка ректор степи то
01:07:47
есть я создаю bluprint класс
01:07:49
татьяна следует сейчас от наследуют от
01:07:52
этого нашего си плюс плюс класса на углу
01:07:54
принтах соответственно здесь спрашивает
01:07:57
куда мы хотим сохранить в какую папку на
01:07:59
здесь папок у нас просто на папку
01:08:01
контент мы сейчас еще ничего не
01:08:02
создавали и давайте я сейчас вернусь
01:08:05
презентацию и просто назву также как мы
01:08:08
его называли вот здесь презентации то
01:08:11
есть я назову нашего персонажа на
01:08:13
bluprint а она bluprint ах как торт
01:08:15
каждый корректор .
01:08:16
просто пи пи до и нажимаю credit глубин
01:08:19
класс у нас сразу создался bluprint
01:08:23
класс и его же мы как раз таки в нашем
01:08:26
гей моде и установим как персонажа по
01:08:29
умолчанию то есть у нас получается что
01:08:33
вот этот торт картонки ректор б.п.
01:08:35
он у нас и будет персонажем по умолчанию
01:08:38
он будет написано bluprint арк но при
01:08:40
этом он усик в себя в берет всю ту
01:08:42
логику о которой будет написано с
01:08:45
использование закрасив плюс плюс то есть
01:08:46
он все это унаследует и соответственно
01:08:50
сейчас я в гейм один в дефолт по он
01:08:52
классе выбираем наш именно торт торт он
01:08:54
корректор т.п.
01:08:55
вот таким образом сейчас я могу уже
01:08:57
сохранится и сейчас когда я нажимаю
01:08:59
клавишу play мы уже видим что мы уже не
01:09:01
летаем у нас получается пустой персонаж
01:09:04
у нас там нету камеры соответственно
01:09:06
камера создается в 0 координат то есть
01:09:09
по центру персонажа
01:09:10
а что мы делаем дальше так я хочу чтобы
01:09:13
он у меня во первых открывалась еще в
01:09:14
новом окне
01:09:15
вот так отлично сейчас мы вот видим вот
01:09:19
этот персонаж два дерева не буду сейчас
01:09:20
закрывать и мы сейчас переходим уже к
01:09:23
нашему классу на я спал на языке написан
01:09:27
на языке си плюс плюс
01:09:28
и мы сейчас начнем его создавать то есть
01:09:31
нам сейчас здесь на языке си плюс плюс
01:09:34
необходимо будет все вот это красное что
01:09:36
у нас есть все необходимо вот это все
01:09:38
добавить значит
01:09:41
у нас как я уже говорил есть
01:09:42
заголовочный файл у нас есть файл
01:09:44
реализации для начала прежде чем что то
01:09:48
сюда добавлять нам необходимо подключить
01:09:50
все необходимые для нас библиотеки то
01:09:52
есть на языке си плюс плюс для того
01:09:54
чтобы работать с какими-то библиотеками
01:09:56
их необходимо подключить у нас здесь
01:09:59
такая движок такой модульный он
01:10:02
использует
01:10:03
и загружает только то что данными нам
01:10:05
необходимо поэтому когда мы создали от
01:10:08
наследовались от базового класса
01:10:09
корректор у нас только наследуется его
01:10:12
функционал то есть есть нам надо
01:10:14
компонент камера бум есть нам нужна
01:10:16
камера какие-то другие компоненты нам
01:10:18
необходимо их подключить где можно их
01:10:22
подключать вообще в языке си плюс плюс
01:10:24
их можно подключать как в заголовочные
01:10:27
файлы то есть вот здесь так и файле .
01:10:29
степи
01:10:31
давайте сейчас я расскажу об этом
01:10:35
подробнее то есть если мы подключаем эти
01:10:39
файлы в заголовочной файле
01:10:40
то здесь обязательно нужно помнить чтобы
01:10:43
это подключение было чтобы все файлы
01:10:45
подключались сверху то есть что вот этот
01:10:49
класс чтобы ты то подключение пирсинг
01:10:52
директор си пи пи . чинар и едет .
01:10:55
то есть вот это название нашего
01:10:56
персонажа . чинар a и d .
01:10:59
и оно должно быть всегда внизу то есть
01:11:01
если мы что-то подключим вот ниже этого
01:11:04
то у нас и но работать таким образом не
01:11:06
будет но вообще движок в нам всегда
01:11:11
рекомендует подключать все библиотеки
01:11:13
именно в cepeдинe файле
01:11:15
это важно поэтому если вы по каким то
01:11:19
причинам хотите подключать в
01:11:21
заголовочной файле мы сейчас это
01:11:23
посмотрим то это необходимо делать
01:11:25
именно именно выше то есть у нас нужно
01:11:28
всегда делать так чтобы но вот этот и
01:11:31
generated .
01:11:32
речь подключения чтобы она была всегда
01:11:33
самого низа под сколько у нас будут
01:11:35
ошибки давайте я сейчас покажу как это
01:11:38
будет происходить ну давайте в первую
01:11:40
очередь подключим такой компонент как
01:11:42
камера компонент поэтому я здесь
01:11:45
подключаю библиотеку я здесь пишу это
01:11:48
include здесь выбираю кавычки и здесь я
01:11:53
хочу пить подключить сейчас выбрать
01:11:54
здесь камера слэш камера компонент
01:11:59
камера вот камера компонент .
01:12:04
речь вот таким образом то есть смотрите
01:12:06
сейчас я подключил вот как раз таки
01:12:08
заголовочный файл выше так как должно
01:12:11
быть то есть у нас вот этот то есть вот
01:12:13
название нашего персонажа . тебе
01:12:15
нравится . речь у нас находится ниже
01:12:17
поэтому я сейчас нажимаю давайте я хотел
01:12:20
нажать комбинацию клавиш ну давайте что
01:12:21
вы сразу понимали это происходите
01:12:23
нажимаю сборка и собрать решение либо
01:12:26
шорткат то есть быстро нажатие клавиш
01:12:29
control + shift + б я нажимаю сейчас
01:12:32
собрать решения и у нас не должно быть
01:12:35
никаких ошибок то есть нужно подождать и
01:12:37
здесь секунд десять показ компилируется
01:12:39
наш вот это наше вот этот добавление и
01:12:42
соответственно с никаких ошибок сейчас
01:12:44
быть не должно мы компилирую чтобы для
01:12:46
того чтобы скомпилировать си плюс плюс
01:12:48
класс да у нас видите все успешно мы
01:12:50
нажимаем либо здесь собрать решению
01:12:52
visual studio
01:12:53
либо мы в движке должны нажимать вот эту
01:12:55
клавишу компанию на самом деле разницы
01:12:58
нет оно должно работать одинаково хорошо
01:13:01
как здесь как здесь но я предпочитаю
01:13:03
работать visual studio так вот я сейчас
01:13:06
чисто для примера показывает что я вот
01:13:08
подключил вот эту библиотеку выше но
01:13:10
если я нажму control x так сейчас вырежу
01:13:13
его отсюда да и сейчас подключу вот это
01:13:17
ниже вот этого файла она может выдать
01:13:19
ошибку то есть здесь я женой control
01:13:22
shift бит давайте посмотрим ещё раз у
01:13:23
нас пошла компиляция сейчас насколько я
01:13:26
знаю сейчас должно выдать ошибку да то
01:13:28
есть вы видите что у нас появилась
01:13:29
ошибка то есть это важно при подключении
01:13:31
заголовочный файл необходимо что вот эта
01:13:34
точка череды . речь подключения чтобы
01:13:36
она была в самом низу это важно но если
01:13:39
мы посмотрим во все есть мы будем
01:13:42
смотреть на те классы которые созданы
01:13:44
epic games м да тут который есть движке
01:13:46
и в принципе в документации советует
01:13:49
всегда подключать
01:13:50
ли отёки в степи пифа или поэтому я вам
01:13:53
показал что можно делать вот здесь но по
01:13:55
сути не нужна и сейчас я иду вот сюда в
01:13:58
степи файл и здесь уже разница нет я
01:14:01
здесь просто снизу подключая камеру
01:14:02
компонент вот эта камера камера
01:14:04
компонента это мы подключаем библиотеку
01:14:06
камеры что мы могли создавать камеру
01:14:08
отлично я сейчас скопирую вот это
01:14:11
include поскольку нам много чего нужно
01:14:14
будет сейчас подключить следующие
01:14:16
библиотека которую нам нужно будет
01:14:18
подключить это у нас капсюль компонент
01:14:21
поэтому я здесь пишу компонент и
01:14:26
компонент
01:14:28
так и нас интересует сейчас
01:14:32
капсюль компонент .
01:14:34
эй это нам нужно для работы с капсюль
01:14:37
компонента то есть это нам тоже нужно
01:14:38
подключить идемте дальше так к слову
01:14:43
если вы не знаете что вам нужно
01:14:45
подключить вот эти все библиотеки а то
01:14:47
есть они все есть технической
01:14:48
документации и найти их не составит
01:14:51
проблем не составит проблемы
01:14:53
защита мы подключили сейчас уже еще
01:14:55
капсюль компонент следующее что нам
01:14:58
нужно подключить это input компонент поэтому я так же
01:15:01
пишу здесь комп по не нас вот таким
01:15:05
образом компания и здесь пишу им под input компонент то
01:15:11
есть мы понимаем первым подключили
01:15:12
камера компонент это у нас камера дальше
01:15:15
капсюль компонент это у нас капсюль
01:15:17
компонент мысли все тут логично и даже я
01:15:19
бы мог здесь сейчас для вас это вот
01:15:21
таким образом что-то закомментировать да
01:15:23
то есть написать описание но в принципе
01:15:25
здесь все очень очевидно очень понятно
01:15:27
дальше input компонент это для того
01:15:29
чтобы работали вот эти наши самые
01:15:31
и так вот до ада у нас к слову нету
01:15:36
геймпадов но мы их еще сейчас мы сейчас
01:15:38
я это банка этому сейчас мы придем
01:15:41
значит вы подключили input компонента
01:15:45
потом следующее что нам нужно сейчас
01:15:48
здесь подключить следующее что нам нужно
01:15:52
сейчас здесь подключить это момент
01:15:55
компонент поэтому я здесь пишу также
01:15:58
include открываю здесь кавычки
01:16:01
здесь пишу здесь пишут game фреймворк и
01:16:05
через слеш пишу здесь
01:16:08
корректор момент компонент вот так мне
01:16:11
выскакивают подсказки у нас все
01:16:13
появляется так что у нас так и не понял
01:16:16
это у нас ошибка была да это у нас или
01:16:19
что это нас предыдущая ошибка да я
01:16:21
сейчас компилирую на пропадет вот мы
01:16:23
подключаем корректор момент компонента
01:16:25
то есть вот как раз таки то о чем мы
01:16:27
говорили вот здесь именно мувмент
01:16:30
компонент для работы с ним после этого я
01:16:33
подключаю контроллер то есть точно так
01:16:37
же я здесь пишу game free word и здесь
01:16:40
ищу контроллер друзья подключайтесь
01:16:42
контроллер и последнее что я сейчас
01:16:45
должен подключить это spring arm
01:16:49
компонент это тот компонента невидимая
01:16:51
рука которая будет держать
01:16:53
именно нашу камеру поэтому я здесь пишу
01:16:56
тоже game game фреймворк и здесь я ищу
01:17:00
так spring арам компонентом вот это все
01:17:04
что нам необходимо было подключить
01:17:06
сейчас я могу нажать control shift b и
01:17:09
скомпилировать у нас все должно работать
01:17:11
у нас никаких ошибок быть не должно так
01:17:14
давайте подождем
01:17:22
вот мы видим что у нас все
01:17:24
скомпилировалось на все работает отлично
01:17:26
давайте сейчас немножко прервёмся от
01:17:29
нашего написания на си плюс плюс
01:17:32
и естественно как мы делали с
01:17:35
как мы делали на blu принтах я сейчас не
01:17:38
буду нас сейчас урок по программе ru я
01:17:40
сейчас не буду
01:17:41
этом скачивать с сайта миксом из другого
01:17:43
сайта какие-то анимации создавать
01:17:45
анимации поэтому через the animation
01:17:46
чисто модельку 3d модель мы возьмем
01:17:48
стандартного манекена поэтому я сейчас
01:17:51
здесь нажимаю правой кнопкой мыши на
01:17:53
контенте
01:17:54
так нет вот здесь это new я здесь
01:17:57
выбираю точно так же это фьючер our
01:17:59
content pack дальше меня здесь
01:18:02
интересует пусть на меня не интересуют
01:18:05
на bluprint отеля на си плюс плюс у меня
01:18:06
кот не держит на код сейчас весь удалим
01:18:08
я здесь выбираю сейчас торт person вот
01:18:13
так нажимаю эту прочих так что у нас
01:18:17
добавилась да да насколько я вижу нас
01:18:19
добавилась и точно так же сейчас здесь я
01:18:22
удалю все не нужны вот эти maps
01:18:25
это нам не нужно то есть я удаляю я
01:18:26
оставляю только саму 3d модельку
01:18:28
персонажа так в принципе вот эта папка
01:18:31
third-person беппе нам не нужна и и
01:18:33
удаляем папка чего мы три нам не нужна и
01:18:37
и удаляем папка торт person тут просто
01:18:41
купите
01:18:42
она нам не нужна я ее удаляю дальше у
01:18:45
нас есть здесь папка манекен и как раз
01:18:48
таки здесь у нас есть анимации
01:18:49
стандартные до
01:18:51
текстуры нашего вот этого персонажа до
01:18:55
манекен а также мотива материалы и его
01:18:57
skeletal наш да то есть нам как раз таки
01:19:00
вот этот гель толмач сейчас нужен чтобы
01:19:02
заново не создавать и естественно нужно
01:19:05
помнить что нам когда мы добавляем вот
01:19:07
этот контент пакнам еще автоматически
01:19:09
добавились вот эти все
01:19:13
input и do автоматически добавились я
01:19:16
хочу есть сейчас почистить давайте я
01:19:18
удалю все что касается геймпада вот rs
01:19:21
et we are
01:19:22
это для виртуальной реальности нам это
01:19:23
не нужно это удаляю дальше все что нас
01:19:26
пишет здесь рейд look up right я удаляю терн write
01:19:30
это тоже удаляю это чувствительность для
01:19:33
джойстиков нас его их нет дальше я
01:19:36
открываю все здесь так маус y дальше
01:19:39
здесь маус x отлично и здесь я удаляю
01:19:42
для геймпада и в принципе она стрелочках
01:19:45
здесь можно и стрелочки тоже удалю я
01:19:47
удалю здесь дан
01:19:49
и я удалюсь есть акуна составляется sw
01:19:52
ему в райт тоже я здесь удаляю геймпад
01:19:55
вот то есть я сейчас
01:19:57
удалил все ненужные геймпад и я бы опять
01:20:00
же всему мог бы сейчас эти input и
01:20:01
вообще в принципе все полностью удалить
01:20:04
и написать их заново но зачем мы только
01:20:07
что их уже удаляли писали заново мы
01:20:09
видим здесь стандартный input и вот все
01:20:10
то что я делал на при создании на
01:20:12
принтах то есть нам нужен здесь прыжок
01:20:15
на space дальше движения в просмотр
01:20:19
вверх вниз с помощью мышки влево-вправо
01:20:22
тоже с помощью мышки .
01:20:24
смотрим с помощью мышки и так же у нас
01:20:27
есть движение вперед назад на w на с и
01:20:31
там вот murai то есть w и я считаю то
01:20:35
что мы то о чем мы здесь говорили вот
01:20:38
эти бинды данном они здесь нужны они нам
01:20:41
нужны как с использованием языка си плюс
01:20:44
плюс так и с использованием был принтов
01:20:46
то есть они я их сейчас здесь оставляю
01:20:48
они нам нужны то есть мы сейчас считаете
01:20:51
написали input и и нам нужна вот эта
01:20:54
моделька давайте сразу эту модельку и
01:20:56
установим вот сюда что я здесь хочу
01:21:00
сделать я хочу выбрать здесь мышь
01:21:03
в этом мыши я выставляю именно нашего
01:21:07
вот этого манекена так ну допустим что
01:21:10
он представил что он стоит ровно это нас
01:21:13
сейчас не так интересует я его выставляю
01:21:15
вот таким образом точно так же я ему
01:21:19
сейчас добавляю анимационный bluprint и
01:21:22
мы сейчас и мы сейчас имеем по сути все
01:21:25
также стандартного персонажа то есть как
01:21:28
мы можем смотреть из презентации то есть
01:21:29
у нас есть уже скелетон я ждал нас есть
01:21:31
капсюль компонент носить мужчин
01:21:33
компонент мы можем этот персонаж этого
01:21:36
персонажа использовать как наши вас как
01:21:38
и персонажа для игрока и также может
01:21:42
быть естественно размещен на уровне так
01:21:44
хорошо с этим мы разобрались и сейчас мы
01:21:48
начнем как рамы сейчас возвращаемся нашу
01:21:51
движок студию кости + + и сейчас будем
01:21:53
продолжать вот это все создавать так
01:21:58
хорошо мы возвращаемся в нашу visual
01:22:01
studio значит так сейчас мы только что в
01:22:04
чистом классе от которого нас от
01:22:06
наследовались то есть вот в этом классе
01:22:09
торт пирсинг череп тпп мы только что
01:22:11
подключили все необходимые библиотеки
01:22:14
потом это уже опять же относится к языку
01:22:17
программирования си плюс плюс
01:22:18
нам прежде чем что то создавать нам
01:22:21
нужно объявить то есть в заголовочной
01:22:23
файле мы объявляем название переменных и
01:22:26
методов а реализуя реализуемых в цпп
01:22:30
файле поэтому мы только что в степи
01:22:33
файле
01:22:34
предварительно подключили все
01:22:35
необходимые библиотеки которые нам
01:22:37
сегодня понадобятся дальше мы переходим
01:22:39
в заголовочный файл и сейчас в этом
01:22:43
заголовочной файле мы будем сейчас в
01:22:46
этом заголовочной файле мы будем
01:22:48
[музыка]
01:22:50
объявлять все наши нам необходимые
01:22:53
перемены но начать я хочу как раз таки и стал он
01:22:57
так давайте возьмем вернемся в конец
01:23:00
именно с системы блокировки движения при
01:23:02
смерть то есть я хочу прежде чем
01:23:04
создавать вот этот прежде чем создавать
01:23:06
сложные я хочу вам показать вообще как
01:23:08
работать с переменной дату как бы
01:23:10
забежим немножко вперед значит а чтобы
01:23:13
объявить переменную
01:23:14
нам нужно съесть написать стереотип
01:23:16
даете пуль и после чего нам нужно
01:23:21
написать ее название я ее называю здесь
01:23:24
beated вот этот префикс б его в углу
01:23:28
принтах видно не будет то есть так можно
01:23:30
писать этот префикс его в глубин так
01:23:35
видно не будет опять вот здесь мы эту
01:23:37
переменную объявили теперь для того
01:23:40
чтобы ее создать йонъине
01:23:42
ее необходимо еще проинициализировать
01:23:45
слову
01:23:46
давайте сейчас это сделаем вот сейчас мы
01:23:50
находимся то сейчас я это все делаю в
01:23:53
конструкторе да сейчас я перехожу вот
01:23:55
сюда все baby файл в конструктор и я
01:23:59
здесь пишу бдд
01:24:01
и по умолчанию я этой перемены
01:24:06
присваиваю значение фолз фолз вот таким
01:24:10
образом и ставлю точку с запятой
01:24:12
таким образом мы с вами создали и про
01:24:16
инициализировали переменную
01:24:18
именно в конструкторе то есть опять же
01:24:20
стойку конструктор это уже относится к
01:24:22
ней конвейер 4 это относится к базовым
01:24:24
знанием по языку программирования си
01:24:26
плюс плюс то есть конструктор это то что
01:24:28
выполняется при создании какого-нибудь
01:24:32
объекта кого-нибудь класса поэтому я
01:24:34
сейчас мы пронизали zero вали перемену я
01:24:36
нажимаю на самом давайте все же буду все
01:24:39
равно visual studio pro control shift и
01:24:41
продолжаем и компилируем вот этот проект
01:24:44
сейчас если я нигде не ошибся я нигде
01:24:46
думаю не ошибся
01:24:47
у нас сейчас компилируется вот этот
01:24:49
проект тоже нас компилируется вот это
01:24:51
переменная и она у нас уже будет в этом
01:24:54
персонаже вот мы видим на спешит сборка
01:24:57
успешно 1 то есть все у нас успешно
01:24:59
скомпилировалось
01:25:00
и но тем не менее если мы сейчас
01:25:03
вернемся в анриал если мы сейчас зайдем
01:25:06
в bluprint нашего персонажа то здесь
01:25:09
топе нестись нигде не вкладывался если я
01:25:12
здесь буду искать dd или big date это
01:25:16
переменная сразу нам уже доступно и не
01:25:18
будет для того для того чтобы переменная
01:25:23
ла нам доступно в на blu принтах нам
01:25:26
необходимо этим перед тем как перец
01:25:30
самой обе перед объявлением переменной
01:25:32
написать you and i
01:25:36
дальше на открыть эти самые скобки и в
01:25:40
этих самых скобках необходимо прописать
01:25:42
параметры к параметры как раз таки
01:25:44
видимости до видимости и доступа если мы
01:25:48
скажем так сейчас я думаю сейчас вы на
01:25:51
экране своих увидите какие параметры
01:25:53
вообще есть то здесь можно писать
01:25:55
1 и второй параметр 1 если вы хотите
01:25:58
чтобы эту переменную было везде видно а
01:26:01
везде это я имею ввиду как вот здесь
01:26:04
можно было ее найти да так ее можно было
01:26:07
найти его класс дефолт ах точно так же
01:26:10
если бы мы
01:26:11
нашего персонажи выставили вот здесь
01:26:14
чтобы эта переменная была видна в
01:26:16
details а вот здесь таки удалю значит
01:26:21
так чтобы было ее видно везде я здесь
01:26:25
пишу edit они и так если я не ошибся я
01:26:31
написал вот здесь сидит у него в таким
01:26:34
таким образом мы
01:26:36
вы опять же вам сейчас вы сейчас видите
01:26:39
у себя на экранах вот эту табличку да то
01:26:41
здесь есть разные здесь есть разные
01:26:43
параметры да то есть можно сделать так
01:26:45
чтобы эта переменная была доступна
01:26:48
только например в класс дефолтов до при
01:26:51
этом ее чтобы вот здесь в вкладке dts
01:26:54
было не видно то здесь есть разные
01:26:55
настройки разные возможности если мы
01:26:58
хотим чтобы ее оно было видно видно
01:27:00
везде и чтобы мы ее могли редактировать
01:27:01
везде мы здесь пишем i did i never
01:27:04
давайте я пока что так и оставлю я
01:27:07
нажимаю kontrol shift б я сейчас
01:27:09
компилирую вот этот проект и мы сейчас
01:27:13
мы видим где это переменное появятся
01:27:16
дожидаемся как всегда компиляции проекта
01:27:20
так вот у нас компиляция подходит концу
01:27:24
вот у нас все скомпилировалось
01:27:27
возвращаемся в движок и сейчас в движке
01:27:30
и в нам на принтах у нас все так же вот
01:27:33
мы и здесь сейчас не видим
01:27:35
а смотрите во вкладке классный фолз у
01:27:38
нас появилась торт пирсинг типе пиф у
01:27:40
нас появилась переменная д перейти вот у
01:27:44
нас она уже здесь есть то есть в классе
01:27:46
details у нас уже анапе появилась точно
01:27:49
так же если я вынесу вот этого персонажа
01:27:51
вот сюда вынесу в игровой мир то вкладке
01:27:54
details тоже здесь вот у нас эта
01:27:57
переменная доступна то есть как мы видим
01:27:59
мы прописали мы прописали вот этот
01:28:01
параметр you пропали edit и невар и она
01:28:04
появилась в некоторых местах то есть она
01:28:06
у нас появилась во вкладке dts на у нас
01:28:09
появилась в
01:28:10
в класс дефолт и все на данный момент
01:28:14
классный фолз там короче да тут мы можем
01:28:16
и менять и и читать и записывать
01:28:20
хорошо отлично возвращаемся в visual
01:28:24
studio
01:28:25
если мы хотим чтобы это переменная была
01:28:27
видна bluprint ах соответствия ставлю
01:28:29
запятую и прописываю второй параметр в
01:28:35
частности меня интересует q параметр как
01:28:38
bluprint
01:28:43
red light вот таким образом и второй
01:28:47
параметр для того чтобы эту переменную
01:28:49
нажимать kontrol shift by компилирую
01:28:51
опять проект для того чтобы эта
01:28:54
переменной появилась в сами в глубь
01:28:55
принтах нам необходимо прописать еще
01:28:57
второй параметр
01:28:58
то есть вот это вверяю property с
01:29:00
наиболее часто используемый то есть вы
01:29:03
видите здесь у нас идет и него и
01:29:05
bluprint быть в райт таким образом в она будет
01:29:08
доступна для чтение для записи
01:29:10
практически везде теперь я перехожу
01:29:12
внутрь движка нажимаю правой кнопкой
01:29:13
мыши
01:29:14
пишу здесь д да и мы видим здесь get get
01:29:18
и set д а к слову иногда бывают такие
01:29:22
ошибки если вы используете compile вот
01:29:24
компом нажимаете именно из движка то
01:29:27
такое бывает что если вы создаете
01:29:28
переменную на си плюс плюс используйте
01:29:30
вот этот комп айл в движке
01:29:31
то это переменный может не появляться
01:29:34
пока вы не перезапустите проект такое
01:29:36
тоже иногда бывает но я использую сейчас
01:29:38
компиляцию через visual studio поэтому
01:29:40
меня сейчас все работает соответствие
01:29:42
смотрите у нас
01:29:43
я нигде я здесь на blu принтах не
01:29:44
создавал у нас от нас
01:29:45
на след мы унаследовали логику написаны
01:29:48
на си плюс плюс то есть я создал здесь
01:29:50
булевой переменной вот нас есть get dd и
01:29:53
у нас есть ctf до 3 вас уже появилось
01:29:57
здесь унаследованная логика у нас
01:30:00
появилось вот это перемены дат отлично я
01:30:04
нажимаю компаний сэйв возвращаясь visual
01:30:07
studio и что я хочу сейчас сделать так я
01:30:11
хочу здесь написать вот так вот так вот
01:30:17
так и я хочу здесь написать что это мы
01:30:21
здесь объявляем переменную смерти
01:30:32
персонажа вот таким образом код
01:30:36
рекомендуется всегда конечно же точно
01:30:38
также как bluprint и код нужно всегда
01:30:40
документировать описать что вы где
01:30:42
делаете для того чтобы вы потом не
01:30:44
запутались собственном коде чтобы он был
01:30:46
более удобочитаемым
01:30:48
так я здесь закомментировал и сейчас
01:30:51
сейчас я еще сейчас я еще перейду в
01:30:57
степи файл вот здесь мы эту перемен так
01:31:01
давайте я скопирую вот сюда скопировать
01:31:05
этот вот это вот этот комментарий и
01:31:09
здесь точно так же только вместо
01:31:11
объявляем я напишу что мы инициализируем
01:31:17
вот что мы здесь инициализируем
01:31:20
переменную смерти персонажа хорошо
01:31:22
сейчас вы
01:31:24
мы разобрались как создавать переменные
01:31:26
точно так же если мы хотим чтобы это
01:31:28
было не булева переменная точно так же
01:31:31
здесь можно писать то пусть мне пул а
01:31:33
например флот здесь можно писать так вот
01:31:40
там вот что-то там да тут можно
01:31:42
создавать флот и здесь есть ну опять что
01:31:48
все типы переменных которые есть вы
01:31:50
сейчас вы можете опять же посмотреть их
01:31:51
у себя на экране в эти все типы
01:31:54
переменных они
01:31:56
ими могут иметь свои собственные
01:31:57
какие-то названия и вот эти все
01:31:59
переменные они они имеют какую-то
01:32:04
префикс да то есть там например если я
01:32:06
не ошибаюсь на допустимую текст нет нет
01:32:11
яда я ошибся ну на самом деле то есть
01:32:13
это уже нужно смотреть по технической
01:32:15
документации какие есть типы переменных
01:32:17
нас есть стандартные есть bully выйти
01:32:19
можно написать например здесь
01:32:21
интеджер дат их можно in the вы и
01:32:23
перемены а если вас интересуют те классы
01:32:26
которые те типы переменных которые есть
01:32:29
в движке тут можно смотреть уже по
01:32:32
технич по документации для движка
01:32:35
с этим я думаю все понятно с этим я
01:32:41
думаю все понятно значит от мы уже
01:32:43
создали и объявили переменную вели
01:32:46
объявили и создали переменную смерти
01:32:48
персонажа хорошо сейчас мы начинаем уже
01:32:51
подходить к более важным вещам нам
01:32:54
сейчас необходимо создать вот именно
01:32:56
компонент камера бум камеру управление и
01:32:59
так дальше поэтому мы продолжаем
01:33:01
объявлять давайте сейчас закончим
01:33:03
объявление сейчас мы все будем сейчас
01:33:06
объявлять все что нам нужно так ну а я
01:33:10
вот это you про борде вот таким образом
01:33:13
за камень скопирую вставлен сейчас мы
01:33:17
будем создавать именно нашу именно вот
01:33:20
этот компонент
01:33:21
spring arm так то сейчас мы вот этот
01:33:29
компонент именно камера пункта именно
01:33:31
наш string арам компонент поэтому для
01:33:34
начала я пропишу здесь и укропа ре ми
01:33:36
интересуюсь здесь я хочу здесь прописать
01:33:39
вызывал у него первый параметр дальше я
01:33:46
хочу прописать здесь bluprint вы это
01:33:53
only потом через запятую еще можно
01:33:58
написать прописать категорию я пишу
01:33:59
здесь я пишу здесь категорий через знак
01:34:04
равно я пишу камера
01:34:08
категория камер значит так я прописал
01:34:10
you пропали и теперь что нам необходимо
01:34:13
создать для начала прежде чем создавать
01:34:17
создать вот этот объект вы не объявить
01:34:20
объем именно объявить заголовок на файле
01:34:23
здесь нужно написать в начале ключевое
01:34:25
слово класс вот таким образом дальше
01:34:28
чтобы создать в частности наш компонент
01:34:32
spring arm компонент вот давайте я вам
01:34:34
покажу что у нас есть здесь
01:34:36
смотрим здесь я пишу так вот нас есть
01:34:41
здесь components pulling arm
01:34:43
теперь если мы пойдем visual studio
01:34:46
здесь он называется точно так же только
01:34:48
с префиксом с префиксом you
01:34:52
то есть я могу в принципе зайти сейчас
01:34:55
чтобы долго не писать я захожу всех пифа
01:34:58
вот мы его здесь где-то объявлялись
01:35:00
принтером компонент я могу его здесь
01:35:03
отсюда скопировать название с пингом
01:35:04
компонент и только перед названием
01:35:07
необходимо поставить к оставить you
01:35:10
префикс я вставляю да он у нас
01:35:13
определилась что это у нас такой
01:35:14
компонент действительно есть дальше я
01:35:16
ставлю звездочку что такое звездочка и
01:35:19
что это такое в чем разница между
01:35:21
переменными
01:35:22
указателями и ссылками это я сейчас вам
01:35:26
не буду рассказывать поскольку это уже
01:35:28
не относится к движку unreal engine 4
01:35:30
это относится к опять же базовым знанием
01:35:32
си плюс плюс поэтому я здесь ставлю
01:35:34
просто звездочку пишу и так даже здесь
01:35:37
ничего писать не нужно и я пишу здесь
01:35:40
название этого камера бум вот таким
01:35:44
образом и я пишу название нашей камеры
01:35:46
это камера бум отличным таким образом мы
01:35:50
с вами объявили объявили именно создание
01:35:54
компонента с пингом компонент давайте я
01:35:57
тоже это закомментирую что это мы так я
01:36:06
давайте вот здесь закомментирую что это
01:36:08
мы что-то мы объявляем
01:36:14
ту самую ту самую руку , которая держит
01:36:22
камеру вот таким образом вы понимаете да
01:36:25
то есть нас камера держится на
01:36:26
компоненте camera бум то есть мы его
01:36:28
сейчас объявили
01:36:29
хорошо теперь я могу по сути вот эти две
01:36:32
строчки скопировать чтобы не писать их
01:36:34
еще раз я вставляю
01:36:37
здесь по сути you проповеди у нас будет
01:36:40
примерно такое же самое только нужно
01:36:42
написать что здесь мы объявляем просто
01:36:45
камеру дальше следующее мы должны
01:36:47
объявить камеру здесь все происходит
01:36:49
таким же самым образом я здесь пишу
01:36:51
ключевое слово класс
01:36:54
я здесь кашу ключевое слово класс
01:36:57
теперь я могу опять пойти в себе пи вот
01:37:00
здесь как у нас называется камера
01:37:02
компонент то есть этот тип называется
01:37:04
крюк мира компонент я скопировал здесь
01:37:08
название камеры компонент добавил
01:37:10
префикс куб вставил у нас получается и у
01:37:13
камера компонент опять же все эти
01:37:14
названия можно смотри нужно смотреть в
01:37:17
документации к и движку дальше я ставлю
01:37:20
звездочку и пишу название что это должна
01:37:23
быть у нас follow
01:37:26
камера follow что с английского значит и
01:37:29
старый ; фоном что с английского значит
01:37:32
камера которая как бы будет следовать
01:37:34
персонажу дату будет висеть на этом
01:37:36
компоненте таким образом мы с вами
01:37:38
объявили камеру персонажа до гуляем
01:37:41
камеру
01:37:43
персонажем вот таким образом мы с вами
01:37:45
объявили камеру персонажа так и после
01:37:50
этого нам необходимо еще объявить методы
01:37:53
в частности намнут какие методы нам
01:37:56
нужны нам нужен метод
01:37:57
движения вперед-назад дальше метод
01:38:00
движения влево вправо и прыжки само
01:38:02
собой и еще с прыжками нужно поэтому
01:38:06
поэтому я сейчас здесь
01:38:12
я пишу просто здесь я без всякого you
01:38:14
право продлить это нам нужно именно на
01:38:16
то есть это надо это пишем исключительно
01:38:19
на си плюс плюс нам доступ к нам на
01:38:20
принтах к этому сейчас не нужен поэтому
01:38:22
просто пишем объявления функций я пишу
01:38:24
здесь
01:38:25
white я здесь пишу воет и начиная с
01:38:28
такой функцией как ее можно назвать это
01:38:31
как угодно просто опять же да то есть
01:38:33
это от вас зависит
01:38:34
я здесь ее называю как move for форвард
01:38:39
вот таким образом и здесь это фунт это
01:38:43
этот метод имеет входящий параметр
01:38:46
который
01:38:48
типа float который давайте я назову txs
01:38:53
вот таким образом то есть таким образом
01:38:55
мы с вами объявили о
01:38:57
таким образом мы с вами объявили метод
01:39:00
движения вперед-назад я могу сейчас это
01:39:02
скопировать вставить вставить и здесь я
01:39:08
просто изменю мол форму на move right
01:39:13
вот таким образом я изменю просто
01:39:15
название намувай точно так же здесь
01:39:17
должно быть входящие входящие значение
01:39:19
входящий параметр типа флот сейчас после
01:39:23
этого нам так давайте к слову я еще и
01:39:26
комментарии сюда допишу до
01:39:28
что это мы сейчас здесь делаем так я
01:39:33
сейчас напишу комментарии что это мы
01:39:36
здесь объявляем методы
01:39:43
движения вперед-назад , дальше влево
01:39:52
вправо и прыжки
01:39:58
вот таким образом и прыжки дальше слов
01:40:03
давайте посмотрим что все у нас сейчас
01:40:04
компилируется я сейчас расскажу почему я
01:40:06
нажимаю kontrol shift прямо сейчас
01:40:08
посмотрим что нет никаких ошибок и
01:40:10
сейчас мы точно так же здесь пропишем
01:40:12
еще объявление
01:40:14
объявления функций для объявления
01:40:17
функций для прыжка и остановки прыжка но
01:40:21
почему я хочу здесь заострить внимание
01:40:23
что тут сразу после того как мы здесь
01:40:28
объявим функцию функции такие как как
01:40:34
jan эта функция ничего не принимают ничего
01:40:37
не возвращает а вернее метод да и здесь
01:40:42
2 это у нас должно быть stop the 2
01:40:47
методы должно быть стоп стоп джан вот
01:40:52
таким образом но она сейчас она с
01:40:54
троещины вот просто объявим а у нас низ
01:40:56
компилируется у нас будет конфликт
01:40:58
поскольку вот этот наш персонаж торт
01:41:00
пирсинг характеристикам нас наследуется
01:41:03
от директора до
01:41:04
и так уж так уж есть что в территории
01:41:07
уже есть функция с названием jump
01:41:09
поэтому если мы сейчас скомпилируем у
01:41:11
нас будет сейчас посмотрим контур shift
01:41:12
бип у нас сейчас будет ошибкой если мы
01:41:15
попытаемся скомпилировать вот так
01:41:16
поэтому сразу для функций jan
01:41:19
давайте сразу наверно для всех вот этих
01:41:20
функций мы определим еще и их реализацию
01:41:25
то есть мы смотрим с компиляции
01:41:27
тогда видите у нас появились ошибки это
01:41:29
ошибки по той причине что вот эта
01:41:31
функция в то что вот у нас есть уже вирт
01:41:34
virtual white jump то есть нас уже есть
01:41:36
по сути вот в этом корректоре уже есть
01:41:39
методы с таким названием jump поэтому
01:41:42
чтобы этой ошибки не было давайте сразу
01:41:44
определим сразу определим
01:41:47
реализацию для вот этих функций мы можем
01:41:50
как бы прописывать это вручную то есть
01:41:52
писать по сути ну что-то вот наподобие
01:41:56
этого вот я могу вот как-то так вот
01:41:59
скопировать пойти сюда вот давайте вниз
01:42:05
вот типа так открыть квадратные скобки
01:42:09
вот так ну вот что-то типа тогда и
01:42:12
что-то здесь прописать то есть это можно
01:42:15
делать так . загнул ну короче не важно с
01:42:20
мы можем писать это вручную но мы
01:42:22
вручную это писать все не будем
01:42:23
естественно поскольку visual studio
01:42:26
есть очень удобно и удобная функция то
01:42:29
есть если мы объявили здесь какой-нибудь
01:42:31
метод я нажимаю правой кнопкой мыши я
01:42:33
дальше выбираю здесь быстрое действие и
01:42:36
рефакторинг и я здесь выбираюсь создать
01:42:39
определением у фарме отвод роскошном
01:42:41
корректор степи .
01:42:44
смотреть я нажимаю здесь вот это вот
01:42:46
дальше вот здесь я сразу закрываю вот
01:42:49
это мне нужно и теперь смотрите я пришел
01:42:51
все пеппи файл а наверху у нас создаёт
01:42:54
смотрите у нас вот создался сейчас
01:42:57
создалась определение то есть вот у нас создалась
01:42:59
определение для функции move forward да
01:43:02
и уже сейчас здесь можно что-то писать
01:43:04
да можно писать то что нам нужно поэтому
01:43:06
мы будем делать вот таким образом так
01:43:09
возвращаемся в и
01:43:10
и проделываем это все для всех наших
01:43:12
четырех методов
01:43:13
быстродействия рефакторинг создать
01:43:15
определения закрыть дальше jump
01:43:19
быстродействия рефакторинг создать
01:43:21
определи
01:43:22
создать определения jump сдали стоп
01:43:25
changing рефакторинг создать определение
01:43:28
отлично сейчас у нас для всех наших вот
01:43:31
этих методов движения вперед назад влево
01:43:33
вправо и для прыжков у нас уже создалась
01:43:36
создались определение вот они создали
01:43:40
у нас вот здесь но по правилам хорошего
01:43:45
тона рекомендуется всегда рекомендуется
01:43:49
всегда
01:43:50
определение функций писать снизу поэтому
01:43:54
я сейчас нажимаю control x я отсюда хочу
01:43:56
вырезать я отсюда вот эти методы вот это
01:43:59
реализацию винтики вставить внизу вот
01:44:01
таким образом чтобы в самом низу вот уже
01:44:04
подбить inflame под типа d винтиком
01:44:07
чтобы у нас были вот эти реализации к
01:44:09
самаре лик самим реализации мы сейчас
01:44:11
подойдем немножко позже но смысл чем
01:44:13
когда мы создали уже реализацию jump
01:44:15
исток jump у нас уже эти аж этой ошибки
01:44:17
не будет то есть еще раз у нас здесь
01:44:20
ошибка была поскольку мы объявили
01:44:21
функцию jump но ее не реализовали и
01:44:24
компилятор думает что мы хотим
01:44:29
перезаписать
01:44:30
вернее на
01:44:32
унаследовать функцию которая была
01:44:34
унаследовать метод который был нас
01:44:37
корректоре поэтому я сейчас нажимаю
01:44:38
kontrol shift
01:44:39
берет у нас проходит компиляции и сейчас
01:44:42
уже никаких ошибок быть не должно вот мы
01:44:47
видим сборка успешно один все отлично от
01:44:49
все у нас скомпилировалось то есть вот
01:44:51
что мы делали еще раз сначала того как
01:44:55
мы создали класс мы объявили здесь мы
01:44:58
подключили все необходимые библиотеки
01:45:00
после этого мы объявили все те
01:45:04
переменные и методы и функции которые
01:45:07
нам здесь будут нужны нашей работе и
01:45:09
после того как мы все вот эту вот эту
01:45:12
логику определили нам нужно пойти теперь
01:45:15
в степи файл
01:45:17
дальше нам необходимо будет некоторые
01:45:20
вещи создать и настроить в конструкторе
01:45:22
ну естественно нам еще нужно будет
01:45:24
написать вот эти все методы и нам не
01:45:27
нужно будет еще вот здесь
01:45:30
инфу той забиндить это тоже важно
01:45:32
поэтому после того как мы в заголовочной
01:45:35
файле вот здесь вот это все когда мы
01:45:38
объявили все все переменные все методы
01:45:43
которые нам будут нужны в работе мы
01:45:45
переходим к пиппи файл заходим в
01:45:48
конструктор и вот здесь в конструкторе
01:45:51
мы будем сейчас мы будем сейчас
01:45:54
писать мы будем сейчас все создавать и
01:45:58
настраивать то что нам нужно для начала
01:46:01
ну как мы можем при есть сейчас у нас
01:46:05
вот есть класс который 1 следовало сюда
01:46:08
пока в нем мы никаких изменений не видим
01:46:11
поскольку мы только по объявляли функции
01:46:13
и переменные да мы еще ничего не создали
01:46:17
я перехожу visual studio и здесь давайте
01:46:23
давайте первое что мы сделаем сейчас это
01:46:26
изменим размер вот этой мы можем здесь
01:46:29
видеть что вот это капсула сейчас по
01:46:31
умолчанию немножко меньше и наш вот этот
01:46:34
манекен не влазит вот в эту капсулу если
01:46:38
мы сейчас посмотрим на размер капсулы мы
01:46:40
видим что у нас он равняется
01:46:42
88 эта высота и 34 это радиус теперь что
01:46:47
мы делаем я в
01:46:49
концу я в конструкторе флиппер валя
01:46:53
реализации вызываю get get
01:47:00
капсюлю я вызываю здесь get капсюль
01:47:08
компонент дальше ставлю стрелочку и
01:47:14
вызываю и вызываю метод init
01:47:18
[музыка]
01:47:20
капсюль сайт вот таким образом и в этом
01:47:25
методе я пишу через запятую два значения
01:47:29
то есть я здесь пишу сначала я пишу
01:47:32
радиус а потом я пишу высоту я здесь
01:47:36
хочу по умолчанию написать у нас что
01:47:38
было 42 чтобы радиус был у нас 42 .
01:47:42
0 и f вот таким образом и радиус я хочу
01:47:47
чтобы он поверил и в это у нас радиус 42
01:47:51
поскольку у нас здесь это float значение
01:47:54
то необходимо еще нолик то писать и
01:47:56
высота я хочу чтобы она была у нас было
01:47:59
96 . 0f вот таким образом посмотрите я
01:48:03
сейчас прописал вот эту команду эта
01:48:06
команда будет сейчас равнозначно тому
01:48:08
что мы в вот здесь на blu принтах могли
01:48:12
бы изменить вот эти значения то есть
01:48:14
смотрим у нас сейчас было здесь 88 34
01:48:18
я беру visual studio нажимаю kontrol
01:48:20
shift и пошла компиляция возвращаясь в
01:48:23
unreal engine 4 смотрим у нас была здесь
01:48:25
88 . 34 у нас пошла компиляция сейчас он
01:48:30
ну короче все смотрим сейчас но у нас
01:48:32
сама изменится то есть после того она у
01:48:34
нас унаследует значение которой мы прописали
01:48:37
на си плюс плюс смотрим нас идет
01:48:40
компиляция вот
01:48:44
движок увидел изменения теперь мы можем
01:48:47
видеть что капсула наша немножко
01:48:49
увеличилась немного изменилось сейчас я
01:48:52
выбираю вот этот капсюль компонент и
01:48:54
смотрим у нас изменилось теперь у нас то
01:48:56
что мы прописали вот здесь 42 и 96 у нас
01:49:01
сейчас здесь 42 и 96 то есть таким
01:49:04
образом вот мы проделали что мы могли на
01:49:06
blu принтах здесь написать то мы
01:49:08
проделали на си плюс плюс на это сделали
01:49:10
на си плюс плюс
01:49:11
хорошо то есть здесь я это закомментирую
01:49:16
как всегда я здесь вот так возьму
01:49:18
kontrol ц и я закомментирую что мы здесь
01:49:25
устанавливаем размер капсуле компонента
01:49:35
вот таким образом то есть мы здесь
01:49:36
устанавливаем размер капсюль компоненты
01:49:39
идем дальше следующий что мы должны
01:49:42
здесь сделать как мы помним из bluprint
01:49:45
of мы заходили в глаз дефолт и убирали
01:49:48
вот эту галочку сейчас чтобы эти все
01:49:51
галочки здесь отсюда убрать мы сейчас
01:49:53
это все сделаем на си плюс плюс поэтому
01:49:55
что я здесь дело я здесь пишу дальше
01:49:59
been your control rotation peach и пишу
01:50:08
фолз старую ; дальше делать то же самое
01:50:14
пишу biler
01:50:15
you control a rotation я у
01:50:19
вот таким образом тоже пишут тоже пишу
01:50:23
фолз старый ; это же сам пишу без юз так
01:50:32
у меня пропал intellisense ну да ладно
01:50:38
контроллер rotation
01:50:45
wall и так же пишу здесь фолз вот таким
01:50:50
образом в результате давайте также от
01:50:53
это за комментирую что это мы что это мы
01:50:58
выключаем зависимости поворота персонажа
01:51:01
при повороте камеры то есть то что я
01:51:03
говорил вот как раз таки управления
01:51:04
похоже на san andreas этим включается на
01:51:07
самом деле вот эти два параметра вот
01:51:09
этот и вот этот они по умолчанию идут
01:51:11
фолз поэтому их здесь прописывать не
01:51:13
нужно но я уже прописал что вам показать
01:51:16
поэтому я здесь пишу что здесь мы
01:51:24
выключаем зависимость
01:51:29
поворота
01:51:32
персонажа от поворота камеры вот таким
01:51:40
образом и вот здесь я хочу прописать что
01:51:43
она по по умолчанию шум и поворачивает
01:51:57
так поворачивает
01:51:59
[аплодисменты]
01:52:01
персонажа вместе с камерой , как в gta
01:52:08
sa
01:52:09
ну допустим не выйдет я думаю будет всем
01:52:11
понятно то есть вот таким образом если я
01:52:14
сейчас есть мы вернемся в шок у нас
01:52:16
сейчас есть стоит галочка но теперь если
01:52:20
я нажимаю kontrol shift d un и сейчас
01:52:23
это все скомпилируем и у нас вот эта
01:52:25
средняя галочка она у нас
01:52:27
уберется все остальные галочки они и так
01:52:29
были выключены по умолчанию но сейчас
01:52:31
вот эта галочка у нас уберется вот у нас
01:52:37
произошла компиляция и таким что галочку
01:52:40
у нас здесь не убралась но у нас
01:52:42
появился значок что по умолчанию
01:52:44
по-другому и если бы мы сейчас удалили и
01:52:48
еще разок наследовались от этого си плюс
01:52:50
плюс класса где он у нас здесь есть да
01:52:52
тогда у нас бы
01:52:54
эта галочка пропала вот на но у нас
01:52:56
говорит что по умолчанию уже вот так по
01:52:59
умолчанию уже здесь
01:53:00
калачик быть не должно хорошо теперь мы
01:53:03
возвращаемся visual studio и сейчас
01:53:08
будем создавать как раз таки компонент
01:53:10
вот этот spring arm который мы в
01:53:13
заголовочной файле объявили
01:53:14
и мы его сейчас будем создавать и
01:53:17
настраивать поэтому давайте сразу могу
01:53:20
вот таким образом скопировать описание
01:53:24
написать что здесь мы создаем и
01:53:31
настраиваем компонент в кавычках
01:53:42
spring-a этирен некая рука что будет
01:53:57
держать камеру вот таким образом так мы
01:54:00
создаем и настраиваем компания spring or
01:54:02
некая рука что будет держать камеру
01:54:04
хорошо защита в первую очередь что мы
01:54:06
должны здесь прописать в первую очередь
01:54:08
мы здесь должны написать как раз таки
01:54:11
наше название которым мы здесь
01:54:13
определили название у нас будет камера
01:54:15
бум вот таким образом я могу даже
01:54:18
скопировать себе пиндар вот я пишу здесь
01:54:23
название и сейчас здесь создаю я вызываю
01:54:30
здесь метод cureit default сам объект
01:54:41
потом здесь в треугольных скобках я
01:54:44
прописываю как раз таки наше название
01:54:47
вот где она нас именно you spring arm
01:54:52
компонент вот таким образом так вот
01:54:56
здесь я прописываю spring arm компонент
01:55:00
и здесь можно в скобках в скобках еще
01:55:05
одни скобки открыть и здесь можно
01:55:09
написать текст и здесь можно написать в
01:55:13
кавычка что мы это называем как камера
01:55:19
бум вот таким образом то что у нас
01:55:21
получилось то есть мы создали сам объект
01:55:25
типа you spring arm компонент и записали
01:55:30
его в переменную камера бум и текст но
01:55:33
это мы текст для bluprint ав1 bluprint
01:55:38
активнее этот компонент будет называться
01:55:41
как камера бум на самом деле можно здесь
01:55:43
написать любое название
01:55:44
вот хорошо таким образом мы его создали
01:55:48
потом нам необходимо как бы вложить то
01:55:52
есть если мы бы здесь смотрели видите у
01:55:55
нас есть
01:55:57
капсюль компонент это рут компонента и
01:56:00
нам необходимо чтобы чтобы вот этот вот
01:56:03
эта рука она была вложена для того а нам
01:56:06
нужно чтобы эта рука была вложена
01:56:08
поэтому следующее что я пишу здесь я
01:56:13
пишу здесь название потом я пишу вот
01:56:21
такую стрелочку дальше я пишу set of
01:56:26
attachment
01:56:27
и в скобках я здесь прописываю руд и в
01:56:37
скобках я прописываю рут компонент
01:56:39
значит что мы здесь делаем мы только что
01:56:41
создали как раз таки вот этот объект
01:56:44
you спринт арам компонент и мы его при
01:56:47
оттачиваю то есть давайте сейчас давайте
01:56:49
сейчас посмотрим как
01:56:51
а как без этого то есть давайте
01:56:53
посмотрим давайте сейчас скомпилируем
01:56:55
посмотрим что дала вот эта строчка то
01:56:57
есть мы создали только смотрим сейчас у
01:56:59
нас никакого компонента так
01:57:04
опять забыл как он называется счет меня
01:57:07
так он у нас называется с принтером
01:57:09
компонентом вот блин аренда тыс у нас
01:57:16
сейчас здесь на bluprint ах нет никакого
01:57:18
компонента spring arm но тем не менее я
01:57:20
здесь прописал команду для того чтобы
01:57:22
создать внутри нашего персонажа вот этот
01:57:26
компонент я нажимаю kontrol shift d
01:57:28
дожидаемся дожидаемся компиляции и
01:57:31
сейчас посмотрим и сейчас посмотрим что
01:57:34
у нас появится в нашем движке
01:57:41
вот у нас прошла компиляции мы
01:57:43
возвращаемся в движок и смотрите у нас
01:57:45
появился компонент камера бум который мы
01:57:48
добавили ужас на языке си плюс плюс
01:57:51
смотрим что происходит дальше сейчас я
01:57:54
не уверен что это будет видно но сейчас
01:57:56
я 1 комментируемой статьи нажимаю
01:57:59
kontrol shift d
01:58:01
еще раз и сейчас мы сейчас что у нас
01:58:05
изменится я не уверенностью с увидим
01:58:07
разницу но у нас есть root компонент и мы сейчас
01:58:10
экран он она по моему и так лежит уже
01:58:13
врут ну сейчас посмотрим танку на свет
01:58:16
компиляция вот нас компиляция прошла мы
01:58:22
сейчас смотрим ну да то есть она по сути
01:58:23
она и так была вложена по сути врут
01:58:26
компонент то есть это то что нам было
01:58:28
сейчас нужно дальше нам необходимо что
01:58:33
сделать дальше нам если мы сейчас
01:58:34
посмотрим если мы сейчас посмотрим на
01:58:37
вот этот компонент да то есть она сейчас
01:58:40
есть небольшая проблема что мы сейчас не
01:58:43
видим окно details я думаю что это можно
01:58:45
пофиксить тем что мы сейчас на пире
01:58:49
период наследуем все то есть давайте я
01:58:52
сейчас зайду выключу здесь этого
01:58:54
персонажа по умолчанию чтобы мы могли
01:58:55
его она bluprint арк сейчас здесь
01:58:57
удалить
01:59:03
так я удалил только что да я удалил
01:59:06
персонаж давайте еще раз от наследуем ся
01:59:08
давайте я вот better person степи create
01:59:11
blog with close дальше я его называю
01:59:14
также как мы его уже раньше только что
01:59:16
называли
01:59:17
я назову как его как торт прошлом
01:59:21
корректор гриппе
01:59:23
вот таким образом клеит bluprint класс
01:59:28
да да и мы сейчас видим да то есть такое
01:59:31
иногда бывает ну как бы если мы создаём
01:59:35
что-то на си плюс плюс это у нас оно не
01:59:38
отображалось здесь у нас не было видно
01:59:40
вкладке details надо было период нас
01:59:42
теперь она следует период наследоваться
01:59:44
ещё раз и у нас все сейчас здесь
01:59:47
появилась ну давайте сейчас будем сейчас
01:59:50
будем продолжать дальше таким образом мы
01:59:53
назначили вот этот компонент
01:59:54
как
01:59:56
вложили вот этот компонент в root
01:59:59
компонент после чего если мы сейчас в
02:00:02
него посмотрим то расстояние здесь но
02:00:05
расстояние здесь на самом деле стоит 300
02:00:08
если бы мы хотели изменить вот это
02:00:10
расстояние до персонажа мы могли бы вот
02:00:13
здесь прописать мы могли бы здесь написать вот
02:00:16
таким образом камера бум стрелочка я его
02:00:18
здесь копирую камера бум стрелочка
02:00:21
и здесь написать таргет arm лэнс и
02:00:26
присвоить значение например 400.0 f и
02:00:33
поставить по сути да и поставить точку с
02:00:35
запятой таким образом мы сейчас видим
02:00:37
что у нас камера бум длина вот этого
02:00:40
расстояния между камерой персонажей была
02:00:43
сейчас 300 сейчас стоит 300 если я с
02:00:46
компилирую нажимаю kontrol shift б а мы
02:00:49
сейчас увидим что она изменится
02:00:53
вот мы только что мы только что с
02:00:56
компилировали проект я захожу вот сюда
02:00:59
выбираю здесь камера бум и мы можем
02:01:01
видеть что мы вот только что изменили
02:01:02
вот это расстояние между камерой и
02:01:05
персонажем уже из 300 до 400 хорошо
02:01:08
продолжаем идем дальше дальше что нам
02:01:11
необходимо здесь изменить у нас нам
02:01:14
здесь нужно поставить такую галочку как
02:01:16
на как you spawn control rotation вот
02:01:19
эту самую галочку сейчас мы ее поставим
02:01:23
на blu принтах то есть точно так же я
02:01:26
здесь пишу вот эта камера бум стрелочку
02:01:29
могу скопировать и здесь я прописываю
02:01:32
что beer юз care line это так еще раз
02:01:39
back your camera control rotation и я
02:01:44
здесь пропишу true
02:01:47
вот таким образом я здесь пишут у и
02:01:49
ставлю ; теперь я нажимаю kontrol shift
02:01:53
бит еще раз компилирую еще раз
02:01:56
скомпилируют и сейчас мы увидим что у
02:02:00
нас вот эта галочка поставится но
02:02:03
не она может не поставится на но она по
02:02:04
умолчанию изменит свое сейчас вот так
02:02:06
вот по умолчанию и есть то есть сейчас
02:02:08
по умолчанию галочки нет сейчас у нас
02:02:11
компилируется проект вот у нас на
02:02:15
скомпилировал ся и посмотрите у нас
02:02:18
поставилась галочка то сейчас мы можем
02:02:19
видеть что у нас уже стоит здесь галочка
02:02:22
отлично возвращайся visual studio таким
02:02:26
образом мы с вами пол создали и
02:02:28
настроили вот этот компонент на языке си
02:02:31
плюс плюс где у нас есть вот мы создали
02:02:34
и настроили компонент камера бум и
02:02:36
сейчас нам предстоит создать и настроить
02:02:39
компонент самой камеры поэтому что мы
02:02:42
делаем я могу сразу тоже скопировать вот
02:02:45
здесь название вернее скопировать вот
02:02:51
здесь описание что создаем и настраиваем
02:02:54
создаем и настраиваем саму камеру вот
02:02:59
таким образом здесь мы пишем название
02:03:03
самой так вот здесь напишем название
02:03:08
самой камеры точно так же я пишу здесь
02:03:10
follow камера я здесь пишу follow камера
02:03:16
присвоить и здесь я могу вот это вот
02:03:20
отсюда скопировать некое что я могу
02:03:23
здесь отсюда скопировать только нас
02:03:25
интересует new spring
02:03:26
arm компонент а нас интересует именно а
02:03:29
нас интересует именно камера компонент
02:03:32
из нас интересует именно сама камера то
02:03:35
есть я вот таким образом отсюда вот это
02:03:37
копирую и здесь меняю нею сплинтером
02:03:40
компонент аюб камера компонент и
02:03:42
название я здесь изменяю на фоллоу
02:03:48
камера вот таким образом после чего и
02:03:51
могу нажать control shift w
02:03:54
дожидаемся компиляции еще раз дожидаемся
02:03:57
компиляции и сейчас посмотрим что у нас
02:04:01
появится здесь камера что мы на си плюс
02:04:03
плюс только что добавили камеру
02:04:08
вот мы можем видеть что у нас появилась
02:04:10
камера и к слову сейчас мы как раз таки
02:04:12
вложим вот эту камеру внутрь вот этой
02:04:15
follow камеры и вот это сейчас мы как
02:04:18
раз здесь вот увидим как раз такие
02:04:20
вложения да то есть сейчас они лежат на
02:04:23
одном уровне но что я делаю дальше
02:04:28
значит так я пишу здесь
02:04:31
follow камера follow камера дальше я
02:04:35
пишу здесь вот так вот так потом я пишу
02:04:39
сетап attachment
02:04:42
только уже не рут компонент а я здесь
02:04:46
пишу как камера
02:04:52
как камера бум и через запятую я здесь
02:04:56
пишу я здесь пишу you spring arm
02:05:01
компонент 2 : и пишу socket name вот
02:05:11
таким образом вот эта команда у нас при
02:05:14
а то че то есть как раз таки вложит нашу
02:05:17
камеру внутрь вот этого компонента вот
02:05:20
внутрь нашего компонента камера бум я
02:05:23
нажимаю kontrol shift d и мы сейчас
02:05:25
посмотрим как это все будет выглядеть
02:05:29
возвращаемся движок или давайте дождемся
02:05:31
компиляции вот мы и дождались компиляции
02:05:36
я захожу стежок так и мы не видим
02:05:39
никакой разницы так что где я допустил
02:05:43
ошибку сейчас посмотрим тут я нигде не
02:05:47
допустил ошибку давайте попробуем перри
02:05:50
запустить проект вот здесь либо может
02:05:52
опять нужно брать я еще раз так давайте
02:05:56
я здесь ничего нет давайте я еще раз от
02:05:59
наследуют так я еще раз удалю вот этот
02:06:02
бред глаз еще раз от наследуют курия из
02:06:07
глубин класс
02:06:08
бесит так название будет здесь that
02:06:13
person это самое
02:06:14
big ben вот таким образом я еще раз от
02:06:18
наследуют и смотрите да нужно нужно было
02:06:21
еще раз обследоваться
02:06:23
то есть оно не всегда подтягивает то
02:06:25
есть вот здесь был принтах она не всегда
02:06:27
подтягивать то что мы сделали на блок
02:06:29
ритор иногда может нужно перезапустить
02:06:31
проект либо перья либо пири-пири нас
02:06:38
перри наследоваться еще раз и теперь мы
02:06:40
видим что у нас есть компонент камера и
02:06:44
эта камера держится на компоненте camera
02:06:46
бу при этом мы все проделали на си плюс
02:06:49
плюс знаете так что нам еще нужно от
02:06:52
камеры
02:06:53
нам нужно в камере вот здесь нам нужно в
02:06:57
камере вот здесь убрать такую галочку
02:07:00
да у нас здесь это галочка по умолчанию
02:07:02
не стоит но точно так же ну или в
02:07:05
принципе знаете возможно возможно я
02:07:08
здесь и не буду сейчас ставить ну то
02:07:10
есть вы должны понимать да то есть мы
02:07:12
уже научились как ставить галочку то
02:07:14
есть вот у нас если мы хотели поставить
02:07:17
галочку мы могли вот точно также взять
02:07:20
здесь полу камера вот так вот
02:07:22
скопировать если нам надо какую-то
02:07:24
что-то поставить да мы можем вот так
02:07:27
взять потом задать вот эту команду
02:07:30
беус control rotation частности здесь
02:07:33
эти команды 1 выглядят одинаково и здесь
02:07:37
написать фолз и здесь написать так так
02:07:43
почему она пишет индификатор не
02:07:45
определен
02:07:46
а потому что я написал flos а нужно
02:07:49
написать
02:07:50
falls а нужно ли задний plaza фолз дату
02:07:53
я нажимаю контур shift 2 и по сути
02:07:55
сейчас ничего не изменится эта галочка
02:07:57
нужно убедиться что эта галочка там не
02:07:59
стоит у нас хорошо у нас по умолчанию
02:08:01
она там не стоит значит так дожидаемся
02:08:06
опять же компиляции заходит проект 2 ему
02:08:09
все у нас здесь нормально здесь эта
02:08:11
галочка то есть это галочка должна то
02:08:13
есть как раз таки control rotation
02:08:14
управление по воротам у нас должен быть
02:08:17
исключительно в компоненте camera
02:08:19
бум вот здесь на эту галочку и поставили
02:08:22
хорошо так это мы увидели на самом деле
02:08:24
это можно сейчас вот этот участок кода
02:08:26
можно удалить
02:08:27
как и вот эти можно было бы удалить но я
02:08:29
чисто уже показал как она работа что
02:08:31
можно здесь прописывать сосчитать мы с
02:08:33
вами настроили камеру и теперь нам
02:08:36
необходимо я хочу показать как настроить
02:08:38
могут компонент значит так я опять же
02:08:42
копирую вот этот комментарий для того
02:08:43
чтобы опять , чтобы здесь все за
02:08:46
прокомментировать что мы делаем тут мы
02:08:50
настраиваем настраиваем наш именно
02:08:54
мувмент компонент я могу здесь
02:08:56
скопировать будешь скопировать название
02:09:00
здесь мы настраиваем именно мувмент
02:09:03
компонент значит так что мы в первую
02:09:05
очередь должны сделать значит так как мы
02:09:07
помним как мы помним в предыдущем
02:09:11
предыдущей части урока на blu принтах мы
02:09:15
здесь должны убрать такую галочку как
02:09:18
такую галочку как вариант туман давать
02:09:23
им что здесь коры
02:09:25
так вы сейчас можете не видеть я на
02:09:26
секунду здесь отключу сейчас камеру да
02:09:29
вы видите то есть у нас по умолчанию
02:09:30
здесь не стоит галочка в момент
02:09:33
компоненте не стоит такая галочка как
02:09:36
aren't rotation турман то есть нас
02:09:39
сейчас вот эта галочка сесть не стоит
02:09:41
поэтому нам нужно сейчас будет ее
02:09:44
поставить нам нужно сейчас будет ее
02:09:48
поставить и мы сейчас это сделаем значит
02:09:52
так я вызываю здесь get директор момент
02:09:58
вот таким образом дальше пишу стрелочку
02:10:01
и пишу бен ари and rotation момент равно
02:10:07
true вот таким образом ставлю точку с
02:10:10
запятой то есть это мы включаем
02:10:12
поворачивании
02:10:13
автоматический поворот персонажа в
02:10:16
сторону его движения сейчас я нажимаю
02:10:18
kontrol shift d и мы сейчас увидим мы
02:10:21
сейчас увидим что эта галочка у нас
02:10:24
здесь появится давайте опять же отключу
02:10:26
отключив камеру чтобы здесь она не
02:10:29
мешала я запишу оры до
02:10:32
на сейчас здесь этой галочки нет но
02:10:34
сейчас когда у нас здесь все с
02:10:36
компилируется вот мы возвращаемся вот
02:10:41
сюда и смотрим and rotation тумэн да то
02:10:44
есть мы видим что у нас галочка здесь
02:10:45
поставилась мы видим что галочка у нас
02:10:47
здесь уже стоит
02:10:48
отлично это как раз то что нам нужно да
02:10:52
то есть мы уже поставили вот эту галочку
02:10:54
что же продолжаем дальше я уже не будут
02:10:56
да и здесь могут как бы каждую строчку
02:10:58
вот так вот прокомментировать да то что
02:11:00
мы здесь делал но я думаю здесь очевидно
02:11:02
то что мы делаем я это все про говорю
02:11:03
много раз дальше что нам нужно сделать
02:11:08
дальше нам обычно делают в стандартном в
02:11:13
стандартном шаблоне так в стандартном
02:11:17
шаблоне что часто делают это еще задают
02:11:20
скорость поворота на самом деле это
02:11:23
делать не обязательно но опять же это
02:11:24
показывает как вызывать некоторые
02:11:26
функции нам это сейчас
02:11:27
ну вернее на самом деле нет это как бы
02:11:31
что что это вот как бы это объяснить то
02:11:33
как раз таки скорость поворота то есть
02:11:36
смотрим что я хочу показать вот у нас
02:11:40
есть корректор момент и здесь есть такой
02:11:42
параметр как
02:11:45
rotation late вот у нас есть rotation
02:11:48
рейд это скорость поворота персонажа
02:11:52
вообще как бы вправо влево то есть она
02:11:54
на самом деле по умолчанию стоит 360
02:11:56
здесь вот этом классе чистом до от
02:12:01
которым мы начнем здесь она стоит вот
02:12:04
здесь она стоит 360 но по
02:12:08
но как бы когда создается шаблон то в
02:12:11
шаблоне она стоит 540 поэтому давайте
02:12:14
посмотрим сейчас я вас научу как и
02:12:16
менять допустим вот такие значения а
02:12:18
пусть здесь она остается значит так что
02:12:21
мы делаем вот это нам понадобится вот
02:12:23
эту часть я могу просто скопировать вот
02:12:27
таким образом дальше я здесь пишу здесь
02:12:31
я пишу rotation
02:12:35
light присвоить дальше нас интересует f
02:12:39
просто это ефрейтор это у нас
02:12:44
ефрейтор это у нас получается тип данных
02:12:48
ротатор в которой созданный в движке то
02:12:51
есть это грубо говоря это некий класс не
02:12:53
ну не некий тип данных групп
02:12:55
класс который в себе содержит три float
02:12:59
значение да то есть мы уже разбирали да
02:13:01
мы много раз уже разбирали что вот когда
02:13:04
мы создаем переменную да есть ли мы эту
02:13:09
переменную возьмем типа пара татар до
02:13:12
вызовем гиад ротатор то внутри этого
02:13:16
ротатора у нас находится три переменных
02:13:19
вот мы видим что внутри ротатор
02:13:21
находится три переменных это
02:13:23
и по экспл грубо говоря x y и z до ролл
02:13:26
пищу и я у
02:13:27
это мы можем сейчас удалить это можем
02:13:31
сейчас удалить и что мы делаем значит
02:13:34
здесь нужно через запятые как раз таки
02:13:37
прописать если мы хотим знать что можем
02:13:40
видеть здесь что она стоит вот флот in
02:13:43
peach флот илья флот и на пол если мы
02:13:47
пойдём сюда я здесь пишу напишу еще вот
02:13:52
rotation вид нас интересует я навожу на
02:13:55
зерна z это ну z это у нас так она у нас
02:14:05
по другому да нет вот здесь видно да я
02:14:09
навожу сейчас назад мы бы нам пишет что
02:14:12
это я у мы пишем нам пишет что это я а
02:14:14
значит здесь нужно посмотреть на висте
02:14:17
смотрим я это среднее значение значит
02:14:20
что мы делаем я пишу 0.0 у ф да то есть
02:14:26
я мы не меняем крайнее значение тут мы
02:14:28
видим я нахожу она пишет что первое это
02:14:31
peach второе это я в 3 to roll значит первое и
02:14:34
третье я пишу 0.0
02:14:36
f и вот здесь я пишу например 500 40.0
02:14:44
f вот таким образом в результате я
02:14:46
нажимаю kontrol shift d
02:14:50
и в результате что у нас получается в
02:14:54
результате у нас сейчас вот это значение
02:14:56
из 360 сейчас изменится на 540 до
02:15:00
насколько в этом поменяли
02:15:02
сейчас мы это посмотрим вот у нас идет
02:15:04
компиляция вот нас компиляция
02:15:07
закончилась идем сюда смотрим а значение
02:15:10
по следу изменилось на пятьсот сорок
02:15:13
назад
02:15:14
это у нас z это у нас я у на 540 хорошо
02:15:23
так возвращаемся visual studio после
02:15:25
того как мы их скорость разворота
02:15:27
изменили давайте посмотрим разберём
02:15:30
самый наиболее часто используемые
02:15:32
команды в частности это сила прыжка есть
02:15:36
мы хотим на си плюс плюс
02:15:37
изменить силы прыжка то я опять же не
02:15:40
будут прописывать я вот это тоже самое
02:15:41
детки я ректор момент вот и здесь есть
02:15:45
такой параметр как и такой параметр как
02:15:51
jiang xii в la2 лассити вот таким
02:15:55
образом и здесь по умолчанию вот если мы
02:15:59
я могу даже скопировать velocity
02:16:00
вернуться в bluprint и здесь найти этот
02:16:03
параметр
02:16:04
вот и jump z велосипед по умолчанию у
02:16:07
нас высота прыжков ну сила прыжков в
02:16:10
высоту как раз таки 420 если мы хотим по
02:16:14
умолчанию в шаблон меняет это на 600
02:16:16
если мы хотим это изменить я могу дать
02:16:19
здесь написать да хоть 700 то здесь
02:16:21
неважно все что угодно можно писать я
02:16:23
здесь пишу 700.00 у точку с запятой и
02:16:28
таким образом мы изменили высоту прыжка
02:16:32
и нажимаю kontrol shift w и мы смотрим
02:16:35
посмотрим что у нас получилось мы
02:16:39
смотрим что она сейчас здесь получится
02:16:47
скомпилировалось возвращаемся движок
02:16:49
сюда смотрим нас jamshid власти не стало
02:16:52
700 таким образом мы уже научились на си
02:16:55
плюс плюс менять высоту прыжков хорошо
02:16:59
что дальше дальше есть такой параметр
02:17:02
как air control
02:17:04
он меняется таким же самым образом
02:17:06
давайте я уже буду быстрее здесь так
02:17:09
назад у нас есть такой параметр как
02:17:14
air control точно также air control
02:17:17
равно он здесь всегда выставляется на 0
02:17:22
2 . f ; это у нас кант контроль
02:17:26
насколько сильно мы контролируем
02:17:27
персонажа клавишами wsd когда мы летим
02:17:30
хорошо
02:17:32
после чего мы можем указать давайте
02:17:35
разберем такой такой тоже часто
02:17:37
использовать параметр как максимальная
02:17:38
скорость
02:17:39
также здесь напишем макс волк вот мы
02:17:44
находим макс волк спит и точно также по
02:17:47
умолчанию
02:17:48
давайте найдем speed да то есть по
02:17:51
умолчанию у нас какая здесь скорость 600
02:17:55
по умолчанию на скорость 600 мы можем
02:17:57
сделать персонажа более например
02:17:59
медленным то есть я запишу здесь 400.0 f
02:18:03
значит так мы установили макс алкин
02:18:06
стыдно 400.0 f соответственно здесь у
02:18:11
нас значение макс волк speed ну я сейчас
02:18:14
я уже не буду камеру убирать можете мне
02:18:16
поверить и даже сейчас не буду сразу
02:18:19
компилировать давайте еще что-то
02:18:20
пропишем сейчас марс wolken спит мы
02:18:22
установили уже на 400 после чего а после
02:18:28
чего есть достаточно такой достаточно
02:18:30
популярный достаточно популярны
02:18:33
настройка и the floor англ
02:18:36
сейчас я покажу как это найти давайте им
02:18:38
сейчас вам покажу floor
02:18:41
в так здесь придется забрать камеру вот
02:18:45
есть такой как у волка был фольклор
02:18:47
intel это максимальный угол склона по
02:18:49
которому будет подниматься персонаж это
02:18:52
очень важный параметр он отвечает на
02:18:54
насколько вы с наскоку крутые подъемы
02:18:56
персона
02:18:57
сможет подниматься давайте сейчас этот
02:19:01
параметр тоже изменим я точно также беру
02:19:03
кит корректор момент точно также
02:19:07
копируем точно так же вставляем и здесь
02:19:11
я уже вызываю функцию сет сетубал cable
02:19:16
for a floor энгл и задаюсь сюда параметр
02:19:20
60 как узнать какие здесь есть везде
02:19:23
функции это все есть технической
02:19:25
документации движка на сайте анриал
02:19:27
энджи и сейчас вот у нас там было вот у
02:19:31
нас сейчас стояла 44 до если я сейчас
02:19:33
нажму control shift и если сейчас мы
02:19:37
скомпилируем проект мы увидим что вот
02:19:39
этот максимальный угол по которым
02:19:41
максимальный угол склона по которым
02:19:43
персонаж будет двигаться он у нас
02:19:45
увеличится теперь я выбираю корректор
02:19:51
момент и мы видим что болт волка был
02:19:53
floor энгл у нас увеличился то 60 на
02:19:57
этом я думаю мы уже с вами разобрались
02:20:00
как можно как настраивается дефолтные
02:20:04
параметры в конструкторе классов в
02:20:06
конструкторе персонажа вот у нас здесь
02:20:09
мы создам здесь мы задали размер капсулы
02:20:14
дальше мы отключили управление как учета
02:20:17
ндс до чтобы мы подключили зависимость
02:20:21
поворота камеры отпел от поворота
02:20:23
персонажа
02:20:24
дальше мы создали здесь мы создали и
02:20:29
настроили компонент спринт арам руку
02:20:31
который держит камеру дальше мы создали
02:20:33
и настроили саму камеру дальше мы
02:20:36
настроили здесь мы настроили момент
02:20:39
компонент и мы про кинется лидировали
02:20:42
переменную смерти отлично что нам
02:20:45
остается дальше после того
02:20:48
дальше нам необходимо собственно на
02:20:52
самом деле немного дальше нам осталось
02:20:54
забиндить
02:20:55
вот здесь input и нам нужно здесь
02:20:58
забиндить input а это раз и создать собственно
02:21:01
создать реализацию каждый из этой
02:21:04
функцией то здесь нужно будет в каждой
02:21:06
из этих функций
02:21:07
из этих методов создать проверку на
02:21:09
переменную да да да то есть не мертв ли
02:21:12
персонаж и после чего создать сама это
02:21:15
самое но прежде чем это делать давайте
02:21:18
давайте сейчас прежде чем создавать на
02:21:23
самом деле то есть правильнее означало
02:21:25
создать вот эти функции а потом за
02:21:26
записывать и эти самые input и ну
02:21:28
давайте начнем с input of немножко так я
02:21:32
хочу скопировать так можно уже корр
02:21:36
кстати включить да я хочу здесь сейчас
02:21:38
скопировать вот эту строку комментариях
02:21:40
чтобы они прописывать дальше мы идем
02:21:43
двин путин вот таким образом и начнем
02:21:47
наверное по традиции скажем так с мышки
02:21:52
дам то есть управления мышки поэтому я
02:21:54
беру здесь player input компонент я его
02:21:58
копирую дальше вставляю вот сюда дальше
02:22:01
пишу здесь вот такую стрелочку
02:22:03
потом я пишу здесь бенди xs вот таким
02:22:08
образом я пишу здесь бинт xs здесь на
02:22:10
самом деле тоже здесь есть разница есть
02:22:12
exec а есть action дан то есть это та же
02:22:15
то самое что новаторского то что мы
02:22:17
разбирали винтов то есть есть экшн
02:22:20
а есть x мы сейчас видим axis мы сейчас
02:22:23
завинтим вот это look up вот это поворот
02:22:25
по вот этот по оси y и чёрным то есть и
02:22:29
разворот по оси x то что мы сейчас здесь
02:22:32
делаем засчитать я здесь выбрал бинт xs
02:22:35
а дальше открываю скобки вот таким
02:22:39
образом ; значит так в первую очередь
02:22:42
дальше оттуда на через запятую нужно
02:22:44
подать в несколько разных параметров то
02:22:47
есть это pentax с она у нас принимает
02:22:49
разные параметры в первым первый
02:22:51
параметр до 1 запятой необходимо указать
02:22:54
как раз таки то что мы хотим именно тот
02:22:59
event который прописан в настройках
02:23:01
поэтому не интересует терн поэтому я
02:23:03
здесь уберу вот этот тиран дальше
02:23:06
возвращаясь visual studio и вставляю
02:23:09
сюда терн это первое что мы делаем
02:23:11
дальше мы должны прописать ключевое
02:23:13
слово д.с. я ставлю после чего ставлю
02:23:17
петух и дальше дальше мы должны вызвать
02:23:23
дальше мы должны написать
02:23:26
ссылку на тот метод который должен
02:23:29
отработать на тот метр который должен
02:23:33
отработать как раз таки когда вот этот
02:23:36
input терн включается поэтому в данном
02:23:39
случае мы должны этот in будет вот этот
02:23:42
как раз таки поворотные she
02:23:43
задайте в контроллер да то есть мы здесь
02:23:47
вот подключили как раз таки были
02:23:49
контроллер и сейчас вот здесь для того
02:23:52
чтобы подать вот это вот в контроллер
02:23:54
что нам здесь необходимо прописать
02:23:57
во-первых мы должны здесь написать вот
02:24:00
такой такой значок с потом должны
02:24:02
написать и pawn вот таким образом потом
02:24:06
поставить 2 :
02:24:09
и прописать здесь и do do it can jolla
02:24:17
я у input да то есть это у нас будет
02:24:21
поворот и соответственно ; собственно
02:24:24
вот таким образом у нас выглядит бинт то
02:24:27
есть вот таким образом мы забил деле как
02:24:29
раз таки поворот персонажа в разные
02:24:31
стороны давайте сейчас до компиляция
02:24:34
возвернусь вот сюда давайте я еще
02:24:36
установлю здесь самого персонажа
02:24:38
поскольку мы здесь меня люда
02:24:42
теперь и наследовать империи
02:24:44
наследовались да потому что что-то там
02:24:47
лагало давать я сюда установлю сейчас по
02:24:50
быстрому вот этого персонажа
02:24:52
установлю ему анимационный bluprint
02:24:54
поставлю его вот сюда
02:24:58
разверну его на 90 градусов до попытаюсь
02:25:02
как-то его выставить но не знаю как он
02:25:05
насколько ровно он стоит на самом деле
02:25:07
сейчас не так важен так в игре у нас еще
02:25:09
и нужно в в гей моде установить вот
02:25:11
этого персонажа именно by петард карсон
02:25:14
корректор пеппи как персонажа в паб
02:25:16
умолчанию мы его выставили я нажимаю
02:25:19
play и мы видим да он немножко высоко
02:25:22
стоит ну как бы но мы видим что у нас
02:25:23
уже есть камер что
02:25:25
sun что камера создается не в центре
02:25:27
персонажа все хорошо так как должно быть
02:25:31
так давайте вот так попробуем ну
02:25:35
плюс-минус нормально да то есть мы видим
02:25:38
что сейчас но тюмень я нажимаю play и мы
02:25:40
видим что я здесь то есть я сейчас кручу
02:25:42
мышкой дав вообще во все стороны но у
02:25:45
меня ничего не происходит из нас
02:25:47
никакого управления нет но если мы
02:25:49
сейчас
02:25:51
сбил дим вот это да то есть вот этот
02:25:53
input и do
02:25:54
этот пир тут уже нам позволит крутить то
02:25:58
есть вот как раз таки когда мы будем
02:26:00
терн то есть когда у нас будет когда мы
02:26:02
будет у нас будет вызываться ты тот
02:26:04
черный на движение мышки влево-вправо у
02:26:08
нас в ну короче на
02:26:11
по ссылке на через полна ну в по универе
02:26:14
есть ссылка на контроль короче вполне
02:26:16
есть функция от контролируя у input и мы
02:26:19
как раз таки у нас персонаж начнет
02:26:20
сейчас управляться уже влево-вправо
02:26:23
давайте заходим движок и нажимаю play и
02:26:26
вот смотрите туз я еще у нас вверх-вниз
02:26:28
не могу крутить камерой но мы уже на си
02:26:30
плюс плюс
02:26:31
чистом написали вот как раз такие
02:26:33
персонажи и мы уже написали управление
02:26:36
которое работает пока еще только влево
02:26:38
вправо для того чтобы написать еще
02:26:41
управление вверх вниз соответственно
02:26:44
здесь можно вот это скопировать и здесь
02:26:47
нам придется только некоторые вещи
02:26:49
изменить во первых вместо then
02:26:52
нам нужно сейчас зайти в настройки
02:26:54
скопировать look up вот так вот таким
02:26:57
образом вместо терн
02:26:59
нужно сюда задать look up и вместо low
02:27:03
input
02:27:04
нужно написать здесь peach я здесь пишу
02:27:08
pitch вот таким образом теперь я нажимаю
02:27:12
kontrol shift бит дожидаемся дожидаемся
02:27:15
компиляции и сейчас у нас должно быть
02:27:18
уже управление мышкой как влево вправо
02:27:20
так и вверх-вниз
02:27:30
отлично отлично сейчас все у нас есть
02:27:34
так сейчас заходим обратно в движок я
02:27:38
нажимаю play и вот смотрим и вот сейчас
02:27:40
мы уже забил деле то есть мы уже на си
02:27:43
плюс плюс а сколько многое уже создали
02:27:45
вот этот компонент который держит камер
02:27:47
мы создали саму камеру и мы за бенди ли
02:27:50
управления то есть мы на си плюс плюс
02:27:52
уже создали полностью управления камеры
02:27:55
продолжаем тогда возвращаемся в visual
02:27:57
studio и следующее что мы должны сделать
02:27:59
давайте сделать небольшой отступ
02:28:01
я опять возьму здесь вот таким образом
02:28:05
так так мы таким образом я сейчас сделаю
02:28:11
небольшой пробел и мы сейчас за бензин
02:28:14
именно наши прыжки поэтому давайте
02:28:16
ой так вот здесь тоже надо переименовать
02:28:19
что это мы и бен гим поворот камеры
02:28:27
вот таким он и bim bim поворот камеры
02:28:30
хотя бы benim ховард поворот камеры а
02:28:33
вот сейчас мы будем сейчас на бензин
02:28:39
прыжок так и остановку и остановку
02:28:45
прыжка
02:28:46
ну вот примерно так да значит следующий
02:28:49
что мы должны сейчас забиндить значит
02:28:51
так сейчас по сути мы можем вот это
02:28:57
скопировать тут нам некоторые вещи
02:28:59
придется изменить а некоторые нас
02:29:00
остаются то есть у нас вот этот плеер
02:29:02
input компонент только вместо биндекс с
02:29:06
мы должны написать и binder action вот
02:29:13
таким образом вместо биндо xs нужно так
02:29:17
бинт action да дальше вот здесь мы
02:29:22
должны давать я вот это наверное
02:29:23
полностью удалю вот эту строчку здесь мы
02:29:26
вместо тиран вместо терн мы должны
02:29:29
подать здесь jump вот таким образом так
02:29:33
еще раз бинт action да даже все
02:29:37
правильно здесь мы просто еще не все
02:29:38
записали дальше
02:29:40
здесь у нас есть два параметра если мы
02:29:42
выбираем именно action то здесь у нас
02:29:44
есть также как и на какие мне в
02:29:48
каких-нибудь bluprint ах да у нас здесь
02:29:50
а здесь есть так возьму кей там кейт кей
02:29:58
так я хочу какуето клавишу да точно так
02:30:01
же как у нас здесь есть у нас есть два
02:30:03
два выхода то есть прасад и визита то
02:30:06
есть при нажатии event при нажатии и
02:30:08
event при отпускании до
02:30:10
при приостановке нажать и до при
02:30:13
отпускании нажатия поэтому мы здесь
02:30:15
должны прописать а и эй не дальше присед
02:30:22
вот таким образом мы должны подписать а
02:30:23
и присед дальше ключевое слово т.с.
02:30:27
через запятую и здесь мы должны написать
02:30:30
как раз таки ссылку на тот метод который
02:30:33
должен у нас отрабатываться если мы посмотрим
02:30:37
вот сюда то у нас здесь есть этот person
02:30:40
себе и jump то есть мы можем смотрите
02:30:43
нам нужно вот это вот скопировать нам
02:30:46
нужно название вот этого метода jump
02:30:48
здесь скопировать только перед тем как
02:30:51
его здесь вставлять нужно написать еще
02:30:53
вот такой вот такую с носом и теперь
02:30:57
смотрим то есть что у нас получается
02:31:00
теперь когда я вот здесь вот эту jump
02:31:04
функции выделяю у нас выделяется вот
02:31:07
здесь мы в ссылку как бы на пространство
02:31:10
имен и нашего персонажа и jump да то
02:31:13
есть таким образом мы забили что когда у
02:31:15
нас срабатывает event jump как раз таки
02:31:18
у нас есть в настройках да когда у нас
02:31:20
срабатывает jump когда мы нажимаем с.б.
02:31:22
spacebar так когда нажимаем space bar
02:31:26
именно пресс то есть мы нажимаем у нас
02:31:28
срабатывает метод на нашем персонаже
02:31:31
функция jump вот так вот оно срабатывает
02:31:35
теперь я вот это все копирую и сейчас мы
02:31:39
тут нам надо изменить даст очень мало
02:31:41
вместо price at нам нужно при том же
02:31:44
название нам нужно здесь написать
02:31:46
realized вот таким образом и здесь место
02:31:49
price is the wireless и вместо джон
02:31:52
ставим здесь стоп джанкой вот таким
02:31:55
образом она сейчас подтянется давить я
02:31:58
здесь выделяю я здесь выделяю именно
02:32:00
стоп джампинг и у нас выделяется вот это
02:32:03
в стоп чем то есть мы за бенди ли здесь
02:32:05
прыжки и здесь и теперь нам остается
02:32:10
давайте вот так вот даже скопируем и
02:32:13
сейчас нам осталось забиндить и движение
02:32:17
вперед назад вправо влево я так и пишу
02:32:20
что это бенди движение вперед-назад ,
02:32:28
вперед-назад и влево вправо
02:32:34
что мы делаем дальше значит так вот что
02:32:38
касается вот это бен икс с вот это нам
02:32:40
только нужно здесь удалить хотя на самом
02:32:43
деле ну да то есть вот это нам сейчас
02:32:46
нужно удалить на счетах для начала мы
02:32:48
начинаем
02:32:49
из cmu форвард насчитать возвращаемся в
02:32:51
движок я копирую здесь муфт форвард это
02:32:54
у нас вперед назад я здесь пишу move
02:32:58
forward дальше ключевое слово также нужно
02:33:01
прописать ключевого слова ds дальше
02:33:05
через запятую необходимо собственно
02:33:09
необходимо написать как раз таки ссылку
02:33:11
опять же на ту функцию как на функцию в
02:33:13
нашем персонаже да точно так же я могу
02:33:15
вот это вот скопировать так я вот этому
02:33:18
гуска 1 только из заменить название то
02:33:21
есть вот это небеса стоп джампинг я
02:33:23
ставлю move forward да то есть когда мы
02:33:26
теперь нажимаем у фонды у нас уже xs то
02:33:29
есть это у нас да нет нажата либо не
02:33:31
нажата вот у нас вызывается
02:33:33
ds как бы в этом в этом классе в этом
02:33:38
классе нас вызывается метод move forward
02:33:43
так и уже заговариваться начиная но
02:33:45
ничего страшного соответствие теперь я
02:33:48
вот это самое копирую и только меняю из
02:33:52
cmu форвард меняю нам of light и здесь
02:33:58
вместо мув for more я ставлю of light
02:34:02
вот таким образом теперь я нажим
02:34:04
сесть и у нас появляется of life значит
02:34:08
что у нас таким образом получилось таким
02:34:12
образом мы только что за бенди ли как
02:34:15
раз таки все вот эти наши методы теперь
02:34:19
у нас единственное что нам осталось для того
02:34:21
чтобы создать полностью рабочего
02:34:23
уже персонажа на си плюс плюс может
02:34:25
слову скомпилировать а муж контур shift
02:34:27
и нажать даты можем скомпилировать
02:34:30
увидеть что у нас нет никаких сейчас
02:34:32
ошибок и что нам осталось нам осталось
02:34:34
сейчас прописать вот эти функции в
02:34:38
частности давайте начнем да начнем
02:34:40
наверное из-за чего начнем давайте из
02:34:42
junk vegan неважно на самом деле давайте
02:34:45
начнем из jump off до из прыжков еллинов
02:34:49
то неважно там я еще начнем давать ему
02:34:52
форварда ночные начнем первое что мы
02:34:54
должны проверить то есть мы должны
02:34:55
сейчас проверять как раз таки вот перед
02:34:58
тем как двигаться как прыгать мы должны
02:35:00
проверять переменную т.д. то есть это
02:35:03
очень важно и сейчас я вот здесь беру я
02:35:07
возьму переменную dd и я здесь должен
02:35:10
поставить
02:35:11
условный конструктор iv и здесь я буду
02:35:14
кое-что проверять здесь iv дальше на
02:35:18
скобочки после скобочки открываю
02:35:21
квадратные то эти самые прямо у к что я
02:35:24
туплю уже какие-то фигурные скобки и в
02:35:28
iv мне здесь нужно кое-что прописать но
02:35:30
помимо проверки на саму переменную
02:35:32
смерти нам нужно еще кое-что проверить
02:35:36
то есть я еще здесь открываю ещё одни
02:35:38
скобки здесь я пишу нам нужно проверить
02:35:41
вообще есть ли контроллер это писать ну
02:35:43
во первых нужно проверить есть ли
02:35:44
контролем это вообще не очень
02:35:46
обязательно но в документации движка это
02:35:49
советуется делать поэтому мы последуем
02:35:52
их совету я здесь пишу control а вот я
02:35:57
здесь пишу контрола оставлю дальше знак
02:36:01
неравенства то есть то есть то дальше
02:36:06
пишу на у то есть пиво первых мы
02:36:08
проверяем что контроллер должен быть не
02:36:11
на то есть он должен ну как бы не не
02:36:14
существовать не не существовать от
02:36:16
значит существовать
02:36:17
нас должен быть контроллер дальше мы
02:36:19
проверяем по конъюнкции конъюнкции это
02:36:21
условное
02:36:22
и вот эта у нас конъюнкция по конъюнкции
02:36:26
мы дальше проверяем так по конъюнкции мы
02:36:31
дальше проверяем вообще как бы значение
02:36:35
то есть поскольку вот этот x с вэлью да
02:36:39
то есть это именно не да нет
02:36:41
возвращаемся вот сюда да то есть у нас
02:36:44
есть те
02:36:45
такие управленческие методы которые как
02:36:48
прыжок который он либо ты нажал и все а
02:36:51
есть такие которые еще дают значения до
02:36:53
то есть как я уже говорил что можно
02:36:55
топили педаль газа нажать немножко можно
02:36:58
нажать очень до конца можно отпустить ее
02:37:00
там sticker мостик в листики можно на же
02:37:03
можно вправо по сунуть влево по сунуть
02:37:04
там немножко по сунуть поэтому здесь она
02:37:07
у нас всегда подает какие-то значения
02:37:09
нам нужно отсеять
02:37:11
нам нужно нам нужно не обрабатывать эти
02:37:14
методы когда вот эти значения у нас
02:37:16
равны нулю то есть когда у нас тег стоит
02:37:18
в дефолтном положение поэтому я здесь
02:37:20
пишу икс с на самом деле неважно
02:37:23
абсолютно как этот актив техническое
02:37:25
название взял xs нам должны проверить
02:37:28
точно так же даже проверка что оно
02:37:30
должно быть не равно 0 . 0 и f то есть
02:37:35
во первых проверяем что нас есть
02:37:36
контроллер во-вторых мы проверяем что у
02:37:39
нас stick или там руль хоть немножечко
02:37:42
на самом деле мы на клавиатуру дело
02:37:44
номер сейчас вообще не нужно но тем ни
02:37:46
менее могли бы сделать это через
02:37:48
action не пинать пусть так будет пусть
02:37:50
остается так мы проверяем что у насти
02:37:52
хотя бы немножко от это самый отодвинут
02:37:55
под поскольку эти и
02:37:56
и рб от идут всегда и еще одна
02:37:59
конъюнкция как раз таки то что нам нужно
02:38:01
это мы должны проверить что наша бдд
02:38:07
не равно вот таким образом так мы должны
02:38:10
проверить еще что наша вот эта
02:38:12
переменная ted не равно true хорошо
02:38:16
отлично
02:38:17
что мы делаем дальше дальше после того
02:38:22
как мы уже написали условной конструкцию
02:38:24
мы должны как раз таки написать логику
02:38:27
написать логику как раз ты
02:38:29
и движения вперед в как это будет
02:38:31
выглядеть так во первых мы должны
02:38:34
определить как бы направление движ
02:38:37
направлении просмотр нашего к нашей
02:38:39
камеры то есть мы здесь должны записать
02:38:42
в константу я здесь пишу const
02:38:46
const f rotate вот таким образом должно
02:38:52
быть так const f 100 т.р. вот который мы
02:39:00
назовем сейчас вот эйшн вот таким
02:39:06
образом так и мы должны то есть так еще
02:39:09
раз фото2 жу что что-то не так не тем
02:39:17
цветом подсвечивает мы создаем константу
02:39:22
мы создаем константу переменную типа
02:39:26
ефрейтор в которой мы присваиваем
02:39:28
возвращаем его значит возвращаемое
02:39:31
значение из контроллера get control
02:39:35
rotation то есть что мы здесь делаем я
02:39:37
здесь вызываю на контроллер и на
02:39:42
контроллере я вызываю функцию get так
02:39:47
can throw с двумя l должно быть на can't
02:39:51
get вызываю функцию get get control
02:39:58
rotation вот таким образом и первые
02:40:03
фунта первые на первые действия
02:40:05
закончились во-первых мы должны точно
02:40:07
так же как мы делали это на blu бинтах
02:40:09
во-первых мы записали в переменную
02:40:11
rotation типа ф ото рта из другого
02:40:13
переменной rotation это внутри себя это
02:40:16
трепло от паров трепло от переменной да
02:40:19
мы записали поворот куда смотрит камера
02:40:22
но наша камера с нам но нам интересно
02:40:25
тилль только по направлению куда мы
02:40:28
смотрим с не интересует там вверх-вниз
02:40:30
нас интересует только по горизонтали от
02:40:33
персонажа поэтому следующее что мы
02:40:35
должны мы должны в переменную я в
02:40:39
rotation записать то
02:40:40
значения по оси я уж там и делать то
02:40:43
есть я пишу точно также const
02:40:45
мне интересную здесь con ств utorrent за
02:40:48
ваял конским даже здесь забыл написать
02:40:54
тип в.ф. то есть мы создаем здесь
02:41:00
переменную я в rotation типа f ротатор
02:41:02
также только мы сюда уже из нашего
02:41:05
ротатора
02:41:06
запишем только одно значение то есть я
02:41:09
вот открываю скобки так я здесь открываю
02:41:15
скобки теперь я здесь пишу 0 .
02:41:20
то есть у нас получается я это должно
02:41:23
быть по центру дальше я пишу 0
02:41:25
и вот здесь я пишу я могу даже
02:41:28
скопировать вот этот rotation .
02:41:32
я к слову да то есть должно быть 0 . 0
02:41:38
of 0 . 0
02:41:43
рф так что я так все ли я правильно
02:41:48
сделал так ну давайте попробуем
02:41:50
скомпилировать а посмотрим не допустил я
02:41:52
здесь ошибок никаких по-моему я здесь не
02:41:56
допустил никаких ошибок ой немножечко
02:42:02
да и здесь допустил ошибку здесь сюда
02:42:06
здесь не нужно писать знак присвоение то
02:42:09
есть вот так нужно писать и здесь нужно
02:42:10
написать 0 и здесь нужно написать 0 вот
02:42:15
таким образом за еще с контур shift б то
02:42:18
есть мы получается присваиваем верней не
02:42:22
так то есть мы здесь делаем небольшую
02:42:25
оптимизацию то есть мы поскольку вот эта
02:42:27
переменная брат вот этот класс вот это
02:42:31
тип f ротатор он как бы является классом
02:42:35
одновременно и в классе есть конструктор
02:42:38
и мы
02:42:39
ну короче мы сразу его инициализируем
02:42:43
вот этими значениями на одну операцию
02:42:45
это самое делаем на одну операцию
02:42:47
быстрее мы могли бы присвоить из ночей
02:42:49
ну короче здесь мы в мы создаем
02:42:53
переменную я врачей шин типа f ротатор и
02:42:57
инициализируем то есть не при своим не
02:42:59
копируем туда значению а сразу
02:43:01
инициализируем к2о этот самый сразу
02:43:06
подаем в конструктор значений типа 0
02:43:09
дальше rotation я вот именно вот я в
02:43:12
значение i0 таким образом у нас вот эта
02:43:15
переменная в rotation сейчас находится
02:43:17
именно куда смотрит вот именно камера по
02:43:23
направлению я у то есть именно по оси
02:43:26
координат
02:43:27
я хорошо давайте наверное я здесь
02:43:32
придётся мне ещё раздавать я здесь еще
02:43:34
раз закомментирую добавлю комментарий
02:43:36
чтобы не запутаться что здесь мы
02:43:39
получаем угол направление камеры
02:43:45
получаем угол
02:43:49
направление камеры по оси я ну примерно
02:43:55
вот тогда то есть вот что мы здесь
02:43:57
получаем дальше дальше нам необходимо
02:44:01
задать именно направление движения то
02:44:04
есть нам нужно именно вектор перевести
02:44:07
это вектор то есть перевести это
02:44:08
параметр ну поскольку
02:44:10
вот именно в функция от mum and input
02:44:14
она требует как она требует два
02:44:18
параметра да давайте я сейчас вернусь
02:44:21
вот сюда в эта функция которой мы там
02:44:24
вызывали так вот это так вот эта функция
02:44:30
от момент input она требует помимо
02:44:33
в нашего в илью да помимо вэлью она
02:44:35
требует еще и направлении то есть но это
02:44:39
как бы направление вектора куда мы смог
02:44:41
куда двигаться до поэтому нам сейчас
02:44:43
нужно вот как раз таки вот это высчитать
02:44:45
вот высчитать
02:44:46
именно куда двигаться хорошо я думаю с
02:44:49
этим вопросов нет
02:44:53
так значит что мы делаем здесь нам нужно
02:44:59
тоже написать com'st нам нужно высчитать
02:45:03
вектор значит так у тип создаем
02:45:06
переменную константу типа f вектор
02:45:11
создаем переменные константу типа f
02:45:14
вектор которую я называю дайр accent
02:45:18
который я называю дай в action вот
02:45:21
который я присвою присваиваю значение f
02:45:30
так
02:45:31
of rotation matrix сюда подаём то есть
02:45:37
мы вычитаем на основании вот этой нашей
02:45:39
а врачей шин .
02:45:45
get get you нет axis вот таким образом и
02:45:52
здесь еще торкс на
02:45:54
; и здесь нужно еще написать что я
02:46:02
именно здесь е exit 2 : и по оси y здесь
02:46:07
это достаточно сложно понять но по сути
02:46:10
как мы вызывали на то что мы делали как
02:46:14
раз таки на blu принтах то же самое мы
02:46:17
сейчас дело на языке си плюс плюс то
02:46:19
есть вот эту функцию означать а пациента
02:46:22
есть мы условно говоря по вот этому я в
02:46:25
rotation по оси yaw из как бы из
02:46:31
направлении из ротатора делаем вектор ну
02:46:34
вот что-то нечто подобное давайте
02:46:36
наверное стоит здесь также
02:46:37
закомментировать нужно здесь добавить
02:46:39
комментарий вернее
02:46:40
добавить комментарий что мы здесь
02:46:47
рассчитываем вектор вектор в скобках
02:46:54
направление движения и задаем в движении
02:47:01
ну как бы задавать движение мы будем
02:47:03
сейчас и задавайте же
02:47:05
как я уже говорил здесь есть функция это
02:47:09
тот момент input куда нужно задать два
02:47:13
параметра так здесь если поставить
02:47:16
запятую здесь если поставить запятую то
02:47:19
здесь нужно задать два параметра во
02:47:21
первых это наше
02:47:22
axis вот то есть ну как бы вот это наша
02:47:26
exec да то есть как бы скорость ну как
02:47:28
бы скорость ножа не даст скорость
02:47:30
движения которые у нас идет от джойстика
02:47:32
до либо от руля дать ну в данном случае
02:47:34
при нажатии на клавишу на клавиатуре у
02:47:36
нас будет идти либо ноль либо если мы
02:47:39
нажимаем w будет идти один или что там
02:47:41
будет идти до или есть мы нажимаем месту
02:47:43
будет идти -1 до здесь вот она видно что
02:47:46
вот если мы нажимаем с нет если нажимаем
02:47:48
далее нажимаем w получается один из
02:47:51
нажимаем с у нас будет минус 1 хорошо и
02:47:55
вот сюда и в первый параметр нам нужно
02:47:58
подать как раз таки именно вот тот же
02:48:00
самый вектор таким образом у нас уже
02:48:03
полностью мы только что создали одну из
02:48:06
функций
02:48:07
это было запутано но мы с этим
02:48:10
справились выражают control shift бед и
02:48:14
смотрим смотрим что у нас получается
02:48:16
сейчас нас компилируется проект и в
02:48:19
узком миллионам проекте мы сейчас уже я
02:48:21
надеюсь сможем двигаться вперед назад
02:48:32
так я открываю проект захожу вот сюда
02:48:36
нажимай play
02:48:41
так а почему он бегает в разные стороны
02:48:50
да у нас движение есть но 2 же движение
02:48:55
идет нефть и стороны и где то скорее
02:48:57
всего допустил здесь ошибку так да на
02:49:03
самом деле это здесь я допустил ошибку
02:49:05
здесь нужно не по игреку а здесь нужно
02:49:08
по иксу да это моя ошибка я нажимаю еще
02:49:10
раз control shift d
02:49:11
да я уже за это самые здесь именно что
02:49:15
вот это я а это не
02:49:17
y а это x то есть по оси x
02:49:21
дожидаемся еще раз компиляции и сейчас
02:49:24
посмотрим работает или нет ну должно
02:49:27
работать я нажимаю плей до и мы сейчас
02:49:30
можем видеть что вот у нас все отлично
02:49:32
работает точно с переменной там
02:49:34
выключена да то есть нас персонаж и жив
02:49:36
и он уже двигается вперед-назад
02:49:38
он еще вправо-влево не может двигаться и
02:49:41
он еще не может двигаться и он еще не
02:49:43
может прыгать ну отлично то есть пока у
02:49:46
нас тем не менее все работать мы
02:49:48
написали уже функцию движения вперед
02:49:51
теперь мы будем теперь мы будем
02:49:55
собственно писать
02:49:58
функцию для движения влево вправо для
02:50:02
этого я вот эту всю конструкцию могу
02:50:04
скопировать поскольку основная часть
02:50:07
этой конструкции у нас будет тоже самое
02:50:09
только нам нужно внести здесь сейчас
02:50:12
некоторые изменения так вот здесь у нас
02:50:17
есть xs давайте я здесь поставлю y по моему
02:50:20
вот этот так давайте посмотрим моему это
02:50:22
все то здесь нужно только изменить
02:50:23
направление то есть у нас получается
02:50:26
отсюда будут идти уже не от ws не от
02:50:29
вперед назад а уже влево вправо и
02:50:31
соответственно я здесь изменил сейчас я
02:50:35
здесь изменил сейчас просто направление
02:50:37
на y то есть по моему вот вот это будет
02:50:40
точно так захожу сейчас в движок до
02:50:44
смотрим то есть все у нас здесь вот эта
02:50:47
функция движения влево-вправо выглядит
02:50:50
она на самом деле точно так же как и
02:50:52
вперед назад только по другому
02:50:54
направлений только не вперед назад
02:50:55
а влево вправо то есть по другой оси
02:50:57
отлично таким образом мы уже создали две
02:51:00
функции нам осталось создать еще две
02:51:03
функции два метода это прыжки на самом
02:51:06
деле здесь все будет достаточно просто
02:51:08
мы еще раз это копируем но нужно нам
02:51:10
будет сейчас исключительно искренно
02:51:13
нужно да кстати здесь нужно еще изменить
02:51:18
получаем угар направлении по оси я у
02:51:22
и здесь рассчитанном направление
02:51:24
движения движения направлении вектор
02:51:31
движения так вектор движения и задаем 2
02:51:37
же да по сути здесь все правильно то я
02:51:39
проверю все правильно и со
02:51:40
комментировать так что же получается
02:51:42
только вот здесь у нас уже нету проверки
02:51:46
нету проверки на x и стоит на входное
02:51:50
значение поскольку здесь входного
02:51:52
значения нет и вот этот jan да то есть
02:51:57
вот эта функция jiang нам нужно вот эту
02:52:00
функцию jiang нам нужно здесь вызвать in
02:52:03
our корректоре то есть персонажи уже
02:52:05
есть эта функция поэтому я здесь пишу я
02:52:09
могу даже вот подняться выше мы здесь
02:52:11
наследуем где эй корректор корректор
02:52:17
есть уже функция jump заходим себе и так
02:52:22
идем сюда вот здесь есть и директор и в
02:52:28
нем есть функция jump в нем есть функция
02:52:33
джан вот так и точка с запятой теперь мы
02:52:38
это можем скопировать вставить вот сюда
02:52:40
и здесь только вместо jump нужно
02:52:45
изменить на
02:52:49
так нужно из jump изменить наш стоп
02:52:53
джампи вот таким образом я меняю jump на
02:52:56
стоп джампи control shift
02:52:58
uber copy комбик компилируем проект и по
02:53:03
сути все по сути мы уже по все создали
02:53:06
сейчас будем только еще несколько слов
02:53:09
расскажу как это все мы еще проверим
02:53:11
сейчас смерть персонажа и тогда
02:53:13
но по сути мы уже сейчас все написали
02:53:16
к слову здесь хочу сказать что если вы
02:53:20
не хотите проверку делать на смерть то
02:53:22
здесь не обязательно создавать функцию
02:53:25
стоп джампинг тут можно как бы вот это
02:53:28
вот скопировать смотрите а вот это могу
02:53:30
скопировать если бы мы ни делали вот эти
02:53:32
все проверки то мы могли бы прям вот
02:53:34
здесь в функции прыжка просто не на
02:53:38
нашем персонаже вот и торт person
02:53:41
корректор jump
02:53:42
тогда что я скопировал я не помню что из
02:53:44
как не пускать вот а мы бы могли в
02:53:47
теории так и корректор стоп чампи так а
02:53:55
да да да все верно просто без вот этого
02:53:58
да без вот этих скобочек да то есть если
02:54:00
вы хотели без проверки можно прям сюда
02:54:02
написать реке риктор стоп jang an так
02:54:05
возвращаемся возвращаем все как было до
02:54:07
и теперь мы видим давайте подведем итоги
02:54:11
что мы сейчас проделали так давайте
02:54:14
подведем итоги что мы написали сегодня
02:54:16
на си плюс плюс
02:54:17
защитах мы создав класс получили два
02:54:19
файла .
02:54:20
эй это заголовочный файл и . степи это у
02:54:23
нас файл реализации вот значит что мы
02:54:26
здесь сделали в файле степи мы
02:54:28
подключили все необходимые библиотеки в
02:54:31
первую очередь после чего после чего мы
02:54:35
в заголовочные файлы объявили все нужные
02:54:39
нам переменные и методы то есть мы
02:54:41
объявили здесь о создании нового
02:54:45
компонента камера бум вернее с принтером
02:54:49
компонента самой камеры
02:54:50
дальше методы движения вперед назад
02:54:52
влево вправо прыжок остановка прыжка и
02:54:55
также объявили здесь переменную
02:54:57
это после этого мы в нашем уже пипипи
02:55:02
файле файлы реализации мы здесь в
02:55:04
конструкторе задали различные мы здесь
02:55:08
за далее собственно размер капсулы
02:55:10
изменили мы здесь изменили поведение
02:55:14
управления персонажем мы здесь создали
02:55:17
сами объекты спринга рм компонента то
02:55:19
есть руки который держит камеру а также
02:55:22
мы здесь изменили также создали и
02:55:25
настроили саму камеру дальше настроили
02:55:27
наш момент компонент задали скорость
02:55:29
высоту прыжков вот и потом про
02:55:33
инициализировали переменную u tes
02:55:35
после чего мы задав после чего мы из-за
02:55:40
бенди все управление из наших input of
02:55:42
да то есть мы на наши input и за бенди
02:55:45
ли выполнение вот этих самых функций но
02:55:48
вы забили вот в выполнении всех вот всех
02:55:51
вот этих фунтов на нажатие клавиши на
02:55:54
нажатие с пейсами забить или прыжки
02:55:56
там дальше вверх движение вперед назад
02:55:58
влево вправо вот мы вот все забил деле
02:56:01
на выполнение методов которой мы здесь
02:56:04
сами и создали
02:56:05
и здесь у нас есть метод движения
02:56:07
вперед-назад
02:56:09
дальше вот это у нас метод движения
02:56:12
влево-вправо здесь можно
02:56:13
закомментировать если мы хотим
02:56:16
например что это у нас движение вперед
02:56:24
назад вот вот здесь вернее даже не вот
02:56:29
сюда и закомментировал а вот так вот это
02:56:32
у нас движение вперед назад вот это у
02:56:34
нас движение получается будет
02:56:38
влево-вправо да то есть вот здесь -
02:56:42
движения влево вправо и дальше у нас
02:56:45
есть прыжки при этом нас все эти функции
02:56:48
проверяют ещё дополнительную логику
02:56:50
не мертв ли персонаж что мы создали
02:56:52
переменные д-р которая собственно у нас
02:56:55
доступностью плинтов который мы уже
02:56:56
переключить и наш персонаж будет мертв
02:57:00
да то есть мы можем переключить и
02:57:01
соответственно мертвый персонаж не
02:57:03
сможет двигаться на этом из
02:57:05
siplus плюсом закончили я могу ещё раз
02:57:08
допустим скомпилировать и ничего не
02:57:09
поменяет все у нас здесь работает все
02:57:11
раз компилируется на си плюс плюс все
02:57:14
что мы должны были написать мы написали
02:57:16
давайте дождемся компиляции вот у нас
02:57:21
все скомпилировалось теперь я могу зайти
02:57:23
в игру вот у нас все уже есть мы бегаем мы
02:57:27
можем двигаться вперед назад можем
02:57:29
двигаться бегать вправо влево мы можем
02:57:32
проиграть мы можем управлять немножко
02:57:34
персонажем в прыжке
02:57:36
вот и таким образом мы только что
02:57:39
создали управление персонажем создали
02:57:42
персонажа третьего лица полностью
02:57:44
абсолютно с нуля на языке си плюс плюс
02:57:47
давайте теперь проверим еще поиграемся с
02:57:50
нас нашей переменной смерти как мы
02:57:52
помним
02:57:53
у нас здесь у нас есть переменная т
02:57:56
давайте на ивент тег я выведу здесь так
02:58:01
запустил случайно на ивент тег я сейчас
02:58:05
найду фрэнк фрэнк дальше я возьму д-да
02:58:11
вызову переменную get д да вот таким
02:58:15
образом потом ее в string дальше здесь
02:58:19
поставлю 0 и чтобы это переменной всегда
02:58:21
вводилось пусть оно выводится
02:58:23
каким-нибудь красным цветом нажимаю
02:58:25
компа нажимая сейф я нажимаю play и мы
02:58:28
видим что наш персонаж жив давайте я
02:58:32
даже сюда ну давайте я здесь вызову еще
02:58:40
функцию append да давайте здесь вырос
02:58:44
угрозу еще up and вот так вот так из
02:58:48
пробел можно и здесь напишу смерть
02:58:59
вот и нажимаю play мы видим что смерть
02:59:01
фолз то есть мы видим что наш персонаж
02:59:03
жив он не мертв наш персонаж не мертвой
02:59:07
теперь я создам
02:59:09
давайте я возьму две клавиши ну какие
02:59:11
взять например клавишу z и клавишу
02:59:17
ну x например почему нет давайте сейчас
02:59:21
найдем где-то клавишу x еще обычно я
02:59:27
пишу здесь кей уход нет где где она вот
02:59:34
xd
02:59:35
теперь что мы сделаем теперь я беру
02:59:37
здесь т т т т т т т и на нажатие z мы
02:59:42
будем делать персонажа мертвым-то
02:59:45
мертвым да и на нажатие клавиши
02:59:49
x мы будем делать персонажа живым что у
02:59:53
нас сейчас будем делать его живым
02:59:55
соответственно смотрим что у нас
02:59:56
получается я нажимаю клавишу play
02:59:58
у нас пишет смерть falls и при этом мы
03:00:01
можем прыгать мы можем бегать у нас
03:00:03
полностью работает управление
03:00:05
теперь я нажал клавишу z нас пишет
03:00:07
смерть true то есть мы изменили нашу
03:00:09
переменную написанную на си плюс плюс
03:00:11
и всю логику натру и теперь я нажимаю
03:00:14
клавишу там wsd дату себя пытаюсь
03:00:17
двигаться я нажимаю space lab и прыгать
03:00:19
наш персонаж мертв у нас управление нет
03:00:22
то есть каталоге которого когда-то
03:00:24
писали на углу принтах сейчас это все
03:00:26
написано уже на си плюс плюс то есть мы
03:00:28
видим что вот у нас персонаж не
03:00:30
двигается вы можете быть уверены что я
03:00:32
действительно нажимаются клавиши у нас
03:00:34
не двигается если я нажму сейчас x
03:00:36
выпиши мы видим сверху слева что у нас
03:00:39
смерть стала фолз и сейчас я опять могу
03:00:42
управлять персонажа если я опять нажму z
03:00:46
смерть станет труп наш персонаж стань
03:00:49
как будто мертвый и никакого управления
03:00:51
нет и причем это все нас написана
03:00:53
исключительно на языке программирования
03:00:55
си плюс плюс опять же я пишу здесь фол
03:00:58
нажимаю сет нас смерть выключается и наш
03:01:01
персонаж уже
03:01:03
бегает туда соответственно осталось
03:01:05
только создать там на здоровье персонажа
03:01:08
проверку на здоровье и переключение вот
03:01:10
этой переменной смерти да то есть есть
03:01:13
или нет и соответственно все управление
03:01:15
у нас уже работает отлично а на этом
03:01:19
собственно наш урок уже подошел концу
03:01:21
кому урок понравился кто посчитал вы
03:01:24
полезным ставьте лайки подписывайтесь на
03:01:26
канал и нажимайте на колокольчик чтобы
03:01:28
не пропустить новые видео и до новых
03:01:31
встреч

Описание:

In this video tutorial i'm gonna show you how to create a Character on c++ from scratch in Unreal Engine 4.

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

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

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

mobile menu iconКак можно скачать видео "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials"?mobile menu icon

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

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

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

mobile menu iconКакой формат видео "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials" выбрать?mobile menu icon

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

mobile menu iconПочему компьютер зависает при загрузке видео "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials"?mobile menu icon

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

mobile menu iconКак скачать видео "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials" на телефон?mobile menu icon

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

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials"?mobile menu icon

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

mobile menu iconКак сохранить кадр из видео "How to create a Character on c++ from scratch | Gamedev | Unreal Engine 4 tutorials"?mobile menu icon

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

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

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