Announcement

Collapse
No announcement yet.

Making reflections disappear for hierarchical instanced static meshes on "owner no see"

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

    Making reflections disappear for hierarchical instanced static meshes on "owner no see"

    Hello,

    I currently have a group of hierarchical instanced static meshes that need to be set to "owner no see." Unfortunately, the owning player can still see those meshes in other reflection captures. How do I turn those reflections off for the owning player?
    Last edited by exaptations; 06-16-2019, 10:30 PM. Reason: worded it better

    #2
    So there seems to be something up with the "owner no see" and "only owner see" buttons.


    “Owner no see”:
    • Owner doesn’t see physical mesh but does see mesh in reflection captures (weird)
    • Non-owners see the mesh both physically and in reflection captures (normal)


    “Only owner see”:
    • Owner sees mesh physically but not in reflection captures (weird)
    • Non-owners never see the mesh, not physically nor in reflection captures (normal)


    In my case, the non-owner is a SceneCapture2D. Does anyone know how to correct either of the weird outcomes? I just need a relationship between owner/non-owners where the reflection captures act normally.
    Last edited by exaptations; 06-17-2019, 02:22 AM.

    Comment


      #3
      If you're talking about actual reflection captures (sphere capture or cube capture), those are built in the editor and cannot be modified at run time.

      If you're talking about scene captures, the owner see/no see only applies to the main viewport, not scene captures. Scene captures allow you to specify a list of excluded actors, so you could use that.

      Comment


        #4
        Manoel.Neto Hey -- I'm talking about planar reflection blueprints, which (if I understand them correctly) are supposed to be semi-continuously refreshed during runtime.

        Owner see/no see actually works fine when viewed through the SceneCapture2D; what I see in-game is what I'd expect to see. The problem seems to have to do with objects that've been set to owner see/no see when viewed by a standard camera.
        Last edited by exaptations; 06-17-2019, 02:52 PM.

        Comment


          #5
          Here's something that might help:

          Let's say I toggle between a standard camera and a SceneCapture2D; both are looking at an object that sits above a planar reflection. The object is owned by the camera's blueprint.

          If I correctly set the object to "owner no see," both the camera and the scene capture will always see the object in the reflection capture.
          If I correctly set the object to "only owner see," both the camera and the scene capture will never see the object in the reflection capture.

          Comment


            #6
            Ah, the planar reflection capture is its own thing. Which actor is it attached to? The way it updates probably doesn't access ownership as you would expect. But planar reflections have the same fine-grained controls as scene captures, so you can use that in a client-only code to force the actor to not show up on it:


            Comment


              #7
              Manoel.Neto

              Is your question referring to the planar reflection? The planar reflection is currently sitting on top of a standard metallic material, not attached to anything--the planar reflection is just hanging out in the world outliner.

              I've tried using the "Hidden Actors"/"Show Only Actors" controls on the Planar Reflection and haven't been able to break from the pattern described above. How would I go about using the planar reflections' fine-grained controls "in a client-only code to force the actor to not show up on it"?
              Last edited by exaptations; 06-18-2019, 12:16 PM.

              Comment


                #8
                Does anyone else know why this is/how I could work around it?

                Comment


                  #9
                  Is this just a limitation of the engine? It seems like "owner no see" objects will always be seen in planar reflection captures and "only owner see" objects will never be seen in planar reflection captures.

                  Comment


                    #10
                    Originally posted by exaptations View Post
                    Manoel.Neto

                    Is your question referring to the planar reflection? The planar reflection is currently sitting on top of a standard metallic material, not attached to anything--the planar reflection is just hanging out in the world outliner.

                    I've tried using the "Hidden Actors"/"Show Only Actors" controls on the Planar Reflection and haven't been able to break from the pattern described above. How would I go about using the planar reflections' fine-grained controls "in a client-only code to force the actor to not show up on it"?
                    I believe this is a bug/oversight in the planar reflection. I mean using blueprint to add the actors you don't want to show up in the reflection to the Planar Reflection actor Hidden Actors list. By client-side code I meant a client command, an event market as "run on client" or multicast. Since you're talking about owner-no-see, I assumed you are working with online multiplayer.

                    Comment


                      #11
                      Yeah, I can't use the Hidden Actors list to work around the bug/oversight. And yeah, I understand why you'd assume that; I'm primarily using the owner functions because they otherwise work for what I need to get done.

                      Any ideas on how to work around this bug/oversight? Is there someone I can contact about this?

                      Comment


                        #12
                        (still not sure!)

                        Comment


                          #13
                          Bumping, bc still need help on this

                          Comment


                            #14
                            Sorry, but now I'm confused about what on Earth you're really trying to do. Why not go all the way back to the beginning and explain in extensive detail what you are trying to do?

                            Comment


                              #15
                              Manoel.Neto

                              Here we go!

                              I'd like to gradually and cleanly fade out an opaque game object over a reflective body of water. Additionally, I'd like the object's reflection to fade out just as smoothly as the object itself. By "opaque" I mean to say that the object's materials need to be in the opaque blend mode. And the "reflective body of water" consists of a planar reflection blueprint on top of an ocean blueprint from the Unreal Engine marketplace.

                              As of now, I've figured out a performance heavy but ultimately reliable way to fade out objects in opaque blend mode; this doesn't work when taking reflections into account:

                              - So I first use this tutorial to create a cross-fade effect using a camera blueprint and a scenecapture2D.
                              - I set the locations and rotations of the camera and the scenecapture2D such that the camera and scene capture always see the same point of view
                              - I set the owner of the opaque object to be the camera blueprint that's responsible for one half of the cross-fade--ie, the camera is set to own the opaque object
                              - Finally, I set that object to "Owner no see" or "only owner see," and this defines whether or not the camera can see the object
                              If I play the cross-fade at this point, the opaque object looks like it's smoothly fading in or out, when, in reality, the player's screen is really just transitioning between one camera that can see the object and one scene capture that cannot--or vice versa.

                              Based on our discussion, this method doesn't allow me to fade out reflections; the reflections are stuck all the way on or all the way off, despite the reflections being on a continuously updating planar reflection blueprint. I need the camera to see the object and its shadow and I need the scenecapture2d to see neither the object nor its shadow--or vice versa. But I can't do that, as per the engine limitation that I described earlier.

                              So yeah, that's what I'd like to do!

                              Also, as a lil sidenote, I've already tried the masked/dithering technique for fading out an object (see this) but it looks bad and grainy; I've also already tried using materials in the "translucent" blend mode, but my object ends up looking super janky in front of the ocean blueprint that I'm using--not sure why, but I don't really wanna go down that rabbit hole. My game is extremely lightweight performance-wise, so I'm fine using this crazy elaborate and roundabout way of doing things if it means that the fade-out effect ultimately looks perfectly smooth.
                              Last edited by exaptations; 06-26-2019, 12:14 AM.

                              Comment

                              Working...
                              X