Search Unity

Scene Visibility Tools - Info and Discussion Thread

Discussion in 'World Building' started by gabrielw_unity, Dec 5, 2018.

  1. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    ---
    UPDATE Feb 6th

    Hide/Show and Isolation will now apply to item + children, coming in a future beta release.
    Isolation will now toggle, no need to use a separate key to exit Isolation.
    ---

    Hi everyone! The "World Building" team at Unity is excited to announce our first big feature-add: Scene Visibility Tools. (we like to call it "scenevis")

    Simply put, this means you can hide, show, and isolate items in the sceneview, affecting editor only, zero triggering of lighting rebakes/etc. These tools are now available in Unity 2019.1.0a11 and later. Download, try it out, return here to share your thoughts!

    Hide and Show:
    SceneVisDemo_HideShow_Structure.gif
    Isolate:
    SceneVisDemo_Isolate_Structure.gif

    Enable/Disable Scene Visibility

    SceneVisDemo_EnableDisable.gif

    Quick Start:

    1. Install the latest Alpha, start a new project.
    2. Note the new visibility column on the left side of the Hierarchy
    3. Click in an object's row to hide or show it, ALT-click to hide or show the object plus it's children.
    4. Setup keyboard shortcuts via "Edit > Shortcuts > Scene Visibility"
    5. Use the "Isolate" function to view only selected items, then exit back to previous state
    6. Toggle on/off the effects of Scene Visibility via the new toggle in the SceneView Toolbar
    Useful Links:
    SceneVis Documentation
    Download the latest Alpha

    If You Find a Bug
    Report it here, or via fogbugz. Please give as much detail as you can, thanks!

    Goals for SceneVis
    • Quick access to hide and show via keyboard shortcuts, or hierarchy buttons
    • 100% granular vis control, ie can hide/show individual items, parents don't override
    • Clear indication of hide/show state in the Hierarchy, without getting cluttered
    • Ability to enable/disable the effects of SceneVis, without losing hide/show states
    • Save vis state info, but never "dirty" the scene, play nice with source control
    Design Choices That You'll Probably Have Thoughts On

    1) Enable/Disable the SceneVis effects does not change the state icons shown in Hierarchy
    • Similar to disabling "Lighting" in the SceneView Toolbar, this will only toggle the visual effect
    • That's nice and consistent, but can be confusing ("why are my objects visible when I hid them?")
    2) Clicking "Hide" on a parent object does not hide it's children
    • Again, consistent with current Hierarchy actions- if you click to expand a parent, only that parent expands, but if you ALT-Click, that parent + children will expand
    • Granularity first was very important, and there are many valid use cases for hiding only a parent but keeping it's children visible
    3) Only show icons next to hierarchy items that are Hidden
    • This avoids showing a wall of icons, since most scenes will have hundreds of visible items
    • Hover does display the Visible icon
    • Hidden items can be seen at-a-glance
    That's it for now, thanks for taking part in Alpha testing!
     
    Last edited: Feb 6, 2019
  2. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    531
    Whenever I go into isolation mode it doesn't isolate the selected object.

    - 2019.1 a11
    - Using HDRP
    - I set Isolation to a shortcut with the shortcut manager

    You can see it's in Isolation mode but everything else still shows only the icons get hidden.
    upload_2018-12-5_18-42-21.png
     
  3. neil_devine

    neil_devine

    Unity Technologies

    Joined:
    Apr 8, 2018
    Posts:
    2
    Hi @Grimreaper358 thanks for trying it out and reporting this, SRP support will be available in 2019.1.a12.
     
    Grimreaper358 likes this.
  4. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    531
    Ah ok, I was wondering if it was because of SRP.
     
  5. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    I like the new hide / show object in the inspector, I just don't like the dark grey background under the eyes. it creates a distraction

    I would keep the background the same for the whole panel, like I have done in the first image

    normal.png dark.png
     
    JakubSmaga likes this.
  6. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    2,311
    Does this work only in new projects? I cannot have it fully work in my current project.
    • I select the environment prefab and when I try to hide it, only its mesh collider becomes invisible.
    Generally speaking, objects are not hidden in the following cases:
    • objects regrouped inside an empty game object,
    • UI elements, either selected individually or in empty game objects.
    Works in the following cases:
    • prefabs in general: only if objects in the prefab are individually selected.
     
    Last edited: Dec 7, 2018
    Lars-Steenhoff likes this.
  7. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Hi! It should work fine in existing projects. It sounds like you are hiding just the parent object, and not the children (see the "Design Choices That You'll Probably Have Thoughts On" item #3 above :p ).

    To hide an item + it's children, you'll need to ALT-click the icon. Good to hear this tripped you up...sorry for that, but good to hear, that's solid feedback for us ;)
     
    APSchmidt likes this.
  8. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    We added this to ensure the vis column is clearly visible at-a-glance, and also because we intend to add even more goodness into the hierarchy! It's value will increase, I promise :)
     
    Seith and Flavelius like this.
  9. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    2,311
    Thanks for your answer above, much appreciated! ;)

    The column is visible but you really need to over the mouse over them to see the eyes... I wish they were more visible, like in the Photoshop UI.
     
  10. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    Can you make this color configurable? in the color preferences? ( so a can match the background color ) Haha, no really it's messing with my OCD to have a different background color there.

    If you make it configurable users can decide what fits them
     
  11. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    And trust me I know how to make the hierarchy full of goodies. Stil I don't see a reason to have the bar on the left personally. ;)


    Screen Shot 2018-12-07 at 16.45.26.png


    https://assetstore.unity.com/packages/tools/utilities/qhierarchy-28577


    I have been using Qhierachy for a while and I like that is very user customise-able, I can change colours, icons positions, disable / enable features etc.

    My request to unity is, make the same kind of user configurability possible for the new tools, and don't force them upon users. in other words don't try to make a one fits all approach, but leave some choice for the user.
     
    Vagabond_, awesomedata and Artaani like this.
  12. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    2,960
    I think clicking on visibility for a hierarchy of objects should hide all of them, and the ALTernative OPTion should be hiding only that one object ;)
     
    e199 and Creepgin like this.
  13. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    Example of Qhierarchy user settings :


    Screen Shot 2018-12-07 at 16.52.56.png
     
    Artaani likes this.
  14. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    2,311
    Practicality; I guess most of Unity users's languages read from the left to the right. It wouldn't be that bad to have the choice though. I would place it to the right in my projects because the hierarchy window is on the left of the scenes views. ;)
     
    Lars-Steenhoff likes this.
  15. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,341
    Looks sort of useful but we designed out this being a problem a while back using multi scene - we just unload the detail props scene etc.

    Is it useful? I think so, if it prevents editing too as anyone could probably write something to link a public property of choice in the hierarchy bar.

    Would be interesting if the UI could be: you can assign any public bool of any component to be toggled in a column, but that's a little out of scope here. I'd have probably linked the state of mesh editing + visibility then, to a toggle column to replicate the functionality here.

    But it's worth thinking about how that could be much more open ended and useful in broader context. Being able to link things ourselves to column toggle.

    Because people will always want a variation of behaviour for their specific projects.
     
  16. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    Artaani likes this.
  17. APSchmidt

    APSchmidt

    Joined:
    Aug 8, 2016
    Posts:
    2,311
    Okay, this is working in the scene views. :)
     
    Last edited: Dec 7, 2018
  18. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,075
    The whole feature is only meant for changing how scene shows up in the editor. It's not meant to be a tool to enable/disable gameobjects from the actual game:
     
  19. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,075
    But game view supposed to show the gameplay like it's going to work in build too. Having it show something totally different in editors game view would be really confusing to many users.

    It's only about showing/isolating/hiding objects from sceneview in editor so one can focus on editing specific parts of the scene.

    You may want to also read this: https://docs.google.com/document/d/13OeZgflRzhJMoPWlJ6D7yuz2gDlNQaLJ_pCgdT517uQ/edit
    I don't argue it could still be handy to be able to quickly hide some rendering from game view too (right now you have to toggle off the mesh renderer component per object basis), but right now it is normal for it to not work outside of scene view as that's how it's designed to work atm (to answer the original question).

    If they allow hiding the objects from editors game-view with the same control in future (could be a toggle in game view topbar), I'd hope there would be some warning somewhere that you are looking at a view with hidden objects that would normally appear on final build etc.
     
    Last edited: Dec 7, 2018
    gabrielw_unity likes this.
  20. rizu

    rizu

    Joined:
    Oct 8, 2013
    Posts:
    1,075
    If it's some common thing you do every time when you run the thing in the editor, you could just write some script with the help of https://docs.unity3d.com/Manual/PlatformDependentCompilation.html (use #if UNITY_EDITOR ... #endif) to implement different visibility logic for your game elements in the editor.
     
  21. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    I'll try to address all of those in a few summarized answers:

    Customizing: Yes, we plan to have a public API so users (and especially Asset Store developers) can customize and make advanced use of these new tools.

    Game View vs Scene View: There is a "Hidden Items" toggle in the scene toolbar, which also shows a count (it's a little bugged out in a11, sorry, a12 fixes that). Just like lighting, post fx, and audio, you can toggle this on/off without changing any actual settings.

    We are very, very specifically targeting only in-editor visibility here. Especially as scenes get large/complex, hiding and isolating visual stuff in-editor only becomes hugely beneficial. However, just toggling the enable/disable checkbox can wreak havoc on your scene...or you might forget to re-enable before building out the game (oh, how many times I've done that...). Plus hotkeys, isolate saving the pre-existing vis state, ability to toggle the effect on/off, not "dirtying" the scene for source control, many more benefits that form the reason these vis tools are fundamental to 3D apps. There's always room to improve on old standards though, so feedback is great, thanks!
     
    APSchmidt likes this.
  22. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Thanks, appreciate the info- we're on the fence with this one and it's good hear everyone's initial reactions!
     
    orb and Lars-Steenhoff like this.
  23. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Sure, I can see the use for "hide only in game view" on UI items...however that would be a much different goal/scope than this tool, sorry. Like the user "riza" suggested though, I think a custom solution would work best for that- something like a custom script which disables the UI item in-game only, would work well.
     
  24. Ziboo

    Ziboo

    Joined:
    Aug 30, 2011
    Posts:
    290
    Didn't try it but this is really welcome, especially when trying to work in interiors.

    When you're at it, I would love to see a Group/Layers system coming to unity, mostly for visibility also.
    Like if my hierarchy would be:
    • House 1
      • Walls
        • Wall_corner
        • Wall
        • Wall
      • Roof
    • House 2
      • Walls
        • Wall_corner
        • Wall
        • Wall
      • Roof
    Being able to put Walls for instance into a group and toggle their visibility.
     
  25. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    There was a tool called pro groups that did ecaclty that.

    I hope this tool is coming back now that the developer works at unity.
     
    gabrielw_unity likes this.
  26. AntonBertelsen

    AntonBertelsen

    Joined:
    Oct 13, 2014
    Posts:
    37
    I don't know if this is the right place to ask, but given that you are overhauling the scene editor in 2019.1 are there plans to support temporal image effects like TAA in the scene view?
     
  27. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    What I think is that unity needs more panels

    1. Hierarchy ( its like Maya outliner )

    2. Display layers / groups ( look at Maya layers for hints how to do it right ) Layers can have colours, can be reference only etc.

    3. Library with all your game objects sorted in the way you like.
    Not like the project panel but with your own layout not dependent on how its stored in the folders. From the library you should be able to quickly add new game objects to the scene

    4. Shelf, where you can add icons that do custom scripts

    Some of these I think are being worked on already, and I think display layers / groups are top priority for project organisation.
    Screen Shot 2018-12-08 at 13.16.43.png
     
    thelebaron and gabrielw_unity like this.
  28. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    531
    Is this the team that's working on "Scene Fragments" (Folder like containers in the scene) shown in this year's Roadmap earlier at GDC?
    upload_2018-12-8_8-47-8.png
     
    Xarbrough, Jes28 and Lars-Steenhoff like this.
  29. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    I like those eyes icons better in that roadmap picture than the one we currently get
     
  30. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Grouping (separate from Hierarchy) is definitely on the radar, like you mentioned we used to have "ProGroups" and I really want to re-animate that project, but much better and tightly integrated with Unity.

    Custom project library is interesting, the Grouping stuff could possibly handle this, it's been considered.
     
    Jes28 and Lars-Steenhoff like this.
  31. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Nope, that's another group, but we are working closely with them (and others) to make sure everything aligns nicely, no overlap :)
     
    hugokostic, Jes28 and Grimreaper358 like this.
  32. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    When grouping is to be used as a library then it would need to be able to show thumbnails.

    https://assetstore.unity.com/packages/tools/level-design/prefab-pick-place-117399

    This tool has some of the functionality that I think would be good for a custom library tool.
    being able to import from folders.

    I'm using pro groups and one thing that I like very much is that I can have both items from the hierarchy and from the project folder easily accessible. and that I can click on then to quickly locate them.
     
  33. mahdi_jeddi

    mahdi_jeddi

    Joined:
    Jul 18, 2016
    Posts:
    45
    This is interesting. I was just showing Unity to our artist so that he could make some changes to the scene. The first thing he wanted was a way to disable selection of some objects (like in Illustrator or Photoshop) so that he wouldn't select them by mistake. My answer was to lock the layers, but we use the layers for gameplay mechanics and this could break them. Also, putting objects you don't need right now on a different layer and lock them is very cumbersome.

    In my opinion a lock functionality would be more useful than fully hide those objects, because we're usually trying to move/edit some objects with respect to other objects in the scene, Especially in 2D games where you have a lot of layers on top of each other and want to move some objects and match them to background.
     
  34. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,070
    Blender now also has layers / collections / groups whatever you want to call them. this is really helpfull for organisation

    And a nice feature clickable workspaces / layouts

    Unity has layouts, it would be cool if I could assign those to buttons in the top bar, so they could be accessed with the mouse

     
    hippocoder and gabrielw_unity like this.
  35. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Thanks for the input! Lock is already prototyped and working internally, we just need to ensure we've got it set up correctly. Makes me miss the Asset Store days, when I could toss out half-baked ideas anytime :D We're taking the time to do it right though, since it'll affect every single Unity user. Good to hear this will be useful for you!

    Yep, agreed! Much of this is in planning/ideation stage, really looking forward to around GDC time, we should have lots of these core improvements to show.
     
    IsDon, FROS7, hippocoder and 3 others like this.
  36. Peter77

    Peter77

    Joined:
    Jun 12, 2013
    Posts:
    3,896
    Could you also add an option to use a different LOD Bias in the Scene View?
    https://feedback.unity3d.com/suggestions/lod-bias-option-for-scene-view

    We started using Level Of Detail via LOD Group recently and one caveat we ran into is that the Scene View culls objects using the LODs as well. Sometimes this is great, but while building a level, it's often inconvenient.

    The problem for us is that while building the level, we would like to see farther and especially smaller objects than in the actual game view. Looking farther means LODs should get culled much later, which allows us to see smaller objects, like stones for example, while painting them from a certain distance.

    The workaround we currently use is to set the LOD Bias in Quality Settings to 10000. However, it already occurred that people commit this change to version control by accident.

    We would like to see an option where we can modify LOD Bias in the scene view only and it should not modify any project settings.

    PS: I actually posted this in the General Support Forum (*), but then saw this "Scene Visibility Tools" forum thread and thought it a perfect fit.
     
    Last edited: Dec 14, 2018
    Adam-Bailey and Lars-Steenhoff like this.
  37. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Hi Peter! That sounds like a solid request, it wouldn't be part of this feature, but we could definitely look into a scene toggle/control for editor only LOD settings. Thanks for the idea!
     
    Xarbrough, Peter77 and Lars-Steenhoff like this.
  38. Ziboo

    Ziboo

    Joined:
    Aug 30, 2011
    Posts:
    290
    Might not be the right thread but since we're talking about tool in the scene view, it could be nice to have a toggle to sync scene camera and game camera.
    I know it's pretty easy to do with editor scripts, but having it by default could be nice.
    Especially with the new prefab new isolation mode, I always need to move my game camera to see the change I made in isolation.
     
  39. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    76
    Would be cool to have a toggle in scene view to hide objects by type(mesh renderers, lights, reflection probes etc)
     
    Xarbrough and gabrielw_unity like this.
  40. mahdi_jeddi

    mahdi_jeddi

    Joined:
    Jul 18, 2016
    Posts:
    45
    This sound like a more generic and handy version of Light Explorer window. I like it.
     
  41. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Definitely, we've been thinking on this as well. Thanks!

    Not for this tool, but yep that'd be quite useful.
     
  42. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    76
    I noticed that i cant isolate gameobject when hierarchy window is not active(if i select gameobject in hierarchy and then click on scene view or if i select object directly in scene view). Would be cool to have this working across both windows.
     
    Last edited: Dec 19, 2018
    Lars-Steenhoff likes this.
  43. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    Hi @Onigiri ! Can you confirm you have the latest build (Alpha 12 as of now, I believe), and let me know what your method of isolation is? That should work fine (at least, it does for me here). Thanks for the report!
     
  44. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    76
    @gabrielw_unity I tested this on alpha 12 and hdrp. I made shortcut for isolation but when i select objects in scene view and press shortcut button nothing happens. Its working for me only if i select objects in hierarchy. Shortcut for "Exit isolation" is working in both windows by the way.
     

    Attached Files:

  45. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    @Onigiri Ok, opened up an HDRP project and I can't repro, hmm. Do other single-key shortcuts work? If you switch the shortcut to something like "SHIFT H" will it work for your? Sometimes that's part of the issue. Also, I'm working on an internal build here- so it might be fixed internally and I'm not aware.
     
  46. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    76
    @gabrielw_unity yes, problem was single key shortcut. I tried multikey(Shift + H, Ctrl + H, Shift + J, Ctrl + J) and it working excellent. Thank you
     
    gabrielw_unity likes this.
  47. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
  48. HonorableDaniel

    HonorableDaniel

    Joined:
    Feb 28, 2007
    Posts:
    2,799
    GameObject->Align With View
     
  49. pavelkouril

    pavelkouril

    Joined:
    Jul 22, 2016
    Posts:
    125
    Hi,

    this feature sounds awesome! Will there by any way to query an API to see which gameobjecs objects are visible or not (and ideally events when some of the objects get hidden/shown)?

    In our project, most objects in the game world do not use the MeshRenderer components, but are submited using Graphics.DrawMesh or drawn using indirect instanced draw calls, which means these toggles won't affect the drawing, right?
     
  50. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    609
    There will be a public API for SceneVis, yes! :)
    (can't promise exactly when, sorry)