Search Unity

[Released] SuperPosition - Non Destructive Gameobject Editing

Discussion in 'Assets and Asset Store' started by AtomsInTheVoid, Aug 22, 2021.

  1. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251


    Get it here!

    You’re about to do the impossible. Time is about to lose meaning, and every idea you can think about is about to exist at your fingertips, all at once.

    Development is all about choices. Every decision you make affects the next one. Without even realizing it, all these little tweaks you made for random reasons add up, and if you’re lucky the final result is the best seller you know you’re making. Don’t roll the dice with your success, SuperPosition gives you back control over ALL possibilities. No longer is a choice you made last month simply done and gone. Bring the little scientist inside you back to life, and experiment until you get the perfect, unique, best looking result.

    It’s a simple idea with profoundly powerful implications.

    Imagine hitting a single button and every setting in the object you’ve been working on, including all the children within it, is saved. Each save is time stamped and can be named. Unlimited permutations are allowed. Restore the old state by merely double clicking on it. After a few minutes the new workflow will feel effortless.

    Suddenly, a new world of possibility opens up. Every possibility you care to preserve becomes near automatic. No more do you need to “Save As” before making big changes, every object now independently has its own iteration system built in! (Btw, just to be clear, 1you still need to actually save your scene from time to time as these iterations are stored, ultimately, in each scene file)

    I know your mind is bursting with ideas right now, so let me share a few more to really illustrate the power you’ll soon weild:

    • Arrange the placement of swords, buckets, tables and other props at the Bleating Goat Tavern you’re designing. Go ahead, set up a default setup and then a bar fight setup where tables are overturned and broken bottles litter the floor.
    • Get all arty with lighting! Test various lights and their seemingly endless settings to get the best, most emotionally jarring illumination.
    • Need a sign but not quite sure what it should say? Use it with Text Mesh Pro and play with different phrasing, fonts, and formatting. Don’t worry, nothing is final!
    • Grab your favorite weather addon or vegetation generator and easily flip between a sunny, breezy day to a rainy autumn day.
    • Some assets have a terrifying array of settings. Be a kid again and just mash keys and see what happens, save the best results!
    • Ever make a UI and wonder what it would look like if you moved a button to the top, added an image to the side, put a particle effect over there? Don’t worry, your original state is saved so feel free to turn it all upside down and inside out!

    In quantum physics, a SuperPosition is the idea that an object can exist in multiple states simultaneously and only becomes a singular version of all these possibilities when being observed. Well, golly gee, with this asset we all just became quantum physicists! Because that’s exactly what this does.

    Please note that this is a development tool, not meant for runtime builds. It’s meant to make your scene development easier and less intimidating. It’s highly optimized and any helper objects it uses are not included in builds.

    Get it here!
     
    Last edited: Oct 27, 2021
  2. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    [Reserved for future post]
     
    Last edited: Oct 27, 2021
  3. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Intriguing proposition! I really like the idea.

    How is it with VCS (e.g. git) history?
    You mentioned it persists to the scene (right?) How hard do you think it would be to have it persist to some partner asset? (e.g. a ScriptableObject that maybe mirrors the scene or something?)

    GL with the asset regardless. I'm sure it'll be well received!
     
  4. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    That's a good question! I'll be back in the office on Monday and will test that out, but I don't see why it wouldn't work as it saves 100% of its data to the scene file itself so any system that backs up your scene file should keep versions of the states created.

    At the moment it won't be able to create states out of scriptable objects themselves, I do have an idea that MIGHT work but I don't want to promise anything.

    But that's not really a bad thing, many assets will allow you to create saves of your scriptable objects, which is bascially the same concept.

    What does work, since it's on the Gameobject itself, is the reference to a scriptable objects. Say you have a weather profile chosen that's configured in a SO? Well, the choice of profile is something stored in the Gameobject so flipping between a state that has "Cloudy" and "Sunny" will work.
     
  5. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Sorry for the later reply I wanted to time it more with the actual release! It's finally out!

    And yes it'll work with any versioning system that saves scene files as the information is all stored within the scene itself.
     
  6. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251


    SuperPosition is the latest tool for your developer belt. In a way, it's a tool of tools since it's compatible with most Assets already on the store that are GameObject driven.

    I'll be releasing a series of videos of how to use SuperPosition with various assets.

    In this one I show that it works with:
    • Bolt - as long as it's "Embed" mode it works like a charm.
    • PlayMaker - works almost perfectly, adding a recompile at the end makes it refresh the window (I'm exploring ways of making this even smoother)
    • Amplify Imposters - since this asset is driven by a Scriptable Object I show you how you can still use SuperPosition to save versions of the settings file Amplify creates.
    • Fantasy Adventure Environment - Of course this works brilliantly, but I wanted to show case how you can use it to experiment with positioning a vast group of child objects.
     
  7. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    605
    I just picked this up and it seems really interesting.

    Unfortunately I'm getting errors on the first tutorial step when I click the checkmark below the blue button.. I'm in 2021.1.22.
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. SuperPosition.SuperPositionData+GOSnapshot.RebuildAll (UnityEngine.GameObject go) (at Assets/SuperPosition/Scripts/SuperPositionData.cs:184)
    3. SuperPosition.SuperPositionEditorWindow.OnGUI () (at Assets/SuperPosition/Editor/Scripts/SuperPositionEditorWindow.cs:479)
    edit: this seems to be reserved for the states saved as part of the demo. I can create and reload my own states without this error.

    Duplicating child objects and saving the state of the parent does not seem to work. The objects appear but they do not more into their new positions.
     
    Last edited: Oct 15, 2021
  8. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251

    First off, thanks so much for the support!!! Also now that your part of the SuperPosition club you currently can get a sick discount on all other ShrinkRay assets (check the SuperPosition page for the deets)

    I think you're right and I need to redo the demo scene as I did a few significant fixes since I first sent the asset to be reviewed by Unity -- next update this will be fixed (will submit today). I think I should also turn the text into an image since it's kindof annoying how if you don't have TextMeshPro already installed it makes the text look very strange and requires reloading.

    I really believe this has the potential to an absolute must have asset since my end goal is to be 99% compatible with all assets out there. The past week I've been tinkering directly with many other assets I personally own and making slight tweeks to optimize directly for them. For example, I just got an email from the PlayMaker devs on how to directly invoke their editor window to refresh, so that should optimise performance on that.

    I also had a daydream the other day that I could also add better support for Terrains. Right now it works with Terrain but only for the settings, I would have to figure out a clever way to cache the splats and height map data as well, but I think that'd be possible. If it is, this would probably be in a later update because at the moment I'm 100% focused on squashing any bugs.
     
  9. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    605
    I'll look out for the new demo.
    My main thought when using it was that I wish the history were a list of text entries, rather than tiny icons. It was also annoying to have to click on each icon and then press a tiny checkbox. A text list could show the name of the state.
     
  10. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Sure I can explore having a "vertical" view instead of Horizontal, I chose this way to keep the screen real estate as small as possible, but maybe having it as a list means having it on the side instead of on top? Good idea!
     
  11. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
    I mostly use Unity for video commercials (FX) and I constantly change things about.
    This asset has made work a lot more productive. So thanks. So far I haven't noticed any thing unusual happening.
    All my "non scripting" software still works,( Gameflow and The Adventure Toolkit") all respond beautifully.
    Have noticed an update. Is that available as an "update" or does one simply "open in Unity" to get the new version?
     
  12. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Yes please do the update there's actually a bug in the first one where reloading a scene accidently resets some of the SuperPosition ID's (if you notice (restored) in the name of some of the child objects (if you use hierarchy mode) that's because it couldn't find the original ID.). Silly mistake on my part when I was experimenting just before release.

    The update completely fixes it. And I absolutely recommend doing it (just update via package manager or through asset store depending on if you're on 2020+ or 2019)
     
  13. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Hey keep an eye out, next update will have a "wide" mode that's exactly like you describe.

    One thing I wonder is about the check mark. We certainly don't want to have it restore a state just by clicking the big box, just in case of accidental clicking. This way you select the one you want then hit the check to confirm you want it restored. But I'm open minded if you think there's an even better way about it?
     
  14. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    I think I'll add an option for double clicking to restore as well. So the buttons will still show anyway, but if you like you can enable double click as well. Will be in the next update!

    Loving the ideas.
     
  15. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
    OK. Tried to emulate the bug but all seems to be working ok for me. Probably I have no idea how to emulate it?
    I shy away from "updates". If the asset works well for me then that's the way it will stay.
    Been burnt too often by "updates" that wreck previous works! I'll stick with your original, but thanks anyway.
    Maybe it's because of the very simple way I use Unity? I can reload a scene with perfect results. What am I doing wrong?
     
  16. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Just to be clear this is fixed now (for anyone else reading fresh), but the bug appears if you save a hierarchy with several children. Save the scene then reload the scene. When you restore one of the states you'll get a few (Restored) objects because SuperState thinks the object it's refreshing was deleted (because I forgot to delete a piece of test code that actually removed SuperPositionIDs under rare circumstances, but that rare circumstance was inadvertently triggered with a scene load). Anyway, this is now fixed. By the way, if this does happen to you with version 1.0, your original objects are there but greyed out and disabled. I recommend just undisable them, delete any of the restored, but also remove any states you made then update to version 1.1 and everything should be all good.

    By the way, I know it's a common joke but this but is actually part of a pretty bad ass feature. SuperPosition can actually restore deleted objects!! Say you're making a forest and you can't decide if you want 5 trees or 3 trees and 2 rocks by the cave. If you delete the 2 trees and add the rocks, then save another state, when you restore the initial state it will remake the 2 trees you deleted.

    Further, it will NEVER delete an object. So if we do the opposite now and restore the 3 tree 2 rocks, the 2 trees that were restored DO NOT GET REDELETED! They get disactivated! There's a very good reason for this: preservation of references. If an object is linked to another game object, this gets set to none if the object referred to is removed. Honestly, that's a deal breaker for me, if I couldn't figure out how to make that work then this whole project wouldn't be even 10% as awesome.
     
  17. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
    Got it! Thanks. And I see where "Scene Pilot" has been renamed and improved. Keep up the good work. Don't want to sound gushing, but I, for one, am impressed with what you do.
     
  18. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Yeah I optimized the speed on Scene Pilot / Editor Portals and added a really cool shader effect that makes it look more like an actual portal opening up on the editor, pretty sweet!

    Everyone, I just submitted another update to the store that adds:

    Wide mode -- choose to view the state buttons as wide rectangles, this will show more of the text. Non Wide mode is still ideal for screen real estate so I thought it best to keep both.
    Double Click mode -- choose to have a state restore by simply double clicking the state button.

    These features were added from user requests! Any other ideas I'm always open to hear them!
     
  19. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Ooooo I've been having FUN this afternoon. Got "Terrain States" well under way! At first i was thinking I had to figure out a way to save copies of the Terrain Data asset file itself, but I really want to avoid adding tons of temp files into your project. So instead, I'm going to cache the height and splat maps whenever a terrain object is detected in the component list. Here's the results so far (just have Heights working right now, but it works brilliantly!!)

    Terrain Saving.gif

    Imagine the possibilities! Your terrain won't be a scary thing to play with anymore. Carve out that waterfall, and test whether it looks better by having it split into two streams or just one. Or whatever!

    I plan to have this available in the next update. Don't forget to get SuperPosition while it's half price!
     
  20. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    THIS IS AWESOME

    I know it's not "pretty", I'll dress up a nice promo shot of how this can really look, but I've managed to perfectly capture terrain states!

    2021-10-19_11-43-27.gif
     
  21. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    (will be available i the 1.3 update)
     
  22. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Update is submitted! Here's how it looks with Gaia Pro!

     
  23. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    MOST POPULAR NEW ASSET! WHAT THE! THANKS EVERYONE!!

    Screenshot_20211021-222012_Chrome.jpg
     
  24. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
    Exciting reading! A Scifi novel in real time! You do it well, Mr AtomsInTheVoid.
     
  25. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
  26. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251

    If you already have Perfect F or Editor Portals (I think you said you had Portals once?) then you're best just grabbing one or the other for a crazy $5 since you have SuperPosition (it's on for an extra crazy discount during the Launch period) send me a direct message if you're seeing something different.

    If you don't have either then it's cheaper at the moment to buy them each for $5 each ($10) versus $15
     
  27. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
    Can you please supply a link for the $5 "new" Task Atlas" The link I showed still has $15. Thanks.
     
  28. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Hey sorry for the confusion but I was referring to Editor Portals and Perfect F there

    By the way, rereading your posts above. It's the same Task Atlas, the bundle just gives you free access to the asset.
     
  29. vertexx

    vertexx

    Joined:
    Mar 18, 2014
    Posts:
    379
    Thanks. Yep, it's a confusing set of discounts with assets being renamed and re-done! Still it make one dig about to see what one actually has. Might be an easier way of promotion? But fantastic assets for everyone.
     
  30. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Yeah I can appreciate that. The asset store doesn't offer the best tools for promotion but I am thankful that they added the new "Launch Discount" program which officially lists the sale price. I should also mention that very few developers provide cross-discounts at all, but personally I firmly believe in rewarding loyalty. If someone gets one or more, then I'm more than happy to give them a deal on my other offerings as well!
     
  31. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    605
    I just tried the new version (in Unity 2021.2.1, but I don't think that's the issue).It seems pretty broken. It fails to restore even very simple changes to the arrangement, where most of the objects have their positions are ignored or overlapping one another. I tried this for a while before and was never able to get a decent experience. Right now it seem very destructive.

    I just tried a bunch of tests with simple stacks of 10 spheres or cubes and they all failed.
     

    Attached Files:

  32. AtomsInTheVoid

    AtomsInTheVoid

    Joined:
    Jul 27, 2015
    Posts:
    251
    Thanks for the feedback! Thanks to your help I was quickly able to squash this issue, here's how it should behave now:

    https://i.imgur.com/D4DVRXY.mp4

    I'm sending Version 1.4 to the store with an urgent notice, everyone should update if they can.

    This bug only occurred on an object that was duplicated then captured in a new state, it was duplicating the ID as well. Now it can detect if it's duplicating, and if so it will delete it's ID (as SuperPosition will give it a brand new unique one upon the next saved state save).

    Anyways, thanks so much for bringing this to my attention! I'm 100% determined to make this one of the most useful tools in the store.
     
    Last edited: Oct 28, 2021