Как сделать vr игру в юнити
Перейти к содержимому

Как сделать vr игру в юнити

  • автор:

Игры с дополненной и виртуальной реальностью

Создано в играх, используется в самых разных отраслях для разработки инновационного AR/VR-контента. Гибкая платформа реального времени открывает безграничные возможности для реализации вашего творческого потенциала.

Build immersive VR experiences

Build engaging games, tell interactive stories, transport people to new worlds by building virtual reality (VR) experiences with Unity.

Reach most headsets with multiplatform support. Achieve amazing graphics with flexible graphics pipelines, and build complex multiplayer experiences with advanced performance tools.

VR Games for Unity

Tools for VR developers

Архитектура VR

Platform support

Build for SteamVR, Meta Quest, PlayStation® VR, and more. Optimized graphics, profiling tools, and the XR Interaction toolkit help streamline development and reduce cross-platform coding requirements.

Basketball VR shot

Creative graphics

Build impressive VR games that run across different hardware requirements. Unity’s Universal Render Pipeline (URP) allows for smooth VR games that hit 90hz.

Скриншот игры от Ramen VR

Performance that scales

Accessible for beginners and built for pros, the Unity real-time development platform helps you get started with VR templates and reduce coding with visual scripting. Advanced developers can use Unity DOTS, Addressables, and customize their graphics pipeline to squeeze even more performance.

Success stories

The Game Changers Ramen VR

Zenith by RamenVR

How does a small, remote team create a massively multiplayer online role-playing game in VR? With a flexible development platform, robust DevOps tools, and the support of an active community, Ramen VR launched Zenith: The Last City, a well-optimized, multiplatform VR MMO that’s delighting players and ushering in a new era of gaming.

Baobab Bonfire

Bonfire by Baobab

Bonfire is a cinematic virtual reality (VR) movie that enables viewers to become actual participants. Learn how Emmy Award-winning Studio Baobab brought this crazy adventure to life with Unity.

I Expect You To Die 2

I Expect you to Die 2

In this blog post, Schell Games shares a behind-the-scenes look at how they leveraged Unity to create an immersive, elite spy experience in VR while using Scriptable Render Pipeline to achieve a unique visual style.

VR мультиплеер на Unity

vr_multiplayer-unity-photon-cyberkoala

Отправьте нам сообщение и мы будем рады ответить на все ваши вопросы.

Этот интенсив для тебя

Если хочешь узнать о мире VR, разработке метавселенных и игр

Геймдизайнер VR
Для кого?
Как проходит обучение?

Современная подача

Используем методики обучения для усвоения материала

Закрепление

Творческие задания

Нет дедлайнов

Изучайте в своем темпе, кураторы на связи

Рейтинги

Ведем лидерборды

Достижения

Система ачивок позволяет в игровой форме изучать темы

Очки

За некоторые задания можно получить баллы и потратить их на открытие новых курсов

Ёмкость

Весь материал разбит на части

Внимание

Стараемся сделать каждую тему интересной и увлекательой

Предусмотрены эксклюзивные видео, консультации. Все мероприятия проводятся дистанционно на данном портале.

VR мультиплеер на Unity

Узнаешь как создать многопользовательскую VR игру на популярном сетевом движке Photon
Что внутри
Кому подойдет

В рамках интенсива будут пройдены основы разработки многопользовательских игр под виртуальную реальность, Photon Pun 2, базовые знания языка C#. В ходе освоения материала слушатели смогут сформировать представление о разработке многопользовательских приложений и игр под виртуальную реальность.

Данный интенсив будет полезен как новичкам так и тем кто уже знаком с игровым дизайном. Для прохождения требуются базовые знания языка C#, а также знания английского языка на минимальном уровне.

Разработка VR приложений под Oculus Quest 2 на Unity

Пост написан: 20 февраля 2021 , обновлен: 12 сентября 2021
Автор: @Pavel419

https://vr419.ru/wp-content/uploads/2021/02/Превью-1.jpg

Как и ранее с Карбордом, мне захотелось слепить какую-нибудь демку для Квеста. Пока что вопросов больше, чем ответов, но, в этом посте я собрал полезные ссылки, которые помогут вам начать разрабатывать под Oculus Quest свою первую игру. Ну и поделюсь какими-то соображениями, которые у меня уже появились.

С чего начать

Прямо с вот этой статьи от Oculus, которую сходу фиг найдешь. Там по пунктам рассказывается, что и как делать, чтобы сделать своё первое приложение (да, в конце у вас будет APK для установки в Oculus Quest).

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

ВАЖНО : Про это нигде не написано явно, но, не забудьте перед старом установить Oculus софт, т.к. в конце сборки Unity постоянно его запускает. При этом, сам Квест для создания APK вам вообще не нужен. А вот для тестирования — уже да. Возможно, билдиться сборка будет и без окулус-софта, я не проверял, у меня он установлен.

Разрешить режим разработчика для шлема

Если вы читали мой гайд по запуску Oculus Quest 2, этот режим у вас уже будет активирован для работы с SideQuest. Если нет — то вот этот момент. Почитайте, там ничего сложного. Эта штука даст вам устанавливать на шлем файлы из неизвестных источников.

Установить Unity

Всё подробно расписывают тут же, там прямо скрины, что нам нужно установить, правда, почему-то там нет Microsoft Visual Studio, ее так же ставьте, если у вас нет подобного редактора (оно будет в вверху на этом скрине):

Необходимые компоненты Unity

Настроить окружение Unity

У них это три шага: создать проект, установить параметры сборки и включить поддержку VR. Я опишу свой алгоритм:

Создаем проект в Юнити-Хабе, выбрав 3D;
В свойствах сборки (File -> Build Settings) выбираем Android и задаем компрессию текстур в ASTC:

Параметры сборки Unity для Oculus Quest

Жмем Switch Platform (оно может думать несколько минут, пока будет переключаться, в зависимости от вашего ПК, это нормально) — эта кнопка будет у вас там, где у меня Build на верхнем скрине;

В Edit > Project Settings выбираем XR Plugin Management и там выбираем галочку для Oculus (так врубаем поддержку VR);

В Edit > Project Settings > Player прописываем разработчика и название приложения;

Настройки автора и названия приложения

В табе андроида (стрелка 3 на предыдущем скрине) в Other settings в разделе Identification пишем уникальное имя пакета андроид. Это важно, оно должно быть уникальным, к тому же, если вы далее будете вносить изменения в ваше приложение и снова устанавливать его в шлем, вам не придется удалять старую версию, за счет имени пакета она будет просто перезаписываться.

Там же ставим Minimum API Level — 23 (6,0 Marshmallow) — это важно, т.к. первую ошибку при сборке я поймал именно потому, что не была указана эта штука.

Там же ставим: Install Location — Automatic

Всё это на следующем скрине:

Настройки пакета для Oculus Quest

Сделать первое приложение

А дальше идете по статье, с которой мы начали. Оно на инглише, но, переводчик в помощь, я пробовал, у меня получилось. Единственное, что при сборке была ошибка о том, что не указана версия андирода, я говорю об этом в прошлом пункте. На выходе у вас должно получиться что-то вот такое (APK будет далее в примерах):

Установить приложение на Oculus Quest

Если шлем у вас подрублен кабелем к ПК и настроен весь софт, то по идее кнопка в Unity Build and run вам всё и установит и запустит. Но, я так не пробовал, т.к. не хочу подрубать шлем к компу по кабелю. Ну и точно не хочу, чтобы он всё время висел на проводе, пока я что-то делаю в Unity, хотя в теории это и более удобно, если хочешь что-то сразу тестировать в самом шлеме.

Изначально я ставил свои APK через SideQuest (я уже про него упоминал, ему нет разницы, будешь ты ставить приложение из их магазина или свою поделку). Там же описан способ работы сайдквеста по беспроводу, почитайте вобщем, зря писал чтоли.

Но, в итоге я пришол к более удобному, как мне кажется, способу установки своего APK на Oculus Quest (и совсем без проводов!).

  1. Настраиваем FTP на шлеме, для беспроводной передачи APK.
  2. Ставим на Квест какой-то файлменеджер, например, этот.
  3. Далее, через FTP (в моём случае — это просто вкладка в ТоталКоммандере на ПК) закидываем на шлем наш APK-файл, и через установленный файлменеджер его открываем. В случае с указанным менеджером оно спросит, чем открыть APK, выбираем «Файлы» (да, внутри Квеста, оказывается, есть свой менеджер файлов, только он скрыт).
  4. Оно откроет приложение «Файлы», в нем снова ищем наш APK и открыаем снова, и вот теперь оно предложит его установить, предварительно предупредив, что файл может быть вредоносным.
  5. Устанавливаем файл, никуда не переходим! У нас сразу появится кнопка «Открыть», жмем ее и запускаем наше приложение. (Если что, оно потом будет в незивестных источниках, его оттуда можно удалить).
  6. Профит!

Теперь, когда у нас настроена связка: ПК -> шлем порядок работы прост. Изменили что-то в Unity, сделали сборку, залили по FTP на шлем, взяли в руки шлем, там у нас всё еще открыто окно «Файлы» с нашей папкой, куда мы закидывали APK, просто жмем на него и оно запишет новое приложение поверх старого (т.к. мы не меняли имя пакета).

Так очень быстро и просто можно проверять изменения, которые вы вносите в приолжение, и вам вообще не нужен кабель!

Есть еще способ через ODH, но про него далее, тем более, что у меня он не заработал.

Интеграция пакета Oculus в Unity

После того, как вы сделаете первое приложение, вы увидите, что:

  1. Камера жестко прибита к голове;
  2. Вы не можете перемещаться по этому миру;
  3. И вообще не ясно, что делать дальше.

А дальше вам понадобится вот эта штука Oculus Integration Package — пакет префабов и заготовок от Oculus для вашей дальнейшей разработки. Чтобы его установить, делаем следующее:

  1. В Unity жмем Ctrl + 9 (или идем в меню Window -> Asset store);
  2. В окно поиска вводим oculus integration, листаем, пока не найдем нужный нам пакет:
  3. Переходим внутрь, жмем Download, ждем, пока оно скачается. После этого Download сменится на Import, жмем эту кнопку.
  4. Далее, выбираем нужные нам компоненты вот в этом окне. Там много всего, для простейшей разработки нам понадобится только секция VR, но в первый раз можете импортировать всё, ваш проект на диске разопрет где-то до гигабайта, это его нормальное состояние:

Выбирайте только нужное

Ассеты Oculus

Там есть и демо-сцены, и разные модельки, и готовые префабы, покопайтесь.

ВАЖНО : в какой-то момент при импорте Unity скажет, что вы качаете новый плагин для VR и не обновить ли старый — соглашаемся обновить.

Как заставить игрока ходить и смотреть по сторонам

Для этого нужно добавить в сцену префаб OVR Player Controller, который лежит вот тут:

Учим игрока ходить

Само собой, у вас в сцене не должно быть других камер и других подобных префабов. В лучшем случае, оно просто не заработает, в худшем при сборке начнет выдавать ошибки.

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

Как сделать плавный поворот

В описанном выше префабе убрать эту галочку Snap rotation:

Делаем плавный поворот для игрока

Теперь крутиться в VR мире куда приятнее. Там же можете посмотреть и другие настройки.

Как оценить производительность игры на Oculus Quest 2

А это важно, т.к. когда я пытался переделать демку с башней, она у меня просто начала тормозить, хотя, даже на Карборде работало же как-то через пень колоду. Думаю, всё дело в слишком детализированной земле. В конце я приложу APK, чтобы вы поняли, о какой тупке я говорю)

Потому, когда вы поставите свое приложение, у вас возникнет вопрос, тянет его Квест или нет (а там может быть 35 FPS, хотя будет казаться, что все 90). У нас есть для этого внутренний инструмент Окулкуса, который можно активировать двумя способами.

Активируем OVR Metrics на шлеме

Эта штука дает нам, например, глянуть, в каком разрешении работают экраны, сколько оперативной и видео-памяти занято и свободно и т.п. Вам понадобится вот эта софтина, OVR Metrics Tool. Там скачивается архив и дальше из него достаем апк-шку и ставим через СайдКвест (ну или выше описанным мной методом).

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

Интересный факт: по дефолту Oculus Quest 2 работает с разрешением 1440 (ширина) и 1584 (высота) пикселей на глаз, можете проверить. Товарищ на Реддите ставил заявленные 1832*1920 и некоторые игры начинали тормозить…

Про Oculus Developer Hub

Это такая штука, которая в теории должна облегчать жизнь разработчику.

Качаете софтину, подрубаете шлем кабелем к ПК, даете внутри шлема все нужные разрешения, когда оно спросит и после этого у вас на ПК можно будет:

  1. Стримить видео со шлема;
  2. Делать скрины со шлема;
  3. Видеть состояние шлем — заряд, заряд контроллеров, загрузка железа и т.п.
  4. Можно ставить приложения через эту софтину, но, работает только по кабелю. Для этого нужно перетащить ваш APK в зону с приложениями из неизвестных источнчинков.

Так же, эту штуку можно заставить работать по Wi-Fi, если установить галочку вот тут:

Активируем Wi-Fi для ODH

Ну и из нее же можно делать настойку оверлея для OVR Metrics, про который я писал выше.

ВАЖНО : всё глючное и сырое. Оверлей в шлеме может зависать, может не отображаться, до перезагрузки шлема и т.п. Будьте готовы к этому. Те же приложения через ODH по вайфаю у меня ставиться отказались, так что, я остался на способе FTP -> Файл менеджер.

Но, кому-то эта штука может пригодиться.

Полезные ссылки

Здесь кое-что, может вам пригодиться.

  • Стартовая статья, с которой мы начали, после нее вы сможете сделать своё первое приложение с шариком;
  • Установка пакета Oculus на Unity;
  • ВидеоКурс из 11-ти бесплатных уроков от Oculus и Unity, после которого вы сделаете свою первую игру в стиле «выберись из комнаты» (англ.);
  • Стартовая статья на сайте Oculus про разработку под Oculus Quest (по сути, это главная всего раздела про разработку);
  • Магазин ассетов Unity (но он так же доступен и в самом приложении Unity, из него мы ставили пакет Oculus);
  • Простой и полезный первый урок по Unity на YouTube, из него вы узнаете основы интерфейса, как перемещаться по сцене и т.п.

Для начала этого более чем достаточно.

Мои примеры

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

Пример с шариком

Уже было, но напомню еще раз, это то, что у вас должно выйти после первой статьи:

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

Темная Башня

Которая не смогла. Точнее, землю я перенести смог из старого проекта, но, уже увидев, что оно не тянет, понял, что лучше не продолжать:

И вышла она не тёмной, а белой, т.к. без текстур

Если подойти к краю, там хорошо видно, что шлем начинает подтормаживать. Если у вас активирован оверлей овр-метрики, то там будет 35 FPS. Далее, я пробовал еще деревья добавить, это был ад, 1-5 FPS, с большим трудом вообще вышел из приложения без перезагрузки.

Демка со слоном и мышом

Еще с лета остались модельки, и я решил пустить их в ход. Если что, для импорта из Blender нужно, чтобы сам файл блендера лежал у вас в ассетах проекта. Тогда его будет видно и в окне в Unity и вы сможете использовать модельки оттуда. Но, материалы всё равно придется делать уже в Unity.

В данном случае, пол сделан как раз с помощью нескольких карт, потому так круто смотрится, а ведь по факту — одна плоскоть! Слава PBR!

Модельки остались еще с прошлого изучения Blender, вполне себе пригодились для демонтсрацци.

Что дальше (подводя итог)

А дальше думаю, как всегда, немного поколупаю и пойду заниматься чем-то еще, как это часто бывает. Т.к. есть вопросы, ответы на которые найти непросто, да и лень искать. Это же был стартовый пост, который вполне может пригодиться вам для быстрого начала в изучении разработки под Oculus Quest.

  • Почему я решил обновиться на Oculus Quest 2 с Oculus Rift S
  • Какие приложения/игры установить/купить для Oculus Quest 2
  • Что делать после покупки Oculus Quest 2: пошаговый гайд
  • Аксессуары для VR шлема Oculus Quest 2 — что можно докупить?
  • Полезные фишки по работе с Oculus Quest 2
  • Проблемы с Oculus Quest 2 и способы их решения
  • Трекинг рук на Oculus Quest 2: как это работает + список демок
  • Интересные игры и приложения из SideQuest для Oculus Quest 2
  • Как смотреть видео с ПК на Oculus Quest 2 через SKYBOX
  • Firefox Reality — лучший браузер для Oculus Quest 2 и просмотра YouTube в VR

С вами был @Pavel419., до новых постов!

Рубрика: Блог о виртуальной реальности (ПК VR) Метки: Всё про Oculus Quest 2

Мой VR-Канал на YouTube

Популярные записи

  • Что делать после покупки Oculus Quest 2: пошаговый гайд
  • Скайбоксы (окружения) для VR шлема Quest 2
  • Проблемы с Oculus Quest 2 и способы их решения
  • Бесплатные игры и программы для VR контроллеров
  • Как запускать VR ПК игры на Oculus без Steam VR и зачем это нужно?
  • VR шлем Pico 4 — ожидание и реальность
  • Что посмотреть в 3D? Лучшие 3D фильмы
  • Как смотреть видео с ПК на Oculus Quest 2 через SKYBOX

Свежие записи

  • Скайбоксы (окружения) для VR шлема Quest 2 11.06.2023
  • VR-Игры, которые мне подарили (часть 3) 16.02.2023
  • Новости виртуальной реальности за 2023 год 06.01.2023
  • VR шлем Pico 4 — ожидание и реальность 15.11.2022
  • Что купить из VR игр в Steam: часть 8 26.10.2022
  • Как сделать своё окружение для Quest 2 18.05.2022
  • Как переводить VR игры на русский: фишки и советы 10.02.2022
  • VR-Игры, которые мне подарили (часть 2) 31.01.2022

Полезное для ПК VR

Подборка статей

Подборка статей

VR-чат в Telegram

VR клубы на карте России

Новости VR 2023

Помочь проекту

Каталог игр для Cardboard

Популярные файлы

  • Сравнение шлемов VR для смартфона (16 кб.)
  • Инструкция для джойстика-брелка (1,4 Мб.)

Создаём простое VR-приложение на Unity

Виртуальная реальность — захватывающее направление в разработке. Это и новые форматы сторителлинга и действенные способы передачи ощущений и эмоций. Ещё не так давно для разработки таких приложений использовалось дорогое оборудование. Сегодня вы можете создать видео-приложение с обзором в 360° для Android всего за 10 минут. И даже навыки программирования не потребуются.

1_US4qmns1r1F0BKMxBpeYcg_1-1801-80e49f.png

Что понадобится: — смартфон с гироскопом; — гарнитура Google Cardboard; — кроссплатформенный движок Unity3D; — GoogleVR SDK для Unity; — видео с обзором в 360°.

Нюансы

Как известно, обычное видео ограничено прямоугольной рамкой. В нашем случае речь идёт о панорамном видео, а оно имеет форму сферы. Именно поэтому нам сначала надо создать сферический экран — на него будет спроецировано видео с обзором в 360°. Наблюдатель или игрок будет находиться как бы внутри данной сферы, в результате чего он сможет смотреть видео в любом интересующем направлении.

Шаг 1: строим сферу

sphere_1-1801-08f43c.jpg

Для решения этой задачи создаём новый Project в Unity либо новую Scene, если вы желаете интегрировать видеоплеер в уже существующий проект. Можно сказать, что Project — это вся игра, а Scene — один уровень в игре.

Далее помещаем сферу (3D object → Sphere) с радиусом 50 (Scale = 50, 50, 50) в центр Scene (Position = 0, 0, 0) и устанавливаем позицию камеры на 0, 0, 0. Видеокамера — это глаза игрока: поместив её не в центр, мы получим искажённое видео. Когда камера будет внутри сферы, мы уже не увидим её на сцене.

Шаг 2: переворачиваем нормаль сферы

flip_normals_1-1801-d67e72.png

Так как нам надо смотреть на сферу изнутри, мы вывернем её наоборот. В игровом движке Unity сферы являются, по сути, многогранниками, состоящими из тысяч крошечных граней. Внешние стороны видимы, а внутренние — нет. Поэтому, дабы увидеть сферу изнутри, надо эти грани перевернуть. В терминах 3-мерной геометрии данная трансформация носит название «переворачивание нормалей».

Здесь нам пригодится программа Shader, которую мы применим к Material сферы. В Unity материалы контролируют внешний вид объектов. Шейдеры представляют собой небольшие скрипты, рассчитывающие цвет каждого рендерированного пикселя на основе информации о материале и освещении.

Нам надо создать новый Material для сферы и применить к нему Shader (код можно скопировать здесь). Данный шейдер вывернет каждый пиксель сферы, в результате чего изнутри сфера станет выглядеть, как большой белый шар.

Шаг 3: проектируем панорамное видео внутрь сферы

Теперь импортируем в проект видео формата mp4 с обзором в 360° и перенесём его на сферу. Возникнет компонент Video Player, а видео станет готово к воспроизведению. В окне данного компонента вы можете установить бесконечный повтор, а также отрегулировать настройки звука. Кстати, если собственное видео такого типа у вас отсутствует, в сети свободно распространяются чужие заготовки, которые можно использовать.

Шаг 4: настраиваем поддержку Google Cardboard

cardboard_1-1801-d83722.png

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

Дабы добавить GoogleVR SDK к вашему проекту, надо скачать и импортировать соответствующий плагин. Далее надо будет скорректировать некоторые настройки Android: 1. Выбираем в верхнем меню File → Build Settings. Добавляем сцену, если она еще не добавлена, из предлагаемых платформ выбираем Android. 2. Нажимаем на Switch Platform. Переключение платформы потребует некоторого времени. 3. Нажимаем на Player Settings. Соответствующие компоненты появятся на панели инструктора.

Что делаем в секции Other settings в окне Player Settings: • отмечаем галочкой Virtual Reality Supported. Выпадает окно Virtual Reality SDKs, нажимаем на плюс, добавляем в список Cardboard; • выбираем для нашего приложения уникальное имя и вводим его в поле Bundle Identifier. Обратите внимание, что уникальные имена приложений для Android, как правило, имеют форму обратного доменного имени, к примеру, com.example.CoolApp; • в меню Minimal API Level выбираем Android 4.4 Kit Kat (API Level 19).

Идём дальше. В панели Project Browser (папка GoogleVR/Prefabs) выбираем элемент GvrViewerMain и перетаскиваем его на сцену. Задаём ему ту же позицию, как и у центра сферы: 0, 0, 0.

Следует сказать, что префаб GvrViewerMain контролирует все настройки VR-режима, к примеру, адаптацию экрана к линзам Cardboard. Кроме того, он получает данные с гироскопа смартфона для отслеживания наклонов головы и поворотов, то есть при повороте головы Camera в видеоплеере повернётся тоже.

Шаг 5: запускаем приложение на Android

1_6ZeCWw1dEKNNT7iLtXfndQ_1-1801-5f2be8.png

Запустить приложение можно двумя путями: 1) выбираем File → Build Settings. Посредством USB-кабеля подключаем телефон к компьютеру, включаем отладку по USB, нажимаем Build & Run. В результате приложение загрузится сразу на смартфон; 2) нажимаем Build only. Приложение не загрузится сразу на смартфон, зато сгенерируется в APK-файл, который, в свою очередь, вы сможете отправить друзьям либо выложить в маркет.

Также во время сборки могут попросить выбрать корневую папку Android SDK. Если это произойдёт, скачайте Android SDK, а потом укажите расположение его папки.

Что же, осталось лишь запустить приложение и вставить смартфон в Cardboard. В результате вы сможете погрузиться в виртуальную реальность непосредственно у себя дома.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *