- Added a text filter key value handler class that can custom handle the key and value for the text filter in the content browser
- Handlers can be added from other modules/plugins and specified in the editor config file with a corresponding key and its class
- Added a class to query the configurable settings for each handler to find the correct handler based on key text
#rb Chris.Gagnon
[CL 14799515 by Cody Albert in ue5-main branch]
Upcoming cooker changes remove the path length limitations for cooked file paths. This change forks and specializes/simplifies the path computation for source asset file paths, and adds the file path length (and maximum allowed) to the tooltip so users can still peek about any prohibitively long file paths in their project on disk.
#jira UE-102547
[CL 14791106 by geoff evans in ue5-main branch]
- Add protection against async property accessed during async build and postload.
- Split PostLoad into 3 steps with the most part now being made async.
- Make Build/BatchBuild API async when the feature is activated.
- Add a new StaticMesh compilation manager. (This will be refactory later to reduce duplicated code with texture compiler).
- Skip RenderState creation for any static mesh component still being built so they only show up when ready.
- Fixed DistanceField and MeshCard computation that might trigger too soon if fixups are required to RenderData during PostLoad.
- Dynamic priorisation for building and updating static meshes nearest to the viewport.
- Implement different PIE modes, current default is to stall only for mesh that might affect nagivation/collision for players/bots.
- Add a new generic interface for assets being built (still a WIP).
- Add ability in FrontEnd filters to skip serialization of asset being async compiled and refresh when compilation finishes.
- Prevent auto-save while textures and static meshes are being built (same as shaders)
- Logic has been reordered in some Fortnite Building Component to avoid unnecessarily touching static mesh properties.
General Optimizations
- Use cached thumbnails until shaders/textures/static meshes are ready to improve performance and avoid rendering incomplete thumbnails.
DEBUGGING
- Can be forcibly enabled/disabled through command-line via -asyncstaticmeshcompilation=[off, on, paused]
- Can pause staticmesh compilation using Editor.AsyncStaticMeshCompilation = 2 or -asyncstaticmeshcompilation=paused
- Can manually resume a specified amount of paused compilation using Editor.AsyncStaticMeshCompilationResume [Num]
- Can forcibly wait on all compilation using Editor.AsyncStaticMeshCompilationFlushAll
BENCHMARKS
- 2m19s to 17.9s for Loading FortGPUTestbed's LumenTest with an empty local only DDC
- 2h45m to 5mxxs for Loading Reverb's P_World with an empty local only DDC
- 17m29 to 10m27s for Loading Apollo_Terrain_Edit with an empty local only DDC
TESTS
- Loading maps from Reverb, Fortnite, ShooterGame, QAGame, FortGPUTestbed
- Content browser interactions while still under heavy compilation
- Importing with Datasmith / Dataprep
- Working with the new Mesh Modeling Tool
- Shutting down the editor while loading
- Most of EngineTest Test Suite
REFERENCES
- Design https://docs.google.com/document/d/1O4GI1G9AtQN6l0SaGFfXw0DyNhlLunLoEqne5INvxIQ
- Documentation https://docs.google.com/document/d/1KCdFEMhhcsGwfgOisTVwlOwtsmEd7qbB0V6Tc39Gb10
#rb Francis.Hurteau
[CL 14688146 by danny couture in ue5-main branch]
This change removes the use of boolean attribute AreRealTimeThumbnailsAllowed. This attribute is less than ideal, design-wise, since it uses the thumbnail pool to drive the behavior of the thumbnails. Instead we build in default hover behavior to the thumbnail slate widgets, and implement plumbing for custom pathways to enable/disable real time behavior per thumbnail.
-> Add default OnMouseEnter/OnMouseLeave events on SAssetThumbnail for default hover behavior (over the actual thumbnail image), which supports detail panel, customizations, and things like FoliageEditor and Niagara Stack Overview thumbnail strip.
-> Add thumbnail initialize pathway support for disabling default hover behavior for use cases where the logical asset is more than just the thumbnail image (border elements, text elements with the asset name, etc).
-> Add custom OnMouseEnter/OnMouseLeave handlers on SAssetTileItem, SAssetListItem to perform real time behavior on entire logical asset item in Content Browser and Asset Picker.
#rb francis.hurteau
#fyi matt.kuhlenschmidt
#jira UETOOL-2363
[CL 14673948 by geoff evans in ue5-main branch]
Any lingering references just used to become null, but they now need to be cleared to avoid leaking typed element references.
#fyi Braeden.Shosa
#rnx
[CL 14568555 by Jamie Dale in ue5-main branch]
- Always focus search field even when clicking drawer button
- Drawer is now summoned if there is no content browser when clicking the browse button in the details panel or asset editor.
- Creation of the content browser drawer is now handled by the content browser singleton.
[CL 14513618 by Matt Kuhlenschmidt in ue5-main branch]
Unify ContentBrowser "Explore" / "Show in Explorer" logic across several user endpoints
#jira UETOOL-2325
#rb brandon.schaefer,francis.hurteau
[CL 14423933 by geoff evans in ue5-main branch]