MovieScene was targeted as its headers were at the top of profiling ShooterGame builds.
Tested with -disableunity and -nopch. Current timings take ShooterGameEditor rebuild from 480s to 440s
#jira none
#rb josh.adams
#preflight 624c97a63661c8f04a191889
[CL 19634779 by christopher waters in ue5-main branch]
The DeltaFrame value was being set in UMovieSceneSection::MoveSection(), but
was not being used anywhere.
#rb max.chen
#preflight 61b135a9a746977eacc77639
#ROBOMERGE-AUTHOR: matt.johnson
#ROBOMERGE-SOURCE: CL 18420602 in //UE5/Release-5.0/... via CL 18422586
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18422852 by matt johnson in ue5-release-engine-test branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
Added Custom Color Support to Curve Editor. This is done via an Editor preference(CurveEditorSettings) that stores a color per UClass, property name(intent name of the channel in Curve Editor), and the Color. So would be something like StaticMeshActor, "Translate.X", (1.0f,0.0f,0.f90)
Added to Sections an UObject* GetImplicitObjectOwner(). Usually this is the Possessable/Spawnable of the owning track, but for Control Rig Tracks we use the
specified Control Rig instead.
So we use that implicit owner to get the UClass to associate with the channel.
Also added some Python/BP functions since editor pref's aren't scriptable.
#jira MH-3206
#preflight 61520812d0edce00010149bf
#ROBOMERGE-AUTHOR: mike.zyracki
#ROBOMERGE-SOURCE: CL 17635750 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0
[CL 17635764 by mike zyracki in ue5-release-engine-test branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
#jira FURY-191
#rb andrew.rodham
#ROBOMERGE-SOURCE: CL 9961395 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v558-9892490)
[CL 9961399 by max chen 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 3853627 by Shaun.Kime
Merging using OrionDevNiagaraToUE4DevNiagara_DoNotUse VectorVM
#tests non-gpu auto tests pass
Change 3853628 by Shaun.Kime
Merging using OrionDevNiagaraToUE4DevNiagara_DoNotUse Runtime
#tests all non-gpu auto tests pass
Change 3853629 by Shaun.Kime
Merging using OrionDevNiagaraToUE4DevNiagara_DoNotUse Engine\Shaders
#tests all non-gpu auto tests pass
Change 3853630 by Shaun.Kime
Merging using OrionDevNiagaraToUE4DevNiagara_DoNotUse Engine\Plugins\FX
#tests all non-gpu auto tests pass
Change 3853631 by Shaun.Kime
Jonathan's material function from Orion\DevNiagara
#tests all non-gpu auto tests pass
Change 3853633 by Shaun.Kime
Merging using OrionDevNiagaraToUE4DevNiagara_DoNotUse EngineTest
#tests all non-gpu auto tests pass
Change 3853911 by Shaun.Kime
GPU rendering now works
#tests GPU tests now pass
Change 3854179 by Shaun.Kime
Removing dead system
#tests now just with a warning
Change 3854731 by Shaun.Kime
Checkpointing current work
#tests n/a
Change 3855080 by Shaun.Kime
Fixing not all control paths return a value error
#tests n/a
Change 3856185 by Bradut.Palas
MultiStack with pinning support.
#jira UE-53459
#tests none
Change 3856615 by Shaun.Kime
Preventing a null pointer dereference when copying unallocated data
#tests auto tests pass
Change 3856622 by Shaun.Kime
Getting rid of the bogus get alias method
#tests auto tests pass
Change 3856644 by Shaun.Kime
Adding the ability to query the number of filtered triangles, index those triangles directly, and compute the position, velocity, UV, and NBT of a triangle.
#tests all auto tests now pass
Change 3856645 by Shaun.Kime
Added several new auto tests and tweaked existing ones.
+ PerParticleRandom still had some randomness in it
+ UserColorCurve has a user color curve defined in 3 different components referencing the same system
+ BasicSkinnedEmitter has 4 skinning sub-tests, attached as a subcomponent, referencing a world skeletal mesh, using a material filter, and using a bone filter
+ added a skinning module that spawns based off exec index and a data interface that queries the number of triangles on a skeletal mesh.
#tests auto tests pass
Change 3856675 by Shaun.Kime
Fixing crash on delete of an emitter
#tests removed one and multiple emitters from active multi-emitter. No crash
#jira UE-54378
Change 3860613 by jonathan.lindquist
New dynamic input
Change 3862549 by Shaun.Kime
Missing last known good images
Change 3864525 by Simon.Tovey
Fix for vm compiler crash when using structs as constants.
#tests No longer crashes.
Change 3864729 by Frank.Fella
Sequencer - Fixed a few places which were modifying sequencer data, but not calling the NotifySequencerDataChanged.
Change 3864737 by Frank.Fella
Niagara - Fix the timeline in the niagara editor plus other fixes.
+ Turned on looping in the timeline by default.
+ Added simulation options to control playback in the editor, including turning off auto-play, disabling reset on change, and disabling resimulation when changing while paused.
+ Added a buttons to the timeline for each renderer an emitter has which shows a renderer specific icon and will allow navigation directly to the renderer with future stack changes.
+ Fixed issues in the emitter life cycle and spawn rate modules which were preventing delay and looping from working consistently. (includes auto-test)
+ Added top level metadata for modules.
+ Added the ability to add metadata to a module and it's inputs to allow it to be edited directly using timed sections in the timeline. Currently configured for the emitter life cycle module.
+ Changed the way the "MaxSimTime" on niagara component works so that it now represents the maximum frame time which should be used when seeking the component to the desired age. This previously was the maximum amount of simulation time to run which would prevent simple effects from simulating quickly, and would also allow more complicated effects to hang the UI while seeking.
+ Changed the behavior of niagara component when seeking to desired age so that it always uses the exact specified seek delta instead of trying to seek to the exact desired age.
+ Fixed the component so that systems which are seeking to the desired age in the editor no longer draw in fast forward mode.
+ Changed the default playback range for effects in the timeline from 1000 seconds to 10 seconds, and fixed the timeline so that the playback range is serialized into the asset which will persist the setting across loads.
+ Fixed scrubbing in the timeline so that it doesn't immediately reset when scrubbing backwards.
+ Added a button to the timeline track for enabling and disabling isolation mode for emitters.
+ Added a checkbox to the timeline to enabled and disable emitters from the timeline.
+ Fixed PinToNiagaraVariable so that it asserts if bNeedsValue is specified and it can't actually provide a value.
+ Create a class called FNiagaraStackFunctionInputBinder which allows binding to an input of a function on a stack so that you can easily set and get the value of the input without having to worry about modifying the graph or rapid iteration parameter sets directly.
#tests Existing auto-tests and 1 new test for life cycle changes.
Change 3867179 by Frank.Fella
Niagara - Turn off GPU simulation for test assets for Shaun.
Change 3869201 by Simon.Tovey
Bypassing JonLs issue
#tests no longer crashes.
Change 3869897 by Frank.Fella
Niagara - Fix crashes when using the skeletal mesh data interface. NOTE: The change to the actual skeletal mesh data interface code doesn't seem needed, but without it, it crashes with the stomp allocator on. We'll have to investigate further.
Change 3870487 by Frank.Fella
Niagara - Always generate cached skin data immediately, and make sure we're not indexing triangles that don't exist. This is a temporary fix to avoid a crash when changing the skeletal mesh source on an effect in the level from the details panel.
Change 3877378 by Frank.Fella
Niagara - Update the burst and lifecycle modules with new metadata for incoming timeline changes.
Change 3877564 by Frank.Fella
Sequencer - Fix a few more places which were modifying sequencer data without calling NotifyMovieSceneDataChanged.
Change 3877565 by Frank.Fella
Niagara - Remove old unused burst code from some runtime classes.
Change 3877567 by Frank.Fella
Niagara - Add support for keying bursts on the timeline which is configured using script metadata.
Change 3877699 by Frank.Fella
Niagara - Fix a crash in the new timeline code for when you have bursts, but you have inputs on the emitter lifecycle bound, also set lower bound of view range of the timeline to be -.1 so that you can more easily interact with keys at 0.
Change 3877715 by Frank.Fella
Sequencer - Update the change type when pasting keys from the clipboard from Unknown to TrackValueChanged to avoid unnecessary work. From code review on last change.
Change 3879285 by Simon.Tovey
A couple of fixes for using struct constants
#tests Jon's case now compiles and works correctly.
Change 3879378 by Frank.Fella
Niagara - Fix a few spots where recursive graph traversal was visiting nodes multiple times because of diamonds in the pin connections. This reduces a terrible hang in UNiagaraScriptSource::InitializeNewRapidIterationParameters from 5 minutes to 5 seconds but there are futher issues to investigate becasue even 5 seconds it too long.
Change 3879858 by Shaun.Kime
Moved the VM script compilation to the DDC in order to facilitate better team compilation behavior. Significant changes to the translator and overall compile workflow to make the data behave better for a future multi-threaded compilation path.
In order to know when to compile, a key is generated that uses the compile id's of the graphs that influence the compilation of our node. In this way, if an end user goes and edits a function or module and checks in, the overall compile id will not match b/c that function is in the dependency list of a system downstream. The system will then know to recompile. However, everyone else on the team will generate the same key because the asset in question was checked in with its local compile id already changed.
Additionally, we now employ change tracking on traversals from a node graph. These traversals walk through all the nodes leading to a given output node and see if they've been altered. If they have, a new compile id is generated. If not, the old compile id is used. This also means that if you edit a particle update section in the stack, the emitter section won't force the system to recompile.
GPU scripts now have their own script slot rather than riding alongside particle spawn scripts. This allows us to address them independently in the translator and put them in the DDC as well. Once the text is generated, we then go back out to the DDC to generate the shader associated.
Known issues:
+ Emitters are sometimes marked dirty on open
+ Nodes connected to event writes aren't part of the hashing
+ DataInterface signature changes don't dirty the compiles
+ Struct changes don't dirty the compiles
+ On system loading, we go out to the DDC instead of using existing scripts, which is slower..
#tests all auto-tests pass, additional tests run to validate proper behavior
Change 3879859 by Shaun.Kime
Content update post DDC change
Change 3879862 by Shaun.Kime
Niagara plugin content to ddc
Change 3879958 by Frank.Fella
Niagara - Actually fix the bad recursion in this function by using the existing traversal method.
Change 3881727 by Damien.Pernuit
Niagara - Houdini - Created a separate plug-in for the Houdini CSV Data Interface.
Change 3881877 by Simon.Tovey
Fix for mac compile issue
Change 3882773 by Simon.Tovey
Actual fix for Mike
Change 3882822 by Shaun.Kime
Rather than throw a check, I instead emit an error when we can't match up a data interface and instantiate a CDO version. Not perfect, but this will let you recompile.
#tests allows me to open jonathan's file
Change 3883538 by Shaun.Kime
Moving particle-level scripts to compile with the emitter named Emitter in their internal scripts. This simplifies the dependencies quite a bit, but causes some complexity on the wiring side (most of which we were already doing anyway).
Getting rid of some allocations in translation (still more to go).
Fixed some of the logic for emitters that had modules of the same name to now properly concatenate.
Compile version bumped, so all scripts will be forced to recompile. Not saving this into the test files for now, as I expect this to happen a bit for the near term.
#tests all auto-tests pass, creating a new emitter and system on PC works
Change 3883552 by Shaun.Kime
Fixing renaming to work properly now. It just invalidates the system script compile id's, forcing it to auto-compile.
#tests auto-tests pass
Change 3884722 by Bradut.Palas
Added searchbar with basic name search for Niagara stack
#tests none
#jira UE-53469
Change 3884793 by Shaun.Kime
Adding pragma once
#tests no longer complains about duplicate definition
Change 3885629 by Wyeth.Johnson
Setting up a transient meshrotation framework pre-integration
Change 3887440 by Wyeth.Johnson
Custom HLSL failure for Shaun
Change 3888911 by Bradut.Palas
stack search box now has a minimum width of 300 pixels
#tests none
Change 3890843 by Shaun.Kime
Creating a Niagara quaternion type.
#tests created in editor, saw default was correct, carried through to VM runtime through attribute viewer
Change 3890849 by Shaun.Kime
Porting over 4.19 fix to Dev-Niagara
#tests allows creation of valid scripts even when ini is cleared.
Change 3891088 by Frank.Fella
Sequencer - When getting selected tracks for the external selection api, include tracks if any of their child nodes are selected. This matches the behavior object guid external selection.
Change 3891114 by Bradut.Palas
Fixing crash that sometimes happens if a stack tree changes while a stack search is active
#tests none
Change 3891131 by Frank.Fella
Sequencer - Move section headers for bool, int, vector, and color to the public directory so they can be used by the niagara level sequence integration.
Change 3891165 by Wyeth.Johnson
error for shaun
Change 3891354 by Shaun.Kime
Adding Quat struct to more locations. Now treated like hlsl float4.
#tests EulerToQuaternion now compiles
Change 3891463 by Bradut.Palas
Fix crash that sometimes happens when deleting module and hitting Ctrl-Z to undo (the condition for removing the listeners from the rootentry should not be tied to the validity of weak pointers for system and emitter, because sometimes they are out of sync when changing the graph)
#tests none
Change 3891641 by Wyeth.Johnson
resave node
Change 3893143 by Shaun.Kime
Fixing issue where you try to bind a vertex color sampler to a mesh without it. We failthe binding rather than crash due to a check later. Also fixed up error logging to only mention the one that failed.
#tests can open NiagaraSystem'/Game/FX/SkeletalMeshDissolve/EmittersAndSystems/FightSceneDissolve.FightSceneDissolve' with an error..
Change 3893528 by Bradut.Palas
fix another crash when search results are invalidated during search
#tests none
Change 3893830 by Shaun.Kime
Fix for copy & paste of comment boxes
#tests can now copy and paste comment boxes
Change 3894012 by Bradut.Palas
no longer executing search tick if the rootentry is null
#tests none
Change 3894828 by Frank.Fella
Niagara - Runtime changes to support sequencer animation
+ Reset the simulation when force solo is changed on the component.
+ Invalidate the render data and clear the buffers when resetting to avoid previously rendered particles from drawing.
+ Automatically sync the override parameters in the component when the source assets exposed parameters change and removed forced syncing from various places.
+ Remove lots of refresh code from the niagara component details which should not be neccessary anymore.
#TESTS Ran autotests, tested through the UI while building the sequencer tests asests.
Change 3894832 by Frank.Fella
Niagara - Level sequence support for spawning and animating system life cycle and select user parameter types.
#Tests Ran existing tests and added a new test to verify added functionality.
Change 3896944 by Bradut.Palas
safeguard entries with no search items (it actually can be null)
#tests none
Change 3896948 by Bradut.Palas
Fix assert when dereferencing source array (no need for a raw pointer to the array since it's initialized with the content anyway)
#tests none
Change 3896950 by Bradut.Palas
fix compile error with previous commit
#tests none
Change 3897698 by Frank.Fella
Niagara - Fix some safety issues with parameter initialization on the niagara component.
+ Kill the current system if we synchronize parameters to avoid issues with data interface lifetime.
+ Always sync parameters when the asset is set to prevent missing data interfaces in the override list.
+ Add an enum to control how data interface parameters are handled when calling CopyParametersTo.
+ When the system instance is copying the asset parameters, have it copy data interfaces by reference so that it's not creating data interfaces copies which will be deleted at the next garbage collection.
#Tests Auto-tests, also doesn't crash anymore when opeining Jonathan's disolve effect and then opening a level.
Change 3897953 by Frank.Fella
Niagara - Remove some namespace restrictions from the code that generates the available parameters to read from in the stack UI since it was preventing the use of custom namespaces in modules and it was not clear what issue it was solving since we already prevent scripts from addressing parameters from lower level scripts. Also move user parameters to their own menu section.
#Tests Custom namespaces are usable again in the stack.
Change 3898926 by Bradut.Palas
Fix for crash caused by garbage collection and async search
#jira UE-55284 (Stack search doesn't work on collapsed entries) now searching through unfiltered children, will need extra fixes on the stack to eliminate "ghost" results"
Both are still under code review, submitting because they are simple to rollback and harmless to other features.
#tests none
Change 3899069 by Shaun.Kime
Parallel compilation
Major changes:
Rather than a custom streaming version that we know influences a rebuild, I'm moving away to a guid that you need to regenerate if you change the compiler in any meaningful way
needed for multiple reasons,
1) if two people are making changes to the compiler, having something other than a guid as the value makes the content of the ddc ambiguous
2) when iterating I often need to make multiple changes to get to a working final result, bumping the version number each time that happens gets old fast
We fully clone the input graph to do the compile in the background. While the translation step is not a huge amount of time, it keeps the main thread responsive.
We currently have a big critsec around the crosscompiler to bytecode as it isn't threadsafe. Future changes will push this to the ShaderCompilerWorker.
#tests all tests pass as well as stress tests around saving while compilng, long compile times, etc.
Change 3899071 by Shaun.Kime
Fixing the availability flags for system and emitter scripts.
#tests all auto tests pass
Change 3899077 by Shaun.Kime
Fixing assets to have their wait on compile finished checkbox checked in the editor for testing
#tests n/a
Change 3899114 by Wyeth.Johnson
Random bool custom hlsl node
Change 3899184 by Bradut.Palas
implemented categories for module inputs (now inputs can be assigned a category in the module editor and they will be grouped by those categories in the Niagara stack)
#tests none
Change 3899329 by Bradut.Palas
fix broken commit by adding missing new files NiagaraStackInputCategory.cpp and .h
#tests none
Change 3899439 by Yannick.Lange
Niagara reroute node.
Change 3899516 by Shaun.Kime
Official angle conversion modules.
#tests made a local test emitter that converted back and forth between angles. Results were correct.
Change 3900193 by Shaun.Kime
Fixing build
#tests now compiles
Change 3900474 by Shaun.Kime
Fixes to help Mac compile
#tests n/a
Change 3901131 by Simon.Tovey
Warmup feature.
CPU Sim only.
Also has ability to advance simulation by tick count or seconds via BP/C++.
Includes some engine tests.
#tests editor + autotests
Change 3901455 by Frank.Fella
Niagara - Add WITH_EDITORONLY_DATA to prevent non-editor compile failures.
Change 3902477 by Frank.Fella
Niagara - Fix FNiagaraEditorTypeUtilities to be a thread safe TSharedFromThis since it's always created with a thread safe shared pointer, also fix up issues related to this change. Fixes a crash which occurrs when it's the target object of a delegate binding.
#Tests adding a curve data interface to a parameter collection no longer crashes.
#jira UE-55403
Change 3903478 by Shaun.Kime
No longer doing the check if compiling on load is enabled as this always forces different change ids'
#tests n/a
Change 3903783 by Shaun.Kime
Trimming down excess log spew
#tests auto-tests pass
Change 3905753 by Shaun.Kime
Made Sine(Degrees), Sine(Radians), and Sine, and the variants thereof for trig functions.
#tests n/a
Change 3905759 by Shaun.Kime
Auto tests for mesh orientation
#tests these now pass
Change 3905762 by Shaun.Kime
These files needed to be resaved for some reason to keep passing.
Change 3906727 by Bradut.Palas
Curve UX improvements
#jira UE-55134
#tests none
Change 3908177 by Shaun.Kime
Fixing build due to typo
#tests now compiles
Change 3908199 by Shaun.Kime
Trying to fix compilation when destroying objects. We cannot safely attach anything beneath us at this point ,we just need to clear out the queues.
#tests normal work day-to-day
Change 3908201 by Shaun.Kime
Working to fix crashes where the component was destroyed out from underneath us due to PIE shutting down and we have a Niagara item editable in Blueprint or world editor.
#tests n/a
Change 3908985 by Bradut.Palas
Renaming ColorCurveAsset to CurveAsset to better reflect the actual usage of the variable (fixing copy-paste issue)
#tests none
Change 3909222 by Yannick.Lange
Niagara graph connection colors
Change 3909436 by Bradut.Palas
fix crash in curve ux when importing a linear curve (curve of floats)
#tests none
Change 3909561 by Bradut.Palas
Updating LUT before sending NotifyPostChange when editing curves inline (so that LUT will not go out of sync)
#tests none
Change 3910010 by Yannick.Lange
Use new Niagara Actor icon
Change 3910191 by Yannick.Lange
Fix viewport widget showing up in the viewport when pressing W, E or R.
#jira UE-55142
Change 3910213 by Frank.Fella
PropertyEditor - PropertyRowGenerator - Added features and fixes to support integration into niagara's stack view.
+ Added a method to get filter/search strings for an IDetailTreeNode to support external searching and filtering.
+ Added a delegate to the layout builder for when one of it's owned nodes has it's visibility forcibly changed by a customization.
+ Changed the filtering so nodes are generated for properties marked as advanced.
+ Pass the notify hook down to the detail utilities so that change notifications work as expected.
+ Add layout data for the widgets returned from the IDetailTreeNode to prevent alignment and sizing issues in custom implementations.
Change 3910307 by Frank.Fella
PropertyEditor - Missed in last checkin.
Change 3910509 by Frank.Fella
Niagara - Removed nested details panels from the stack and integrate them properly plus other fixes.
+ Generate rows for nested objects using the details panel property row generator.
+ Fix the horizontal sizing for niagara parameter editors.
+ Add an IsValid() method to the base niagara stack entry so that derived classes can know if the associated view models are still valid when processing events. This is a temporary measure to fix a crash in the user parameter UI.
+ Set stack entries to be expandable by default and delete usages which were setting it to true.
+ Highlight the active search result with a border since property rows can't highlight text.
Change 3911653 by Frank.Fella
Niagara - Fix stack spacer sizing.
Change 3911667 by Frank.Fella
PropertyEditor - Actually fix the notify hook handling in the property row generator.
Change 3911896 by Yannick.Lange
Niagara function input context menu.
Change 3911900 by Yannick.Lange
Project setting for not showing comment bubbles.
Change 3911996 by Yannick.Lange
Niagara fix if node persistent guids for older nodes. The OutputVarGuids are always synced on PostLoad.
Change 3912221 by Wyeth.Johnson
Renderer Icons for timeline
Change 3912608 by Bradut.Palas
stack style refactor
#jira UE-55399
#tests none
Change 3913063 by Wyeth.Johnson
Icons for stack added, including new system param png
Change 3913618 by Shaun.Kime
Fixing two of the most common Illegal call to StaticFindObject() errors while compiling.
#tests ran through compilation after changes.
Change 3914369 by Bradut.Palas
Using new SystemParams.png icon provided by Wyett (instead of the old "Parameters.png")
#tests none
Change 3914782 by Wyeth.Johnson
Adjusting icon for update to not indicate "flow"
Change 3915738 by Shaun.Kime
Moving away from the generic and super-slow EdGraphSchema ShouldAlwaysPurgeOnModification being true to using the same mechanism we use to invalidate the compile to synchronize nodes. This should be substantially faster.
#jira UE-55463
#tests ran through a variety of tests creating and wiring nodes
Change 3915739 by Shaun.Kime
Assignment nodes need to invalidate the graph for compile.
Change 3915741 by Shaun.Kime
Making default values more accessible and making it possible to route renderers to use different values than the defaults.
#tests n/a
Change 3915798 by Frank.Fella
SearchBox - Add options to show the number of search results and an option to show a throbber when a search is active.
Change 3915966 by Shaun.Kime
Changing the default for velocity to 0,0,0 as requested by Wyeth
#tests n/a
Change 3915982 by Shaun.Kime
Making the default text more readable
#tests n/a
Change 3916237 by Frank.Fella
PropertyEditor - Change the DetailCategoryBuilderImpl so that it sets the horizontal alignment to fill for value widgets when generating stand alone widgets so that the behavior in the property row generator matches the behavior of the property grid.
Change 3916240 by Frank.Fella
Niagara - Should prevent some recent crashes due to stack entry delegates and lifetime.
Change 3916261 by Frank.Fella
Niagara - Lots of minor stack ui fixes and adjustments
+ Tweaked padding in a bunch of different places.
+ Added a dark background behind the stack and stack header to prevent the colors from bleeding together.
+ Fixed the group text not being white anymore.
+ Hooked up new features of the search box for showing the search result data and an is searching throbber.
+ Fixed an issue where the current search result couldn't be interacted with.
+ Fix some other inconsistencies with searching where you might jump more than one result.
+ Replace the checkbox for showing curve in the curves tab with an icon based button. (icon is placeholder)
Change 3916833 by Shaun.Kime
Fixing issue where the system wasn't set to wait for compilation on load, sometimes leading to failures for auto-tests
#tests this test now passes when forced to recompile
Change 3916846 by Shaun.Kime
Missed one system in the scene.
#tests n/a
Change 3917458 by Shaun.Kime
Fixing another potential race condition on the DDC.
#tests n/a
Change 3918349 by Frank.Fella
Niagara - Invalidate the node visuals when reallocating pins.
#Jira UE-55698
Change 3918783 by Olaf.Piesche
Correct 'temp' to 'Temp' in map set
Change 3919262 by Shaun.Kime
We weren't properly updating the default values for user data interface components when tweaked in the editor.
#tests open skinned mesh auto test system change the preview for the user skinned mesh to be SK_Mannequin_Niagara. It now updates, it didn't before.
Change 3919602 by Shaun.Kime
Fixing the skeletal mesh to now clamp to the end of the index buffer for safety as well as adding IsValidTriCood. This lets us keep going even when swapping out the skeletal mesh underneath.
Tested out isvalidtricoord in the test skinning module.
#tests auto tests pass
#codereivew simon.tovey
Change 3921701 by Yannick.Lange
Make Vector2 and Vector4 default blue color to be consistent with blueprints.
Change 3922331 by Damien.Pernuit
Niagara - Houdini - Added support of CSV File as UAsset (HoudiniCSV)
Modified the Data Interface to use the CSV asset instead of the imported buffers from the CSV File Path.
Added some new functions to the DI:
GetLastParticleIndexAtTime()
GetCSVPositionAndTime()
GetCSVVectorValue()
GetCSVFloatValueByString()
Change 3923118 by Simon.Tovey
PS4 compile fix.
Change 3924934 by Bradut.Palas
fix Mac compile issues
#jira UE-55426
#tests none
Change 3925168 by Bradut.Palas
Curve logspamming
#jira UE-55593
#tests none
The UpdateCompiledDataInterfaces would end up comparing LUTs when copying curves and the source LUT was out of date.
Change 3925366 by Frank.Fella
Slate - SMenuAnchor - Fix the implementation of "BelowRightAnchor" to align the right edge of the menu with the right edge of the anchor. There aren't any other usages of this in the engine as far as I can tell, hopefully people weren't relying on the broken behavior in a game somwhere.
Change 3925423 by Frank.Fella
Niagara - Remove the large add buttons from the stack and add smaller add buttons in the group headers.
Change 3925877 by Olaf.Piesche
New collision modules, separating query, linear and angular impulse; Solve forces and velocity takes care of integrating f->v->p and fA->vA->O; linear impulse module would probably be cleaner by zeroing velocity on collision and calculating a force instead of setting new velocity directly
Change 3926582 by Simon.Tovey
PS4 compile fix
Change 3927401 by Shaun.Kime
Fixing events due to added member
#tests all tests pass as of 3925423 with this change
Change 3927496 by Shaun.Kime
Getting auto-tests to run
Questions: Why did I have to recompile the GPU tests... something is missing in their key generation?
Resaved several files.
#tests almost all pass now
Change 3927582 by Shaun.Kime
Fixing last failing auto test
#tests all tests now pass
Change 3927924 by Simon.Tovey
Chunk level vm parallelism.
Any execution processing > batch_size chunks will go wide.
The batch size is 4 currently but adjsutable via vm.ParallelChunksPerBatch.
VM parallelism can be disabled by vm.Parallel 0
Change 3927990 by Shaun.Kime
Submitting redirector
Change 3928426 by Frank.Fella
Niagara - Always propagate rapid iterations parameters when merging an emitter.
Change 3929823 by Frank.Fella
Niagara - Fix hlsl generation for system/emitter spawn script so that we read the engine and user parameters from the data set instead of initializing them to 0.
#Tests Full recompile + auto-tests
Change 3929983 by Simon.Tovey
Curve LUT Interpolation
+ updated test altered by it.
Change 3930551 by Frank.Fella
Niagara - Fix what looks like a copy/paste error in the SNiagaraSelectedEmitterGraph destructor which was preventing clean removal of delegates and causing a crash.
#Tests closing the "Selected Emitter Graph" tab and then changing the selected emitter no longer crashes.
Change 3932695 by Damien.Pernuit
Niagara - Houdini:
Houdini CSV Asset:
- Packed vector values in the CSV file are now properly supported (not just for Position/Normal) and can be of any size.
- Added support for reimporting Houdini CSV files.
- Added an "open in text editor" entry in the context menu.
- Improved error/warning logging during the parsing of the file
Houdini Niagara Data Interface:
- Added GetParticleIndexesToSpawnAtTime():
New helper functions returning the min index, max index and number of particles to be spawned for a given time value.
Uses an internal LastSpawnIndex to avoid spawning the same particles twice.
- Modified GetLastParticleIndexAtTime():
If the CSV file doesn't have time informations, returns false and set the LastIndex to the last particle
If desiredTime is smaller than the first particle, LastIndex will be set to -1
If desiredTime is higher than the last particle in the csv file, LastIndex will be set to the last particle's index
Change 3933425 by Shaun.Kime
Made the spreadsheet debugger capable of capturing in-world systems as long as they are solo'ed.
#tests have been running with it for several days, debugging real-world assets stably
Change 3933986 by Frank.Fella
Niagara - Fixed a bug with merging where added dynamic inputs which changed names could end up with the wrong rapid iteration parameters. Also fixed an issue where added dynamnic inputs would be renamed when they didn't need to be.
#Tests Engine tests and fixes custom repro.
Change 3934052 by Frank.Fella
Niagara - Added a console command to dump rapid iteration parameters for a system or emitter asset.
Change 3934436 by Simon.Tovey
Fixes for sprite VF depth test failure issue
Change 3934658 by Frank.Fella
Niagara - Make disabled modules visually distinct.
#Tests General stack use.
Change 3935383 by Shaun.Kime
Fixing mac compile errors
#tests n/a
#jira UE-55911
Change 3935420 by Yannick.Lange
Niagara parameter UI first version.
Change 3935482 by Yannick.Lange
Add missing files for parameters
Change 3935591 by Shaun.Kime
more macos compile
#tests na
Change 3935637 by Shaun.Kime
Reverting to prior behavior
#tests na
Change 3936541 by Yannick.Lange
Remove the merge up menu entry for set variables module items.
Change 3936841 by Wyeth.Johnson
Bool comparison dynamic input
Change 3936895 by Simon.Tovey
A few perf improvements and fixes to the SetSolo transfering between solo and batched so all lightning sims can run batched after they're warmded up.
Change 3936899 by Simon.Tovey
Missed a file
Change 3937178 by Krzysztof.Narkowicz
Fixed bHasSkipOutputVelocityParameter for shaders without PreviousLocalToWorldMatrix (e.g. particles)
#jira UE-50914
Change 3937222 by Yannick.Lange
Random event spawn
Change 3937292 by Yannick.Lange
Fix Adding a new parameter then renaming it the default name deletes the new parameter
#jira UE-55994
Change 3938472 by Yannick.Lange
Fix new parameters in emitters saving by using the editable emitter.
Change 3938474 by Yannick.Lange
- Store graphs as weak object pointers in the parameter UI.
- Allow right mouse menu on parameters in the system toolkit.
- Refresh only the parameter actions when deleting an entry instead of refreshing the graphs aswell.
Change 3938525 by Yannick.Lange
Fix creating an unique FName every tick for parameterstores by using a FString instead.
Change 3938596 by Shaun.Kime
Macos compile
#tests n/a
Change 3939362 by jonathan.lindquist
Adding a new Component Spacing input to the debug value functions. This will allow users to make better use of space when debugging values.
Change 3939365 by Shaun.Kime
Back out changelist 3936895 and 3936899
Leaving in some changes around stats as they should be harmless.
These changes were removed b/c they added poor perf to Jonathan's dissolve effect and also caused multiple tests to fail in engine tests.
#tests all tests pass besides Yannick's FName/FString warning, with the exception of BPTimeControl, Hypnotizer, and MeshOrientation, which seem to be off by one frame, but have been consistently off for several days (CL 3929823 had same issues for me)
Change 3939367 by jonathan.lindquist
Adding greyscale output
Change 3939368 by jonathan.lindquist
Changing the pin order
Change 3939377 by Shaun.Kime
Allows the unnormalized lut table flag to be copied over
#tests all tests pass besides Yannick's FName/FString warning, with the exception of BPTimeControl, Hypnotizer, and MeshOrientation, which seem to be off by one frame, but have been consistently off for several days (CL 3929823 had same issues for me)
Change 3939379 by Yannick.Lange
Rename FParameterStore Name to DebugName to prevent loading a FName into a FString with existing assets.
Change 3939382 by Shaun.Kime
Adding the ability to have a default curve index with a custom switch node.
#tests all tests pass besides Yannick's FName/FString warning, with the exception of BPTimeControl, Hypnotizer, and MeshOrientation, which seem to be off by one frame, but have been consistently off for several days (CL 3929823 had same issues for me)
Change 3939383 by Shaun.Kime
Converting existing curves over to using the new default pin
#tests all tests pass besides Yannick's FName/FString warning, with the exception of BPTimeControl, Hypnotizer, and MeshOrientation, which seem to be off by one frame, but have been consistently off for several days (CL 3929823 had same issues for me)
Change 3939501 by Shaun.Kime
Submitting missing files
#tests n/a
Change 3939580 by Wyeth.Johnson
Default curve indexing to three more DIs
Change 3940122 by Yannick.Lange
Parameters view: - Jump to new parameter added and request rename for new parameter.
- Remove adding parameters to the parameterstore when a pin is requested.
- Only show make new parameters in the dropdown to add a new parameter.
- Use Sections of UI as types instead of int32.
Change 3940214 by Bradut.Palas
fix crash when rename skeletal mesh user variable
#jira UE-55236
#tests none
Change 3940215 by Bradut.Palas
undo not working in graph editor
#jira UE-55466
#tests none
Overriding the BreakPinLinks methods to include a transaction
Change 3940250 by Bradut.Palas
Creating stats tab in module toolkit to show LastOpCount
#tests none
Change 3940251 by Bradut.Palas
#jira UE-55684 create inline menus for stack
#tests none
Change 3940262 by Simon.Tovey
Back out changelist 3939365 with fixes
Tests all now pass
Change 3940333 by Shaun.Kime
Nullptr check
#tests n/a
Change 3940338 by Krzysztof.Narkowicz
Niagara sprite particles - implemented get previous position in order to fix sprite particle motion vectors
#jira UE-52865
Change 3940407 by Yannick.Lange
Create pin on map get and set node when dragging without recompiling the graph.
Change 3940534 by Shaun.Kime
Making sure that collision returns defaults of 0 if nothing was found.
#tests auto-tests that have been passing still pass
Change 3940709 by Simon.Tovey
Temp hacks for the skeletal mesh painting issues.
Change 3940960 by Yannick.Lange
Only build parameter menu once when graphchanged is called multiple times in a frame.
Also use the existing metadata from graph to build the parameter menu, because the metadata already looped through all nodes and pins.
Change 3941019 by Yannick.Lange
Meta data UI refresh next tick to avoid refreshing multiple times a tick.
Change 3941853 by Simon.Tovey
Adding more dynamic parameters
Change 3941957 by Frank.Fella
Property Editor - Fix issues with property row generator to support the niagara stack.
+ Make the detail tree node name accessible through the interface, and fix the implementations for category group and property item.
+ Add a temporary fix for passing instance customizations from the property row generator to the detail property row through the detail layout builder. This should be unified in a nicer way, but this will work for the time being.
Change 3942174 by Frank.Fella
Niagara - Stack UI Pass
+ Advanced rows are not handled properly per item.
+ Expanded and scroll state is now saved in editor data per asset.
+ Added a "View Options" drop down for showing all advanced rows, and for showing/hiding outputs.
+ Added an option to collapse all stack items from the emitter header context menu.
+ Added support for "Edit Conditions" on module and dymaic inputs which will enable and disabled an input based on the value of another input. This includes showing a checlbox inline for the edit condition toggle input.
+ Added support for "Visible Conditions" on module and dynamic inputs which will hide and show inputs based on the value of another input.
+ Removed the pencil icon for locally editable values in the stack.
+ Fixed issues with invisible search results. It's still possible for a search result to not highlight the text correctly, but the outline never disappears.
+ Removed pinning for module inputs.
+ Fixed the event handler properties so that they use the property row generator instead of an embedded details panel.
+ Unified indent handling across all stack classes.
+ Unified stack editor data across all stack classes.
Change 3942427 by Simon.Tovey
Another hack for vertex painting tool
Change 3942453 by Simon.Tovey
Some more hacks for skel mesh vertex painting until Jurre's rework is ready.
Change 3942799 by Yannick.Lange
Rebuild metadata, input and output parameters UI next frame instead of on every graph changed call.
Change 3942833 by Frank.Fella
Niagara - Fix the visibility of the advanced expander item.
Change 3942923 by Yannick.Lange
Revert using metadata for parameters to looping through pins to find parameters in maps not connected to anything.
Temporary fix to remove used parameters if they are found in the graph.
Change 3943094 by Wyeth.Johnson
Rollback //UE4/Dev-Niagara/Engine/Plugins/FX/Niagara/Content/Modules/Spawn/Location/SphereLocation.uasset to revision 5
Change 3943154 by Wyeth.Johnson
Metadata to sphere location module
Change 3943256 by Wyeth.Johnson
Testing out sweet new metadata control
Change 3943374 by Olaf.Piesche
Fixing mesh motion blur
Change 3943382 by Olaf.Piesche
Turning on base pass velocities until I can fix separate vel pass for particles
Change 3943471 by Yannick.Lange
Emitter view stats only show particles count. Use Niagara.EmitterStatsFormat 0 and 1 to switch between all data and only particle count. Default is 1 to only show particle count.
Change 3943497 by Yannick.Lange
Paramater map remove FTickableEditorObject and use SWidget::Tick
Change 3943589 by Olaf.Piesche
-Fix for linear impulse (offset by 1/2*velocity*dt instead to avoid distracting bounciness)
-Collision Rest; add after impulse modules to make particles rest if in collision under threshold velocity magnitude
Change 3943644 by Olaf.Piesche
Turn shader development mode back off
Change 3943718 by Olaf.Piesche
Fix vertex factories
Change 3943776 by Olaf.Piesche
Properly calculate old particle position using dt for velocity rendering
Change 3943780 by Frank.Fella
Niagara - Fix ensure when removing dynamic inputs due to incorrect logic which would have left unused nodes in the graph.
Change 3943870 by Yannick.Lange
Parameter drag drop window
Change 3943994 by Frank.Fella
Niagara - Fix some editor settings not saving across sessions.
Change 3944056 by Shaun.Kime
Updating to replace values reset when Wyeth resaved files.
#tests DrawOrderGPU, DrawOrder, and TestDifferentInactiveEmitters now pass
Change 3944068 by Simon.Tovey
Back out of my changes to vertex painting and replaced with Jurre's fixes.
Change 3944174 by Frank.Fella
Niagara - Fix stack categories so that they don't freak out when the stack is refreshed, and also remove the uncategorized heading and move uncategorized inputs to the top.
Change 3944313 by Shaun.Kime
Updated screenshots after motion blur
Change 3944321 by Shaun.Kime
Fixing error message to be clearer about a disconnected Get node.
#tests n/a
Change 3944351 by Shaun.Kime
Making safe against weak pointers going away.
Track error encountered by Jonathan.
#tests n/a
Change 3944368 by Yannick.Lange
Remove automatic adding prefix "particles." when renaming functioninput.
Change 3944383 by Shaun.Kime
Just adding some more nullptr check
#tests n/a
Change 3944384 by Shaun.Kime
Providing more context for a check that existed previosuly and was encountered by Wyeth today
#tests n/a
Change 3944872 by Yannick.Lange
Remove old material parameter node.
Change 3945209 by Shaun.Kime
Fixing possible infinite recurson on child array size of zero
#tests n/a
Change 3945865 by Yannick.Lange
Spreadsheet filter for output attributes
Change 3946091 by Simon.Tovey
Per particle sorting for translucent sprites and meshes
Change 3946095 by Simon.Tovey
Updated screens for dynamic param tests
Change 3946378 by Olaf.Piesche
Another sprite motion blur fix
Change 3946864 by Shaun.Kime
SkinnedMesh per-instance data requires 16 byte alignment due to usage of FMatrix. We were not guaranteeing that in our per-instance data system. We are now enforcing that to be true by aligning all memory size requests.
#tests autotests pass
Change 3946928 by Wyeth.Johnson
Skeletal mesh location metadata. THIS VERSION ALSO CRASHES ON SAVE FYI
Change 3946934 by Frank.Fella
Niagara - Clean up rapid iteration parameters on compile.
#Tests - Fixes the jira below, all auto tests which were currently passing still pass, and GDC effects load and look correct.
#jira UE-55932
Change 3946936 by Frank.Fella
Niagara - Fix crash when undoing adding a dynami input.
Change 3947213 by Simon.Tovey
Fix for thread safety in collision data interface.
Previously I'd made them thread safe between VM chunks but they already weren't safe between system instances.
Change 3947279 by Simon.Tovey
Fixed thread safety issue with niagara global dynamic buffer
Change 3947788 by Simon.Tovey
Fix enum property warnings
Change 3947849 by Olaf.Piesche
Normalize orientation quats. Safety first.
Change 3947877 by Frank.Fella
Niagara - Fix a crash when editing meta-data for a module currently open in a system or emitter editor stack. This updates the FNiagaraStackFunctionInputBinder to track the lifetime of the default pin correctly.
Change 3948445 by jonathan.lindquist
Inverting alpha output
Change 3948615 by Olaf.Piesche
Don't access data layouts that are invalid because their bindings don't exist
Change 3949361 by Yannick.Lange
Command to expand all groups and collapse all items of those groups in the stack.
Change 3949365 by Yannick.Lange
Missing file for change 3949361
Change 3951123 by Simon.Tovey
Fix bug with dynamic parameters in Niagara mesh particle VFs
Change 3951199 by Simon.Tovey
Fix for issues caused by unsafe reads of GT data from RT
Change 3951293 by Olaf.Piesche
Workaround for jittering particles with collision at rest state; will need to revisit after GDC
Change 3951533 by Yannick.Lange
Collapse parameter menu by default
Change 3952106 by Frank.Fella
Niagara - Fix data interface input initialization when inserting modules and dynamic inputs. We now put all inputs into categories in the stack and this code didn't handle that.
Change 3954809 by Frank.Fella
HoudiniNiagara - Add include to fix CIS incremental build.
Change 3954857 by Frank.Fella
Niagara - Accept newer versions of 3 automated tests images as they are stable and still look correct for what they are testing.
Change 3954935 by Frank.Fella
Niagara - Fix a crash in the skeletal mesh sampling info details customization when a mesh has no skeleton.
Change 3954969 by Simon.Tovey
Compile fix for gpu emitters
Change 3955012 by Frank.Fella
Niagara - Fix clang and deprecation warnings.
Change 3955988 by Olaf.Piesche
Fixing collision queries (separating line query trace direction and velocity, so we can look a frame ahead properly); various fixes to the impulse modules; rest module now allows for color change when particles are set to rest. This checkin should stabilize collision dynamics substantially.
Change 3956730 by Yannick.Lange
Cleanup parameter
Change 3957065 by Bradut.Palas
enable/disable mechanism for renderers
#tests none
Change 3957802 by Olaf.Piesche
-Removing Velocity parameter from collision query DI, since velocity at query time is known and can just be passed along in temporary parameter; this stops the compiler from falling over in unity builds and also makes the Perform Query function more sane as an actual line check
-Put some safeguarding against non-collisions (v.n>0) reported as intersections into the collision query module to avoid instances of particles being pushed through geometry
-Updated modules to use the new function signature
#tests modular explosion test map, EngineTests
Change 3957804 by Olaf.Piesche
Updated tests for 3957802
Change 3957859 by Frank.Fella
Niagara - Add missing #if to fix some of the nightly build errors.
Change 3958065 by Olaf.Piesche
Fix GPU sim hlsl for the collision data interface; should make GPU collision bounce test run again
Change 3958302 by Olaf.Piesche
modified test for sane depth bounds; accepting new results; some changes to hlsl for collision data interface
Change 3959007 by Simon.Tovey
Further defining the barrier between GT and RT data.
Not finished yet, especially for GPU sims but we're heading in the right direction.
Change 3960004 by Bradut.Palas
QOL change, now committing search text in the stack (pressing enter) will jump to the next occurrence.
#tests none
Change 3960019 by Frank.Fella
Niagara - Preemptively fix up stack related header includes to avoid manual merges.
Change 3964217 by Bradut.Palas
Fixing compile issue after renderer enable feature(the Isolate features require the WITH_EDITORONLY_DATA preprocessor directive to be enabled)
#tests none
Change 3964581 by Frank.Fella
Niagara - Get things compiling again after merge. Mostly include fixes and commeting out lots of sequencer related stuff that needs to be fixed.
Change 3965057 by Frank.Fella
Niagara - Fix compile issues in the houdini plugin. Also add the houdini pluging to EngineTest so that it compiles by default when running tests.
Change 3965075 by Frank.Fella
Niagara - Fix another include issue that was caught on the build machine.
Change 3965308 by Frank.Fella
Niagara - One more header fix. Should fix the win64 build in CIS.
Change 3965313 by Frank.Fella
Niagara - Fix in editor playback. The timeline data is still broken.
Change 3965482 by Yannick.Lange
Stack source taken apart into different files.
Change 3965863 by Shaun.Kime
Fixes scope level variable definition causing my local build to fail
#tests n/a
Change 3965866 by Shaun.Kime
Crash fix when the module is missing. Now show an error message as well as checking for script validity before calling method on it
#tests n/a
Change 3968174 by Frank.Fella
Niagara - Fix more merge fallout. The emitter/system editor timeline now matches the stack data again.
Change 3968183 by Frank.Fella
Niagara - Delete commented out include from merge.
Change 3972162 by Frank.Fella
Niagara - Updated level sequence testing assets.
Change 3972880 by Shaun.Kime
Merging using DevNiagaraToGDC2018
Allowing disabled modules to still influence parameter maps.
#tests n/a
Change 3973269 by Shaun.Kime
Disabling warning about divide by zero as it is often incorrect
#tests n/a
Change 3973273 by Shaun.Kime
Forcing all three planes to be GPU
#tests n/a
Change 3973307 by Shaun.Kime
Fixing CIS win32 errors
#tests n/a
Change 3973374 by Shaun.Kime
Fixing minor static analysis warnings
#tests n/a
Change 3976107 by Shaun.Kime
Updating multiple files as they have the unversioned file warning
#tests auto tests now show green
Change 3976114 by Shaun.Kime
Taking snapshots after the integration for time control to clear automated tests. Frank was uncertain about the current behavior being correct, but didn't want to hold up integration for that.
#jira UE-57117
Change 3976119 by Shaun.Kime
Makiing GPU shaders contain the dependencies and the compile id's and other items so that they update properly.
#tests auto-tests now pass
Change 3976449 by Shaun.Kime
Adding additional debugging to logs
#tests n/a
Change 3977172 by Frank.Fella
Niagara - Fix issues with the level sequence integration for niagara caused by the integration from main, and accept the new test image. This code should be updated at some point to use the new channel blending in sequencer.
NOTE: There is still a timing issue that is evident in the automated test screen shot due to float timing and rounding issues in niagara, but the sequencer code is functioning correctly.
Change 3977362 by Bradut.Palas
UE-55601 curve snapping not working in Niagara curve editor
#tests none
Change 3977363 by Bradut.Palas
exposed added external asset for function input so it would appear in context menu in the Niagara stack.
#tests none
Change 3977368 by Bradut.Palas
#jira UE-51052 If you undo an emitter rename we get invalid values
The CachedUsageInfo got emptied but it didn't get restored by the undo, sending the system in an endless Compile() loop
Added a Modify() call in the UNiagaraScriptSource::InvalidateCachedCompileIds()
#tests none
Change 3978716 by Shaun.Kime
Fixing half of CIS static analysis warnings and localization symbol dupe warnings from Jamie Dale
#tests auto tests pass other than known level sequence test
Change 3978857 by Shaun.Kime
The map SpawnTest niagara actor didn't have its wait for compilation flag set, potentially leading to artifacts. Disabling for now as that didn't resolve the issue.
Change 3979594 by Shaun.Kime
Potential fix for cook on Orion
#tests n/a
Change 3979713 by Shaun.Kime
Fixing several more CIS static analysis warnings as well as duplicate localization string warnings from Jamie Dale
#tests n/a
Change 3980017 by Shaun.Kime
Fixing CIS static analysis warnings as well as duplicate localization string warnings from Jamie Dale
#tests n/a
Change 3981859 by Shaun.Kime
Fixing crash in Paragon when the normals buffer was not present during startup with just UI screens.
#jira UE-57188
#tests got through to paragon main screen, related auto-tests pass
Change 3982685 by Shaun.Kime
For some reason, when Lightmass is spinning off workers, the render thread is null, causing us to trigger checks that we shouldn't trigger when killing of system instances.
#jira UE-57214
#tests all auto-tests pass
Change 3983902 by Simon.Tovey
Speculative fixes for mac errors regarding niagara vertex decls.
Change 3984023 by Andrew.Rodham
Sequencer: No longer upgrade bIsInfinite for section types that do not support open ranges
Change 3986727 by Wyeth.Johnson
Fixed add velocity from point to work in more situations, not cause errors regardless of stack location, made it more programmable with inputs, and added metadata
Change 3988114 by Wyeth.Johnson
fixed color and inherit parent vel
Change 3989175 by Simon.Tovey
Improved VM error reporting.
#tests engine tests
Change 3995007 by Yannick.Lange
Parameter menu in system layout
Change 3995192 by Yannick.Lange
Fix niagara script details panel search
Change 3995291 by Yannick.Lange
Parameter menu tooltip fix
Change 3997804 by shaun.kime
Lookup table is off for this. Keys are 0,0 and 1,1, so you'd expect normalized age as a sampler to just return the same value from lookup. If LUT is disabled, this is true. If LUT is enabled, it isn't, especially the farther one gets from 0.
Change 3998124 by Simon.Tovey
Fixed Curve LUT generation
#tests editor
#jira UE-57604
Change 3998286 by Wyeth.Johnson
Fixed normalized execution index to, you know, work.
Change 4000324 by Shaun.Kime
Replacing a thread-safety issue where we get an enum on an as-needed basis. This was causing crashes in cooking as you cannot find from the global table while serializing.
#tests have not gotten the crash since
Change 4000428 by Bradut.Palas
UE-55750 focus curve editor when "show" button is pressed
UE-55791 user variable curves cannot be shown in the Curve tab
These issues were related and touched the same area of code, so I fixed them together. UE-55791 is basically just getting curve data from the system exposed variables too.
#tests none
Change 4001094 by Frank.Fella
Niagara - Fix slowdown in the metadata editor due to delegate rebinding.
Change 4001098 by Frank.Fella
Niagara - Remove the tool tip from the additional options drop-down for modules since it covers the drop down menu.
Change 4001133 by Bradut.Palas
Fix curve editor getting focused each time a curve was changed.
#jira UE-57708
#tests none
Change 4001253 by Frank.Fella
PropertyEditor - Fix issues with external root handling.
+ Fix external nodes not being cleaned up correctly when custom node builders rebuild children.
+ Fix expanded state being trampled when processing external nodes due to the expanded nodes list being emptied every time RestoreExpandedItems was called.
+ Fix performance issues with refreshing during tick by moving all calls to RestoreExpandedItems to UpdateFilteredDetails, and then only calling UpdateFilteredDetails once per tick as needed instead of per root property node and per root external node.
Change 4003365 by Shaun.Kime
If the physical material has gone away, make sure to set value values. Note that if this data interface is going to go on in parallel to the game thread, we'll need something more sophisticated.
#tests Win64 tests pass
Change 4003367 by Shaun.Kime
Making sure that the system has finished compiling before we begin cooking.
#tests n/a
Change 4003374 by Frank.Fella
Niagara - Fix a crash when adding and removing modules and dynamic inputs with data interfaces.
#jira UE-57749
Change 4003696 by Shaun.Kime
Getting rid of whitelist, now open on all platforms.
#tests n/a
Change 4005368 by Shaun.Kime
Fixing compile error on Linux
#tests n/a
Change 4013779 by Shaun.Kime
Interpolated spawn on GPU does not yet work but checkpointing work.
+ Added AdditionalDefines to the VMCompileId, switched interpoalted spawn to use that
+ Added rough interpolated spawn support to translator by refactoring away from specific calls and hard-coded update/spawn somewhat... could improve for events
+ Revised shader variables away from Phase0/Phase1 terminology to the true Update/Spawn meaning. Leaving the phase numbers as an implementation detail within the usf.
+ Added ToString to ParameterStores for debugging
+ Changed GPU ExecIndex() logic to actually work similar to the VM
#tests collision gpu fails
Change 4015355 by Simon.Tovey
Persistent IDs final.
Still need to change the compile ID parts over to use the new additional defines but the core functionality is in.
#tests editor + engine tests
Change 4018445 by Simon.Tovey
Some missing assets
Change 4021647 by shaun.kime
Moving jonathan's DebugParticleData to Niagara Extras
Change 4024809 by Yannick.Lange
Parameter map hover text using metadata description.
Change 4025042 by Wyeth.Johnson
Dogfooding the skeletal Mesh location module w/ comments, reroute pins, map gets and sets, metadata, tooltips, etc.
Change 4025236 by Shaun.Kime
Working on getting interpolated spawning working. Submitting to get assistance from Simon.
... PLEASE DON'T SYNC UNLESS YOU'VE SPOKEN TO ME...
#tests collision test on GPU is better, but not yet right.. ribbon id emitter is ensuring on LUT table generation
Change 4025372 by Shaun.Kime
Making the debug particle data stay the same size as the base particle for easier debugging.
#tests n/a
Change 4025701 by Shaun.Kime
Debug asset for Simon
#tests n/a
Change 4027865 by Shaun.Kime
Fixing parameter map stores to properly handle reset. Previously was leaving around padding info from previous version of the script which could be totally wrong.
#tests now don't crash
Change 4029638 by Wyeth.Johnson
Refactor Skeletal mesh location module to test some ideas on coding standards and shake out workflow issues
Change 4030135 by Shaun.Kime
Interpolated spawning now works on the GPU.
#tests collision gpu has stray collisions and the GenerateLocationEvent was recently updated that broke . will fix in a later update
Change 4030197 by Wyeth.Johnson
Refactor static mesh location module
Change 4033437 by Simon.Tovey
Adding a few simple new functions for direct access to vertex positions for cannabis.cod3r.
Change 4033937 by Shaun.Kime
Setting the wait for compilation flag
#tests now pass consistently
Change 4034391 by Shaun.Kime
Created a parameter map default node to start default call chains.Updated standard modules and dynamic inputs.
#tests all previoulsy passing tests pass
Change 4035002 by Shaun.Kime
Updated to work with latest main integration
#tests n/a
Change 4035523 by Wyeth.Johnson
Refactor Cone stuff to coding standards, replace some things with functions
Change 4035672 by Shaun.Kime
Fixing build warnings
#tests n/a
Change 4036887 by Wyeth.Johnson
Some metadata, some optimization, some additional refactoring and swapping in functions. Straight Dogfoodin'
Change 4037132 by Shaun.Kime
Adding GPU test versions of several assets
Change 4037241 by Wyeth.Johnson
Optimizing, metadata, and making some coding standards changes
Change 4037436 by Wyeth.Johnson
Fixing a pointless module to make it... pointful?
Change 4037629 by Frank.Fella
Niagara - Fix issues with data interfaces as parameters
+ Collect data interface reads and writes from parameter maps during compilation so they can be hooked up a runtime.
+ Add new runtime parameter stores for systems and emitters at runtime which bind the exposed data interfaces into the execution contexts.
+ Fix the editor code which updates the compiled data interfaces so that it updates the correct ones regardless of where they are defined.
+ Fix an issue where failed compiles weren't being propgated to the UI correctly.
Change 4037832 by Shaun.Kime
Properly handling nullptr references
#tests deleting a module from the stack after it was recently refreshed now doesn't crash
Change 4037917 by Wyeth.Johnson
Fix add velocity from point (needed begin defaults), reorg, comment and metadata
Change 4038250 by Wyeth.Johnson
Big refactor of spawn per unit
Change 4038665 by Shaun.Kime
Events now take parameter map in/out pins
#tests now the events auto-tests should pass
Change 4038723 by Shaun.Kime
Now renderers can say if they are compatible with the SimTarget mode.
#tests now changing to GPU doesn't crash a light renderer
Change 4038731 by Shaun.Kime
Missing file from prior checkin
#tests n/a
Change 4038742 by Shaun.Kime
Attempting to fix editor build, which is unfortunately fine on my machine
#tests n/a
Change 4040069 by Wyeth.Johnson
Refactor of Event Generator and Event Receiver, new coding standards for events
Change 4040377 by Wyeth.Johnson
Refactor the solver to adhere to coding standards (and remove some reroute pins, sorry Shaun)
Change 4040639 by Wyeth.Johnson
Vector Noise Force refactor and optimization
Change 4041031 by Shaun.Kime
Making the modulo functions on the gpu return a value.
#tests passes cook on PS4 and gets past this in compile on Mac
Change 4041254 by Wyeth.Johnson
Refactor Point Attraction, change some behavior also
Change 4041999 by Yannick.Lange
Parameters refactor:
- Find parameters and references in graph
- Renaming parameters, includes renaming all pins in the graph
- Removing parameters
- Find metadata when finding parameters, so we are not looping through all nodes/pins twice
- Parameters list supports multiple emitters in systems
Change 4042058 by Simon.Tovey
Refactored GPU parameters.
- Shader now uses the DI default object to create the correct parameters struct.
All parameter and buffer management now being handled inside this parameter struct.
This allows far more encapsulated code for each DI.
Allows us to reamove the GPU buffers from and the Scene texture refs that were in the base DataInterface class.
Simplifies the API and process of implementing DI's on the GPU considerably.
- Removed all existing GPU buffer support code and usage. All DIs now use a parameters struct.
- Have moved tons of curve code into the base class, simplifying the child implementation classes.
- Implemented GPU curve interpolation.
- Removed bAllowUnnormalizedLUT. Confusing and now unnessessary. All curves do this by default.
- Modified FNiagaraShaderMapId to use the latest FNiagaraCustomVersion::LatestScriptCompileVersion and bumped it.
- Created NiagaraCore module and moved a few classes into it. Anything needed by both the shaders and runtime should be here.
- Refactored DI hierarchy to base from a new UNiagaraDataInterfaceBase which is inside NiagaraCore.
- Removed constness from many UStruct/UEnum/UClass pointers. Technically we don't ever need these to be non const so initialy coded as const. Some existing engine code however requires these be non const so had to propagate that back through our code.
Change 4043427 by jonathan.lindquist
Submitting a material function that will allow users to reproduce mesh surfaces.
Change 4043448 by Olaf.Piesche
Async GPU buffer readbacks and updates
Change 4043679 by Shaun.Kime
Fixing Mac compile issue. Not sure if correct, but unused code so good for now.
#tests n/a
Change 4044000 by Simon.Tovey
static analysis fix
Change 4044001 by Simon.Tovey
Fix for gpu scripts with multiple curves.
Change 4044124 by Yannick.Lange
Fix persistent guid for parameter map set pins.
Change 4044230 by Simon.Tovey
I didn't forget to check these in. Nothing to see here.... *whistling*....
Change 4044584 by Bradut.Palas
Module dependency properties are now available (to be used by technical artists before the functionality is done and submitted)
#jira UE-58200
#tests none
Change 4044663 by Wyeth.Johnson
Jitter position needed begin defaults, got a refactor which I was in there
Change 4044894 by Yannick.Lange
Rename parameter and all referenced pin when renaming a pin on a map set or get.
Also fixes renaming a pin not deleting the old metadata.
Change 4045383 by Wyeth.Johnson
Fix up and comment/tooltip on mesh rotation, look at, and rot rate
Change 4045488 by Wyeth.Johnson
Update Age reorg just for readability
Change 4045799 by Shaun.Kime
Reworking test art to get rid of known issues and put known issues into their own assets.
Change 4046328 by Wyeth.Johnson
Some optimizations, options to polar/cartesian, starting in on Dynamic Inputs
Change 4046728 by Shaun.Kime
Fixed error where we were writing to Loca.Module.EventVelocity instead of Local.Module.EventVelocity.
Change 4047423 by Frank.Fella
Niagara - Fix post load code for the assignment node which was not conditionally post loading another object it was using which now has a custom post load. This resulted in strange pin renaming which was breaking merging and automated tests.
Change 4047425 by Frank.Fella
Niagara - Make the merge manager a little more resistant to malformed stacks.
Change 4047788 by Bradut.Palas
#jira UE-57902 Module input sort priority
#tests none
Change 4048063 by Yannick.Lange
Fix don't show context menu on parameter view categories.
#jira UE-57196
Change 4048068 by Yannick.Lange
Fix create system from emitter
#jira UE-57186
Change 4048132 by Yannick.Lange
Add missing includes.
Change 4048269 by Shaun.Kime
Removing ensure that we log later
#tests n/a
Change 4048273 by Shaun.Kime
Really doing it this time
#tests n/a
Change 4048595 by Yannick.Lange
Fix niagara if node input disconnect on output pin rename.
#jira UE-58095
Change 4049640 by Simon.Tovey
Daft mistake in curve hlsl gen.
Change 4050270 by jonathan.lindquist
Submitting a module that lerps each of a particle system's intrinsic particle values. Each variable set utilizes an opt-in bool.
Change 4050282 by jonathan.lindquist
Submitting newly formated Mesh Reproduction modules. They now contain documentation, be fully generalized and meet our updated coding standards.
Change 4050566 by Olaf.Piesche
-More fixes and changes for async gpu buffer readback
-removed more CPU intervention; spawning and death now happen largely without CPU direction, other than determining the number of particles to spawn
-Added piping number of vert indices per instance from the renderer down to the GPU context and CS; as a result, GPU simulated mesh emitters are working again; this will need a bit of additional work to handle multiple renderers (will need multiple DrawIndirect parameter buffers reflecting the different renderers)
-General cleanup and prettification
Change 4050907 by Frank.Fella
Niagara - Add support for default dynamic inputs on modules and dynamic inputs.
Change 4051436 by Simon.Tovey
Forcing a refresh of curve LUTs on assets with old versions.
Change 4051463 by Simon.Tovey
Compile fix
Change 4051900 by Frank.Fella
Niagara - Fix linux warning.
Change 4052253 by Olaf.Piesche
GPU sim interpolated spawn fixes - Look Ma, no gaps!
Change 4052321 by Frank.Fella
Niagara - Enable the level sequence test.
Change 4052353 by Shaun.Kime
Renamed variable after Wyeth's change
#tests MeshOrientationTests now pass
Change 4052627 by jonathan.lindquist
Submitting a new spline function.
Change 4052648 by Shaun.Kime
PS4 development builds don't seem to be able to remove generated data for structs like this even though it is in a non-editor build.
#tests n/a
Change 4052661 by Olaf.Piesche
-Avoid branching on every OutputData operation by allocating a scratch instance at the buffer end and setting the default index from AcquireIndex to that.
-bit of shader code cleanup
Change 4052706 by jonathan.lindquist
Adding a module that supports a single segment spline
Change 4052712 by jonathan.lindquist
Adding a below threshold output to the direction and length safe function
Change 4052786 by jonathan.lindquist
Submitting a new height lerp function
Change 4053126 by jonathan.lindquist
Submiting a function that calculates a triangle's surface area.
Change 4053132 by jonathan.lindquist
Changing the category to geometry
Change 4053141 by jonathan.lindquist
Moving the asset back to a generic math category
Change 4053166 by jonathan.lindquist
Submitting a new threshold function that removes threshold downtime.
Change 4053564 by Shaun.Kime
Added staging to ini as requested by cook
#tests n/a
Change 4053619 by Shaun.Kime
Fixing defaults
#tests used by Orion art
Change 4054171 by Yannick.Lange
Remove bold font for parameters.
Change 4054183 by Yannick.Lange
Syncing system exposed parameters and parameters list. Includes adding, removing and renaming parameters.
Change 4054313 by Wyeth.Johnson
Refactor spawnrate to (mostly, other than a bug) conform to coding standards, and set begin defaults on a few things.
Change 4054840 by Shaun.Kime
Fixing redundant branch for CI
#tests n/a
Change 4055492 by Shaun.Kime
Updating compile version since I changed the usf
#tests n/a
Change 4055550 by Shaun.Kime
Disabling rendering of middle module as it differs between machines.
#tests LevelSequenceTestsNiagara now passes
Change 4056256 by Shaun.Kime
Disabling the ensure and turning into log statements for curve copying
#tests n/a
Change 4056287 by Shaun.Kime
Now using GLobalCompileShader. There are still issues with cooking as there is sometimes a runtime streaming error that we didn't read in the correct amount of data. I think the logic for when/if we stream out the compiled shader might still need TLC.
#tests n/a
Change 4056381 by jonathan.lindquist
A new quat to angle axis and angle axis to quat conversion mat function
Change 4056513 by Frank.Fella
Niagara - Fix crashes for default data interfaces where the pin default was empty or the data interface wasn't initialized.
#jira UE-58789
Change 4056734 by Frank.Fella
Niagara - Drag and drop for modules.
Change 4056880 by Simon.Tovey
Replacing engine tests shots for RibbonID test.
Some slight changes introduced, likely curve or recent module changes.
Change 4056894 by Bradut.Palas
UNiagaraStackEntry Error refactoring + Module dependency warning feature.
#jira UE-58199, UE-58200
#tests none
Change 4056916 by Bradut.Palas
Add missing files from shelved changelist.
#tests none
Change 4056937 by Bradut.Palas
#jira UE-54678 The skeletal mesh customisation did not update when the mesh was changed through the data interface or mesh editor
#tests none
Change 4057014 by Frank.Fella
Niagara - Fix cis initializer order warning.
Change 4057542 by Bradut.Palas
#jira UE-58554 Remove Refresh UI button from Niagara script editor
#jira UE-58555 Remove Numeric Output Type Selection Mode from Niagara script UI
#tests none
Change 4057702 by Bradut.Palas
The stack editor priority in the variable metadata now properly has zero as default value.
#jira UE-58740
Change 4057758 by Frank.Fella
Niagara - Fix text wrapping for error items.
Change 4057990 by Bradut.Palas
Stack error tweaks (added error count to the stack errors button and also updating icon according to highest severity issue in the subtree)
#tests none
Change 4057996 by Shaun.Kime
Trying to fix the static analysis header tool error in CIS
#tests n/a
Change 4058027 by Shaun.Kime
Fixing compilation on other platforms
#tests compiles on playstation
Change 4058356 by Frank.Fella
Niagara - Fix an assert that happens when adding a module or dynamic input with a boolean or enum input.
Change 4058428 by Frank.Fella
Niagara - Fix a crash when removing an input from a set variables node in the stack which was caused by the function losing an input without the stack being refreshed. This also fixes an issue where add and remove actions on a set variables module wouldn't take affect until the graph was compiled.
Change 4059924 by Wyeth.Johnson
Rollback //UE4/Dev-Niagara/Engine/Plugins/FX/Niagara/Content/Modules/Spawn/Velocity/AddVelocity.uasset to revision 5
Change 4060256 by Wyeth.Johnson
Forces are now dependent on a solver
Change 4060430 by Wyeth.Johnson
Velocity modules depend on a solver
Change 4060949 by Shaun.Kime
Fixing pragma once definition as well as a possible null deref
#tests n/a
Change 4060955 by Shaun.Kime
Fixing due to changes in defaults
#tests all now pass PC
Change 4061000 by jonathan.lindquist
Debug particle material improvements which includes comments in the shader, rearranged layout with a vector 2 input for particle id, new texture, a new instance that includes "focus masking"
Change 4061804 by Wyeth.Johnson
Optimized out a couple unnecessary bits of math from some axis alignment stuff, solver dependencies
Change 4061974 by Simon.Tovey
Fixed GPU cooking.
- Removing check for emitter SimTarget in CanBeRunOnGpu() and relying only on the script usage having been loaded already.
We can't rely on properties in the emitter being loaded before the call to UNiagaraScript::PostLoad() so this is unsafe.
- Adding some dummy gpu buffers to bypass validation ensures in rhi when we need to set params for SRVs that have not been allocated yet.
- Fixed bug in RHI that was returning FGPUFenceRHIParamRef and so the created fence was immediately freed and boom.
Change 4062269 by Shaun.Kime
Re-enabling most of the tests.
#test n/a
Change 4062414 by tim.gautier
QAGame: Updated QA-Effects for mobile compatibility
- Removed Atmospheric Fog (not supported on Mobile)
- Added SkySphere (resolved lighting issues)
Change 4062651 by Shaun.Kime
Saving with versions
Change 4062673 by Shaun.Kime
Making emitter names without spaces so that they can be blacklisted if need be
Change 4062686 by Shaun.Kime
Getting ready for CI for 4.20
Change 4062687 by Shaun.Kime
Updating mac images
Change 4063298 by Shaun.Kime
Disabling collision test gpu for now. Need to investigate what broke it tomorrow.
#tests CollisionBounceGPU
Change 4063373 by Shaun.Kime
Blacklisting mac tests that still need work
Change 4063434 by Shaun.Kime
Cleaning out previous debug code
#tests n/a
Change 4063618 by Yannick.Lange
Fix dragging an input pin to the add pin of an if node
#jira UE-58600
Change 4063847 by Frank.Fella
Niagara - Rename RibbonSortKey to RibbonLinkOrder, change it from an int32 to a float, and disable uv age offset when using link order instead of normalized age to order particles in the ribbon. This should fix the issues preventing beams from being implemented nicely.
#tests Auto-tests
Change 4064150 by tim.gautier
QAGame: Removing floating NewWidgetBP from /Content
Change 4064237 by Shaun.Kime
Disabling the level sequence test for now
Change 4064902 by Shaun.Kime
Fixing compile errors on linux editor build
#jira UE-58620
#tests n/a
Change 4065167 by tim.gautier
QAGame: Submitting temporary update to TM-ShaderModels, adding Niagara station
Change 4065400 by tim.gautier
QAGame: Submitting updated (temp) TM-ShaderModels. Set NewNiagaraEmitter to Local Space by default
Change 4065540 by Frank.Fella
Niagara - Temporarily disable the module dependencies until they can be fixed.
Change 4065570 by Shaun.Kime
Fixing linux build
#tests n/a
#jira UE-58979
Change 4066753 by Shaun.Kime
Updating custom version after previous change to shader includes
#tests autotests pass
Change 4067981 by Frank.Fella
Niagara - Fix potential null dereference found by CIS
#jira UE-59013
Change 4067998 by Shaun.Kime
Nullpointer checks on shutdown
#jira UE-59000
Change 4068104 by Frank.Fella
Niagara - Change the prefix for the previous parameter values from PREV__ to PREV_ since the cross compiler reserves all symbols with double underscores for opengl.
Change 4068118 by Frank.Fella
Niagara - Fix an open GL crash where we weren't passing the correct buffer index when setting parameters for compute shaders.
Change 4069299 by Olaf.Piesche
Async GPU readback/update mobile platform fixes
CPU particles should work on Android
#jira UE-58986
Change 4069603 by Shaun.Kime
Making it possible to see the debug output if the console variables are set for shaders.
#tests auto-tests pass
Change 4069628 by Shaun.Kime
OpenGL is very picky about shutting down its texture buffers. We were improperly holding onto static resources and leaking OpenGLShaderResourceViews until module shutdown. Unfortunately, this is *after* the renderer has been shut down and the corresponding OpenGL managers have been deleted, causing us to call into deleted memory. By making several classes FRendererResources, we now register at the appropriate times. In several cases, since the buffers are special purpose fallbacks I moved them into helper locations that are build on demand.
Removed FNiagaraVertexFactoryBase::DummyBuffer
Created FNiagaraDummyRWBufferInt and FNiagaraDummyRWBufferFloat so that I could wrap several dummy RW buffers in RendererResources and TGlobalResource.
Removed NiagaraEmitterInstanceBatcher::DummyWriteIndexBuffer
#tests all auto-tests pass on PC and OpenGL and we can open and close OpenGL after using Niagara assets
#jira UE-59000
Change 4069646 by Shaun.Kime
Disabling Niagara component activation on Switch. This is an attempt to bypass a crash after the assets have been loaded on Switch.
#tests auto-tests on PC still pass
#jira UE-59048
Change 4069660 by Shaun.Kime
Updated Niagara version
#tests Auto tests pass
Change 4069714 by Shaun.Kime
Fixing Olaf's checkin prior adding offset to the base readback call
#tests autotests pc pass
Change 4070785 by Olaf.Piesche
Make RWBuffer available on Metal, Vulkan, and ES3.1 with SRVs
Change 4070888 by Olaf.Piesche
#jira UE-57657
Reenable ribbon custom facing mode
Change 4071570 by Shaun.Kime
Removing thread pool size log item as it comes up thousands of times in a cook and is purely for debugging.
#tests n/a
Change 4071926 by Shaun.Kime
Disabling Olaf's change from earlier in the day as it doesn't work on PS4.
#tests Ribbon test now works again
Change 4073700 by Shaun.Kime
Fixing compiler warning about float4 being used as a float.
#tests pc auto tests pass
#jira UE-59157
[CL 4075457 by Shaun Kime 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]