Урок 3 | Unreal Engine 5 Мультиплеер - РЕПЛИКАЦИЯ
ฝัง
- เผยแพร่เมื่อ 22 พ.ค. 2024
- 21:Это третий урок из серии Unreal Engine 5 Мультиплеер, в котором мы будем разбирать репликацию данных
00:00 Содержание
00:44 Replicate Movement
07:21 Authority
09:45 Actor Replication
15:49 Component Replication
18:11 Vartiable Replication
21:57 Event Replication (RPC Function)
27:05 not-replicated
Разовый донат new.donatepay.ru/@cyberstars
Patreon - / cyberstars
Discord - / discord
TikTok - www.tiktok.com/@cyberstars_en...
Google Play - play.google.com/store/apps/de...
Facebook - CyberstarsEn...
Instagram - cyberstars_...
ВКонтакте - cyberstars_entertainment
Телеграм - t.me/cyberstars1
#cyberstars #gamedev @UnrealEngine
Discord - discord.gg/z8t2uSWCBq
Разовый донат new.donatepay.ru/@cyberstars
Patreon - www.patreon.com/cyberstars
Какие же крутые и познавательные видео, я просто кайфую! Спасибо, Cyberstars!
Тёплый комментарий поддержки канала
пожалуй, лучший канал по игроделу
Все четко без воды!!! Очень полезно!👍
Очень толково, красиво, познавательно и главное я кайфую от такого типа подачи информации. Спасибо 100500 раз
Мега харош , очень. Полезные видео
Лучший ! ✊
Спасибо за уроки.
Супер, жду следующее видео с нетерпением !!!
Я думал реализация мультиплеера в анриле в разы сложнее, а оказывается, что всё очень просто. Спасибо за уроки
Спасибки за очередной познавательный видось.
Очень жду продолжения!
Теперь понятно, почему при пирТУпир системе на повторах ДезКам всё выглядит так странно и потешно!)))
Отличный и познавательный ролик!
Хотелось бы добавить пожелание. В рамках серии туторов про мультиплеер, сделать ролик, в котором наглядно показывается как завершить свой мультиплеер в игру и подключить в него друзей. Пусть это будет сделано на обычной болванке, самом начальном уровне UE5.
Главное, это сам момент подключения других игроков к тебе. Спасибо заранее🙏
Все Это будет
Благодарю
Ааааааааа класс новый видос
Всего лишь стрим а эмоций море
И сколько радости в том что галочка работает
@@1play2fun это даже не радость а сплошное удовольствие
7:42 гномы из little nighmares 😂
А так, спасибо за урок!
Супер! Можно что не будь про VR?
Большое спасибо за уроки, очень полезные.
К сожалению не всегда получается связать навыки из разных уроков в единое целое. Нельзя ли вернуться к серии уроков по AI и сделать как бы закрепляющий урок с реальным игровым функционалом. Я просмотрел все уроки из этой серии, но пока не смог сделать задуманное. Задача чисто игровая - например есть enemy, он должен патрулировать или по рандомным точкам(это есть в уроках) или по чек поинтам(этого нет). При этом постоянно мониторить присутствие игрока(у вас сделано через ConeCheck в BehaviorTree, но хотелось бы через AiPerception в AiController там больше настроек). Далее меняем анимацию на "преследование" - это важно! и пытаемся догнать игрока, если догнали то "атака", если потеряли из виду - то N секунд движемся к последней точке где видели игрока, и если не находим то пауза пару сек, опять смена анимации на обычную ходьбу и возврат в точку откуда начали преследование, потом продолжение патрулирования.
Я логику в принципе сделал, кусками, но не могу все связать вместе. Например не понимаю как пробросить состояние AiPerception внутрь BehaviorTree в тот момент когда бот делает "MoveTo", получается только после, но это уже не то. Или например есть StateEnum(Idle, Walk, Chase, Run, etc) для смены анимаций в AnimBP, и чтобы он работал внутри транзишенов в AnimBP его необходимо менять откуда то снаружи, видимо из BehaviorTree. Или я вообще неправильно понимаю структуру этого движка. Еще есть трабл с тем какие классы создаются раньше а какие позже. Например я умудрился вызвать переменную из blackboard до его создания.
Спасибо. Всё здорово, но очень не хватает отображения на экране нажатия клавиш.(
можно ли сделать так чтоб игроки могли переходить с уровня на уровень не зависимо к примеру (как бы один игрок быстрее прошёл эту карту, а второй нет его. который уже прошёл будит ждать его или же будит проходить дольше)
У меня есть один вопрос. Если я создал Искусственный интеллекта (с анимации, получается урон, нападает и так далее) и этот искуcственный интеллект будет да пустим каждый уровней или этоже будет ждать игрока. Как мне стоит начать начать через ивент бегин плай или не знаю?
Добрый день, у вас отличные уроки. Интересует вопрос как можно реализовать Выборочную репликацию клиентов? Предположим есть Персонажи за обзором камеры(или в тумане войны) и чтоб они реплицировались одному или группе игроков но не всем, только когда они попадают в камеру(от первого лица).
Есть дальность репликации.
В настройках класса
Либо реплицировать только то, что выделено. То есть внутри объекта делать проверку
Думаю заняться 3D моделированием спустя 22 года, умею рисовать портреты простым карандашом. Хотелось бы узнать, востребованы ли такие люди в индустрии?
Довольно да
3D-художников до жопы. Каждый второй посмотрел курсы. Но действительно качественных очень мало. Если не будешь развиваться, а просто вертексы гонять - не будешь востребован. Все просто.
@@nathanblake1535 Спасибо
Здравствуй, а есть ли возможность сделать открытый мир с планетами и космосом, с возможностью ходить по планета и летать между ними? Хотелось бы увидеть как это возможно сделать. Спасибо за твои видосы👍
Можно. World partition
Скажите пожалуйста уже есть видео о всех игровых движках
отдельного видео нет, но эта тема была затронута в этих роликах:
th-cam.com/video/KjBBC07hGjQ/w-d-xo.html
th-cam.com/video/V3SKOANqI-k/w-d-xo.html
@@cyberstars-5839 а снимите отдельный ролик?
возможно)
@@cyberstars-5839 если снимите про все игровые движки ну эти открытые закрытые по крайней мере из видео по пошаговой инструкций ну это я про категории,то буду очень благодарен
А можно на unreal engine сделать мультиплеер с разными персонажами с разной физикой (их модели и хитбокса?)
Можно
Здравствуйте у меня возникают проблемы по Unreal Engine 5
1 не получается перенести контроллер FirstPerson в ThirdPerson шаблон (через проводник захожу в мой проект в папку контент и копирую FirstPerson и в другом проекте в папку контент вставляю но исчезают все анимации итд )
зачем мне переность контролер ? мне нужен ai и FirstPerson в одном проекте.
2 я создаю модель домика и применяю к нему модель разрушения chaos но персонаж может сдвинуть это дом и сломать ТАК БЫТЬ НЕ ДОЛЖНО я пробовал увеличить массу но всё без успеха слышал про якоря но не нашел как их применить.
надеюсь на помощь буду очень рад если CyberStars снимет видео про систему разрушений.
Вопрос: а в unreal можно на блюпринте использовать модели с других программ?
Нет
Доброго времени суток. Вопрос по RPC. Объясните, пожалуйста, почему если НА ИНПУТ спавнить меш из блупринта игрока с RPC serv->multi, то отображается у всех клиентов, но если сделать тоже самое через блупринт контроллера - не работает. Все никак не могу с этим разобраться, тыкался везде и по-разному, но не выходит.
Павн перса реплицирован - его копия есть у всех сторон.
А контроллер не реплицирован . Его копия есть только у сервера.
@@cyberstars-5839 То есть получается так: если я хочу на инпуте делать действия, которые должны быть видны у других игроков (например спавн проджектайл пули), я должен логику инпута прописывать именно в персе?
Или есть какой-то обходной вариант?
По итогу я в контроллере на инпут вызвал кастомную serv функцию самого перса и все сработало (что конечно очень логично). Это нормальная практика или есть способы так сказать по-правильнее?
Заранее спасибо за ответы
Вот пытаюсь изучать репликацию переделивая темплейт с FPS. Там оружие идет как меш компонент и логика выстрела в ньом. Когда пытаюсь зделать спавн пули з клиента передавая рпс на сервер, ничего не происходит и в лог пишет что неимею контроля над компонентом оружия. В чем тут проблема?
Компонент тоже должен быть реплизирован (галочка)
А для каких целей нужен вызов run on client? Где это можен пригодится в мультиплеере?
Для тестов. Когда нужно запустить сервер из клиента
@@cyberstars-5839 Спасибо!
А можно ли будет сделать игру-мультиплеер без синглплеера?
Хехе . Можно
@@cyberstars-5839 Я просто игру с другом делаю,на подобии PUBGMobile,но мы всё делаем по гайдам,т.к. мы ничего про это не шарим,новички грубо говоря).
✌✌✌✌✌✌✌✌
Из блюпринта репликация с мульикаст не передаётся на сервер (а от сервера на клиент передаётся) - в чём может быть причина? Клиентом открываю дверь, но сервер не видет открытие/закрытие двери, но если сервер открывает/закрывает дверь - клиент видет.
В блупринте перед мультикаст нужен RPC на сервер
24:57
@@cyberstars-5839 В том то и проблема, что он не отправляет на сервер, Run on Server не работает.
@@xo0oxNicKeRxo0ox Да, всё верно, но не работает так. Может быть причина в том что я это делаю в отдельном блюпринте, а не в BP_персонажа? У меня блюпринт Актор.
Да, из за этого.
Нужно владеть тем actor с которого вы реплицируете
Урок по GAS будет?)
Блюпринтеры его потом запинают резиновыми палками?
@@1play2fun есть плагины для упрощенной работы с инициализацией GAS.
А с какой целью нужно просчитывать координаты и на клиенте и на сервере, если эти данные всё ровно будут получены всеми с сервера, почему нельзя просто просчитывать всё на сервере а клиенту выдавать результат, в чем причина??
Это просчитывается на сервере а с клиента приходят данные куда игрок хочет пойти
причина в том, что передача данных по сети производится реже, чем отрисовка на клиенте, и в промежутке между получением данных от сервера надо визуал чем-то восполнять (иначе будут подлагивания). Поэтому и реализуют экстраполяцию, чтобы было плавно, пока не пришли актуальные данные от сервера.
Помогите кто может, я могу использовать мегасканы для андроид игры? это вобше возможна? Я имею в виду они не будут ли слишком тяжолымы для мобильных устройств
будут тяжелыми, у андроида редко так много VRAM
@@1play2fun спасибо
Мегасканы весят много, да и на компах порой лагают. Однозначно нет
@@psychokiller4524 спасибо
если мобилка, то лучше тримы, так, на мой взгляд, будет лучше. Тут вообще биться за оптимизацию придётся
16:00
напомните плз как переключиться между игроками
Один игров должен запустить карту с опцией listen.
Нод open level
почему гейм мод существует только на сервере, если он существует на клиенте ?
Его логика выполняется на сервере
Если вам лень смотреть всё видео то вот спойлер: без галочки "replicate" ничего не работает 😀
Делай тайм коды
Плюсую, без тайм кодов сложно ориентироваться
уважаю попытку автора объяснить эту страшную сложную тему, трудился.
но, к сожалению, эту репликацию все объясняют ужасно
ничего понять не могу. Как репликация вообще работает?
Где сервер, где клиент? Нужны практические примеры, а не синие кубики.
Вот например, у меня динамический материал на персонаже.
Хочу чтобы они бегали разноцветные - и я видел кто из них host, а кто клиент.
Что мне в реплицировать? Сам материал? Или какую-то вспомогательную переменную типа Color если я хочу поменять ему цвет и все увидели. Вот эта суть не понятна. Сами основы.
наверное, я поспешил заняться мультиплеером, никто не может пояснить самое простейшее
например, как мне увидеть пушку в руках другого игрока или то, что он окрасился в другой цвет.
начинают мне перечислять все галочки в движке, перечисления, все возможные термины
и выстреливают их как из пулемета. Это ужасно.
Стиль подачи у автора, как будто он в академии наук сдает зачет. И академики ему кивают головами. А автор мелом выводит трехэтажные формулы, одну за другой. И говорит книжными словами, как академики любят.
Нет, тут не академики. Обычные ученики.
Понимаю что это сложная наука, но зачем ее еще сильней усложнять. А потом люди будут делать багованные и тормозящие игры.
Через RPC всё это реализуете, передаёте параметры на одной стороне, обрабатываете на принимающей и передаёте дальше (или всем), если нужно. А на счёт репликации переменных - в видео было сказано как сделать репликацию с вызовом обработчика, пересмотрите видео внимательно ещё раз =) При репликации (если указан правильный тип репликации конечно), может вызываться обработчик с вашей логикой.
На счёт стиля изложения, - обычный академический стиль, когда сначала рассматривается всё в общих чертах (основной концепт), а потом уже более детально по каждому из ранее изложенных пунктов.
Если это самый первый проект в рамках обучения, то конечно мультиплеер это слишком рано. Для начала необходимо ознакомиться с движком, с инструментами, с доступными классами и компонентами. Сделать что-то простое в оффлайн, задействуя все основные классы и инструменты (gamemode, level, hud, controller, aicontroller, actor, pawn, редактор ландшафта, анимации, звуки, частицы и прочее). Возможно даже несколько раз в разных стилях для закрепления. Потом уже изучать мультиплеер. И проект, который планируете выпускать в общее пользование уже можно затачивать под мультиплеер. Хотя бы архитектура проекта всегда должна придерживаться клиент-серверному взаимодействию, даже если проект делается под одного игрока.