Previously, the file discovery phase of the asset gathering process would block the entire process until it had found all of the files it needed to test.
This can take quite some time for projects with a large amount of assets, so this change adjusts the process so that discovered paths will be reported back to the asset registry while the file discovery is on-going. This allows you to prioritize the scanning of certain folders before the initial discovery phase has finished.
To account for the fact that the asset registry will be reporting process of an unknown range, the asset discovery indicator has been updated to display a marquee bar until the initial file discovery has finished.
It will now show you the following messages:
- "Initializing Asset Discovery" - Loading the cached asset registry data and waiting for the file scan to start. The progress bar will marquee while this is happening.
- "Discovering Asset Files" - Shows an increasing count of the number of asset files that have been discovered on disk. The progress bar will marquee while this is happening.
- "Discovering Asset Data" - Shows a decreasing count of assets that need to have their asset data either read from disk, or copied from the cache file. The progress bar will show the percentage of the assets processed by the asset registry compared to the total number of assets to load and process.
- "Processing Asset Data" - Shows a decreasing count of assets that the asset registry still needs to process the gathered asset data for. The progress bar will show the percentage of the assets processed by the asset registry compared to the total number of assets to load and process.
One side effect of having the discovery phase scan go wide (rather than deep - to allow you to prioritize the scanning of certain folders) is that it may now report back folders that don't contain any assets. This essentially addresses a long time complaint from users, whereby the Content Browser wouldn't show empty folders.
This change also has the cached asset registry file write out for every 50,000 files that are read from disk. This avoids you needing to perform repeated work if you restart the editor before the entire scan has finished.
[CL 2644762 by Jamie Dale in Main branch]
- Shots now attempt to stay connected to each other when modifed.
-- Shots appear "connected" in the shot track so that when one moves, the previous one shrinks and next next shot grows.
-- Holes are filled for deleted shots
- Various low level shot rendering fixes
[CL 2643816 by Matt Kuhlenschmidt in Main branch]
Conceptual changes:
- SSection is no longer responsible for drag operations. This alleviates mouse capture fighting and event ordering issues to do with both SSequencerTrackArea and SSection wanting to potentially handle drag-like events.
- ISequencerEditTool can be implemented to define interaction logic for the sequencer as a whole.
- There is only ever one tool active at a time. This is set by SSequencer::SetEditTool.
- Edit tools are responsible for handling mouse input based on the current environment
- Sequencer hotspots define particular points of interest on the sequencer UI such as keys, sections etc. Hotspots can optionally define a drag protocol. This may or may not be honored by the current edit tool.
- FVirtualConvertor has been formalised as FVirtualTrackArea which provides logic for converting between virtual and physical track area space, as well as hit-testing logic.
We currently have two tools: move (V) and marquee (M) selection. Marquee selection has two modes (key and section selection) which can be toggled with the toolbar button, or by pressing the hotkey multiple times.
[CL 2640139 by Andrew Rodham in Main branch]
- Added curve editor icon instead of "Curve Editor" text.
- Added auto key icon instead of "Auto Key" text.
- Moved clean view and toggle auto scroll to menu.
- Added "Add Object" button to add selected objects to the animation.
- Added "Key All" button to toggle between keying all channels and not.
[CL 2639918 by Max Chen in Main branch]
- An optional slider at the bottom of the timeline that show a start/end and in/out range. When enabled, adjusting the timeline (panning/zooming) will be locked to the start/end range. This is another option which is on by default.
- Added project settings for the time range. For the level editor sequencer, it defaults to frames 101-200.
- When the slider is not visible (the default for UMG), there should be no change in behavior.
[CL 2633917 by Max Chen in Main branch]
- Support for multi select tangents
- Middle mouse also moves selected keyframes or selected tangents
- Fix selection so that shift adds to selected keyframes or selected tangents and control toggles selection of keyframes/tangents
- Shift to restrict movement to one axis
- alt-middle mouse to pan
- alt-right mouse to zoom
- tangent display options - always show tangents, show tangents for selected points, never show tangents
- pre-post infinity extrapolation options for curves
- add auto frame option to frame on curves when they are selected
- flatten and straight tangents buttons
- move curve editor toolbar button settings from sequencer settings to curve editor settings
[CL 2615290 by Max Chen in Main branch]
This shows a little colored pip to the right of the collection items, where each color means:
Grey - Up-to-date and empty
Green - Up-to-date and not empty
Blue - Has local changes
Orange - Not at the latest revision
Red - Checked out by another user, in a conflicted state, or missing its source control provider
This also adds an "Update" and "Save" option to the collections context menu. Typically these won't be needed as collections mostly manage themselves, but since we now show when a collection is out-of-date or dirty, it makes sense to allow the user to take action to correct these states without having to leave the editor.
[CL 2610477 by Jamie Dale in Main branch]
UETOOL-332 - Collections 2.0
UETOOL-369 - Want nested collections with collapsing
We now have version 2 collections which maintain a persistent GUID for each collection. Existing collections will be lazily updated to this version when they need to be re-saved.
This GUID is used by child collections to keep track their parents, and the collections view (as well as the quick asset management) now show a tree of collections. Collections in the main collection view tree can be re-parented via drag and drop.
Performing Content Browser searches against a given collection will also test to see if an object exists in child collections, and the asset view will now show you folder entries for child collections when viewing a parent (if folders are enabled in your Content Browser view settings).
[CL 2593321 by Jamie Dale in Main branch]
+ Add a toolbar button for adding additional objects to animate.
+ Add combo buttons to object binding tracks for adding additional property tracks.
+ Make the animation outliner resizable.
+ Add widgets for editing key values to the animation outliner.
+ Add buttons for navigating to previous and next keys, and for adding a key at the current time to the animation outliner.
[CL 2583673 by Frank Fella in Main branch]
Increased the size and made it more white.
#jira UE-13946 - Difference between TRUE and FALSE far too subtle
#codereview Nick.Atamas, Nick.Whiting
[CL 2582991 by Michael Schoell in Main branch]
Added WorldProperties icons back in as we want to show them in the settings sub menu now to match plugins.
UE-16205
[CL 2581017 by Matthew Griffin in Main branch]
Removed Custom file writing code from Plugin Creator plugin as it hadn't been kept up to date with normal methods and did not write all properties
Also noticed two strings in plugin tile used the same key, allowed documentation and support to preview URL as well
UE-16203
[CL 2579743 by Matthew Griffin in Main branch]
#jira UE-15171 - The Collision Analyzer window does not render correctly if it is opened from the console anywhere other than when in PIE mode using the selected viewport.
[CL 2572304 by Richard TalbotWatkin in Main branch]
There are now overloads to FUIAction that take a FGetActionCheckState delegate which is able to return any of the entries from ECheckBoxState. FIsActionChecked still exists for backwards compatibility, and converts the returned bool into a ECheckBoxState via a passthrough function.
#codereview Matt.Kuhlenschmidt
[CL 2570717 by Jamie Dale in Main branch]