As a Roblox developer, it is currently almost impossible to outline a Roblox model in a reasonable way. Outlining models is a good way to show current selected state.
Selection boxes work, but do not highlight models that have complex geometry, i.e. anything that isn’t a box.
If Roblox is able to address this issue, it would improve my game by letting me switch from using SelectionBoxes to something that looks much cleaner.
Unselected fish
Desired effect for selected fish
SelectionBox look for fish:
Basically, trying to make selection boxes visually appealing is hard. There are currently work arounds with ViewPortFrames, but
A) These have performance implications
B) These effects don’t quite match global lighting, even with tweaking
I completely agree. It’s an annoying hassle to do workarounds, such as exporting the object into blender and then inverting the normals, then importing it back into Studio and making it slightly larger.
There is currently no elegant way to create clean, consistent outlines around parts other than SelectionBox and SelectionSphere instances, but these don’t morph to the shape of a mesh. I think an instance that can be parented to a part or model would be of great use, especially with customizable colour, thickness, transparency, and the ability to see it through walls.
I envision being able to use them to create highlighted objects in the game world such as in Payday 2
Massive support! Having a outline when selection a model/union or the ability for it to outline the entire line of the model would be very beneficial for me and my development experience a ton with something that will outline the entire model instead of a single cube that is highlighting a model and such.
Anyway, in an upcoming project or development workflow that I experience everyday and work hard, I find it hard to configure and create some outlines with characters or parts to create something similar to FPS games or X-Rays with the SelecitonBox instance, but a SelectionBox or something that can make things look more “selected” is a workaround with this feature but I rather have it set by default or configurable in Studio Settings.
There are more workarounds such as the plugin that TheRings0fSaturn made and linked for a temporary cause, but this still hasn’t got much attention to Roblox staff or engineers.
The use-cases for these for future Roblox developers or us current developers working in Roblox studio would be interesting and significant to see what players might be using with such a selection with some SelectionBox features/updates that could be added along with this.
A hacky workaround is to use slightly larger meshes with inverted normals. That way, the selection mesh is invisible at the outside, but visible on the inside, giving the desired outline effect.
This is basically the same as a solution to cell shading that was posted around here not so long ago.
This does make the situation a bit harder, but can still be achieved through the old “impossible” CFrame “bug”.
Roblox only accepts orthogonal matrices for CFrame components (all unit vectors under a right angle), but doesn’t check whether they are an orthogonal reflection. This is very unreliable, but does work as long as the shape in question is symmetrical on at least one normal. That also means it will not work for complex shapes, but will with cuboids, wedges, cylinders and spheres. Any mesh will have to be manually inverted using a 3D editor.
Collision is also broken with these, so make sure their CanCollide is set to false and that they are anchored.
Attached is a place with a script that automates this for parts with symmetry on their X normal. OutlineScriptTest.rbxl (23.1 KB)
This is still a needed feature. Making a “cartoony” game would be a lot easier. Or even making a simple outline effect when you hover your mouse over an item. Currently, the only way how I would do this in roblox, is to use a very hacky method of inverting meshes to create said effect.