Commit Graph

109 Commits

Author SHA1 Message Date
jurre debaare
2eaf201f6a Generalized SkeletalMeshEditorToolbox to be used throughout Persona-based editors
#rb Halfdan.Ingvarsson

[CL 27874300 by jurre debaare in ue5-main branch]
2023-09-14 07:08:25 -04:00
Alex McAdams
9bee11a7c0 #jira UE-193593
Fix Persona ReferencePose Toolbar button by making it a "ToolBarButton" instead of MenuEntry.

[CL 27354773 by Alex McAdams in ue5-main branch]
2023-08-24 15:53:00 -04:00
kiaran ritchie
4a9a445fd6 Enable bone rotation/translation while painting weights.
#rb halfdan.ingvarsson

[CL 27281321 by kiaran ritchie in ue5-main branch]
2023-08-22 14:51:34 -04:00
euan carmichael
30567f03d2 Fix for crash when filtering preview mesh on template anim bps
#jira UE-188195
#rb Thomas.Sarkanen

[CL 25884968 by euan carmichael in ue5-main branch]
2023-06-08 18:28:20 -04:00
Thomas Sarkanen
cade535b0a Fixed crash opening a template animation blueprint with curves tab open
#jira none
#rb Jurre.deBaare
#preflight 6421aae47703a8de3d9a0890

[CL 24803198 by Thomas Sarkanen in ue5-main branch]
2023-03-27 11:11:05 -04:00
jaime cifuentes
3a62260a85 PersonaEditor : Fix for crash creating animation assets multiple times, by enabling replacing existing animation in the options to create new assets (if not enabled and we try to save to the same asset we are previewing, the system tries to delete the target asset, which is currently being used as source for the new asset, and it crashes because the PersonaToolkit is no longer available)
#rb [at]max.chen [at]thomas.sarkanen
#preflight 641d5b2b14423a492d1f4e58

[CL 24777395 by jaime cifuentes in ue5-main branch]
2023-03-24 06:23:52 -04:00
Thomas Sarkanen
502797ca50 Animation Curve Runtime & Editor Improvements
Runtime notes:
- Removes 'smart name' usage across the animation systems.
- Changed curve blending from a uniform array (sized per skeleton) to a sparse array of sorted named values. Blends and other combiners are performed using a dual iteration 'tape merge'.
- Skeleton curves are no longer guaranteed to cover all curve names that can be found at runtime.

Editor notes:
- Curve metadata (flags, bone links etc.) is still present on the skeleton, but can also now exist on a skeletal mesh
- Curve metadata (for morph targets) is still populated on import
- Curves can now be used arbitrarily at runtime

New features:
- New Find/Replace dialog that allows for batch-replacing curves and notifies across all of a project's assets
- New curve debugger tab in various Persona editors that allows for viewing curve values live. This also now allows viewing curves for specific pose watches.
- Pose watches now output curve tracks to the Rewind Debugger

#rb Jurre.deBaare,Nicholas.Frechette,Sara.Schvartzman,Helge.Mathee,Kiaran.Ritchie,Jaime.Cifuentes,Martin.Wilson,Keith.Yerex,Andrean.Franc (and more!)
#jira UE-167776
#jira UE-173716
#jira UE-110407
#preflight 63fc98c81206d91a2bc3ab90
#preflight 63f3ad4f81646f1f24c240c2

[CL 24421496 by Thomas Sarkanen in ue5-main branch]
2023-02-27 07:20:58 -05:00
jurre debaare
8b15c31b47 "Allow incompatible skeletons" checkbox option doesn't retain after UE reopening
#jira UE-173394
#fix add set-ter which ensures config is saved out to disk
#rb thomas.sarkanen
#preflight 63e21a2d9910415ae2f01a1a

[CL 24053931 by jurre debaare in ue5-main branch]
2023-02-07 13:42:50 -05:00
nick darnell
3e81121a50 AssetDefinition - "UV Editor" plugin's option no longer hides if it won't work (determining it requires loading the assets), so it's just going to determine that when you fire it and fire a notification if it wont work.
AssetDefinition - Skeleton
AssetDefinition - SkeletonMesh
AssetDefinition - StringTable

#jira UE-165574

[CL 23658411 by nick darnell in ue5-main branch]
2023-01-11 20:52:36 -05:00
Thomas Sarkanen
d9c2b172f7 Skeleton compatibility improvements
Skeleton compatibility is now bi-directional. Specifying a compatible skeleton A -> B now implies B -> A.
Skeleton compatibility is now an editor-only concern. The runtime will attempt to do the 'best it can' via name -> name mappings. Only the editor will prevent assigning incompatible skeletons in (e.g.) asset pickers etc.
Skeleton compatibility checks in editor can now be disabled in the editor preferences (and each asset picker now has a checkbox option in its view settings that allows for quick access to this).

Moves FSkeletonRemapping to its own file (which is now private).
Skeleton remappings are now generated on demand on worker threads just before animation decompression and stored in a registry, guarded by FRWScopeLock for thread-safety.

Fixed some anim BP compiler edge cases where asset references on pins were not getting preloaded correctly, causing skeletons to be erroneously reported as missing.

Exposed the current asset registry filter in SAssetView so that menu extensions can access it (and use it to provide context)

#jira UE-166054
#jira UE-167355
#rb Jurre.deBaare,John.vanderBerg
#preflight 635902602e6690262afa86f9

[CL 22878911 by Thomas Sarkanen in ue5-main branch]
2022-11-01 06:25:59 -04:00
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -04:00
Jurre deBaare
67babaec16 ANIM-RT truncation fixes - Persona
#jira UE-166635
#rb Jaime.Cifuentes, Thomas.Sarkanen
#preflight 63513298047f3570addbcffe

[CL 22653074 by Jurre deBaare in ue5-main branch]
2022-10-20 07:59:06 -04:00
eric knapik
ebeb6781c1 Animation BP toolbar trimming & permissions
* Tab filters are now applied before tab widgets before are created for animation blueprint editor instead of only when a user tries opening a new tab. This prevents disallowed tabs in default layouts being created.
* Event graph documents are not opened if event graph permissions are disabled when loading blueprint editor.
* Added new blueprint permission to optionally disable function overrides.

#rb thomas.sarkanen
#preflight 6346928ef04e6f8505f7b879

[CL 22547860 by eric knapik in ue5-main branch]
2022-10-15 02:13:23 -04:00
kiaran ritchie
9ece7682e8 Adding "Preview Scene Settings" tabs to IK Rig & Retarget editors.
This change also added a delegate to FPersonaToolkitArgs with reference to a IDetailBuilderLayout so assets can customize the Preview Scene Settings.

#JIRA https://jira.it.epicgames.com/browse/UE-148894
#rb halfdan.ingvarsson
#preflight
#preflight 631b7a00967ffc68fb262e06

[CL 21924418 by kiaran ritchie in ue5-main branch]
2022-09-09 13:58:03 -04:00
Robert Millar
1c1cea0d26 FNames containing asset paths are deprecated. FSoftObjectPath or FTopLevelAssetPath should be used instead.
Fixups for Persona.

#jira UE-161932
#rb matt.hoffman
#preflight 63181a1a2b7fe03eb65c96c6

[CL 21840975 by Robert Millar in ue5-main branch]
2022-09-07 00:26:06 -04:00
Jurre deBaare
3aaf723309 CTRL+Z/CTRL+Y doesn't undo/redo changes in checkboxes in Additional Meshes in Animation Sequence
#jira UE-140023
#fix add scoped transactions for affected settings, and make sure UPersonaOptions is marked as transactional
#rb Thomas.Sarkanen
#preflight 6315e13dda1671f99724bd23

[CL 21791152 by Jurre deBaare in ue5-main branch]
2022-09-05 08:12:29 -04:00
Max Chen
5b31358428 Sequencer: Allow reusing an animation asset when baking to it.
Added an argument to ExecuteNewAnimAsset, bAllowReplaceExisting, which when true will look for an existing asset and prompt the user whether to use that asset as opposed to calling create asset. When baking to an animation asset, this allows the user to bake to an existing animation asset. Previously, it would try to create the same named asset but would fail because the asset may be actively referenced.

#jira UE-160925
#preflight 62fe63843f75602b2f0655ea
#rb thomas.sarkanen, mike.zyracki

[CL 21459595 by Max Chen in ue5-main branch]
2022-08-19 12:50:34 -04:00
kriss gossart
0422ca7705 Skeletal Mesh - Replace the newly created GetSkeletalMesh function by GetSkeletalMeshAsset so it matches the setter SetSkeletalMeshAsset function (which itself couldn't be named SetSkeletalMesh due to the function already existing and doing something else).
#rb Josie.Yang
#preflight 62fa2afeae3edb54c979492e
#jira none

[CL 21385959 by kriss gossart in ue5-main branch]
2022-08-15 09:26:50 -04:00
Josie Yang
6b15506e58 Replace direct access to SkeletalMesh object from USkinnedMeshComponent with GetSkeletalMesh function
#rb kriss.gossart
#preflight 62aafc9ada0af39a4783930a

[CL 20686007 by Josie Yang in ue5-main branch]
2022-06-16 09:14:04 -04:00
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
Jurre deBaare
7db755f123 Removed OnStopEditingCurves delegate and behaviour from Persona module, this is now superseded with AnimDataModel notify callbacks instead
#misc fixed use after release crash
#jira none
#rb Thomas.Sarkanen
#preflight 627b8dc9b60dee4a43a33c0f

[CL 20136161 by Jurre deBaare in ue5-main branch]
2022-05-11 07:05:49 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Matt Peters
7ad238a806 AssetRegistry includes (Engine/Source): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270509a220f89f0ad573030

[CL 20016982 by Matt Peters in ue5-main branch]
2022-05-02 18:06:48 -04:00
thomas sarkanen
3f8fa9692b Converted a number of animation editor menus & toolbars to use tool menus
Also applied asset permissions to various UI sections

#rb Jurre.deBaare,Sara.Schvartzman
#preflight 6267d7dd272f4a558dbcdb6a

#ROBOMERGE-OWNER: thomas.sarkanen
#ROBOMERGE-AUTHOR: thomas.sarkanen
#ROBOMERGE-SOURCE: CL 19918869 via CL 19921093 via CL 19923159 via CL 19923181
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19926251 by thomas sarkanen in ue5-main branch]
2022-04-26 15:03:55 -04:00
nick brett
7e1eab27e2 [UE][Feature] RBAN Better Debug Draw - 2nd attempt
- Added Debug Visualization of physics bodies and constraints for RBAN nodes in AnimBP editor
- Added checkboxes to filter debug Visualization to Phat skeleton tree
- Created a new PhysicsAssetRenderSettings class that incorporates the debug rendering and filtering settings from Phat
- Created a new PhysicsAssetRenderUtilities namespace that incorporates the debug rendering and filtering code from Phat
- Synchronize debug visualization of physics bodies and constraints between Phat and AnimBP editors

oringinaly submitted as cl-19242421 but failed on non-unity build so backed out

#rb [at]Chris.Caulfield, [at]Thomas.Sarkanen, [at]Cedric.Caillaud
#preflight 6221e57d335298c3145112d1

#ROBOMERGE-OWNER: nick.brett
#ROBOMERGE-AUTHOR: nick.brett
#ROBOMERGE-SOURCE: CL 19283727 via CL 19295417 via CL 19304854 via CL 19304870
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19347122 by nick brett in ue5-main branch]
2022-03-10 21:02:14 -05:00