VR дает возможность застройщику представить свой ассортимент в реальном масштабе с фотореалистичным изображением, максимально полным ощущением пространства, а также необходимым ему интерактивом. Сама возможность взглянуть на будущий проект, как на реальный, в полной мере ощутить его масштаб и при этом получить удивительные «фишки», например, телепортироваться на далекие расстояния, менять визуальные и физические свойства окружающей среды — все это открывает новые горизонты презентации недвижимости. Под катом вы найдете рассказ нашего выпускника о том, как это все делалось с технической точки зрения.
Начало: Revit VS Unreal
Моделирование квартиры изначально мы выполнили в Revit, исходя из специфики проекта. Напрямую перенос в Unreal давал жуткую геометрию: “расклеенную” и с непонятной топологией. Мы попробовали несколько вариантов форматов, плагинов экспорта, чтобы получить пригодную модель в 3d max`е. Чуда не случилось: у перегородки простой прямоугольной формы было по 2-3 не склеенных вершины в точке, оверлапы полигонов, лишние рёбра, развернутые нормали; у объектов с криволинейной поверхностью была плотная сетка. Исправление геометрии иногда занимало столько времени, что проще было сделать заново. Поэтому мы переделали стеновой каркас и мебель в 3d max и использовали ревитовскую геометрию как референс.
Контент продакшн: Время VS деньги
Сразу стало понятно, что силами двух с половиной человек сделать наполнение объекта в сроки не выйдет. Мы обратились к стокам 3ddd, Turbosquid и к Unreal marketplace. В итоге мы получали модели с непригодными UV-развертками, с большим количеством треугольников и с бестолковой топологией, хотя в описании маркетов сказано, что модели гейм-реди и без оверлапов. Поэтому пришлось править и упрощать топологию, заново делать развертки и дорабатывать текстуры.
В середине проекта обратились в Unreal marketplace, но и там не все гладко: некоторые модели чересчур лоу-поли, хотя на превью этого не было видно; сложные материалы там, где этого не нужно, неправильные UV-развертки, несколько каналов UV.
В какой-то момент lightmass отказался просчитывать лайтмапы без объяснения отказа. Мы начали проверку пропсов, их в левеле оказалось 500 штук. Сначала пошли методом исключения: сделали копию левела, удаляли пропсы и пробовали отсылать на рендер. Перебрав половину пропсов, нашелся неправильный, это было полотенце в туалете; вернувшись в уровень, исправили пропс, но лайтмасс по-прежнему отказывался считать. Оказалось, что 80% пропсов из Unreal marketplace имеют неправильную развертку и несколько UV- каналов. После исправления пропсов проблема исчезла. Чтобы избежать подобного в будущем, написали блюпринт для проверки пропсов на наличие багов с UV.
Код: Blueprint VS C++
90% работы реализовано блюпринтами, без знания языков программирования, имея только общие основы. Главная задача — реализовать взаимодействие с дверями, дверцами шкафов, ящиками так, чтобы решение можно было просто перенести на разные конфигурации дверей. Конфигураций получилось 5: открывание справа-налево, слева-направо, сверху-вниз, от себя, на себя.
От классического варианта открытия «подошел, нажал „Е“, дверь открылась» — отказались сразу, решили в VR сделать открывание рукой посредством контроллера.
На первый взгляд — простая задача, но приходилось учитывать коллизии с другими объектами, смещение оси поворота при открывании, сторону открытия, также сделать открывание без “прилипания” двери к контроллеру при нажатии триггера.
В процессе работы мы сделали еще боулинг и скример в шкафу, для отвлечения от рассматривания интерьеров.
Оптимизация: Картинка VS фпс
Оптимизация — довольно болезненный процесс. Стремление к реалистичной картинке, выработанное годами в кино, вызывает боль, когда приходится в угоду fps снижать качество теней SSAO, размер карт отражений, упрощать шейдеры, размер текстур и.т.д.
Работа начиналась в версии 4.13, тогда еще не было форвард-шейдинга. С появлением в 4.14 давал 20-30 fps прироста, но лишал SSAO, HDR Lighting, что в свою очередь резко меняло картину и вело к переработке проекта. На данный момент мы решили этого не делать, оставили для следующего проекта.
Плейтесты: UX VS Users
Плейтесты проходили на разных возрастных и гендерных категориях. В большинстве, люди без VR опыта, быстро осваивались и непременно пытались открыть и пощупать предметы. Мы специально не делали подсветку активных объектов для большей реалистичности.
Выяснилось, что неопытный пользователь путает 2 кнопки: телепорт и действие. На обучающем уровне мы первым делом показывали, как перемещаться в пространстве, а затем — как взаимодействовать с предметами, но пользователи продолжали нажимать на телепорт и для перемещения в точку, и для открывания дверей. Мы сделали подсказки для кнопок, но ситуация не изменилась. Поэтому перенесли действия и телепортацию на триггер, сделали однокнопочный вариант управления и оставили только один контроллер.
Еще мы заметили, что пользователи не сразу понимают, как пользоваться “удочкой”: они вытягивали руки параллельно полу, нажимали на телепорт, «улетали» в другой конец уровня и терялись. Поэтому мы поменяли “удочку” на вариант: при нажатии на триггер, на полу появляется иконка перемещения, поворотом головы, условно — взглядом, пользователь выбирает точку, в которую он хочет переместиться, затем отпускает триггер и перемещается в нужную точку.
Про ощущения в VR: некоторые пользователи пытаются открыть дверь, стоя от нее в метре. Нам приходится объяснять, что дверь открывается, как в жизни: надо к ней подойти, взяться за ручку и потянуть. Также непременно все перешагивают пороги и боятся пройти сквозь стену. Сами в процессе разработки неоднократно ловили себя на желании опереться на виртуальный диван или стол.
Управление извне: Unreal.js VS Socket.io
Чтобы дать менеджеру возможность “вести” процесс продаж и помогать людям, не привыкшим к новому миру, мы разработали веб-приложение, позволяющее делать акцент на дома и объекты инфраструктуры района, перемещать пользователя между уровнями и по точкам внутри уровня, а также подобрать квартиру по интересующим параметрам и динамически визуализировать подходящие предложения.
Для того, чтобы минимизировать задержки в общении с Unreal хотелось использовать протокол WebSocket. Первым попался на глаза плагин Unreal.js, позволяющий писать на Javascript и содержащий реализацию WebSocketServer’а. Сделали прототип для версии 4.13 с этим плагином, все отлично заработало. Вышел Unreal 4.14, через несколько дней обновился плагин, в списке изменений два пункта:
- совместим с 4.14 (!!!)
- «выпилен» WebSocketServer (???)
Видимо, только нам нравилась эта реализация. Стали искать замену, нашли socketio-client-ue4, от небезызвестного в сообществе getnamo. Все бы хорошо, но на тот момент поддерживалась только версия 4.13 и принимать в Blueprint можно было только строки. Начали писать библиотеку для парсинга JSON, но вскоре Getnamo снова очень порадовал, сделав эту работу за нас в новом релизе, за что ему огромное спасибо!
В итоге, получилось лучше, чем хотелось. Написали отдельный сервер, синхронизирующий все запущенные Unreal- и веб-приложения в реальном времени, что, например, позволяет при бронировании определенной квартиры одним пользователем сразу же исключить ее из выборки для всех остальных.
Сделанный демо-проект оправдал свои ожидания и не оставил равнодушных, как среди неопытных пользователей, так и профессионалов. Многие даже сетовали на то, что не было возможности воспользоваться подобным сервисом, когда сами приобретали квартиры. Единственное, что пока не хватает для релиза — это наличия смелого и амбициозного застройщика!
Вот как все это дело выглядит:
Можете сами попробовать вживую и пообщаться с командой разработчиков. Виртуальный шоурум будет показан на Лекционном дне в ВШБИ 11 февраля. Записаться здесь.
Комментарии (35)
n1tra
09.02.2017 20:30+3Такая клевая технология, а используется для демонстрации таких убогих клеток :(
Ch_Alexandr
09.02.2017 22:27Ну на самом деле нет разницы, в данном случае. Большая или маленькая квартира. Хоть замок)) Перед покупкой как раз можно оценить размеры в «реальности» )))
n1tra
10.02.2017 03:24Может поэтому и не находятся застройщики желающее внедрить такое? Получается прямо-таки антиреклама.
Ch_Alexandr
10.02.2017 11:14Анти реклама это -когда клиент приезжает на грязную, пыльную стройку и видит большую дыру в земле )))
n1tra
10.02.2017 12:03То что вы описываете, это не анти-реклама, это — реальность.
Я лишь хочу сказать что выглядит очень круто, пока не попадешь в эту пресловутую «Студию» в 20м2 с мебелью из икеи и не начнешь думать о том, хотел бы ты здесь жить.
P.S. В VR очках не возникает приступа клаустрофобии в этих «клетках»?
Насколько я понимаю, это все выглядит как «рыбий глаз»? чтобы хоть что-то можно было разглядеть в квартире? :)Ch_Alexandr
10.02.2017 12:21Нет, клаустрофобии не возникает, если конечно в реальности её нету. «Рыбьего глаза» нету. Можешь завтра прийти и посмотреть. ))
Dywar
09.02.2017 20:36+1Круто.
Популярным будут не нагруженные деталями сборки под мобилки, которые запустятся на доступных устройствах VR.
Приложение бесплатное в PlayMarket и IOS Store, в рекламе ссылку на приложение.
Там карта, размеры, цены, телефоны, экскурсия и на ПК аналог но без VR.
И попрет.
Да хотя бы на ПК сделали, как гугл мапс, уже плюс, но и этого нету.VDG
09.02.2017 21:37Не попрёт. У меня аналогичный, но не такой тяжёлый/загромождённый проект с 2005-го. Если коротко, то технологии и мощности сейчас позволяют демонстрировать 3D-планировки только на десктопах. Там хороший инет для тяжёлых текстур, и мощные видеокарты для шейдеров. Но этот сегмент стремительно схлопывается, а мобильный хоть и растёт быстро, но отстаёт по мощностям аж на 10 лет. И самое главное — ни одному застройщику это не надо, они привыкли закупаться в Директе по 5000р за переход и их всё устраивает.
Dywar
09.02.2017 22:02На массовый рынок рановато, но вот элитное жилье возможно и попрет, удивить клиента, Европа, США.
VR по ЖЦТ 1-2 фаза только.VDG
13.02.2017 23:44У элитного жилья (начиная с десятков млн. р) совсем другой уровень требований (были с ними разговоры). Качество рендера у них как в каталоге Икеи, то есть неотличимо от реальности. Продемонстрированный уровень в этом шоуруме всё же не дотягивает до их требований. Да и не может пока физически дотянуть.
Ch_Alexandr
14.02.2017 12:11Интересно. а можно ссылку на Икею? То-что я видел, нельзя сказать, что неотличимо от реальности.
Ch_Alexandr
09.02.2017 22:26Одна из проблем в том, что — далеко не все могут взглянуть на план, размеры и даже 3d-визы и представить размер квартиры. 360 панорамы тоже не дают полного представления о масштабе квартиры. Пока нету дешевых и мощных решений для мобильного VR + трекинга позиции. По этому, на данный момент и был выбран Vive. Мы ориентированны на крупных застройщиков. И предоставляем инструмент для продаж.
dmitryfaleev
10.02.2017 14:50dmitrykabanov
09.02.2017 21:37Лично пробовал демку. Отлично все сделано. Особенно порадовало взаимодействие с объектами. Пробовал выходить на балкон — хочешь не хочешь, а ногу поднимаешь, чтобы перешагнуть через порожек.
ilya216
09.02.2017 22:26Было бы удобно так квартиры покупать вообще: выбрал местечко, посмотрел вид из окна, посмотрел варианты мебели, цены. За виртуальной реальностью будущее.
Ch_Alexandr
09.02.2017 22:37Именно так и сделали. Кроме вариантов с подбором мебели. 99,9% застройщиков продают квартиры без мебели и 99% без отделки вообще. Интерактивная расстановка мебели, с сохранением качеством картинки, требуют больших мощностей. Что сейчас пока трудно реализуемо.
n1tra
10.02.2017 12:05А потом строители из таджикистана помогут вам сделать демотиватор «ожидание/реальность» за ваши ипотечные деньги :)
Feelnside
Очень крутая задумка как и собственно её реализация. Уважающие себя застройщики ну просто обязаны обратить взор на проект ваших выпускников. Единственное, видимо нужно предпринять некие усилия в области маркетинга, если до сих пор не смогли найти «смелого и амбициозного застройщика».