So erstellen Sie den VR Video Player mit Google Cardboard SDK für Unity

7

Ich habe gerade Google Cardboard SDK für die Einheit heruntergeladen. Mir geht es gut und ich kann ein VR-Projekt erstellen. Setup ist in Ordnung und alles funktioniert gut.

Ich bin bei VR Apps noob. Gerade in VR Apps getreten.

Ich plane, meinen eigenen VR-fähigen Videoplayer für Android zu erstellen, genau wie der Standard-Google Cardboard Youtube-Player.

Kann mir jemand einen Link vorschlagen oder kann er mir bei der Entwicklung dieser App helfen?

    
Rao 16.05.2015, 16:10
quelle

5 Antworten

11

Scott Driscolls Antwort funktioniert völlig. Ich hatte einige anfängliche Probleme damit, das Plug-in Easy Movie Texture Unity für mich zu verwenden, aber schließlich habe ich es herausgefunden und es funktioniert einwandfrei. Ich habe jetzt 360-Video als Textur auf der Innenseite einer Kugel auf meinem iPhone 6. Und ich muss sagen, ich hätte nicht gedacht, dass es passieren würde.

Um an einem Mac zu arbeiten, habe ich Folgendes getan:

  1. Laden Sie das Easy Movie Texture-Plug-In vom Unity Asset Store herunter
  2. Öffnen Sie die Demo Sphere-Demoszene aus Assets / EasyMovieTexture / Scene
  3. Erstellen Sie ein neues (leeres) Prefab für Ihr Projekt und ziehen Sie das Sphere GameObject aus der Demo Sphere-Szene auf das Prefab.
  4. Öffne deine Karton-Szene und ziehe das neue Videosphären-Prefab in deine Hierarchie.
  5. Öffnen Sie Ihr Quell-360-Video in Quicktime
  6. Datei - & gt; Export - & gt; 720p
  7. Ändern Sie die Dateierweiterung von '.mov' in '.mp4'
  8. Ziehen Sie Ihre neue mp4-Datei in Ihr Projekte-Assets / Streaming Assets-Verzeichnis. Hinweis: Importieren Sie nicht über das Menüsystem, da dies die Konvertierung von Unity in OGG erzwingt.
  9. Suchen Sie in der "Media Player Ctrl" -Skriptkomponente Ihres Videosphere-GameObject nach dem Feld "Str_File_Name" und geben Sie den vollständigen Dateinamen an. Stellen Sie sicher, dass die Erweiterung als Teil der Zeichenfolge "mymovie.mp4" enthalten ist.

Ziemlich sicher, das ist alles. Hoffe es hilft anderen Leuten bei diesem Problem festzuhalten. Danke Scott Driscoll!

Eine letzte Notiz, Sie können das Video nur auf dem Telefon anzeigen, nicht in der Vorschau im Editor. Es wäre besser, wenn es nicht so funktioniert, aber sobald die anfänglichen Probleme der Auflösung und Platzierung gelöst sind, muss ich das Video nicht jedes Mal sehen, wenn ich die Szene im Editor starte.

    
Shannon Perkins 08.09.2015 23:47
quelle
7

Hier sind die wichtigsten Schritte, wie wir das machen:

  1. Fügen Sie eine Kugel mit einem equirectangulären UV-Mapping und nach innen gerichteten Normalen um die Kamera hinzu.
  2. Erwerben Sie ein Plugin, um einen Film auf der Textur dieser Kugel abzuspielen. Ich empfehle Easy Movie Texture .
  3. Verwenden Sie mp4s oder ogg-vorbis-Dateien, die mit der Plattform kompatibel sind. Dies ist abhängig von Telefon und Betriebssystem.

Ausführliche Informationen: Ссылка

    
Scott Driscoll 01.09.2015 21:45
quelle
3

Ich habe die Antworten oben gesehen, aber alle benötigten entweder das Easy Movie Texture Unity-Plug-in oder die Kodierung Ihres Weges. Es gibt auch eine andere einfache Lösung, die es nicht erforderlich macht, dass Sie dieses Asset kaufen oder sich durch den Code programmieren. Oculus stellt ein bereits entwickeltes kostenloses Beispielframework zur Verfügung, das Sie ohne großen Aufwand verwenden können. Die folgende Lösung zeigt, wie Sie sowohl einen Foto-Viewer als auch einen Video-Viewer für Unity erstellen können.

Erstellen Sie Ihren 360-Grad-PhotoViewer:

  1. Gehe zu Blender und lösche alle existierenden Objekte (falls vorhanden) und mache eine icosphere und vergrößere die Unterteilungen auf einen Punkt, wo es mehr wie eine Kugel wie 6 aussieht und klicke auf Generate UVs (beide Optionen finden sich in den Einstellungen unterhalb der Erstellen Sie eine Registerkarte in der Sphäre) und gehen Sie zum Bearbeiten und wählen Sie Normale spiegeln, so dass Sie von innen nach außen und nicht von außen nach innen sehen und speichern können.
  2. Bringe diese in icosphere gespeicherte Datei in Unix in deinen Ordner für Assets.
  3. Laden Sie das GoogleVR SDK herunter und bringen Sie das GoogleVR-Plugin in Ihren Ordner für Assets. (Sie können es hier herunterladen: Ссылка )
  4. Löschen Sie die Hauptkamera und das Richtungslicht, die standardmäßig vorhanden sind.
  5. Bringen Sie Ihr icosphere asset in Ihr Projekt.
  6. Bringen Sie GVR Main aus Ihrem Assets-Ordner in Ihr Projekt: GoogleVR-Plugin - & gt; Vermächtnis - & gt; Fertig - & gt; GVR Haupt
  7. Nehmen Sie ein beliebiges Panorama oder 360-Foto und bringen Sie es in Ihren Ordner "Assets".
  8. Nimm dieses Foto in deinen Asset-Ordner und lege es über die icosphere in deiner Szene und klicke auf "Play". Sie sollten Ihre 360-Grad-Fotos sehen können.

Erstellen Sie Ihren 360-Grad-MoviePlayer:

  1. Schritt 1 gleich.
  2. Gehen Sie nun zur Oculus Developer Console, laden Sie diese Datei herunter und bringen Sie sie in Ihren Assets-Ordner. Ссылка
  3. Bringe diese Datei, die du oben heruntergeladen hast, in deinen Anlagenordner.
  4. Suchen Sie MoviePlayer in Ihrem AssetsFolder in Ihrem Projekt.
  5. Bringe die heruntergeladene icosphere auch in deinen Ordner "Assets" und skaliere sie ein wenig, damit du sie richtig sehen kannst.
  6. Kopieren Sie das MoviePlayer-Beispielskript und die Audioquelle in den Komponenten der MovieSurface aus dem Projekt und fügen Sie es in die Komponenten der Sphäre in der Szene ein. Entfernen Sie auch den Animator in den Komponenten der Sphäre.
  7. Bringe das Movie-Player-Material aus den Materialien unter Mesh-Renderer in MovieSurface und füge es oben auf deiner Kugel hinzu.
  8. Nun ist diese Sphäre Ihr 360-Grad-Film-Player, also speichern Sie sie als Asset im Asset-Ordner.
  9. Erstellen Sie eine neue Szene, löschen Sie das gerichtete Licht und bringen Sie Ihr gespeichertes icosphere-Asset in diese Szene und bewegen Sie die Hauptkamera in die Mitte.
  10. Löschen Sie die nicht benötigten Assets, um Speicherplatz in Ihrem Projekt zu sparen, mit Ausnahme von MoviePlayer, Plugins und Streaming-Assets.
  11. Sie müssen den gewünschten mp4 in eine ogv-Datei konvertieren, damit das Plugin in VR spielt und sowohl die mp4- als auch die ogv-Dateien in Ihren Ordner für Streaming-Assets bringt und den MovieName ändert und auf Play klickt. Sie sollten Ihr 360-Grad-Video abspielen können.

* Um es auf Ihren Geräten abzuspielen, gehen Sie einfach zu den Einstellungen und wählen Sie die gewünschte Plattform und löschen Sie alle Szenen und fügen Sie einfach Open Scene hinzu und klicken Sie auf Virtual Reality, die in anderen Einstellungen unter Player-Einstellungen unterstützt wird. Um es in Ihrem Android-Handy zu spielen, müssen Sie das GoogleVR SDK wie oben herunterladen und in Ihren Assets-Ordner bringen und den GVRViewerMain im Assets-Ordner finden und in die Szene bringen und die Virtual Reality-Unterstützung deaktivieren, die Sie oben erstellt haben und führe die ganze Sache auf deinem Gerät aus (Du solltest die Ansicht in deinem Spielmodus sehen können, wenn du in Unity auf Wiedergabe klickst). Sie sollten das Video in Ihrer jeweiligen Ausrüstung sehen können.

  • Es gibt auch ein Video-Tutorial, aber ich kann nur zwei Links mit meinem neuen StackOverFlow-Profil teilen.
Pratham Sehgal 16.01.2017 13:58
quelle
1

Ich kann Ihnen nicht mit Unity helfen, aber in Java können Sie eine Textur mit OpenGL-ES erstellen:

%Vor%

Verwenden Sie es, um eine Oberflächentextur und eine Oberfläche zu erstellen:

%Vor%

Übergeben Sie diese Oberfläche an android.media.MediaPlayer:

%Vor%

Binde diese Textur an ein Quadrat in deiner Szene und rufe jedes Bild auf:

%Vor%

und das Video wird abgespielt, wenn Sie mediaPlayer.start ();

aufrufen

Wenn Unity Ihnen erlaubt, Ihren eigenen Java-Code hinter den Kulissen zu schreiben, sollte das funktionieren, wenn Sie diese Textur von Unity an eine Oberfläche binden.

Wenn Sie einen Video-Stream haben, den Sie mit mediaPlayer nicht abspielen können (wie ein Live-Video-Chat usw.), können Sie die Oberfläche auch mit android.media.MediaCodec verwenden, aber es ist noch viel mehr Setup-Arbeit erforderlich.

    
Mog 22.05.2015 20:42
quelle
1

Dies ist für Unity 5.6 und höher sehr einfach geworden.

  1. Sie brauchen nur eine Sphäre mit invertierten Normalen, die Sie entweder online finden oder einfach zu blender gehen und eine IcoSphere erstellen und deren Normalen spiegeln können oder Sie können einen Shader verwenden, um das Gleiche auf einer normalen Kugel zu tun. In beiden Fällen verwenden Sie eine unbeleuchtete Textur für den Shader.
  2. Fügen Sie einen Video Player in der Komponente hinzu, die standardmäßig mit Unity für diese Sphäre ausgestattet ist.
  3. Fügen Sie diesem Video Player ein 360-Grad-Video hinzu. Sie können auch einen Online-Link hinzufügen. Und es spielt durchgängig auf allen Plattformen von GoogleVR bis SteamVR.

Der einzige Nachteil ist, dass standardmäßig nur monoskopische Bilder / Videos abgespielt werden und einige Einstellungen für stereoskopische Bilder / Videos erforderlich sind.

    
Pratham Sehgal 04.07.2017 17:19
quelle