- multiselection: bones can be multi-selected (using shift/ctrl) so that they can be bulk edited
- bones can be transformed individually (unlike in the level editor where the last selected element's transform is used as pivot)
- added USkeletalMeshGizmoContextObject to manage gizmo wrappers for skeletal mesh tools
- gizmo: re-used the transform gizmo work done with several fixes/improvements so that they can be used in other contexts
- UTransformGizmo can be used without TransformGizmoSource, most of the infos can be retrieved from the IToolsContextQueriesAPI
- UTransformGizmo can be passed an external StateTarget to handle transaction externally
- UTransformGizmo fixed rotations going in the wrong direction when dragging
#jira UE-183454
#jira UE-183453
#rb kiaran.ritchie
#preflight 643d63df8e01968448cf53db
[CL 25085825 by benoit gadreau in ue5-main branch]
- store RefBasesInvMatrix when transacting as the number of bones serialized with the ref skeleton can vary
- fixed transaction issue with Modify not being called on USkeletalMeshEditorData
#jira UE-181601
#rb halfdan.ingvarsson
#preflight 642be5c0f376ab43d25f537f
[CL 24912623 by benoit gadreau in ue5-main branch]
Add a new factory step call ImportAssetObjectFinalize_GameThread so we can call some UI on the game thread when importing an asset.
#jira UE-174377
#rb jeanluc.corenthin
#rnx
#preflight 64235271a86ae7cbcccfa4af
[CL 24835626 by Alexis Matte in ue5-main branch]
BoneInfluencesLimit can be set on each LOD of an asset. DefaultBoneInfluencesLimit is a per-platform global default that can be set from the project settings.
This allows you to, for example, enable Unlimited Bone Influences on a project while ensuring that meshes don't use more than 8 influences by default, even if they've been imported with more.
#rb alexis.matte,josie.yang
#preflight 6380959cf514e1ded907774d
[CL 23265588 by henry falconer in ue5-main branch]
Add an RMB entry to the static mesh asset browser menu to initiate conversion.
Fix computation of the bounding sphere of a skelmesh to match what static mesh and TBoxSphereBounds actually do. Previously the bounding sphere would be contained by the longest side of the bounding box, whereas in fact the sphere should contain the entirety of the box.
#jira UE-168307
#preflight 63754b3d1c114bec05140526
[CL 23164332 by halfdan ingvarsson in ue5-main branch]