AReal — объёмная карта Санкт-Петербурга в дополненной реальности
В приложении доступны семь 3D-моделей знаковых зданий города.
Urbica постоянно делает карты. Мы решили поэкспериментировать и выпустить приложение про Петербург в дополненной реальности. Выпустили сегодня. Рассказываем опыт команды.
Сегодня мы запустили своё первое AR-приложение — про Петербург в дополненной реальности. Оно очень простое: на плоскую поверхность проецируется карта центра города с маркерами, по тапу на которые можно изучить одну из семи 3D-моделей знаковых зданий.
В самом начале проекта нам казалось, что ничего в этом сложного нет: мы просто возьмём готовые SDK, изучим туториалы и за пару месяцев соберём приложение. Мы ошибались. В этой истории мне хочется поделиться опытом нашей команды и заодно структурировать эти знания для себя.
Хайп вокруг AR- и VR-технологий не стихает уже давно. Кажется, ещё многое предстоит выяснить, порой не разобраться, где реальная польза, а где только обещания сделать этот мир лучше. В 2012 году вышло множество приложений с технологией дополненной реальности: поиск достопримечательностей, помощь в навигации в городе и прочее.
Я тогда отвечал за интерфейсы «Яндекс.Карт», и мы горячо обсуждали внутри, нужно ли встраивать эту технологию в массовый продукт. В то время технология предполагала позиционирование только по компасу и локации, что в итоге создавало не очень хороший пользовательский опыт.
Всё начало меняться с развитием «железа» в смартфонах, стало возможным применение алгоритмов компьютерного зрения на устройстве. И конечно же, большие компании, такие как Google и Apple, начали смотреть в сторону AR и VR, предлагая разработчикам всё более удобные SDK.
Почему и зачем мы в это ввязались
История Urbica началась три года назад, когда я и картограф Тая Лавриненко сделали редизайн карты популярных офлайн-карт Maps.me. Этот дизайн карты и сейчас актуален, и его видят миллионы пользователей.
Urbica сегодня — это мультидисциплинарная команда дизайнеров, разработчиков, картографов и аналитиков данных. Мы сильны в картографических интерфейсах и постоянно экспериментируем с городскими данными. Я лично глубоко убеждён, что уместная и правильная визуализация данных помогает понять и улучшить окружающую нас действительность.
Наши проекты — преимущественно про улучшение сервисов в контексте городской среды. Например, мы помогали с анализом данных для запуска сети наземного транспорта «Магистраль» в центре Москвы, а также проанализировали и улучшили сервис проката велосипедов «Велобайк».
Наблюдая за шумом вокруг AR и VR, мы решили не стоять в стороне и попробовать новые способы взаимодействия пользователя с картографическими данными. Unity — популярная платформа для разработки 3D-игр, сейчас активно развивает тему AR и VR. Есть множество туториалов, коннекторов и плагинов, которые помогают разработчику получить на выходе готовое к релизу приложение.
Кроме этого, компания Mapbox, предоставляющая наиболее продвинутую картографическую платформу для разработчиков, развивает SDK для Unity и регулярно радует релизами.
Как всё прошло
Изначальный план был крайне простым и дерзким. Под чутким руководством менеджера Анны выделить время картографа Таи на изучение Unity Studio и туториалов, чтобы поработать с визуализацией карты; силами дизайнера Кристины спроектировать интерфейс и всё запрограммировать мобильным разработчиком Серёжей.
Тут стоит сразу оговориться: все участники проекта, не считая последних двух героических недель, были заняты проектом парт-тайм параллельно с другими коммерческими проектами компании (в среднем где-то треть времени).
Первый прототип по туториалу Mapbox и Unity показал, что идея запихнуть карту в AR не такая уж удачная. Точнее, реальность вносит свои коррективы. Нельзя отрендерить весь город (тормозит), а пользоваться этим не очень удобно.
Первые прототипы с картой в AR. Изначально мы хотели дать возможность «погулять» по дополненному Петербургу, но выяснилось, что это в использовании не так удобно и получается скучно
Дальше нужно было решить, на какой технологической платформе это реализовывать. Например, стоит ли использовать фреймворки вроде Vuforia, чтобы расширить парк устройств, но при этом потерять в точности позиционирования?
Vuforia отлично справляется с позиционированием, если есть маркер, но нам показалось, что это неудобно для конечного пользователя. После серии экспериментов ребята решили использовать ARKit и ограничиться устройствами, которые эту технологию поддерживают (iPhone 6S, SE и более поздние).
Мы с самого начала догадывались, что между туториалами а-ля «поиграться в песочнице» и готовым продуктом, который можно показывать другим людям, пролегает пропасть. Однако мы не представляли, насколько велика эта пропасть.
С одной стороны, Unity сразу предлагает на выходе готовый проект для XCode, который достаточно собрать и опубликовать в AppStore. С другой — это накладывает ряд существенных ограничений и перекраивает весь процесс разработки.
Раз на выходе Unity выдаёт готовый проект, весь интерфейс приложения необходимо реализовывать там: подсказки, переходы, поведение и даже сплэш-экран с иконкой приложения. Например, Кристина, которая, вообще-то дизайнер, совсем незаметно для себя освоила программирование на C #. Кроме этого, есть способы связать Unity и нативный код, но мы поняли, что на этом этапе нам нужно смириться с концепцией одной платформы.
Следующим испытанием была история с 3D-моделями. Мы и не предполагали, насколько глубок и специфичен мир 3D и геймдев-разработки. Сначала мы взяли какие-то бесплатные модели и прикрутили их. Получилось колхозно.
Углубившись в детали, мы выяснили, что текстуры, настройка освещения, позиционирование модели в пространстве — ключевые моменты, поэтому 3D-моделями занимаются специальные люди, которые в этом разбираются. После серии консультаций по знакомым наших знакомых мы нашли человека и заказали смоделировать семь интересующих нас достопримечательностей.
Особая тема — AR и то, как работают технологии распознавания изображений. Apple ARKit по-прежнему требователен к хорошей освещённости помещения, а попытка «зацепиться» камерой за монотонную поверхность приводит к неточному позиционированию, объекты «ползут», и это немного смазывает ощущение волшебства.
А ещё очень сложно быть заказчиком самому себе и делать такие pet-projects. Кажется, нет заказчика — нет проблемы, можно делать что хочешь, но на самом деле, не имея внешних ограничений, можно долго копаться с деталями, ничего не опубликовав. Последнюю неделю я имел на руках почти готовую сборку и начал играть с приложением.
Это действительно весело — поместить медного всадника, пока ждёшь вылета, в аэропорт Сингапура, или, например, дополнить Александровской колонной Площадь первой пятилетки на Уралмаше в Екатеринбурге. Я начал накидывать какие-то новые идеи и требовать их реализовать, а ребята героически защищали заранее оговоренный объём минимальной версии и намеченные сроки запуска. За что им, на самом деле, огромное спасибо.
Резюме
- Мы начали в начале марта, предполагая закончить этот эксперимент в начале июня.
- Если быть откровенными, мы видим, что многое получалось благодаря счастливому стечению обстоятельств, и если оно работает, для нас остаётся загадкой.
- Возможно, будь это проект с заказчиком за деньги, он мог бы не случиться, ведь на старте у нас совсем не было опыта, а риски были высоки.
- Как и у всех в подобных историях, где-то посередине проекта было огромное желание бросить эту затею.
- В мире бывают специальные люди и команды, которые хорошо работают с AR и 3D, но на пересечении таких интересов, как картография и AR, мало с кем можно пообщаться.
- Можно бесконечное количество времени читать статьи или изучать туториалы, но без реального процесса разработки это всё не имеет никакой ценности.
Лучше быть лохами с приложением в AppStore, чем быть лохами без приложения в AppStore.
Серёжамобильный разработчик
А назвали приложение очень просто — AReal.
#дизайн #стартапы
© vc.ru