Stereo Panoramic Player

MARKETPLACE: Stereo Panoramic Player in Code Plugins - UE Marketplace

Discord server: https://discord.gg/PuAyhDctHp


Compatible with UE5 and UE4.

For updates see the Changelog: https://www.unamedia.com/ue5-stereo-panoramic-player/api/changelog.html.


Hi,

Stereo Panoramic Player” is a plugin to quickly integrate an interactive, customizable player for 360° panoramic images and videos, supporting both mono and stereo media sources. The professional solution to create interactive Virtual Tours. Below an introduction.

Description
360 Stereo Panoramic Player is a runtime plugin to show and interact with 360° panoramic images and videos, supporting both mono and stereo sources. It offers both an high-level solution (Panoramic Director), to quickly assemble an interactive panoramic virtual tour, and a low-level solution (Panoramic Sphere) to allow a programmatic customization of the user experience. It’s compatible with all the major platforms and it’s actively tested on PC, VR (Steam and Oculus), iOS and Android.

Tutorial/Demonstration Video
Documentation
ChangeLog

Discord server: https://discord.gg/PuAyhDctHp

The Panoramic Director actor allows you to define, directly in-editor, a complete panoramic virtual tour: for each imported panoramic source (image and/or video) you can define custom hotspots to move between different media; the actor will then take care of everything at run-time, detecting when the user is interacting with an hotspot and managing the transition between the panoramic media.

The Panoramic Sphere actor gives you complete control of the panoramic experience: you can programmatically control it to render panoramic media and detect interactions with the panoramic sources. It can render images and videos, supporting both mono and stereo formats.

Technical details
Features:

  • rendering of 360° panoramic images (mono and stereo);
  • playback of 360° panoramic videos (mono and stereo);
  • support for Equirectangular projection;
  • support for Over-Under stereoscopic layout;
  • overlayed UMG widgets for user interaction;
  • interactive areas through color-coded masks;
  • graphics effects for transitions and blending with the 3D environment;
  • rendering of 3D objects inside the panoramic sphere;
  • high-level actor (class APanoramicDirector) to quickly assemble a panoramic virtual tour directly in the editor;
  • low-level actor (class APanoramicSphere) for programmatic and complete access to all the supported features;
  • all the features available from both Blueprints and C++.

Code Modules:

  • StereoPanoramicPlayer - Runtime

Network Replicated: No

Supported Development Platforms: Windows, Mac.
Supported Target Build Platforms: Windows (32/64-bits), Mac, iOS, Android, VR (SteamVR/Vive, Oculus, Quest, etc.).

Documentation: https://www.unamedia.com/ue4-stereo-panoramic-player/api/

Example Project:






1 Like

Does this support 2D textures/videos and does it offer looping?
If it offers looping does it loop better than Unreal’s native 2D video solution because that hitches/pauses on loop.

Hi! Not sure what you mean with “2D”. The plugin supports textures and videos using equirectangular projections, in monoscopic and stereoscopic formats. You can find all the needed informations about the supported formats in our documentation.

Video playback is not directly managed by the plugin, but relies on the UE4 Media Player. Looping included. So if you have issues with the UE4 Media Framework, this plugin will not help on this.

Stereo Panoramic Player plugin is participating to the Unreal Engine Massive Marketplace Sale and is 30% OFF right now. If interested, get it before the end of event.

Can you link a 360 video as a hotspot to an actor in a level or do you have to start with an initial monoscopic 360 video to link other 360 videos. For example say I had a picture frame object in a level. Is it possible to create a hotspot on the frame to launch a 360 movie when clicked?

Hi! If I understood correctly, you would like to start the Panoramic Experience from an ordinary 3D object in scene, is it correct? If so, the answer is “yes” and is quite easy: put a Panoramic Director actor in scene (configured to play a 360 video as first Panoramic Stage), on your gameplay event (e.g. when your user interact with the “picture frame object in the level”) you simply call the method Play() of the Panoramic Director.

In this tutorial video you can find the above steps around 7:00 (we use a trigger volume to start the Panoramic Experience, but the concept is the same):

YES that’s it…thank you!

Using the Panoramic viewer for a stereo 360 video using 4096*4096 with h.264, it keeps lagging. Let me know how I can solve the problem. Thanks. Best regards.

Hi!

At runtime the plugin if very efficient, as it takes care to project the decoded media texture on a sphere using a very short and efficient shader. Performance issues are usually caused by the video decoding or by a general configuration not adequate to the running hardware device.

Video decoding is performed by the standard UE4 Media Framework: the UE4 Media Player decodes the video stream into a UE4 Media Texture, that is continuously updated by the engine. The plugin then displays the content of the Media Texture in the Panoramic Sphere.

There are a numbed of UE4 settings that drive the performance and output quality of the application, for example: the settings of the used Media Texture (e.g.: dimensions and Filter options), the Mobile Content Scale Factor in use, max texture size on mobile, UE4 Media Framework Technical Reference.

If you are on mobile, further limitations and optimizations are available in UE4 (e.g. switch to forward rendering, disable the HDR mode, etc). You should look directly at the UE4 documentation for hints.

As a tip to analyze your performance problems, without using the Stereo Panoramic Player plugin, you can stream the same video on a large Plane in your scene, ensuring it covers all your display. It should then run at a very similar framerate as when using the Stereo Panoramic Player plugin.

HI, I am wanting to link an object to a stereoscopic movie. However, I dont want to have the player walk into the space to trigger the movie but would rather use the method of staring at the object to load the movie as seen in the first example in the instructional film. Is that possible? Also, there is a problem trying to do the method of assigning a box trigger using a blueprint. In 4.26, there is not Play function under the Stereoscopic play in Blueprints.

One more thing, is is possible to exit a stereoscopic video during playback or do you have to wait until it plays completely?

Hi!

The video tutorial shows just an example of what it’s possible using the Stereo Panoramic Player plugin. The plugin API allows you to activate and stop the Panoramic Experiences as you like. Of course it’s up to you to program the correct logic.

The API of the plugin is not changed since the video tutorial, so please double check to have followed all the steps in the video. I think you missed to select the Panoramic Director actor in the level. In fact the Play() function is a method of that class (and not of the Box Trigger class), and if the right actor is not selected then the method is not listed by UE4.

If you’re using the Panoramic Director, you can exit a stereoscopic video immediately calling the method End().

You can find the documentation on how to use the Panoramic Director here: https://www.unamedia.com/ue4-stereo-panoramic-player/api/panoramic_director.html, and the list of its methods and properties here: https://www.unamedia.com/ue4-stereo-panoramic-player/api/class_a_panoramic_director.html.

In addition you can look at the official demo on github (https://github.com/UNAmedia/ue4-stereo-panoramic-player-demo) to see some other ways to interact with the plugin using the Blueprints.

Hi! Not sure how many of you are usually monitoring this thread, but we would like to know how most of you’re using one of the features of Stereo Panoramic Player. So, here the poll :slight_smile:

In your projects using Stereo Panoramic Player, what type of maps are you using?

  • Usually I have an ordinary surrounding 3D scene that must not interfere with the Panoramic Experience.
  • Usually I do not have any surrounding 3D scene, so an empty black level is enough.

0 voters

Of course, feel free to comment on this if you want.

We are interested to understand if continue keeping the “Translucent rendering mode” as default, or if switching to the “Opaque rendering mode” in the future.

Thanks.

Im having trouble with building on a Mac OS Big Sur. I keep getting the message “Plugin ‘StereoPanoramicPlayer’ failed to load because module ‘StereoPanoramicPlayer’ could not be loaded. there may be an operating system error or the module may not be properly set up.”

I even created a blank first person project and enabled your plugin. upon restart it did not work. fails to load. please help because I have an app I need to build on a Mac.

Hi! This is unfortunately an issue with many plugins on macOS (searching for the error message in the Forums or AnswerHub will return many results). The problem is that our plugin (StereoPanoramicPlayer) is loaded by the editor before a required engine plugin dependency (ProceduralMeshComponent) causing this system loading error.

A possible workaround is to change the loading phase of the plugin:

  • find the installation directory of the Plugin (it should be in <UE_ROOT_INSTALL>/Engine/Plugins/Marketplace/StereoPanoramicPlayer)

  • edit the file StereoPanoramicPlayer.uplugin and change the row

    "LoadingPhase": "Default",

    into

    "LoadingPhase": "PostDefault",

Let me know if this solves your issue.

thank you so much! it worked and your directions were very helpful and clear. Appreciate the quick response and I hope you have a wonderful day. :slight_smile:

I have successfully linked a 360 stereo movie to a box trigger and it works nicely. However, the 360 movie is rather pixelly and sticks a little. It is an mp4 4096 x 4096 VR 180 according to specs in UE. Not sure why the player’s quality is not quite what I was expecting.

Hi!

Video decoding is performed by the standard UE4 Media Framework: the UE4 Media Player decodes the video stream into a UE4 Media Texture, that is continuously updated by the engine. The plugin then displays the content of the Media Texture in the Panoramic Sphere.

There are a numbed of UE4 settings that drive the performance and output quality of the application, for example: the settings of the used Media Texture (e.g.: dimensions and Filter options), the Mobile Content Scale Factor in use, max texture size on mobile, UE4 Media Framework Technical Reference.

If you are on mobile, further limitations and optimizations are available in UE4 (e.g. switch to forward rendering, disable the HDR mode, etc). You should look directly at the UE4 documentation for hints.

As a tip to analyze performance and quality problems, without using the Stereo Panoramic Player plugin, you can stream the same video on a large Plane in your scene, ensuring it covers all your display and it shows approximatively the same area as when using the plugin. It should then run at a very similar framerate and output quality as when using the Stereo Panoramic Player plugin.

Thanks for explaining the playback functions of UE in detail. That helps a lot so will explore those areas.

Hi,

I wanted to update you on the player issue I am having. I am still seeing frame rate and low resolution output from the media in the player. I took the same movie and player and did as mentioned in your reply and placed this on a large plane and played the video, not using the stereo panoramic player and the image issues disappeared. The video was smooth and full resolution.

The problem is not in the VR preview but when packaged to go to the mobile platform. In this case Quest 2. However, when packaging to Quest 2 as a stand alone player and not connected to the stereo panoramic player, the movie plays smoothly. Is there some settings in the stereo panoramic player or the Director that should be adjusted to correct this problem?

Hi!

Thanks for the update. As explained, the plugin is not involved in the image decoding. It simply takes the content of the Media Texture “as-is” (filled by the UE4 Media Player), and projects it into the panoramic sphere with the same code used also for the still images.

The first thing I can think of, is to double check that you’re using the same general settings, in particular for the Media Texture size and its filtering options.

What system are you using to manage the user navigation? If you’re using the Lookup Texture method, ensure you’re using a low-resolution texture. Big textures are not necessary and on mobile platforms they can be expensive to use.

Could you provide a video recording of both the apps running inside the Oculus Quest 2? Here and here you can find instructions on how to record videos on Quest. Maybe we could notice something from the videos. Please send the link to download the files at support@unamedia.com . Thanks.