Currently working on a proof-of-concept of a space game. The game involves a spaceship with an interior, and an exterior that the ship “flies around” in.
To solve the issue of having to move a bunch of actors with the interior, we’ve made the interior static. The exterior of the ship then has a scene capture that renders as a window in the interior. This scene-capture (the “exterior ship”) can then fly around freely without worry about the interiors.
Some of you might have already figured out my issue. The exterior ship can “see” the interior. Both exist in the same world, so it is just there. We are in space so there is no real good place to hide it either and I’d rather avoid that if possible.
So what I want to accomplish is to hide the interior from the exterior camera. Even better if it’s possible to in some way have them in entirely different… areas? So that there is no risk of the interior flying through the exterior.
I’ve tried using HideActorComponents on the camera, and simply put every single actor from the interior ship in that list. There are some problems with this, however. Like every single object having to inherit the same interface (which is impossible for things like brushes as far as I know). Tried just getting every actor and just adding those within a range but found issues with some classes not getting picked up (brushes, again).
Searching around, level-streaming is sometimes suggested to hide part of a level, however, that won’t work here as both must be loaded at the same time.
With all the background out of the way, what I want to achieve is:
Hide the interior of the ship from the exterior
An easy way the declare an area as “interior” (perhaps a volume) so that every actor in that area is hidden.
Make the area entirely separate, almost as if it is on its own level.