250 000
Информационные технологии и интернет
Октябрь 2024
Требовалось создать иммерсивную витрину для держателей NFT экосистемы TON, которая превращает плоский список токенов в живое выставочное пространство и при этом остается доступной максимально широкой аудитории. Ключевые требования к продукту:
- Полностью браузерный запуск без установки приложений и без потери качества трехмерной графики.
- Единый продукт для десктопа и мобильных устройств вместо двух раздельных разработок.
- Подгрузка NFT напрямую из источников экосистемы TON, включая маркетплейсы и децентрализованное хранилище IPFS, с непредсказуемыми форматами и пропорциями изображений.
- Интерактивное редактирование экспозиции владельцем с сохранением раскладки между сессиями.
- Двусторонняя связка 3D-сцены с веб-страницей, на которой происходит авторизация через кошелек TON и располагается остальной интерфейс продукта.
Реализовано Unity WebGL приложение, встраиваемое в страницу через единый канвас и слой JavaScript-интеграции. Внутри собрана полноценная навигация от первого лица: контроллер персонажа на базе CharacterController с гравитацией, прыжком и проверкой опоры под ногами, управление камерой по горизонтали и вертикали с ограничением угла наклона, блокировка и захват курсора при переходе между режимами осмотра и редактирования.
NFT приходят в сцену пакетом в формате JSON с адресами токенов в сети TON, координатами, масштабом и номером стены. Каждое изображение загружается в рантайме асинхронно, автоматически нормализуется по соотношению сторон и размещается ровно в той точке экспозиции, где его оставил владелец в прошлый раз. Для владельца включается режим редактирования: перетаскивание полотен по стенам, бесшовный переход картины с одной стены на соседнюю, плавное масштабирование и подсветка активного объекта. Любое перемещение или изменение размера автоматически отправляется на сервер и становится новым постоянным состоянием комнаты.
Управление построено как единый слой ввода, который сам определяет платформу. На десктопе работают мышь и клавиатура, на смартфоне включается сенсорная схема с разделением экрана: левая половина отвечает за перемещение по принципу виртуального джойстика, правая за обзор камерой, а жест сведения и разведения двух пальцев масштабирует выбранное полотно.
Запущен публичный продукт, доступный по обычной ссылке без установки и без дополнительных плагинов.
Одна сборка Unity WebGL покрывает сразу десктоп и мобильные браузеры, что вдвое сократило объем разработки и поддержки клиентской части по сравнению с раздельными версиями.
Полный цикл взаимодействия с NFT работает в рантайме: загрузка коллекции из источников TON и IPFS, размещение в трехмерной комнате, интерактивная перекомпоновка и постоянное хранение раскладки.
3D-навигация от первого лица с физикой и плавной камерой реализована напрямую в браузере, сохраняя отзывчивость на обеих платформах.
Достигнута устойчивая работа с произвольным пользовательским контентом: изображения любого формата и размера автоматически приводятся к корректному виду без ручной подготовки.
Архитектура с четким разделением веб-слоя и 3D-движка дала продукту запас на развитие, включая социальные механики вроде перехода между комнатами и зон телепортации.