Really wish the export button would also export Blender's meshes, rather than just the brushes.
A downloadable tool
Level Buddy is a CSG level modeling workflow add on for Blender 3D. It takes inspiration from old school editors like UnrealEd and DoomED. Level Buddy reduces iteration time while letting you test out ideas quickly and easily.
- Easy to use tools and interface.
- Auto texture/UV unwrap in world space.
- CSG modeling techniques including additive and subtractive inspired work flow.
- NOT BSP, you are work with poly meshes at all times. When you build the map you get a static poly mesh not a BSP tree of faces.
- Build and export your map to FBX with 1 button, great if you are working with Unity or any external game engine.
- Blender 2.79 now supported. Level Buddy now works with the new version of Blender 2.79.
***Update Version 1.3
- added support for Blender 2.79
- added the ability set floating point precision when rounding vertex positions for CSG operations.
- TextureBuddy is now automatically enabled when LevelBuddy is enabled.
- fixed bug when trying to auto texture a map that had no textures.
- fixed bug of trying to execute TextureBuddy if the addon was not installed/enabled
***Update Version 1.2
- added FBX export options. This is great if you are using Unity or any other external game engine. Build and export with 1 button click.
- added remove material feature that will remove faces with a specific material applied when the map is built.
- added auto UV mapping as an option.
- added option to flip map normals when the map is built.
- added the ability to build the map while in edit mode.
- added in the ability to tag sectors and brushes to a layer (A or B) to fix boolean operation orders where they had problems generating proper openings/connections when the map would be built.
- hid the light setting properties for the time being as they were dependant upon material node setups that were specific to a personal project I was doing. If you still need them you can jump into the code and uncomment out that code in the draw panel function. But in the long run I will be moving them out of this script and into another script.
- added support for Blender 2.78
note: Addon is still in development so there might be a few bugs here and there.
Version 1.0 is still available to download below.
Click download now to get access to the following files:
Log in with itch.io to leave a comment.
Really wish the export button would also export Blender's meshes, rather than just the brushes.
Sorry but don't you have a toturial in how to use it (I'm dumb).
Can you upload in github? How about a patreon? Maybe I'm wrong but is seems an abandoned project. Thank you.
Sorry for the inactivity, the script is not abandoned just busy with work and family. Patreon could be interesting just not sure of the best structure setup. I thought about Github as well just didn't see the benefit since it is only two script files. Thanks for the interest in the project and hopefully I'll get some free time to do another update and some documentation soon.
Hey Hi Lucas, thanks for the editor :) Ok I understand you are very busy. Github even if is for two scripts, people can help in add new functionality or fix some bugs or update to a new blender version, maybe this even will help you in you own projects, and I pretty sure this can grow up a little more. BTW github have a wiki for you own repo giving the possibility to add documentation for you project, and its own page (http://github.io/), you can keep simple, all in one place, link to this page. For discussion some comments here, report issues on github. For Patreon, just an idea, not sure though... I think just for the incentive and see how much people are interested to see this grow, donating some bucks monthly for maintenance =) regards.
EDIT: Fix the problem with the exporter my fault :D
Hey I love the tool. Building lots of neat levels. I don't really understand how the texturing works though, and I broke the texturing of one of my levels somehow. Is there a little FAQ or guide about how to texture levels? non-video preferred.
I have a suggestion, the 3d sectors, they should have the same way of applying material for different parts (ceiling, wall, floor) I tried to go around that using multiple brushes with 2d sectors, but it wont work or sometimes blender just crashes.
You tool is really the greatest tool so far.
Hey man, don't you think about starting a Patreon?
This is probably the best add-on I've ever found for BGE.
I have a few questions:
1.are you planning on making parts separable so one can use occluders in BGE so only rooms that are visible will be rendered?
2.do you plan on adding features that are similar to the Hammer Editor?
3.will you add some instances such as PC controller, doors, skybox setup and activators(similar to what you showed off in your videos)?
Last one I promise, is there a more up to date version that maybe is still being tested? I would even be willing to pay for it.
keep up the amazing work.
Is there a way that I can use level buddy but have everything as a separate object so if it is ported to an engine mats can be assigned separately?
I'm testing your tool, and so far it is great. The 2D sectors works perfectly and they are allowing me to make my test level way faster than placing texturized planes. There is just one problem, the 3D sector only supports one material and there is no option to change it, is there a reason why? or do you have any plans to add support to that? (I'll rate this tool once I'm done with my level)
Edit: Brushes and 3D sectors are sharing the same material with the Ceiling.
Hi Dann, Glad you are having fun with Level Buddy. 3D sectors are just normal 3d mesh objects so they can be any shape they want so if you want to add more materials to the object you add them in the same manner as you would any 3d object in blender through the normal material tab. Since this was something that I built for myself without an initial plan to release it I didn't think it was important to duplicate the material window into the level buddy UI but now that so many others are using the add-on it is probably time to revisit the UI. This is also why there is zero documentation which is not great. Hope that helps!
stress alot! Not hard to understand at all. I just drew the map on paper
and boom it was done in just some minutes, didn't have to check for
empty gaps or anything, the only problem I'm having is the one I said
here, good job.
Edit3: I have fixed the issue, it was Unity's fault for not updating the .blend file while in Scene, I even edited your script to see if there was something missing but turns out it was really Unity's fault. anyway Keep up the good work, this Tool can be very usefull to everyone!
Hello, your tool has been great!
I have some problem with UV mapping. It was worked fine and this happened, don't know how to fix:
Hmm that is strange I don't know what is going on fully without being able to look through the actual blend filet. Try this though, after you build the map, make the created map selectable and try running the texture buddy "Auto" mapping on the built map and see if that fixes your UVs. Also on a side note if you are using 2d sectors to make your map you don't need to run texture buddy on them before building your map, if the "Auto UV Map" option is enabled it is done automatically. Now that I think about it if you have been running Texture Buddy on the sectors and then building your map you might be creating multiple uv sets that all get combined together on the built map. Check to see if you have multiple UV Maps on your built Map. If so remove them all and go back to your working layer with all the sectors and run this script. It will cycle through all of your visible objects and remove all of their UV map layers giving you a clean slate. Please let me know if this fixes it for you as it is something I can integrate into the actual tool.
---[open the text editor window in blender and paste the below code, and hit the "Run Script" button at the bottom of the text window]----
scn = bpy.context.scene
for ob in bpy.context.visible_objects:
ob.select = True
scn.objects.active = ob
for n in range(len(ob.data.uv_layers)):
Well, enabling the map on the second layer and running Auto on Texture Buddy did the trick. But if you build the map with Auto UV Map on (and without clicking on Auto like I did), the problem still persist. As far as I know, the final map only had one UVMap, just like every sector and brush. In the meantime, I can live with it. It's just something that started happening after I reinstalled Blender and the Level Buddy tool.
And I must say, it's being incredible useful once you get the hang of it. With automatic UV and exporting, it let me modify the map and send to Unity in a matter of few seconds!
Nice tool, thanks man !
Great tool, but the current version does not appear to work with Blender 2.79. It doesn't show up in the Add-Ons when I import it. A fix would be nice!
Sorry to hear you are having issues. I have not had any issues with it using Blender 2.79. I have done a small update to fix some annoying bugs such as auto enabling the TextureBuddy addon that comes with LevelBuddy. If you do not see it when you install it from the zip filet try using the search tool in the addon panel of blender and it should show up there.
Sorry If I sound like That guy but is there a tutorial some were? I tried to use it and it seems to be a bit finicky on my version of blender "v2.78".
P.s. The errors are as follows, If your interested
Traceback (most recent call last):
File "C:\Users\Samurai Studios\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons\LevelBuddy.py", line 742, in execute
File "C:\Users\Samurai Studios\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons\LevelBuddy.py", line 235, in auto_texture
File "D:\Blender 2.78\2.78\scripts\modules\bpy\ops.py", line 189, in __call__
ret = op_call(self.idname_py(), None, kw)
AttributeError: Calling operator "bpy.ops.object.texture_buddy_uv" error, could not be found
location: <unknown location>:-1
the error you are getting is because you also need to install the level buddy addon and have it enabled too. It is in the same zip file as level buddy . Hope that helps.
Thank you so much, I Am exited to start using this tool "PROPERLY". Can't believe I didn't notice that was missing.
P.s. Tanks again for replying, its a rarity to me.
sorry no tutorials yet. I do want to do some.
I got the same error. I installed both level buddy and texture buddy.
I just fixed a bug caused by a material not having an active texture that might solve some of the issues you have had. You could download the latest version 1.3 and see if that fixes your errors. I also have installed and ran the tools on blender 2.79 without issues.
Been at this biz for a couple years more than you. But you and I share a primary influence. This is just amazing man. I think I need to finally learn me some blender haha.
this so helpful.
btw. how can you see through walls when you are editing?
In the shading panel enable 'Backface Culling' that lets you see through the back side of faces.
Wow, this is actually super helpful! thank you! might use this for another game someday.
Well where is a blender and where do you find it
how do i use it it wont open
Thanks for the very handy tool!
I am using it to create old-school fps levels. So far the sectors work flawlessly but I had problems with the brushes. Something went wrong during build map so I had to reset the location, rotation and scale of every brush after finishing the layout. This way they did not get distorted during the build process. I leave this here in case somebody bumps into the same problem.
Edit: The problem came back so I looked into the python code. There are 2 functions which do some rounding. I changed both of them to round to 2 decimals instead of 1. This solved the geometry displacement for me.
Edit: I encountered another problem with substractive meshes. Sometimes they break the whole thing for some unknown reason. A simple substract window copy messed up the whole save file. I had to reload a previous state.
I get problems with the substractive mesh too. Did you check if the mesh normals of your substractive brush are pointing outward? Sometimes it solves the problem.
Normals should be okay by default. I suspect there is some limitation in blender or the plugin. Sometimes simple brushes connect in a way that breaks the script. Other times I get a very thin layer on one side of the substracted doorway for example and cannot place a floor under. With some tweaking they work. I will leave the rest for post-edit.
As for the window problem I do not know what was the cause but I remade the whole thing and now it works nicely. I have to admire the simplicity of creating free-form window sockets.
Do you have screenshots?
Well, I can supply one recent if you are still looking at this post:
I originally had a problem with the one brush selected but after going through all the parameters of neighbouring objects and hitting enter on them many of them broke during build. You can see the parameters on the left picture which should not be a problem.
PS: Of course the really interesting thing is that these were carbon copies from the other side which work just fine.
It sounds like an issue with the way the sectors are being combined. Because I basically boolean everything together and booleans do not always give the best geo you can find strange issues like this. Try changing the sector group to see if that helps. Group A gets processed first and then group B so this is one way to get around these kinds of issues. You might need to adjust a neighboring sector instead of the one that is having issues but it is at least one more thing to play around with. I hope this helps and sorry to hear you are having issues.
Unfortunately the whole thing breaks too often for me. Been building a town with brushes but pretty often I end up breaking the build script so I have to hunt down the one part/intersection that causes it (usually one side of a window edge which consists of 4 parts connecting in 45 angles in the corners) and turn it off/remove it. I use incremental values like .25, .5, 1 or 2 for building so I had previously removed all rounding script from the plugin. Now I thought I will download the original once again but modify the digits to 3 to suit my values. Since then the build button crashes the whole program.
Other thing that I tried is to select all the parameters of all the objects near the one faulty and press enter, confirming them. After that a lot more of these brushes broke. So, for now I it would seem that Blender could not position brushes properly thus breaking this plugin. Should this plugin work with 3ds Max so I can abandon this utter garbage app?
I just added the ability to set the rounding level of the vertex positions. Its called 'Map Precision' and can be found by the build map button. This should let you adjust the rounding without having to crack open the script. I have not heard about the build button crashing the whole program, if you can capture an error or shoot me an example blend file I'd love to dig into that and find the problem. I also just fixed a few annoying errors that seemed to pop up a bunch so maybe the latest version is a bit more solid for you. Since I don't work on this full time it gets hard for me to stay on top of it as much as I would like.
Thanks for the update and feedback! Finally got around trying out the new version. Precision update accuracy is a great addition, for me a value of 3 should be good enough. However I had 2 problems at the start:
1. The location precision update does not use the value which was given on the ui, only the cleanup vertex which means that my sectors get displaced because of the original 1 decimal accuracy.
2. For some reason a vertex Y coord of -4.25001 results in -4.251 after rounding. Also, I do not know why these odd values even exist.
1) I must have missed the sector placement precision cleanup, easy fix. Thanks for catching that and letting me know!
2) Floating point numbers are never precise which is why I had the rounding set so high. It seems to get more inaccurate the longer the number is after the decimal point which throws off the Boolean operations and gives errors or incorrect unions. In the old days of Doom they used integers for pretty much everything. If you were able to get away with using only whole numbers I believe you would see fewer if any errors...but the scale of your map would be pretty big and chunky.
Very nice tool!
Thank you for this update! This tool is really handy!