Hi all, I’m building a city with an art style with everything crooked, flat shaded and low poly.
Here is a shot of my work in progress:
My problem starts when I started working on these crooked buildings, and making openings in them so players can go inside
- if I build them entirely with Roblox studio, crooked buildings are taking a lot more time to build.
- if I build them with Blender (I just started learning it), the building process itself is much quicker than in Roblox Studio, but I quickly run into problems with collision accuracy as soon as I start carving holes for the door and windows.
Assuming that I’m going to have around 30-40 buildings in the city in that style, would you:
a. build everything in Roblox Studio. No issues with collisions!
b. build in blender, but split a single building to multiple meshes so that generated colliders are more accurate
c. build in blender, and use something like the OBJ collision gen plugin to generate parts when importing
d. build in blender, make it non colliding then use invisible Roblox parts to build the colliders
At this point c feels like the fastest workflow, but looking at the number of parts generated, I’m a little bit scared that it would pose performance issues for me down the line.
What would you do?
I wouldn’t personally do C or D as that would add to the part count, and considering you’ll have a large amount of those buildings, part count is VERY important.
Personally, I’d just build it in Roblox, then export the buildings as meshes so you can adjust them. This will give you less parts and you’ll be able to carve holes before you export them.
Of course, this is your choice. C does sound like the fastest workflow. Do what suits you best! The buildings look very good so far!
Very very very unwise to export from studio to blender as it gives u at least 3-5x more triangles than necessary.
I never said I used Blender in my reply; I said I would build it in Studio, then export it as a mesh, then import it back into Studio as a mesh. Sorry if I’m coming off rude here Not sure if this is the right method but it’s how I would do it.
I’d personally do option D or B. As I’ve done in the past with projects where we have large cities or multiple buildings. Helps greatly with performance.
Why would u make it a mesh in the first place if u built it in studio?
I don’t know; I just prefer having less to look at in my Explorer it is a weird preference.
Terrible for performance, just saying. You can group parts if you want to look at “less” in your explorer.
Gotcha. I’ll stop exporting stuff in future projects.
Okay honestly whatever time you save in blender is taken away with importing and re-creating… I would just build in studio. It’s easier in this case. Simple anchored parts are also MUCH better for performance than some of the other suggestions.
By exporting a group of parts to Blender you can remove all the unnecessary triangles in Blender. Of course simply turning parts into a mesh without making any changes won’t have any benefits, but by removing all the triangles that won’t be seen or aren’t needed, you’ll be able to optimize the parts to return them back to Studio.
Of course it’d make more sense to simply make the mesh in Blender in the first place, however some people aren’t comfortable in 3D modelling programs and prefer to design their models in Studio first and simply use Blender to optimize them.
Absolutely a negligible… if u can use parts for the shape, use them. Meshes increases serverload time, performance issues for low end devices and rendering is a bigger task than it is to use the preset parts.
This isn’t entirely true, serverload time for a mesh is not too much of a problem unless there is a huge amount of triangles. A mesh will only need to load once; no matter how many copies of it are in the game, the game will only need to load it one time.
Parts, when combined together to create complex shapes, will also use a lot of triangles that don’t need to be used, considering there are 12 triangles per Roblox part. In Blender you can see many of these triangles won’t be visible to players anyway, so you can remove them.
Meshparts shouldn’t be feared, they offer a lot of advantages over parts, especially over CSG unions.
what solution do you use to ensure the blender exported mesh colliders are consistent with the visuals?
I’m not exactly sure of how collisions work with meshparts, however I do notice that smaller meshparts seem to have more accurate collisions. What you could try is to separate a building into several smaller meshparts and see if the collisions are accurate enough for you.
At the same time you can separate the meshes in such a way that you can assemble the buildings from the same set of meshparts in different ways, allowing you to change up the way your buildings look while taking advantage of the meshpart instancing I mentioned earlier, where each meshpart will only have to load one time despite making up several buildings, saving on memory.
Depending on what you’re doing you can avoid all of this. You could make it so when a player walks to the door they are teleported elsewhere on the map, but obviously that might not work for you. If it does though, it’d probably be easiest to do and then make the builds/meshes in blender.
ok after mucking around for a day… I have decided to go with option A - building the majority of buildings in Roblox Studio. Will still use Blender for special builds every now and then.
Here are the cons that I discovered with the rest of the options:
Option B (build in blender, split to multiple meshes) - even after splitting the meshes to individual walls, as soon as there is a hole for door or windows, the colliders are still far from accurate. Splitting any further and the time consumed maintaining each separate parts will defeat the purpose of using Blender in the first place.
Option C (build in blender, use OBJ collision gen plugin to generate parts) - this generates 20 times more parts compared to just building in Roblox Studio in my test case. This is way too much for me.
Option D (build in blender, make non colliding then use Roblox parts to build colliders) - again defeats the purpose of using Blender, if I could take the time to make invisible collider parts, then it is not too far off from making the entire building in Roblox studio in the first place.
One other thing I forgot to note earlier is that I am making a casual shooter. I imagine it would be fun to be shooting in buildings or shooting out from buildings. For that reason the collision accuracy is important to the game.
I appreciate all the suggestions. Do let me know if I am missing something, and I will also report back if I change my mind or figure out a better work flow.