AReal — объёмная карта Санкт-Петербурга в дополненной реальности

В приложении доступны семь 3D-моделей знаковых зданий города.

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

AReal — объёмная карта Санкт-Петербурга в дополненной реальности

Сегодня мы запустили своё первое AR-приложение — про Петербург в дополненной реальности. Оно очень простое: на плоскую поверхность проецируется карта центра города с маркерами, по тапу на которые можно изучить одну из семи 3D-моделей знаковых зданий.

В самом начале проекта нам казалось, что ничего в этом сложного нет: мы просто возьмём готовые SDK, изучим туториалы и за пару месяцев соберём приложение. Мы ошибались. В этой истории мне хочется поделиться опытом нашей команды и заодно структурировать эти знания для себя.

Хайп вокруг AR- и VR-технологий не стихает уже давно. Кажется, ещё многое предстоит выяснить, порой не разобраться, где реальная польза, а где только обещания сделать этот мир лучше. В 2012 году вышло множество приложений с технологией дополненной реальности: поиск достопримечательностей, помощь в навигации в городе и прочее.

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

Всё начало меняться с развитием «железа» в смартфонах, стало возможным применение алгоритмов компьютерного зрения на устройстве. И конечно же, большие компании, такие как Google и Apple, начали смотреть в сторону AR и VR, предлагая разработчикам всё более удобные SDK.

Почему и зачем мы в это ввязались

История Urbica началась три года назад, когда я и картограф Тая Лавриненко сделали редизайн карты популярных офлайн-карт Maps.me. Этот дизайн карты и сейчас актуален, и его видят миллионы пользователей.

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

Наши проекты — преимущественно про улучшение сервисов в контексте городской среды. Например, мы помогали с анализом данных для запуска сети наземного транспорта «Магистраль» в центре Москвы, а также проанализировали и улучшили сервис проката велосипедов «Велобайк».

Наблюдая за шумом вокруг AR и VR, мы решили не стоять в стороне и попробовать новые способы взаимодействия пользователя с картографическими данными. Unity — популярная платформа для разработки 3D-игр, сейчас активно развивает тему AR и VR. Есть множество туториалов, коннекторов и плагинов, которые помогают разработчику получить на выходе готовое к релизу приложение.

Кроме этого, компания Mapbox, предоставляющая наиболее продвинутую картографическую платформу для разработчиков, развивает SDK для Unity и регулярно радует релизами.

AReal — объёмная карта Санкт-Петербурга в дополненной реальности

Как всё прошло

Изначальный план был крайне простым и дерзким. Под чутким руководством менеджера Анны выделить время картографа Таи на изучение Unity Studio и туториалов, чтобы поработать с визуализацией карты; силами дизайнера Кристины спроектировать интерфейс и всё запрограммировать мобильным разработчиком Серёжей.

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

Первый прототип по туториалу Mapbox и Unity показал, что идея запихнуть карту в AR не такая уж удачная. Точнее, реальность вносит свои коррективы. Нельзя отрендерить весь город (тормозит), а пользоваться этим не очень удобно.

Первые прототипы с картой в AR. Изначально мы хотели дать возможность «погулять» по дополненному Петербургу, но выяснилось, что это в использовании не так удобно и получается скучно

Дальше нужно было решить, на какой технологической платформе это реализовывать. Например, стоит ли использовать фреймворки вроде Vuforia, чтобы расширить парк устройств, но при этом потерять в точности позиционирования?

Vuforia отлично справляется с позиционированием, если есть маркер, но нам показалось, что это неудобно для конечного пользователя. После серии экспериментов ребята решили использовать ARKit и ограничиться устройствами, которые эту технологию поддерживают (iPhone 6S, SE и более поздние).

Мы с самого начала догадывались, что между туториалами а-ля «поиграться в песочнице» и готовым продуктом, который можно показывать другим людям, пролегает пропасть. Однако мы не представляли, насколько велика эта пропасть.

С одной стороны, Unity сразу предлагает на выходе готовый проект для XCode, который достаточно собрать и опубликовать в AppStore. С другой — это накладывает ряд существенных ограничений и перекраивает весь процесс разработки.

Серёжа и Тая разбираются с Unity
Серёжа и Тая разбираются с Unity

Раз на выходе Unity выдаёт готовый проект, весь интерфейс приложения необходимо реализовывать там: подсказки, переходы, поведение и даже сплэш-экран с иконкой приложения. Например, Кристина, которая, вообще-то дизайнер, совсем незаметно для себя освоила программирование на C #. Кроме этого, есть способы связать Unity и нативный код, но мы поняли, что на этом этапе нам нужно смириться с концепцией одной платформы.

Так выглядит проект c картой в Unity Studio
Так выглядит проект c картой в Unity Studio

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

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

Медного всадника можно «усадить» куда угодно и в любом городе. Можно сказать, добавить немного Петербурга в любом месте
Медного всадника можно «усадить» куда угодно и в любом городе. Можно сказать, добавить немного Петербурга в любом месте

Особая тема — AR и то, как работают технологии распознавания изображений. Apple ARKit по-прежнему требователен к хорошей освещённости помещения, а попытка «зацепиться» камерой за монотонную поверхность приводит к неточному позиционированию, объекты «ползут», и это немного смазывает ощущение волшебства.

AReal — объёмная карта Санкт-Петербурга в дополненной реальности

А ещё очень сложно быть заказчиком самому себе и делать такие pet-projects. Кажется, нет заказчика — нет проблемы, можно делать что хочешь, но на самом деле, не имея внешних ограничений, можно долго копаться с деталями, ничего не опубликовав. Последнюю неделю я имел на руках почти готовую сборку и начал играть с приложением.

Это действительно весело — поместить медного всадника, пока ждёшь вылета, в аэропорт Сингапура, или, например, дополнить Александровской колонной Площадь первой пятилетки на Уралмаше в Екатеринбурге. Я начал накидывать какие-то новые идеи и требовать их реализовать, а ребята героически защищали заранее оговоренный объём минимальной версии и намеченные сроки запуска. За что им, на самом деле, огромное спасибо.

Отдельное спасибо нашему знакомому Денису и его другу Денди за содействие в съёмках ролика про AReal для соцсетей ;)
Отдельное спасибо нашему знакомому Денису и его другу Денди за содействие в съёмках ролика про AReal для соцсетей ;)

Резюме

  • Мы начали в начале марта, предполагая закончить этот эксперимент в начале июня.
  • Если быть откровенными, мы видим, что многое получалось благодаря счастливому стечению обстоятельств, и если оно работает, для нас остаётся загадкой.
  • Возможно, будь это проект с заказчиком за деньги, он мог бы не случиться, ведь на старте у нас совсем не было опыта, а риски были высоки.
  • Как и у всех в подобных историях, где-то посередине проекта было огромное желание бросить эту затею.
  • В мире бывают специальные люди и команды, которые хорошо работают с AR и 3D, но на пересечении таких интересов, как картография и AR, мало с кем можно пообщаться.
  • Можно бесконечное количество времени читать статьи или изучать туториалы, но без реального процесса разработки это всё не имеет никакой ценности.

Лучше быть лохами с приложением в AppStore, чем быть лохами без приложения в AppStore.

Серёжа, мобильный разработчик

А назвали приложение очень просто — AReal.

2525
5 комментариев

Оставьте контакты с кем можно по сотрудничеству пообщаться!

2

Мы занимаемся погодными данными в реальном времени и есть свои разработки для города. Было бы интересно пообщаться.

1