In FN, the workflow for creating physics assets for vehicles often involves importing at least one static mesh and copying collision shapes from it. It's currently really challenging to copy individual shapes between static and skeletal mesh body setups. With the added shape copy/paste commands, we get a lot more flexibility out of SM editor and PHAT, and a somewhat simpler workflow.
If we have physics assets A and B and we want to add one shape (or a specific subset of shapes) from a body in A to a body in B, this change is needed to do that. Since I'm trying to do this all the time while editing physics assets for vehicles, I use this shelf locally.
#rb benn.gallagher, nick.brett, satchit.subramanian
#ROBOMERGE-AUTHOR: steven.barnett
#ROBOMERGE-SOURCE: CL 20861874 via CL 20861887 via CL 20861898
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)
[CL 20876607 by steven barnett in ue5-main branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
Static Mesh Editor changes:
- Share ownership of StaticMeshViewportClient's ModeTools via the EditorModeManager member
- Set up the EditorModeManager's preview scene and selected components when it's copied
- Add a set of FStaticMeshEditorToolbarExtender delegates to the module (similar to FSkeletalMeshEditorToolbarExtender)
- Allow adding an overlay widget to the viewport
- Add a ModeUILayer member to handle mode toolkit hosting
StaticMeshEditorModeling (new module):
- Create a mode and toolkit with AutoLOD and LODManager tools
- Add a button to the StaticMeshEditor's toolbar to toggle UMeshLODPluginEditMode
#rb brooke.hubert semion.piskarev
#jira UETOOL-3663
#preflight 61435ce14778fa00016a0b28
#preflight 614370e8b5a4fa00016459a0
#ROBOMERGE-AUTHOR: tyson.brochu
#ROBOMERGE-SOURCE: CL 17541979 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17541987 by tyson brochu in ue5-release-engine-test branch]
Also remove unnecessary allocations by allowing the async task to assume ownership of the vertex and index arrays passed to it.
#rb Andy.Davidson, Cedric.Caillaud
#jira UE-125187
#ROBOMERGE-AUTHOR: richard.talbotwatkin
#ROBOMERGE-SOURCE: CL 17448234 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17448242 by richard talbotwatkin in ue5-release-engine-test branch]
#jira UETOOL-3862
#rb lauren.barnes
#preflight 61158861b2dc4b00018a6d4d
#ROBOMERGE-SOURCE: CL 17159829 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17159840 by steven dao in ue5-release-engine-test branch]
- Moved source models related classes and implementation into separate files.
- Created a new UObject wrapper for holding mesh description bulk data; this is created as a transactable object inside a UStaticMesh.
- The cached mesh description is now an inner object of the bulk data wrapper; this allows transactions on the bulk data to affect the cached mesh.
- The static mesh SourceModels array can no longer be accessed directly: FStaticMeshSourceModel requires extra initialization before it should be used, so new LODs should be added through the static mesh API.
- Undo/redo is now fixed within the geometry tools
- Fixed regression where mesh description was being unpacked unnecessarily during transactions
- MeshDescription bulk data and its cached MeshDescriptions are now emptied prior to removing the UObject reference, in order to immediately free memory instead of needing to wait for garbage collection
- No more deadlocks when clearing or committing mesh descriptions during garbage collection
- Bulk data UObjects are constructed, where possible, at startup, in order to prevent it from happening during critical moments, e.g. during garbage collection or package saving.
#rb Danny.Couture, Alexis.Matte, Ryan.Schmidt
[CL 15420827 by Richard TalbotWatkin in ue5-main branch]