Commit Graph

217 Commits

Author SHA1 Message Date
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
Max Chen
0167d4ea0f Sequencer: MVVM2 branch and Layer Bars
Copying //Tasks/UE5/Dev-SequencerMVVM2 to Main (//UE5/Main) @20364093

#preflight 628866dfb94f739b152c1e29
#preflight 628866e4585e8f793ee80943
#rb ludovic.chabant, andrew.rodham
#fyi ludovic.chabant, andrew.rodham, andrew.porter
#jira UE-105322

[CL 20364493 by Max Chen in ue5-main branch]
2022-05-25 10:39:33 -04:00
robert manuszewski
f8a812a32f Converting hardcoded short class/enum names to pathnames ahead of ANY_PACKAGE removal
#rb trivial
#jira UE-99463
#preflight 6288fd998828ea88c8aef3d0

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20314896 via CL 20314897 via CL 20314903 via CL 20314904
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)

[CL 20315214 by robert manuszewski in ue5-main branch]
2022-05-22 10:30:02 -04:00
Max Chen
d2ea33ba30 Sequencer: Add asterisk to the Sequencer tab if the asset is dirty (similar to level editor)
#jira UE-150643
#preflight 627e7e076d7654cc68a9b195
#rb andrew.rodham

[CL 20255185 by Max Chen in ue5-main branch]
2022-05-17 22:18:24 -04:00
lucas dower
3ab4f1d404 Organise anim assets into subcategories and add or fix tooltips
#jira UE-139412
#rb thomas.sarkanen
#preflight 627d322462656a7b7e31a679

[CL 20179330 by lucas dower in ue5-main branch]
2022-05-13 07:12:03 -04:00
max chen
5edfd997f5 Sequencer: Convert main toolbar to Tool Menus
#rb rex.hill
#preflight 627411c2fd59d6606efd7030

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 20075860 via CL 20079209 via CL 20079555 via CL 20079938
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20106429 by max chen in ue5-main branch]
2022-05-09 13:55:16 -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
max chen
bf7eb82263 Sequencer/Valkyrie: Track class permissions for what tracks can be added to movie scene.
Event Track and ConsoleVariable Track are disabled. Spawn Track is also disabled, which means you can't create spawnables in Valkyrie

Added FIsTrackClassAllowed to MovieScene which is bound in MovieSceneToolsModule to look at the class viewer rules.
Fix logic in MediaTrackEditor and LiveLinkPropertyTrackEditor which was always returning Supported for level sequences.

#preflight 6270563191629533ec2b6f79
#rb andrew.rodham

#ROBOMERGE-OWNER: max.chen
#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 20031346 via CL 20033139 via CL 20033318 via CL 20033325
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20035188 by max chen in ue5-main branch]
2022-05-03 19:50:52 -04:00
Matt Peters
d64cf41728 AssetRegistry includes (Engine Plugins): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270563191629533ec2b6f6e

[CL 20017756 by Matt Peters in ue5-main branch]
2022-05-02 18:59:38 -04:00
christopher waters
99ec480304 Cleaning up dependencies with select heavy-hitter headers in MovieScene and addressing the fallout from that.
MovieScene was targeted as its headers were at the top of profiling ShooterGame builds.
Tested with -disableunity and -nopch. Current timings take ShooterGameEditor rebuild from 480s to 440s

#jira none
#rb josh.adams
#preflight 624c97a63661c8f04a191889

[CL 19634779 by christopher waters in ue5-main branch]
2022-04-05 18:58:45 -04:00
Richard Malo
296dd8a20c - Actor Editor Context : System can register themselves to the ActorEditorContextSubsystem and provide the necessary to apply their context value to newly created actors and optionally show a widget in the viewport.
- Refactored viewport's current level combobox and added "current data layers" in data layer outliner and "current folder" in world outliner to use this system.
- Can optionally be hidden from viewport using advanced flag in ULevelEditorViewportSettings.
#robomerge FNNC
#rb patrick.enfedaque
#preflight 6227604a7077eb04cf696c33

[CL 19302351 by Richard Malo in ue5-main branch]
2022-03-08 09:40:27 -05:00
David Hibbitts
0ae5325f53 Marked up LevelSequenceEditorSubsystem with _API macro to allow for usage outside of the module
#rb Mike.Zyracki
#preflight 6217da74436d9307baca0c49

[CL 19121081 by David Hibbitts in ue5-main branch]
2022-02-24 14:27:59 -05:00
max chen
8685aba031 Sequencer: Check for valid root component when converting to spawnable
#jira UE-141213
#rb mike.zyracki
#preflight 61fd5175db09cf39bef0c3b4
#lockdown simon.tourangeou

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18865593 in //UE5/Release-5.0/... via CL 18865596 via CL 18868341
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18868363 by max chen in ue5-main branch]
2022-02-04 13:42:55 -05:00
francis hurteau
5714cca54f Reduced runtime UPackage size from 176b to 144b or 120b when stripping deprecated properties
This should saves around ~1.5 Mb to ~3 Mb at runtime with ~50000 packages

Added a new core define UE_STRIP_DEPRECATED_PROPERTIES that could be used to wrap deprecated properties and strip them to regain memory when a projects becomes compliant. this can be set in the project target file
Deprecated most public properties from UPackage and created accessors for them

#rb PJ.Kack
#jira UE-138957
#preflight 61f17a6f7266f4e79bd62601

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 18738937 in //UE5/Release-5.0/... via CL 18739524 via CL 18741373
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18742135 by francis hurteau in ue5-main branch]
2022-01-26 15:00:04 -05:00
ben woodhouse
274a1e3734 Non-unity fix
#ROBOMERGE-AUTHOR: ben.woodhouse
#ROBOMERGE-SOURCE: CL 18728275 via CL 18728290 via CL 18728302 via CL 18729122 via CL 18729287
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18729309 by ben woodhouse in ue5-main branch]
2022-01-25 17:33:59 -05:00
max chen
1631bfe236 Sequencer: Follow up to 18551247 - Assign Actor missing scene outliner chooser
#rb matt.hoffman
#preflight 61f073d8716bb9c66a378e98

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18729032 in //UE5/Release-5.0/... via CL 18729041 via CL 18729132
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18729155 by max chen in ue5-main branch]
2022-01-25 17:25:42 -05:00
max chen
2e131cf647 Sequencer: Fix non unity
#jira UE-140148
#preflight 61eeeaa2ef289ffc6df0c8f5
#rb matt.hoffman

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18723293 in //UE5/Release-5.0/... via CL 18723309 via CL 18723445
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18723484 by max chen in ue5-main branch]
2022-01-25 11:28:07 -05:00
max chen
d6bd0d1e2f Sequencer: Fix static analysis
#jira UE-138955
#preflight 61eeeaa2ef289ffc6df0c8f5
#rb matt.hoffman

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18720274 in //UE5/Release-5.0/... via CL 18720284 via CL 18720329
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18720331 by max chen in ue5-main branch]
2022-01-25 02:07:38 -05:00
max chen
7f08fcd048 Sequencer: Add rebind to component
#jira UE-138955
#preflight 61eeeaa2ef289ffc6df0c8f5
#rb matt.hoffman

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18718562 in //UE5/Release-5.0/... via CL 18718564 via CL 18718634
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18718641 by max chen in ue5-main branch]
2022-01-24 20:50:10 -05:00
matt johnson
97a8b671a4 LevelSequenceEditor: add command to snap sections to the timeline using their source timecode
This adds a command to the action menu in Sequencer to snap the selected movie
scene sections to the position in the timeline that matches their source timecode.
This can be used to quickly place sections in the timeline in their correct positions
according to their "TimecodeSource" property. Any section with a default value
for "TimecodeSource" (i.e. at timecode "00:00:00:00") will not be modified.

As part of this change, the existing "Sync Sections using Source Timecode" command
was moved out of Sequencer itself and into the LevelSequenceEditorSubsystem,
since it is closely related to the newly added command. Doing so makes both of these
functions accessible to Blueprint and Python. Note though that this means that both
commands are now only available in the Sequencer actions menu, and not in the
"Edit" context menu when right-clicking on a movie scene section.

Finally, this also fixes an issue in the "Sync Sections using Source Timecode" command
where any trimming at the start of the section was not being accounted for, resulting
in incorrect results when syncing trimmed sections.

#rb max.chen
#preflight 61e8ac4a1000e8c59a8735a5

#ROBOMERGE-AUTHOR: matt.johnson
#ROBOMERGE-SOURCE: CL 18669911 in //UE5/Release-5.0/... via CL 18669933 via CL 18669943
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v901-18665521)

[CL 18669953 by matt johnson in ue5-main branch]
2022-01-19 20:07:53 -05:00
max chen
6538144481 Sequencer: Force evaluate when resetting position before evaluating bake transform
#jira UE-139471
#rb mike.zyracki
#preflight 61e78d88f35b35a70f18493c

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18654820 in //UE5/Release-5.0/... via CL 18654832 via CL 18654839
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18654854 by max chen in ue5-main branch]
2022-01-18 23:19:31 -05:00
max chen
e7fe1f3a99 Sequencer: Move AssignActor to LevelSequenceEditorSubSystem and expose AddActorsToBinding, ReplaceBindingWithActors, RemoveActorsFromBinding, RemoveAllBindings, RemoveInvalidBindings to python/blueprints
FSequencer::AddActorsToBinding, FSEquencer::ReplaceBindingWithActors, FSequencer::RemoveActorsFromBinding can be removed once PasteObjectBindings is moved to LevelSequenceEditorSubsystem for exposing copy/paste to python/blueprints.

#preflight 61d880e8430de36baa5cc5fe
#rb matt.hoffman

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18551247 in //UE5/Release-5.0/... via CL 18551256
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18551281 by max chen in ue5-release-engine-test branch]
2022-01-07 17:13:39 -05:00
max chen
4c7737d06c Sequencer: Expose Track Filters to Python/Blueprints.
SetTrackFilterEnabled
IsTrackFilterEnabled
GetTrackFilterNames

#jira UE-119056
#preflight 61bae1dbdc58e54b332b4d23
#rb mike.zyracki

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18536473 in //UE5/Release-5.0/... via CL 18536506
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18536527 by max chen in ue5-release-engine-test branch]
2022-01-06 16:59:44 -05:00
max chen
502762fc64 Sequencer: Check for valid spawned actor instance before dereferencing. This fixes a crash if selecting an actor base class.
#jira UE-138178
#rb ludovic.chabant
#preflight 61d488c3d17842e547a9eb1b

#ROBOMERGE-AUTHOR: max.chen
#ROBOMERGE-SOURCE: CL 18509858 in //UE5/Release-5.0/... via CL 18509905
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18509958 by max chen in ue5-release-engine-test branch]
2022-01-04 13:03:23 -05:00
Marc Audy
f512a6d461 Eliminate whitespace only differences between Release-Engine-Staging and Release-Engine-Test
#fyi Aurel.Cordonnier

[CL 18448630 by Marc Audy in ue5-release-engine-test branch]
2021-12-13 15:59:48 -05:00