18 июня 2015 18.06.15 7 3570

Виртуальный кинотеатр c поддержкой Oculus Rift и SteamVR на Unreal engine 4

+9

Всем привет
Начну пожалуй с небольшой «cool story». Денька 4 назад, страдая от нечего делать и загибаясь от скуки, решил посмотреть стрим ARK: SURVIVAL EVOLVED. В котором Василий Гальперов поделился впечатлениями от презентации Oculus ( Пересмотрите эту часть стрима youtu.be/445X5OA_KKE?t=2846). Кто-то в комментариях написал, что было бы неплохо замутить кинозал и через «окулус» смотреть фильмы. Тут меня осенило «А почему бы и не замутить», тем более заняться было нечем.

Прогуглив кинозалы, я нарисовал себе в голове примерную болванку кинозала. Запустил недавно обновившейся редактор Unreal Engine 4.8.

В итоге получилось вот это

 

(Youtube испоганил видео)
Поддерживаются:
Occulus Rift
SteamVR
Время разработки 3 дня (примерно по 3 часа).
Версия Движка: Unreal Engine 4.8.1

Клавиши управления:

Пересесть на другой стул (1, 2, 3, 4)
Выход ESC

Это самый первый работоспособный билд. Версия: Alpha_01

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

Скачать можно тут:
yadi.sk/d/c5IHEE2YhKLBi

Проблемы
После того как кинозал, обзавелся всем необходимым. Настало время, реализации самого экрана. Собственно говоря а как фильмы воспроизводить. Если засунуть внутрь игры видео файл, после сборки проекта вы не сможете его поменять. И тем более, весь интерес был вызван именно возможностью смотреть, не фильмы а стримы youtube в онлайне. По сему был выбран в качестве воспроизведения HTML5 (Также вы можете посмотреть мой другой пост где благодаря html 5 мною был запущен 1 Quake внутри Движка Unreal engine 4 stopgame.ru/blogs/topic/62697)

Тут как говорится и НАЧАЛОСЬ. Уж не знаю кто сфейлил билд UE4.8, проблема заключалась в том что все проекты сделанные на «Blueprint» собирались нормально. Но как только вы в свой проект добавляете С++ код (Даже если это тупо пустой класс), сборка проекта фейлится, причем внутри редактора все работает отлично.

Тут мне пришла идея если все не работает, то поможет несомненно «Бубен». Взяв в руки шаманский девайс. Я попрыгал вокруг компа часа 2 с криками «КАРМАК ПРИДИ ПОРЯДОК НАВЕДИ», в итоги снес движок. Скачал Исходники 4.8.1. версии собрал движок из исходников и все как не странно заработало.

Немного Технической Информации.
Сменить ролик вы можете так:

CinemaTF_Alpha_01\CinemaTrolface\Screen\

Там будет файл CustomScreen.html Открываете его блокнотом.
И вставляете вашу ссылку на youtube (?autoplay=1&controls=0&rel=0&showinfo=0 Эти ключи должны остаться)!!! Также копировать ссылку нужно, не из адреса браузера а из HTML кода.

Пример:

Получаем результат

Известные проблемы

Пустой Экран

(Баг происходит из-за блокировки фаерволом входящего трафика, возникает очень редко, просто добавьте в список исключений процесс blu_ue4_process.exe. который находится по адресу CinemaTF_Alpha_01\CinemaTrolface\Binaries\Win64 )

Мерцание картинки на экране

(К сожалению пока неизлечимый баг) Возникает он, когда FPS падает ниже 50, начинается адовый рассинхрон в следствии чего и появляется мерцание. Лечится установкой более мощьной видеокарты. К примеру на GTX 980-970 такого бага нету.

Также решением послужит уменьшить общее качество

Запускаете settings.bat. У вас открывается конфиг.
[ScalabilityGroups]
sg.ResolutionQuality=100
sg.ViewDistanceQuality=0
sg.AntiAliasingQuality=3 Во вторую очередь Значение 0-3 (Где 3 максимальное качество)
sg.ShadowQuality=3 Значение 0-3 (Где 3 максимальное качество)
sg.PostProcessQuality=3 В первую очередь Значение 0-3 (Где 3 максимальное качество)
sg.TextureQuality=3 Значение 0-3 (Где 3 максимальное качество)
sg.EffectsQuality=3 В первую очередь Значение 0-3 (Где 3 максимальное качество)

[/Script/Engine.GameUserSettings]
bUseVSync=False
ResolutionSizeX=1920 Это разрешение игры
ResolutionSizeY=1080 Это разрешение игры
LastUserConfirmedResolutionSizeX=1920 Это разрешение полного экрана
LastUserConfirmedResolutionSizeY=1080 Это разрешение полного экрана
WindowPosX=-1
WindowPosY=-1
bUseDesktopResolutionForFullscreen=True
FullscreenMode=0
LastConfirmedFullscreenMode=0
Version=5

Чтобы не путаться выставляйте разрешение одинаковое в 2 значениях.

Пример: Если выставить такие значения

ResolutionSizeX=1600
ResolutionSizeY=900
LastUserConfirmedResolutionSizeX=1920
LastUserConfirmedResolutionSizeY=1080

То вы получите вот такой вид

Постоянно растет размер папки

(Это нормально просто очистите Кеш по адресу CinemaTF\CinemaTrolface\BluCache Удалите все файлы, но не папку BluCache)

Также вам придется убивать вручную процесс blu_ue4_process.exe (пока не умеет при закрытии закрываться самостоятельно ). В диспетчере задач.

PS: В тексте возможно куча ошибок. Но редактировать мне в лом 8)), всем удачи.


Лучшие комментарии

Если мотион-каптур, то надо секс. Секс в кинозале с окулусом рифт. да ты уже через полгода будешь рассекать на своем пятничном бентли
ПК, Очень ранняя альфа так что багов куча!
Смотрел фильм Kingsman: The Secret Service, помнишь фрагмент в церкви? Вот это бы реализовать. Но я к сожалению знаю сколько это будет стоить. Если учесть что 1 секунда мокап анимации стоит около 1000+ рублей в переводи с долларов. А на хламовом уровне реализовывать, тупо не хочется.
Без матерящихся говнарей по соседству как-то не то.
я так понимаю, качать стоит тем, у кого уже есть окулус?
Ну вы можете и без окулуса поюзать.
Я могу пересаживаться на разные стулья. ГОТИ прям. А перед показом будет десять минут идти реклама? Будут тупые люди, ржущие и комментирующие весь фильм? Обязательно введи боевую систему- «Набей рожу тому мудаку с телефоном». Идей для развития куча.
Читай также