Интеграция геймпада, 2 месяца спустя

Наконец закончил интеграцию системы обработки и вывода настроек геймпада в T-Reload на стороне меню. Не прошло и 2-х месяцев...

Интеграция геймпада, 2 месяца спустя

На картинке представлены геймпады для T-Reload, которые собраны в блендере.Основным требованием к моделям было: минимальная полигональность. У моделей выше около 6к полигонов.

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

  • создается модель геймпада с якорными точками всех кнопок и оформляется в префаб
  • в редакторе расставялются линии с примерным положением подписей к каждой кнопке
  • префабу геймпада задается ID и сопоставляется набор иконок, которые символизируют кнопки геймпада

На начальном этапе система геймпадов должна уметь:

  • вращать геймпад в зависимости от того, что игрок настраивает
  • поддержка геймпадов xBox, PS4, PS5, NintendoSwitchPro
  • поддержка нераспознанных геймпадов
  • разработать гибкую систему, которая позволяет подключать новые геймпады путем их добавления в редакторе Unity

Так как модели будут интегрированы в игру, еще нужно принять во внимание стилизационные особенности T-Reload. Но для дизайнеров (разработчиков) это обычное дело, как и вообще все, что ниже будет написано.

Процесс переделки меню под геймпад

Работу начал с анализа того, что было создано другими разработчиками:

Интеграция геймпада, 2 месяца спустя

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

Интеграция геймпада, 2 месяца спустя

Следующим шагом было разработать свою версию меню с геймпадом.

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

Первое время пытался протянуть линию к каждой кнопке, но быстро понял, что запутанный паук из кучи линий - это не то, что радует глаз. "Паук" выглядел примерно так:

Интеграция геймпада, 2 месяца спустя

Потому решил придержаться того подхода, который использовали другие разработчики (группировка кнопок):

Интеграция геймпада, 2 месяца спустя

Согласитесь, муравей с усиками выглядит лаконичнее :)

Процесс проб и ошибок был достаточно долгим, пришлось исписать много страниц А4 по нескольку:

Интеграция геймпада, 2 месяца спустя

Разработка моделей

Каждый геймпад должен иметь свою модель. Цена вроде как визуально приемлимых моделей еще вчера составляла около $20. С курсом доллара сегодня это стало дороже в 2 раза.

Но все эти модели достаточно высокополигональные: около 200к полигонов. Самое минимальное, что удалось найти - это 100к полигонов.

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

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

Интеграция геймпада, 2 месяца спустя

Далее скачал SubstancePainter, создал карты материалов, маски:

А вот и протекстурированные модели:

Интеграция геймпада, 2 месяца спустя
Интеграция геймпада, 2 месяца спустя

Модели выше еще были откорректированы (в основном материалы, шейдеры) так как нужно их стилизовать под T-Reload.

Вот модель геймпада xBox в игре:

Интеграция геймпада, 2 месяца спустя
Интеграция геймпада, 2 месяца спустя
Интеграция геймпада, 2 месяца спустя
Интеграция геймпада, 2 месяца спустя

Геймад от Nintendo заставил немного понервничать. Дело в том, что у меня его нет и по фотографиям из сети я не мог понять, что у него за линии на корпусе. Позже пришел к тому, что корпус геймпада немного прозрачный, а линии - это конструктивные внутренние элементы, которые просвечиваются через пластик.

Так выгдядит редактор наших геймпадов:

Интеграция геймпада, 2 месяца спустя

А здесь геймпад PS5 и xBox непосредственно в T-Reload:

Интеграция геймпада, 2 месяца спустя
Интеграция геймпада, 2 месяца спустя

Завершение

На данный момент мы провели несколько тестов того как люди взаимодействуют с системой настройки управления. Все недочеты исправлены. Переходим к доработке системы вывода иконок помощи в процессе игры :)

1515
13 комментариев

Честно говоря, я так и не понял причем тут модели к интеграции геймпада как метода ввода для игры

2
Ответить

Разрабатывали цельную систему всего меню, не только код или какую-то отдельную функциональную часть.
Модель геймпада используется для наглядного отображения кнопок в процессе их задания. Было принято решение использовать модель геймпада потому, что игроку проще сопоставлять кнопки и назначаемые им действия.

1
Ответить

Зачем, а главное — нахуя? Выглядит, как нецелевое разбазаривание человеческого ресурса. Эти модели будут отрендерены один раз в одной проекции, а времени на них ушло… Не легче было в векторе отрисовать?

1
Ответить

Модель вращается во время настройки.

Ответить

Странная идея, но как насчёт возможности менять цвет контроллера. Забавная была бы фича

Ответить

Это можно, но нужно? :)

Ответить