Воссоздал новую станцию минского метро «Аэродромная» и поезд «Минск-2024» в 3D. В это можно поиграть!
Привет, я 21-летний минчанин. Я занимаюсь разработкой на C# и Unity. В Минске открываются новые станции третьей линии метро, и я загорелся идеей воссоздать в 3D одну из них -> «Аэродромную», а также новый состав 81-765.7 («Минск-2024»).
Хочу честно рассказать про процесс разработки: от сборки моделей в MagicaVoxel до настройки логики и света в Unity.
Стилистику я выбрал воксельную. Она дает узнаваемый объемный вид, сохраняет стилистический минимализм и позволяет относительно быстро собирать геометрию.
Сборка моделей: Поезд «Минск-2024» и саму станцию со всеми защитными станционными дверями (экранами) я моделировал в MagicaVoxel. Главной задачей было выдержать реальные пропорции фар, светодиодных полос и платформы.
Проблема с сеткой: Экспорт вокселей напрямую создает гигантское количество лишних вершин и полигонов. Я попытался прогнать модели через Blender и оптимизировать сетку сторонними плагинами для децимации и чистки лишних вершин.
Итог: Плагины отработали криво -> геометрия ломалась, воксели «поплыли», а сетка превратилась в кашу с битыми UV-картами. От идеи пересобирать сетку в Блендере пришлось отказаться, чтобы не угробить визуал.
Решение: Оставил исходную геометрию и перенес весь упор на оптимизацию внутри Unity -> объединение мешей (Combine Meshes) для сокращения вызовов отрисовки (Draw Calls), настройку статичных объектов на платформе и работу с материалами.
Вся логика движения состава, таймингов и взаимодействия со станцией написана на C#:
Последовательность и корутины (Coroutines): Чтобы поезд останавливался строго у меток платформы без багов физики и непредсказуемого трения, цепочку событий (заезд -> торможение -> пауза -> открытие дверей) я завязал на C# корутинах. Это позволило точечно управлять задержками и таймингами процесса.
Анимации и синхронизация дверей (Animators): На «Аэродромной» установлены автоматические платформенные двери. Движение как дверей вагона, так и защитных экранов станции сделано через Animator. Корутина отслеживает остановку поезда и по очереди дергает нужные триггеры (SetTrigger), благодаря чему двери состава и платформы открываются и закрываются синхронно.
Освещение в URP: Для работы со светом использовал Universal Render Pipeline (URP). Основная задача -> передать атмосферу подземки: глянцевые отражения на полу платформы, свет фар в темном тоннеле и неоновые диодные полосы на кузове поезда.
Проект доведен до рабочего билда. Можно скачать бесплатную демо-версию на ПК, походить по станции, зайти в вагон и оценить результат.
🎮 Скачать демо на itch.io: https://casualman228.itch.io/minsk-metro-prototype
📢 Telegram-канал с обновлениями: https://t.me/conusgames
Буду рад фидбеку по атмосфере и освещению, а также вашим идеям для апдейтов -> что стоит доработать или какую станцию воссоздать следующей!


