I would love to create a resource for semi-frustum culling where objects are hidden if they are completely hidden by walls or terrain.
Reparenting or moving the object far away is unfeasible because of slow performance and cases where the collision still needs to exist or to preserve momentum.
This would be very useful in my game where I very often hide models that I know can’t be seen. I’m currently just setting LocalTransparencyModifier but this would be much more fitting and hopefully faster than using transparency.
It’s a bit silly that we have AI generated textures, materials, script-assistant and patchnotes, yet we don’t have extremely basic engine features like this.
This feature is crucial for any game engine. It’s quite funny that the CEO of Roblox claims to have respect for the community, but yet none of the developers at Roblox seem to even acknowledge this missing feature.
But what can you do? Well, finding workarounds. I don’t like giving up.
I like to play around with the Roblox engine, pushing its limits. And I just now found out you can make anything invisible but still simulated in the workspace by putting them inside of a ViewportFrame inside the workspace like so:
It’s not perfect, as you still need to parent things, which can cause problems in some cases. But at least you won’t have to worry about any Transparency, Enabled or Visible property.
Then again, Roblox needs to add this feature themselves, similarly to the CanvasGroup for UI, which was a literal game changer.
You can also make the part permanently invisible by creating a ViewportFrame, parenting the part inside it then parent it back to its original parent in the same frame.
I don’t really understand what you mean. But I figured out that if you parent the Part to something like Lighting and then back to its original parent, it will be visible again.
Bump, this would be an amazing alternative to, for example a for loop that checks if it’s a part, meshpart, etc and changes its transparency to 1. Scripting would be made a lot easier in that specific case. It would also be less resource demanding for larger models that lag the game.
I want to create a type of “ghost player” so dead players can spectate others but the living players shouldn’t be able to see the dead ones. This isn’t an M Night Shyamalan movie!
There is no way to do this nicely. I have to turn all character parts transparent. Then I have to account for things that aren’t parts but still show up like classic faces or particles.
This is easily one of my favorite suggestions ever. This would be extremely beneficial to me and save hours of development time. It is super inconvenient to have to reparent objects to nil or ReplicatedStorage to toggle their visibility and have to adjust all of my scripts to account for the change in ancestry when I would much rather keep the objects under workspace.
One of my most recent use cases for this feature was when I was rewriting the code for my game Spray Paint. There is a feature where you can hide artwork, and it works by reparenting folders that hold art to ReplicatedStorage. Every time I referenced an art folder in other scripts, I couldn’t directly reference it in workspace and had to check for it’s existence in ReplicatedStorage first in case it was hidden. This may not seem like a big deal, but it becomes tedious when 90% of the scripts in my game rely on the paint layer system. Hours and countless errors could have been avoided if I could’ve simply toggled a property for model/folder visibility.
I agree. It would be much more useful and efficient than looping through the descendants of a model which shouldn’t be laggy but could become laggy depending on the amount of descendants in a model. Bump
The explanation provided by Daw588 is very comprehensible and detailed, mentioning examples of other platforms that have done this in the past, should definitely check out: