Announcement

Collapse
No announcement yet.

Product Viewer Template to work with Streaming Levels?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Product Viewer Template to work with Streaming Levels?

    Hello everyone,
    I've been working with the Unreal Product Viewer Template and i tried to introduce some streaming levels in my scene with some objects in it,
    The problem that when i start the game the product viewer seems to detect all actors on the loaded level only, and when a streaming level is unloaded, and a new one is loaded it doesn't get the new actors to be affected by what it does, I mean ( detecting static meshes, enabling teleport on the floors and the interactable child actors).

    It seems like the only way for the product viewer actor to work is to keep all actors childed under the "Teleportation actors" or "Interactible Actors" and the must be on the same Level as the product viewer.

    Is there another way to make the product viewer logic works on the newly streamed level actors loaded inside the scene?

    Because the new actors from the new streamed level are not childed in the editor under the "Product Viewer collector"
    so, anyone could help me sort this out ?
    Thanks a lot
    Last edited by Nobel; 06-24-2019, 09:26 PM. Reason: adding tags

    #2
    I Think the only way to do this is by generating collisions on all imported static meshes via a blueprint or a python script, this will make the teleportation achievable even when the level got streamed. but can someone tell me how to start and where to put these nodes on which blueprint?

    I found this on the documentation here.

    Comment


      #3
      Hello,
      if you look in the productviewer_collector blueprint you will see that on begin play one array is filled for interactive actors and one array is filled for the teleportable surfaces.
      Those two arrays are queried when user is trying to pick an object to manipulate or to teleport on a new surface.

      These arrays are filled by looking for all attached actors under interactive_root and teleportable_root that are actors set in the detail panels of your productviewer_collector actor.

      Have you tried to update those arrays with relevant actors from your streaming levels?

      Comment


        #4
        This is sadly the case: as it is made, the Product Viewer works with just a single level loaded. When you add other sub levels in, (And this most certainly is the case when you set the level streaming mode to 'always load'), the actual blueprint can only add actors to it's array in the inspector, from the same level it is in. If it is in the persistent level, and the items you want to affect are in a sub-level, it won't let you put them in no matter how much dragging and dropping you do. If it's not in the same level, it can't guarantee it.

        This is also the case on if you want to parent objects in the sub level, in the editor, to objects (such as the interactive root), in the persistent: this can not be done whilst the two things live in separate levels. At a general guess, it's because they can't guarantee to be loaded at the same time, and thus can mess up.

        Because of this, if you want to use the product_collector blueprint, you will have to build a way for the objects you want it to care about, to be added to the array of known interactable actors when they are able to be added, (such as being fully loaded), as well as some way for them to be removed when that sub-level is unloaded. This will also likely require you to make a new way for identifying which objects in a scene you want to interact with. And the big problem with all this is: there are a few ways to go about doing all of this, rather than definitive single solution.
        Charlie Morris
        Technology Research Analyst

        Rogers Stirk Harbour + Partners
        www.rsh-p.com

        Comment

        Working...
        X