2015-05-16 3 views
7

Я только что загрузил SDK Google Cardboard для единства. Я в порядке и могу создать проект VR. Установки в порядке, и все работает нормально.Как создать видеопроигрыватель VR с помощью SDK для Google Cardboard для Unity

Я ном в приложениях VR. Просто вмешался в VR Apps.

Я планирую создать свой собственный видеопроигрыватель VR Enabled для Android, так же, как и плеер Youtube Google по умолчанию.

Может ли кто-нибудь предложить мне ссылку или может помочь мне в разработке этого приложения.

+0

@Все, я пытаюсь купить плагин EasyMoviePlayer из магазина активов Unity @ https://www.assetstore.unity3d.com/ru/#!/content/10032. Может ли кто-нибудь предположить, что это нормально. – Rao

ответ

1

Я не могу помочь вам с Unity, но в Java, вы можете создать текстуру с OpenGL-ES:

private static int GL_TEXTURE_EXTERNAL_OES = 0x8D65; 
.... 
GLES20.glGenTextures(1, textureHandle, 0); 
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, textureHandle[0]); 

Используйте это, чтобы создать текстуру поверхности и поверхности:

SurfaceTexture surfaceTexture = new SurfaceTexture(textureHandle[0]); 
Surface surface = new Surface(surfaceTexture); 

А затем передать эту поверхность android.media.MediaPlayer:

MediaPlayer mediaPlayer = new MediaPlayer(getContext(), uriToMyMediaFile, surface); 

Bind, что текстуры на площади в вашей сцене а nd назовите это каждый кадр:

surfaceTexture.updateTexImage() 

и видео будет воспроизводиться при вызове mediaPlayer.start();

Если Unity позволяет вам написать свой собственный Java-код для работы за кулисами, это должно работать, если вы привязываете эту текстуру к поверхности из Unity.

Если у вас есть видеопоток, который вы не можете воспроизвести с помощью mediaPlayer (например, живой видеочат и т. Д.), Вы можете использовать поверхность с android.media.MediaCodec, но есть еще много работы по настройке ,

+0

Thax Mog, In Unity мы можем написать код на C#, Java и boo.я буду chk и дам вам знать мой результат, если вы предложите мне работу. – Rao

+0

@Mog, у меня есть попытка в соответствии с вашими шагами, но мое приложение всегда показывает черный экран, я не знаю, где я ошибся :(, у вас есть образец для этого? Большое спасибо ~ – sunjinbo

+0

мои коды находятся здесь: https://www.evernote.com/shard/s211/sh/ecb4fb7a-7ca7-49ea-aa5f-52bc75ffd4d8/cd3c423d82fb905c – sunjinbo

7

Вот основные шаги для того, как мы это делаем:

  1. Добавить сферу с эквидистантной УФ картографирования и внутренние облицовочные нормалей вокруг камеры.
  2. Приобретите плагин, чтобы воспроизвести фильм по тексту этой сферы. Я рекомендую Easy Movie Texture.
  3. Используйте файлы mp4s или ogg vorbis, которые совместимы с платформой. Это зависит от телефона и ОС.

Полная информация: ответ http://immersivetechblog.foundry45.com/2015/07/31/implementing-360-video-in-unity-for-gear-vr-and-cardboard/

+0

Это выглядит многообещающе, но документация для Easy Movie Texture довольно неясна и специфична для Android. Как я могу прикреплять видео к сфере? Для Oculus я просто прикреплен как текстура, но здесь, похоже, я как-то использую сборку Video Manager? –

+0

Я сделал сборку видеосессии в демонстрационной сцене видеосессии. На видео ссылается строка в поле str_file_name скрипта Media Player Ctrl. Видео должно быть файлом mp4 (а не OGG) в каталоге Streaming Assets. Но я все еще вижу белый шар, когда запускаю приложение, используя одно собственное видео. Как только я вернусь к примеру видео, я в порядке. Я думаю, что проблема связана с размерами моего видео, которое представляет собой видео 360, а не прямолинейное видео, как пример видео. 360 видео, которое я пытаюсь запустить, - 3906 x 1952. Любые мысли? –

+0

любой способ работать с ним? – gilgil28

11

Скотт Дрисколла полностью работает. У меня возникли некоторые проблемы с подключением модуля Easy Movie Texture Unity для работы, но, наконец, он понял, и он работает безупречно. Теперь у меня 360-видео работает как текстура внутри сферы на моем iPhone 6. И я должен сказать, я не думал, что это произойдет.

Для работы на Mac, вот что я сделал:

  1. Скачать Easy Movie Texture плагин от Unity Asset Магазин
  2. Открыть демо-Sphere демо-сцены из активов/EasyMovieTexture/Scene
  3. Создайте новый (пустой) Prefab для своего проекта и перетащите объект Sphere GameObject из сцены Демо-сфера на Prefab.
  4. Восстановите свою карточную сцену и перетащите новую сборку видеосферы в свою иерархию.
  5. Откройте ваш источник 360 видео в Quicktime
  6. Файл -> Экспорт - расширение> 720p
  7. Изменить файл из «.mov» на».mp4'
  8. Перетащите новый файл mp4 в ваших активов проектов/Streaming Assets. Примечание: не импортируйте через систему меню, так как это заставит Unity конвертировать в OGG.
  9. В компоненте скрипта «Media Player Ctrl» вашего видеообъекта GameObject найдите поле «Str_File_Name» и укажите имя файла FULL. Обязательно включите расширение как часть строки «mymovie.mp4».

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

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

+0

как передавать данные динамически с использованием намерений? –

3

Я видел ответы выше, но все они либо требовали подключаемого модуля Easy Movie Texture Unity, либо кодирования вашего пути. Существует еще одно простое решение, которое не потребует, чтобы вы купили этот актив или код свой путь через .. Oculus обеспечивает уже встроенную бесплатную основу выборки, которую можно использовать без особых проблем .. решения ниже показывает, как, как создать как для просмотра фотографий, а также видео для просмотра Unity ..

Строительство ваш 360 градусов PhotoViewer:

  1. Перейти к Blender и d elete все объекты prexisitng (если есть), и сделайте исосферу и увеличьте подразделения до точки, где она больше похожа на сферу, подобную 6, и нажмите «Создать UV» (обе эти опции находятся в настройках под вкладкой create в дополнение к сфере) и перейдите к редактированию и выберите Flip Normals, чтобы вы могли видеть наизнанку, а не наружу внутрь и сохранять его.
  2. Принесите эту икоссою сохраненный файл в свою папку с ресурсами в Unity.
  3. Загрузите SDK GoogleVR и добавьте плагин GoogleVR в свою папку с ресурсами. (Вы можете скачать его здесь: https://developers.google.com/vr/unity/)
  4. Удалить основную камеру и направленный свет, присутствующий по умолчанию.
  5. Принесите свой ресурс икосферы в свой проект.
  6. Принесите GVR Main из папки с вашими активами в свой проект: плагин GoogleVR -> Legacy -> Prefab -> GVR Main
  7. Возьмите любую фотографию panaroma или 360 и принесите ее в папку с вашими активами.
  8. Возьмите эту фотографию в папке вашего ресурса и положите ее выше исосферы в свою сцену и нажмите на игру. Вы сможете увидеть фотографии на 360 градусов.

Строительство вашего 360 градусов MoviePlayer:

  1. Шаг 1 же.
  2. Теперь перейдите в консоль разработчика Oculus и загрузите этот файл и переместите его в свою папку с ресурсами.https://developer3.oculus.com/downloads/game-engines/1.5.0/Oculus_Sample_Framework_for_Unity_5_Project/
  3. Принесите этот файл, загруженный в папку с вашими активами.
  4. Найдите MoviePlayer в своих активахFolder, чтобы привести его в свой проект.
  5. Принесите икосферу, которую вы загрузили в свою папку с активами, и немного измените ее, чтобы вы могли видеть правильно.
  6. Скопируйте образец сценария MoviePlayer и источник звука в компонентах MovieSurface из проекта и добавьте его в компоненты сферы в сцене, также избавьтесь от аниматора в компонентах сферы.
  7. Принесите материал Movie Player в Материалы под Mesh Renderer в MovieSurface и добавьте его поверх своей сферы.
  8. Теперь эта сфера сформирована вашим игроком на 360 градусов, поэтому сохраните его как актив в папке с активами.
  9. Создайте новую сцену, удалите направленный свет и принесите сохраненный ресурс икосферы в эту сцену и переместите главную камеру по центру.
  10. Удалите ненужные активы, чтобы очистить место в вашем проекте, кроме MoviePlayer, плагинов и потоковых активов.
  11. Вам нужно будет преобразовать желаемый mp4 в файл ogv, а также для плагина, который будет воспроизводиться в VR, и принести файлы mp4 и ogv в вашу папку с потоковыми данными и изменить имя MovieName и нажать «Воспроизвести». Вы сможете увидеть свою видеоигра на 360 градусов.

* Чтобы воспроизвести его на своих устройствах, просто перейдите к настройке и выберите нужную платформу и удалите всю сцену и просто добавьте открытую сцену и нажмите «Виртуальная реальность, поддерживаемая в других настройках в настройках проигрывателя». Чтобы воспроизвести его на своем телефоне Android, вам необходимо скачать SDK GoogleVR, как и выше, и перенести его в папку с вашими активами и найти GVRViewerMain в папке с ресурсами и вывести его на место и снять отметку с виртуальной реальностью, которую вы сделали выше, и просто создайте и запустите все это на своем устройстве (вы должны увидеть представление в игровом режиме, когда вы нажмете игру в Unity). Вы должны быть в состоянии видеть видео на своем соответствующем оборудовании.

  • Существует также видеоуроки, но я могу поделиться только двумя ссылками с моим новым профилем StackOverFlow.
+0

Можете ли вы поделиться ссылкой на видео в комментарии ... У меня возникают трудности с вашими действиями, поскольку я новичок в единстве ... Спасибо –

+1

Здесь вы найдете: https://www.youtube.com/watch?v=Z0EZ9FhQF4s:) –

1

Это стало очень простым для Unity 5.6 и выше.

  1. Вам просто нужен шар с его нормалями перевернутых, которые вы можете найти в Интернете или просто пойти в блендер и сделать IcoSphere и перевернуть его нормали или вы можете использовать шейдер сделать то же самое на нормальную сфере. В любом случае используйте текстуру Unlit для шейдера.
  2. Добавить видео-плеер в компонент, который по умолчанию использует Unity в этой сфере.
  3. Добавьте видео этого видео на 360 градусов. Вы также можете добавить онлайн-ссылку. И он хорошо работает во всем диапазоне платформ от GoogleVR до SteamVR.

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

Смежные вопросы