Search Unity

[RELEASED] SplitScenes - additive scenes workflow enhancement

Discussion in 'Assets and Asset Store' started by jhughes2112, Feb 5, 2019.

  1. jhughes2112

    jhughes2112

    Joined:
    Nov 20, 2014
    Posts:
    70


    I'm super excited to bring this out on the asset store! Ever think how great it would be to use Photoshop Layers workflow with Scenes? You're in luck, that's what Split/Scenes does. It lets you treat one scene as a stack of scenes that you can turn on or off, lock or unlock, etc.

    Link to Website Link to PDF Link to Asset

    While working on a replacement light probe system for Unity, I had to use the additive scene loading function to verify that my light probe system worked the way an additive light probe system should--with chunks in different scenes that you can add or remove at any time. I found that the additive scene system is great as a foundational piece, but the interface was very lacking. So I built a better one. Then i found all kinds of uses for it, like splitting up static geo from props, separating gameplay triggers into their own scene, splitting baked lights from dynamic ones, etc. Once I had it, Split/Scenes became a cornerstone of daily work to help people on my team work together without stomping each other's work. Super useful.

    Here's how it works:
    • Create a Root scene. This scene can have other things in it, like a camera or singleton objects or whatever.
    • Add a SplitScenes component to any object in the Root scene, and it manages the stack of sub-scenes. You load this Root scene and the SplitScenes component loads the sub-scenes for you automatically.
    • The dockable Split/Scenes GUI Window lets you see the stack of scenes and switch between them by double-clicking on the scene you want to work on. It has other icons to control loading status and locking controls and so forth. It's drag-and-drop to add an existing scene, and has a nice button to quickly add new empty sub-scenes, just like Photoshop does.
    • The GUI window can also handle multiple root scenes at one time being loaded! This lets you easily visually reorganize multiple scenes, if you want.
    • It also has a quicker interface for adding scenes to the Player Settings->Build Scene list, so you can quickly make a standalone build and test.
    And the most awesome feature:
    • A lock button to prevent accidental saving of scenes. So often, if I'm doing something specific, it may be in one scene and I know I don't want to mess up what my teammates are doing, I just click the Lock icon on their scenes and I won't be able to save them. Even if I hit Control-S. SplitScenes hooks the save events and knows if you aren't supposed to be changing stuff, and prevents it. Super helpful, because it prevents bad merges when we really didn't mean to change things anyway... sometimes it's hard to know you've even changed something until you check in your files, and boom! Merge conflict.

    I hope some of you out there find this useful. It's made a huge difference in our workflow already, and I expect more features to be added in the future. If you have any requests, I'm happy to listen and see if there's a way to work it in.

    Best regards,
    JH
     
    Last edited: Jul 16, 2019
    christoph_r and guycalledfrank like this.
  2. guycalledfrank

    guycalledfrank

    Joined:
    May 13, 2013
    Posts:
    1,073
    Oh, this is super intriguing! I was also going to do that. How do you send light probe data to shaders? Is it MaterialPropertyBlock, or the whole lookup is performed 100% on the GPU? How's batching working with it? :)
     
  3. jhughes2112

    jhughes2112

    Joined:
    Nov 20, 2014
    Posts:
    70
    Although this is really a forum about SplitScenes, I will mention that Unity supports a custom light probe type. Beyond that, you're on your own. I haven't implemented that part yet myself, but I did look it up in the documentation enough to satisfy my curiosity. However, the easy part is feeding shaders the right data. The hard part is managing the light probe data and interpolating it properly, which is what I've been focusing on so far.
     
  4. jhughes2112

    jhughes2112

    Joined:
    Nov 20, 2014
    Posts:
    70
    I have an update to Split Scenes coming out soon. There's a number of small fixes to the code that make it better behaved when using the UI, added a few minor features like rapid adding of new blank scenes, and fixed some null references. Most importantly, there's a nice PDF document that explains how it's used. Significantly nicer than the readme that I put together in a hurry on initial release! I'll post links soon to the website and documentation (in case you're interested in checking it out before buying).
     
  5. jhughes2112

    jhughes2112

    Joined:
    Nov 20, 2014
    Posts:
    70
    Wow! The asset store team is on fire! The newest version of Split/Scenes is out.

    v1.1 brings you a number of small bug fixes, null checks, and proper tracking of scenes that get moved in the asset database.

    There's a great new feature: a Plus button that quickly adds new empty scenes along side the root scene, automatically names them sequentially and saves them in the same folder, adds them to the build and enables them. It removes a ton of button clicks, making the whole process even easier.

    Check it out!
     
  6. jhughes2112

    jhughes2112

    Joined:
    Nov 20, 2014
    Posts:
    70
    I just pushed a small fix (no version bump) that has corrected paths for the package so everything lives underneath the project folder instead of having a few things outside it. The feedback I got was "keep it tucked in".

    Turns out that several people are buying one of the assets from Reachable Games, then trying out others, and some of them use the same folder name (testScenes). To prevent problems like that, I cleaned up the structure a bit. While I was in there, I slightly improved the documentation too.

    All the users so far have been really enthusiastic about being able to easily split work into more isolated chunks in the editor with no real effort, and most importantly, prevent accidental saving of things you weren't trying to modify. So happy Split/Scenes is working out for them!