ВведениеСегодня расскажу про курс создания игры "Дартс", который начинал еще 2 недели назад, но пришлось откатиться на более базовые курсы. Курс называется "Oculus VR Production for Unreal Engine", он был разработан Oculus и Epic Games. По какой-то причине он был удален с обучающих материалов Unreal Engine.Есть темы, что люди ищут этот курс, но получают только альтернативу, которая не даст возможность создать полноценную мини-игру:forums.unrealengine.comMissing Course - Oculus VR Production for Unreal EngineПриложу обсуждения по проблемам по прохождению этого курса:forums.unrealengine.comSupport Thread: Oculus VR Production for Unreal EngineКурс рассчитан для Unreal Engine 4.24-4.25, по этому, мне пришлось сначала изучить различие систем управления персонажем между UE4 и UE5, чтобы адаптировать этот курс под Unreal Engine 5.3.2. Если вы будете учиться на Unreal Engine 4, то у вас проблем не возникнет.Что лучше сделать заранее?Для начала получите права разработчика, например, по инструкции в этом видео от автора ВИРТУАЛЬНЫЙ СЛОН: Начинаем прохождение курса "Oculus VR Production for Unreal Engine" или создаем свой ДартсКурс был перезалит автором RGB на youtube, надеюсь курс не удалят:https://youtube.com/playlist?list=PLCWdyrWMXRVzZScOJ2uvDaQ-oteqQxJF7&si=TxoNMypj286HBIifИсходные файлы ассетов для курса:www.unrealengine.comwww.unrealengine.comГотовая игра Дартс из курса:www.unrealengine.comwww.unrealengine.comВ данный момент (29.06.2024), я прошел 15 видеоуроков из этого плейлиста. Ниже я опишу проблемы, с которыми я столкнулся, некоторые из них я смог решить. Мне пришлось так же мигрировать весь проект в Unreal Engine 5:Скачал Unreal Engine 4.25.4Запустил проект https://www.unrealengine.com/marketplace/en-US/product/oculus-vr-assets-only в UE4Выделил все файлы проектаНажал мигрировать в папку Contents моего основного проекта Дартс Unreal Engine 5Открыл свой проект Дартс Unreal Engine 5Во время открытия проекта UE4 выпадает несколько ошибок, но если на все нажать "ок" то проект всё равно запустится.1 проблема. Oculus Entitlment Check возвращает failed. (5-е видео из плейлиста) (решено)Для проверки прав на приложение мы прописываем в конфиге (\путь к вашему проекту\Config\DefaultEngile.ini) наш OculusAppId и RiftAppIdБерем AppId из дашборда разработчика>настройки приложения>API:[OnlineSubsystem]DefaultPlatformService=Oculus[OnlineSubsystemOculus]bEnabled=trueOculusAppId="12***********67"RiftAppId="12************67"Выдайте права вашим приложениям!Когда вы создаете свои приложения для AppLab и OculusRift. Вам необходимо:Верифицировать себя как админа;Получить права на UserId и UserProfile в приложении.Получаем права админаПереходим в дашборд разработчика oculus. https://developer.oculus.com/manage/Нажимаем "Начать подтверждение"Я подтверждал с помощью загран. паспорта РФ и вводил свои настоящие данные. Страну указывал "Россия".После заполнения анкеты админа, вы увидите подобное окно:На следующее утро, я уже получил на почту письмо, что я успешно верифицирован как разработчик.Получаем права на UserId и UserProfile в приложении.Вы уже создали два приложения Дартс (AppLab и OculusRift).В каждом, необходимо зайти в My Apps>Edit Details(приложения)>Requirements>проверка использования данныхВ каждом приложении необходимо запросить UserId и UserProfile. Обоснование запроса для этой информации можете списать с моего скриншота. Далее вам необходимо заполнить анкету:резидент какой вы страныкто будет обрабатывать эти данные (я ввел свою ФИО)при каких условиях вы можете передать эти данные (вводим "только на законных основаниях")Буквально за несколько часов вам одобрят ваш запрос.Именно после этих шагов, я смог успешно пройти проверку приложения с помощью Verify Entitlement (5-е видео 4:10):Документация, которая мне помогла решить проверку прав (документация oculus не открывается без VPN):https://developer.oculus.com/documentation/unreal/unreal-quick-start-guide-quest#entitlementcommunityforums.atmeta.comGetLoggedInUser returns Internal Error: OVR35993423communityforums.atmeta.comHelp, can't pass verification and get "successful" after "Verify Entitlement" blueprintcommunityforums.atmeta.comGet Oculus Identity returns No Logged In user2 проблема. Max Draw Distance для PointLight не работает. (9-е видео из плейлиста 13:20) (решено)Я выставляю Max Draw Distance в разные значения в Unreal Engine 5.3.2 делаю ребилд света и при отдалении от лампочки, она не отключается. По факту, решилось переоткрытием проекта, не знаю что за чудеса случились.3 проблема. Precomputed Visibility Volume не работает в UE5.3.2 (решено)В 9-м видео, мы включаем Precomputed Visibility Volume, но в версии UE5.3.2 он не запускается.Я добавил этот код в файл UE_5.3\Engine\Source\Runtime\Renderer\Private\SceneVisibility.cpp```if (ViewState){ SCOPE_CYCLE_COUNTER(STAT_DecompressPrecomputedOcclusion);View.PrecomputedVisibilityData = ViewState->GetPrecomputedVisibilityData(View, &Scene);}else{View.PrecomputedVisibilityData = nullptr;}```Источник решения проблемы на форуме unreal engine:forums.unrealengine.comPrecomputed Visibility Volume NOT WORK in UE5.3Далее мы вводим в cmd:r.VisualizeOccludedPrimitives 1И получаем Предварительно рассчитанный объем видимости:4 проблема. Появление нескольких персонажей при запуске VR сцены + не работает ввод действий в меню (решено)Как я описывал в прошлой части статьи, Система управления была изменена на Character, чтобы я использовал своё собственное управление в Unreal Engine 5.В 8-м уроке видео, мы настраиваем BP_PlayerStart, а так же, настраиваем свой GameMode_Darts, где мы определяем какой игрок находится на карте и определяем ему порядковый номер.У меня в настройках был указан персонаж VRPawnDarts, а должен быть указан родительский персонаж BPP_Pawn_Darts.Так расположен мой BP_PlayerStart на картеИз-за этого у меня появлялось два персонажаИ именно по этой причине у меня перестали работать нажатия на кнопки в меню. Потому что было два экземпляра персонажа.Перестало работатьПосле того как я прописал Default Pawn Class - "BPP_Pawn_Darts" в настройки проекта>Maps & Modes, проблемы решились.Должно так работать5 проблема. No Guardian found. Check Oculus App (не решено)В 15-м видео (4:17), мы подключаем функцию Is Guardian Configured.Но после всех проверок, у меня функция возвращает false. Я не использую MetaXR Simulator. Я использую Project Settings>MetaXR>XR API > Epic Native OpenXR with Oculus with Oculus vendor extension.Описание функции:docs.unrealengine.comIs Guardian ConfiguredКак оно должно работать описано тут:dev.epicgames.comdev.epicgames.comЯ пробовал:Проверял запускать VR Preview стоя через Oculus Link или через usb кабель.Обращения других разработчиков об этой проблеме:communityforums.atmeta.comUE4 Can't get the guardian within the editor.forums.unrealengine.comHow to get playarea points from OpenXR (chaperone/guardian etc.)ЗаключениеЕсли у меня появятся дополнения по описанному в этой статье, то я допишу их с пометкой Update (date).Следующая статья будет посвящена продолжению прохождения этого курса. До новых встреч!Телеграм канал Unreal Engine VRt.meUnreal Engine VR