Полезное

Мы Вконтакте

Discord канал

#
Пред.
12
Модератор: icms
Аватара пользователя
Пользователь
Сообщения: 46
Есть несколько вопросов по мультиплееру.
1) Как правильно создавать при включённом мультиплеере(run dedicated server) персонажей (pawn и character) и как к ним использовать функцию Possess. Проблема в следующем: я создаю (Spawn Actor) персонажей в Game Instance и сохраняю их в переменные. Когда я к ним применяю Possess (пробовал вызывать её и в самом персонаже, и в widget и в game instance). Реакция нулевая. Да, персонажи появились (по крайней мере переменные стали валидными), но подключится к ним не получается.
2) Как правильно сохранять переменные? Когда я после создания персонажей в предыдущем пункте сохраняю их здесь же, в game instance, всё в порядке. Но когда я вызываю в game instance сохранение этих переменных в widget (я пробую перевести проект, создаваемый без расчёта на использования с сервером (не знал, что с сервером столько проблем) в онлайн режим. Логика в проекте строилась на том, что после создания пяти элементов (3 widget, один pawn и один character) вызывалась логика по сохранению ссылок на них в друг друга) и в персонажа выдаёт ошибку в message log. Конечно сохранение происходит (нет ошибок при cast-е), но если есть ошибка, значит существует проблема. Никакие репликации я не ставил.

В целом логика проекта такая: игрок входит в игру, попадая на стартовый уровень (там должен быть только один игрок), а потом при нажатии клавиши "играть" попадает в бой (в общем стандартны шутер - комната для редактирования персонажа и выбора оружия и переход на локации с разными режимами). Я пробую ориентироваться на вот это https://docs.unrealengine.com/en-US/Res ... index.html , но если сможете подсказать другие курсы по этой теме, буду благодарен.
Аватара пользователя
Пользователь
Сообщения: 46
3) Добавлю ещё один вопрос: как сделать, чтобы встроенные джойстики работали корректно? Если использовать джойстики из project settings, то джойстик любого клиента, начиная со второго работает не корректно. А именно при запуске выделенного сервера все клиенты управляют только первым клиентом. Это можно увидеть в любом мобильном проекте (то-есть такая проблема есть по умолчанию). Настроек у джойстиков мало, поэтому разобраться откуда идёт проблема я не могу. Если кто-то сталкивался с этой проблемой, то подскажите пожалуйста решение.
Аватара пользователя
Пользователь
Сообщения: 4069
AdvancedLocomotionSystem смотрел?, там вроде и для джойстиков реализовано, только смотри версию 3, в 4ре вроде еще не реализован мультиплеер на выделенном.
Аватара пользователя
Пользователь
Сообщения: 46
Проверил. Уточню ещё раз: мне нужны виртуальные джойстики из раздела Input в Project Settings. В этом пакете есть управление через джойстики XBOX, но виртуальных джойстиков нет.
Аватара пользователя
Пользователь
Сообщения: 4069
Alexander2002 писал(а):
Проверил. Уточню ещё раз: мне нужны виртуальные джойстики из раздела Input в Project Settings. В этом пакете есть управление через джойстики XBOX, но виртуальных джойстиков нет.

Уверен что с джойстиком XBOX у тебя все будет работать правильно?, просто не уверен что настроена правильно сетевая логика, мб быть в плеер контролере индекс 0 указан и много другое.
Хотя признаюсь, с мультиплеером я разбирался не очень много.

посмотри последний скрин мб поможет
https://forums.unrealengine.com/develop ... -not-local

да и это пригодится - http://cedric-neukirchen.net/Downloads/ ... irchen.pdf
Аватара пользователя
Пользователь
Сообщения: 46
Мне и не нужен XBOX. Мне нужны виртуальные джойстики (с помощью которых управляется на телефоне или любом другом устройстве с сенсорным экраном). Они есть в разделе Input Project Settings. Но если в одиночной игре всё работает прекрасно, то с выделенным сервером начинается какой-то бред. Я просмотрел множество настроек у этих джойстиков, но ни одна из них не даёт привязать джойстики к конкретному игроку. Что странно, ведь этот компонент встроен в редактор по умолчанию и следовательно работать должен без "плясок с бубном".
Аватара пользователя
Пользователь
Сообщения: 4069
нода PlayerController у тебя присутствует?, не думаю что виртуальные джойстик отличается от реальной клавиатуры, проблема в сетевой логике.
Аватара пользователя
Пользователь
Сообщения: 589
Я не пользуюсь мультиплеером. И с сетью не работал.

Но у меня есть подозрение что проблема с джойстики всё же существует. Причем с любыми.
Даже если просто посмотреть MARKETPLACE. Там есть плагины для джойстиков.

Достаточно посмотреть их описание, видео к ним. К примеру вот это:
https://www.unrealengine.com/marketplac ... ut-manager

Если бы не существовало проблемы такой. То и бы этих плагинов и не было бы.
Аватара пользователя
Пользователь
Сообщения: 4069
Agny писал(а):
Если бы не существовало проблемы такой. То и бы этих плагинов и не было бы.


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

Предполагаю что в плеер контролер работает с индексом 0, как здесь - https://youtu.be/9hpqapx1Fnk?t=59, требуется подключить переменную с ID игрока к контроллеру, или настроить сетевую логику по другому, не знаю деталей.
Аватара пользователя
Пользователь
Сообщения: 589
Prytaleks писал(а):
в данном случае проблема работы с сетью, а не в том что рандомный китайский джойстик определить не может.


В описании плагина написано что он позволяет согласовать плеер контролер с джойстиком.
Цитата:
assign device to specific a player (PlayerController)

А в видео показано как это делается.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница