Как сделать vr игру на unity 3d

Добавил пользователь Владимир З.
Обновлено: 19.09.2024

Дополненная реальность (англ. — AR, augmented reality) — одна из самых перспективных технологий XXI века. Сферы применения — практически везде: от игровой индустрии до медицины.

Самый простой вариант AR — когда в твоем смартфоне при наведении на картинку или предмет появляется какое-нибудь изображение — особого удивления, конечно, не вызывает. А вот варианты, когда на изображение можно воздействовать и оно как-то откликается, вызывают восторг перед новыми технологиями. А ведь это еще не самая яркая разновидность дополненной реальности.

Вот несколько примеров:

Маски в социальных сетях Игры

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

Геопозиция — использование навигации, чтобы определить позицию, в которой нужно отобразить объект. Распознавание поверхности — программа ищет прямые линии и пытается определить расположение поверхностей. Распознавание лица — так, например, работают маски.

Как сделать AR приложение в Unity?

Пример маркера для AR

Для того, чтобы упростить задачу по проецированию объекта на поверхность, используют маркеры. Например такие:
Пример маркера для AR

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

Для Unity есть замечательное решение, с помощью которого ты можешь опробовать маркерную AR — Dot AR.

DotAR в офисе Юниум

DotAR в офисе Юниум

Как работает DotAR?

На камере размещен скрипт, который сначала выключает игровой объект Board, находит элемент интерфейса Raw Image и транслирует на него видео с камеры (да, тебе нужна веб-камера, чтобы разрабатывать AR!). После этого скрипт постоянно анализирует кадры видео и ищет маркер. Если скрипт его находит, то он включает игровой объект Board и, если маркер меняет положение, скрипт также перемещает Board. Создается нужная нам иллюзия, которая в нашем случае и будет назваться AR.

Если тебе этого не достаточно, то мы можем сделать мини-игру, которая будет напоминать нам PokemonGo. Тебе понадобятся:

  • картинка с покеболом, которую мы будем использовать как кнопку — ⬇скачать тут;
  • 3D-модели покемонов — ⬇скачать тут;
  • ну, и конечно, сам asset Dot AR.

Первое, что нужно сделать — разместить 3D-модель покемона в том же месте, где находиться зеленый куб, а также сделать 3D-модель дочерним к игровому объекту Board:

Пикачу в кубе

Пикачу 3

Куб тебе больше не нужен, поэтому его можно удалить. Теперь вместо куба, твоя программа будет проецировать покемона. Осталось сделать скрипт, с помощью которого можно будет его поймать 🙂

Создай новый скрипт и назови его Gotcha. Также создай кнопку, которой ты добавишь этот скрипт, у кнопки нужно заменить Source Image в окне Инспектор (как работать с интерфейсом?) на картинку с покеболом. Вот логика работы Gotcha.cs:

Но, как ты заметил, покемон остается на своем месте. Теперь нужно научить твой скрипт, его ловить. Самый простой способ — просто удалять покемона 🙂


У вас уже есть некоторый базовый опыт разработки игр и вы хотите попасть в индустрию виртуальной реальности? Тогда вас может заинтересовать новый курс разработки игр для среднего уровня от Oculus и Unity, который не только бесплатный, но и может дать вам ценные отзывы от Oculus о вашем творении.

Курс разбит на 11 блоков, на изучение которых потребуется более 20 часов. В итоге вы узнаете много полезного от дюжины экспертов Oculus и Unity, охватывающих основные темы, такие как создание прототипа и планирование опыта виртуальной реальности, эргономика виртуальной реальности, пространственный звук, опыт пользователя виртуальной реальности. (UX) дизайн и оптимизация приложений.

Несмотря на то, что курс направлен на разработку VR-игр, навыки, полученные в целом, также могут быть применены к любому потребителю, ориентированному на бизнес.

Перед тем, как начать, нужно иметь базовые знания и некоторое представление о VR, которые можно приобрести с помощью таких ресурсов, как Unity’s intro tutorials и ‘Build Your First VR App’ учебник от Oculus. Тогда все, что вам нужно, это Unity, Oculus SDK и VRTK, а также оборудование Oculus; курс был разработан с учетом Rift S, но вы сможете разработать как для Rift, так и для Rift S. Да, кстати, знание английского языка тоже необходимо.


Движок Unity 3D — один из самых востребованных среди игроделов. С его помощью можно делать не только игры, но и крутые визуалы и дизайны.

Мы спросили преподавателя курса Unity 3D Андрея Педана, почему этот движок такой востребованный и как его можно использовать в VR и AR-технологиях.

Популярна ли сфера разработки игр?

Очень популярна, только в Новосибирске есть десятки компаний, которые делают игры. Также, очень много предложений по удаленной работе в других городах.

Андрей, опишите преимущества Unity — почему его стоит выбрать для обучения геймдеву?

Три обязательных составляющих хорошей игры?

Геймплей, успешная монетизация, визуальная привлекательность.

Геймплей — это то, как идея вашей игры реализована. Благодаря увлекательному геймплею игрок обязательно вернется в нее завтра, а не удалит ее через 30 секунд после старта. Монетизация — поощрение вас как автора игры, ведь никто не хочет делать работу бесплатно. Как правило, людям нравится сочная и красивая картинка.

Чтобы делать игры надо картинки или 3D модели?

Смотря какая игра. Если планируете делать 2D игру, где используется только плоская графика — тогда можно обойтись только картинками. Если в игре подразумевается трехмерное пространство — тогда без 3D моделей не обойтись.

Как разрабатывать, если студент не умеет рисовать или моделить?

Не нужно быть художником чтобы делать игры. Есть правило: сначала делают прототип, потом красоту. То есть сначала описывается функционал игры на примитивах (кубиках и белых квадратах). Например, если это 3D игра, то основной игрок может быть зеленым кубом, противник — это красный куб; а если на эти кубы наложить текстуру, которую можно найти в интернете, то получится Minecraft. Если говорить о 2D играх, гуглим в интернете картинки банана, яблока и груши и у нас готов арт-пакет для игр в жанре Match3. Если такой подход вам не нравится, то всегда можно купить готовые текстуры или модели в специальном магазине AssetStore от Unity. Или же заказать уникальные и нужные вам ресурсы на аутсорс площадках.

Насколько Unity хорош для работы с 2D? Если я хочу сделать двухмерную игру с крутыми графическими эффектами, надо ли осваивать специализированный 2D-движок?

Unity предоставляет все необходимые инструменты для разработки 2D-игр и имеет богатый функционал: работы с анимациями, сценами, системами частиц (классные эффекты) и звука, ничего дополнительно изучать не нужно.

Для каких задач ты сам используешь Unity?

Лично я использую Unity только для разработки игр, но это не единственное его применение: можно делать архитектурные визуализации, моделирование интерьеров, конфигураторы и аниматоры продуктов, тренинг-симуляторы.

Главный вопрос: можно ли использовать Unity в АR и VR?

Конечно можно! Как говорят unity-разработчики: Unity — самая популярная платформа разработки для VR. Более 91% контента для HoloLens создано на базе Unity.

VR, AR или MR? Неважно, ведь оптимизированный процесс рендеринга и функции редактора, ускоряющие итерацию, дают возможность положиться на Unity и воплотить самые дерзкие XR-проекты в реальность.

Это была довольно рискованная затея, так как любой профессионал возразит, что создать игру за 3 дня невозможно, тем более, если нет необходимых знаний. А с VR (Virtual Reality — виртуальная реальность) мало знакомы даже многие профессиональные разработчики. Эта отрасль сегодня активно развивается, и в ней пока ещё больше вопросов и проблем, чем их решений.

Тем не менее, инструменты разработки тоже развиваются, и их создатели делают так, чтобы с ними могли быстро, удобно, а главное, понятно, работать даже полупрофессиональные и начинающие разработчики. Поэтому при должной подготовке всё оказалось вполне реально!

Каждый участник справился с задачей и создал свой виртуальный мир, в который можно погрузиться почти как в реальный, если загрузить приложение на смартфон и надеть VR-очки. Мы успели протестировать даже 2 варианта: 1) пластиковые очки и 2) картонные кардборды.

VR cardboard

VR cardboard

Что же мы всё-таки делали и как готовился интенсив?

Подготовительные работы

День 1. Инструментальный, концептуальный

Итак, в первый день мы открыли подготовленные шаблоны проектов и узнали о VR SDK. Поэкспериментировали немного со сценой игры (добавив и изменив игровые объекты и внешнее окружение по своему сюжету и на свой вкус) и в итоге собрали свои первые мобильные VR-игры, которые сразу протестировали с помощью VR-очков.

Кстати, по счастливому совпадению, в этот же день к нам в гости приехали старшеклассники из Бреста, у которых были запланированы образовательные мероприятия в рамках IT-каникул, которые регулярно проводит ассоциация «Образование для будущего«. На этот раз это были тематические IT-каникулы, посвященные AR/VR-технологиям. Сначала ребята скромно расселись за свободные парты, не осмеливаясь присесть за свободные компьютеры, так как о Unity услышали впервые. Но через полчаса большая часть из них переместилась к компьютерам и активно присоединилась к работе.

Старшеклассники из Бреста

Старшеклассники из Бреста (фото с сайта Брестского областного лицея)

Справедливости ради надо сказать, что группа ребят, которые занимались все 3 дня, включала тех, кто с Unity уже был знаком. Но на первом занятии с одинаковым успехом с работой справились все: и те, кто впервые познакомился с Unity, и те, кто уже кое-что пробовал. И каждый из них узнал что-то новое. Итак, первый эксперимент удался! На основе готового шаблона вполне реальным оказалось создать свой небольшой VR-мир.

Брестчане оставили нам на память благодарственное письмо и сожалели лишь о том, что в Бресте нет таких занятий.

Одного дня оказалось достаточно, чтобы воодушевиться

Одного дня оказалось достаточно, чтобы воодушевиться (фото с сайта Брестского областного лицея)

В первый день мы смогли лишь рассматривать свой виртуальный мир, вращая головой в разные стороны. Таким же образом, кстати, сейчас делают различные промо-приложения с использованием видео 360, которые затем помогают привлечь новых покупателей и клиентов. Согласитесь, ведь гораздо интереснее, к примеру, совершить небольшую виртуальную экскурсию с помощью VR, чтобы определиться с тем, стоит ли покупать туристическую путевку или новую квартиру, или автомобиль и пр. Эта же механика (способ взаимодействия с пользователем) используется во многих VR-играх: игрок, стоя на месте и поворачиваясь в разные стороны, должен найти какие-то предметы, выполняя задания и получая за это очки. Он может также телепортироваться на другие уровни игры.

Загружаем приложение на смартфон (фото с сайта Брестского областного лицея) Изучаем свой первый VR-мир! (фото с сайта Брестского областного лицея)

День 2. Креативный

Второй день нашего интенсива был посвящен движению и интерактивности в VR.

Теперь, когда в VR-мире стало возможным перемещаться, мы прочувствовали ещё лучше, чем отличается VR-игра от обычной. Если не рассчитать со скоростью, то можно вскружить себе голову ;) Да, одна из проблем VR-приложений и VR-игр — головокружение. Это связано с несоответствием того, что видят глаза в виртуальном мире, и того, что происходит в мире реальном. Мозг человека устаёт обрабатывать сигналы двух видов: с одной стороны, мы видим, что движемся в пространстве, а с другой — никакого движения не происходит, так как в действительности человек никуда не идёт и не бежит. Безопаснее всего играть в такие игры, сидя на вращающемся стуле. Поэтому о технике безопасности мы узнали ещё на первом занятии.

Креативим с игровыми заданиями Новогодний сюжет с поиском подарков вполне логичен в последние дни декабря Взаимодействие и взаимопомощь — важная составляющая творческого процесса

День 3. Итоговый игровой

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

Ещё немного, и можно будет играть в свою игру Первые тесты своей игры Начинаем играть в игры друг друга

Конечно, это не полноценные игры, если подходить строго. Это всего лишь прототипы. Но мы освоили на практике методы быстрой сборки проекта на основе готовых компонентов. Именно так поступают профессиональные разработчики по создании прототипов. У нас были готовые объекты, части локаций, материалы и даже скрипты. У каждого была возможность придумать и создать что-то своё. Некоторые ученики (кто уже достаточно хорошо владеет программированием в Unity) успели даже написать немного своего кода.

Цели достигнуты. Риски оправданы

Итак, цель достигнута! Мы рискнули, и у нас получилось!

Огромное спасибо всем участникам за смелость, целеустремленность, старания, креативность!

С некоторыми из проектов можно даже познакомиться (ребята согласились поделиться подарками). Кто желает погрузиться в наши VR-миры, может скачать на свой смартфон (с Android) файл-сборку и установить приложение:

    ! (чтобы подобрать подарок, необходимо тапнуть по экрану)

Не забудьте взять VR-очки или кардборд! А все участники интенсива в подарок получили VR-кардборды, и сейчас могут продолжить создавать и тестировать свои VR-игры самостоятельно.

Кардборды - Подарки участникам интенсива

Подарки участникам интенсива

P.S. Летом мы тоже проводили интенсивы по созданию VR-игр в Unity. Но это были 10-дневные занятия, и ребята не просто использовали готовые объекты, а научились многое создавать сами, с нуля. У нас было также время, чтобы лучше узнать о том, что такое VR, как работает и где используется.
Скоро новое лето и новые наборы на обновлённый и усовершенствованный интенсив по созданию VR-игр в Unity!

С воодушевлением и гордостью за своих учеников, Ольга Елисеева, преподаватель ОЦ ПВТ

Наши проекты


Творческое программирование для всех! (игры и анимация на Scratch)

Читайте также: