Search Unity

[Released] SmartBuilder (Level Design Tool)

Discussion in 'Assets and Asset Store' started by KristianHJ, Nov 30, 2021.

  1. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    SmartBuilder now avaliable at the Asset Store
    Read documentation here

    SmartBuilder is a tool created to speed up your level design process.
    It allows you to find the prefabs you need, when you need it. 100% Plug n' Play, no setup required.

    Smartbuilder gives you a intutitive window with a list of context sensitive assets - i.e. if you are building a forest, it gives you a grid of vegetation prefabs and if you are building a Village it gives you a grid of houses. It will reflect your selection, and always show you the most relevant prefabs and allow you to drag directly into the scene. It does this by analyzing the filename, directory, tags and labels of your assets.

    (NB: Assets in video/screenshorts not part of package. Assets are from Synty Polygon packs)



    Vert 1.png
    01a_FindsAssetsAutomatically.png
    01b_PlugAndPlay.png
    02_SpeedsUpLevelBuilding.png

    Who is this for
    • Level designers and Environment artist
    • Anyone building a scene containing props and prefabs
    • Anyone tired of finding the relevant assets in the project view
    • Anyone who has bought big 2D/3D asset packs
    • Anyone who wants an easy way to replace prefabs
    • Anyone who wants Default Prefab Parent tooling (Unity 2021 and Newer)

    Features
    • Shows relavants assets
    • Drag and Drop directly from SmartBuilder window
    • Works with both 2D and 3D
    • Works with all asset packs (If they are meaningfully named)
    • High level of usability
    • Replace selected prefab
    • Set and clear Default Prefab Parent (Unity 2021 and Newer)
    • Replace ALL prefabs of selected type
    • Finds related assets using linguistic morphology metrics
    • Persistent History and Favorites feature
    • Hooks into Asset Store to help you find the assets you need
    • Customizable UI
    • Customizable algorithm

    Disclaimer
    • Requires assets to be named in a logical maner
    • No assets from screenshots are included in this tool
    Get it here (2 weeks 50% release discount)
     
    Last edited: May 21, 2022
    makaka-org likes this.
  2. makaka-org

    makaka-org

    Joined:
    Dec 1, 2013
    Posts:
    1,026
    Congrats on the New Release, and wish you success with this tool!
     
  3. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks Makaka :)
     
    makaka-org likes this.
  4. Chevy-Monster

    Chevy-Monster

    Joined:
    Dec 3, 2014
    Posts:
    13
    This looks like a very useful tool. "Requires assets to be named in a logical maner" Does this mean I will have to rename any assets that I want this to recognize?
     
  5. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Hi Chevy. Short answer is no, it shouldn't be necessary for you to rename anything, providing your assets isn't named and placed randomly.
    Long answer is that the search algorithm is reliant on some similarities between the various assets, such as filename, labels or folderpath.

    Example:
    If you have 3 vehicle assets and they have no shared similarity in naming such as:
    • Cool_Green_Motorcycle.asset
    • Large_Offroad_Car.asset
    • Old_Veteran_Vechicle.asset
    Naming such as that, wont allow SmartBuilder to find similarities between these (Especially if they dont live in the same folder). Although if you have applied unity labels to your assets, it will recognize them as similar.

    Optimal naming is something like the following.
    • Vehicle_Motorcycle_Green
    • Vehicle_Car_Offroad_Large
    • Vehicle_Car_Veteran_old
    Doesn't need to be exactly like the above, and dont need the underscore, you just need some sort of coherent naming convention for optimal usage.

    However if you just have assets names as below It will work if they simply share folder, but you do get the best results if assetnames are more descriptive:
    • Cat
    • Dog
    • Horse
    • Cow
     
    Last edited: Dec 6, 2021
    Chevy-Monster likes this.
  6. Chevy-Monster

    Chevy-Monster

    Joined:
    Dec 3, 2014
    Posts:
    13
    OK, thank you.
     
  7. TomazMB

    TomazMB

    Joined:
    Oct 11, 2020
    Posts:
    38
    Hello, does it need to have assets imported first into Project or does it search in your assets folders? If does not need for assets to be imported into Project, should they be first imported into Project before placing on the scene? Thank you and happy New Year!
     
  8. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Hi TomazMB, Happy new year to you too :)

    Everything in "Assets" folder will be found, you dont need to add anything to scene for SmartBuilder to work.
    You can select any prefab in Project window (Or scene hierarchy) and SmartBuilder will show you any prefab in your project that relates to the selected.

    Hope this explains it
     
  9. TomazMB

    TomazMB

    Joined:
    Oct 11, 2020
    Posts:
    38
    Hello KristianHJ, thank you for your answer.

    So, if I understand correctly, the assets should first be imported into Project for SmartBuilder to find them and categorized them. Is there a limit (RAM) on how many assets can be imported into Project and how does it affect the Project regarding speed, or become Unity less stable, prone to errors etc.? I'm asking this because I have a lot of assets (and I'm a newbie :) ).

    One more question too, you said -> "Replace ALL prefabs of selected type" -> does it replace the assets complete with all scripts and preferences who are attached to the asset which to be replaced, so does remain all behaviors attached also to the new asset, or does it replace only static objects, who have no scripts and other characteristics - preferencies defined (colliders etc.) ? Thank you, and sorry if I ask "dumb" questions, I'm just learning Unity.
     
  10. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    No questions are stupid (Well some are, but yours are not)
    1. Yes, all assets must be inside the Unity project in order for SB to find them
    2. No limit on RAM, If Unity itself can handle it, SB can handle it too
    3. It does not affect Unity stability.
    4. I guess in theory if you have a HUUUGE project it could introduce a minor delay when you select an asset
      • Its multithreaded so it should have very minor effet
      • You can change settings to allocate less resources to SB
      • I have a testproject with 5 full POLYGON asset packs + 3 additional packs, and there is no delay
    5. The "Replace ALL prefabs of selected type" is quite simple; If you select i.e. a palmtree prefab in a scene, it can remove all instances of that palmtree and replace it with something else i.e. a rock or something. The only thing it keeps from old instance, is scale, position and orientation.
      • If you have any ideas about how it could be improved/expanded upon, feel free to give suggestions
     
    Last edited: Jan 5, 2022
  11. TomazMB

    TomazMB

    Joined:
    Oct 11, 2020
    Posts:
    38
    Thank you KristianHJ for the answers. It make a lot of sense and clear what SB can do and what not.
    From your answer, and since you ask, I have a suggestion in the field of replacement of game objects. Since you can replace on object with another, all scripts and other preferencies are lost with the replacement object. Can this replacement be made so, that a replacement asset completely inherit all the attributes of the game object that has been replaced (scripts, animations, sounds, preferencies in inspector,..) ? For example, if I replace a cannon who has attached script and animation of shooting a cannonball with another cannon, then the cannon who has replaced the original one, keep all scripts, animations, sounds and other preferencies from the old one (I have made an example from your video). At replacing, the program could ask if you want to keep all the attributes or not. I hope I have made myself clear enough and hope this is dooable.

    One additional question; once imported into project, does the SB save itself for another session after you closed the project and you can continue next day on the same spot where you left or you must start the whole process of preparing SB for work again (or does it have some Save/Load funtionality)?
    Thank you for your patience.
     
  12. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    I get what you mean with regards to "transfering" all the components and their values. It might be a good addition in some cases, although I would advice you to have "prefabs" and "prefab variants" with the correct components/values instead of setting them per instance. I do see the value though, so I will take a look at how that could be done.

    SB Starts up in <1 second so you dont have to worry about that. On top of that it automatically save/loads your selection history and your favorites for each project.
    So the only thing you have to do to continue work from last session, is to select the last entry in "history" and you are instantly right back to where you left off.

    screen01.png
     
    Last edited: Jan 5, 2022
  13. TomazMB

    TomazMB

    Joined:
    Oct 11, 2020
    Posts:
    38
    Thank you KristianHJ for explanations and answers. I get a better picture now what is your plug-in capable of and I see a bright future for it. I hope you will continue with development. I have bought Asset Hunter Pro and I will buy also this asset, but later this month since I had spend a lot more money on this New year sale as I should :).
     
  14. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks Tomaz :)

    I've spend the last couple of hours looking into how to copy components/values which is theoretically quite easy (I actually already have it working), BUT there is a bunch of stuff that cant be fully automated, because if you would copy ALL components with ALL values, then basically you would have the exact same object as before (You would also change mesh, material etc)

    That means I need to do some sort of window that would allow people to select which components and which values should be copied over. I like the idea, but needs a bit of work to ensure the usability is good enough. I will definetely see if I can design something meaningful, but if it makes using SB less intuitive i might decide against it
     
    Last edited: Jan 7, 2022
    Chevy-Monster likes this.
  15. TomazMB

    TomazMB

    Joined:
    Oct 11, 2020
    Posts:
    38
    I like your approach of thinking how to resolve this programming problem. Yes, the user should have options, which components to import into another asset, for example, if you replace tank with a tank, then sound, shooting animation etc. could be ported to another asset which should replace the old one (only mesh is different), the mechanics stay the same. But if you replace tank with a human, then it wouldn't make sense, so this decision is up to the user. There should always be an option, where user, not satisfied with the result, should invert the process and not make a replacement, or lets say correct his mistake. I never saw any such option from another developers, so I think your program could be unique if you'll be able to solve this problem in a manageable way. Thanks.
     
    Chevy-Monster likes this.
  16. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    I managed to get something working today.
    This allows you to choose which components to transfer to the new one, also choose which values you want carried over. (Its work in progress but i think you get the idea)

    An additional benefit is that I also figured out a way for all scene references to stay intact (Released in v1.0.4)
    Before, if some other component was referencing the object we want to replace, it would loose reference, but no more.
    This is actually a problem with every "Replace prefabs" script i've seen in forums etc. but this should fix that issue.

    As I said, its work in progress, but I think It'll be good in a day or two

    upload_2022-1-6_15-7-10.png
     
    Chevy-Monster likes this.
  17. TomazMB

    TomazMB

    Joined:
    Oct 11, 2020
    Posts:
    38
    Great Kristian. I'm pleased that you could solved (or at least you are on good path) this programming problem which I think bother a lot of programmers who want to find an elegant solution. I'm eager to see final result. Keep up the good work.
     
  18. Chevy-Monster

    Chevy-Monster

    Joined:
    Dec 3, 2014
    Posts:
    13
    You are kicking ass on this tool!
     
    KristianHJ likes this.
  19. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks Chevy, appreciate it :)
     
  20. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
  21. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    upload_2022-1-11_14-24-10.png

    So I arrived at something I'm quite happy with. It keeps the old replace methods (Single or By Type) but adds a new window called "SmartReplacer"

    What this does is that you can select any number of instances in the scene (2), or tell the tool to select every instance of a given prefab (1).

    That then fills the area on the right (3) which contains the aggregated components of the entire selection.
    You can then choose which components to transfer to the new copies. (Transform is the only one that is true by default)

    It also asks you (4) if you want to keep any children, tags or labels from the selected objects.

    And as the 'creme de la resistance' it also ensures scene references arent lost. I.e. some object that references a component on the replaced assets will now point to the new asset.

    I think this covers everything, I will release it soon after some more testing.
    If anyone can think of anything i've missed in having a single solution for anything "replace prefab" related, let me know
     
    TomazMB likes this.
  22. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Just released the Advanced Prefab Replace feature in v1.1.0
    upload_2022-1-13_13-21-29.png
     
    TomazMB likes this.
  23. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    @KristianHJ Congratulations for creating this handy little tool. I just bought it and like it very much.

    Just a quick question. I am doing some tests with a scene with 3 crocodiles in it. when I click
    Only crocodile is being replaced. crocodile(1) and crocodile (2) aren't selected probably because they are in different folder object in the scene. Wouldn't be more convenient if the prefab copies with the same suffix names be selected too? (wider search inclusion) Please let me know if that make sense. Thank you for your help!
     
  24. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks Netpost, appreciate the feedback.
    Sorry to hear the replace all function didn't work as expected - It definitely should replace all the crocodiles, even if they are in different places in the scene heirarchy. Are they instances of a prefab?
    I might have made a mistake when I created the "Advanced Prefab Replace" window. Will check immediately if I can reproduce the issue.
     
  25. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    I just tried to repro, but it seems to work. (See attached)
    If you keep having this problem dont hesitate to reach out at contact@heurekagames.com and Ill figure out what is going wrong
    replace gif.gif

    nb: In the gif I am righclicking the 'coins' and selecting "Replace all of selected type", but my video capture didn't grab the contextmenu apparently.
     
    Last edited: Mar 9, 2022
  26. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    @KristianHJ It does work on PolygonSciFiCity but not with the Polyperfect low poly animated animals. I will try to understand the difference between the packages. Thanks!
     
  27. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    @KristianHJ I am not sure why the prefabs in the scene from Polyperfect low poly animated animal don't work but copying a new crocodile and duplicating it a few times in the same scene does work. So all is good. Thanks a lot, this asset will be really useful.
     
  28. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    I had previously purchased PolyPerfect Animals, so I was able to check it out. l opened the crocodile demo scene and it contained both a "non-prefab" crocodile, as well as instances of the crocodile prefab.

    upload_2022-3-10_9-42-58.png

    My tool only works with instances of a prefab, so that might be where things went sour for you - if you had selected the non-instance croc.

    Looking at this, i might however be able to build in some *limited* functionality to support non-instance objects. I will look into that one of the comming days.

    No presure, but if you like the tool, feel free to add a review, would mean a lot since its still so new and it requires x reviews to get an actual rating.
     
  29. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
    @KristianHJ Thanks for the quick reply and help. It would be amazing if sometime in the future it does support non-instance object but in the meantime I can just make a quick crocodile search, select all of them in the hierarchy and replace the prefab for selected after. I really like this asset. Just so you know I already made a review yesterday because I truly believe this asset will be useful for many users.
     
  30. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks a bunch for the review, getting to those critical 5? reviews (I think) in order to get a rating can take some time for a new asset.
    With regards to the non-instance feature. Shouldn't be to hard, hopefully I can get it done in the weekend - although "replace all by type" probably wont be supported for those as they by definition don't have a type... I could do some name comparison, but I think the user interface for that would be too weird. (Unless someone have a good idea)
     
  31. netpost

    netpost

    Joined:
    May 6, 2018
    Posts:
    388
  32. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Found a few minor issues with replace functionality which has been adressed in new release 1.1.2. Also now able to replace non-instance objects (But not 'replace all by type', as there is no type since its non-instance)
     
  33. metricz

    metricz

    Joined:
    Apr 25, 2018
    Posts:
    1
    Hey Kristian, Love this tool, it's great,
    one question / request:
    How can I change (add) the lighting?
    All my assets are dark and i can only distinguish them by outlines.
    I think it's because the lighting seems to be directly overhead.
    So, for things like walls and assets with large overhangs, there is little to no incidental lighting, and I am struggling to tell them apart.

    This is one of my fav tools, so clever, so useful!
    Thanks Mike.
     
  34. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Hi Mike, thanks for the kind words - great to hear its useful for you.
    With regards to the lighting of the thumbnails, I fully agree - some assets are way to dimly lit. I am use the default unity way of getting a previewtexture, and wasn't able to find an reasonable alternative. I will however try again and see if I can figure out a way to modify the lighting a bit.
     
  35. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    So i've looked into seeing if I could override Unity's default preview texture, and I think I have something useful that I can keep working on. Definitely needs some work still, but this would allow you to customize lights, change view angle, background color etc. There is still quite a bit of work to get it integrated in a good way though, buts its a good first step.
     
    Last edited: Mar 27, 2022
  36. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    So Im getting closer to improving the unity previews to make them more visible in certain situations. Still need to work on the UI for you to choose light intensity, light orientation, camera orientation and background color for the custom previews.

    before.png after.png
     
    fordtimelord likes this.
  37. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Got pulled away for a while for other work, but finished up the Customizable Preview feature. Avaliable in 1.2.0.
    CustomPreview.gif
     
    fordtimelord likes this.
  38. fordtimelord

    fordtimelord

    Joined:
    Nov 3, 2020
    Posts:
    21
    I can't believe how long this problem has existed in Unity. I have been eying this asset for a while, and this feature was what made me pull the trigger. Thanks for all your awesome work!
     
  39. fordtimelord

    fordtimelord

    Joined:
    Nov 3, 2020
    Posts:
    21
    An hour later, absolutely loving the asset. There's one nit pick, which is when I go into game view, if I'm sprinting and press S to go backwards, it throws me out of game view and to SmartBuilder. I reset it to ALT+SHIFT+S, and it's fine, but I could see being annoyed by that every project :)

    I'm using SmartBuilder in tandem with Prefab World Builder, and it's been pretty seamless so far, which is great. Is there a way to multi-select, or would that be possible in the future?

    Thanks again, this is one of the most painless assets to start using I've ever installed. It just worked.
     
    KristianHJ likes this.
  40. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks fordtimeford, really appreciate the feedback. Cant believe I didn't think about SHIFT+S being a problem :rolleyes:.... I will Fix that in next release.

    How would you imagine multiselection to work, I dont think it would be that hard to do, but not sure what the use-case is? Dragging multiple items into the same spot? I guess that would be useful, just didn't occur to me.

    If you have the time, I would really appreaciate a review on the store, helps with discoverability
     
    fordtimelord likes this.
  41. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Fixed in 1.2.1 which is live now.
    New shotcuts are:
    Window = CTRL+SHIFT+ALT+B
    Select = CTRL+SHIFT+ALT+S
    Toggle lock = SHIFT + L
     
  42. fordtimelord

    fordtimelord

    Joined:
    Nov 3, 2020
    Posts:
    21
    So fast! Thanks, and I'll leave a review shortly. I must admit the multi-select is specific to my use case, but I hoped there might be other people who find it useful. For prefab "painting" in Prefab World Builder, but I believe other assets of that type, you load up your "brushes" which is just a holding place for pre-selected prefabs, and then you can either quickly switch between them to add to the scene, or combine them for decorating more randomly with all prefabs, especially with vegetation or scattered trash. If I could multi-select, I could grab all the relevant prefabs from your great search capabilities and drag them all into my brushes, saving a bunch of clicks and steps. Just a QOL thing. I assume it would be similarly useful to the assets that have you create categories or folders for building/decorating. Thanks for considering it!
     
  43. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Thanks a bunch for the review!
    I have considerations building SmartBuilder into a more fully fledged level design tool with more placement features (Where multiselection might be beneficial), but havent decided yet, kinda depends on how well it does.
    I have put your request on my backlog, then I will evaluate later
     
  44. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Finally moved into the 21 century with regards to documentation, and moved away from just hosting a pdf
    Read documentation here
     
  45. fordtimelord

    fordtimelord

    Joined:
    Nov 3, 2020
    Posts:
    21
    I'm having a frequent issue where I select a prefab in SmartBuilder, and drag it to the scene only to have the prefab immediately to the right of that prefab, or two to the right of it in SmartBuilder appear in the scene instead. Any idea what's causing that, and ways to stop it?
     
  46. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Sounds like a bug from my end with a wrong index somewhere. I will try to repro tonight.
     
  47. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Ok I have been able to repro it a few times, havent been able to pinpoint when it happens though. Seems to be after resizing window, or changing size of previews, but not sure. Seems to be something do do with UnityEngine.GUILayoutUtility.GetLastRect() sometimes not returning the right value.
    I will keep investigating, but if you have any insight to help me repro this more consistently please let me know.
    i.e. do you have the little "inspector area" open? Is your SmartBuilder window "wide" or "tall"? Does it happen after scrolling?
     
  48. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    I fixed the issue, its a bit of a workaround, but its functional.
    Issue was Unitys DragDrop class would register the position of the mouse AFTER the drag was started, and not the position of where the Drag originated from, which would cause this issue. The fix is live now in v1.2.3
     
  49. KristianHJ

    KristianHJ

    Joined:
    May 28, 2010
    Posts:
    350
    Please note: In version 1.2.3 SmartBuilder has moved out of the "Assets" and into the "Packages" folder to make future upgrades easier and more reliant.

    Unity does however not provide any way to make this move in a good way, so I've written an custom upgrader.
    If you however still get errors after upgrading to 1.2.3, please remove old version and re-import from packages manager.

    Sorry if you encounter this issue, but the move to "packages" means that any future upgrades will be much easier to implement.
     
  50. fordtimelord

    fordtimelord

    Joined:
    Nov 3, 2020
    Posts:
    21
    Thanks for fixing this. I do have a 2 monitor setup with my own layout going, and SmartBuilder in a small window off to the side of my scene view. I just checked and this seems to have fixed it. I regret that I have but one 5 star review to give!
     
    KristianHJ likes this.