Now that the TimecodeSource property exists only on UMovieSceneSections rather
than on UMovieScenes, this moves the definition of the struct to the header file for
UMovieSceneSection.
#rb max.chen
#preflight 61e9f8cb8876205adc27f90f
#ROBOMERGE-AUTHOR: matt.johnson
#ROBOMERGE-SOURCE: CL 18691411 in //UE5/Release-5.0/... via CL 18691437 via CL 18691451
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18691503 by matt johnson in ue5-main branch]
- This change introduces two separate types for dealing with binding IDs in different spaces explicitly: FFixedObjectBindingID and FRelativeObjectBindingID. The latter is portable if the sequence it was created within is nested inside another foreign hierarchy.
- FMovieSceneObjectBindingID remains, and is able to represent both of the new types, but should only be used for serialization to ensure compatability and consistency with editor tools that operate in different spaces.
- Any manual ResolveLocalToRoot or GetSequenceID processing has now been replaced with the new ResolveBoundObjects API, which provides a less error-prone way of resolving bindings that live in different sequences
#jira UE-74450
#rb Max.Chen, Ludovic.Chabant
[CL 14915667 by Andrew Rodham in ue5-main branch]
#rnx
#rb none
#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870586 by ryan durand in Main branch]
[at]Ryan.Gerleve, [at]Brian.Bekich
#rb None
#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 9290108 via CL 9290249
#ROBOMERGE-BOT: (v452-9288972)
[CL 9290520 by jon nabozny in Main branch]
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 4073383 by Patrick.Boutot
[AJA] Set base timecode for AJA TimecodeProvider
Change 4075631 by Patrick.Boutot
Change icon for TimecodeSynchronizer.
Update TimecodeSynchronizer with the new AJA delayed open sources.
Add TimecodeProvider to TimecodeSynchronizer. Can now sync with TimecodeProvider or a master.
Make sure the source are ready before viewing them.
Remove PreRoll command.
Change 4077328 by JeanMichel.Dignard
Fixed SoftObjectPtr/Paths becoming invalid when saving a new world since it's being moved from /Temp/Untitled to its own package.
#jira UEENT-1423
Change 4077338 by Rex.Hill
USD plugin updated to v8.4 with python support
Change 4079063 by Rex.Hill
USD sdk recompiled as vs2015 targeting older version of CRT, also dependency added for PythonScriptPlugin
Change 4079911 by Rex.Hill
USD pyd files recompiled
Change 4080058 by Rex.Hill
Fix usd plugin loading, added missing libtrace.dll
Change 4080376 by Matt.Hoffman
Improvements to Sequence Recorder's public API to expose more functionality for third parties.
Change 4084984 by Matt.Hoffman
Sequence Recorder can now set a global time dilation when recording starts, optionally ignoring the dilation when recording keys. This is useful for recording objects in your scene that move too fast to track with a camera but still ending up with the same length recording in the end.
#jira UESP-670
Change 4086688 by Matt.Hoffman
Exposes getting and setting keys from sequencer sections via the scripting layer. Examples for how to work with Python and key data can be found in /Plugins/MovieScene/SequencerScripting/Content/Python in the form of "sequencer_examples.py" and "sequencer_key_examples.py". Documentation on how to use these examples is included in the python file.
#jira UESP-547
Change 4088904 by Max.Chen
Sequence Recorder: Set actor tags as unique
Change 4089176 by Max.Chen
Sequence Recorder: Add option to record to the target level sequence playback range length.
Change 4089180 by Max.Chen
Sequence Recorder: Add protection agains null movie scene sections
Change 4089205 by Max.Chen
Sequence Recorder: Save recorded audio files if auto save is on.
#jira UESP-660
Change 4089206 by Max.Chen
Sequencer: When importing fbx, if a camera is created, force mapping to be by name matching only so that other nodes in the fbx file do not get mapped onto the newly created camera.
#jira UE-59347
Change 4089214 by Max.Chen
Sequence Recorder: Add support for looping/rolling takes
#jira UESP-658
Change 4089280 by Max.Chen
Sequence Recorder: Added support to specify properties from actor classes (camera rig rail - current position on rail)
Change 4093824 by Andrew.Rodham
Editor: Added option to class pickers to force use of class Display Names
Change 4093826 by Andrew.Rodham
Removed implicit gamma to linear conversion from EXR writer
- This was only implemented for exr data that was supplied as 8 bits per channel (ie. uint8), but there is no way of communicating with the Image Writer API to tell it whether you want it to do that conversion. This code is too low level to be making assumptions about what color-space the data is in.
- This ensures that R8G8B8A8 render targets exported as EXR are exported as-is without any modification
#jira UESP-545
Change 4093830 by Andrew.Rodham
Fixed shutdown crash when destroying a media player that was still playing
Change 4093831 by Andrew.Rodham
Fixed exception handling in png image wrapper
Change 4093833 by Andrew.Rodham
Slate: Fixed not being able to set a hyperlink on notifications with unbound attributes that had explicit values set
Change 4093841 by Andrew.Rodham
Added a utility struct for dealing with editor actor layers from within Blueprints
Change 4093867 by Andrew.Rodham
Sequencer: Added the ability to implement custom capture protocols for movie scene captures
- Converted capture protocol settings and instances to be single UObjects. This unifies the two concepts, and allows for Blueprint implementations.
- Removed capture protocol registry since it is no longer required.
- Removed FCaptureProtocolID in favor of class discovery at runtime.
- Added new module "ImageWriteQueue", responsible for asynchronously managing a queue of image file write operations.
- Added new capture protocol for capturing final pixels to EXR (including burn-ins)
- Added a new BP function, ExportToDisk, accessible on all UTexture properties for writing texture and render target data to image files
- New global BP nodes for querying movie capture status: IsCaptureInProgress, FindCaptureProtocol
- Removed Flush On Draw functionality from viewports and frame grabber since it is unnecessary.
#jira UESP-545
Change 4094239 by Rex.Hill
Export sequence to usd
#jira UESP-563
Change 4094393 by Andrew.Rodham
Renamed references of 'BufferName' to 'StreamName' for user defined capture protocols
Change 4094622 by Patrick.Boutot
Add MediaFrameworkUtilitites plugin.
Add MediaBundle. An asset that create a MediaPlayer, MediaSource, MediaTexture and MaterialInstance.
Add MediaBundleActor. Can auto play a MediaBundle when click & drag in the viewport.
Add the Media category in placement mode.
Add flag on the MediaPlayer that prevent it from closing when PIE is started or closed.
Change 4094673 by Anousack.Kitisa
Created widget to display metadata as list view of tags/values.
#jira UEENT-1296
Change 4094795 by Simon.Therriault
MediaFrameworkUtilities
- Adding default media texture for default media bundle material
- Changed default material to unlit
Change 4094867 by Rex.Hill
Usd sequence exporter camera rotation corrected
Change 4096426 by JeanLuc.Corenthin
- Fixed logic of FLayoutUV::FindCharts to properly extract the list of triangles based on a mesh description.
- Fixed logic in FMeshDescriptionOperations::ConverToRawMesh & FMeshDescriptionOperations::ConvertHardEdgesToSmoothGroup to take in account the fact that the arrays are sparse arrays
- Fixed logic in FQuadricSimplifierMeshReduction::ReduceMeshDescription which wrongly assumed that number of vertex instances equals three times the number of triangles.
- Added early-out in UMeshDescription::ComputePolygonTriangulation when perimeter has 3 vertex indices
- Changed version of static mesh and mesh description
- Fixed issue with mismatching attribute set when generating LOD meshes
#jira UEENT-887, UE-59474, UE-59471
Change 4097101 by Patrick.Boutot
Remove warning in PropertyEditorClass when trying to load the "None" class.
Change 4097443 by Rex.Hill
USD export bake keys
Change 4097468 by Patrick.Boutot
Edit and initialize the timecode provider of the editor.
Change 4097479 by Anousack.Kitisa
Added support for commandlet and unattended script modes to Plugin Warden.
#jira UE-57333
Change 4097578 by Rex.Hill
USD export tweaks
Change 4098257 by Simon.Therriault
GarbageMatteCaptureComponent
- Adding spawned actor tracking to be able to use GarbageMatteActor spawned in editor.
Change 4100072 by Jamie.Dale
Updated wrapped enums to be more consistent with native Python enums
- Wrapped enums now generate values that are instances of the enum type itself, containing a name and value field (like native Python enums).
- Wrapped enums are now strongly typed and do not allow implicit conversion from numbers (explicit casting is available, but throws if the value is unknown).
- Wrapped enum entries may be compared against numbers (even numbers that don't have valid values) via the == and != operators (like IntEnum in Python).
- Wrapped enums may now be iterated (like native Python enums).
- Wrapped enums now return a length based on their number of entries (like native Python enums).
- ScriptName meta-data can now be used with enum entries.
Change 4100255 by Patrick.Boutot
[MediaBundle] Modify the base shader to support "failed texture"
Change 4103838 by Simon.Therriault
MR Garbage Matte Component
- Adding FocalDriver interface to be able to poll focal information from outside (cinecamera). Could be updated to be event driven.
Change 4115616 by Rex.Hill
USD Exporter now exposed to UI
Change 4116333 by Simon.Therriault
MediaBundle
- Updated default media bundle to include lens distortion and chromakeying
- Added possibility to spawn material editor for MediaBundle inner material
- Fix for inner objects flags preventing asset deletion
- Fix for CloseMedia not being called when changing map
Lens Distortion
- Fix for not being able to generate a Identity lens displacement map
Change 4117952 by Rex.Hill
Expose OpenEditorForAssets to python
Change 4118498 by Rex.Hill
Sequencer USD export can now export properties of actors in levels
Change 4118515 by Rex.Hill
Update sequencer export task comment
Change 4118706 by Rex.Hill
Sequencer USD updates
Change 4118968 by Rex.Hill
Sequencer USD export now supports visibility
Change 4119702 by Simon.Therriault
MediaBundle
- Fix crash when changing MediaBundle on Actor multiple times.
- Fix crash when Undoing after placing a MediaBundle and pressing Stop then Undo.
- Fixed bad reference count in MediaBundle when undo/redo of MediaBundle setting changed on MediaBundleActor
- Added PostEditChange after setting MaterialProperty to fix potential propagation.
Change 4120060 by Patrick.Boutot
Fix typo for TimecodeProviderClassName.
Add "Config required restart"
Add a button to reapply the CustomTimeStep or TimecodeProvider
Change 4122062 by Krzysztof.Narkowicz
Fixed movie burnout fixed timestep. Engine didn't use a fixed time step due to a following bug:
1. UAutomatedLevelSequenceCapture::Initialize calls UMovieSceneCapture::Initialize.
2. UMovieSceneCapture::Initialize creates FRealTimeCaptureStrategy and calls CaptureStrategy->OnInitialize().
3. UAutomatedLevelSequenceCapture::Initialize changes CaptureStrategy to FFixedTimeStepCaptureStrategy, but no one calls CaptureStrategy->OnInitialize(); after that and this function is required to set the fixed time step.
4. Result: movies are burned out with variable time step, causing different inconsistencies between frames, settings and HW configurations.
#jira none
Change 4122236 by Anousack.Kitisa
Made the "Import Into Level..." File menu action follow the EditorImport flag of a SceneImportFactory.
#jira UE-57612
#jira UEENT-762
Change 4122588 by Rex.Hill
Sequencer Export USD lights now supported
Change 4122822 by JeanMichel.Dignard
Fix for UV packing FlipX. Don't flip the empty columns at the end since they are always expected to be on the right side. The same was already done for FlipY.
#jira UE-56664
Change 4123009 by JeanMichel.Dignard
Copied fixes from MeshUtilities LayoutUV to MeshDescription LayoutUV
Change 4123517 by JeanLuc.Corenthin
Fixed crash when running cooked game crash with asset imported from datasmith
#jira UE-60173
Change 4124569 by Patrick.Boutot
[AJA]
When the CustomTimeStep & TimecodeProvider signal is lost in the editor (not in PIE), try to re-synchronize every second.
Change 4126421 by Max.Chen
Sequencer: Add the ability to switch the takes of all the selected shots/subsections.
#jira UESP-761
Change 4133010 by Simon.Therriault
MediaBundle
- Made assets in the bundle visible in the content browser (different package per asset) and updated to support duplication correctly
- Quick fix for MaterialDynamicInstance garbage matte parameter not going back to default value when cleared.
- Added looping option on the bundle
Keyer and lens materials
- Renamed some parameter groups to Keyer_XX
Change 4135728 by Rex.Hill
MovieSceneCapture crash fix when iteration on classes defined in python
Change 4135732 by Rex.Hill
Sequencer scripting: expose get playback range, sub sequence get sequence
Change 4135734 by Rex.Hill
USD python code refactored
Change 4136017 by Matt.Hoffman
Fixes FrameNumber nodes tripping an ensure when using them via Blueprints and fixes FrameNumbers & friends not being properly breakable in BP.
#jira UE-60188
Change 4147959 by Patrick.Boutot
Media Output Architecture. Support 8bits & 10bits color. Capture the buffer as is with the correct pixel format and the corredt target size.
Change 4147962 by Patrick.Boutot
Remove AjaMediaViewportOutput && AjaMediaViewportOutputImpl.
Refactor AjaMediaOutput to extend MediaOutput.
Refactor AjaMediaGrameGrabberProtocol to use AjaMediaCapture.
Create AjaMediaCapture.
Change 4148395 by Rex.Hill
USD python code cleanup
Change 4152901 by Rex.Hill
Fix crash when recompiling blueprint or script class that serializes an object reference manually
Change 4152906 by Rex.Hill
USD level import/export exposed to UI
Change 4152956 by Rex.Hill
Rename unreal_usd to usd_unreal to avoid future module name conflicts
Change 4153331 by Rex.Hill
Simplify USD attribute definitions
Change 4155472 by Rex.Hill
USD level import now handles cameras and lights
Change 4155832 by Patrick.Boutot
Fix Packaging for MediaFrameworkUtilities
Fix MediaPlayer that crash on close when the engine is closing.
Change 4156020 by Mike.Zyracki
LIVE LINK Sequencer Recording and Playback
#jira UESP-714
#jira UESP-715
Support for Live Link Recording/Playback with Sequencer.
Basically if we see a MotionController controlled by a LiveLink Subject or a LiveLink Component on a Actor we create a LiveLinkTrack for it that will record raw sequencer data into. We currently do that at the end of recording but will investigate saving it as we record.
For Playback we create a Live Link Subject per recorded track and push up interpolated data per Engine Tick on Evaluate. We need to see if we need to send out raw data but that's complicated due to the fact that sequencer time may not be sequential but random,
Moved FLiveLinkTimeFrame to LiveLinkTypes so we can grab raw data. Added functions to LiveLinkClient/Subject to get raw data so we dont' need to do expensive searches.
Also changed that code so that we can only save the LiveLinkData when specified. We decided to have the sequencer own saving of the live link data so we explicilty turn on saving when we start to record and then turn if off at the end. Without this it's possible to easily run out of memory while LiveLink records.
In order to record LiveLinkComponents under Actors we had to change ActorRecording to record ActorComponents and not jus SceneComponents. Not sure of any drawbacks with this but it seems to work well. Had to make sure we stll keeped attach/parent/child logic when recording.
Change 4158488 by Rex.Hill
USD scene import/export now uses UsdLux lights
Change 4158742 by Rex.Hill
USD: Add test for level export and import
Change 4161645 by Patrick.Boutot
Update MediaRecorder to use the ImageWriteQueue.
Add flag in IImageWriteQueue.Enqueue to prevent block if the queue is full.
Change 4161651 by Patrick.Boutot
Modify MediaCompositing to use an existing MediaPlayer
Change 4161657 by Patrick.Boutot
Extend the SequenceRecorder to support additional object to record from other plugins.
Add SequenceRecorder for MediaPlayer. Will record every frame to disk that the MediaPlayer produce.
Change 4162699 by Rex.Hill
USD export sequence updates
Change 4163138 by Rex.Hill
USD sequence export test added
Change 4163426 by Mike.Zyracki
Fix for Curve Names being kept and AutoSetting Tangents on Live Link Recording
Change 4165714 by Patrick.Boutot
[MediaCapture]
Remove color box that tell the status of the MediaCapture.
Add MediaCapture's name and use an image to represent the status.
Use a ScrollBox around the "preview" output.
Can select any actors.
Only show the selectable camera grid when there is more than one camera.
Change 4166652 by Rex.Hill
Expose SetMobility to scripting
Change 4167292 by Mike.Zyracki
Make sure we call Finalize Evaluation when closing or deleting the Sequencer. This will make sure TearDown is called on sections which fixes issues with LiveLink Sources not getting deleted and probably also issues with MovieScenePlayers not getting released correctly.
Also includes addition to show the SubjectName next to the Sequencer Source in the LiveLinkClient UI.
Change 4170578 by Rex.Hill
PackageTools exposed to scripting
Change 4170619 by Rex.Hill
Fix ReversePolygonFacing crash
Change 4170621 by Rex.Hill
USD mesh import can now be given list of individual meshes
Change 4172495 by Matt.Hoffman
Fixes some flipped logic in Sequencer Media Track that was preventing it from working as expected.
Slightly simplifies the logic on setting up movie data, and ensures that the external movie player has a callback registered so that SeekTo calls will work. Makes it so that you can specify your own sound component with an external media player as a media player can have multiple sound components listening to it. Adds support for flagging the media player to loop to help cue some media sources like EXR to handle loop points better.
#jira None
Change 4173387 by Jon.Nabozny
Bookmark usability and extensibility improvements
Change 4173755 by Rex.Hill
PackageTools namespace deprecation
Change 4181799 by Patrick.Boutot
Fix precesion error when importing a camera switcher in sequencer
#jira UE-61212
Change 4184435 by Patrick.Boutot
Only show the MediaCapture tab spawner in the level editor.
Make sure the Material used to draw the render target is GCed.
Change 4195803 by Patrick.Boutot
Warn user if the AJA CustomTimeStep is used with VSync enabled.
Change 4195866 by Patrick.Boutot
Remove mention of CharBGR10A2 in AJA. The feature is not yet ready.
Change 4196059 by Rex.Hill
Fix linux compile due to a .cpp including BookMarkBase.h instead of BookmarkBase.h
Change 4196380 by Patrick.Boutot
MediaCapture capture the backbuffer when the Viewport don't use an internal texture.
#jira UE-61601
Change 4199378 by Patrick.Boutot
For MediaFramework, add support for 10bits RGB texture
Change 4199380 by Patrick.Boutot
[AJA] Add support for 10bits RGB texture in input
Fix interlaced format that wasn't using the proper Stride value.
Change 4200359 by Jamie.Dale
Renamed some "K2_" prefixed functions for Python
Change 4203016 by Max.Chen
Sequencer: Add movie scene locking/read only.
Fixed a few bugs with locked sections - shouldn't be able to create or move keys on locked sections
#jira UESP-867
Change 4203018 by Max.Chen
Sequencer: Test for movie scene read only before calling modify/transactions.
#jira UESP-867
Change 4203622 by Simon.Therriault
Bringing Aja MediaOutput MediaMode fix from Release 4.20
Change 4204895 by Rex.Hill
Expose several file path functions to scripting
Change 4206747 by Rex.Hill
USD level import and export updates
Change 4206783 by Rex.Hill
USD updates
Change 4207021 by Rex.Hill
USD, fix rotation on level import when there is non-uniform scale
Change 4207414 by Rex.Hill
USD import static mesh material improvements
Change 4209733 by Patrick.Boutot
Change the log time to use the current frame Timecode
#jira UEENT-1107
Change 4209738 by Patrick.Boutot
Option to automatically try to reopen the MediaSource again if an error is detected
Change 4210385 by Max.Chen
Sequencer: Fix CurrentShot LocalTime computation by using sequence time in playback resolution to compute the local shot time.
Also, fixed the burnin asset so that CurrentShotLocalTime is hooked up to ShotFrame instead of MasterTime.
This fixes a bug where the burnin's {ShotFrame} is not reporting the local shot frame number.
#jira UE-61728
Change 4219824 by Patrick.Boutot
Use the correct EditorCondition for property MaxNumAncillaryFrameBuffe
Change 4220706 by Louise.Rasmussen
Sequencer: Syncronizes Sections using Source Timecode Relative to the first Selected Section
#JIRA UESP-826
Change 4220708 by Louise.Rasmussen
Sequencer: Adds SourceTimecode option to the Render Movie Settings Burn In
#JIRA UESP-826
Change 4226970 by Patrick.Boutot
Add a Timecode widget, TimecodeProvider widget and a TimecodeProvider Tab
Change 4227333 by Rex.Hill
USD Sequencer export now supports deltas
Change 4227455 by Matt.Hoffman
Adds support to the Audio Mixer Submix to pause and resume a recording.
#jira UESEQ-77
Change 4230963 by Patrick.Boutot
Make the namespace an import option
Change 4234208 by Jon.Nabozny
Fixed crash when 5 or more LiveLink sources were connected at the same time
Change 4234273 by Jon.Nabozny
Add methods in FApp to get the current Timecode FrameRate.
Change 4237170 by Simon.Therriault
MediaCapture
Fix for MediaCapture panel not working in PIE
Change 4243758 by Andrew.Rodham
It's now possible to resolve pixel data from a render target whose texture resource is still pending creation
Change 4244790 by Matt.Hoffman
This adds experimental support to Sequencer's Render to Movie for exporting audio via rendering a second pass.
This requires the new audio mixer (launch editor with "-audiomixer") and currently supports exporting to .wav. The second pass disables rendering in the Viewport and disables capturing frames during this pass which removes the overhead caused by rendering the scene. Complex scenes still evaluate the sequence which may impact performance in complex situations (such as the Fortnite Launch Trailer).
Current Limitations:
Requires the new audio mixer ("-audiomixer")
The second pass must acheive real time framerates. The audio engine is only built to handle real time situations (due to the high precision needed, gotten via the platform clock) so any drops in engine framerate during the second pass will cause a desync of the audio (as there will be more samples captured than frames of video).
The editor has significant overhead which often prevents achieving consistent real-time rates. Using "Capture in New Process" alleviates this issue, even without closing the Editor.
Audio has been enabled for both image capture and audio capture passes, which means stuttery audio now plays back during image capture. Attempts to alleviate this issue ended up conflicting with some editor code that forces the audio multiplier to 1.0 each Tick(), so audio has to play on both image and audio passes. Forces background audio (otherwise your output audio wav will be blank!) when app is not in focus, though users should leave the app in focus for best performance.
#jira UESEQ-77, UESP-669
Change 4246443 by Simon.Tourangeau
Remove Beta flag from nDisplay plugin
#jira UEENT-1716
Change 4246480 by Simon.Tourangeau
Fix nDisplay plugin icon
#jira UEENT-1715
Change 4246571 by Simon.Tourangeau
Merging Lauren's VR Editor fixes
4085915 Gamma correction fixes for VR Mode Content Browser icons and camera previews
4087955 Adding a third looping option to the Sequencer Radial Menu. Selecting the Looping option now cycles through No Looping > Loop All > Loop Range
4089914 Adding set start/end range buttons to radial menu
4090502 Fixing sequencer looping not being set correctly
4092824 Cameras are now visible in VR Mode - interim implementation until Game Mode works entirely
4095161 Fix for opening a sequence blocking level editor tab drag and drop
4096999 Making a VR Edit show flags mode that is similar to Game Mode but without the Game flag set to true, does hide billboards. Camera hide/show behavior is now correct.
4097286 Placing cameras now only summons the preview panel once you release
4100941 New spawn location for camera preview window (in front and to the side, on whichever side matches your UI hand)
4102732 Hiding VR editor elements from camera preview
4103378 Added camera burnin text on preview windows as well.
4103466 Fixes for camera text
4103779 Fix for the actor previews not unpinning when entering VR mode.
4105722 Adding support for multiple viewport previews in VR mode, and not creating a new viewport interaction if one already exists when getting it.
4106982 Any dockable window can now be placed in the world.
4107298 Fix for crash when closing multiple camera previews
4107426 Fix for crash when connecting node with no texture set
4136343 UI windows docked "to the world" no longer scale with you and stay the size they are docked at.
4136345 Settings for tweaking VR mode movement
4147473 Fix for controllers not showing up
4147734 Sequencer scrubbing will now pause when removing your thumb from a Vive touchpad
4171489 Added external UI panel support to VREditor module. Created an example camera-adjusting UI
4186392 Second fix for sequencer scrubbing on the radial menu
Change 4247984 by Jamie.Dale
Fixed potential memory corruption caused by Python glue code generation
#jira UE-62397
Change 4255471 by Anousack.Kitisa
Added functionalities to add/insert/remove UV channel from a StaticMesh accessible through the StaticMeshEditor and scripting.
#jira UEENT-1592
#jira UEENT-1597
#jira UEENT-1660
Change 4256323 by Anousack.Kitisa
Added Polygon Selection Mode by smoothing group in the MeshEditor.
#jira UEENT-1594
Change 4258012 by Homam.Bahnassi
Extending UVEdit material function to support mirroring. #jira UE-57306
Change 4258231 by Jamie.Dale
Fixed GetHostName failing to convert UTF-8 data correctly
Change 4258579 by Jamie.Dale
Ensure that packages re-created after deleting their only asset are marked as fully loaded
Change 4258652 by Jamie.Dale
Added script exposed method to convert an Unreal relative path to absolute
Change 4259124 by Patrick.Boutot
For MediaBundle, show or hide the failed texture on console.
#jira UE-61672
Change 4259264 by Jamie.Dale
Show an error if trying to use ExecutePythonScript without Python enabled
#jira UE-62318
Change 4259451 by Jamie.Dale
No longer use stale subtitles in dialogue waves
#jira UE-61500
Change 4259511 by Jamie.Dale
Fix crash when passing None as the class for find/load_asset
#jira UE-62130
Change 4259542 by Patrick.Boutot
Can select the TimecodeSynchronizer from the Toolbar menu. Add option to show it in the toolbar. Can be defaulted by user/machine.
Change 4259582 by Patrick.Boutot
Hide Edit & Paste from PropertyMenuAssetPicker
Change 4260760 by Max.Chen
Sequencer: Fix dereferencing null pointer - CameraNode
Change 4260895 by Jamie.Dale
Changing localization target settings now updates the gather INI files immediately
Change 4262166 by Patrick.Boutot
Add support for MediaSourceProxy and MediaOutputProxy.
Change 4262535 by Andrew.Rodham
Sequencer: Added a method for user-defined capture protocols to resolve a buffer and pass it directly to a bound delegate handler
Originating source CL#4261391
Change 4262669 by Patrick.Boutot
Add MediaProfile. It let the user select their media sources and media outputs by machine by user.
Change 4264577 by Patrick.Boutot
Change the type of FMediaFrameworkCaptureCameraViewportCameraOutputInfo.LockedCameraActors to LazyObject to enable cross level reference.
#jira UE-62438
Include dependence to settings
Change 4265750 by JeanLuc.Corenthin
Fix array's size issues with MeshDescription utility functions
#jira UEENT-1574
Change 4268181 by Patrick.Boutot
Mark LockedCameraActors as deprecated.
[CL 4279869 by JeanMichel Dignard in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3974233 by Rex.Hill
Optimized BuildStaticMeshVertexAndIndexBuffers and TEdgeBuilder
Change 3974234 by Rex.Hill
Reduced number of calls to SaveRawMesh and LoadRawMesh
Change 3974235 by Rex.Hill
Optimized SaveRawMesh by pre-allocating buffer
Change 3981370 by Jamie.Dale
Added support for deprecated (renamed) classes, structs, enums, functions, and properties in Python
The glue code generation will now use the existing redirects system to build deprecated entries for old names. You can also specify deprecated names to the ScriptName and ScriptMethod meta-data values by adding extra semi-colon separated entries (the first entry is the current name).
Accessing deprecated objects in Python leads to a deprecation warning when developer mode is enabled.
Change 3983875 by Jamie.Dale
Exposed some asset registry functions that may be useful in a commandlet environment
Change 3983901 by Jamie.Dale
Hoisted some AssetData helpers onto the struct in Python
Change 3988367 by Jamie.Dale
Python now honors EditInstanceOnly and EditDefaultsOnly when setting property values
Change 3988369 by Jamie.Dale
Exposed generic get_default_object function that takes a type and returns you the CDO
This is needed for types that aren't natively exposed to Python (such as Blueprint generated types)
Change 3989890 by Jamie.Dale
Moved BlutilityActor to be Private in EditorScriptingUtils
This can be removed once it's no longer needed.
Change 3989900 by Jamie.Dale
Updated EditorScriptingUtilities to use the Public/Private folder structure for source code
Change 3990082 by Anousack.Kitisa
Added plugin for Shotgun integration in Unreal.
#jira UEENT-959
Change 3990783 by Anousack.Kitisa
Changed ShotgunMenuItem to a struct.
Change 3991139 by Jamie.Dale
Minimized use of GUnrealEd (favoring GEditor) so that this code can be used by commandlets
Removed redundant usages of GEditor/GUnrealEd from within UEditorEngine itself, and fixed cases where null data was being accessed. Testing that loading, saving, and creating a new blank map will now work in a commandlet without crashing.
Change 3993189 by Jamie.Dale
Fixed some mismatched return types
Change 3993191 by Jamie.Dale
Inital support for taking the GIL at key points where external C code calls into Python
Change 3993683 by Patrick.Boutot
[LTC]
Add a CustomTimeStep that decode a LinearTimecode from the MediaSource. The MediaPlayer need to support buffering and should not run late since it's used to tick the engine time.
Update DropTimecode to use the new Timecode structure in TimeManagement.
Change 3994430 by Jamie.Dale
Adjusted how inline structs work so that types known at compile time can inline allocate without being fully hand-wrapped in Python
They must now be registered via FPyWrapperTypeRegistry::RegisterInlineStructFactory before we start generating wrapped types
Change 3996083 by Jamie.Dale
Added a distinct type for generated enum types so that you can query their available enum entries
Change 3998253 by conan.reis
Remove redundant Perforce error output from the log
Change 4000307 by JeanMichel.Dignard
Optimized FFbxImporter::ValidateAllMeshesAreReferenceByNodeAttribute()
- Stored all scene nodes geometry ids in a set instead of looping on all scene nodes for every geometry. O(N) instead of O(N^2).
- For 38685 scene nodes and 5417 geometry, the time went from 2 min 21.688 s to 0 min 0.098 s.
Change 4000605 by Jamie.Dale
Added support for constant "hoisting"
This allows you to tag a helper function that returns a constant with ScriptConstant meta-data (providing a potentially overridden name) to "hoist" that helper function to be a constant of the type it operates on when wrapped for Python (ScriptConstantHost can be used to host the constant on a struct rather than its own object).
Change 4001617 by Jamie.Dale
Updated ScriptMethod and ScriptConstant to allow hoisting onto other classes as well as structs
This allows you to have a runtime class be extended via methods in an editor-only module
Change 4005287 by Jamie.Dale
Added a GIL lock when Slate Tick events call back into Python
Change 4005383 by Andrew.Rodham
Sequencer: Initial scripting exposure and support
First pass includes the following:
- Find/add/interate master tracks
- Find/add/interate bindings (both possessables and spawnables)
- Find/add/interate tracks on bindings
- Add/interate sections on tracks
- Get/Set section ranges
Change 4008609 by Jamie.Dale
Added some missing native Python types to the documentation
Native modules now build up a list of types and functions associated with them. This information is then passed through to the document generation to ensure that all exposed native types and functions are documented.
In addition, any native Python module files are now assimilated into the unreal.py stub file and parsed so that they can be documented too.
Change 4008654 by Jamie.Dale
Allow math operators to use the base type versions unless overridden
Change 4009740 by Patrick.Boutot
Add BP function to convert a Timecode into a string.
Change 4009763 by Patrick.Boutot
Update AudioCapture to retreive the SampleRate. Used by the LinearTimecode. Change the requested format from int16 to float since we converted it into that format later on.
Change 4009768 by Andrew.Rodham
Removed explicit names from ScriptName methods, expanded sequencer scripting range functionality
Change 4009830 by Jamie.Dale
Added support for UPARAM(ref) on arguments exposed to Python
For standard functions, this just produces an input and output for the same argument (we can't mutate the input due to potential coercion).
For ScriptMethod functions that use it on the 'self' argument, this will mark the function as "inline" and have the function apply the result of the 'self' argument back onto the 'self' instance after calling the function.
Change 4010034 by Jamie.Dale
Added support for init_unreal.py start-up scripts
These can be placed in any known sys.path in Python, including the Content/Python folders we automatically add, and the UnrealEngine/Python directory under the users home directory.
Change 4010422 by Jamie.Dale
Improved errror reporting during Python generation
It will now ensure if a debugger is attached to draw programmer attention to an error.
Change 4010498 by Patrick.Boutot
Remove unnecessary loop Timecode.ToFrameNumber()
Change 4011312 by Jamie.Dale
Duplicate deprecated names will no longer assert during Python glue generation
They will now log a warning and continue
Change 4012068 by JeanMichel.Dignard
Allow to render thumbnails for newly created packages.
- To render a thumbnail, you either need a customer thumbnail renderer or a cached thumbnail. Querying cached thumbnails fails for newly created packages because it calls DoesPackageExist which check on disk. This call is unnecessary since we're relying on FindPackage which only works for packages that are loaded in memory.
Change 4013781 by Jamie.Dale
FFrame::KismetExecutionMessage (or LogRuntimeError or LogRuntimeWarning) will now produce Python exceptions
You can use these to emit warnings or errors from UFunctions wrapped for scripting, and when called from Python they will produce a Python exception (for errors), or Python warning (for warnings).
Change 4014337 by Jamie.Dale
Struct coercion now errors if you provide a sequence with too many elements
This also makes sure that PyConversion doesn't set an error state if ESetErrorState::No is passed (which could have previously happened from type casting calls).
Change 4015290 by Andrew.Rodham
Sequencer: Moved runtime functionality from ISequencerChannelInterface to IMovieSceneChannelInterface
- Rename IBatchChannelInterface to IMovieSceneChannelInterface
- Removed MovieScene::Dilate()
- Added TMovieSceneChannelTraits::SupportsDefaults to automatically stub out functions relating to channel defaults
Change 4015664 by Jamie.Dale
Renamed ScriptMathOp meta-data to ScriptOperator
Change 4016230 by Jamie.Dale
Fixed incorrect make/break path in Importance Sampling Library (for Importance Texture)
Change 4017326 by Jamie.Dale
Added make and break support in Python
Structs that have a native make function will now use this as their constructor. This also adds support for breaking a struct into a tuple, either via a native break function, or via generic property enumeration.
Change 4017551 by Jamie.Dale
Removed redundant outer parameter from find/load_asset/package
Change 4018594 by Jamie.Dale
Added ScriptMethodSelfReturn as an alternative to UPARAM(ref)
These two function signatures produce the same behavior and have the same cost in Python, the only difference is how they appear to Blueprints (and Blueprints seem to favor non-reference functions).
UFUNCTION(..., meta=(ScriptMethod))
static void DoThing(UPARAM(ref) FThingType&, int32);
UFUNCTION(..., meta=(ScriptMethod, ScriptMethodSelfReturn))
static FThingType DoThing(FThingType, int32);
Change 4020956 by Anousack.Kitisa
Added Shotgun to the Level Editor/World Outliner and Content Browser context menus when there's a selected actor or asset.
#jira UEENT-1219
Change 4021986 by Anousack.Kitisa
Used the Python startup scripts mechanism to launch the Shotgun bootstrap script.
Related to Jira UE-57896.
Change 4022993 by Jamie.Dale
Added support for extra operators on Python structs
You can now expose bool conversion and comparison operators (==, !=, <, <=, >, >=) in addition to the previous set of math operators. As part of this there is now stricter signature validation when generating the Python binding.
Change 4023226 by Jamie.Dale
Added Make and Break function for FSoftClassPath
Change 4023348 by Jamie.Dale
Exposed some methods and operators for PrimaryAssetId and PrimaryAssetType
Change 4027911 by Jamie.Dale
Cross-outer redirects are no longer applied in Python
#jira UETOOL-1382
Change 4029618 by JeanMichel.Dignard
Unreal Studio UX
- Made "Unreal Studio" the default tab in the new project wizard if we're using an installed enterprise build.
- Create new projects as enterprise projects if we're using an insalled enterprise build.
#jira UEENT-1231, UEENT-796
Change 4030217 by Jamie.Dale
Exposed ScopedSlowTask to Python
#jira UETOOL-1375
Change 4030784 by Matt.Hoffman
Sequencer curve editor now shows vertical axis labels.
#jira UE-58160
Change 4030858 by JeanLuc.Corenthin
Expose LOD creation thru Python:
- Create one struct to hold onto reduction settings per LOD
- Create one struct to hold onto an array of reduction settings and a parameter to enable of disable automatic computation of screen size
- Create new method to apply reduction settings to an array of StaticMeshActors
#jira UEENT-1232
Change 4032239 by Jamie.Dale
Cleanup pass over wrapped structs
- Code dealing with reflected structs now uses UScriptStruct rather than UStruct.
- The old PyConversion::NativizeStruct and PyConversion::PythonizeStruct have been renamed to PyConversion::NativizeStructInstance and PyConversion::PythonizeStructInstance.
- New PyConversion::NativizeStruct and PyConversion::PythonizeStruct functions have been added to convert an object (or Python type) to a UScriptStruct (akin to what PyConversion::NativizeClass and PyConversion::PythonizeClass does for UClass).
Change 4032247 by Jamie.Dale
Cleaned up some Python slow task code
Change 4032251 by Jamie.Dale
Added functions to get the Python type associated with an Unreal class, struct, or enum
Change 4032258 by Jamie.Dale
Added Python iterators for Unreal objects, classes, and structs, as well as the Python types wrapped by Unreal classes or structs
#jira UETOOL-1380
Change 4032320 by Jamie.Dale
Fixed Python object iterators skipping their first item
Change 4032321 by Jamie.Dale
Added Python iterators for actors and selected actors
#jira UETOOL-1380
Change 4033908 by Anousack.Kitisa
Added Shotgun settings for metadata tags.
#jira UEENT-1175
Change 4033909 by Anousack.Kitisa
Added wrapper function to sync Content Browser to assets for scripting.
#jira UEENT-1218
Change 4034951 by Matt.Hoffman
Media Tracks now highlight when added to a Sequence/UMG animation.
Change 4034966 by Jamie.Dale
Added GIL locks around post_init code that can be called from C++
Change 4035019 by Matt.Hoffman
UMG Render Transforms + Margins now support infinite sections.
Change 4035470 by Andrew.Rodham
Introduced a common base class for all movie scene channel data, FMovieSceneChannel.
Removed IMovieSceneChannelInterface.
Renamed FMovieSceneChannelEditorData to FMovieSceneChannelMetaData.
Renamed FMovieSceneChannel and TMovieSceneChannel to FMovieSceneChannelData and TMovieSceneChannelData, to make way for common channel base class.
Renamed instances of 'specialized' channel editor data to 'extended' channel editor data.
Introduced non-templated FMovieSceneChannelHandle and a templated version. Changed internal implementation to use a lookup rather than a directly resolved weak ptr.
Various pieces of documentation and cleanup.
Change 4037112 by Max.Chen
Sequencer: Added some missing RF_Transactional flags to newly created sections.
Change 4037121 by Max.Chen
Sequence Recorder: Timecode recording
Introduced an FSourceTimecode which is saved as editor only data to the MovieSceneSection and MovieScene. FSourceTimecode consists of an FFrameNumber delta that correlates the section's initial start time to an FTimecode. The FFrameNumber is adjusted whenever the section is moved.
One use case for this is through sequence recorder, which captures the timecode at the start of recording and saves an FSourceTimecode per movie scene section it creates. If the section is moved, it can always be returned to its source timecode by the section's right click menu, "Sync to Source Timecode".
#jira UESEQ-406
Change 4038462 by Jamie.Dale
Added support for using Python callables with delegates
All the "x_function" methods on delegates and multicast delegates now have an "x_callable" equivalent that take a Python callable (we attempt basic validation of the signature, but that only allows us to check the input argument count is what we expect).
Internally the callable is wrapped in a UObject, so certain GC restrictions are present (and is why coercion is disabled for callables). Delegates wrapped in Python (including as a direct property of an object or struct, or inside a container) will be kept alive via the Python reference collection, however once there are no Python references left the proxy object will be allowed to die unless something external has taken a reference to the proxy object.
Change 4039123 by James.McNatton
Remove dependency on SteamController in VirtualCamera #rb none
Change 4039162 by Jamie.Dale
Fixed linter warnings about unescaped backslashes in docstrings
Change 4039170 by Jamie.Dale
No longer expose deprecated functions or properties if they clash with another Python exposed item
Change 4039429 by Max.Chen
Sequence Recorder: Swap to editor actors on end PIE if the actors to record were set to the PIE actors
Change 4039442 by Max.Chen
Sequence Recorder: Find the existing object binding and record into it if it exists. When recording to an existing object binding, if the track exists, remove all animation data and reuse the track.
Change 4039477 by Jamie.Dale
Added warnings for conflicting Python type and field names
Change 4039478 by Jamie.Dale
Fixed warnings for conflicting Python type and field names
Change 4039511 by Max.Chen
Sequencer: Remove all animation data for spawn track
Change 4040649 by James.McNatton
Multiple Virtual Camera bug fixes
- Removed QAGame mannequin from test map
- Fixed errors being generated when trying to load preset
- Presets now properly load and save axis settings
- Deleted presets should no longer linger in menus
- Presets now save and load favorite status
Change 4041356 by Max.Chen
Sequence Recorder: Takes system
#jira UESP-544
Change 4041589 by Jamie.Dale
Added C++ source information (plugin, module, and file) to the Python doc string
Change 4041746 by Jamie.Dale
Made ScriptOperator more relaxed about its signature validation as long as the additional input parameters are defaulted
Change 4041757 by James.McNatton
Virtual Camera Bug Fixes
- The Input Source dropdown now accurately reflects user selection
- Input source changed to EditDefaultsOnly
- Focus should no longer be set when the settings menu is open
Change 4041823 by Jamie.Dale
Made ScriptOperator more relaxed about its signature validation for defaulted input parameters
Existing Blueprint exposed operator functions may both default required arguments, and add additional default arguments. ScriptOperator will now accept both of these as long as there are enough arguments, but not too many non-defaulted arguments.
Change 4042956 by James.McNatton
VirtualCamera bug fixes related to focus plane visualization
- Removed extra focus plane that was being displayed
- Added logic to adjust for nonuniform scaling of objects when settings up tracking focus
Change 4043400 by James.McNatton
Multiple bug fixes related to saving various values
- Now saves matte opacity and updates on load
- Now saves filmback format name and updates on load
- Now saves desired distance units and updates on load
Change 4043481 by James.McNatton
Fixed issue in Virtual Camera where joystick movement would not properly apply locks after rotating #rb none
Change 4044358 by Jamie.Dale
Fixed some cases where empty default values would be lost from UHT
Eg, empty strings, null objects
Change 4044362 by Jamie.Dale
Fixed old-style enums being missed by the Python glue generation if they're only referenced by a property of function
Change 4044371 by Jamie.Dale
Fixed default value application for some struct types that use a custom default value format when exported by UHT
Change 4044417 by Max.Chen
Sequence Recorder: Better default group names with an underscore separator for letters
Change 4045164 by Jamie.Dale
Hardened usage of CopyScriptStruct to ensure that the source type is a child of the destination type, and that the destination type is used to copy (to still allow slicing of derived data)
Change 4045195 by Jamie.Dale
Updated FPropValueOnScope::GetValue to be able to return the value for a particular array index
Change 4045589 by James.McNatton
Fixed packaging error for VirtualCamera plugin
- Plugin is now a runtime plugin rather than developer
- Fixed up associated warnings with saving and loading in editor
Change 4046208 by James.McNatton
Virtual Camera bug fixes
- Adjusted how mattes and filmback works together
- Should now always respond properly to changing filmback settings in UI
- Should now match the correct view size within the matte under all circumstances
Change 4046372 by Max.Chen
Sequencer: Fix subsequence binding ids.
#jira UE-55337
Change 4046694 by Max.Chen
Sequence Recorder: Compile the template before finding the camera sequence id since the precompiled template is not up to date.
Change 4046801 by Jamie.Dale
Improved default values and return types used in the unreal.py stub file
- Object and Struct types generate an __init__ function with the correct signature.
- Struct __init__ functions list the correct default values (including when using make/break functions).
- Methods now list the correct default values.
- Get/Set getters return a value of the correct type.
- Get/Set setters are no longer exported for read-only properties.
- Constants resolve to the correct type and value.
#jira UETOOL-1377
Change 4047023 by Jamie.Dale
Added missing hook-up for % and %= in Python
Change 4047100 by Jamie.Dale
Operators are now exposed to unreal.py and generate docs stating which overloads are available
Change 4047105 by Jamie.Dale
String is now "str" in doc strings to match the Python type
Change 4047714 by Max.Chen
Sequencer: Resolved merge conflicts with Dev-Sequencer
Change 4048150 by Jamie.Dale
Fixed single-culture PO import/export failing
#jira UE-47079
Change 4048653 by Andrew.Rodham
Sequencer: Automatic re-evaluation is now suppressed for external changes that modified only default values on channels
- The issue is that moving an object that is partially-keyed in sequencer, with auto-key off, will set default values for the non-keyed channels. Doing so will dirty the sequence, which causes a re-evaluation, which re-evalutes the keyed channels, which effectively undoes the external change.
- This is now fixed by suppressing the automatic re-evaluation for a specific signature of a specific sequence, if that is the only thing that has dirtied the sequence. Any subsequent changes to the sequence will cause a re-evaluation, and the suppression to be wiped.
#jira UE-57519
#jira UE-58487
Change 4048814 by Jamie.Dale
Fixed syntax error if an enum had an unknown value
Change 4048819 by Jamie.Dale
Fixed struct init functions having the wrong default values
Change 4048856 by JeanLuc.Corenthin
- Removed LOD & collision functions from UEditorLevelLibrary
- Created a new class, UEditorMeshLibrary, to hold onto functionalities related to StaticMeshes
- Added method to set LODs on a static mesh
- Added method to remove LODs from a static mesh
- Added method to get number of LODs on a static mesh
- Added method to get number of simple collisions onto a static mesh
- Added method to get number of convex collisions onto a static mesh
- Added method to add convex collision onto a static mesh
- Added method to remove all collisions onto a static mesh
#jira UEENT-1232
#jira UEENT-1233
Change 4048961 by Jamie.Dale
Improved formatting of output parameters in doc strings
#jira UETOOL-1376
Change 4048988 by Jamie.Dale
Fixed context leakage between the console and files, and import "unreal" by default now in the console
#jira UETOOL-1379
Change 4049912 by Max.Chen
Sequence Recorder: Minor recording group name improvements.
- Initialize newly created actor group with existing actor group's base path.
- When duplicating, use the current group's name as the base.
- When typing in a name, if it fits the group format, the name should be allowable if it doesn't conflict with existing group names/assets.
Change 4049934 by Andrew.Rodham
Sequencer: Minor clean-up of sequencer interfaces and overloads
- Replaced remaining instances of void* with FMovieSceneChannel* now that we mandate a common base class
- Changed remaining explicit calls to SetDefault to SetChannelDefault overload so it works correctly with the SupportsDefaults trait
- Exposed ability to manually implement an ISequencerChannelInterface rather than using the default templated one
Change 4050608 by conan.reis
Was getting link error about use of FFrameTime in ULevelSequencePlaybackController::PlayFromBeginning() in the VirtualCamera plugin so added TimeManagement to its dependant modules so it compiles again.
Change 4050899 by Max.Chen
Sequencer: Allow actor components for synchronization
#jira UE-58468
Change 4050900 by Max.Chen
Sequence Recorder: Don't create a spawn section if the object is a possessable
#jira UE-58272
Change 4050904 by Max.Chen
Curve Editor: Fix for evaluation a section of time when one key is non-weighted and the other is weighted. What we do is evaluate them both as being weighted, but we don't have the weight value for the non-weighted tangent. The weight of the non-weighted tangent is implicilty 1/3rd the distance between the two points, so we just calculate that if needed.
#jira UE-58573
Change 4050905 by Max.Chen
Curve Editor: When calculating vertical extents find feature points where slopes are zero and check them in addition to the keys if the curve is cubic. Curves now fit correclty vertically.
Also changed fudge to 5% from 10% to match up old editor. Tighter fits seems better.
#jira UE-58571
Change 4050972 by James.McNatton
Added functions to ISequenceRecorder
- Calling StartRecording with an empty array now triggers recording without clearning queued recordings
- Added function to queue an actor to be recorded
- Added function to check the next take number for a given actor when using groups
Change 4050994 by James.McNatton
Bug fixes for Virtual Camera
- Preset menu now shows dates in the timestamp
- Resetting offsets now alerts the system to update UI
Change 4051431 by David.Hibbitts
Added a component and blueprint library to access LiveLink data in blueprints which also works in editor.
Deprecated LiveLink Driven component
#jira UESP-577
Change 4051475 by Patrick.Boutot
Rename EditorMeshLibrary
Merge AssetScriptingUtilititesEditor with EditorScriptingUtilities. Add Redirects.
Change 4051558 by Patrick.Boutot
EngineCustomTimeStep returns true when we also want to perform the default engine code.
Change 4052106 by Andrew.Rodham
Sequencer: Adding an example that creates a sequence out of the current editor selection
Change 4052205 by Anousack.Kitisa
Fixed selected asset paths referenced by selected actors when using context Shotgun menu.
Added function to retrieve the work area directory for Shotgun.
#jira UEENT-1220
Change 4052951 by James.McNatton
Virtual Camera Sequence Recorder updates to integrate new take system
- Takes no longer display unless sequence recorder has a group selected
- Adjusted fix to packaging error
- FPS value will no longer appear if sequence recorder isn't available
Change 4053130 by mason.seay
Updated Game Mode Override
Change 4053273 by James.McNatton
Virtual Camera cleanup adjustments
Change 4053627 by Max.Chen
Sequencer: Disable bind sequencer to PIE/simulate while recording.
Change 4053628 by Max.Chen
Sequence Recorder: Fix target animation not persisting
#jira UE-58508
Change 4053871 by Max.Chen
Image Plate: Fix icon path
Change 4054370 by Patrick.Boutot
Remove LiveLink warning. Create base a class for FLiveLinkFrameRate as suggested in GenericPlatformCompilerPreSetup.h
Change 4054447 by Darren.Pegg
AJA low level device API
Blackmagic low level API
MediaIOCore changes to support AJA/Blackmagic changes
AJA Module converted to use MediaIOCore
Blackmagic Module changes for MediaIOCore
Blackmagic/AJA Binary files
Change 4054769 by Patrick.Boutot
Packaging error issue introduce with CL 4054370.
#jira UE-58749
Change 4055443 by Max.Chen
Sequencer: Fix crash in adding filler shot
#jira UE-58767
Change 4056577 by JeanMichel.Dignard
Fixed crash with automation tests.
We would bind the default UEditorEngine to Automation and on map load, it would call PIE on GEditor but with recent changes, PIE is called on this and the default UEditorEngine is not initialized so it would crash with a null GameViewportClass. Now we'll bind Automation on UEditorEngine InitializeObjectReferences so that we're in a good state and it's only called for GEditor.
#jira UE-58792
Change 4057238 by Jamie.Dale
Fixed crash when renaming Python generated classes or structs
Change 4058435 by Jamie.Dale
Fixed lingering exception state when converting a dict to a struct
Change 4058486 by mason.seay
Removed remote.host call from map
[CL 4060164 by JeanMichel Dignard in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3947021 by Max.Chen
Sequencer: Don't preserve root component when copying object properties.
A spawnable empty actor, has a root component that is generated by the empty actor factory. If the object template's root component is preserved when copying from the spawnable empty actor, the root component will not be copied
over. Therefore, we need to NOT preserve the root component when copying object properties.
#jira UE-55825
Change 3947366 by Max.Preussner
WmfMedia: Better log output
Change 3947367 by Max.Preussner
MfMedia: Better detection of compressed format properties on Windows
Change 3949102 by Max.Chen
Sequencer: Remove SequenceActorTag when converting to possessable.
#jira UE-56206
Change 3949207 by andrew.porter
EngineTest: Set the screenshot nodes resolution to 1280x720
Change 3949404 by Max.Chen
Sequencer: More informative tooltip for "Rerun Construction Scripts" option. It now says "Rerun construction scripts every frame on actors that have 'Rerun Construction Script in Sequencer' enabled in their class settings".
Change 3950067 by Matt.Hoffman
Renamed UAutomatedLevelSequenceCapture's StartFrame and EndFrame to CustomStartFrame/CustomEndFrame to reflect that it is user-overriden. This will also resolve upgrade issues due to the variable datatype changing.
#jira UE-56189
Change 3950193 by JohnHenry.Carawon
Updating my latest MovieRendering test content.
Change 3950757 by JohnHenry.Carawon
More updates to MovieRendering test content
Change 3952059 by Max.Chen
Resave LevelVisibility_SubLevels to fix data loss conversion warning of OpacityMaskConstant
#jira UE-56086
Change 3952283 by Max.Chen
Sequencer: Disable dropping level sequence assets as spawnables.
#jira UE-56120
Change 3952422 by Max.Chen
Sequence Recorder: Add button to record from the current player.
#jira UE-55942
Change 3952987 by JohnHenry.Carawon
MovieRendering Test Content - Fixing camera bindings and changing the override binding actor
Change 3953823 by Mike.Zyracki
Fix for Bad FBX Import
Tangents not scaled by frame rate.
After looking at this again it seems that a set of MovieScene:: overiddes for the channel traits wasn't set correctly, so use the ADL idiom to use MovieScene, which can then call Optimize in the correct namespace.
With this we can now correctly use the passed in tolerance.
There was also a redundant set of Optimize calls so that it could happen twice so removed them, and needed an extra check in the float channel Optimize.
Also since we need to set auto tangents no matter if we optimize we don't set that parameter(though leave it since it's used by context menu key reduction).
Finally fixed speed issue with trajectories caused by calculating way too many substeps. Reverted back to a time based step size for consistency.
#jira UE-56193
Change 3954317 by Matt.Hoffman
Adding a key to the last frame of a section no longer causes a crash. Keys can already be moved to be on the last frame of a section so now you can just add a key there directly.
#jira UE-56255
Change 3954326 by Matt.Hoffman
Dilating a section that is only infinite on one side no longer causes a crash.
#jira UE-56260
Change 3954486 by Max.Chen
PR #4580: Exposes IsReversed() from UMovieSceneSequencePlayer (Contributed by alanedwardes)
Change 3955238 by Max.Preussner
Messaging: Enabled delayed message routing
https://github.com/EpicGames/UnrealEngine/pull/4574
#jira UE-56247
Change 3955901 by Max.Preussner
MediaFrameworkTest: Added developer test for overriding desired media player plug-in at runtime.
Change 3955922 by Andrew.Porter
QAGame: Updating movie rendering content in dev folder
Change 3956004 by andrew.porter
QAGame: Adding MPC track to movie rendering test content
Change 3956510 by Max.Chen
Sequencer: Fix fbx camera import of static properties so that they are imported before default tracks are created. Otherwise, the default tracks inherit the default properties of the camera, rather than the values from the fbx.
#jira UE-56311
Change 3957613 by Max.Preussner
MediaUtils: Added code documentation to media player facade
Change 3958005 by Max.Preussner
MediaUtils: Added method to get number of sinks
Change 3958934 by Max.Chen
Sequencer: Fix keys getting added and sequence getting erroneously re-evaluated when auto key is off.
Only apply defaults if there are no keys.
Only modify the movie scene section before creating keys or setting defaults.
#jira UE-55903
Change 3959687 by Andrew.Rodham
Sequencer: Fixed visibility track external values being inverted
#jira UE-56324
Change 3960507 by Max.Preussner
Core: Fixed incorrect rounding in FMath::DivideAndRoundNearest
Change 3962047 by JohnHenry.Carawon
MovieRendering Test Content Changes:
- Add Lightmass Importance Volumes to sublevel to fix warnings
- Rebuilt Lighting
- Add a third sequence for Gamut testing
- Resaved the sound master.uasset to fix warning
Change 3962211 by Mike.Zyracki
Add Frame Numbers to selected animation sections.
Added MapTimeToAnimation to MovieSceneSkeletalAnimation so that we could get it from the Skeleton Animation track Editor.
Since the thickness of the frame line can change based upon frame rate and zoom we need to calculate it similarly to how the time slider controller does it. Those calculations were private so we had to expose FScrubRangeToScreen
and GetScubberPixelRange from the TimeSliderController.
Also needed to know if the section itself was selected so added a bIsSelected flag to the section Painter.
Also fixed a bug where you couldn't add a section if other sections existed at different times in MovieScenePropertyTrack and could crash due to the check().
#jira UESEQ-395
Change 3962497 by Max.Preussner
Core: Added new string formatting argument to FTimespan
Change 3963662 by Max.Chen
CineCamera: Flip VistaVision width and height.
Change 3963731 by Max.Preussner
MediaCompositing: Implemented sequence recording support for media track
Change 3964195 by Andrew.Rodham
Sequencer: Set inverted property correctly for newly created visibility track sections
- Also clamp evaluation for key editors to the bounds of the section so we're not displaying values outside of the section bounds when the cursor is not on the bounds
#jira UE-56324
#coderevew Max.Chen
Change 3964196 by Andrew.Rodham
Sequencer: Fixed crash when attempting to render sections that resulted in a negative intersection with the view range
Change 3964275 by Andrew.Rodham
Sequencer: Fixed MovieScene::ClampToDiscreteRange for infinite range bounds
Change 3964364 by Andrew.Rodham
Curve Editor: Reduce minimum vertical view range when zooming to fit
Change 3965091 by Max.Chen
Sequencer Recorder: Refresh next sequence if empty when starting a recording, otherwise, use existing name.
#jira UE-56469
Change 3965148 by Max.Chen
Sequence Recorder: Move Record to Possessable to "Actor Recording" group
Change 3965162 by Max.Chen
Sequence Recorder: Always break out of immersive mode when done recording, even when stopping recording during countdown.
#jira UE-56407
Change 3965214 by Max.Preussner
QAGame: Enabled ImagePlate plug-in
Change 3965574 by Max.Preussner
SimpleComposure: Reorganized & upgraded content to work with new Media Track
#jira UE-56488
Change 3965651 by Max.Preussner
MediaCompositing: Ignoring seek-on-open if media not seekable
Change 3966075 by Christina.TempelaarL
Sequencer: Added Final Cut Pro 7 XML Export functionality
#jira UESEQ-358
Change 3966087 by Matt.Hoffman
Adding a single key to the Particle Toggle track now makes an infinite range section that is displayed in the UI.
#jira UE-56295
Change 3966547 by Andrew.Rodham
Sequencer: Fixed rounding errors when drawing the section background on boolean sections
- Logic was using time in sectonds which caused rounding errors on evaluation and flickering red/green stripes when dragging keys around
#jira UE-56324
Change 3966563 by Andrew.Rodham
Curve Editor: Key editor interface improvements
- SKeyEditInterface has a few problems - it does not update in real time when editing properties, and does not support multi-edit which makes it unsuitable for use with the curve editor
- We now take a different approach for editing keys by gathering a set of proxy UObjects for each key that is currently selected. These objects are added as top level objects to the details panel which means they support multi
edit as you'd expect from any other details panel in the editor.
- Proxy objects are updated every tick for the curve editor if they implement the ICurveEditorKeyProxy interface, which allows them to refresh their current value.
- Ideally, the same mechanisms would be used in the main sequence interface, and we would be generating the proxy classes at runtime based on the key value type, but that work remains a separate task from this initial offering.
#jira UE-56165
Change 3966564 by Andrew.Rodham
Curve Editor: Expand to frame when adding or moving keys in the curve editor
Change 3967051 by andrew.porter
MediaFrameworkTest: Set the CameraPlayer_Video texture to auto clear
Change 3967141 by Andrew.Rodham
Sequencer: Keep track of spawned objects that have been modified and only re-save such object's default spawnable state on destruction
- Now that we're taking this approach, I've remove serveral redundant bits of functionality in the spawn register such as making some spawnables read-only, and the PreSave binding for Sequencer.
- We now hook into all object pre-saves to make sure we handle the case where the sequences are saved through the content browser or elsewhere.
#jira UE-47686
Change 3967170 by Andrew.Rodham
Sequencer: Added the ability to possess anim instances as object bindings
- This allows full and direct animation of properties on UAnimInstance, and animation blueprints
- Object Bindings are made by first possessing a skeletal mesh component, then choosing the + Add button where its anim instance will be listed
- Added a new function to UMovieSceneSequence to gather previously cached objects that should now be invalidated. Anim instances will be re-resolved if a new UAnimInstance is assigned to USkeletalMeshComponent::GetAnimInstance.
- ObjectBindingIDs for anim instances are just represented by an entry in a set of GUIDs. We only ever resolve such bindings through USkeletalMeshComponent::GetAnimInstance.
- Only currently supported on LevelSequences
#jira UE-56132
Change 3967195 by Max.Preussner
Core: Updated TRangeSet to use TCallTraits
Change 3967345 by JohnHenry.Carawon
Test Content Changes - first iteration of spacing out the examples in the shots.
Change 3967572 by Max.Chen
Sequencer: Fix setting PreviousPlayEvalPosition until after we've tested whether it's set.
#jira UE-56518
Change 3967750 by Max.Chen
Audio: Set duration based on number of input channels, rather than number of channels to serialize. This fixes an issue where audio split into 2 channels is set to a duration that's twice as long.
#jira UE-56430
Change 3967836 by Max.Chen
Sequencer: Allow for animating array elements within ustruct properties
#jira UE-55887
Change 3968506 by Matt.Hoffman
Fixed ambiguous conversions for seconds and frames being overriden by ambiguous conversion to Timecode (in frames).
Change 3968748 by Max.Chen
Sequencer: Make the event properties submenu widget larger.
#jira UE-55557
Change 3968862 by Max.Chen
Sequencer: Recursive expansion when shift is down
#jira UE-52139
#pr 4194
Change 3968863 by Max.Chen
Sequencer: Bind rename command to selected track so that F2 shortcut start renaming
#jira UE-52139
#pr 4194
Change 3968872 by Max.Chen
Sequencer: Rekey the selected key at the current time.
#jira UESEQ-396
Change 3968938 by Max.Chen
Cine Camera: Add option to toggle the behavior of locking the rail mount to the orientation of the spline. By default, the option is off, no change in behavior.
#jira UE-55815
Change 3968958 by Andrew.Rodham
Sequencer: Consider vertical position when hittesting keys
#jira UE-56256
Change 3969643 by Max.Preussner
Core: Rounding timespans created from double values towards nearest ticks
Change 3969646 by Max.Preussner
MediaUtils: Implemented timeout mechanism for block-on-fetch feature
Change 3969776 by Mike.Zyracki
Added Skip Anim Notifiers Toggle per what was in Matinee.
Investigated the Enable Root Motion toggle as also discussed but it's implementation is directly contained by the
animation asset and unlike animation notifies there seems to be no exposure to interactively disable it during a playback tick.
Note if we are generating thumbnails we still automtically disable notifies in the editor to avoid annoying noise playback.
Note that if Enable Root Motion/Root locked is specified in the animation asset it does correctly effect the Sequencer.
#jira UESEQ-399
Change 3969835 by Matt.Hoffman
Playback Range and Selection Range use unified logic for adding themselves as potential snap locations which properly handles inclusive/exclusive bounds. This resolves an issue where having an unset selection range caused a
potential snap location to be added on frame 0 and 1 (internal resolution) which caused a misalignment when placing objects near frame 0.
This also removes the one frame offset on setting Selection Range to bring behavior inline with other ranges.
#jira UE-55420
Change 3969885 by Max.Preussner
MediaAssets: Don't register media player CDO with media ticker
Change 3971129 by Andrew.Rodham
Sequencer: Fixed UMovieSceneSequencePlayer::GotToEndAndStop() not taking into account for start time
This is a remnant from when the times were always specified in 0-duration space, rather than actual sequence times.
Change 3972056 by JohnHenry.Carawon
More updates to Test Content. I continued spacing out the examples in the sequence so that they have a consistent number of frames between each example and during the start/end of the example. Also removed the Marcie sublevel.
Change 3972066 by Andrew.Porter
MediaFrameworkTest: Setting Marcie folder to be never cooked in package settings
Change 3972675 by Matt.Hoffman
Splitting Subsequence Sections no longer sets an incorrect playback range on the subsequence when the subsequence has a different internal resolution than the owning sequence.
#jira UE-55453
Change 3973376 by Max.Preussner
ImgMedia: Zero is the only valid video track for image sequences
Change 3973489 by Max.Preussner
Launch: Build rules cleanup pass
- don't use Media, MediaUtils on server apps
- don't link against Media (include-only dependency)
- don't include from MediaAssets (dynamic load only)
Change 3973760 by Max.Preussner
MediaUtils: Moved AppMediaTimeSource implementation into its own file; added logging
Change 3973765 by Max.Preussner
ImgMedia: Disallowing seek beyond media length
Change 3973855 by Max.Preussner
MediaFrameworkTest: Updated developer test content
Change 3973858 by Max.Preussner
MediaCompositing: Blocking on media player time instead of media sample time (the former may not be hit in the current frame)
Change 3974988 by Max.Chen
Sequencer: Fix trim left so that it also sets the start offset for audio and skeletal animation sections.
#jira UE-57015
Change 3976101 by Matt.Hoffman
Sequencer will now focus the scroll view on newly created items.
#jira UE-56492
Change 3976203 by Max.Chen
Property Editor: Add DetailsViewArgs for ColumnWidth. Defaults to 0.65f, no change in existing behavior.
Change 3976205 by Max.Chen
Sequencer: Set better column widths for sequencer.
#jira UE-55557
Change 3976206 by Max.Chen
Sequencer: Added menu category for import/export
Change 3976265 by Matt.Hoffman
Tracks within Object Binding Nodes will now sort using the old behavior so that components are added above other track types.
#jira UE-56473
Change 3976901 by Max.Chen
Sequencer: Add event names to event track section
#jira UESEQ-353
Change 3977878 by Max.Preussner
Media: Moved media framework ticking stats into Media module
Change 3977982 by Max.Chen
Sequencer: Add Edit->Reset section length to duration of source (ie. audio, skeletal animation, shot length)
Added MovieSceneSection::GetDefaultDuration and MovieScene::HasDefaultDuration
#jira UESEQ-392
Change 3977994 by Max.Preussner
Media: Fetching and rendering media samples before viewports are rendered (to ensure frame sync for in-level media playback)
#jira UE-53975
Change 3978188 by Matt.Hoffman
Easing Curves are now clipped by the sequence's PlayRange when testing against an infinite section. This causes blended sequences to finish their blend when the section starts/ends instead of always using 25% of the total section
length to determine default blend range.
#jira UE-56362
Change 3978676 by Max.Preussner
MediaCompositing: Fixed first frame of rendered out media track missing
#jira UE-53975
Change 3978684 by Max.Preussner
MediaCompositing: Enabled media track frame sync feature
#jira UE-53975
Change 3980026 by Matt.Hoffman
Keys can be selected on folded out sections (such as an audio track expanded to show volume and pitch) again.
#jira UE-57169
Change 3981614 by Max.Preussner
MediaUtils: Added missing subtitle sample queue flush
Change 3982311 by Max.Preussner
MediaCompositing: Added safeguard for zero length media sources
Change 3982389 by andrew.porter
QAGame: Adding media track test content into FrameAccuracySubscene
Change 3983661 by Max.Chen
Sequencer: Add level name to spawn a spawnable into.
Add sublevel menu option to set the level
#jira UESEQ-390
Change 3983712 by Andrew.Rodham
Sequencer: Purge legacy blueprint spawnables from LevelSequence packages
#tests Ran a preflight for cooking fortnite, ocean and Orion. Only orion shows up this edge case, and will require a re-save of the EndCines level
#jira UE-39173
Change 3983787 by Max.Preussner
MediaCompositing: Moved compile time switch for block-on-fetch into media player facade
Change 3983812 by Andrew.Rodham
Sequencer: Exposed default level sequence instance data to blueprints
Change 3984373 by Max.Preussner
Media: Added API for quering whether player plug-in supports block on fetch
Block on fetch allows Sequencer and other systems to block the game thread until a desired video frame has been decoded.
Change 3984670 by JohnHenry.Carawon
Movie Rendering Test Content progress. Saving the state of the content.
There is a bug where things got replaced with particle emitters and I think it was because I tried to copy paste an animation track into a separate skeletal mesh track.
Change 3985097 by Max.Chen
Sequencer: Rename Reset to AutoSize
Change GetAutoSizeDuration to return TOptional<FFrameTime>
#jira UESEQ-392
Change 3986043 by Max.Chen
Sequencer: Fix crash when attach/path duration is less than 0.
#jira UE-57310
Change 3986373 by Max.Chen
Sequencer: Add support for deleting tracks and channels which equates to setting the channel mask.
#jira UE-52951
Change 3986375 by Max.Chen
Sequencer: Add Create Pose Asset to skeletal animation section. This allows animators to blend animations in sequencer and create new pose assets from them.
#jira UESEQ-408
Change 3986796 by Andrew.Rodham
Sequencer: Fixed stale object references remaining in ULevelSequence::BindingReferences when using convert to spawnable/possessable
- We used to convert objects by creating a new binding, then re-assigning its GUID, which meant we didn't have to do any further object fixup, but the code to achieve this was confusing and led to a vulnerability where object
references would not be cleaned up correctly due to the newly created possessable essentially being a temporary object that's immediately thrown away.
- To address this, there is now a function for porting all the contents of one object binding to another, and handles the correct fixup required for parent/child object bindings for both spawnables and possessables.
- Also added codepath to remove any stale object references from the level sequence reference map on PostLoad (this piggy-backs off the PurgeLegacyBlueprints object version which is close close enough to this change to be
identical)
#tests Verified that existing sequences with stale references get cleaned up on load. Verified that repreatedly converting from spawnable<->possessable cleans up references correctly.
Change 3987807 by JohnHenry.Carawon
Updates to the MovieRendering Test Content.
- Fixed the spawnable actors that were overwritten
- Shortend the Lighting example and combined the Intensity and Color tracks
- Organized the Sequence and WorldOutliner to group the examples.
Change 3988151 by Max.Chen
Cine Camera: Enable keying the "Enable Look at Tracking" toggle.
Change 3988880 by Max.Chen
Sequencer: Support enter to add asset for all sequencer track editors that have asset pickers.
#jira UE-57367
Change 3988953 by Max.Chen
Sequencer: Make the track color picker focusable so that it will close when you click away or lose focus.
#jira UE-57210
Change 3988962 by Max.Chen
MovieSceneCapture: Fix EDL export so that it takes into account movie scene frame resolution and desired frame rate.
#jira UE-57365
Change 3988964 by Max.Chen
Movie Scene Capture: Clarified tooltip for bRelativeFrameNumbers. If you specify custom start/end frames for the recording, they will be relative to the playback range.
#jira UE-57308
Change 3989442 by Max.Chen
Fix CIS
Change 3991548 by Matt.Hoffman
Dragging the time slider no longer causes the time slider to ignore snap-to-interval with "Snap to Keys While Scrubbing" when no keys are in range.
#jira UE-57417
Change 3991598 by Matt.Hoffman
Snap to Key while scrubbing now mirrors the behavior of "jump to next key". When there are no tracks selected it snaps to all keys and when there are tracks selected it snaps to only keys from that track.
This also resolves an issue where deleting an object did not remove it from the Sequencer's selection. Undoing a delete already doesn't seem to restore your selection, so removing it from your selection shouldn't change that
behavior.
#jira UE-57417
Change 3991603 by Max.Chen
Sequencer: Disable EditAnywhere for some section properties
#jira UE-53530
Change 3992240 by Max.Preussner
MediaAssets: Implemented dynamic audio sample rate adjustment based on audio/media clock drift
#jira FORT-70638
Change 3992911 by Andrew.Rodham
Sequencer: Fixed saving spawnable state using the wrong spawned object
- We now track the object binding ID so that we can apply the spawned object to the correct spawnable when the asset is saved
#jira UE-57353
Change 3992914 by Max.Chen
Movie Scene Capture: Fix compression quality not being set.
The compression interface wasn't being found through query interface, so no compression was being set. Reworked finding it through the output pins.
Tested running various compression values.
#jira-UE-55488
Change 3992919 by Max.Chen
Sequencer: Convert to possessable now uses object template instead of copying properties (ie. see LevelSequenceActorSpawner). This fixes MIDs getting lost when converting to spawnable and back to possessable.
#jira UE-52400
Change 3993184 by Max.Chen
Sequencer: Don't show +Transform/+Path/+Attach track if the actor has the "Mobility" property hidden.
Set the Landscape, LandscapeProxy and InstancedFoliage "Mobility" property to be hidden since it is static is not supposed to be dynamically movable.
#jira UE-56347
Change 3993238 by Max.Chen
Sequencer: Test for hidden mobility in creating keys as well. Refactored to HasHiddenMobility()
#jira UE-56347
Change 3993978 by Max.Chen
Cine Camera: Enable keying the "Enable Look at Tracking" toggle.
#jira UE-57489
Change 3994039 by Max.Chen
Landscape: Add Mobility to hidecategories on landscape component
#jira UE-56347
Change 3994626 by JohnHenry.Carawon
Updated Movie Rendering Test Content.
- Fixed the overridden spawnables to their proper object types.
Change 3994653 by Christina.TempelaarL
Sequencer: Added Final Cut Pro 7 XML Import functionality, improved Export functionality
#jira UESEQ-358
Change 3995609 by Max.Chen
UMG: Add support for 2d transform mask (translation, rotation, scale, shear)
#jira UE-52951
Change 3995778 by JohnHenry.Carawon
Movie Rendering Test Content Updates
- Adjusted Lights example
- Adjusted Camera example
- Added Marcie sublevel back in
Change 3995942 by JohnHenry.Carawon
QAGame: Moving Movie Rendering test content from Developer folder to Sequencer folder
Also adjusted level visibility, lights and camera example.
Change 3995993 by Christina.TempelaarL
Sequencer: FCPXML Export updates - only export sections if in playback range and media exists, warn if media does not exist. Other updates - removed unused methods and variables, fixed message context naming to be more accurate
#jira UESEQ-358
Change 3996595 by andrew.porter
QAGame: Updating Marcie content in TrackEvaluation level to use Image Plate
Change 3996614 by andrew.porter
QAGame: Adding color test sequence to the sublevel
Change 3996643 by Max.Chen
Sequencer: Fix fbx animation export - rotation and scale channels were flipped.
#jira UE-57509
#jira UE-57512
#jira UE-57514
Change 3996652 by Max.Preussner
Messaging: Fixed delayed messaging using incorrect current time after message router sleep
Based on https://github.com/EpicGames/UnrealEngine/pull/4601
Change 3996801 by Max.Chen
Sequencer: Fix folder active state for non key area sections. Look at track node sections as well as key areas.
#jira UE-57550
Change 3997098 by Matt.Hoffman
Cleaned up some remaining ToDo's in STimeRange.
Change 3998339 by Max.Preussner
Sockets: Added documentation for socket receive functions
Change 3998359 by Max.Preussner
MediaUtils: Started to implement media recorder helper class
Currently only supports BGRA frames in CPU memory. Supporting other formats and buffer types will require conversions on render-thread. I recommend refactoring out the existing conversion code in FMediaTextureResource into a
reusable helper class in the MediaUtils module. This should be a good starting point though.
Change 3998417 by Matt.Hoffman
Keys and Sections can now be moved at the same time inside of Sequencer. Keys can now snap to Sections (and vice versa) instead of just to other Keys. Sections can now be duplicated like keys can.
#jira UE-56995
Change 3998427 by JohnHenry.Carawon
QAGame: Updating test content for the Movie Rendering feature.
- Added an auto activate particle to the beginning of the sequence (it's not part of the sequence at all)
- Added an event receiver blueprint to the Events example
- Added a particle emitter to both sublevels
- Added a camera cut to the end that switches to a separate camera
- The camera zoom in, focus and Look At sections are all separate (not overlapping in the sequence)
- Added a second actor for the camera Look At
- Added a Visibility section for the Actor Hidden In Game track that has possessable and spawnable cube and light
Change 3998537 by Max.Chen
Sequence Recorder: Restore immersive mode when stopping the sequence even if not in PIE.
#jira UE-56407
Change 3999809 by Matt.Hoffman
Removed the "Go To" box from Sequencer and instead placed the current time as an always visible control. The previous shortcut (Ctrl + G) now focuses the new widget directly.
#jira UESEQ-376
Change 4000543 by Christina.TempelaarL
Sequencer: Moving editor-only code from runtime module MovieSceneCapture to editor module MovieSceneTools.
Moved EDL and FCP XML exporters as well as Automated Level Scene Capture.
#jira UESEQ-358
Change 4000706 by Matt.Hoffman
Entering multiple time strings without a number no longer crashes Sequencer.
#jira UE-57672
Change 4001051 by andrew.porter
MediaFrameworkTest: Fixing up some image sources pointing to the wrong location
Change 4001191 by andrew.porter
QAGame: Adding some quick EDL/XML test content to dev folder
Change 4001243 by Max.Chen
Sequencer: Fix import EDL out of range.
#jira UE-57665
Change 4001856 by Matt.Hoffman
Selecting keys and sections at the same time now also works with animation and audio sections.
#jira UE-57716
Change 4002021 by Max.Chen
Sequence Recorder: Fix sequence name incrementing.
If external recording sets the sequence name, use it. Otherwise, use the recording name from the recording group or the recording settings.
#jira UE-57712
Change 4002618 by Max.Chen
Viewport: Update the look at location when updating to a locked actor. This fixes an issue so that popping the view out of a locked actor and manipulating the view will not jump to the previous look at location.
#jira UE-57725
Change 4002979 by Matt.Hoffman
Fixes several edge cases with the end time range that was causing confusion about what the last frame of the sequence was. Dragging the End Frame slider will no longer be off by one tick and jumping to the end via the UI controls
now properly respects snapping and stays inside the play range instead of falling outside of it. Overall behavior does not change though and End Frame should be considered an exclusive frame so that frames 0-150 results in a 150 frame long
animation (which is frames 0-149).
#jira UE-56367
Change 4003185 by Matt.Hoffman
Fixed a regression that prevented a section from being dragged upwards past row 0 which normally resulted in all other rows moving down.
#jira UE-57717
Change 4003193 by JohnHenry.Carawon
QAGame: Updates to test content
- Shortened frames between the examples from 95 to 30
- Separated camera setting tracks
- Lighting example now switches directly from constant red - green - blue
Change 4003369 by Max.Chen
Sequence Recorder: Refresh next sequence regardless of internally stored sequence name.
#jira UE-55757
Change 4003586 by JohnHenry.Carawon
QAGame: Test Content Updates
- Level Visibility track now ends to that the levels are not visible when we move to the next example
- Shortened camera section, removed Z tranform so that we just move left to right and shortened the overall length
Change 4004414 by Max.Chen
Movie Scene Capture: Fix regression where rendering with shot handles would only render the first shot. 3972166 addressed an issue where an extra frame would be rendered by finalizing right when the end frame was reached. This was
hit on the first shot end frame, so instead, do this only for when the last shot is being rendered.
#jira UE-57314
Change 4004765 by Christina.TempelaarL
Sequencer: Fixed bugs in FCP XML import/export.
- Export: fixed sequence default resolution.
- Export: fixed XML files with no shots.
- Export: all sections clipped to playback range.
- Export: fixed incorrect section start/end times due to precision issues.
- Import: fixed incorrectly adding cinematic tracks.
- Import: fixed bugs creating new sections.
#jira UE-57660
#jira UE-57662
#jira UE-57655
#jira UE-57761
Change 4005119 by Max.Chen
Sequencer: Export/import at play rate
Change 4005195 by Max.Chen
UMG: Finish UMG evaluation on stop. Added object version so that existing UMG assets do not change.
#tests - Newly created UMG animation with sections set to restore state now return to their original state. Existing UMG animations with sections set to restore state do not return to their original state.
#jira UE-52285
Change 4005377 by Michael.Karambelas
QAGame: Moving TM-SequenceRecorder and related content out of my developer folder and into /Content/Sequencer/SequencerRecorder/*
Change 4005417 by Michael.Karambelas
QAGame: Fixed a BP compiler in the Level Blueprint of TM-SequencerRecorder.
Change 4005634 by Michael.Karambelas
QAGame: Fix up missing content and broken level sequence in TM-SequenceRecorder after move
Change 4006324 by Max.Chen
Sequencer: Reset if the focused movie scene is null. This fixes a crash if the user is focused in on a shot and undo takes the user past the point of where the shot was created.
#jira UE-57752
#jira UE-47661
Change 4007006 by Max.Chen
Sequencer: Fix FindAvailableRowIndex so that it returns the max row index (and not +1) since it doesn't find any conflicting rows.
#jira UE-57717
Change 4007907 by Max.Chen
Sequencer: Fix crash if there's no animation
Change 4007948 by andrew.porter
QAGame: added test content to dev folder for Record World Space
Change 4008636 by Max.Chen
Sequencer: Fix import fbx not setting values properly and creating additional cameras unncessarily.
#jira UE-57864
Change 4008759 by Max.Chen
Sequencer: Follow up fix for import cameras
#jira UE-57864
Change 4009994 by Matt.Hoffman
Dragging the left or right handles of the Time Range slider in Sequencer will now zoom your view in on the current center of the screen. This prevents the view from being translating as you tried to zoom in which caused issues at
high zoom levels.
#jira UESEQ-407
Change 4010169 by Christina.TempelaarL
Sequencer: FCP XML fixes.
- FCP XML export - no longer clips to playback range
- FCP XML and EDL export - fixed missing last frame of some sections after exporting to Premiere.
- Automated level capture, EDL export - use RoundToFrame instead of FloorToFrame for computing section start/end frames after frame rate conversion.
#jira UE-57802 - partial fix, movie scene capture still needs to render full section rather than clip against playback.
Change 4010287 by Mike.Zyracki
Add quaternion interpolation option to UMovieScene3DTransformSection.
This mimics how Matinee used to work by bascially finding the keys between a time and interpolating the angles as quat's between them.
As noted in the code the algorithm needs to handle the case when the x,y,z Rotation keys all aren't at the same time which was not handled by Matinee.
Also like Matinee, when in quaternion interoplation mode, we need to not display the function cuves since the interpolated and key values are now all different. (Would like to show them but that's a bigger refactor for perhaps just
a one off needed by quaternions).
I added a virtual function UMovieSceneSection::ShowCurveForChannel for this since it needs to be dynamic, not on construction of IKeyArea's, and could be useful for other sections. I could though move the method to just
UMovieScene3DTransformSection and do a cast instead.
Looked into doing a unit test for this but after talking with Andrew P we will work on doign an automated test in EngineQA since that will provide more coverage. Will also add a video the jira.
#jira UESEQ-403
Change 4010713 by Mike.Zyracki
Added option to key a group of transform channels instead of just the changed channel, or all of them.
This is useful for quaternion interpolations where you want rotation keys to be aligned but also useful for other workflows like animating FK Pose to Pose.
Change 4010715 by Andrew.Porter
MediaFrameworkTest: Setting LogMediaUtils logging from VeryVerbose to Verbose to cut back on the spam
Change 4013048 by Max.Chen
Sequencer: Fix play/jump status.
Update the player status for all position methods (Scrub, Jump, Play). Jump means Stopped.
Correctly use PlayTo or JumpTo based on position method.
In PlayInternal, JumpTo with the Stopped state (rather than playing state).
#jira UE-57844
Change 4013479 by andrew.porter
QAGame: Added content in TM-SequenceRecorder to test recording a property on a Cine Camera Component; Press 3 to trigger manual focus distance to increment on a timer
Change 4014323 by Max.Chen
Sequencer: Fix SetPlaybackPosition so that it jumps or plays based on playback status.
#jira UE-57844
Change 4015888 by Max.Chen
Sequencer: Fix crash on paste.
UMovieSceneSections were gathered from the track node's track. For sub track mode, we want to gather only those sections on that track node row.
#jira UE-57951
Change 4015943 by Max.Chen
Sequencer: Fix moving shots up when the mouse pos goes outside of the virtual track area.
#jira UE-57717
Change 4016293 by Max.Chen
Sequencer: Fix relative frame playback end frame calculation so that custom start/end frames remain in the space of the sequence and are not relative.
#jira UE-57308
Change 4017075 by Andrew.Rodham
Sequencer: Corrected initial evaluation range used when calling UMovieSceneSequencPlayer::Play()
Change 4017270 by Christina.TempelaarL
Sequencer: FCPXML importer and movie scene capture
- Use CeilToFrame when converting section start/end frame times to frame numbers in FCPXML and movie scene capture.
- Added support for clip metadata in FCPXML.
- Got rid of redundant TokenizedError message class, no longer needed now that FCPXML is in editor directory.
- Added log messages currently commented out due to exception, still testing.
#UESEQ-358
Change 4018370 by Christina.TempelaarL
Sequencer: fixed FCPXML log messages regarding sections with start/end not divisible by display rate.
#UESEQ-358
Change 4018378 by Christina.TempelaarL
Sequencer: fixed error in previous changelist.
#UESEQ-358
Change 4019457 by Max.Chen
Sequencer: Show event names only when the event track is selected
#jira UE-57897
Change 4022806 by Max.Chen
Sequencer: Fix crash on movie scene capture dialog shutdown if movie capture wasn't even started.
#jira UE-58106
Change 4022894 by Max.Chen
Sequence Recorder: Wrap OpenEditorForAssets after sequence recording within GIsEditor
#jira UE-58084
Change 4024487 by Max.Chen
Sequencer: Add tooltip for quat interpolation
#jira UE-58113
Change 4024562 by Max.Chen
Sequencer: Change path/attach track sequence binding id to currently focused sequence id so that bindings can be created in subsequences
Change 4027414 by JohnHenry.Carawon
QAGame: Checking in content that shows a bug with using particles systems and Delay Before Shot Warm Up.
Change 4028990 by Max.Chen
Sequencer: Fix evaluate sub sequences in isolation.
This check was added with the compile on the fly logic. Not sure why it was necessary but it seems like the sub sequence data needs to be updated in order to evaluate sub sequences in isolation.
#jira UE-58184
Change 4029004 by Max.Chen
Sequencer: Ensure that old binding references are removed when re-assigning actors in sequencer
#jira UE-57898
Change 4030997 by JohnHenry.Carawon
QAGame: Fixing name of the master sequence
Change 4031785 by Michael.Karambelas
QAGame: Added an instance of ThirdPerson Run to TM-SequenceRecorder for Record to Possessable test.
Change 4035548 by Andrew.Rodham
Sequencer: Changed FMovieSceneEvaluationTemplate::TemplateSignature to be a serial number to address non-deterministic cooking issues
- This commit is related to the repro steps found in 3914599 and 3934307, both of which have been verified with this new change.
- Copy of 4031684 from //Fortnite/Main/...
#jira FORT-84852
Change 4036312 by Max.Chen
Sequencer: Fix zoom view range so that it uses the passed in InZoomDelta
Change 4036318 by Max.Chen
Sequencer: Auto size now returns a range and defaults to the channel proxy range so that keyed regions can also be autosized.
Change 4036322 by Max.Chen
Forgot missing change
Change 4036360 by Max.Chen
Sequencer: Fix play rate calculation when skeletal animation section play rate changes.
Change 4037163 by Mike.Zyracki
Weighted Tangent Implementation
Tricky thing is that you need to solve a cubic in order to get the bezier weights for the time part of the curve. See https://www.gamedev.net/forums/topic/474094-help-function-curves-for-animation-interpolation/
Maya provides an implementation in it's dev kit but I didn't use it since it was horribly slow and uses an iterative solution to solve the cubic needed.
Instead I use an old algorithm (Cardano's method), to solve the cubic which should be much faster. Though relative simple to code from principles I just went ahead and used
a version from Graphics Gems 1.
I put this cubic solver directly in MovieSceneFloatChannel.cpp, but will need to move it when we support Rich Curve, maybe to FMath:: (which would probalby require some other
functions for solving quartics, etc.. for completeness.). Also note we resolve this on every evaluation but dont' need to if the interval the time is evaluating hasn't had any
change in values or tangents. So again when we support FRichCurve we can create a Weighted Evaluating class that can hold the cache.
Also with the tangent drags I got rid of the Cardinal position that was used to calculate non-weight tangents from the key point and just quickly getting a direction.
With weighted tangents we need to use the delta instead (otherwise when moving multiple they would all get the same weight based upon distance to the cardinal point. )
For mixed tangents types what I'm defaulting to non weighted if the interval doesn't match. May need to do weighted instead, not sure.
What's left is just FBX import, for tomorrow.
#jira UESEQ-76
Change 4037435 by Mike.Zyracki
Fix fo build warnings from weighted tangent submission.
#trivial
Change 4038091 by Michael.Karambelas
QAGame: Updated a Sequence Recorder group in TM-SequenceRecorder that had an actor missing the animation.
Change 4038374 by Andrew.Rodham
Sequencer: Refined scrubber styling for level sequences and actor sequences
- Scrubber now shows a block the width of a dsplay rate frame, plus a line for the actual evaluated time. UMG reverts back to the previous styling (no block)
- Keys that are outside of the playback range are now drawn with a subdued effect
- Tick labels are no longer drawn when directly underneath the scrubber
Change 4038490 by Max.Chen
Sequencer: Expose tangent weight values in details panel.
Change 4038620 by Andrew.Rodham
Sequencer: Advanced time panel polish
#jira UESEQ-426
Change 4038677 by Max.Chen
Movie Scene Capture: Redirector for MovieSceneTools.AutomatedLevelSequenceCapture
#jira UE-58248
Change 4039739 by Max.Chen
Sequencer: Media track should only be supported by Level Sequence
Change 4040024 by JohnHenry.Carawon
QAGame: Fix EventReciever and OverrideBinding example
The level sequence was set to none so the fix was to set it back to TrackEvaluation_Master.
Change 4040610 by Andrew.Rodham
Curve Editor: Moved weighted tangent switchers to a single toggle command (CTRL+W) and added an icon
#jira 58383
Change 4040882 by Mike.Zyracki
Keep broken when turning on weighted
#jira UE-58435
Change 4041089 by andrew.porter
QAGame: Sequence for Long Tangents bug
Change 4041498 by Mike.Zyracki
Turn off weighted when going auto to prevent large tangents.
Do it both in UI and when doing AutoSetTangents()
to really make sure it doesn't happen.
#jira UE-58452
Change 4041752 by andrew.porter
MediaFrameworkTest: Adding some better logging for setting rates when not supported. Also ignoring commiting URL when there is no text
Change 4041896 by Matt.Hoffman
The transform dialog box now transforms selected keys and sections, instead of just keys.
#jira UE-58265
[CL 4044405 by Max Chen in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3801826 by Max.Chen
PR #4304: Level Sequence crash fix - Guarded against dereferencing null componen. (Contributed by DSDambuster)
Change 3801828 by Max.Chen
PR #4302: Movie Scene Visibility Template unitialised variable, causing random . (Contributed by DSDambuster)
Change 3801837 by Max.Chen
Sequencer: Delay spawning/construction for convert to possessable. This fixes a bug where property values would be lost when
converting back and forth from possessable to spawnable.
#jira UE-52400
Change 3801841 by Max.Chen
Sequencer: Make spacer nodes not selectable.
PR #4194: Improvements to Sequencer (Contributed by projectgheist)
#jira UE-53117
#jira UE-52139
Change 3804183 by Max.Preussner
MediaAssets: Added missing lock in media sound component
Change 3805414 by Max.Preussner
MediaAssets: Setting valid GUID when initializing media texture resource
Change 3819578 by Max.Chen
PR #4370: When enabling the "MovieCapture", do not turn off the Stereo-3D display. (Contributed by yehaike)
#jira UE-53647
Change 3823414 by Max.Chen
Curve Editor: Lock down the first and last keys in the redundant keys removal range so that they're unaffected.
#jira UE-53591
Change 3826406 by Max.Chen
Sequencer: Move OnStartedPlaying() to within first update in UpdateTimeCursorPosition(). This fixes an issue where setting the
hud/player visibility was getting stomped on later.
#jira UE-52772
Change 3827044 by Max.Preussner
MediaAssets: Added sprite visualization to media sound component
#jira UE-53594
Change 3827988 by Max.Preussner
MediaPlayerAssets: Fixed Media Texture is not linked to Media Player when created together
#jira UE-53532
Change 3828506 by Max.Preussner
MediaPlayerEditor: Added attenuation visualizer for media sound components
#jira UE-53594
Change 3832590 by andrew.porter
EngineTest: Added a keep state check in Property Animation sequencer test
Change 3833053 by andrew.porter
EngineTest: Adding Hierarchical Bias test
Change 3835683 by andrew.porter
EngineTest: Adding UMG Animation screenshot test
Change 3836076 by Max.Chen
Sequencer: Fix audio volume and pitch multiplier deprecation.
Change 3836230 by andrew.porter
EngineTest: Adding Sequence Bone Position automation test
Change 3836347 by Max.Chen
Sequencer: Fixes to shot name parsing.
When a shot doesn't contain a shot number, assume, [ShotName]_[TakeNumber].
When duplicating a shot, put the new shot in the same path of the original shot, so that the take numbers will increment
properly.
#jira UE-51868
Change 3836552 by Max.Chen
Sequencer: Sub section now has a takes menu
Change 3838094 by Max.Chen
UMG: Fix template finish not getting called on stop. This fixes a bug where sections aren't restored when finished.
#jira UE-52285
Change 3838708 by Max.Chen
Sequencer: Add notification when the blend type is changed.
#jira UE-54046
Change 3840295 by Max.Chen
Sequencer: Fix copy/paste crash for lights
#jira UE-54084
Change 3840957 by Mike.Zyracki
Added Show Only Keyable and Show Only Animated to the filter list in the property editor.
Added IsPropertyAnimated to IDetailKeyframe Interface which already had support for showing properties which are keyable (which
is used for the key icon next to the properties.). Could have created another interface but then would have had to mimic the sequencer
binding, releasing also, so this seemed best way.
One issue still left is that custom built detail items currently don't store associated properties(usually) and so certain
properties, in particulalry transforms, won't show up as keyable or animated. Note this also shows up with the keyable icon not showing
up next to transform tracks, and other filters like Show Only Modified not working with transforms/customs. Not sure best way to tackle
this.
#jira UESEQ-328
Change 3841756 by Max.Chen
Sequencer: Fix unbound possessable components when pasting spawnables.
#jira UE-54104
Change 3843950 by andrew.porter
EngineTest: Renaming LevelStreaming tests/content to LevelVisibility
Change 3844082 by Mike.Zyracki
Missing file for animated filter in property editor.
When finding if a track is animated we need to find it but we can't easily induce the MovieTrack class for any particular
property. So we don't set a class for it and just search by it's ID and name.
#jira UESEQ-328
Change 3846902 by Max.Preussner
ImgMedia: Fixed image media player never finished initialization if loading failed
#jira UE-54247
Change 3849820 by Mike.Zyracki
Reassigning deleted widgets didn't work since the menu extender mechanism needs a valid UObject in order to perform an operation
on it. So to fix we replaced GetObjectBindingContextMenuExtender in WidgetBlueprint with new delegate mechanism
(OnBuildCustomContextMenuForGuid) that supports FGuid in addition to UObjects which is needed to handle re-binding deleted widgets. Note
that the default sequencer hacks this for replacing deleted actors in SequencerObjectBindingNode to check to see if a LevelSequence is
active. We could move to this mechanism there also.
#jira UE-53163
Change 3852211 by Max.Chen
UMG: Indicate name of the property that is not bound.
#jira UE-54350
Change 3854120 by Max.Chen
Sequencer: Fix sibling folders being allowed to have the same folder name.
#jira UE-54363
Change 3854627 by Max.Chen
Sequencer: Step to next/previous key should work for all tracks if there aren't any selected.
#jira UESEQ-391
Change 3855825 by andrew.porter
EngineTest: Adding animation blending automation test
Change 3855950 by andrew.porter
EngineTest: Adding correct expected valuues to animation blending test
Change 3856237 by Matt.Hoffman
UESEQ-336 - Sequencer Track Reordering
Adds the ability to re-order Master Tracks, Folders and Object Bindings within sequencer hierarchies (including UMG). Adds the
ability to do a one-off sorting of the content under the old sorting behavior if the user wants to reset their layout to how it was
under legacy behavior.
Modifies SequencerTrackNodes, SequencerFolderNodes and SequencerObjectBindingNodes to handle CanDrop/OnDrop for above, below and
ontop of.
Fixes a Slate Issue that forcibly expanded a TreeviewRow if an item handled OnDrop. Slate will now only forcibly expand the row
if the item says the drop happened ontop of the item, and not above or below it like it previously did.
Change 3856503 by andrew.porter
EngineTest: Adding automation test for using animation blueprint with blend multi node in sequencer
Change 3857875 by Max.Chen
Sequencer: Assign the sequence id after the template is compiled.
#jira UE-54462
Change 3858344 by Max.Chen
Sequencer: Prevent Goto and Transform boxes from overlapping by allowing them to be visible at the same time in an autosized
horizontal box. Also, added close button to the goto box.
PR #4425: Prevent Goto and Transform boxes from overlapping in Sequencer ... (Contributed by projectgheist)
#jira UE-54210
Change 3860566 by andrew.porter
MediaFrameworkTest: Set the option to index 0 for the audio and video track list by default
Change 3860654 by andrew.porter
EngineTest: Enabling Camera Cut + FOV test
Change 3860981 by andrew.porter
EngineTest: Updating skeletal mesh tests with a delay after set playback position
Change 3861256 by Max.Chen
Sequencer: Add all bindings if none selected.
#jira-54440
Change 3862154 by Andrew.Rodham
Added TimeManagement module
Change 3862424 by andrew.porter
EngineTest: Turned on the test Bone Positions with Blend Multi Node
Change 3862573 by andrew.porter
EngineTest: Adding test to compare bone positions in a sequence that is blending an animation that is using an AnimBP
Change 3865117 by Max.Chen
Sequencer: Stop auto scroll on mouse release of movement.
#jira UE-31212
Change 3865303 by Max.Chen
Sequencer: Add drag and drop transactions
#jira UE-54662
Change 3865304 by Max.Chen
Sequencer: Fix crash when an actor factory is not found.
Change 3865361 by Max.Chen
Sequencer: Don't change the camera/shot lock button when popping out of a sequence.
#jira UE-54665
Change 3865412 by Max.Chen
Sequencer: Determine whether a transform track is for a camera by using the spawned object or template
#jira UE-54666
Change 3865685 by Max.Chen
Sequencer: Clear autoscrub offset when stopping autoscroll
#jira UE-31212
Change 3865886 by Max.Chen
Sequence Recorder: Log an error if the number of frames changes while recording. This can happen if the skeleton changes while
recording.
#jira UE-48715
Change 3866925 by Andrew.Porter
MediaFrameworkTest: Changing the current PNG test video image sequence to 1024 x 576
Change 3867705 by andrew.porter
QAGame: Adding Audio Sort Sequence to dev folder
Change 3867890 by andrew.porter
QAGame: Adding a sequence for testing a sorting crash to my dev folder
Change 3872628 by Max.Chen
Movie Scene Capture: Split delay before warmup into split delay before shot warmup so that there's separate controls for when
the movie scene capture warmups up vs. shot boundaries.
Change 3873131 by Matt.Hoffman
UE-54732 - Crash reordering a folder with a track.
This was caused by folders being the only type of track to check if someone was putting a parent track into a child track.
Object Binding tracks and Tracks now check as well so that you can't use the above/below drop targets to add parents as children.
This also fixed a typo in the localization keys.
#jira UE-54732
Change 3873301 by Mike.Zyracki
Added ability to support continous euler angle changes when changing rotations, in particularly with the rotation gizmo's. To do
this we effectively added a form an of 'euler filter'(https://en.wikipedia.org/wiki/Euler_filter) to find the closest euler angle to the
current euler angle.
Three functions were added to FRotator to make this possible, one to get the euler angle that's has the same rotation as it, one
to get the difference between two euler angles via Manhattan distance and a third using the previous two to choose a Rotator value
that's closest to it. We then use these functions before calling UComponent::SetRelativeRotation to make sure we use the correct Euler
after the Quat conversion. We also no longer limit(bound) the euler angles to -180,180, which is obviously necessary to avoid flips.
I also changed how we caluclate yaw and roll when pitch is -90 or 90 to make it the standard approach of zeroing out roll and
just setting yaw. Main reasons are the previous implementation had precision issues so things like 180, 90, -180 would show up due to
numbers being nearly zero but negative,(this would break any smooth interpolations), and this facilitates having a 'gimbal' rotation
mode (like Maya, Blender etc..) if we ever want that also. If needed we could keep the previous implementation but would need to add
some FMath::IsNearlyZero checks, with less performance.
Note we only do this special filtering when applying delta's to actors or components in the editors, which then call
UComponent::SetRelativeRotationExact, which is a new function to foces the RelativeRotation to be equal to the new rotation. This allows
us to store un-nomalized Rotators at the cost that the RotationCache may be broken. We didn't change any of the other UComponent
functions that set rotations (via Quats or Transforms) so they will still be bounded and unwound.
In SetInternalWorldLocationAndRotation we only set the rotation if the rotation has changed, which fixes the rotation getting
changed and re-normalized if just translate happens.
In TransformTrackEditor, we correclty use the bUndwing flag and in MovieScene3DTransformSection there was an un-needed winding
check there, it will be unwound earlier if needed, which happens if Sequence Recording is happening. Max we should talk about what to do
about this .
Note the euler angle drag via the widget is still bound to 0-360. I think we should just unbound that now since the rotations
value are now unbound.
This review now includes fixes suggested by Zak.
#jira UE-UE-22228
Change 3873483 by Matt.Hoffman
Sequencer Tracks can now be inserted above the spacer at the bottom of the tree.
#jira UE-54706
Change 3873899 by Max.Chen
Sequencer: Add section selection throbbing
Change 3873908 by Max.Chen
Movie Scene Capture: Added logging per frame
Change 3873924 by Matt.Hoffman
Adds the ability to store Sequence Recorder setups into profiles that stay with the map and can be re-loaded later. Profiles
store the Actor Recordings so the settings for each actor should carry with them.
#jira UESEQ-339
Change 3874726 by Matt.Hoffman
Disable drag-and-drop targets on spacers that come between rows in Sequencer. This prevents extra drag/drop targets showing up
between each row.
#jira UE-54706
Change 3874862 by Matt.Hoffman
Audio Track no longer gets reordered when adding sub-audio tracks, as sub-tracks are no longer counted towards the sorting order
index when normalizing indexes.
#jira UE-54727
Change 3875905 by Matt.Hoffman
Disable Fade Track UI if a fade track already exists in the sequence.
#jira UESEQ-393
Change 3876163 by Max.Chen
Sequencer: Swap the camera object to the camera component's owner if it's not the same.
#jira UE-54874
Change 3876971 by Andrew.Porter
EngineTest: Moved Media Player Seek test to new folder. Also enabled the test with new ground truth image.
Change 3877040 by Max.Chen
Cine Camera: Split camera properties to two groups, "Camera Options" and "Camera Settings". The cine camera now hides properties
in the "Camera Settings" group so that properties like bConstrainAspectRatio (in the "Camera Options" group) can be visible.
#jira UE-54192
Change 3877763 by Max.Chen
Curve Editor: Fix curve changed on end drag so that only curves that had keys/tangents that were changed receive notification,
otherwise all loaded curves were getting notified that they were changed.
#jira UE-54951
Change 3878234 by Matt.Hoffman
Disable "Drop Below" targets for Sequencer Tree nodes to prevent a confusing UX issue where dropping underneath a Object Binding
Node puts it after the object binding node but the UI looks like it's inserting it inside the Object Binding node.
#jira UE-54743
Change 3879359 by Mike.Zyracki
If a track is inactive we dim it a bit which seems to be the UE4 way to show inactive or disabled state. We changed the active
logic so that all subtracks need to be inactive for the track to also be inactive(instead of all active for active). This conforms to
how the active state actually works, e.g if you have two sections and only one is active the track is still active above it.
#jira UESEQ-388
Change 3879462 by Max.Chen
Sequencer: Allow dragging onto a particular row which would move out any overlapping sections to make space for the newly
created section. Newly created sections are now selected and throbbed to draw attention to themselves.
#jira UE-54664
Change 3879464 by Max.Chen
Sequencer: Fixed overlapping ranges being inserted into the evaluation field during compilation
- The issue was that track segments that had been combined with adjacent segments (due to them being identical) would
potentially cause a subsequently compiled frame to overlap with a range that had already been inserted into the evaluation field.
- The insertion code previously asserted that only minor overlaps were catered for (due to fp rounding errors) and assumed
that a supplied range could not entirely contain any other range in the field.
- The solution is to supply the insertion time along with the range to know exactly where the data should live in the field,
and crop the range to the maximum allowable space between adjacent ranges.
#jira UE-54922
Change 3879590 by Matt.Hoffman
Items that are now added to the Sequencer via the "+Track" menu will be selected after being added.
Items can now be added inside of folders instead of just to the root level.
#jira UE-27397
Change 3879612 by Mike.Zyracki
Display Nodes with no children are always active.
#jira UESEQ-388
Change 3879730 by Matt.Hoffman
Sequence Recorder's actor recording groups now remove items from the group when removed via the UI.
#jira UESEQ-339
Change 3880256 by Mike.Zyracki
Fix issue with inactive display with folders and other track nodes.
#jira UESEQ-388
Change 3883491 by Max.Chen
Fix issue where tick is skipped due to last ticked pose isn't cleared after AnimInstance changes.
Copy from Release-4.19
#jira UE-51323
Change 3883603 by Max.Chen
Movie Scene Capture: Add option toggle disable screen percentage. By default this is on (no change in current behavior).
#jira UE-51898
Change 3885074 by Max.Preussner
MediaCompositing: Resetting media texture & freeing resource on section end; removed dead code
Change 3887220 by Max.Preussner
MediaCompositing: Defaulted media section duration to 1 sec (since we do not know the actual duration in most cases)
Change 3887478 by Matt.Hoffman
Sequences now show [Inactive] in their title bars when they're disabled. This helps communicate why a sequence isn't being
evaluated.
#jira UE-51469
Change 3888985 by Max.Chen
Movie Scene Capture: Clamp HDR Compression Quality between 0 and 1.
#jira UE-55136
Change 3893519 by Max.Chen
Sequence Recorder: Clarified tooltip for bRecordNearbySpawnedActors - spawned actors will still be recorded if they match the
ActorFilter.
#jira UE-55238
Change 3893546 by Max.Chen
Sequence Recorder: If a selected actor already has a recording, add a blank recording.
#jira UE-55239
Change 3894044 by Max.Preussner
MediaCompositing: Added support for seeking into a media section
Change 3894310 by andrew.porter
MediaFrameworkTest: Adding Img media sources for 1080 and 2160 ravent test content
Change 3894426 by Max.Preussner
MediaAssets: Letting media textures with AutoClear retain their clear color when player is reset
Change 3895717 by Max.Chen
Sequencer: Null checks to prevent crash when saving the default state of a spawnable
#jira UE-55304
Change 3897388 by Max.Chen
Sequencer: Don't update current time to be within the view range when stepping into a sequence.
#jira UE-55322
Change 3897452 by Max.Chen
Audio: Fix crash when trying to record audio without any active capture devices. Log warning if the number of input channels is
not 1 or 2.
#jira UE-55223
Change 3897619 by Max.Preussner
MediaCompositing: Removed commented out code
Change 3898072 by Max.Chen
Sequencer: Override the animation asset in the player state if it doesn't match the animation asset that's being evaluated.
#jira UE-55328
Change 3898272 by Max.Preussner
MediaPlayerEditor: Made slate brush constants static
Change 3898704 by Max.Chen
Sequencer: Skip if the binding id's sequence can't be found.
#jira UE-55337
Change 3899855 by Max.Preussner
MediaCompositingEditor: Added cache state visualization to media track
Change 3900300 by Max.Preussner
MediaCompositingEditor: Added loop indicators to media sections
Change 3900694 by Max.Preussner
ImfMedia: Looping cache only when player is looping
Change 3900892 by Max.Preussner
Stats: Added stats category for media framework
Change 3900954 by Max.Preussner
MediaCompositing: Don't evaluate at the end of media section
Change 3901348 by Max.Preussner
Core: Replaced TLruCache autos for better readability
Change 3901655 by Max.Preussner
ImgMedia: Added more perf stats to EXR reader
Change 3901972 by Max.Preussner
MediaAssets: Added getter for media player in media sound components
Change 3902233 by Max.Preussner
MediaAssets: Enabling media textures to receive samples right after player is assigned
Change 3902238 by Max.Preussner
MediaCompositing: Working around init/shutdown idiosyncracies in sequencer
Change 3904045 by Max.Chen
Sequencer: Fix copy/paste crash. Only process UMovieSceneCopyableBinding and objects that can be spawned by the movie scene
spawn register.
#jira UE-55314
Change 3905605 by Max.Chen
Sequencer: Restrict spawnables from being created if they have a ClassWithin that UMovieScene is not a child of.
#jira UE-55429
Change 3906550 by Max.Chen
Sequencer: Add media track icon
#jira UE-55480
Change 3907101 by Max.Chen
Sequence Recorder: Fix bugs related to not recording a level sequence. There were certain assumptions that creating a level
sequence meant that sequence recording was in progress. This is not always the case - the recorders can record animation assets and not
create a level sequence.
Changed the notion of IsRecording() to having at least one actor recording that is recording. Countdown timer, recording
displays, etc should function if IsRecording() and not based on whether a level sequence is created.
#jira UE-55485
Change 3907247 by Max.Chen
Sequence Recorder: Fix crash not removing PrepareToCleanseEditorObject delegate. Repros when opening sequence recorder, closing
it, and then opening or creating a level.
Change 3910343 by Max.Preussner
Core: Added async helper for executing functions on a given thread pool
Change 3910346 by Max.Preussner
ImgMedia: Added separate thread pools for loading/decoding and deleting image frames
Change 3910829 by Max.Preussner
Profiler: Increased visible range of profiler graph
Change 3910841 by Max.Preussner
MediaCompositing: Displaying asset name instead of full media source path in media section
Change 3910870 by Max.Preussner
ImgMedia: Using deallocation thread pool only in debug builds
Change 3919642 by Max.Chen
Sequence Recorder: Clarify active tooltip
#jira UE-55661
Change 3919660 by Max.Chen
Sequencer: Sequence template source signatures are now also compared to catch the case where a sub-sequence asset has been saved
but not modified
- The following sequence of events exposes this issue:
- Create a master sequence with a single shot that spawns a cube
- Add this sequence to a level and set it to auto-play
- Save everything and restart
- Resave just the inner shot asset without opening it
- PIE
- The inner shot never spawns its cube because its template was wiped on save, but its signature never changed. Since the
master sequence previously didn't check the template source signature, it ends up trying to evaluate an empty template.
#jira UE-55626
#jira UE-55490
Change 3921825 by Max.Chen
Sequencer: "Run Construction Script in Sequencer" is off by default for blueprints but on for Sequencer. This allows the content
author to switch it on for specific blueprints and sequencer will be default, run those with construction scripts enabled.
Change 3922232 by Max.Chen
Sequence Recorder: Reset countdelay on stop.
#jira UE-55755
Change 3922306 by Max.Chen
Sequence Recorder: Don't automatically mark transforms to be recorded by sequence recorder. Instead, log a warning if the user
toggled it off to warn that the resulting animation might not match gameplay.
#jira UE-55758
Change 3922912 by Max.Chen
Sequence Recorder: Fix refresh next sequence name
#jira UE-55757
Change 3927654 by Max.Chen
Movie Scene Capture: Added format mapping for the name of the current camera
#jira UE-55769
PR #4537
Change 3927658 by Max.Chen
Sequencer: Added fbx property mapping for "FocusDistance" to "FocusSettings.ManualFocusDistance"
#jira UE-55782
Change 3932022 by Max.Chen
Sequencer: Add import animation track section to next available row index.
#jira UE-55892
Change 3933919 by Max.Chen
Sequencer: Jump to playback start frame and not 0 to start playback for recording.
#jira UE-55933
Change 3934307 by Andrew.Rodham
Sequencer: Add template signature that is re-generated every time the base template is regenerated, which invalidates evaluation
fields
This fixes an issue where the same sequence is instantiated multiple times in a sequence.
If the source sequence was saved, its template would be wiped, which would invalidate the template ID
When an instance tries to evaluate the master template, it would only invalidate a range in the evaluation field that was the
hull of any invalid sub sequences overlapping the current time, potentially leaving invalid data in the evaluation field at positions
later (or earlier) on in the sequence
When the sub template was re-generated, it receives the same SequenceSignature as it had before (because the sequence hasn't
actually changed), which causes the stale evaluation field data to fail the IsDirty check (because the sequence is the same as it
thought, but the *template* has changed)
This has been addressed be adding a signature to templates themselves, and checking both the template signature and sequence
signature as a part of the IsDirty check. This ensures that we regenerate if either the template, or the sequence have changed.
#jira UE-55934
Change 3936327 by Andrew.Rodham
Sequencer: Removed increment when trimming right
UMovieSceneSection::TrimSection already explicity assigns an exclusive bound to the time passed in. The new behavior means we
can trim a section to the right, and insert another section without changing the time to create adjacent sections.
#jira UE-42652
Change 3936328 by Andrew.Rodham
Fixed KeyFrameManipulator assignment operators and copy/move constructors
- These types are potentially self-referential so cannot use default constructors/assignment
Change 3936330 by Andrew.Rodham
Converted UMGSequencePlayer to use frames internally
#jira UE-54878
Change 3936726 by Max.Chen
Sequencer: Set track node as the parent of the key area node. The key area switcher needs the object binding id from the parent
object binding node. Without this, the binding to the external value fails.
#jira UE-55931
Change 3936775 by Max.Chen
Sequencer: Should stop or loop should compare DurationFrames with Current Time from StartTime.
The bug is that if you set 30 warmup frames in movie rendering for a range of 0-100, the FrameRange will be starting at -30 and
have a duration of 130. Without this fix, the playback will continue until frame 130, rather than 100.
#jira UE-55933
Change 3936935 by Matt.Hoffman
Easing Curves are now represented in Play Rate resolution instead of internal resolution.
#jira UE-55937
Change 3937069 by Matt.Hoffman
Users can toggle if the is infinite on each side, limited by which tracks support infinite ranges.
#jira UE-55891
Change 3937516 by Max.Preussner
ImgMedia: Added support for single-threaded platforms
#jira UE-55986
Change 3937826 by Max.Preussner
MediaAssets: Disabling media sound components on HTML5 if AudioMixer is not enabled
Change 3937997 by Max.Chen
Curve Editor: Add Zoom to Fit Curves so that selected curves from Sequencer can be focused on. Tested that undo doesn't re-zoom.
#jira UE-55935
Change 3938000 by Max.Chen
Sequencer: Stop all sounds before generating audio waveforms.
#jira UE-55951
Change 3938376 by Max.Preussner
XGEController: Disabled XGE Controller in single-threaded apps to prevent crash
Change 3938444 by Max.Preussner
Core: Added async support for single-threaded applications
Change 3938445 by Max.Preussner
Networking: Added support for single-threaded applications in UDP socket sender/receiver
Change 3938447 by Max.Preussner
Messaging: Added support for single-threaded applications
Change 3939432 by Max.Chen
Sequence Recorder: Append command list to global level editor actions so that shortcuts are accessible in level editor.
#jira UE-55798
Change 3940229 by Andrew.Rodham
Added prospective display rate upgrade to UMovieScene::PostLoad
- There was previously some very odd behaviour that would assign the fixed frame interval only when a sub sequence was focused
in SSequencer. This meant that many sequences could have a frame interval of 0 set in the data.
- Under the old method of snap interval display this would have fallen back to getting the display interval from the sequencer
settings, but we no longer look at these.
- The USequencerSettings properties have been removed and in their place, a prospective data upgrade for sequences that have a
fixed frame interval old 0fps that sets the play rate to the previous defaults based off the old USequencerSettings defaults.
- This could end up 'changing' the display rate for sequences where the user has changed the snap interval in the settings for
a particular sequence editor, but there's not much we can do about that given we don't have access to the USequencerSettings classes in
UMovieScene
#jira UE-55919
Change 3940277 by Andrew.Rodham
Sequencer: Added ability to default frame resolutions and play rates for newly created actor sequences
Change 3940378 by Andrew.Rodham
Sequencer: Post move import dialog now defaults to the playback framerate of the sequence, and floors to frame numbers
Change 3940559 by Andrew.Rodham
Reinstated primed or recording sequence color
Change 3940642 by Max.Preussner
ImagePlate: Removed image plate media playback functionality
Change 3940843 by Max.Preussner
Core: Made TCircularQueue actually thread-safe; improved code comments
Change 3940860 by Max.Chen
Sequencer: Changed StructNameToKey to StructPathToKey
Previously, keying a PropertyPath of [RenderTransform][Shear][X] would get trimmed to X, which doesn't map to a channel name as
considered by Sequencer2dTransformTrackEditor. Instead, trim the resulting property path to [Shear][X] so that track editors can
determine the desired struct path and channels to key.
#jira UE-52966
Change 3941292 by Mike.Zyracki
Fix for trajectories out of range not showing up.
1) If we had no key data we would pop the time, so wouldn't get the section ranges.
2) Calculating of upper bound was wrong, checking against -1 and not key == num of keys when doing algo::lower_bound.
3) No need to do the Bck-- for the bakward iterators since we fixed#2. We start now from the upper bound correctly.
4) If we had no keys (at section start,end) we would incorrectly say we were any key type, so since we draw constant keys as
dashed we would do so incorrectly around section end points.
#jira UE-55929
Change 3941424 by Max.Chen
Curve Editor: Change Zoom to Fit to use TArrayView
Change 3941498 by Max.Preussner
Core: Added FMath::DivideAndRoundNearest function
Change 3942097 by Matt.Hoffman
Drop Frame Timecode Support for NTSC rates.
Change 3942104 by Matt.Hoffman
Sequence Recorder Group is no longer visible inside the World Outliner after using one.
#jira 55266
Change 3942107 by Max.Chen
Sequencer: Resurrect logic to find or extend an existing section when adding keys.
Change 3942330 by Max.Chen
Sequence Recorder: Better tooltip for default animation settings.
#jira UE-55636
Change 3942339 by Max.Chen
Sequence Recorder: Better tooltip for default animation settings.
#jira UE-55636
Change 3942507 by Andrew.Rodham
Sequencer: We no longer pad the time overlap threshold with a small number that is not scaled by the current zoom level
- The presence of this pad was causing keys that were far apart to be grouped when zoomed in a long way
Change 3942509 by Andrew.Rodham
Sequencer: Only pad total view range, rather than section range as well when retrieving keys to render
- This stops us from rendering keys that are within the view range, but outside the section range
Change 3942512 by Andrew.Rodham
Added transactions to some sequencer details customizations
Change 3942513 by Andrew.Rodham
Sequencer: Reinstated validation checks to UMovieSceneSection::SetStartFrame and SetEndFrame, changed erroneous uses to use
SetRange
Change 3942560 by Andrew.Rodham
Pass by rvalue reference to appease error C2719 on Win32
('InChannels': formal parameter with requested alignment of 8 won't be aligned)
Change 3942697 by Andrew.Rodham
Newly Created Level Sequences and Actor Sequences now default to 24000 fps frame resolution (+/- ~24hrs range, supporting all
integer rates + 23.976)
Change 3942700 by Andrew.Rodham
Sequencer: Added legacy out-of-bounds errors for times that are not supported by the current legacy upgrade frame resolution
Change 3942989 by Max.Preussner
Core: Fixed circular queue count calculation
Change 3943538 by Max.Preussner
MediaAssets: Reverted workaround for procedural audio log spam in HTML5
(Actor component initialization cannot be skipped if the component is used in a level)
Change 3944071 by Max.Preussner
QAGame: Fixed Media Texture keeps last frame of Media when PIE ends
#jira UE-53360
Change 3944292 by Max.Chen
Sequencer: Added extra flags to ensure that asset initialization does not occur on template actor sequences
#jira UE-56113
Change 3944364 by Max.Chen
Sequencer: Prevent circular shot/master tracks.
Tested adding master -> child -> master as drag and drop cinematic shot tracks and sub tracks as well as through the + button.
#jira UE-56091
Change 3944422 by Max.Chen
Sequence Recorder: Disable transform recording if off.
#jira UE-56061
Change 3944745 by Andrew.Rodham
Sequencer: Key rendering fixes
- Fixed assert that occured when keys happened to reside on some times due to KeyTime + TimeOverlapThreshold - KeyTime being
slightly larger TimeOverlapThreshold
- Fixed keys sometimes being clipped when zoomed right in due to lack of half-frame offset
- Added missing documentation to MovieSceneTimeHelpers.h
#jira UE-56107
Change 3945231 by Andrew.Rodham
Sequencer: Reconstruct channel proxy on Serialize to catch all cases of undo/redo, PostLoad and duplication
#jira UE-56089
Change 3945301 by Andrew.Rodham
Sequencer: Added safety checks during initial sequence recording to guard against applying negative or 0-sized sequence ranges
#jira UE-56125
Change 3946627 by Max.Preussner
Fortnite: Fixed game crashes closing editor while in PIE - Pure virtual function being called
#jira UE-56144
[CL 3946896 by Max Chen in Main branch]
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3631172 by Max.Chen
Sequence Recorder: Record to the specified target animation for the target actor only. Newly tracked components will have newly created animations so that they don't record to the same target animation assets.
#jira UE-49304
#jira UE-49216
#jira UE-49300
Change 3632895 by Max.Chen
Sequencer: Fixed crash caused by erroneous persistent references to FSequencer.
#jira UE-48647
#jira UE-48383
#jira UE-47661
Change 3634864 by Max.Chen
Sequencer: Bake transforms
#jira UE-49136
Change 3634879 by Max.Chen
Sequence Recorder: Close the target animation asset editor if it exists before recording into it.
#jira UE-49216
Change 3650553 by Max.Chen
Sequencer: Switch shot display name to FString so that it's not localized.
#jira UE-49824
Change 3650848 by Darren.Pegg
Linear Timecode Plugin - first pass - still needs output interface
Change 3653174 by Max.Chen
Sequencer: Allow blending for vector tracks
#jira UE-49809
Change 3653205 by Max.Chen
Sequencer: Fix default burnin content.
#jira UE-49824
Change 3653570 by Darren.Pegg
Win32 Build fix: EmptyLinkFunctionForStaticInitializationLinearTimecode
Change 3658673 by Darren.Pegg
Timecode - Adding Accessors, renaming files
Change 3663633 by Max.Chen
Sequencer: Add option to export an object's transform to a camera anim asset.
#jira UE-49599
Change 3665971 by Max.Chen
Sequence Recorder: Add an active column for sequence recorder
Change 3666066 by Max.Chen
Sequencer: Suspend broadcast of selection delegates when performing multiple operations.
#jira UE-40371
Change 3671057 by Max.Chen
PR #4055: Fixed ACameraRig_Rail PreviewMeshes to match Spline Component (Contributed by Hemofektik)
Change 3677104 by Max.Chen
Sequencer: Add transaction for easing length.
#jira UE-50588
Change 3677105 by Max.Chen
Sequencer: Restore pre-animated state when changing active channels.
#jira UE-50473
Change 3681069 by Max.Preussner
LinearTimecode: Processing samples only if they have been dequeued successfully
Change 3681783 by Andrew.Rodham
Control Rig: Fixed crash attempting to zero out array with the wrong size
Change 3681949 by Darren.Pegg
OnTimecodeChange Delegate, Comments in DropTimecode, DropTimecode to string auto conversion
Change 3682222 by Andrew.Porter
EngineTest: Enabled MP4 Media Player test in the level ShaderModels. Set the texture ShaderModelPlayer_Video to use the correct media player.
#jira UE-47213
Change 3683523 by Andrew.Rodham
Sequencer: Display sub sequence name on binding ID pickers rather than the sub section name
Change 3684318 by Max.Chen
Sequencer: Fix crash in dragging a level sequence into the tree area.
#jira UE-50902
Change 3687609 by Max.Chen
Curve Editor: Add ModifyOwnerChange to CurveOwnerInterface. Call mark as changed when modifying keys or tangents.
#jira UE-50882
Change 3687617 by Max.Chen
Sequencer: Move some commands out of the generic sequencer command bindings so that they don't take over the viewport. ie. End for "Snap to Floor" should still function in the viewport.
#jira UE-50997
Change 3687969 by Andrew.Rodham
Sequencer: New compile on the fly logic
- Sequencer is now able to compile partially or completely out-of-date evaluation templates from the source data as it needs. This affords much more efficient compilation when working within sequencer.
- Added the concept of 'instance data' for sub sequences, available through the IMovieScenePlayer interface or persistent data stores. This replaces the compilation of specific templates for control rig templates.
- Moved sub tracks and sections to MovieScene module
- Removed the concept of shared tracks. Any previous uses should port over to shared execution tokens instead.
#jira UE-46789
Change 3689884 by Max.Chen
Sequencer: Remove null tracks on object bindings. Tracks can become null if they're from a plugin and the plugin is disabled.
#jira UE-50839
Change 3690130 by Andrew.Rodham
Sequencer: Fixed UMG animations not working with blueprint nativization
Change 3690162 by Andrew.Rodham
Sequencer: Fix assert when using filler shots
#jira UE-51029
Change 3691904 by Max.Chen
Sequencer: Fix overlap by looking at the key behind as well. This fixes a bug if there's 3 keyframes on consecutive frames, if you zoom out, you should see two bordered keys when the overlap threshold is passed.
#jira UE-50993
Change 3692149 by Andrew.Rodham
Sequencer: Change FSortByPrioritySegmentBlender::Blend to fall back to flag comparison if any sections are null for automation tests.
- Combinations of null/non-null will never happen in the wild because we either run with sections or without, but the static analysis doesn't know that
Change 3692212 by Andrew.Rodham
Core: Changed TRange to pass-by-value for small types, inlined some functions
Change 3693044 by Max.Chen
Sequencer: Update pivot location for selection when closing sequencer.
#jira UE-51132
Change 3693061 by Max.Chen
Sequencer: Remove force evaluate on end scrubbing. Backout previous fix because 3657907 is the real fix.
#jira UE-45905
Change 3694308 by Andrew.Rodham
Sequencer: Sub tracks now blend correctly again
#jira UE-51076
Change 3694365 by Andrew.Rodham
Sequencer: Fixed exponential slow down when compiling large quantities of sub sequences on cook caused by not clamping sub-sequence compilation correctly
Change 3698176 by Max.Chen
Sequencer: Enable the camera cut track when popping back to the master only if there's a camera cut track in the master. This fixes an issue where if you don't have a camera cut track in the master, the camera gets locked to a camera cut in a subscene and you can't toggle out of it.
#jira UE-51332
Change 3698979 by Max.Chen
Sequencer: Fix delay before warmup causing sequences not to render.
#jira UE-51307
Change 3700149 by Max.Chen
Sequencer: Fix delay at shot boundaries causing sequences to not play back and render out. The shot id needs to be tracked to determine whether a new shot is encountered.
#jira UE-51307
Change 3705624 by Max.Chen
Sequencer: Reset drop node on drag leave
Change 3718781 by Max.Preussner
MediaAssets: Removed obsolete pointer checks (Playlist is always valid); added checks to enforce this invariant
Change 3721586 by Max.Preussner
MediaAssets: Added verbose logging to MediaPlayer BP functions
Change 3721662 by Max.Preussner
WmfMedia: Fixed media session not generating PlaybackEndReached event when session forced to stop
#jira UE-50962
Change 3722954 by Max.Preussner
MediaAssets: Removed looping option from play lists
Change 3723076 by Andrew.Porter
Removed controls for looping playlist.
Change 3724202 by Max.Chen
Sequencer: Spawn time optimizations
#jira UE-32885
Change 3725359 by Max.Chen
Sequencer: Fix spawnables not playing back. bIsEditorPreviewActor = false for sequencer spawnables so that BeginPlay() doesn't get skipped.
#jira UE-51750
Change 3725362 by Max.Chen
Sequencer: Change check to ensure for null object in property actuate. This prevents a crash when there's a track without a binding object. This occur when pasting a property track to the root.
#jira UE-51713
Change 3725802 by Max.Chen
Sequencer: Add the ability to drag sections up.
#jira UE-43305
Change 3726520 by Max.Preussner
MediaAssets: Fixed OnMediaOpened called when looping a source
#jira UE-51773
Change 3728509 by Max.Chen
Sequencer: Fix crash pasting a camera cut track because the outer isn't set to the movie scene.
#jira UE-51787
Change 3729216 by Max.Chen
Sequencer: Fix pre edit property chain broadcast so that the property path will include possible struct/array node.
#jira UE-51525
Change 3729248 by Max.Chen
Sequencer: Add default expansion states to allow track editors to specify them per track type.
Material track is currently the only track that defaults to expanded.
#jira UE-21741
Change 3729392 by Max.Preussner
ImgMedia: Disabling video output when video track is selected
Change 3729452 by Max.Preussner
MediaPlayerEditor: Showing a notification if no video track available or selected
Change 3729462 by Max.Preussner
MediaPlayerEditor: Creating overlay font only once
Change 3731155 by Max.Chen
Sequencer: Set row index when creating a new take
#jira UE-51867
Change 3731446 by Max.Chen
Sequencer: Add null check and warning for invalid GetParameterCollectionInstance.
Change 3731640 by Max.Chen
Sequencer: Automatically create a camera cut track if a camera is dropped and there's no existing camera cut or there's no existing camera cut sections.
#jira UE-51846
Change 3731653 by Max.Chen
Sequencer: Defer details panel updates on scrubbing and playing.
#jira UE-48448
Change 3732597 by Max.Chen
Sequencer: Don't swap the camera cut section if it already exists and a camera is created.
Change 3733554 by Max.Chen
Sequencer: Fix crash when existing hotspot is null.
Change 3734305 by Max.Preussner
MediaAssets: Fixed assertion when assigning same media player to a media texture twice
#jira UE-51012
Change 3735735 by Max.Preussner
MediaFrameworkTest: Setting MediaAssets log category Verbose to prevent log spam in Editor
Change 3736393 by Max.Chen
Sequencer: Set min/max values for generic key area so that they don't default to 0,10.
#jira UE-52012
Change 3736804 by Max.Chen
Sequencer: Fix rotation rotator->quat->rotator conversion which prevents you from typing in a rotation of 0,0,320 into the key editor. Unwind rotations from the previous transform to the current transform so that the nearest rotation is set rather than the rotator->quat->rotator conversion.
#jira UE-52009
#jira UE-34816
Change 3737790 by Max.Chen
Sequencer: Follow up fix to quat->rot->quat so that unwinding is only processed if the last transform is valid.
Change 3739738 by Max.Chen
PR #4184: Unregister Missing TrackEditors in MovieSceneTools (Contributed by LordNed)
Change 3741910 by Max.Preussner
MfMedia: Simplified track switching code; enabled seeking
Change 3742171 by Max.Preussner
MediaAssets: Fixed timecode check to include current presentation time
Change 3744889 by Max.Chen
Sequencer: Use drag and drop actor factory if specifiied. This ensures that the correct actor factory is used in creating the object template for the sequencer spawner. This fixes some spawnables not getting created properly (ie. Empty Actor)
#jira UE-51678
Change 3746049 by Andrew.Rodham
FBX Import: Fixed tangent overrides producing the wrong type of key tangent modes
Change 3747870 by Max.Chen
Sequencer: Update auto scroll when moving keys/sections.
#jira UE-31212
Change 3747885 by Max.Chen
UMG: Remove template instance finish on pause. It appears that was only there to stop audio (CL #3161056). Instead, evaluate in the stopped position with the stopped playback state.
#jira UE-47749
Change 3747914 by Max.Chen
Sequencer: Add config for default completion mode for movie scene sequences. The default for level sequences is RestoreState. All others, such as UMG are set to KeepState.
#jira UE-49480
Change 3747915 by Max.Chen
Sequencer: Set default completion mode for all sections to project default.
#jira UE-49480
Change 3748377 by Max.Preussner
EngineTest: Fixed media player automation test BP
#jira UE-50637
Change 3748531 by Max.Preussner
EngineTest: Fixed media player not opening media during FTest setup
I fixed up the Blueprint. Also, don't use PlayOnOpen on the media player if you don't intend to play the movie after opening. You can call Pause right after opening. If you enable PlayOnOpen, the order of operations will not work, because it will first call Pause via the IsReady check in Tick and then Play via the PlayOnOpen checkbox. I disabled PlayOnOpen.
#jira UE-47207
Change 3750362 by Max.Chen
PR #4205: parameter not used bug fixes (Contributed by shrimpy56)
Change 3750885 by Max.Chen
Sequencer: Prevent throttling on the curve editor so that editor world tick can apply.
#jira UE-51624
Change 3757123 by Max.Preussner
MediaAssets: Allowing media players to be part of GC clusters
#jira FORT-59774
#jira UE-51943
Change 3764055 by Max.Chen
Sequencer: Add SetPlaybackPosition as latent action to fix crash when calling SetPlaybackPosition in an event.
#jira UE-52270
Change 3764555 by Max.Chen
Sequencer: Change camera cut binding from guid to object binding id to allow for subscene bindings
Change 3764613 by Max.Chen
Sequencer: Show binding ID picker customization on all details panels. Allow creation of new camera cut sections from existing bindings.
Deprecate AddNewCameraCut(FGuid)
Change 3766389 by Max.Chen
Sequencer: Don't override existing camera binding id on postload if it's valid.
Change 3766432 by Max.Chen
Sequencer: Switch constraint guid to constraint binding ID
#jira UE-52438
Change 3767160 by Max.Preussner
WmfMedia: Added more logging
Change 3767843 by Max.Preussner
MediaAssets: Fixed Crash in UMediaSoundComponent::UpdatePlayer
#jira UE-52594
Change 3771038 by Max.Preussner
Engine: Changed message log back to ensure
Cannot use message log on render thread as it may call LoadModule
Change 3771071 by Max.Preussner
MediaCompositing: Fixed default media plane material
Change 3771287 by Max.Preussner
Engine: Changed ensure to global log
Change 3771450 by Max.Preussner
MediaAssets: Fixed crash when dragging media player viewport
#jira UE-52675
Change 3771461 by Max.Preussner
ImgMedia: Fixed seeking not working when paused
#jira UE-52677
Change 3772999 by Andrew.Rodham
Sequencer: Added the ability to supply an instance data object to sequence runtime evaluation
- This allows systems to inject information into a sequence at runtime, enabling more dynamic control of tracks
- Level sequence actors use this by default to supply a dynamic 'transform origin' to all component transform tracks, to which all absolute transform sections will be added.
#jira UE-46003
Change 3774633 by Max.Preussner
MediaAssets: Fixed MediaPlayer.Prev/Next not playing automatically if player was playing previously
#jira UE-52714
Change 3774961 by Max.Preussner
UdpMessaging: Patch to make message serialization notification thread-safe
#jira UE-52624
Change 3778108 by Max.Chen
Sequencer: Scroll in track area.
#jira UESEQ-330
Change 3778270 by Max.Chen
Sequencer: Copy/cut/paste/duplicate object bindings
FMovieSceneCopyableBinding - struct containing the copied FMovieSceneBinding, FMovieScenePossessable and FMovieSceneSpawnable
MovieScene - AddPossessable, AddSpawnable with existing possessable or spawnable
ISequencer - FOnMovieSceneBindingsPasted to allow fixing up bindings on paste
#jira UESEQ-352, UESEQ-335
Change 3778674 by Max.Preussner
Engine: Fixed online documentation for external texture registry
Change 3778699 by Max.Preussner
Engine: Fixed external textures not registering correctly in all cases
#jira UE-52648
Change 3778776 by Max.Preussner
Engine: Corrected code comments for external texture registry
Change 3779153 by Max.Preussner
LinearTimecode: Fixed plugin category
Change 3779166 by Max.Preussner
WmfMedia: Reversing FourceCC display string, so it displays correctly
Change 3780576 by Max.Chen
Sequencer: Fix viewport invalidation so that it happens on sequence evaluation.
#jira UE-52836
Change 3780619 by Max.Chen
Sequencer: Always save default spawnable state regardless of focused sequence. This fixes a bug where if you step back to the master sequence (and the spawnable still exists), and then scrub outside the region where the spawnable exists, it gets destroyed but saved default spawnable state doesn't get called because it's no longer the focused sequence.
#jira UE-52008
Change 3781227 by Max.Chen
Sequencer: Add playback speed settings menu
#jira UESEQ-384
Change 3782213 by Max.Preussner
WmfMedia: Fixed H.265 frames being dropped due to false negative buffer size check
#jira UE-52859
Change 3782239 by Max.Chen
Sequencer: Add shortcut to tooltips
#jira UE-52795
Change 3782388 by Max.Preussner
WmfMedia: Fixed IYUV encoded AVI not playing correctly
#jira UE-52855
Change 3782541 by Chris.Babcock
Protect against asking for duration before prepare completed in movie player
#jira UE-52805
#ue4
#android
Change 3787676 by Max.Chen
Sequencer: Export unmatched float properties to custom attributes
#jira UE-52983
Change 3787788 by Max.Preussner
Extras: Natvis for FTimespan
Change 3789419 by Max.Chen
Sequencer: Fix import camera so that when new cameras are created, values from the fbx are going only to the newly created cameras.
Also, added bReduceKeys and bReduceKeysTolerance to import fbx.
#jira UE-52997
Change 3789628 by Max.Chen
Sequencer: Remove Shift-C and Shift-D as a hotkey for toggling the cinematic viewport as it was causing some confusion when users accidentally hit it.
Change 3789716 by Andrew.Rodham
Seqeuncer: Fixed slot animation not being restored for montages that are recreated during evaluation
- The issue here is that the animation system can deem montages as inactive at any point, and will re-create a new montage instance if this is the case. Previously, we stored pre-animated state on the anim instance, and cached the montage that we played, which meant that we attempt to restore a stale montage.
- The solution is to store pre-animated state for the montages, and cache the anim instance. This means we'll always store pre-animated state if the montage is re-created.
#jira UE-49981
Change 3789874 by Max.Chen
Sequencer: Add option to only show selected nodes only
ISequencer - Added OnGetIsBindingVisible(), OnGetIsTrackVisible()
LevelEditorSequencerIntegration - implement OnGetIsBindingVisible based on actor selection
#jira UESEQ-357
Change 3789877 by Max.Chen
Control Rig: Implement IsTrackVisible to show nodes in the sequencer tree that are selected.
#jira UESEQ-357
Change 3791514 by Andrew.Rodham
Image Plate: Fixed image plates not showing up in high res screenshots
- The image plate mesh had a LOD index of -1 which meant it never showed up when a LOD to render was specified
- Also simplified the bounds calculation
#jira UE-51764
Change 3791596 by Max.Chen
Sequence Recorder: Don't record editor only components
#jira UE-49071
Change 3791659 by Andrew.Rodham
Sequencer: Event struct payloads now support user defined struct default values on creation
#jira UE-45430
Change 3791718 by Max.Chen
Sequence Recorder: Fix level sequences not triggering when recording. Level sequences would not get recorded if the world settings actor was not recorded.
Change 3791761 by Max.Chen
Sequencer: Find available non-overlapping row index when adding subsections.
Change 3791837 by Max.Chen
Sequencer: Fix sequencer not updating after toggling Bind Sequencer to PIE/Simulate while PIE is active.
Change 3791875 by Max.Chen
Sequence Recorder: Add recording button now adds for any selected actors.
Change 3791880 by Max.Chen
Sequence Recorder: Fix end pie not stopping sequence recording if not recording world settings.
Change 3791932 by Max.Chen
Sequence Recorder: Record spawned actors immediately so that they won't be missed if they're deleted before tick. Clean up queued recordings that were from spawned actors.
Change 3791954 by Max.Chen
Sequence Recorder: Don't process if not recording on end pie.
Change 3791955 by Max.Chen
Sequence Recorder: Fix recording spawnables not getting the correct position for being spawned at.
Set a transform on the movie scene spawnable which will be used if the root component of the object template doesn't exist.
Change 3792061 by Max.Chen
Sequence Recorder: Change FOnRecordingStarted and FOnRecordingFinished to multicast delegate.
If a sequence being recorded into is currently open in sequencer, it gets reloaded to prevent crashes.
Change 3792271 by Max.Chen
Sequence Recorder: Duplicate the actor to trigger before playing so that a sequence can be recorded and played back at the same time.
#jira UE-49069
Change 3792292 by Max.Preussner
MfMedia: Fixed tracks being reported in reverse order
#jira UE-53074
Change 3792811 by Max.Chen
Sequencer: Add option to disable camera cuts on the movie scene player.
Change 3793341 by Max.Preussner
AvfMedia: Fix for crash when opening AVF Media after opening multiple players
Merged from shelved CL in Dev-Rendering
#author richard.wallis
#jira UE-52383
Change 3793642 by Max.Chen
Sequencer: Delete and rename icons.
PR #4194: Improvements to Sequencer (Contributed by projectgheist)
#jira UE-52139
Change 3794678 by Max.Chen
Sequencer: Fix crash on HandleRecordingFinished
#jira UE-53178
Change 3795007 by Max.Preussner
AudioMixer: Fix for AVF Media Player audio is garbled and has static
#author ethan.geller
#jira UE-52785
Change 3795103 by Max.Chen
Sequencer: Add bKeyCreated for FKeyPropertyResult and notify movie scene data changed when a key is created.
#jira UE-53175
Change 3795457 by Michael.Trepka
Reverted one of the changes from CL 3793341 as it was causing a crash at exit
#jira UE-53196
Change 3795739 by Max.Chen
Sequencer: Set ease in/out objects as transactional.
#jira UE-50594
Change 3796871 by Max.Preussner
MediaAssets: Fixed media texture initialization related crash on Metal; fixed white output on inactive media player; added proper support for clear color
#jira UE-51940
#jira UE-52932
Change 3796921 by Michael.Trepka
Fix for a crash in AvfMediaPlayer related to reusing FAvfMediaPlayer object
#jira UE-53181
Change 3797176 by Max.Preussner
MediaAssets: Fixed white flicker when rapidly swapping media players on a media texture
Also no longer clearing media textures each frame if they are not in use
#jira UE-52932
Change 3797515 by Max.Chen
Actor Sequence: Add nullptr check - fix actor sequence crash when actor sequence doesn't exist.
#jira UE-49103
[CL 3800998 by Max Chen in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3233612 on 2016/12/13 by Ben.Marsh
UGS: Fix cases where precompiled binaries are submitted for a content change.
Change 3235584 on 2016/12/14 by Ben.Marsh
UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead.
Change 3235741 on 2016/12/14 by Ben.Marsh
UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself.
Change 3238176 on 2016/12/16 by Ben.Marsh
UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs.
Change 3238249 on 2016/12/16 by Ben.Marsh
UBT: Add attribute-driven command line parser.
Change 3238462 on 2016/12/16 by Ben.Marsh
UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly.
Change 3238564 on 2016/12/16 by Ben.Marsh
UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor.
Change 3239919 on 2016/12/19 by Ben.Marsh
UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined.
Change 3240061 on 2016/12/19 by Ben.Marsh
UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more.
Change 3240175 on 2016/12/19 by Ben.Marsh
UBT: Add the target name and project file location to the target rules.
Change 3240490 on 2016/12/19 by Ben.Marsh
UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs.
Change 3240717 on 2016/12/20 by Ben.Marsh
UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line.
Change 3240718 on 2016/12/20 by Ben.Marsh
UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT.
Change 3241002 on 2016/12/20 by Ben.Marsh
UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance.
Change 3241027 on 2016/12/20 by Ben.Marsh
Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency.
Change 3241055 on 2016/12/20 by Ben.Marsh
UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated.
Change 3241156 on 2016/12/20 by Ben.Marsh
Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using.
Change 3241205 on 2016/12/20 by Ben.Marsh
Replace all uses of TargetRules.TargetType with TargetType.
Change 3241881 on 2016/12/21 by Ben.Marsh
UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path.
Change 3241895 on 2016/12/21 by Ben.Marsh
UBT: Remove toolchain support for Windows XP.
Change 3241908 on 2016/12/21 by Ben.Marsh
UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field.
Change 3242835 on 2016/12/22 by Ben.Marsh
UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice.
Change 3242837 on 2016/12/22 by Ben.Marsh
Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds.
Change 3242923 on 2016/12/22 by Ben.Marsh
Build: Fixes for conforming incremental workspaces:
* P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason.
* Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces.
Change 3242961 on 2016/12/22 by Ben.Marsh
UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before.
Change 3242981 on 2016/12/22 by Ben.Marsh
UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT.
Change 3242999 on 2016/12/22 by Ben.Marsh
UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes.
Change 3243022 on 2016/12/22 by Ben.Marsh
UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line.
Change 3243083 on 2016/12/22 by Ben.Marsh
UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules.
Change 3243090 on 2016/12/22 by Ben.Marsh
UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work.
Change 3243423 on 2016/12/23 by Ben.Marsh
UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes.
Change 3243516 on 2016/12/23 by Ben.Marsh
UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs)
Change 3244020 on 2016/12/28 by Ben.Marsh
UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties.
Change 3244074 on 2016/12/28 by Ben.Marsh
UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary.
Change 3244076 on 2016/12/28 by Ben.Marsh
UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead.
Change 3244083 on 2016/12/28 by Ben.Marsh
UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes.
Change 3244441 on 2016/12/31 by Ben.Marsh
UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur.
Change 3244687 on 2017/01/03 by Matthew.Griffin
Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs
Change 3246112 on 2017/01/04 by Ben.Marsh
UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build.
Change 3246223 on 2017/01/04 by Ben.Marsh
UBT: Prevent version manifests being overridden if a file is not being built as part of the target.
Change 3246387 on 2017/01/04 by Ben.Marsh
UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it.
Change 3247004 on 2017/01/04 by Ben.Marsh
UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place.
Change 3247250 on 2017/01/04 by Ben.Marsh
UBT: Prevent precompiled binaries being added to the list of app binaries twice.
Change 3247594 on 2017/01/05 by Ben.Marsh
Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build.
Change 3247763 on 2017/01/05 by Ben.Marsh
UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them.
Change 3247775 on 2017/01/05 by Ben.Marsh
UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance.
Change 3247811 on 2017/01/05 by Ben.Marsh
EC: Add a batch file for testing postp filters.
Change 3247839 on 2017/01/05 by Ben.Marsh
EC: Include the name of the file being compiled when parsing MSVC errors and warnings.
Change 3248101 on 2017/01/05 by Ben.Marsh
UBT: Fix Android support for force included headers.
Change 3248533 on 2017/01/05 by Ben.Marsh
PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott)
Change 3249205 on 2017/01/06 by Ben.Marsh
UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present.
Change 3249249 on 2017/01/06 by Ben.Marsh
UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines.
Change 3249486 on 2017/01/06 by Ben.Marsh
UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies.
Change 3249736 on 2017/01/06 by Ben.Marsh
UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object.
Change 3250179 on 2017/01/07 by Ben.Marsh
Fix creating installed build when root directory contains a space in the name.
Change 3250181 on 2017/01/07 by Ben.Marsh
UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms.
Change 3250223 on 2017/01/07 by Ben.Marsh
UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together.
Change 3250233 on 2017/01/07 by Ben.Marsh
UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out.
Change 3250241 on 2017/01/07 by Ben.Marsh
UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules.
Change 3250400 on 2017/01/08 by Ben.Marsh
UBT: Move executor config settings onto the executor instances.
Change 3257708 on 2017/01/13 by Ben.Marsh
UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change.
Change 3260535 on 2017/01/17 by Ben.Marsh
Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job.
Change 3260875 on 2017/01/17 by Ben.Marsh
EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced.
To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile.
Change 3261724 on 2017/01/18 by Ben.Marsh
Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job.
Change 3261756 on 2017/01/18 by Ben.Marsh
IncludeTool: Prevent matching a full enum declaration as a forward declaration.
Change 3261932 on 2017/01/18 by Ben.Marsh
EC: Add support for specifying days of the week in schedules. The following syntaxes are supported:
"Monday, Tuesday and Wednesday at 10:30"
"Daily except Sunday and Wednesday at 14:30"
Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name.
#jira UEB-729
Change 3262676 on 2017/01/18 by Ben.Marsh
UBT: Split UBTMakefile into its own file. (From PR #3106)
Change 3263893 on 2017/01/19 by Ben.Marsh
UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc...
Change 3264291 on 2017/01/19 by Ben.Marsh
UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts.
Change 3264534 on 2017/01/19 by Ben.Marsh
UBT: Include plugin config files in generated projects.
Change 3264571 on 2017/01/19 by Ben.Marsh
UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files.
Change 3265745 on 2017/01/20 by Ben.Marsh
UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance.
Change 3265777 on 2017/01/20 by Ben.Marsh
UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode.
Change 3268314 on 2017/01/23 by Ben.Marsh
UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed.
Change 3269601 on 2017/01/24 by Ben.Marsh
UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled.
Change 3269607 on 2017/01/24 by Ben.Marsh
UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that.
Change 3269608 on 2017/01/24 by Ben.Marsh
UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated.
Change 3271062 on 2017/01/24 by Ben.Marsh
UBT: Fixes for bugs detected by PVS Studio (PR #3161)
Change 3272421 on 2017/01/25 by Ben.Marsh
Fix commends regarding DDC in BaseEngine.ini
#jira UE-41076
Change 3272810 on 2017/01/25 by Ben.Marsh
Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel.
Change 3272935 on 2017/01/25 by Ben.Marsh
Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS.
Change 3274167 on 2017/01/26 by Ben.Marsh
Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables.
#jira UE-36457
Change 3275557 on 2017/01/27 by Ben.Marsh
Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is.
Change 3275628 on 2017/01/27 by Ben.Marsh
UBT: Splitting configuration files into one class per-file.
Change 3276784 on 2017/01/29 by Ben.Marsh
Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it.
Change 3276792 on 2017/01/29 by Ben.Marsh
UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT.
Change 3277263 on 2017/01/30 by Ben.Marsh
IncludeTool: Merging various fixes.
* Fix warnings about #include directives after first code block from parsing monolithic headers.
* Fix exception on startup if the intermediate directory does not already exist.
* Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location.
* Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare.
* Remove (unused) code which makes assumptions about files ending with "Classes.h".
* Add a verbose per-file output log to aid with debugging.
* Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default.
* Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list.
* Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant.
* Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first.
* Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't.
Change 3277307 on 2017/01/30 by Ben.Marsh
UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line.
[CL 3278101 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3149443 on 2016/10/03 by Max.Preussner
MediaAssets: Better parameter names for MediaPlayer BP functions
Change 3149756 on 2016/10/03 by Max.Chen
Sequence Recorder: Set some settings to be clamped at 0 (sequence length, recording delay, audio gain, audio input buffer size, nearby actor recording proximity)
#jira UE-35233
Change 3149795 on 2016/10/03 by Max.Chen
Curve Editor: Set tangent to user when flattening or straightening tangents only when the tangent mode is auto and the interp mode is cubic.
#jira UE-36734
Change 3150378 on 2016/10/04 by Max.Preussner
PS4Media: Made video buffer sizes for file and HLS sources configurable (UE-36807)
#jira UE-36807
Change 3151414 on 2016/10/05 by Max.Chen
Sequencer: Fix case where restoring the last view target was getting skipped. It should always restore if the camera object and the unlock if camera actor object is null.
#jira UE-35285
Change 3152038 on 2016/10/05 by Max.Preussner
UdpMessaging: Code & documentation modernization pass
Change 3152471 on 2016/10/05 by Max.Chen
Cine Camera: Don't enable/disable actor ticking based soley on actor tracking since actor ticking is needed for other purposes. Instead, always enable actor ticking and only update actor tracking on tick if necessary. This fixes a
bug where the cine camera actor won't tick if you hook in event tick.
#jira UE-36625
Change 3152692 on 2016/10/05 by Max.Preussner
Messaging: API code & documentation modernization pass
Mostly removed shared pointer/ref typedefs as they prevent forward declarations and increase include complexity.
Change 3153824 on 2016/10/06 by Max.Preussner
Messaging: Renamed IConnectionBasedMessagingModule to ITcpMessagingModule and moved it into TcpMessaging
I recommend that we refactor this API. The dependency should be reversed, i.e. instead of AndroidDeviceDiscovery depending on the TcpMessaging plug-in module, the Engine should provide a central registry that device discovery
modules can notify, and that message transport plug-ins can register with and listen to OnConnectionAdded/Removed events etc. That way it supports an arbitrary number of transport plug-ins, and the Engine is not coupled to any of them. This
functionality is not necessarily related to messaging, and the Messaging API is transport agnostic anyway. I'll think about this some more.
Change 3153826 on 2016/10/06 by Max.Preussner
Messaging: Removed remaining typedefs in IMessageTracer to enable forward declaration and reduce include dependencies
Change 3153857 on 2016/10/06 by Max.Chen
Sequencer: Set snap time to dragged key on by default.
Change 3153980 on 2016/10/06 by Max.Preussner
SessionServices: Removed typedefs; code and documentation modernization pass
Change 3154313 on 2016/10/06 by Max.Chen
Sequencer: Set the paste keys time to the current time, rather than the mouse time.
Change 3154332 on 2016/10/06 by Max.Chen
Sequencer: Remove click to rename shot functionality in the shot thumbnail. Added rename shot to the shot context menu.
Change 3154377 on 2016/10/07 by Max.Chen
Sequencer: Add ability to step to beginning and ends of sections/shots using the hotkeys: , and .
Change 3154788 on 2016/10/07 by Max.Chen
Sequencer: Fix offsets that created when moving multiple sections. The offsets were being created because section bounds were being generated for all sections except for the current section. Instead, they should be computed for all
sections except for any that aren't being moved.
#jira UE-29152
Change 3159274 on 2016/10/11 by Max.Preussner
Core: Documentation fixes
Change 3159275 on 2016/10/11 by Max.Preussner
UdpMessaging: Added missing header
Change 3160746 on 2016/10/12 by Max.Preussner
MediaAssets: Added BP functions to query width, height, and aspect ratio of UMediaTexture instances
#jira UE-37241
Change 3160975 on 2016/10/12 by Max.Preussner
PS4Media: Better logging for SetRate failures
Change 3160995 on 2016/10/12 by Max.Preussner
MediaPlayerEditor: Fixed Media player selection is ignored if media specifies player overrides (UE-37248)
#jira UE-37248
Change 3161066 on 2016/10/12 by Max.Preussner
PS4Media: Enforcing minimum 8 byte alignment for media allocations
Change 3161069 on 2016/10/12 by Max.Preussner
PS4Media: Fixed log spam when setting play rate to current rate
Change 3162567 on 2016/10/13 by Max.Preussner
PS4Media: Made track switching code more readable
Change 3163447 on 2016/10/14 by Max.Preussner
PS4Media: Fixed array out of bounds assertions
Change 3163772 on 2016/10/14 by Max.Preussner
MfMedia: Fixed a number of timing related issues
Change 3163980 on 2016/10/15 by Max.Chen
Sequencer: Remove folder name numeric padding so that the naming convention is similar to creating objects in the level.
Change 3164581 on 2016/10/17 by Andrew.Rodham
Sequencer: Ensure global pre-animated state is restored in reverse order
Change 3164582 on 2016/10/17 by Andrew.Rodham
Sequencer: Ensure pre animated state is restored for all actor components before saving default state
Change 3164583 on 2016/10/17 by Andrew.Rodham
Sequencer: Re-enabled support for pre and post roll
Change 3165464 on 2016/10/17 by Max.Chen
Sequencer: Default number frame handles to 0 so that there's no change in behavior when rendering out a master sequence of shots. Handle frames need to enabled explicitly by the user.
Copy from Release-4.14
#jira UE-37416
Change 3165483 on 2016/10/17 by Max.Chen
Sequencer: Enable restore state for attach section completion
Change 3165771 on 2016/10/18 by Andrew.Rodham
Sequencer: Force evaluate when rendering thumbnails
#jira UE-37321
Change 3166057 on 2016/10/18 by Andrew.Rodham
Sequencer: Only set defaults for tracks that have no keys, and where the requested default has changed
#jira UE-37285
Change 3166218 on 2016/10/18 by Max.Preussner
MediaPlayerEditor: Failure opening media, even though it opened successfully (UE-37470)
#jira UE-37470
Change 3166247 on 2016/10/18 by Max.Preussner
WmfMedia: Showing progress bar while media is being resolved
Change 3166289 on 2016/10/18 by Max.Preussner
MfMedia: Showing progress bar while media is being resolved
Change 3166993 on 2016/10/18 by Max.Preussner
MfMedia: Fixed info string not reset on media close.
Change 3166999 on 2016/10/19 by Max.Preussner
Media: Fixed NV12 and NV21 support
Change 3167008 on 2016/10/19 by Max.Preussner
Media: Removed vertical NV12 alignment
Change 3167029 on 2016/10/19 by Max.Preussner
WmfMedia: Temp fix for RGB32 encoded AVIs rendering upside-down and too bright (UE-37505)
#jira UE-37505
Change 3168593 on 2016/10/19 by Max.Chen
Sequencer: Change paste at time to local time, so that the paste happens in the local time of the sequence rather than the global time if pasting in a shot level sequence.
Change 3168626 on 2016/10/19 by Max.Chen
Sequencer: Clamp to view bounds should snap to frame if frame snapping is on.
Change 3168627 on 2016/10/19 by Max.Chen
Sequencer: Initialize working and view range to be 10% larger than playback range.
Change 3168760 on 2016/10/20 by Max.Preussner
Media: Revamped media texture buffer management to support padded frames
Added support for Windows bitmap buffers.
Fixed a number of format, conversion and/or looping issues in WmfMedia and MfMedia.
Not all shaders have been updated yet.
Change 3169640 on 2016/10/20 by Max.Chen
Sequencer: Add current camera to FLevelSequencePlayerSnapshot. Adjust DefaultBurnIn to include a few more parameters like focal length and focus distance.
#jira UE-37407
Change 3170677 on 2016/10/21 by Max.Chen
Movie Scene Capture: Add toggle to override engine scalability settings to cinematic scalability.
#jira UE-36560
Change 3170710 on 2016/10/21 by Max.Preussner
Media: Optimized handling of RGB input
Change 3170712 on 2016/10/21 by Max.Preussner
Media: Fixed NV21 conversion shader scaling
Change 3170923 on 2016/10/21 by Max.Preussner
UBT: Copied XboxOne project generator fix from Fortnite CL# 3170868
Change 3171494 on 2016/10/23 by Max.Chen
Sequencer: Fix fbx export from master sequence not finding bound objects.
#jira UE-35752
Change 3171506 on 2016/10/23 by Max.Chen
Sequencer: Draw where in and out points of the shot section are, just like subsequences do. Change to only draw the green starting line if StartOffset is negative.
#jira UE-35473
Change 3171743 on 2016/10/24 by Andrew.Rodham
Editor: Added support for detail customizations on root structs
- Also added the ability to add external struct data onto a detail category builder, and property type customization.
Change 3171752 on 2016/10/24 by Andrew.Rodham
Sequencer: Fixed spawnable ownership
- Spawnables are no longer destroyed when the cursor leaves the master playback range.
- Spawnable ownership now operates as it previously did before the evaluation rework.
- bIgnoreOwnershipInEditor has been removed since its existence was a work around for when we didn't evaluate sub sequences from the master sequence.
- FMovieSceneSequenceID is now a struct so that it can be used in array properties
- Meta data now exists for each segment of an evaluation field. Currently this only includes the sub sequence IDs that exist at that time, but it may be expanded to include all evaluation entities (tracks + sections) in future so
we don't have to calculate that at runtime.
Change 3171756 on 2016/10/24 by Andrew.Rodham
Sequencer: Added ability to trigger events with parameters
- It's now possible to supply an event payload on event track keys which are to be passed to a given event. The structure must match the signature of the event, or a warning will be emitted.
- Added a templated TGenericKeyArea, TKeyFrameManipulator and TCurveInterface that allow to generic manipulation of keyframe section data. In time we will port the other key areas over to this representation.
- This new architecture affords the common manipulation of time-based keyframes in a value-agnostic manner.
Change 3172935 on 2016/10/24 by Max.Preussner
MediaPlayerEditor: Fixed MediaPlayer asset not being dirtied when creating media sound wave or texture for it
Change 3173947 on 2016/10/25 by Max.Preussner
SlateRemote: Disabled plug-in, but enabled server by default
Change 3174510 on 2016/10/26 by Max.Chen
Sequencer: Fix slomo track crash
#jira UE-37802
Change 3174698 on 2016/10/26 by Andrew.Rodham
UMG: Fixed objects bound to a panel slot animating their slot's content instead of the slot itself
#jira UE-37775
Change 3174780 on 2016/10/26 by Max.Preussner
MediaAssets: Accepting decoder defined buffer dimensions for RGB buffers
Change 3174789 on 2016/10/26 by Max.Preussner
MediaPlayerEditor: Showing desired player name instead of current player name if no media loaded
Change 3174817 on 2016/10/26 by Max.Preussner
WmfMedia: Added support for Motion JPEG (MJPG)
Change 3174825 on 2016/10/26 by Max.Preussner
WmfMedia: Added support for non-RGB32 uncompressed formats
Change 3174834 on 2016/10/26 by Max.Preussner
MediaPlayerAssets: Allow pausing while buffering media
Change 3174886 on 2016/10/26 by Andrew.Rodham
Core: Fixed range test that was testing incorrect behavior
Change 3174889 on 2016/10/26 by Andrew.Rodham
Sequencer: Fixed AssignActor behavior
- Also ensure that cached object state is invalidated when playback context changes
#jira UE-37798
Change 3174905 on 2016/10/26 by Andrew.Rodham
Sequencer: Changed assert when failing to create an audio component to a log message
- Audio no longer plays when GEngine->UseSound() is false
#jira UE-37772
Change 3174980 on 2016/10/26 by Andrew.Rodham
Sequencer: Remove warning when event endpoint could not be found for a given context
#jira UE-37824
Change 3175001 on 2016/10/26 by Andrew.Rodham
Sequencer: Evaluate sequence with EMovieScenePlaybackStatus::Jumping on Pause.
- Also protect Pause() against reentrancy when being called from an event
Change 3175012 on 2016/10/26 by Max.Chen
Sequence Recorder: Fixes an empty working and view range after recording.
On StopRecording() update playback range after nullifying the current sequence so that the playback range isn't empty.
Added SetViewRange and SetWorkingRange.
#jira UE-34191
Change 3177760 on 2016/10/28 by Max.Chen
Sequence Recorder: Don't update the current sequence name if it's already set. This fixes a bug where if you pass in a sequence name to record to, it gets reset to the name in the sequence recorder settings.
#jira UE-37808
Change 3178529 on 2016/10/28 by Max.Chen
Matinee to Level Sequence: Added interface to extend the matinee to level sequence converter
#jira UE-37328
#2864
[CL 3178562 by Max Chen in Main branch]
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2837601 on 2016/01/20 by Thomas.Sarkanen
Sequencer: Exposed bool, byte, event, fade, float, slomo, and visibility section keys in context menu
Change 2840895 on 2016/01/23 by Thomas.Sarkanen
Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu.
Change 2901092 on 2016/03/09 by Thomas.Sarkanen
Sequencer: Fixed ensure() and crash when exiting PIE & then playing back in editor
Made sure that instances that are playing that have active montages can re-connect to a playing montage if it is already active. We dont stop/start preview/non-
preview playback when switching modes right now so I've just made the system robust to the switch when playing back animation.
Ensured that instances are kept up to date by hooking into EndPlayMapDelegate. This fires slightly later than OnEndPIE, so it allows us to pick up when instances
have been deleted from the world. OnEndPIE is fired before the worlds are shutdown so instances can still be bound to valid (but nearly dead) actors at this point.
#jira UE-27898
#jira UE-27899
Change 2901159 on 2016/03/09 by Chris.Bunner
Allow EXR frames from SaveHighResScreenshot to be uncompressed (r.SaveUncompressedEXRFrames).
Change 2903123 on 2016/03/10 by Max.Chen
Sequencer: Add snapping for the in/out range.
Change 2903126 on 2016/03/10 by Max.Chen
Sequencer: Fix split and trim for cinematic shot sections so that the start offset value is set.
Change 2903132 on 2016/03/10 by Max.Chen
Sequencer: Create camera here and set it as the current camera cut.
Change 2903138 on 2016/03/10 by Max.Chen
Sequencer: Improve mechanism for adding objects to Sequencer. Hold down shift while dragging from content browser to add as a spawnable. Hold down ctrl while
dragging from content browser to add as a possessable.
Change 2903143 on 2016/03/10 by Max.Chen
Sequencer: Add 4k to movie capture dialog.
#jira UE-28147
Change 2903157 on 2016/03/10 by Max.Chen
Sequencer: Pop out of locked camera when popping out of the sequence.
#jira UE-27662
Change 2908097 on 2016/03/14 by Andrew.Rodham
Sequencer: Added default viewport type onto the viewport types menu
- The activation command for a given viewport type no longer toggles it if it's already active, it will just do nothing.
- Switching back to the default viewport type can be achieved with SHIFT+D
Change 2911869 on 2016/03/16 by Max.Preussner
Editor: Caching device proxy manager, so the UI doesn't constantly poll for the TargetDeviceServices module
Change 2917943 on 2016/03/22 by Thomas.Sarkanen
Sequence Recording: Added "Record New Sequence From Current Player" to sub-sequence track menu
This option is only available in PIE. When selected it primes a new seciton for recording against the pawn that is currently being controlled by the player.
Change 2917946 on 2016/03/22 by Max.Chen
Sequencer: Automatically add and attach a cine camera when dropping a crane or rail.
Change 2917954 on 2016/03/22 by Thomas.Sarkanen
Fix anim dynamics going crazy on time skips
Added new API to FAnimNode_Base: NeedsDynamicReset and ResetDynamics.
This allows nodes that subscribe to this interface to be reset on teleport/time skips.
Call through to ResetDynamics on zero timestep (ie. skips) in the preview path in Sequencer.
Change 2917961 on 2016/03/22 by Frank.Fella
Sequencer - Sequencer - Update the color track code to match the behavior in matinee, also remove empty light color tracks from the sequence, and add a missing
particle parameter track.
Change 2917984 on 2016/03/22 by Max.Chen
Sequencer: Fix crash on deleting object binding nodes multiple times.
Change 2917986 on 2016/03/22 by Max.Chen
Sequencer: Fix if adding multiple camera cuts at the same time with the same duration as an existing camera cut. The camera is replaced in this case.
Change 2917994 on 2016/03/22 by Jeff.Farris
Support for scene depth picker. Used for focus depth sampling in cine cams.
Change 2918003 on 2016/03/22 by Max.Chen
Sequencer - Fix selection issues related to keying an undo by moving the selection clear on rebuild to after the tree selection state has been cached by path.
Change 2920371 on 2016/03/23 by Max.Preussner
UnrealEd: Added a file import path that doesn't load the entire file into memory prior to importing
UFactory::StaticImport will now call FactoryCreateFile for both text and binary files. The default implementation will load the file into a buffer/string and call
FactoryCreateBinary/FactoryCreateText to preserve legacy behavior. New factories may override FactoryCreateFile to perform their own file processing instead.
Change 2923359 on 2016/03/25 by Max.Preussner
UnrealEd: Refactored out StaticImportObject code into ImportObject
Change 2924887 on 2016/03/28 by Jeff.Farris
Sequencer: Camera Anim and Camera Shake tracks now support PostProcess changes in the CameraAnim
Change 2927283 on 2016/03/30 by Max.Chen
Sequencer: Fix crash resetting default in audio track in sequencer. Fix audio track rename when adding another audio.
#jira UE-28836, UE-28859
Change 2928290 on 2016/03/30 by Max.Preussner
ContentBrowser: Disabling 'Show in Explorer' context menu option for newly created/unsaved asset(s)
Change 2928480 on 2016/03/30 by Max.Preussner
AssetTools: Added built-in type category for Media assets
Change 2928498 on 2016/03/30 by Max.Preussner
AssetTools: Sorting asset type categories alphabetically
Change 2932326 on 2016/04/04 by Frank.Fella
Sequencer - Add "paste from matinee" support for audio tracks, and add volume support to audio sections in sequencer.
Change 2933917 on 2016/04/05 by Max.Preussner
Core: Added microseconds support to FTimespan
Change 2933920 on 2016/04/05 by Max.Preussner
Sockets: Simplified socket timeout assignments
Change 2935434 on 2016/04/06 by Max.Chen
Sequencer: Deselect possessable before converting it to a spawnable and deleting it. Also, make sure the newly converted spawnables are selected. This fixes a bug
where the transform gizmo remains after adding a spawnable.
Also, consolidate code for adding possessables to sequencer so that the newly added possessable node will be selected in the widget tree.
#jira UE-28215
Change 2935590 on 2016/04/06 by Jeff.Farris
Made crane rig preview mesh at the tip move as expected and appear in a reasonable place.
Change 2936082 on 2016/04/07 by Max.Chen
Sequencer: Attach should use default attach component of the actor if it exists. This fixes a bug where trying to attach to a camera crane rig attaches to the
proper component.
Change 2936118 on 2016/04/07 by Max.Chen
Sequencer: Adding crane/rail with shift now adds the crane/rig as a spawnable and the attached cine camera as a spawnable. An attach track is created for the cine
camera spawnable.
#jira UE-28308
Change 2937226 on 2016/04/07 by Max.Chen
Sequencer: Add invalidation when levels are added or removed.This fixes a bug were if you have a level sequence open and then add a sublevel that the level
sequence operates on, it correctly updates the actors from the new sub level.
#jira UE-27595
Change 2937263 on 2016/04/07 by Frank.Fella
Sequencer - Changed the matinee to sequencer conversion tools so that curve keys set to "clamped auto" import as user tangents since we don't support clamped auto
in sequencer.
Change 2937273 on 2016/04/07 by Max.Chen
Sequencer: No longer experimental/betal and now enabled by default.
#jira UETOOl-625
Change 2937694 on 2016/04/08 by Max.Chen
Curve Editor: Separate out input and output snapping.
#jira UE-27209
Change 2937852 on 2016/04/08 by Andrew.Rodham
Sequencer: Spawnables no longer use generated classes
- Spawnables now store a template actor instance, rather than a generated class
- All relevant code has been converted to use this new approach
- Spawnable defaults are now harvested directly from any spawned instances when the movie scene is saved, or when the object is de-spawned. We only do this for
spawnables *in the currently active sequence instance*. This approach ensures that instance components and other properties persist.
- Currently we don't mark the package as dirty when the defaults are changed. This needs to be addressed.
- Some fixes have been made to AActor and Actor Iterators to ensure that actors not contained within a level do not crash.
- Spawning optimisations to follow
Change 2937956 on 2016/04/08 by Max.Preussner
Sequencer: Added selection range commands to general toolbar menu
Change 2937981 on 2016/04/08 by Max.Preussner
Sequencer: Refactored GetKeyHandles to take a time range for filtering keys
Change 2938007 on 2016/04/08 by Max.Preussner
Sequencer: Implemented selection range key selection
Change 2938184 on 2016/04/08 by Max.Chen
Sequencer: Find in Content Browser is now in the top level menubar.
#jira UE-21598
Change 2938665 on 2016/04/08 by Frank.Fella
UMG - Add support for material animation.
Change 2939048 on 2016/04/10 by Max.Chen
CineCamera: Change current position on rail to normalize position.
Change 2939067 on 2016/04/10 by Max.Chen
Sequencer: Add paste color from matinee
Change 2939587 on 2016/04/11 by Andrew.Rodham
Sequencer: Fixes to spawnable rework
- Removed commented out code.
- Fixed particle system components not disabling auto activate.
- Instance Components are now correctly registered on spawn.
- Removed ability to set the editable flag on actors in favor of a delegate assigned to SActorDetails to disable property editing on actors spawned from outside
of the currently focused sequence.
Change 2939666 on 2016/04/11 by Andrew.Rodham
Sequencer: Fixed active sequence ID not being set on creation
Change 2940663 on 2016/04/12 by Andrew.Rodham
Sequencer: Spawnable object templates now always have the RF_ArchetypeObject flag
#jira UE-29337, UE-29339
Change 2940742 on 2016/04/12 by Thomas.Sarkanen
Improvements to sequence recording API
Sequence recording is now more extensible.
Moved the majority of recorders into a seperate module.
Cleaned up recorder API, removed bRecord that was only really used once.
Added factory class as a modular feature that allows users to register and implement their own recorders.
Recorders can supply their own settings classes. These are incorporated into the UI via a details customization so they appear to be seamlessly integrated.
Exposed components to record as an advanced setting. Users can use this to gate the components and actors that are recorded.
#jira UE-28850 - Update sequence recording API for better extensibility
Change 2940828 on 2016/04/12 by Max.Chen
Level Editor: Clear the camera preview if the level viewport is locked to the same camera.
#jira UE-27489
Change 2941090 on 2016/04/12 by Frank.Fella
Sequencer - Fix inconsistencies with the level visibility track.
+ Add an option to update a track instance when it stops playing due to it's parent movie scene being deactivated as a sub-scene.
+ Reset level visibility state when the section ends, or when it's parent subsection ends.
Change 2941427 on 2016/04/12 by Andrew.Rodham
Sequencer: Fixes for recorded dynamic components
- Dynamic components are now named uniquely within their owner actor, and are no longer re-bound to new object tracks when detached/re-attached
- New dynamic components are created every time a new component is detected on an actor, regardless of whether it was once attached before. This affords
recording externally managed components from a component pool.
- Section recorders for components that are no longer attached to the actor are now disabled correctly.
Change 2941760 on 2016/04/12 by Max.Preussner
Editor: Setting up correct material expresions when creating material from normal map texture
Change 2941819 on 2016/04/13 by Max.Chen
Sequencer: Fire named events in all sublevels.
#jira UE-28843
Change 2942052 on 2016/04/13 by Andrew.Rodham
Sequencer: Fixed not being able to add dynamic material parameter tracks to spawnables when the object is not spawned
#jira UE-24287
Change 2942223 on 2016/04/13 by Max.Preussner
Editor: Using built-in function to assign sampler format
Change 2942833 on 2016/04/13 by Max.Chen
Sequencer: More copy matinee helpers.
- Make some sections infinite.
- Fix FindPossessableObjectId
- Expose FindGroupByName
Change 2942944 on 2016/04/13 by Max.Chen
Sequencer: Fix anim copy so that it doesn't create an animation clip longer than the next clip's start position.
Change 2943313 on 2016/04/14 by Max.Chen
Sequencer: Initial matinee to level sequence asset converter. Right click on a matinee actor in the level and choose "Convert to Level Sequence"
Current supports:
- movement tracks
- generic property tracks
- particle tracks
- anim control tracks
- event tracks
- audio tracks
- visibility track
- director track (fade, slomo, camera cuts)
Possible todos:
- Relative scale3D
- Option to create spawnables instead of possessables
- Create shots per director track camera cut instead of a direct translation to the camera cut track
#jira UETOOL-467
Change 2943596 on 2016/04/14 by Andrew.Rodham
Editor: Fixed placement mode scrollbar visibility not working for custom content
#jira UE-27191
Change 2943651 on 2016/04/14 by Max.Chen
Sequencer: Invalidate the audio waveform when the source changes.
#jira UE-29394
Change 2943674 on 2016/04/14 by Max.Chen
Sequencer: Store/restore playback state when rebuilding.
#jira UE-29452
Change 2943993 on 2016/04/14 by Max.Chen
Sequencer: Convert slot name from matinee to level sequence.
Change 2944156 on 2016/04/14 by Frank.Fella
Sequencer - Fix undo when moving items into folders, and when deleting folder.
#jira UE-27368
Change 2944227 on 2016/04/14 by Max.Chen
Sequencer: Show curves in the curve editor if one of the parent nodes is selected. For example, if Location is selected, show Location.X, Location.Y, and
Location.Z
Change 2945057 on 2016/04/15 by Andrew.Rodham
Editor: Fixed placement mode scrollbar visibility not working for custom content
#jira UE-27191
#lockdown nick.penwarden
[CL 2945551 by Max Chen in Main branch]