Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Have a look at our Games Focus blog post series which will show what Unity is doing for all game developers – now, next year, and in the future.
    Dismiss Notice

Prefab World Builder

Discussion in 'Assets and Asset Store' started by pluginmaster418, Aug 10, 2021.

  1. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    PWB provides you with a comprehensive set of tools for placing and editing objects.

    Prop Placement Tools
    Pin Too
    l: Place one object at a time. provides you with shortcuts to quickly rotate or scale the object from different points, including the corners of its bounding box.
    Brush Tool: Place large amounts of randomly scattered objects. Great for painting Foliage (details, trees, rocks).
    Gravity Tool: Physics-based placing tool. It allows you to add objects to the scene in a more organic and natural-looking way.
    Line Tool: Place objects along a Bezier path. Great for creating fences easily.
    Shape Tool: Place objects along a shape (Circle, triangle square or polygon).
    Tiling Tool: Place objects arranged in a grid. Ideal for creating floor and walls.
    Replacer: Replaces objects circled around the cursor with prefabs from the selected brush.
    Eraser: Erase objects as in a drawing editor.

    Selection Tools
    Selection Tool
    : It adds handles to the vertices of the bounding box of selected objects. Extends and complements the functionality of the unity transform controls. Allows you to rotate and scale the selection from the corners and midpoints of the selection bounding box, and from a custom local point.
    Extrude Tool: Creates copies of the selected objects in the direction defined by the handle.
    Mirror Tool: Create a mirrored copy of selected objects.

    Grid and Snapping Tools
    Helps you build modular environments.

    Links

    Video Demonstrations
    Please post any feedback, suggestions or ask for support or missing features here.
    ---------------------------------------------------------------------------------------------------------------
    Ps Layer | Psd Import | Transform Tools | Play Mode Save
     
    Last edited: Oct 14, 2021
  2. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    Any way you could add a feature to flatten terrain when spawning? Would be great for spawning buildings.
     
  3. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Interesting, I'll keep that in mind for a future release, although it doesn't seem like an easy feature to implement, especially since there are so many ways to flatten the ground.
    Anyway, when placing buildings, you can turn on the "Embed to surface" option in the brush properties. It's not the same but at least it doesn't leave the corners or bottom edges exposed.
     
  4. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    610
    Woah, that looks amazing! It seems very close to the tools Cities Skylines + mods offers for building cities, which IMO is a great scene building toolset (mainly due to many great mods like the prefab line tool mod).

    That said - I do have some questions:
    1. Are the data formats and most of the placement logic intrinsically tied to editor namespaces? If not, this would be a really great foundation for a runtime level building tool (as a separate asset for example).
    2. Is the spline & shape information persistent? It would be really useful to be able to come back at a later point to change some splines or maybe even add another layer/another type of meshes on top.
    3. Related to 2 - it's often really powerful to be able to begin/end splines at the nodes of other splines. Is that possible?
    4. Something that's really powerful is a sort of pre-configured prefab with exchangeable parts. Is that something that might come in the future or would that be out of the scope for this asset?
    5. How does your physics placement tool work? Does it require colliders on the assets? The asset Grabbit does a really great job there, might be interesting to add an integration.
    6. Is there a discord channel? This might become a really popular level editing tool (or so I hope!) so it'd be nice to have some sort of community for support as well as sharing tricks.
    7. Would you say it's straightforward to expand the tool and/or integrate this with some runtime functionality? E.g. re-using palettes to procedurally spawn objects in runtime.
    Either way, this looks really awesome and I hope the asset takes off nicely!

    P.S. I hope that's ok to point out - I don't think the preview image of your asset sufficiently communicates the load of features it comes with, it's a little bland. I almost would've missed it because I was thinking 'meh, just another basic prefab pick and place tool'.
     
  5. macube

    macube

    Joined:
    Jul 16, 2017
    Posts:
    29
    Looks great. Work the asset/tools at runtime? or on editor only?
     
  6. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hey, thank you very much for taking the time to review the tool and propose ideas to improve it.
    1. Yes, the logic is tied to the editor namespaces. I created the tool to be used as an editor extension. But in future releases I think I can find a way to create tools to use at runtime.
    2. No, but it is one of the features that I'm going to add in future versions.
    3. Interesting feature. I'll keep that in mind when implementing persistence for splines and shapes.
    4 I think it is out of the scope for this asset. But it's a great idea for a new asset.
    5. The physics placement tool doesn't require colliders. If used in conjunction with my other asset, the Transform Tools you can achieve a Grabbit-like functionality. Check out this video: Transform Tools 1.9 - Simulate Gravity. However, I'll consider the possibility of integration with Grabbit if more people request it.
    6. Right now there is no discord channel. But I'll take your advice and create one.
    7. It's not difficult but it's a lot of work. But my idea is to keep improving the tool as much as possible.

    About the preview image, I totally agree. In fact, I already created another. But thanks for pointing it out because it confirms what I thought.
     
    one_one likes this.
  7. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    It works only in the editor. I'm planning to create another asset with the same functionalities but at runtime.
     
  8. one_one

    one_one

    Joined:
    May 20, 2013
    Posts:
    610
    Thanks, that sounds great. Another tool I was wondering about which would be very handy is a prefab picker - where if you click on a GO and it's a prefab, you choose this prefab as a new object to paint
     
  9. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Your wish is my command ;). I'm going to add it to version 1.2. I already submitted version 1.1 with some improvements and fixes, but it has not been released yet.
    Currently there is something similar. It's the "filter by selection" button in the palette's search bar.
    It works like this: select the object you want to set as the new brush, then click the "filter by selection" button and the palette will show only the brushes that contain that prefab.
     
    Last edited: Sep 30, 2021
    one_one likes this.
  10. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    We now have a Discord Server where you can ask for help, report bugs, and request new features.
     
    one_one likes this.
  11. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    Flatten terrain around spawn is one of Gena Pro's strongest features. If you are able to add it, you will be able to compete with them :)
     
  12. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hey thanks for the suggestion. It's a nice feature, but it's a bit out of the scope for this asset. In the short term, I have no plans for the tool to become a terrain editor. If I decide to add it, I have to find a simple way to do it without cluttering the interface so much.
     
  13. Exeneva

    Exeneva

    Joined:
    Dec 7, 2013
    Posts:
    432
    Gena Pro isn't a terrain editor either. It just has the ability to flatten terrain around a spawn, which is useful for buildings. It's marketed as the best placement tool on the store, and it would be if its workflow was more intuitive like your package. For those who have spent the time to learn it, it probably is.
     
    one_one likes this.
  14. desukarhu

    desukarhu

    Joined:
    Jun 14, 2017
    Posts:
    24
    I don't seem to be able to place anything on terrain. I do have a terrain collider on it and it's on the layer "Terrain". And even if I have Terrain layer selected in brush Surface Filters it doesn't work. I'm on Unity 2021.1.

    Also all the brushes and previews are flickering constantly.
     
  15. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hi, thanks for reporting the bug. I'm working to fix it asap. I'll let you know when I'm done. If you want, you can email me at pluginmaster418@gmail.com to send you the repaired package before the next version is released.
     
  16. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hey, I promise I will try to add that feature. But it may take a while to get it right and easy to use.
     
    attaway and one_one like this.
  17. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hey, I think I fixed it. It was a bug in PWBIO.cs. Email pluginmaster418@gmail.com to send you the repaired file.
     
    desukarhu likes this.
  18. desukarhu

    desukarhu

    Joined:
    Jun 14, 2017
    Posts:
    24
    Great, I emailed you. :)
     
  19. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    I just sent you the file.
    I had also submitted a new version with the fix, hope it will be released soon.
     
  20. RadioactiveBullfrog

    RadioactiveBullfrog

    Joined:
    Jul 8, 2017
    Posts:
    55
    Same issue here.
     
  21. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hi, Please email me at pluginmaster418@gmail.com to send you the fix.
    Version 1.1.1 is on the way. I submitted it yesterday so I hope it will be available on Monday or Tuesday.
     
  22. bvonline

    bvonline

    Joined:
    Feb 27, 2021
    Posts:
    54
    How "fluid" does it behave on grounds with (strong) angles? This would be interesting to see for a buyer in a video on the asset page. I am thinking of problems which might occur when a ground is round or also multiple times angled (low poly structure). Here I am currently unsafe in my decision to buy, or not to buy, there is no more information on the asset page. Can you answer this question here in advance? Thank you very much!
     
    Last edited: Oct 3, 2021
  23. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hey, check out this video. Hope this helps clear up any doubts.
     
  24. bvonline

    bvonline

    Joined:
    Feb 27, 2021
    Posts:
    54
    Thanks for info. I assume that the verticle angle of a prefab might be randomizeable in specific range (e.g. from 80-100 degrees instead of just 90 degrees fixed)? And what about the splines, do they try to connect to the ground also when the ground is round / low poly angled? That was my main focus. Sorry maybe for that unprecise question before. Thanks.
     
  25. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155

    You're right, the brush properties window allows you to define a random range of angles and scales for each brush. You can also do that for each element of a multi-brush by overwriting the common brush properties.
     
    Last edited: Oct 3, 2021
  26. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    577
    Hi! I just picked this up and I'm really impressed on first impressions. Looking forward to using this more.

    Unfortunately I managed to get Unity locked up when using the 'polygon - circle' tool. I was painting an empty prefab onto a plain (I often use empty gameobjects as nodes). I let Unity run for a while but it used up 20GB of RAM and still hadn't resumed.

    Unity_PndP5opiN7.png
     
  27. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hi, thanks for reporting the bug. I'll let you know when it's fixed.(max priority)
     
  28. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    577
    Is it possible to replace objects with the Brush tool? I love that it avoids overwriting existing objects from the palette, but it would be amazing to be able to replace them.

    I tried the Replace tool but it could not replace my empty objects without a collider/mesh.

    Is it possible to see brushes by name? it's difficult for prefabs that have no icon.

    upload_2021-10-3_13-37-12.png


    I just had another lockup with using the Spacing tool. It says 17 secounds here but it has been stuck for a long time. I had to force close Unity.

    upload_2021-10-3_13-29-30.png



    also some errors for fine grid spacing
    upload_2021-10-3_13-45-59.png
     
  29. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    577
    when the max random value is less than 1 the min value will snap to zero while typing. upload_2021-10-3_15-13-20.png
     
  30. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    577
    upload_2021-10-3_15-14-56.png

    Changing the value of the Pattern in multi-brush gave this recurring error
     
  31. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    It seems that all the issues you are experiencing are related to empty prefabs or renderer-less prefabs. To be honest, I hadn't thought of that use case and that's why those errors happen.
    Fixing the bugs is the easy part, the tricky part is the new features, but I think I can find a way to make them work.
    Now I'm going to answer your questions:

    1.
    The only way I think it's possible is by creating a button in the replacer tool's properties window. Pressing that button replaces all selected objects with the prefab in the active brush.

    2.
    When you hover your mouse over a brush, a tooltip is displayed with the name of the brush, this takes about a second or two, but I know that's very slow.
    To fix it I'll do the following: The brush properties window will allow you to select a custom icon for each brush and in case the prefab has a renderer, a default icon will be added.
    what do you think?
     
    dock likes this.
  32. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    I'm going to replace those input fields with MinMaxSliders.

    Thanks again for reporting the bugs. After this the tool will be more robust. I will add it to the list of things to fix.
     
  33. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    577
    bug: The gravity brush often collides with itself, causing objects to float in midair.

    upload_2021-10-3_16-13-39.png

    bug: out of memory after playing with the circle tool for a while. This occured when changing Tool Profile: Revert

    upload_2021-10-3_15-26-25.png

    bug: Repacer tool having a bad time with prefabs.

    request: when adjusting individual scale/rotation/offset, it would be nice to have an option for the next object to use the same settings.

    Bugs aside, I'm really impressed with the UX of this tool, and I think it could become the best prefab painting tool. I bought this immediately because I was pleased with Transform Tools.
     
  34. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    577
    I think mostly I'd like to be able to erase and paint in the same brush stroke. Perhaps this is a different mode.



    A text list would be better, but a custom icon would be useful.
    Sometimes there are properties that simply aren't communicated in the icon. such as random rotation and scale.
     
  35. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Sorry for the bugs. I'm working to fix all of them asap. It's a bit overwhelming, but it's natural because it's the biggest tool I've created so far and it's hard to test every possible scenario.

    that is already fixed in version 1.1.1. (submitted but not published yet)

    I hadn't understood what you mean. But now I get it, I think I will modify the replacer tool so that it can be used as a brush. Although I'm concerned that it might get a bit confusing when replacing multiple objects at once.

    Ok, I like it. Added to the list of future features.
     
    Last edited: Oct 3, 2021
    one_one and dock like this.
  36. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    117
    @pluginmaster418 Hi, just getting started with your asset.

    I was going to do some building layouts for some town mock-ups and I had some issues with the brush not having any tuning for the bounds of the complex prefab.

    I made a video here to show what it's doing. It has both placement issues by height, and being targeted in the correct place with regard to the placement gizmo because of some bounding box issues (I assume).

    Being able to manually change the pivot and bound boxes would solve the problem. The current options probably works well for smaller objects, but some advanced options would be nice to work with this:

    Feature Request:

    - Brush item pivot manual selection. Change where the middle of the object is. Also the "Ground" of the object, would be part of the pivot.
    - Brush item bounds manual selection. So I can specify where the outer bounds of the item are, so as I move the pivot around, it can be properly tested.

    For instance, if a building has a basement that I want under the terrain, I would want the building placed on the terrain, and the basement to go under the terrain, so automatic bounds checking will never work there.

    Note, Im not asking for any terrain deformation. I would expect to make any terrain changes or terrain hole changes myself in another way, I just want a way to layout items easily.
     
    Last edited: Oct 4, 2021
  37. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hi, thanks for purchasing the asset.
    From what I see in the video, you defined a very large position offset for that brush (5, 66.6, 50) in the brush properties window. therefore, the preview does not appear above the handle. To make it work the way you want, you need to set the offset to (0,0,0).
    Now, you can press the End key to select one of the handles (pivot, center, or corners) as the placement point. All of that is explained in the documentation.
    In the case of the basement building, if the pivot is defined on top of the basement, it will work as expected. Otherwise you always can use the shortcut to change the distance to the surface (Ctrl + Shift + Hold down the right mouse button + Move the mouse vertically).
    About the feature requests. I like them and already added them to the to-do list.
     
  38. desukarhu

    desukarhu

    Joined:
    Jun 14, 2017
    Posts:
    24
    Would it be possible to have an editor window with both Tool Properties and Brush Properties in it? It might be just me and the way I have my editor laid out, but it feels abit clunky having to have so many different windows.
     
  39. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    It is possible, but then you will have to scroll all the time to access the properties. And I don't see the difference between that and docking one window below the other.
    Also, Unity allows you to create custom layouts to switch between them whenever you want, so if you're not going to use the tool you can switch to another layout.
     
    desukarhu likes this.
  40. desukarhu

    desukarhu

    Joined:
    Jun 14, 2017
    Posts:
    24
    Cheers, fair enough. I'll adjust my workflow instead. :)
     
  41. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    117
    @pluginmaster418 Ok, when I went back this time it did put it at the right place at 0,0,0 position offest.

    I think the problem is that grid was not aligned, and so it looked off from the terrain because it was on the grid, not the terrain.

    The core problem appears to be PWB isnt finding my terrain collider. When I take the Pin tool off Auto and force it to "Paint on Surface", it doesnt find the terrain, but it does find my other objects.

    I have the Terrain on a "Terrain" layer, it will draw on the "Default" layer, but I dont see a place to set the layermask.


    I tested some more, and its not a layer mask issue. It just isnt finding my terrain collider. Im using Microsplat, but its a normal Terrain Collider, and I know it works with Raycast as I just wrote a different tool that uses Raycast to put pins on the terrain.


    Any ideas on why it isnt finding my terrain collider?
     
    Last edited: Oct 4, 2021
  42. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    You're right, I already fixed that issue in version 1.1.1 (submitted on Friday but not yet released). it was an error in PWBIO.cs. Email me at pluginmaster418@gmail.com to send you the fix.
     
    ge01f likes this.
  43. ge01f

    ge01f

    Joined:
    Nov 28, 2014
    Posts:
    117
    That fixed it, thanks!
     
    pluginmaster418 likes this.
  44. desukarhu

    desukarhu

    Joined:
    Jun 14, 2017
    Posts:
    24
    I'm having some trouble with the gravity tool on terrain. I'm trying to scatter some branches on the ground but sometimes the prefabs just spin around for a while and then stop midair, what could cause this?
     
  45. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Hi, I already fixed that problem, but the fix will be included in version 1.2. I think I'll submit it today, I'm about to finish it.
     
    desukarhu likes this.
  46. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Version 1.2 is now available this is the change log:
    Features
    [Added] Line midpoint hint.
    [Added] Brush picker.
    [Added] Gravity shortcut to edit height.
    [Added] Radius slider to brush, gravity and eraser tool properties.
    [Added] Outermost prefab filter toggle to eraser and replacer tools properties.
    [Added] Default icon for brushes with empty prefabs or no renderer.
    [Added] Alternative shortcut to edit tool radius (Shift + Hold right mouse button + Move mouse horizontally)

    Changes
    [Improved] Range fields. Now the range between the two values is used without specifying which value is the minimum or maximum.
    [Changed] Default shortcuts for tools to improve the usability on mac devices.

    Fixes
    [Fixed] Toggle rotate to surface in selection properties.
    [Fixed] Pin tool issue. Scale and rotation values were reset after painting an object.
    [Fixed] bug that prevented drawing on terrain.
    [Fixed] Issues with empty prefabs and no renderer.
    [Fixed] Grid spacing issue.
    [Fixed] Issue when changing the value of the Pattern in multi-brush.
    [Fixed] Shape tool issue ignoring the brush scale multiplier.
    [Fixed] Replacer tool bug when replacing children of prefab instances.
    [Fixed] Preview of the eraser tool on the children of prefab instances.
    [Fixed] Gravity tool issue causing objects to float in midair.
     
  47. virtualshift

    virtualshift

    Joined:
    Sep 15, 2013
    Posts:
    2
    I having a problems with the Palette bar flickering making it very difficult to work with. I'm uploading 3 images I took back to back so that you could see what I mean. The icons will flicker in and out just from me moving my mouse around. Please let me know if there's anything you need for me to help fix this.

    Screen Shot 2021-10-06 at 4.26.45 PM.png Screen Shot 2021-10-06 at 4.26.37 PM.png Screen Shot 2021-10-06 at 4.26.31 PM.png
     
  48. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    Flickering can occur if unity detects that your prefabs are constantly being modified and therefore determines that it needs to calculate the thumbnail again.
    Can you test it in a clean project with few assets?
    Are you using version 1.2?
     
  49. virtualshift

    virtualshift

    Joined:
    Sep 15, 2013
    Posts:
    2
    OK, I did as you ask and made a new project, reimported your assets along with the prefabs I was trying to import. Found 3 things out while doing this. 1) If I import one folder of prefabs to one Palette, I have no issues that I noticed. 2) If I import my whole prefab folder that has multiple folders inside of it (about 10 sub-folders), I get major flickering with lots of empty icons. And I do have that option selected that says I can do that. Same as the photos I uploaded earlier. 3) If I try to add one folder of prefabs as a time to the same Palette, it seems to partially work. I can still see the icons without the major flickering, but I still get lots of screen flickering around the icons as if it's constantly trying to read them. Even though I can see the icons, it's still very distracting while going to select the next prefab to work with

    Please let me know if there's anything else you'd like me to try and thanks for looking into this for me.
     
  50. pluginmaster418

    pluginmaster418

    Joined:
    Jun 6, 2020
    Posts:
    155
    I'm going to do some testing here to see if I can get the same behavior. I will let you know if I found the cause of the problem.
    Thanks for reporting the bug. I will try to repair it asap.