Scene Capture 2d owner only see not working

I am trying to get a mesh to render only to the scene capture for a project I am working on. When I set the mesh actor owner to my scene capture and set “only owner see” to true the mesh doesnt show up in the scene capture. I placed a camera component on the same actor as my scene capture and when I view it, it sees the mesh just fine. I attached a picture taken from the camera i mentioned above showing the mesh in the scene next to the scene capture output.

Did you solve your issue in the end?

Hey I’m having the same issue.
How can I make a mesh that only renders on the render target?

I’ve been investigating during hours but I didn’t achieve anything.

A little help here would be appreciated.

This can be achieved by making the First Person Character (or Actor with Camera component) the owner of the object you wish to hide (Cube in this case) using SetOwner() Function inside the Level Blueprint and then check ‘Owner No See’ in the object’s rendering section of the Details panel.
Hope this helps.

I’m having the same problem and setting the player’s camera as the owner and checking “Owner No See” does make it visible in scene capture and not in the game camera but it also moving with the camera which is awful, i need it to be the scene camera’s child and move with it. have somebody got “Only Owner Can See” to work?

Hey, I’m on UE 4.26 and found a way to do this, but it does require using C++.

You need to create a new C++ component which extends USceneCaptureComponent2D, and then override the ‘GetViewOwner’ method. This will allow you to use ‘Only Owner See’ and make sure that component you created returns the same owner as the primitives you wish to render.

eg : In UMyCustomSceneCaptureComponent2D.h :

virtual const AActor* GetViewOwner() const override { return GetOwner(); }

And then make sure that the owner for your primitives is the same as the scene, for my use case I was setting up a photobooth to render characters to textures to use in the UI. I have a single actor with which has all the primitive components alongside the scene capture, so setting the owner to itself was enough to have it all render properly. I did find a bug however with long-distance shadows being rendered in the main game from these primitives. For my use case I was able to disable Affect Dynamic Indirect Lighting / Distance Field Lighting and it works just fine.

You can reference the unreal implementation in SceneCaptureComponent.h, its comment is :

/** To leverage a component's bOwnerNoSee/bOnlyOwnerSee properties, the capture view requires an "owner". Override this to set a "ViewActor" for the scene. */
virtual const AActor* GetViewOwner() const { return nullptr; }
1 Like

Has anyone found a blueprint solution to this ?
Feels ridicolus that we have a way to make a second player view but we can’t hide anything from the VR view

I’ve tryed this method and still didn’t work .
This is what i’ve done:
-I made a simple actor with a sceen caprute component2d in the root and a simple mesh in front of it .
-Set the mesh to “only owner see”
-Edited the sceen capture component 2d in visual studio to include the line you’ve posted :virtual const AActor* GetViewOwner() const override { return GetOwner(); }
-Set the owner of the blueprint to itself .
Please help

Try “Set Visible in Scene Capture Only”. This is the function that primitive component has.

1 Like

This works. Thank you!