Unreal Engine VR
161 subscribers
6 photos
3 videos
18 files
50 links
Материалы и посты о разработке VR с помощью Unreal Engine.

чат: @unrealengine_vrchat
https://rutube.ru/channel/22560044/
https://www.instagram.com/8bitsage
https://www.tiktok.com/@8bitsage

Донат: https://boosty.to/8bitsage/donate

Вопросы: @this8bitsage
Download Telegram
Всем привет!

Сейчас разбираю VRE плагин и частично переношу код в свой пет проект.

наткнулся на использование #UE_INLINE_GENERATED_CPP_BY_NAME(YourClass_name)

Ранее ни в одном курсе об этом не слышал, поэтому напишу от себя.

Если вы разрабатываете VR-проекты на Unreal Engine 5.1 или новее, то наверняка стоит использовать макрос UE_INLINE_GENERATED_CPP_BY_NAME(FileNameClass). Этот макрос напрямую и упрощает жизнь при компиляции и линковке.

Как пользоваться? Убедитесь, что у вас Unreal Engine 5.1+

Пример h файл

// MyActor.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class MYVRPROJECT_API AMyActor : public AActor
{
GENERATED_BODY()

public:
AMyActor();
...
};


cpp файл

// MyActor.cpp
#include "MyActor.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(MyActor)

#include "XRMotionControllerBase.h" //чисто для примера
#include и другие подключения

AMyActor::AMyActor()
{
PrimaryActorTick.bCanEverTick = false;
...
}



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

1. Уменьшение количества файлов для компиляции
Ранее каждый .gen.cpp файл компилировался отдельно, что увеличивало общее количество файлов, обрабатываемых компилятором. Инлайнинг этих файлов с помощью макроса снижает общее количество компилируемых единиц, что может ускорить процесс сборки.

2. Совместимость с инструментами разработки
Некоторые IDE, такие как JetBrains Rider, добавили поддержку этого макроса, обеспечивая корректную работу с исходным кодом Unreal Engine.
🔁 Зеркала в VR для Unreal Engine 5

Нашёл крутой open-source проект для реализации зеркал в VR — полезно для тех, кто работает с Meta Quest, PICO, или ПК-версией игры на UE5.

📦 Репозиторий:
👉 https://github.com/emilje/UE5_Mirrors
💬 Обсуждение на форуме: https://forums.unrealengine.com/t/mirrors-in-vr/1784114

🧩 Что это такое?
Проект демонстрирует, как реалистично отображать отражения в зеркалах в VR. Автор использует Scene Capture 2D, чтобы добиться эффекта зеркала, совместимого с VR-шлемами.

💡 Подходит для:
VR-игр и приложений
XR-зеркал в примерочных, комнатах и т.п.
Отладки позы и анимаций в зеркале (особенно полезно для IK и Full Body IK)

Лично я перенес класс CVrMirror к себе в проект и создал на его основе блюпринт как в исходном проекте.

В целом работает, в редакторе на DirectX12 тормозит, немного покрутив настройки рендеринга в CaptureScene производительность нормализуется.

В то же время в APK сборке на Quest всё работает без потери производительности.

Причины высокой нагрузки на GPU/CPU:

- Двойной рендеринг сцены в каждом кадре
- Каждый вызов CaptureScene() означает дополнительный полный проход рендеринга
Особенно затратно для стереоскопического режима (2 дополнительных рендера)
- Постоянный захват в Tick-функции
- Код вызывает CaptureScene() в каждом кадре без оптимизации частоты


Высокое разрешение захвата

По умолчанию используется полное разрешение VR гарнитуры
На Quest 3 это может быть до 2064x2208 на глаз

Есть и другой способ: Через Planar Reflections, но он у меня выключен в проекте, так как пет проект для Quest.

https://youtu.be/ffJo3wjbQjY?si=fAr_AS9tz7IbAWee
https://youtu.be/NeUaguSmncU?si=W2pFJWyOXTq7AZtC
files_Create_Your_First_Unreal_Engine_5_VR_App_for_Meta_Horizon!.zip
292.9 MB
Create Your First Unreal Engine 5 VR App for Meta Horizon!

Изучите основные концепции, которые помогут вам создать свой первый опыт использования виртуальной реальности!

https://rutube.ru/plst/946551

🤝 Поддержать:
Boosty
🎮 Новая статья: создание VR-проекта в Unreal Engine 5.5.3 под Meta Quest.

📌 В этом материале:
• Создание проекта для VR на C++.
• Добавляем плагины MetaXR.
• Справочные материалы по рендерингу.

🔗 Читаем на DTF:
https://dtf.ru/gamedev/3743509-unreal-engine-5-5-3-vr-meta-quest

📌Для тех, кто не дочитает до конца.
Составил список с описаниями моих настроек на которых успешно собирается билд для apk, возможно будет редактироваться в будущем:
https://8bitsage.gitbook.io/8bitsage-wiki/rendering_for_meta_quest

🤝 Поддержать:
Boosty
🦴 Экспорт трансформаций всех костей SkeletalMesh в Unreal Engine 5.5 (Python)

Если тебе нужно получить все трансформации костей персонажа — включая позицию, поворот и масштаб — в локальном и глобальном пространстве, вот удобный Python-скрипт, который делает это за пару секунд.

📌 Скрипт на python:
Полный код: https://gist.github.com/8bitsage/a33dfdaf143567c4f14d1592d45c1d59

📤 Что делает:
✔️ Загружает Skeletal Mesh (например, SKM\_Manny)
✔️ Извлекает имена всех костей
✔️ Получает родителя и список детей
✔️ Получает локальные и глобальные трансформации
✔️ Сохраняет всё в .txt файл на диск (например: D:/bone_transforms_SKM_Manny.txt)

⚙️ Как использовать:

1. Открой Unreal Engine 5.5
2. Включи Python Editor Script Plugin (в Plugins)
3. Перейди в:
Window → Developer Tools → Output Log → вкладка Python
4. Вставь скрипт и нажми Enter
5. В результате ты получишь структурированный .txt со всеми костями скелета

📁 Пример строки в файле:

Кость: pelvis
Родитель: root
Дети: spine_01, thigh_r, thigh_l
Локальная позиция: X=-0.00, Y=2.28, Z=95.90
Локальный поворот: Pitch=86.37, Yaw=-90.00, Roll=-90.00
Локальный масштаб: X=1.00, Y=1.00, Z=1.00
Глобальная позиция: X=-0.00, Y=2.28, Z=95.90
Глобальный поворот: Pitch=86.37, Yaw=-90.00, Roll=-90.00
Глобальный масштаб: X=1.00, Y=1.00, Z=1.00


📦 Подходит для:
- дебага IK / Control Rig
🎯 Как распознать человека в VR — без логина и пароля?

Исследователи из Университета Дуйсбург-Эссен провели крутое исследование с Oculus Quest:
Можно ли определить, кто именно в шлеме, только по его движениям?

📌 Что они сделали:
• Два VR-сценария: боулинг и стрельба из лука
• Данные движений головы и рук снимались с помощью HMD и контроллеров
• Всем участникам виртуально выровняли рост и длину рук (нормализация тела)
• Алгоритм ИИ обучался различать пользователей по стилю движений

📈 Результаты:
• До 90% точности идентификации — даже в другой день
• Нормализация тела улучшала точность до +38%
«Нормализовав пропорции тела, мы повысили точность классификатора»

🧠 Зачем это нужно:
• Персонализированные интерфейсы
• Адаптация под многопользовательские VR-сцены

📎 Всё работало на Oculus Quest + Unity

👾 Хотя наш канал посвящён Unreal Engine и VR-разработке, такие исследования дают понимание, как можно использовать биометрию и движения для глубокой персонализации и удобства пользователя.

📄 PDF EN/RU прикреплены 👇
🎯 Оказалось, среди подписчиков канала есть архитекторы и специалисты по визуализации в VR. Делюсь полезной находкой!

🎓 Gediminas Kirdeikis — архитектор, который двигает Unreal Engine в архитектуру и VR

Если вы занимаетесь архитектурной визуализацией и хотите создавать по-настоящему WOW-презентации в виртуальной реальности, обязательно обратите внимание на Gediminas Kirdeikis.

Он — преподаватель архитектурного факультета Лундского университета (Швеция), архитектор, исследователь цифровых технологий и один из лучших YouTube-авторов по теме Unreal Engine 5 + VR для архитекторов. (https://gkirdeikis.wordpress.com/about-gediminas-kirdeikis/)

🔍 Что делает Gediminas Kirdeikis уникальным?

• Учит архитекторов использовать Unreal Engine как средство проектного мышления
• Выпускает полные бесплатные курсы по VR-визуализации
• Показывает, как сделать VR-сцену, в которой заказчик может "погулять" по проекту
• Объясняет сложные вещи простым языком — с нуля до готового проекта
• Делает упор на интерактивность и реализм: освещение, управление, UI, оптимизация

📚 Лучшие курсы и видео, которые стоит посмотреть:

🎮 VR with Unreal Engine 5 — Full Beginner Course
🎮 VR with Unreal Engine 5 - Full Intermediate Course
🧰 Optimize Lumen for VR
👁 Smooth VR Spectator in UE5

→ Всё это — бесплатно на его YouTube: https://www.youtube.com/@DesignGoBrr

📐 Почему это важно?
Сегодня архитектурная подача уходит от рендеров к живым и вовлекающим презентациям. Когда клиент может надеть шлем и оказаться внутри проекта — это уже не "визуализация", это переживание.

Unreal Engine 5 + VR — ключ к этому.
И Гедиминас — один из тех, кто объясняет, как им пользоваться архитекторам, а не геймдеверам.

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

🔗 Канал: youtube.com/@DesignGoBrr
🔗 CV и блог: gkirdeikis.wordpress.com
🔗 Курсы и проекты: behance.net/GKirdeikis
🚀 Новая статья: Power IK Ground — Эффективное решение для реалистичного позиционирования ног.

🔗 Читаем на DTF:
https://dtf.ru/gamedev/3785989-power-ik-ground-plugin-realistichnoe-pozitsionirovanie-nog

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

🔗 Документация и оригинальный проект Power IK:
Официальный сайт Power Animated
Оригинальный плагин UE 4.26

🔧 Что такое Power IK Ground?
Это специализированная нода Inverse Kinematics, автоматически адаптирующая стопы персонажа к неровностям поверхности (лестницы, камни, наклонные плоскости).

Почему это удобно?
- Реалистичность: ноги персонажа естественно взаимодействуют с поверхностями.
- Производительность: идеально для мобильного VR (Meta Quest).
- Простота использования: легко интегрировать и настроить.

🎯 Unreal Engine предлагает альтернативное решение (Control Rig), но Power IK заинтересовал меня своей простотой и производительностью, что особенно важно в VR.

🛠 Я адаптировал Power IK под Unreal Engine 5.5:
Основа для тех кто использует UE 5.2 — версия для UE5.2 от tornellihenrique

📌 Репозиторий Power IK UE 5.5 доступен на GitHub:
https://github.com/8bitsage/PowerIK_UE5.5

- Добавлена поддержка Android (Meta Quest)
- Исправлены ошибки компиляции и поля для настройки сгибания коленей

🔧 Как установить плагин?

1. Скачиваем релиз с GitHub (zip)
2. Распаковываем и копируем файлы плагина прямо в проект
3. Запускаем проект и включаем плагин в меню Plugins
4. Нода Power IK Ground появится в Animation Blueprint

🎥 Полезные уроки:
Официальный урок от автора плагина
Настройка Power IK Ground (с 3:46)

🎬 Мои демонстрации:
RU канал
EN канал

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

🤝 Поддержать: Boosty
⚠️ Неправильное определение виртуального пола на Meta Quest ⚠️

Обнаружил интересный баг при использовании Meta Quest 3 (и, вероятно, на других моделях Meta Quest тоже):

При запуске режима Meta Quest Link (PC VR или нативно в шлеме) иногда некорректно определяется высота виртуального пола. Разница с реальным полом может составлять около 10 сантиметров, как видно на фотографиях, а иногда ошибка достигает нескольких метров!
Впервые, когда я с этим столкнулся, думал что это у меня баг в VR проекте. При чем на поиск бага потратил несколько часов, пока не увидел, что пол расходится с реальным и в других приложениях.

🔹 Что делать? Если заметили такую чудо проблему, попробуйте переподключиться к Meta Quest Link или перезапустить шлем, не запускать приложения в первую минуту после запуска Meta Quest — обычно повторная калибровка помогает системе правильно определить уровень пола.

У меня этот баг стабильно воспроизводится на прошивке v65. Будьте внимательны и делитесь своим опытом, если сталкивались с подобным!
🎉 Новая статья: Естественный спринт в VR — управление скоростью через махи руками (Arm Swinging)

📌 В этом материале:
• Реализация спринта без кнопок — только за счёт движений рук
• Настройка чувствительности, частоты проверок и скоростей прямо из редактора
• Все переменные, таймеры и параметры — в открытом доступе

🔗 Статья:
https://dtf.ru/gamedev/3792162-unreal-engine-5-i-vr-s-nulya-chast-12-estestvennyi-sprint-v-vr-upravlenie-skorostyu-s-pomoshyu-mahov-ruk-arm-swinging-sprint

Код из статьи на Gist.github

📺 Демонстрация:
Rutube
YouTube

🧩 Эта механика похожа на то, как реализовано передвижение в Blade and Sorcery и Battle Talent. Двигаешься — машешь руками — ускоряешься. Просто и иммерсивно.

🧠 Хочешь применить в своём проекте — загрузи свой контекст и мой пример в нейросеть, пусть она тебе подскажет как интегрировать.

🤝 Поддержать:
Boosty
🧤 А вы знали, что в Unreal Engine можно подключить… умные перчатки?

Существует устройство под названием SenseGlove Nova — и это не просто перчатки с трекингом. Это настоящая тактильная обратная связь (haptics) и фиксация движений каждого пальца, которую можно использовать в Unreal Engine 5.

🎮 Перчатки позволяют:
- Отслеживать движения пальцев
- Чувствовать сопротивление объектов
- Реалистично взаимодействовать с виртуальными предметами

📌 Документация для Unreal Engine (Windows):
Плагин, установка, примеры:
🔗 https://unreal.docs.senseglove.com/next/

📌 Подключение через Bluetooth на Linux:
Альтернативный способ сопряжения, если работаете вне Windows:
🔗 https://unreal.docs.senseglove.com/2.5/getting-started/sensecom/bluetooth-serial/gnu-linux/blueman-bluetooth-manager.html

🔗 The SenseGlove Unreal Engine Plugin: https://www.fab.com/listings/62bcdd2a-0bb1-4f34-b7b8-c5e7c9313099

🤯 Впечатляет, что технологии уже доступны для пользователей Unreal Engine.
Нас уже 152 человека в канале. Ответьте на вопрос. В основном используете С++ или Blueprint в Unreal Engine?
Anonymous Poll
56%
С горем пополам Blueprint по видео с ютуба
21%
Основные расчеты в С++, логику соединяю в Blueprint, по возможности избегаю Blueprint
24%
Только Blueprint
🎮 Как Dead Blending спас мои анимации в UE5.

Недавно столкнулся с проблемой резких дёрганий при переходах между анимациями в Motion Matching системе. Классический Inertialization не справлялся, и вот почему.

Проблемы с Inertialization:
Персонаж "подпрыгивал в руках" при резких сменах направления
При переходах между сильно отличающимися позами появлялись артефакты типа "knee pops"
Попытки уменьшить Blend Time никак не помогал исправить ситуацию

Что изменилось с Dead Blending:
Dead Blending работает принципиально иначе. Вместо того чтобы хранить и затухать офсет между анимациями, он:

Запоминает скорости движения костей в момент перехода
Экстраполирует исходную анимацию вперёд по инерции
Делает обычный cross-fade между прогнозом и новой анимацией

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

🔧 Мои настройки Dead Blending:
Always Use Default Blend Settings = true
Blend Duration: 0.25
Mode Sinusoidal InOut
Reset on becouming relevant = true


📊 Результаты:
Плавные переходы даже при резкой смене направления на 180°
Нет "плавающих" движений и артефактов
Особенно заметно улучшение на быстрых смен анимаций

💡 Когда использовать что:
Inertialization — скорее больше подходит для игр от 3го лица

Dead Blending — для:
- Motion Matching систем
- Резких смен направления
- Переходов между сильно отличающимися анимациями
- Систем с IK и процедурными слоями

P.S. Dead Blending появился в UE 5.3+ и помечен как experimental, но на практике работает стабильно. Единственный минус — чуть больше потребление памяти из-за хранения скоростей.

🔗Полезные ссылки:
https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-blueprint-blend-nodes-in-unreal-engine?application_version=5.5

https://dev.epicgames.com/documentation/en-us/unreal-engine/python-api/class/AnimNode_DeadBlending?application_version=5.3

https://theorangeduck.com/page/dead-blending

https://youtu.be/Wiw1Otx_-hM?si=frCU9i-2oUaxb7VG&t=400

*приложения будут ниже отдельным постом

🤝 Поддержать:
Boosty