Commit Graph

489 Commits

Author SHA1 Message Date
Dave Belanger
1b0e9852e9 fix wrong copyright
#rb none
#jira none

[CL 15672369 by Dave Belanger in ue5-main branch]
2021-03-10 21:33:22 -04:00
Dave Belanger
d2f06b6d70 BPGC and WBPGC asset actions and icons
#rb Matt.Peters
#jira UE-109794

[CL 15671949 by Dave Belanger in ue5-main branch]
2021-03-10 21:05:00 -04:00
timothy daoust
e40f2495b4 Fix for bug where mirror data table does not appear in asset filter pop-out mirror
#jira UE-109981
#rb thomas.sarkanen

[CL 15637571 by timothy daoust in ue5-main branch]
2021-03-08 07:12:41 -04:00
Marc Audy
8f73cd7fa9 Merge UE5/Release-Engine-Staging @ 15630841 to UE5/Main
This represents UE4/Main @ 15601601

[CL 15631170 by Marc Audy in ue5-main branch]
2021-03-05 19:27:14 -04:00
timothy daoust
1d2811e0c0 New Animation Mirroring System:
+ UMirrorDataTable stores the bones / notifies / curves to mirror
	* Generates table based on FMirrorFindReplaceExpression in project settings
	* Can be used in any Animation Blueprint with a compatible skeleton
	* Support for self mirroring
	* Shared mirror axis
+ Project Settings for Mirroring Find & Replace Strings
+ FMirrorFindReplaceExpression
	* Find the mirrored name based on a prefix, suffix, or regular expression match
+ FAnimNode_Mirror
	* Inertialization support for blending between mirroring / unmirrored states over a configurable duration
	* Support for different MirrorDataTables (to support partial / full body mirroring)
+ Deprecated old mirroring system (FBoneMirrorExport) in SkeletalMesh

#rb Thomas.Sarkanen

[CL 15580895 by timothy daoust in ue5-main branch]
2021-03-03 08:23:59 -04:00
sebastian nordgren
519483964d Haptic Feedback * assets are now createable in the content browser.
#jira UE-109400

[CL 15558357 by sebastian nordgren in ue5-main branch]
2021-03-01 12:29:15 -04:00
sebastian nordgren
003f2c5da3 Haptic Feedback types are now createable in the Content Browser Miscellaneous category again.
#jira UE-109400
#review @jamie.dale

[CL 15556081 by sebastian nordgren in ue5-main branch]
2021-03-01 05:46:01 -04:00
justin hare
5f1caca88c Fixed issue where renaming certain assets causes soft reference issues, with special handling for GameMapsSettings: ensure redirectors are created for assets that are soft-referenced by CDOs when they are renamed. Enhanced warning message at time of renaming if any GameMapsSettings are affected. Added error at cook time if any of the GameMapsSettings maps/modes are still pointing to redirectors, as they will fail to load at runtime.
#jira UE-80948

[CL 15475421 by justin hare in ue5-main branch]
2021-02-19 16:15:20 -04:00
Marc Audy
9753392e2b Merge UE5/RES CL# 15462083 to UE5/Main
This represents UE4/Main @ 15414221

[CL 15463811 by Marc Audy in ue5-main branch]
2021-02-18 18:13:28 -04:00
michael noland
56320f6559 Editor: Add more context to the type column for save selected assets (for niagara, data assets, and data tables)
- Implemented GetDisplayNameFromAssetData for data assets and data tables to show the display name for their native parent class and row type respectively
#rb marc.audy

#ROBOMERGE-SOURCE: CL 15394113 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15394117 by michael noland in ue5-main branch]
2021-02-11 19:52:08 -04:00
julien lheureux
a460459eed Added possibility to get asset data from history, with a max fetch size (until we have a better solution)
Changed the way we associate shelved files with their local filename to facilitate mapping (perforce operations)
Implemented what was needed on the SCC side to support diff against shelve
Improved way we display object names for deleted & shelved files

#rb sebastien.lussier

[CL 15356101 by julien lheureux in ue5-main branch]
2021-02-08 09:36:20 -04:00
Marc Audy
cac1fe0019 Merge UE5/Release-Engine-Staging @ CL# 15299266 to UE5/Main
This represents UE4/Main @ CL# 15277572

[CL 15299962 by Marc Audy in ue5-main branch]
2021-02-03 14:57:28 -04:00
Shaun Kime
cc6bd81ef2 Moving Cascade particle systems to Misc category
#rb none

[CL 15260118 by Shaun Kime in ue5-main branch]
2021-01-29 01:02:36 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Jurre deBaare
f24003f082 Animation data MVC refactor
#jira UE-104234
#rb Thomas.Sarkanen, Martin.Wilson, Alexis.Matte, Michael.Zyracki

+ Introduced UAnimDataModel, this currently represents the source data for bone and curve animation. It contains:
    + Bone animation tracks (FBoneAnimationTrack)
        + Key data (coarse)
        + Name
        + Bone tree index
    + Curve data (FAnimationCurveData)
        + Float Curves
        + Transform Curves
    + Play length
    + Sampling rate
        + Used for deriving the expected number of keys/frames when combined with the PlayLength
    + Transient data for supporting backwards compatibility APIs
    + (Dynamic) delegate which broadcasts the mutation Notifies

+ Introduced UAnimDataController, this has sole authority over mutating data contained by UAnimDataModel
    + API functionality allows to transform the contained data in all ways currently expected in the engine.
        + Any mutation will add an undo/redo-able FChange object into the transaction buffer
            + FChangeTransactor helper object allows for keeping track of (compounded) FChange's and inserting them into GUndo
        + Broadcasts change notifies alongside a payload object containing details about the change
            + Interested systems/objects can register to these changes through UAnimDataModel::OnModelModified event
        + Almost all functionality is exposed to both Blueprint and Python scripting
    + Allows for opening 'Brackets', these define the beginning and end of a chain of mutations. Allowing anything registered to OnModelModified to halt responding to the notifies until the (top-level) bracket is closed
    + Undo/redo actions
        + Each mutation to the UAnimDataModel is covered by a 'Action' which is based of FChange and is used to insert a undo/redo-able operation into the transactions buffer

+ Introduced EAnimDataModelNotifType and per-notify payload types. These are used to update views, and any model derived data

+ Introduced FAnimationCurveIdentifier, exposed to scripting, this is used for referencing a curve by name and type when passed to the controller
    + Allows for targetting a specific RichCurve as part of a TransformCurve

+ Introduced FAnimationDataNotifyCollectorused for keeping track of which notifies of type EAnimDataModelNotifType are broadcasted between top-level EAnimDataModelNotifType::BracketOpened and EAnimDataModelNotifType::BracketClosed notifies

+ Added CanTransact to UEngine, returns whether or not a transaction can be made

+ Added UAnimCompositeBase::SetCompositeLength, used for runtime changing of play length value

+ Animation Sequence helpers, containing 'helper' functionality for both AnimSequence and AnimDataModel

* Animation Sequence Base
    + virtual PopulateModel, called during upgrade path for converting existing (legacy) data to the new UAnimDataModel data
    + virtual OnModelModified, registered to the Model's OnModified event to handle any Notifies and payloads
    + Added UAnimDataModel sub-object (editor only)
    + Added UAnimDataController instance (transient and editor only)
    + FAnimationDataNotifyCollector to keep track of model bracketed notifies
    * Deprecated
        * SetSequenceLength()
        * RefreshCurveData()
        * MarkRawDataAsModified()
        * RegisterOnAnimCurvesChanged()
        * UnregisterOnAnimCurvesChanged()
        * UnregisterOnAnimTrackCurvesChanged()
        * RegisterOnAnimTrackCurvesChanged()
        * Public access to RawCurveData

* Animation Sequence
    + Implements PopulateModel/OnModelModified for AnimationSequence related data
    + Added TargetFrameRate, currently locked to the initial sampling rate, but allows for resampling the UAnimDataModel data according to the set rate
    + Added NumberOfSampledKeys (editor only), populated by resampling process
    + Added NumberOfSampledFrames (editor only), populated by resampling process
    + Added ResampledAnimationTrackData (editor only and transient), populated by resampling process
    + Added bBlockCompressionRequests (editor only), used for blocking compression during automation tests
    * Deprecated
        * SetNumberOfSampledKeys()
        * MarkRawDataAsModified()
        * GetRawAnimationData()
        * GetAnimationTrackNames()
        * AddNewRawTrack()
        * GetRawTrackToSkeletonMapTable()
        * GetRawAnimationTrack()
        * GetRawAnimationTrack()
        * UpdateFrameRate()
        * ExtractBoneTransform()
        * CompressRawAnimData()
        * GetSkeletonIndexFromRawDataTrackIndex()
        * RecycleAnimSequence()
        * CleanAnimSequenceForImport()
        * CopyNotifies()
        * PostProcessSequence()
        * AddLoopingInterpolation()
        * RemoveAllTracks()
        * DoesContainTransformCurves()
        * InsertFramesToRawAnimData()
        * CropRawAnimData()
        * RemoveTrack()
        * InsertTrack()
        * ResizeSequence()
        * Non-editor access to GetUncompressedRawSize()
        * Non-editor access to GetApproxRawSize()
        * Public access to UpdateCompressedCurveName()
        * NumberOfKeys
        * SamplingFrameRate
        * TrackToSkeletonMapTable
        * RawAnimationData
        * AnimationTrackNames

* Animation Streamable
    * Model from source Sequence is duplicated rather than copying animation data

* Deprecated ERawCurveTrackTypes::RCT_Vector (marked as hidden)

+ Added automated test for
    + All script exposed controller functionality
    + Undo/redo actions
* Updated existing AnimSequence tests with deprecation and new expected data

+ Base data for compression is now populated from the 'resampled' version stored on the AnimSequence
+ Data cleanup and validation is now performed during compression
    + Track sanitization is now performed during compression (normalizing Quats and clamping near-zero values to zero)
    + Key reduction
    + Invalid track (missing bone from skeleton) removal
    + Curve name validation against skeleton
* Replaced RawCurves with Float curves
* Updated DDC key
- Removed all Guid generation related functionality (now part of the model)

* AnimSequenceBase model registers to AnimModel's notify event, used for refreshing the tracks
    * Replaces the in-place calling of RefreshTracks()
* All curve tracks now hold a const CurveType* rather than a CurveType*/& for introspection of its data
    + Any mutations now go through the controller API
    + Uses AnimationCurveIdentifier to set Transform's per-channel tracks
* RichCurveEditorModelNamed conformed to model/controller
    + Any modifications are applied to an temporary CurveType which always contains a copy of the const-ptr after any previous mutation
    + Registers to the outer AnimModel's notify event, used for updating the cached curve data
    + Registers to CurveModifiedDelegate, used for copying the temp curve data to the model using SetCurveKeys
        * Not-ideal but point that I got to for V1
        * Would be replaced with either refactoring FRichCurve to be MVC like, or by calling UAnimDataController functionality from an implementation of FRichCurveEditorModel

* Mark FChange overrides as final for swap/command change permutations
* Changed FCompoundChange GetDescription to return concatenation of all sub-changes
* Added GetDescription to FTransaction which returns the ToString() value of any contained FChange entries.
    * Entries in SUndoHistory tab now have a ToolTip showing the GetDescription() value
+ FChangeTransactor helper object allows for keeping track of (compounded) FChange's and inserting them into GUndo

* Deprecation handling, conforming code to new APIs and exposing structure/objects/properties to scripting
* Conforming AnimSequence importing from FBX to Model/Controller changes

[CL 15106211 by Jurre deBaare in ue5-main branch]
2021-01-15 06:41:11 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
graham wihlidal
9d82ba8ee4 Implemented support for right-click Nanite submenu on static mesh(es), with support for batch enable/disable functionality.
#rb brian.karis
#fyi michal.valient

[CL 15017876 by graham wihlidal in ue5-main branch]
2021-01-07 23:17:37 -04:00
Ben Ingram
72b567de9c During VT texture conversion, call UTexture::Modify() before making changes rather than after
This is correct usage, important now due to async texture changes
#rb none
#jira none

[CL 14831642 by Ben Ingram in ue5-main branch]
2020-12-01 18:20:19 -04:00
Alexis Matte
73d83c6a38 To protect the skeletalmesh when using async operations like build or re-import we deprecate all public member variables of USkeletalMesh class and create the necessary getter and setter. Those member will stay public but will be move to private in a future release.
Adding a public member to USkeletalMesh class is now prohibed since it can break asynchronous operations that will be added next to this submit.

#rb danny.couture
#jira UEENT-3936
#rnx

[CL 14812920 by Alexis Matte in ue5-main branch]
2020-11-25 11:17:08 -04:00
Marc Audy
a7f9391231 Merge UE5/Release-Engine-Staging @ 14811410 to UE5/Main
This represents UE4/Main @ 14768117

For ReleaseObjectVersion.h
#lockdown Marcus.Wassmer

[CL 14811440 by Marc Audy in ue5-main branch]
2020-11-24 18:42:39 -04:00
geoff evans
3576e505bf Add asset file path length to content browser tooltip
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]
2020-11-19 17:21:15 -04:00
Patrick Enfedaque
d04d0965c0 Packed Level Instance MVP (based on SPMeshPacker)
- supports packing source level MeshComponents (SMC,ISM,HISM) into a single actor APackedLevelInstance.
- supports recursive packing of source LevelInstance's
- ability to pack result into an actor blueprint
- build menu allows rebuilding all loaded packed level instances (no dependency tracking)

#rb richard.malo

[CL 14751674 by Patrick Enfedaque in ue5-main branch]
2020-11-16 08:50:22 -04:00
Alexis Matte
786b0446b7 Make sure the Fbx parser have the fbx sdk scene loaded all the time the translator is active.
#jira none
#rb richard.talbotwatkin

[CL 14666644 by Alexis Matte in ue5-main branch]
2020-11-05 13:48:16 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
john vanderburg
2b5aab3d06 Added an animation editor option to force opening animation assets inside a new tab.
This is disabled on default.

#jira UE-100968
#review-14475034 @Aaron.Cox, @Thomas.Sarkanen
#fyi Aaron.Cox, Laurent.Delayen

[CL 14501873 by john vanderburg in ue5-main branch]
2020-10-15 11:18:43 -04:00