Наконец закончил интеграцию системы обработки и вывода настроек геймпада в T-Reload на стороне меню. Не прошло и 2-х месяцев...
![](https://habrastorage.org/getpro/habr/upload_files/ff3/2fa/ce5/ff32face5861b5d70b612a850e5cf3aa.png)
На картинке представлены геймпады для T-Reload, которые собраны в блендере.Основным требованием к моделям было: минимальная полигональность. У моделей выше около 6к полигонов.
Стояла задача разработать систему, которая позволила бы с минимальными усилиями подключить к игре новый геймпад. То есть новый геймпад должен подключаться примерно так:
создается модель геймпада с якорными точками всех кнопок и оформляется в префаб
в редакторе расставялются линии с примерным положением подписей к каждой кнопке
префабу геймпада задается ID и сопоставляется набор иконок, которые символизируют кнопки геймпада
На начальном этапе система геймпадов должна уметь:
вращать геймпад в зависимости от того, что игрок настраивает
поддержка геймпадов xBox, PS4, PS5, NintendoSwitchPro
поддержка нераспознанных геймпадов
разработать гибкую систему, которая позволяет подключать новые геймпады путем их добавления в редакторе Unity
Так как модели будут интегрированы в игру, еще нужно принять во внимание стилизационные особенности T-Reload. Но для дизайнеров (разработчиков) это обычное дело, как и вообще все, что ниже будет написано.
Процесс переделки меню под геймпад
Работу начал с анализа того, что было создано другими разработчиками:
![](https://habrastorage.org/getpro/habr/upload_files/185/f62/6ca/185f626caf10e56f1fe047edd1ed3dad.jpg)
Здесь, конечно, очень малая часть того что было изучено, но даже по этим картинкам можно сделать некоторые выводы.
Следующим шагом было разработать свою версию меню с геймпадом.
Первым делом была разработана система линий, которые подключаются к разным элементам геймпада и которые можно настраивать прямо в редакторе:
Первое время пытался протянуть линию к каждой кнопке, но быстро понял, что запутанный паук из кучи линий - это не то, что радует глаз. "Паук" выглядел примерно так:
![](https://habrastorage.org/getpro/habr/upload_files/788/7a6/d67/7887a6d67b045073137462ad81f12f00.jpg)
Потому решил придержаться того подхода, который использовали другие разработчики (группировка кнопок):
![](https://habrastorage.org/getpro/habr/upload_files/952/bc5/38d/952bc538da3f010bae8172c349909605.jpg)
Согласитесь, муравей с усиками выглядит лаконичнее :)
Процесс проб и ошибок был достаточно долгим, пришлось исписать много страниц А4 по нескольку:
![](https://habrastorage.org/getpro/habr/upload_files/832/ff6/aa7/832ff6aa736bdb79d81bbe40526d89f9.jpg)
Разработка моделей
Каждый геймпад должен иметь свою модель. Цена вроде как визуально приемлимых моделей еще вчера составляла около $20. С курсом доллара сегодня это стало дороже в 2 раза.
Но все эти модели достаточно высокополигональные: около 200к полигонов. Самое минимальное, что удалось найти - это 100к полигонов.
По этой причине геймпады пришлось моделить и текстурироовать самостоятельно. Результаты работы приведены на первой картинке статьи.
Последний геймпад - это геймад для случая, когда геймпад не распознан. Внешний вид этого геймпада не принципиален. Потому модель была сделана на основе нескольких реальных геймпадов. В конце, прикидывая то как придется рисовать иконки кнопок, все же пришлось переделать треугольную кнопку. Другие геймпады сильно менять нельзя.
![](https://habrastorage.org/getpro/habr/upload_files/7d2/e04/69a/7d2e0469a5be8ff32328ad639ab16e65.jpg)
Далее скачал SubstancePainter, создал карты материалов, маски:
![](https://habrastorage.org/getpro/habr/upload_files/cdc/514/a29/cdc514a29ccf4e6b789cba7d2f5d13ac.png)
![](https://habrastorage.org/getpro/habr/upload_files/fd8/754/ae2/fd8754ae2b78df4abacabc69a9b63134.png)
![](https://habrastorage.org/getpro/habr/upload_files/367/ae7/02d/367ae702d2cbdb5905d4b0d435e553fd.png)
А вот и протекстурированные модели:
![](https://habrastorage.org/getpro/habr/upload_files/5aa/4a9/6eb/5aa4a96eb12a6bfd55109a71879d6a25.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/ed1/4f4/71d/ed14f471ddc8dc429e2e08c6a8df4b1e.jpg)
Модели выше еще были откорректированы (в основном материалы, шейдеры) так как нужно их стилизовать под T-Reload.
Вот модель геймпада xBox в игре:
![](https://habrastorage.org/getpro/habr/upload_files/4fe/d9b/6c2/4fed9b6c2411226e0faf54095db503c5.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/c43/947/aa1/c43947aa11f17c118144eb4826f9dab6.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/82c/516/165/82c516165351358d8ffc10ed9e366886.jpg)
![](https://habrastorage.org/getpro/habr/upload_files/4b9/527/a58/4b9527a58eeba3e28afccef7d6b6cbfc.jpg)
Геймад от Nintendo заставил немного понервничать. Дело в том, что у меня его нет и по фотографиям из сети я не мог понять, что у него за линии на корпусе. Позже пришел к тому, что корпус геймпада немного прозрачный, а линии - это конструктивные внутренние элементы, которые просвечиваются через пластик.
Так выглядит редактор наших геймпадов:
![](https://habrastorage.org/getpro/habr/upload_files/f6e/605/ea1/f6e605ea1dda1f4cf486f47e9683dce9.png)
А здесь геймпад PS5 и xBox непосредственно в T-Reload:
![](https://habrastorage.org/getpro/habr/upload_files/aae/123/8f6/aae1238f63304cd9fcd415e05990818f.png)
![](https://habrastorage.org/getpro/habr/upload_files/d59/5ec/68d/d595ec68dfe213b902b25f6e2572c773.png)
Завершение
На данный момент мы провели несколько тестов того как люди взаимодействуют с системой настройки управления. Все недочеты исправлены. Переходим к доработке системы вывода иконок помощи в процессе игры :)
olivialouise
клево)