Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Возглавьте армию своей страны в войне с коварным врагом. Управляйте ресурсами, принимайте ключевые решения и ведите Граднар через суровый конфликт. Ваши действия определяют будущее, приводя страну к победе или поражению.

Симулятор войны: 1985

Мидкорные, Стратегии, Симуляторы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
5
8bitsage
8bitsage
3 месяца назад

Unreal Engine 5 и VR с нуля. Часть 11. Естественный спринт в VR: Управление скоростью с помощью махов рук. Arm Swinging спринт⁠⁠

Введение

В феврале, я проходил курс по С++ для Unreal Engine в контексте VR. В это же время я начал параллельно писать основу для VR проекта с нуля, но в какой то момент, понял насколько много вещей нужно учесть и протестировать, прежде чем двигаться дальше.

Я закомментировал весь написанный код и перешел на VR Expansion Plugin. В этом плагине уже решено множество проблем, как синхронизация камеры HMD и капсулы персонажа, поведение капсулы когда ты движешься физически упираешься в стену и так далее. Я до сих пор разбираю код этого плагина. Плагин поддерживает разные версии Unreal Engine. Всё доступно в репозитории бесплатно: https://github.com/mordentral/VRExpansionPlugin

Я полностью перенес код VR Expansion Plugin в свой проект, чтобы в последующем модифицировать его. Так как я базируюсь на коде этого плагина, я не буду описывать туториалы "как с нуля построить VR проект", вроде бы звучит логичным "покажи как перенести код из VR Expansion Plugin и модифицировать его", но у меня столько времени нет.

Статьи будут выходить, в статьях я буду стараться передавать модульный функционал. Показывая пример как его можно применить на простом примере. Так как контекст всех проектов разный, основываясь на моем примере вы можете применить его у себя (нейронки в помощь, грузите ей "свой контекст" и "мой пример", смотрите как можно интегрировать и надо ли оно вам вобще)

А сегодня поговорим про перевод персонажа в спринт с помощью махов рук. Такая механика применяется например в Blade and Sorcery или Battle Talent.

Функции вероятнее всего будут приложены скриншотами, а скопировать код можно будет из https://gist.github.com/8bitsage

Код этой статьи: https://gist.github.com/8bitsage/0e17f196d2114ec7d663e08a29204c5b

Концепция механики Arm Swinging

Идея проста: когда игрок двигается вперед и активно машет руками (как при беге), персонаж автоматически переходит в режим спринта. Это позволяет:

  • Освободить кнопки контроллера для других действий.

  • Сделать передвижение более иммерсивным.

  • Связать физическую активность игрока со скоростью персонажа в игре.

Архитектура решения

Шаг 1: Определение переменных

В заголовочном файле (h файл) класса персонажа (например, AVRPlayerCharacter.h) добавляем необходимые переменные:

// === Настраиваемые параметры ===
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement|ArmSwing",
meta = (ClampMin = "3.0", ClampMax = "15.0"))
float ArmSwingThreshold = 7.0f;
// Порог активации спринта в сантиметрах
// Определяет минимальное суммарное расстояние, которое должны пройти
// оба контроллера за один цикл проверки для активации спринта
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement|ArmSwing",
meta = (ClampMin = "0.01", ClampMax = "0.2"))
float CheckFrequency = 0.02f;
// Частота проверки движения контроллеров в секундах
// Меньшее значение = более отзывчивая механика, но больше нагрузка
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement")
float SprintSpeed = 600.0f;
// Скорость персонажа при спринте (см/с)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement")
float RunSpeed = 400.0f;
// Скорость персонажа при беге (см/с)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement")
float WalkSpeed = 200.0f;
// Скорость персонажа при ходьбе (см/с)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement",
meta = (ClampMin = "0.1", ClampMax = "0.5"))
float MinStickMagnitudeForRun = 0.3f;
// Минимальное отклонение стика для перехода от ходьбы к бегу
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement",
meta = (ClampMin = "0.5", ClampMax = "0.9"))
float MinForwardRatioForSprint = 0.7f;
// Минимальная доля движения вперед для возможности спринта
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement",
meta = (ClampMin = "0.3", ClampMax = "0.7"))
float MaxLateralRatioForSprint = 0.5f;
// Максимальная доля бокового движения для возможности спринта
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement",
meta = (ClampMin = "0.1", ClampMax = "1.0"))
float BackwardSpeedMultiplier = 0.7f;
// Множитель скорости при движении назад
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Movement",
meta = (ClampMin = "0.1", ClampMax = "1.0"))
float SidewaysSpeedMultiplier = 0.8f;
// Множитель скорости при движении вбок
// === Внутренние переменные ===
FVector LastLeftControllerPos;
// Предыдущая позиция левого контроллера для расчета дельты
FVector LastRightControllerPos;
// Предыдущая позиция правого контроллера для расчета дельты
FTimerHandle ArmSwingTimerHandle;
// Хэндл таймера для периодической проверки движения
bool bIsArmSwinging = false;
// Флаг текущего состояния: true если игрок машет руками достаточно интенсивно
void CheckArmSwing();
void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent);
void MoveCharacter(const FInputActionValue& Value);
void HandleMovementInput(const FVector2D& InputValue);

Логика определения скорости:

  1. Слабое отклонение стика (< MinStickMagnitudeForRun) — всегда ходьба, независимо от махов руками

  2. Сильное отклонение стика (≥ MinStickMagnitudeForRun): Движение вперед (ForwardRatio > MinForwardRatioForSprint и боковое отклонение < MaxLateralRatioForSprint):С махами руками → Спринт Без махов руками → Бег Движение назад или вбок → Только бег (спринт невозможен)

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

Ссылки на документацию:

  • UPROPERTY

  • FTimerHandle

  • Meta tags

Шаг 2: Реализация детекции махов руками

В файле реализации (AVRPlayerCharacter.cpp) создаем функцию проверки:

Unreal Engine 5 и VR с нуля. Часть 11. Естественный спринт в VR: Управление скоростью с помощью махов рук. Arm Swinging спринт Гайд, Разработка, Unreal Engine, Gamedev, Виртуальная реальность, Oculus Rift, Длиннопост

Как это работает:

  1. Функция вызывается каждые CheckFrequency секунд (по умолчанию 0.02с = 50 раз в секунду) Настройте для оптимальной производительности.

  2. Измеряется расстояние, пройденное каждым контроллером с последнего вызова

  3. Если суммарное расстояние превышает ArmSwingThreshold, считается что игрок "бежит"

Шаг 3: Инициализация системы

В методе BeginPlay() запускаем периодическую проверку:

Unreal Engine 5 и VR с нуля. Часть 11. Естественный спринт в VR: Управление скоростью с помощью махов рук. Arm Swinging спринт Гайд, Разработка, Unreal Engine, Gamedev, Виртуальная реальность, Oculus Rift, Длиннопост

Ссылки на документацию:

  • Timer Management

  • UMotionControllerComponent

Шаг 4: Интеграция с Enhanced Input System

Теперь нужно связать механику с системой ввода. Сначала настраиваем привязку action'а:

Unreal Engine 5 и VR с нуля. Часть 11. Естественный спринт в VR: Управление скоростью с помощью махов рук. Arm Swinging спринт Гайд, Разработка, Unreal Engine, Gamedev, Виртуальная реальность, Oculus Rift, Длиннопост

Затем реализуем функцию обработки ввода:

Unreal Engine 5 и VR с нуля. Часть 11. Естественный спринт в VR: Управление скоростью с помощью махов рук. Arm Swinging спринт Гайд, Разработка, Unreal Engine, Gamedev, Виртуальная реальность, Oculus Rift, Длиннопост

Шаг 5: Управление скоростью персонажа

Важно понимать! В моем примере применение скорости персонажа в зависимости от направления взгляда камеры. Например, стик отодвинут вперед (мы бежим вперед), повернули голову на 90 градусов, мы по прежнему бежим вперед, только уже в ту сторону, когда повернулась голова.

Иногда делают реализации, когда вектор движения применяется от направления капсулы. Направление "вперед" для ввода с джойстика определяется направлением "вперед" капсулы персонажа (или его тела), а не тем, куда смотрит HMD (голова). Игрок может свободно осматриваться головой, не меняя направления движения. При этом повороты самой капсулы (тела персонажа) обычно управляются отдельно, например, правым стиком (snap turn/smooth turn) или физическим поворотом игрока, если включено bUseControllerRotationYaw для персонажа и соответствующая логика в PlayerController.

Вернемся к моему примеру. Основная логика применения скорости находится в HandleMovementInput:

Unreal Engine 5 и VR с нуля. Часть 11. Естественный спринт в VR: Управление скоростью с помощью махов рук. Arm Swinging спринт Гайд, Разработка, Unreal Engine, Gamedev, Виртуальная реальность, Oculus Rift, Длиннопост

Ссылки на документацию:

  • Enhanced Input System

  • UCharacterMovementComponent

  • AddMovementInput

Настройка в редакторе

1. Создание Input Action

  1. Создайте новый Input Action IA_MoveCharacter

  2. Установите Value Type: Axis2D

  3. В Input Mapping Context привяжите к левому стику VR контроллера

  4. Укажите персонажу Input Mapping Context

2. Настройка параметров движения

В Blueprint персонажа или в Details панели вы можете настроить все параметры:Параметры махов руками:

  • Arm Swing Threshold — чувствительность активации спринта (см)

  • Check Frequency — частота проверки движения контроллеров

Скорости движения:

  • Sprint Speed — скорость при спринте

  • Run Speed — скорость при беге

  • Walk Speed — скорость при ходьбе

Пороги направления:

  • Min Stick Magnitude For Run — минимальное отклонение стика для бега

  • Min Forward Ratio For Sprint — доля движения вперед для спринта

  • Max Lateral Ratio For Sprint — максимальная доля бокового движения для спринта

Множители скорости:

  • Backward Speed Multiplier — коэффициент замедления при движении назад (0.7 = 70% от обычной скорости)

  • Sideways Speed Multiplier — коэффициент замедления при движении вбок (0.8 = 80% от обычной скорости)

Демонстрация этой логики на моем проекте:

Rutube: https://rutube.ru/shorts/ced7d33345b2d47e399f9f5f171dcd2e/

Youtube: https://youtube.com/shorts/4NbbaeqUZ7k

Заключение

Эта механика делает передвижение в VR более естественным и погружающим. Игроку не нужно думать о кнопках — достаточно начать активнее двигать руками, как при реальном беге. Демонстрация примера показана упрощенно, модифицируйте код под конкретные нужды проекта, все ключевые параметры доступны для настройки прямо в редакторе.

Телеграм канал Unreal Engine VR

Поддержать канал

Показать полностью 5
[моё] Гайд Разработка Unreal Engine Gamedev Виртуальная реальность Oculus Rift Длиннопост
0
1
8bitsage
8bitsage
3 месяца назад

Power IK Ground — Эффективное решение для реалистичного позиционирования ног⁠⁠

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

Документация всего проекта описана здесь, но изначально плагин существует для Unreal Engine 4.26:

https://www.fab.com/listings/b9d29157-e20b-48f8-a188-37bfd0d...

https://poweranimated.github.io/

Именно здесь на помощь приходит Power IK Ground — простой, но мощный инструмент, созданный специально для решения этой задачи. Power IK Ground — это специализированная нода (Inverse Kinematics), которая автоматически адаптирует положение ног персонажа к любым поверхностям, будь то каменистые тропинки, лестницы, наклонные плоскости или другие неровности.

Преимущества использования Power IK Ground:

  • Реалистичность: Стопы персонажа всегда выглядят естественно, независимо от формы поверхности.

  • Производительность: Power IK оптимизирован и идеально подходит даже для VR-устройств с ограниченными ресурсами, таких как Meta Quest.

  • Удобство: Минимальная настройка и интеграция с уже существующими анимационными системами.

Да, есть решения от Unreal Engine(Control Rig), где ты сам настраиваешь трассировку для правильной работы стопы. Меня зацепило, что автор обещает высокую производительность, а именно это мне нужно для VR проекта, поэтому я решил его использовать.

Недавно я адаптировал плагин Power IK под Unreal Engine 5.5 (за основу взял версию для UE5.2 от другого разработчика https://github.com/tornellihenrique/PowerIK-UE5.2), устранив проблемы компиляции и добавив поддержку сборки проектов под Android (Meta Quest). Также были решены проблемы полями в редакторе для указания костей где настраивается сгибание коленей персонажа.

Power IK теперь доступен в моем репозитории на GitHub, который можно свободно использовать и улучшать:
https://github.com/8bitsage/PowerIK_UE5.5

Как добавить плагин в проект?

1. Скачиваем плагин с бинарниками для Unreal Engine 5.5

Power IK Ground — Эффективное решение для реалистичного позиционирования ног Разработка, Гайд, Gamedev, YouTube, Виртуальная реальность, Unreal Engine, Длиннопост

2. качаем zip из релизов

Power IK Ground — Эффективное решение для реалистичного позиционирования ног Разработка, Гайд, Gamedev, YouTube, Виртуальная реальность, Unreal Engine, Длиннопост

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

Power IK Ground — Эффективное решение для реалистичного позиционирования ног Разработка, Гайд, Gamedev, YouTube, Виртуальная реальность, Unreal Engine, Длиннопост

4. Запускаете проект и включаете плагин в Plugins. Нода Power IK Ground появится в анимационном блюпринте.

Power IK Ground — Эффективное решение для реалистичного позиционирования ног Разработка, Гайд, Gamedev, YouTube, Виртуальная реальность, Unreal Engine, Длиннопост

Полезные уроки, которые помогут настроить Power IK Ground:

1. Урок от автора плагина - https://www.youtube.com/watch?v=g1FgBDIA2zA&amp;t=3s&amp;ab_...

2. Настройка Power IK Ground от стороннего разработчика с 3:46 - https://youtu.be/PMSxTCp0kuQ?si=A5EuogPb4dmTZPeh&t=226

Вы можете посмотреть мою короткую демонстрацию работы Power IK Ground по ссылке ниже (да, у меня RU и EN каналы):
https://www.youtube.com/shorts/vWHbCahyuKw
https://www.youtube.com/shorts/6ic3Tr9NI1I

Используйте Power IK Ground, чтобы вывести свой проект на новый уровень реалистичности!

Телеграм канал Unreal Engine VR
Поддержать канал

Показать полностью 4
[моё] Разработка Гайд Gamedev YouTube Виртуальная реальность Unreal Engine Длиннопост
0
4
8bitsage
8bitsage
4 месяца назад

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO⁠⁠

Введение

Давно ничего не писал, изучал базу С++ (до сих пор изучаю), знакомился с апи Unreal Engine, читаю книги и смотрю на реализации других авторов.
В общем всё по плану прошлой статьи. Думаю пора начать Pet-проект, а может и что-то интересное из этого выйдет.

В качестве IDE использую Rider, по-моему на нём куда стабильнее работать чем Visual Studio.

Общими вещами, механиками, я буду делиться в статьях. Чем то уникальным для проекта делиться смысла нет, иначе вроде и смысла тогда в проекте не будет..

Настройка Unreal Engine 5.5

https://dev.epicgames.com/community/learning/tutorials/PYP7/...

Есть видео основанное на документе по настройке UE 5.5
https://www.youtube.com/watch?v=EClbEbNcl4k&list=LL&index=6&ab_channel=MamadouBabaei

Не забываем установить пакеты под целевую платформу Android

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

Создание проекта

Доля рынка VR всё равно вышел на мобильных проектах, поэтому создавать проект буду на Meta Quest 2, 3, 3s, PRO.

Если что-то получится, можно расшириться на PICO. А еще в след году обещают выпустить мобильную гарнитуру Samsung и Steam.

Поэтому запускаю Unreal Engine 5.5.3 и выбираю:

проект Blank,
C++,
Target Platform: Mobile,
Quality Preset: Maximum

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

Добавляем плагины MetaXR, MetaXRAudio с сайта:

https://developers.meta.com/horizon/downloads/package/unreal-engine-5-integration/

https://developers.meta.com/horizon/downloads/package/meta-x...

Листай ниже если не хочешь компилировать под UE 5.5MetaXRAudio компилируем под версию Unreal Engine 5.5 (если используете 5.4, то ничего делать не надо) Инструкция по компиляции плагина под движок - https://developers.meta.com/horizon/documentation/unreal/meta-xr-audio-sdk-unreal-req-setup/#repackaing-for-a-different-version-of-unreal-engine

Помещаем их в папку

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

Добавил папку Android из плагина версии 5.4, без него билд не собирался

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

Скомпилированные плагины для Unreal Engine 5.5

Можно скачать MetaXR audio скомпилированный мной - https://drive.google.com/drive/folders/1CqixHao8yEvJhiO8BVgK8VKhBeg6Zj4m?usp=sharing

и сразу активируем его.

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

В папке проекта создаем папку Build (для билдов).

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

Создаем .gitignore для системы контроля версий (если у вас установлен Git), внутри может быть минимальный набор ограничений для Git:
.idea
.vs
*.sln
DerivedDataCache/
Intermediate/
Saved/
Binaries/
Build/

Настроим Meta XR Audio:

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

Справочные материалы для Meta Quest и Настройки Rendering для Mobile графики выбранные мной (не тестировал на сложных сценах).

Хочется еще подобрать настройки для ПК версии, но пока нет времени.

Описание всех настроек Rendering в Unreal Engine:

Rendering Settings in the Unreal Engine Project Settings | Unreal Engine 5.5 Documentation | Epic Developer Community

Graphics Optimization for VR Architectural Visualization -

VR Performance Features | Unreal Engine 4.27 Documentation | Epic Developer Community

Developer Insights: How to Develop with Vulkan for Mobile VR Rendering | Meta Horizon OS Developers

PC Rendering Techniques to Avoid when Developing for Mobile VR | Meta Horizon OS Developers

Using the Android Vulkan Mobile Renderer in Unreal Engine | Unreal Engine 5.4 Documentation | Epic Developer Community

[По желанию при отладке уровня] можно добавить в [/Script/Engine.RendererSettings] r.Streaming.PoolSize = 500

такое значение описано как рекомендуемое для Meta Quest (300-500 mb) О пуле потоковой передачи текстур: https://dev.epicgames.com/community/learning/knowledge-base/a3vO/unreal-engine-why-is-my-texture-streaming-pool-giving-me-a-warning

НЕ ИСПОЛЬЗУЙТЕ MOBILE HDR и MOBILE MULTI VIEW вместе! При движении камеры это вызывает ошибки рендеринга. В итоге я отказался от MOBILE HDR. Пример ошибки рендеринга в видео:

рутуб:

Ошибка рендеринга

ютуб:

Дополнительно составил список с описаниями моих настроек на которых успешно собирается билд для apk, возможно будет редактироваться в будущем:

https://8bitsage.gitbook.io/8bitsage-wiki/rendering_for_meta...

Путь - [YourProject]/Config/DefaultEngine.ini

[/Script/Engine.RendererSettings] r.Mobile.ShadingPath = 0 r.Mobile.AllowDeferredShadingOpenGL = False r.Mobile.SupportGPUScene = True r.Mobile.AntiAliasing = 3 r.Mobile.FloatPrecisionMode = 0 r.Mobile.AllowDitheredLODTransition = False r.Mobile.VirtualTextures = False r.DiscardUnusedQuality = True r.AllowOcclusionQueries = False r.MinScreenRadiusForLights = 0.050000 r.MinScreenRadiusForDepthPrepass = 0.050000 r.PrecomputedVisibilityWarning = False r.TextureStreaming = True Compat.UseDXT5NormalMaps = False r.VirtualTextures = False r.VT.EnableAutoImport = False r.VirtualTexturedLightmaps = False r.VT.AnisotropicFiltering = False bEnableVirtualTextureOpacityMask = False bEnableVirtualTexturePostProcessing = False r.VT.TileSize = 128 r.VT.TileBorderSize = 4 r.vt.FeedbackFactor = 16 r.MeshPaintVirtualTexture.TileSize = 32 r.MeshPaintVirtualTexture.TileBorderSize = 2 r.MeshPaintVirtualTexture.UseCompression = False r.StaticMesh.DefaultMeshPaintTextureSupport = False r.MeshPaintVirtualTexture.DefaultTexelsPerVertex = 4 r.MeshPaintVirtualTexture.MaxTextureSize = 4096 r.vt.rvt.EnableBaseColor = True r.vt.rvt.EnableBaseColorRoughness = True r.vt.rvt.EnableBaseColorSpecular = True r.vt.rvt.EnableMask4 = True r.vt.rvt.EnableWorldHeight = True r.vt.rvt.EnableDisplacement = True r.vt.rvt.HighQualityPerPixelHeight = True WorkingColorSpaceChoice = sRGB RedChromaticityCoordinate = (X=0.640000,Y=0.330000) GreenChromaticityCoordinate = (X=0.300000,Y=0.600000) BlueChromaticityCoordinate = (X=0.150000,Y=0.060000) WhiteChromaticityCoordinate = (X=0.312700,Y=0.329000) r.LegacyLuminanceFactors = False r.ClearCoatNormal = False r.DynamicGlobalIlluminationMethod = 0 r.ReflectionMethod = 0 r.ReflectionCaptureResolution = 128 r.ReflectionEnvironmentLightmapMixBasedOnRoughness = True r.Lumen.HardwareRayTracing = False r.Lumen.HardwareRayTracing.LightingMode = 0 r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject = False r.Lumen.TraceMeshSDFs = 1 r.Lumen.ScreenTracingSource = 0 r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject = False r.MegaLights.EnableForProject = False r.RayTracing.Shadows = False r.Shadow\.Virtual.Enable = 0 r.RayTracing = False r.RayTracing.UseTextureLod = False r.PathTracing = False r.GenerateMeshDistanceFields = False r.DistanceFields.DefaultVoxelDensity = 0.200000 r.Nanite.ProjectEnabled = False r.AllowStaticLighting = True r.NormalMapsForStaticLighting = True r.ForwardShading = True r.VertexFoggingForOpaque = False r.SeparateTranslucency = False r.TranslucentSortPolicy = 0 TranslucentSortAxis = (X=0.000000,Y=-1.000000,Z=0.000000) r.LocalFogVolume.ApplyOnTranslucent = False xr.VRS.FoveationLevel = 3 xr.VRS.DynamicFoveation = False r.CustomDepth = 1 r.CustomDepthTemporalAAJitter = False r.PostProcessing.PropagateAlpha = False r.Deferred.SupportPrimitiveAlphaHoldout = False r.DefaultFeature.Bloom = True r.DefaultFeature.AmbientOcclusion = False r.DefaultFeature.AmbientOcclusionStaticFraction = False r.DefaultFeature.AutoExposure = False r.DefaultFeature.AutoExposure.Method = 2 r.DefaultFeature.AutoExposure.Bias = 1.000000 r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange = True r.DefaultFeature.LocalExposure.HighlightContrastScale = 0.800000 r.DefaultFeature.LocalExposure.ShadowContrastScale = 0.800000 r.DefaultFeature.MotionBlur = False r.DefaultFeature.LensFlare = False r.AntiAliasingMethod = 0 r.TemporalAA.Upsampling = False r.MSAACount = 4 r.DefaultFeature.LightUnits = 1 r.DefaultBackBufferPixelFormat = 4 r.ScreenPercentage.Default = 100.000000 r.ScreenPercentage.Default.Desktop.Mode = 1 r.ScreenPercentage.Default.Mobile.Mode = 0 r.ScreenPercentage.Default.VR.Mode = 0 r.ScreenPercentage.Default.PathTracer.Mode = 0 r.Shadow\.UnbuiltPreviewInGame = False r.StencilForLODDither = False r.EarlyZPass = 3 r.EarlyZPassOnlyMaterialMasking = False r.Shadow\.CSMCaching = True r.DBuffer = False r.ClearSceneMethod = 1 r.VelocityOutputPass = 0 r.Velocity.EnableVertexDeformation = 2 r.SelectiveBasePassOutputs = False bDefaultParticleCutouts = False fx.GPUSimulationTextureSizeX = 1024 fx.GPUSimulationTextureSizeY = 1024 r.AllowGlobalClipPlane = False r.GBufferFormat = 1 r.MorphTarget.Mode = True r.MorphTarget.MaxBlendWeight = 5.000000 r.SupportSkyAtmosphere = True r.SupportSkyAtmosphereAffectsHeightFog = True r.SupportExpFogMatchesVolumetricFog = False r.SupportLocalFogVolumes = True r.SupportCloudShadowOnForwardLitTranslucent = False r.LightFunctionAtlas.Format = 0 r.VolumetricFog.LightFunction = False r.Deferred.UsesLightFunctionAtlas = False r.SingleLayerWater.UsesLightFunctionAtlas = False r.Translucent.UsesLightFunctionAtlas = False r.Translucent.UsesIESProfiles = False r.Translucent.UsesRectLights = False r.GPUCrashDebugging = False vr.InstancedStereo = True r.MobileHDR = False vr.MobileMultiView = True r.Mobile.UseHWsRGBEncoding = True vr.RoundRobinOcclusion = False r.MeshStreaming = False r.HeterogeneousVolumes = False r.HeterogeneousVolumes.Shadows = False r.Translucency.HeterogeneousVolumes = False r.WireframeCullThreshold = 5.000000 r.SupportStationarySkylight = True r.SupportLowQualityLightmaps = True r.SupportPointLightWholeSceneShadows = True r.Shadow\.TranslucentPerObject.ProjectEnabled = False r.Water.SingleLayerWater.SupportCloudShadow = False r.Substrate = False r.Substrate.OpaqueMaterialRoughRefraction = True r.Refraction.Blur = True r.Substrate.Debug.AdvancedVisualizationShaders = False r.Material.RoughDiffuse = False r.Material.EnergyConservation = False r.Material.DefaultAutoMaterialUsage = True r.OIT.SortedPixels = False r.HairStrands.LODMode = False r.SkinCache.CompileShaders = True r.VRS.Support = True r.SkinCache.SkipCompilingGPUSkinVF = False r.SkinCache.DefaultBehavior = 1 r.SkinCache.SceneMemoryLimitInMB = 128.000000 r.Mobile.EnableStaticAndCSMShadowReceivers = False r.Mobile.EnableMovableLightCSMShaderCulling = True r.Mobile.Forward.EnableLocalLights = 1 r.Mobile.Forward.EnableClusteredReflections = False r.Mobile.AllowDistanceFieldShadows = False r.Mobile.EnableMovableSpotlightsShadow = False r.GPUSkin.Support16BitBoneIndex = False r.GPUSkin.Limit2BoneInfluences = False r.SupportDepthOnlyIndexBuffers = False r.SupportReversedIndexBuffers = False r.Mobile.AmbientOcclusion = False r.Mobile.DBuffer = False r.GPUSkin.UnlimitedBoneInfluences = False r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences = False r.GPUSkin.UnlimitedBoneInfluencesThreshold = 8 DefaultBoneInfluenceLimit = (Default=0,PerPlatform=()) MaxSkinBones = (Default=65536,PerPlatform=(("Mobile", 256))) r.Mobile.PlanarReflectionMode = 0 r.Mobile.ScreenSpaceReflections = False r.Mobile.SupportsGen4TAA = False bStreamSkeletalMeshLODs = (Default=False,PerPlatform=()) bDiscardSkeletalMeshOptionalLODs = (Default=False,PerPlatform=()) VisualizeCalibrationColorMaterialPath = /Engine/EngineMaterials/PPM\_DefaultCalibrationColor.PPM\_DefaultCalibrationColor VisualizeCalibrationCustomMaterialPath = None VisualizeCalibrationGrayscaleMaterialPath = /Engine/EngineMaterials/PPM\_DefaultCalibrationGrayscale.PPM\_DefaultCalibrationGrayscale r.AllowGlobalClipPlane = False

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

Unreal Engine 5 и VR с нуля. Часть 10. Unreal Engine 5.5.3. Настройка VR проекта на С++ для Meta Quest 2, 3, 3s, PRO Разработка, Unreal Engine, Гайд, Виртуальная реальность, Gamedev, Видео, YouTube, Короткие видео, Длиннопост

С такими настройками мне успешно удалось собрать apk для Meta Quest и запустить его на шлеме.

Телеграм канал Unreal Engine VR

Поддержать канал

Показать полностью 8 1
[моё] Разработка Unreal Engine Гайд Виртуальная реальность Gamedev Видео YouTube Короткие видео Длиннопост
0
36
Nereon
Nereon
9 месяцев назад

Сделал Старый Парк в Нижнем для VR⁠⁠

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост

Да, детская площадка не один в один, но очень похожая.

Двухнедельный проект на заказ, оптимизированный под VR.
Окружение Старого Парка в Нижнем Новгороде, созданное на основе карт со спутника в 3DS Max и 360 панорам на Unreal Engine 5.

  • Моделлинг территории — 3Ds Max

  • Визуализация — Unreal Engine 5, Movie Render Queue

  • Свет — GPU Lightmass, stationary and baked

  • Отражения — Reflection Captures

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост

Вид сверху. В VR можно ходить только по дорожкам внутри парка, за его пределы - нельзя.

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост

Вид с карты 2022 года, с которой моделился ландшафт.

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост

Разные виды из парка

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост

Ландшафт также создавался по 360 панорамам улиц. Можете сравнить со скринами выше.

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост

Еще немного красивых ракурсов с панельками.

Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост
Сделал Старый Парк в Нижнем для VR Unreal Engine, Разработка, Виртуальная реальность, Компьютерная графика, Видео, Без звука, Длиннопост
Показать полностью 7 1
[моё] Unreal Engine Разработка Виртуальная реальность Компьютерная графика Видео Без звука Длиннопост
13
5
8bitsage
8bitsage
1 год назад

Meta XR Audio и MetaSounds в Unreal Engine 5 & VR⁠⁠

Введение

Статья будет посвящена материалу по работе со звуком, плагинах и их установке. Статья может редактироваться в будущем, чтобы всё полезное было в одном месте.

Введение в Attenuation & Spatialization Unreal Engine 5 (Затухающий и Пространственный звук)

https://rutube.ru/plst/457131/

Установка Meta XR Audio SDK

Плагин Oculus Spatializer (Oculus Audio) Был заменен на Meta XR Audio. Об этом говорится в документации Meta: https://developer.oculus.com/documentation/unreal/audio-osp-ue/

Обзор Meta XR Audio SDK для Unreal:

https://developer.oculus.com/documentation/unreal/meta-xr-au...

https://developer.oculus.com/documentation/unreal/meta-xr-au...

Скачать плагин Meta XR Audio для Unreal Engine 5:

https://developer.oculus.com/downloads/package/meta-xr-audio...

Инструкция Перепаковки Плагина Meta XR Audio для другой версии Unreal Engine (не требуется если у вас Unreal Engine 5.4):

https://developer.oculus.com/documentation/unreal/meta-xr-au...

В моем случае команда перепаковки в cmd выглядела так:

D:\Unreal_Engine\UE_5.3\Engine\Build\BatchFiles\RunUAT.bat BuildPlugin -plugin="C:\Users\userPC\Downloads\MetaXRAudio\MetaXRAudio.uplugin" -package="C:\temp\MetaXRAudio"

Meta XR Audio и MetaSounds в Unreal Engine 5 & VR Unreal Engine, Виртуальная реальность, Разработка, Gamedev, Oculus Quest, Oculus Rift, Инди, Длиннопост

Спустя 2 минуты плагин упаковался

Meta XR Audio и MetaSounds в Unreal Engine 5 & VR Unreal Engine, Виртуальная реальность, Разработка, Gamedev, Oculus Quest, Oculus Rift, Инди, Длиннопост

Далее необходимо скопировать metaxraudio64.dll из загруженного плагина v67 в скомпилированный плагин под нашу версию Unreal Engine (в моем случае 5.3.2). Иначе Unreal не сможет запуститься.

Устранение предупреждения: LogAudio: Warning: Failed to load MetaXR Reverb Submix from object path '' in MetaXRSettings. Creating 'MetaXR Reverb Submix' as stub.

После установки плагина, это поле имеет пустое значение, задайте Submix из списка.

Plugins>Meta XR Audio > задайте submix

Meta XR Audio и MetaSounds в Unreal Engine 5 & VR Unreal Engine, Виртуальная реальность, Разработка, Gamedev, Oculus Quest, Oculus Rift, Инди, Длиннопост

Доп. информация от Meta по VR аудио:

«Введение в VR-аудио»

Локализация и слуховая система человека

Описывает, как люди локализуют звук.

3D-пространственное аудио

Описывает пространственные и передаточные функции, связанные с головой.

Устройства для прослушивания

Описываются различные устройства для прослушивания, их преимущества и недостатки.

Моделирование окружающей среды

Описывает моделирование окружающей среды, включая реверберацию и отражения.

Звуковой дизайн для пространственного оформления

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

Микширование сцен для виртуальной реальности

Как и в случае со звуковым дизайном, микширование сцены для виртуальной реальности — это не только наука, но и искусство, и следующие рекомендации могут содержать некоторые оговорки.

Глоссарий VR-аудио

Определения технических терминов. Термины VR-аудио.

Meta предоставляет бесплатные, простые в использовании плагины для пространственных преобразований для движков и промежуточного ПО, включая Unity, Unreal, FMOD и Wwise. Наши функции пространственных преобразований поддерживают разработку как для PCVR, так и для Quest, Quest 2, Quest Pro и Quest 3.

Видеоматериал по VR-Audio:

Введение Брайана Хука в VR-аудио на Oculus Connect 2014.

Выступление Тома Смурдона и Брайана Хука на GDC 2015 о VR Audio.

Oculus Connect 2 - 3D Audio Designing Sounds for VR.

Oculus Connect 4 - Прорыв в технологиях пространственного аудио.

Oculus Connect 5 - Пространственное аудио для Oculus Quest и не только.

MetaSounds Unreal Engine 5

В Unreal Engine 5 был представлен MetaSounds - встроенный процедурный звуковой движок Unreal Engine.

Документация:

https://dev.epicgames.com/documentation/en-us/unreal-engine/...

Учебный материал от Epic Games:

https://dev.epicgames.com/community/learning/recommended-com...

Учебный материал от Brain Michael Fuller по MetaSounds:

https://rutube.ru/plst/457130/

Сборник туториалов по звуку Unreal Engine 5:

https://rutube.ru/plst/457751/

Аудио паки от Oculus/Meta:

https://developer.oculus.com/downloads/package/oculus-audio-...

https://developer.oculus.com/downloads/package/oculus-ambiso...

Телеграм канал - Unreal Engine VR

Rutube канал Unreal Engine & VR

Показать полностью 3
[моё] Unreal Engine Виртуальная реальность Разработка Gamedev Oculus Quest Oculus Rift Инди Длиннопост
0
9
8bitsage
8bitsage
1 год назад

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы⁠⁠

Введение

Продолжаем разрабатывать игру Дартс по курсу "Oculus VR Production for Unreal Engine". В этой статье я расскажу, какие проблемы я встретил при прохождении курса, и как я решал эти проблемы. В данный момент, я прошел 33 урока из плейлиста. Так же я продолжаю проходить <a курс по блюпринтам, чтобы лучше понимать видеоуроки.

Немного обучающего материала о Dynamic Material Instances.

В уроке 25 мы применяем Dynamic Material Instance к BP_Dartboard. Вытащил видео чтобы можно было посмотреть через яндекс перевод.

Проблема 1. Видео урок 25. Нода "vector2d-vector2d" Отсутствует в Unreal Engine 5

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Для получения этой ноды, мы берем просто Subtract

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

И преобразуем его в вектор.

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Проблема 2. Видеоурок 25. Ошибка компиляции при запуске игры.

При тестовом запуске для проверки логики определения квадранта игра не запустится и будет писать ошибки компиляции Widget Blueprint. Я удалил всю логику, которая вызывает ошибки, так как в следующих видео мы будем строить эту логику сами. Некоторая логика просто перенеслась при миграции ассетов для урока.

Проблема 3. Smoothly Move HUD не появляется перед персонажем.

Во время тестирования, у меня HUD-панель просто появлялась на экране и не скейлилась.

В уроке 31 мы создаем Ивент Smoothly Move HUD (для движения HUD за перед персонажем). Необходимо подключить ивент движения HUD перед персонажем к Event Tick.

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Проблема 4. Добавление логики работы с Enhanced Input

Урок по Дартсу предназначен для Unreal Engine 4, в нем нет Enhanced Input. Поэтому пришлось немного добавить логики с системой управления. Наверно, можно было впилиться в код VR шаблона по умолчанию, изменив вызов собственного BP_Menu.

Я выбрал путь следования по уроку немного адаптируя логику Blueprint под Unreal Engine 5.1+

Объяснение логики на скриншоте:

1. При вызове меню мы добавляем Input Mapping awZXj7egeZA (IMC_Menu).

2. После закрытия меню удаляем IMC_Menu, но сразу возвращаем систему управления передвижением (IMC_SmoothLocomotionDarts) и Систему управления руками (IMC_Hands).

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Проблема 5. Видеоурок 14. Не работает макрос на ограничение вида передвижения

В 14м уроке мы реализовывали макрос, для выбора вида передвижения игрока (телепорт/обычное передвижение)

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Для шаблона Unreal Engine 5 достаточно простого переключения между видами передвижения.

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост
Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Проблема 6. После переноса Ассетов интерфейса из стора Epic Games. Некоторые переменные стали приватными.

В уроке 33 мы назначаем функционал на кнопки, но видимо у меня при переносе переменная Button стала приватной. Верните её в публичную.

Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост
Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост
Unreal Engine 5 и VR с нуля. Часть 7. Разрабатываем Дартс. Настраиваем Интерфейс настроек. Решаем проблемы Разработка, Gamedev, Виртуальная реальность, Oculus Quest, Oculus Quest 3, Unreal Engine 5, Unreal Engine, Видео, YouTube, Длиннопост

Заключение

После завершения работы по Дартс я планирую перейти на поиск материала по настройке окружения для VR и начать изучение С++. На одних блюпринтах далеко не уедешь.

Телеграм канал Unreal Engine VR

Показать полностью 11 2
[моё] Разработка Gamedev Виртуальная реальность Oculus Quest Oculus Quest 3 Unreal Engine 5 Unreal Engine Видео YouTube Длиннопост
0
4
8bitsage
8bitsage
1 год назад

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component⁠⁠

Введение

Продолжаем разрабатывать игру Дартс по курсу "Oculus VR Production for Unreal Engine". В этой статье я расскажу, какие проблемы я встретил при прохождении курса, и как я решал эти проблемы. В данный момент, я прошел 24 урока из плейлиста.

1 Проблема. Исправляем яркий свет на уровне

После импорта ассетов и уровня, на карте был замечен слишком яркий свет.

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Решение проблемы нашлось на форуме:

https://forums.unrealengine.com/t/how-can-i-fix-my-scene-lig...

Далее я решил найти более подробную информацию о Post Process Volume. Документация:

https://dev.epicgames.com/documentation/en-us/unreal-engine/...

Несколько видео на эту тему, которые мне помогли углубиться в свойства и функции Post Process Volume:

Ссылка на оригинальное видео - Unreal Engine 5 Beginner Tutorial - UE5 Starter Course!:

и еще одно видео:

Для своей сцены, я почти все эффекты выключил.

2 Проблема. Разбираемся с системой захвата предметов (UE5). Дротик не крепился к socket руки. (Решено)

В Unreal Engine 5 используется grab component, который мы должны применять к предметам, с которыми хотим взаимодействовать.

В видеоуроке 22, нашего плейлиста, мы настраиваем взаимодействие с дротиком. Как я понял, в UE4 прописывали логику захвата к каждому bp_actor отдельно. Но в UE5 мы применяем ко всему grab component из VR шаблона.

Разобраться с применением grab component мне помогли следующее видео:

В конечном итоге, при такой схеме блюпринта, дротик стал нормально браться/бросаться как в видеоуроке:

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Если вы как я, используете плавное передвижение из статьи 4. То переключите коллизию всех компонентов BP_Dart на VRInteractable (в том числе и для сферы коллизий).

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Для того чтобы дротик крепился к socket руки, необходимо убрать галочку на значении Weld Simulated Bodies

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

3 Проблема. Нет готовой анимации захвата дротика. Пересоздаем анимацию захвата дротика. (решено)

В уроке предоставляются руки и анимации для удержания дротика. Я решил не делать ретаргетинг анимации, а просто добавить к существующим анимациям добавить свои три анимации захвата дротика.

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Сделал дубликат одной из анимации. Выправил кости руки как мне нравится и нажал "Key". Анимация сохранилась как новая. Так я сделал аналоги анимации из урока.

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

4 Проблема. Не менялась анимация на взятый дротик по булевому значению Holding Dart Anim. (Решено)

В Unreal Engine 4 нет grab component, и как я понял, логика захвата рукой любого Actor осуществляется в персонаже.

Мне нужно было понять, как определить момент захвата и как передать изменение анимации руки именно при захвате дротика, используя в базовый VR шаблон Unreal Engine 5. Конкретного решения проблемы в разных видео я не нашел. Люди в основном используют State Machines для работы с анимацией в различных ситуациях в игре, но тогда бы мне пришлось полностью переделать логику анимации в игре.

Я планирую в будущем изучить работу State Machines, но не для взаимодействия с одним дротиком.

Я добавил еще одно значение для моего BP_Dart в GrabType Enumeration:

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Добавил логику в функцию "GetGrabComponentNearMotionController" в зависимости от значения type Grab Component присвоенному для моего Actor, а так же передал в переменную Holding Dart Anim Character (Храним в переменной событие с измененной анимацией, если персонаж держит правой руке actor с GrabType = Dart)

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Теперь, мой VR Character меняет анимацию в зависимости от того в руках BP_Dart или нет:

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Так же добавил изменение анимации в зависимости от местоположения дротика от камеры(головы) персонажа(симуляция размаха). Правда в уроке по Unreal Engine 4 это всё происходит в одном месте. Тут пришлось адаптировать под VR шаблон Unreal Engine 5:

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Проблема 5. Ошибка "GrabComponent->SetSimulatingParent->Cast To PrimitiveComponent FAILED" при захвате дротика (Не решено)

При захвате дротика я каждый раз получаю ошибку "GrabComponent->SetSimulatingParent->Cast To PrimitiveComponent FAILED".

Я нашел место где это происходит:

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Вероятно, это из-за того, что в моём BP_Dart присутствует DefaultSceneRoot component(видимо он не является примитивным компонентом), но это не точно.

Попробую от него избавиться, допишу апдейт статьи если смогу пофиксить.

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Проблема 6. При переносе всех компонентов персонажа (VRPawnDarts) в родительского Персонажа (BPP_Pawn_Darts) и переназначении их в логике. При старте сцены создаются оба персонажа на сцене. (Не решено)

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

Unreal Engine 5 и VR с нуля. Часть 6. Разрабатываем Дартс. Осваиваем Post Process Volume. Разбираемся с Grab Component Gamedev, Разработка, Виртуальная реальность, Гайд, Unreal Engine, Видео, YouTube, Длиннопост

Есть пара идей как это пофиксить, допишу в эту статью если будет решение проблемы.

Заключение

Прохождение курса по созданию мини игры Darts затянулось по причине того, что это не просто копипаст кода, а еще и адаптация под другую версию движка + оказалось не так просто для новичка.

Это позволяет глубже изучить работу с Unreal Engine 5, а так же сподвигло на прохождение еще одного курса(параллельно), по изучению основ работы с Blueprint. (да, он для Unreal Engine 4, но основные функции одинаковые)

Курс по Blueprint [RUS]

https://www.youtube.com/playlist?list=PLatwj2blGTZ7Z_Bc40P7E...

Телеграм канал Unreal Engine VR

https://t.me/unrealengine_vr

UPD:

#Проблема 6. Решено

# Update 23.07.2024

По моей ошибке, в Настройках класса GameMode_Darts в Default Pawn Class должен стоять Character, а у меня был указан BPP_Pawn_Darts. Поэтому он создавал экземпляр родительского персонажа на карте.

Показать полностью 12 6
[моё] Gamedev Разработка Виртуальная реальность Гайд Unreal Engine Видео YouTube Длиннопост
0
8
8bitsage
8bitsage
1 год назад

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы⁠⁠

Введение

Сегодня расскажу про курс создания игры "Дартс", который начинал еще 2 недели назад, но пришлось откатиться на более базовые курсы. Курс называется "Oculus VR Production for Unreal Engine", он был разработан Oculus и Epic Games. По какой-то причине он был удален с обучающих материалов Unreal Engine.

Есть темы, что люди ищут этот курс, но получают только альтернативу, которая не даст возможность создать полноценную мини-игру:

https://forums.unrealengine.com/t/missing-course-oculus-vr-p...

Приложу обсуждения по проблемам по прохождению этого курса:

https://forums.unrealengine.com/t/support-thread-oculus-vr-p...

Курс рассчитан для 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

Исходные файлы ассетов для курса:

https://www.unrealengine.com/marketplace/en-US/product/oculu...

Готовая игра Дартс из курса:

https://www.unrealengine.com/marketplace/en-US/product/oculu...

В данный момент (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 выпадает несколько ошибок, но если на все нажать "ок" то проект всё равно запустится.

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

1 проблема. Oculus Entitlment Check возвращает failed. (5-е видео из плейлиста) (решено)

Для проверки прав на приложение мы прописываем в конфиге (\путь к вашему проекту\Config\DefaultEngile.ini) наш OculusAppId и RiftAppId

Берем AppId из дашборда разработчика>настройки приложения>API:

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

[OnlineSubsystem]

DefaultPlatformService=Oculus

[OnlineSubsystemOculus]

bEnabled=true

OculusAppId="12***********67"

RiftAppId="12************67"

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Выдайте права вашим приложениям!

Когда вы создаете свои приложения для AppLab и OculusRift. Вам необходимо:

  • Верифицировать себя как админа;

  • Получить права на UserId и UserProfile в приложении.

Получаем права админа

Переходим в дашборд разработчика oculus. https://developer.oculus.com/manage/

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Нажимаем "Начать подтверждение"

Я подтверждал с помощью загран. паспорта РФ и вводил свои настоящие данные. Страну указывал "Россия".

После заполнения анкеты админа, вы увидите подобное окно:

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

На следующее утро, я уже получил на почту письмо, что я успешно верифицирован как разработчик.

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Получаем права на UserId и UserProfile в приложении.

Вы уже создали два приложения Дартс (AppLab и OculusRift).

В каждом, необходимо зайти в My Apps>Edit Details(приложения)>Requirements>проверка использования данных

В каждом приложении необходимо запросить UserId и UserProfile. Обоснование запроса для этой информации можете списать с моего скриншота. Далее вам необходимо заполнить анкету:

  • резидент какой вы страны

  • кто будет обрабатывать эти данные (я ввел свою ФИО)

  • при каких условиях вы можете передать эти данные (вводим "только на законных основаниях")

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост
Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Буквально за несколько часов вам одобрят ваш запрос.

Именно после этих шагов, я смог успешно пройти проверку приложения с помощью Verify Entitlement (5-е видео 4:10):

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Документация, которая мне помогла решить проверку прав (документация oculus не открывается без VPN):

https://developer.oculus.com/documentation/unreal/unreal-quick-start-guide-quest#entitlement

https://communityforums.atmeta.com/t5/Platform-SDK-Developme...

https://communityforums.atmeta.com/t5/Quest-Development/Help...

https://communityforums.atmeta.com/t5/Unreal-VR-Development/...

2 проблема. Max Draw Distance для PointLight не работает. (9-е видео из плейлиста 13:20) (решено)

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Я выставляю 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 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Источник решения проблемы на форуме unreal engine:

https://forums.unrealengine.com/t/precomputed-visibility-vol...

Далее мы вводим в cmd:

r.VisualizeOccludedPrimitives 1

И получаем Предварительно рассчитанный объем видимости:

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

4 проблема. Появление нескольких персонажей при запуске VR сцены + не работает ввод действий в меню (решено)

Как я описывал в прошлой части статьи, Система управления была изменена на Character, чтобы я использовал своё собственное управление в Unreal Engine 5.

В 8-м уроке видео, мы настраиваем BP_PlayerStart, а так же, настраиваем свой GameMode_Darts, где мы определяем какой игрок находится на карте и определяем ему порядковый номер.

У меня в настройках был указан персонаж VRPawnDarts, а должен быть указан родительский персонаж BPP_Pawn_Darts.

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Так расположен мой BP_PlayerStart на карте

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Из-за этого у меня появлялось два персонажа

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

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

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Перестало работать

После того как я прописал Default Pawn Class - "BPP_Pawn_Darts" в настройки Maps & Modes, проблемы решились.

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Должно так работать

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.

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

Описание функции:

Unreal Engine 5 и VR с нуля. Часть 5. Начинаем разработку игры Дартс. Получаем права на использование данных Meta. Решаем возникшие проблемы Гайд, Разработка, Виртуальная реальность, Gamedev, Unreal Engine, Unreal Engine 5, Oculus Quest, Oculus Quest 3, Видео, YouTube, Яндекс Дзен (ссылка), YouTube (ссылка), Длиннопост

https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Oculus...

Как оно должно работать описано тут:

https://dev.epicgames.com/documentation/en-us/unreal-engine/...

Я пробовал:

  • Проверял запускать VR Preview стоя через Oculus Link или через usb кабель.

Обращения других разработчиков об этой проблеме:

https://communityforums.atmeta.com/t5/Quest-Development/UE4-...

https://forums.unrealengine.com/t/how-to-get-playarea-points...

Заключение

Если у меня появятся дополнения по описанному в этой статье, то я допишу их с пометкой Update (date).

Следующая статья будет посвящена продолжению прохождения этого курса. До новых встреч!

Показать полностью 19 1
Гайд Разработка Виртуальная реальность Gamedev Unreal Engine Unreal Engine 5 Oculus Quest Oculus Quest 3 Видео YouTube Яндекс Дзен (ссылка) YouTube (ссылка) Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии