Files
UnrealEngineUWP/Engine/Source/Editor/Sequencer/Private/Tools/EditToolDragOperations.cpp

1444 lines
51 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "Tools/EditToolDragOperations.h"
#include "ISequencer.h"
#include "MovieSceneTrack.h"
#include "MovieSceneSequence.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
#include "Sequencer.h"
#include "SequencerSettings.h"
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3379190) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3342222 on 2017/03/10 by Nick.Darnell UMG - Adding a GetContent to the UContentWidget. Change 3342228 on 2017/03/10 by Nick.Darnell Project Launcher - Always consume mouse wheel vertically so it stops scrolling to the right. Change 3342310 on 2017/03/10 by Nick.Darnell UMG - Cleaning up some extra class references. Change 3343382 on 2017/03/13 by Jamie.Dale Applying optimization to FChunkManifestGenerator::ContainsMap Change 3343523 on 2017/03/13 by Mike.Fricker New details view option: "Show Hidden Properties while Playing" - Enabling this allows you to see every property on selected objects that belong to a simulating world, even non-visible and non-editable properties. Very useful for inspection and debugging. - Remember to change World Outliner to show you actors in the "Play World" if you want to select and inspect those objects first! - This setting is saved for your entire project, similar to "Show All Advanced" Change 3343573 on 2017/03/13 by Mike.Fricker New details view option: "Show Hidden Properties while Playing" (part 2) - Fixed missing include / unity issue Change 3343709 on 2017/03/13 by Jamie.Dale Some fixes for gathering cached dependency data - We no longer load dependency data that doesn't have the correct package name. - We no longer populate the dependency results when bGatherDependsData is false. Change 3343900 on 2017/03/13 by Alexis.Matte fix crash when creating too much LOD at import #jira UE-42785 Change 3344104 on 2017/03/13 by Alexis.Matte Add a boolean to the static mesh socket so we know if the socket was imported or created in UE4. This allow us to not impact editor socket when we re-import a fbx #jira UE-42736 Change 3344802 on 2017/03/14 by Michael.Dupuis #jira UE-42244 : added missing nullptr so render thread wont try to access global var when we're no longer in landscape mode Changed the sync method between graphic resource from render thread and game thread to prevent desync Change 3346061 on 2017/03/14 by Jamie.Dale Adding const& and && overloads of FText::Format Change 3346192 on 2017/03/14 by Arciel.Rekman Linux: fix VHACD to retain bincompat with the baseline (UE-42895). - It is now compiled against libc++ instead of libstdc++ in the toolchain. Change 3347083 on 2017/03/15 by Andrew.Rodham Fixed crash when changing anchors on a background blur widget Change 3347359 on 2017/03/15 by Michael.Dupuis #jira UE-38193: Added Rename, Delete, New Folder, Size Map, Show In Explorer for folder and asset in the path view and asset view Change 3347382 on 2017/03/15 by Michael.Dupuis missing include incremental Change 3347500 on 2017/03/15 by Alex.Delesky #jira UE-41231 - Selecting multiple text widgets in UMG will now allow you to set their value correctly, and the "Multiple Values" text will no longer be set in the widgets instead. Change 3347920 on 2017/03/15 by Jamie.Dale Fixing some places passing tooltips as FString rather than FText #jira UE-42603 Change 3347925 on 2017/03/15 by Jamie.Dale Re-saving some assets so their tooltips can be gathered #jira UE-42603 Change 3348788 on 2017/03/15 by Jamie.Dale Updated the Windows platform to use the newer Vista+ style browser dialogs, rather than the older XP style dialogs Change 3349187 on 2017/03/16 by Andrew.Rodham Sequencer: Added the ability to specify additional event receivers for level sequence actors - Such actors will receive events from event tracks Change 3349194 on 2017/03/16 by Andrew.Rodham Sequencer: Reset compiled templates on load in the editor, and ensure correct serialization of generation ledger - Resetting on load means that we guarantee up-to-date templates, even if underlying compilation logic changes. #jira UE-42198 #jira UE-40969 Change 3349210 on 2017/03/16 by Andrew.Rodham Sequencer: Event tracks can now be defined to trigger events at the start of evaluation, after objects are spawned, or at the end of evaluation Change 3349211 on 2017/03/16 by Andrew.Rodham Sequencer: Add ability to retrieve bound objects from blueprint Change 3349398 on 2017/03/16 by Nick.Darnell UMG - Fixing a flashing hierarchy view. Looks like assets continuing to stream in causing the object change notification to continue to fire, and the widget designer refreshed any time it happened. Now limit to only if widgets are changing. Change 3349420 on 2017/03/16 by Alex.Delesky #jira UE-40720 - Multiline editable text boxes can now be set to Read-Only. Change 3349548 on 2017/03/16 by Alexis.Matte Fbx importer, when importing a staticmesh with combine mesh option check and the fbx file contain some "MultiSub Material" the materialinstance are now always hook properly. Change 3349818 on 2017/03/16 by Cody.Albert Fixed constructor for FNavigationMetaData Change 3350047 on 2017/03/16 by Cody.Albert Removed unneeded check so that children actors are never orphaned when their parent is moved into a newly created folder in the world outliner Change 3350072 on 2017/03/16 by Arciel.Rekman ShaderCompiler: make sure strings are at least 4-byte aligned. - Can crash wcscpy() under Linux otherwise (reported by a licensee). Change 3350146 on 2017/03/16 by Arciel.Rekman Fix CodeLite project generation (UE-42921). - Reportedly causes a crash in CodeLite 10.x Change 3350235 on 2017/03/16 by Arciel.Rekman Fix memory leak in address symbolication on Linux. - Makes MallocProfiler work again. - Also add progress update in MallocProfiler since symbolication is still slow. Merging CL 3338764 from Fortnite to Dev-Editor. Change 3350382 on 2017/03/16 by Arciel.Rekman Linux: fix incorrect cast of rlimit in i686. Change 3350471 on 2017/03/16 by Jamie.Dale Enabling loc dashboard by default for new projects Change 3350516 on 2017/03/16 by Jamie.Dale Enabling content hot-reloading by default Change 3350582 on 2017/03/16 by Cody.Albert Corrected Widget Interaction Component to use current impact point instead of last impact point Change 3350945 on 2017/03/16 by Jamie.Dale Gave FConfigFile::FindOrAddSection API linkage Change 3351441 on 2017/03/17 by Michael.Dupuis #jira UE-42843: Fixed Transaction begin/end order issue happening with min slider passing max slider value Add support for multiple selection value display Change 3351558 on 2017/03/17 by Michael.Dupuis #jira UE-42845: Always refresh the detail panel to properly update for selection change, delete, etc. Change 3351657 on 2017/03/17 by Matt.Kuhlenschmidt Adding USD Third Party dependencies Change 3351665 on 2017/03/17 by Matt.Kuhlenschmidt Added experimental USD Importer Plugin This plugin supports basic static mesh importing and scene creation of actors using static meshes Change 3351682 on 2017/03/17 by Matt.Kuhlenschmidt Enabling USD importer in engine test project for automation tests Change 3351749 on 2017/03/17 by Alexis.Matte Make sure the selection proxy is off for the skeletal mesh component. UE4 use the selection outline instead #jira UE-41677 Change 3351831 on 2017/03/17 by Michael.Dupuis #jira UETOOL-1102: Added HSV controls to Color Grading Some look improvement for RGV/HSV Color Grading refactor Group Reset bug fix (relevant only to color grading) Change 3352041 on 2017/03/17 by Matt.Kuhlenschmidt Updated USD plugin whitelisting Change 3352093 on 2017/03/17 by Michael.Dupuis when FREEZERENDERING is called, stop the foliage culling too Change 3352211 on 2017/03/17 by Alexis.Matte Fix the physic asset missing skeleton warning #jira UE-43006 Change 3352336 on 2017/03/17 by Alexis.Matte We now allow a negative W value of the ScreenPoint vector in the ScreenToPixel function. In this case we simply reverse the W value to kept the manipulator direction on the good side. #jira UE-37458 Change 3352947 on 2017/03/17 by Phillip.Kavan #jira UE-42510 - Instanced static mesh transform edits are now reflected in the Blueprint editor's preview scene. Change summary: - Added IPropertyHandle::GetValueBaseAddress() (interface). - Modified IPropertyHandle::NotifyPostChange() to include EPropertyChangeType as an optional input. - Added FPropertyHandleBase::GetValueBaseAddress() (implementation). - Modified FPropertyHandleBase::NotifyPostChange() to include the optional input arg in the property change event. - Modified FPropertyHandleBase::CreatePropertyNameWidget() to clear the override text after temporarily replacing display name/tooltip text for the creation of the SPropertyNameWidget. This was done to allow for transactions to be named according to the property that's being modified. - Modified FMathStructProxyCustomization::OnValueCommitted() to only apply the input value while not interactively editing via spinbox as well as when not post-processing an undo/redo (which can trigger a focus loss). - Modified the FMathStructProxyCustomization::OnEndSliderMovement() delegate to include property handle and proxy value input parameters, as well as to call FlushValues() as part of the implementation. - Modified FlushValues() for each of FMatrixStructCustomization, FTransformStructCustomization and FQuatStructCustomization to explicitly handle both propagation and transaction processing. - Modified UInstancedStaticMeshComponent::UpdateInstanceTransform() to call Modify() prior to applying changes (so that the previous state is recorded when inside a transaction context). - Modified FInstanceStaticMeshSCSEditorCustomization::HandleViewportDrag() to propagate changes to all instances of the ISMC archetype. Known issues: - Using the spinbox to edit instanced mesh transform values in the Blueprint editor will not apply the change to instances in the level editor until after you release the mouse button (i.e. - it will not be shown as a "live" update). Change 3353678 on 2017/03/20 by Michael.Dupuis properly unfreeze the culling of foliage when toggling the freezerendering command Change 3353747 on 2017/03/20 by Matt.Kuhlenschmidt PR #3372: Git plugin: fix update status on directories hotfix (still) slightly broken in master (UE4.16) (Contributed by SRombauts) Change 3353749 on 2017/03/20 by Matt.Kuhlenschmidt PR #3373: Git Plugin: hotfix for regression off Visual Diffs with older version of Git in master (UE4.16) (Contributed by SRombauts) Change 3353754 on 2017/03/20 by Matt.Kuhlenschmidt PR #3390: Allow OBJ imports to change if materials and textures are also imported (Contributed by mmdanggg2) Change 3353909 on 2017/03/20 by Matt.Kuhlenschmidt Fixed actors showing thumbnails in details panel and made a few other tweeks to thumbnail displays in details panels - The color of the accepted type is now shown properly - All object based properties now have thumbnails on by default. Change 3353948 on 2017/03/20 by Nick.Darnell UMG - Updating the background blur widget's upgrade code to use the custom version, and handling older cases that were continuing to generate blur slots, even when already upgraded. Change 3354335 on 2017/03/20 by Nick.Darnell Paragon - Excluding Archetype objects from reporting references, which causes crashes in the fast template mode. Change 3354495 on 2017/03/20 by Nick.Darnell Core - Making it so order that outers are discovered does not matter, initializing the chain of outers if hasn't been created when instancing subobjects. Change 3354578 on 2017/03/20 by Nick.Darnell Slate - There's now a console variable option, Slate.VerifyHitTestVisibility (off by default) which enables additional visibility checks for widgets. Normally this isn't nessesary, but if you're changing the visibility of widgets during a frame, and several hit tests need to be performed that frame there's a chance that a button could be clicked twice in one frame. Enabling this mode will make all hit testing more expensive, so for now it's off by default, but available for licensees that need the extra testing. Change 3354737 on 2017/03/20 by Nick.Darnell Core - Adding a fix to Dev-Editor from that enables objects in the same package being requested to also be loaded. This came about during async streaming callbacks alerting that a requested class was done loading, but there were still other assets in the package 'not loaded' but were available, just needed post load called on them. Change 3355923 on 2017/03/21 by Yannick.Lange VR Editor: - Remove unnecessary cleanup functions. - Initialize with VR Mode and remove SetOwner function, since it shouldn't be possible to reset the VR Mode afterwards. Change 3355959 on 2017/03/21 by Yannick.Lange VR Editor: - Rename VREditorWorldInteraction to VREditorPlacement, to avoid confusion with ViewportWorldInteraction. VREditorPlacement will only handle placing objects from content browser in the VR Mode. - Removed SnapSelectedActorsToGround to VREditorMode. Change 3355965 on 2017/03/21 by Yannick.Lange VR Editor: Forgot to add files to previous submit 3355959. Change 3355977 on 2017/03/21 by Yannick.Lange VR Editor: Remove function to add a new extension with TSubclassOf<UEditorWorldExtension>. Change 3356017 on 2017/03/21 by Yannick.Lange VR Editor: - UI system check owner VRMode. - UI system fix check on VRMode on shutdown. Change 3356028 on 2017/03/21 by Nick.Darnell Slate - SButton now correctly releases mouse capture even if it becomes disabled while pressed, but before 'click' has been fired. #jira UE-42777 Change 3356071 on 2017/03/21 by Yannick.Lange VR Editor: Copy of change 3353663. - Fix having to press once on the landscape to see the visuals for landscape editing. - Fix when sculpting/painting the position wouldn't update. - Fix inverted action for brushes while holding down shift or modifier on motioncontroller. - Cleanup FLandscapeToolInteractorPosition. - Change from 3353663: Use TStrokeClass::UseContinuousApply and TimeSinceLastInteractorMove to decide when to apply ToolStroke on tick. Change 3356180 on 2017/03/21 by Michael.Dupuis Added ShowFlag Foliage Occlusion Bounds Fixed non initialized variable Expose changing Min Occlusion Bounds instead of assuming 6 #rn none Change 3356347 on 2017/03/21 by Nick.Darnell UMG - Introducing a faster CreateWidget. When cooking, the widget compiler now generates a widget template/archetype that is stored in the same package as the generated blueprint class. During compiling we generate a nearly fully initialized widget tree including all sub userwidgets and their trees, hookup all member variables, initialize named slots, setup any animations...etc. This nearly fully constructed widget can be instanced using it as an archetype in the NewObject call, and does not have to use the correspondingly slow StaticDuplicateObject path. There are restrictions on this method, part of the compiling step for widgets now inspects if the instancing would be successful, or if there would be GLEO references after instancing because a user forgot to setup Instanced on a subobject property. Luckily that should be few and far between, all UVisuals (Widgets & Slots) are now DefaultToInstanced, which takes care of the overwhelming cases that demand the instanced flag. Especially given the bulk of cases using BindWidget in native code. UMG - Removing a lot of deprecated functions from 4.8 on UUserWidget. Change 3356357 on 2017/03/21 by Nick.Darnell Build - Fixing some IWYU issues on the incremental build. Change 3356461 on 2017/03/21 by Nick.Darnell Build - Fixing linux build errors. Change 3356468 on 2017/03/21 by Jamie.Dale STextPropertyEditableTextBox now handles empty texts correctly Change 3356916 on 2017/03/21 by Matt.Kuhlenschmidt Fixed a crash when a material render proxy on a preview node is deleted when it is in flight on the render thread #jira UE-40556 Change 3357033 on 2017/03/21 by Alexis.Matte Fix crash when importing file with import commandlet Make sure path are combine properly to avoid crash Add some missing pointer check Make sure the asset are save when there is no source control #jira UE-42334 Change 3357176 on 2017/03/21 by Alex.Delesky #jira UE-42445 - TMaps now support editing the values of structs that act as map keys. TMaps with struct keys will now show the types of their elements in the details panel as well, and structs will now also display numbers next to set elements. Change 3357197 on 2017/03/21 by Alex.Delesky #jira none - Fixing build issue for TMap key struct change. Change 3357205 on 2017/03/21 by Michael.Dupuis Forgot to reset min granularity to 6 from testing Change 3357340 on 2017/03/21 by Arciel.Rekman Mark FMallocAnsi (standard libc malloc) thread-safe on Linux. Change 3357413 on 2017/03/21 by matt.kuhlenschmidt Added '/Game/Effects/Fort_Effects/Materials/Smoke/M_Main_Smoke_Puff.M_Main_Smoke_Puff' to collection 'MattKTest' Upgraded collection 'MattKTest' (was version 1, now version 2) Change 3357505 on 2017/03/21 by Alexis.Matte Fix to avoid changing the CDO of FbxAssetImportData. The UI was saving the Config which was saving the CDO. But already serialized data will be reload badly if the CDO change since we serialize only the diff. #jira UE-42947 Change 3357825 on 2017/03/21 by Arciel.Rekman Clean up the large thread pool on exit. - Seems like the destruction was missed in the original CL 2785131 (12/1/15). - Fixes problems when threads were allocated in memory that is being cleaned up in another place on exit. Change 3358086 on 2017/03/22 by Yannick.Lange VR Editor: - Fix gizmo scaling down when dragging the world. - Fix gizmo scaling down when dragging rotation handle. Change 3358175 on 2017/03/22 by Andrew.Rodham Sequencer: Made ALevelSequenceActor::AdditionalEventReceivers advanced display Change 3358367 on 2017/03/22 by tim.gautier Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters Change 3358457 on 2017/03/22 by Yannick.Lange VR Editor: Deleting unused UI assets. Change 3358801 on 2017/03/22 by Matt.Kuhlenschmidt Guard against crash if the level editor is shut down when the object system has already been shut down #jira UE-35605 Change 3358897 on 2017/03/22 by matt.barnes Checking in WIP test content for UEQATC-1635 (UMG Navigation) Change 3358976 on 2017/03/22 by Alex.Delesky #jira none - Fixing an issue where ItemPropertyNode could potentially dereference a null property Change 3358987 on 2017/03/22 by Yannick.Lange VR Editor: Fix warning: Can't find file for asset '/Engine/VREditor/UI/VRButtonBackground' while loading ../../../Engine/Content/VREditor/Devices/Vive/VivePreControllerMaterial.uasset. Change 3359067 on 2017/03/22 by Yannick.Lange VR Editor: Fix Radial Menu remains on controller after exiting VR Preview #jira UE-42885 Change 3359179 on 2017/03/22 by Matt.Kuhlenschmidt Fixed "Multiple Values" in Body Setup when single bone has multiple bodies #jira UE-41546 Change 3359626 on 2017/03/22 by Arciel.Rekman Linux: pool OS allocations. - Add a TMemoryPool and TMemoryPoolArray classes that can be used with any type of OS allocator functions. - Add ability to bypass CachedOSPageAllocator for given sizes. Also, corrected the condition on AllocImpl to match one on FreeImpl. - Switch Linux to pool mmap()/munmap() by default (helps 32-bit Linux and also speeds up 64-bit one), except 64-bit servers. - Add a test to TestPAL to check performance and thread safety. - Misc. fixes. Change 3359989 on 2017/03/23 by Andrew.Rodham Sequencer: Binding overrides improvements - Added the ability to override spawnable bindings - Added the ability to override bindings in sub sequences - Deprecated "Get Sequence Bindings" node in favor of "Get Sequence Binding", which is more robust, and provides a better UI/UX for selecting single bindings #jira UE-42470 Change 3360369 on 2017/03/23 by Alexis.Matte Fix the staticmesh conversion from UE4 4.13 to earlier UE4 versions #jira UE-42731 Change 3360556 on 2017/03/23 by Andrew.Rodham Sequencer: Added drag/drop support for binding overrides - You can now drag and drop sequencer object binding nodes into blueprint graphs (to create 'Get Sequence Binding' nodes), and onto binding overrides specified on level sequence actors. Change 3360618 on 2017/03/23 by Arciel.Rekman Make Binned2 work on Mac. - Game/server will use Binned2 by default. Change 3360838 on 2017/03/23 by Nick.Darnell CommonUI - Making the SingleMaterialStyleMID property transient. It had been serialized mistakenly onto several widgets when it appears the intent is to dynamically allocate it upon demand. Change 3360841 on 2017/03/23 by Nick.Darnell UMG - Updating the editor to use DuplicateAndInitializeFromWidgetTree, so that Initialize is properly called when duplicating sub widget trees. Change 3362561 on 2017/03/24 by Matt.Kuhlenschmidt Fixed text outlines being cropped at large sizes #jira UE-42647 Change 3362565 on 2017/03/24 by Matt.Kuhlenschmidt Added automation test for font outlines Change 3362567 on 2017/03/24 by Matt.Kuhlenschmidt Resaved this file to fix 0 engine version warnings Change 3362582 on 2017/03/24 by Yannick.Lange VR Editor: - Fix log warnings when teleporting. - Fix undo/redo when using teleport scaling. - Improved teleport scaling and push/pull input. #jira UE-43214 Change 3362631 on 2017/03/24 by Jamie.Dale Split the monolithic culture concept in UE4 UE4 has historically only supported the concept of a single monolithic "culture" that applied to both text localization and internationalization, as well as all asset localization. Typically the "culture" was set to the "locale" of the OS, however that could be undesirable or incorrect on platforms (such as newer versions of Windows) that have a distinct concept of "language" (for localization) and "locale" (for internationalization). This change splits the concept of "culture" into "language" and "locale", and also adds the concept of "asset groups". The language is now used to work out which localization we should use, and the locale is used to control how numbers/dates/times/etc are formatted within our internationalization library. Asset groups expand on the language used by asset localization and allow you to create a group of asset classes that can be assigned a different culture than the main game language. A typical use-case of this would be creating an "audio" group that could, for example, be set to Japanese while the rest of the game runs in English. If your game doesn't care about the distinction between language and locale, and doesn't need to use asset groups, then you're able to continue to use "culture" as you always have. If, however, you do care about those things, then you'll likely want to avoid using the "culture" directly (as it's now a very aggressive setting that overrides all others), and instead favor using language/locale (games will typically treat these as the same) and asset groups as separate concepts (both in settings, and in your in-game UI). The language or locale for a game can be controlled by settings within the "Internationalization" section of your configs (this would typically be set in your GameUserSettings config, in the same way that "culture" works), eg) [Internationalization] language=fr locale=fr The asset groups for a game can be controlled by settings within the "Internationalization.AssetGroupClasses" and "Internationalization.AssetGroupCultures" sections of your configs (the asset group class definition would typically be set in your DefaultGame config, and the cultures the groups use would typically be set in your GameUserSettings config), eg) [Internationalization.AssetGroupClasses] +Audio=SoundWave +Audio=DialogueWave [Internationalization.AssetGroupCultures] +Audio=ja #jira UE-38418 #jira UE-43014 Change 3362798 on 2017/03/24 by Nick.Darnell UMG - Putting the finishing touches on the hardware cursor system. Can now load them from blueprints, and there are options for setting them up in the project settings. UMG - Deprecating the old properties for software widget cursors. They've been moved into a map that can handle any of the mouse cursors as the enum key, which was always the intent/desire but maps couldn't be used as UProperties then. Change 3362805 on 2017/03/24 by Jamie.Dale PR #3397: Allow empty source to override display string (Contributed by jorgenpt) Change 3363039 on 2017/03/24 by Jamie.Dale Use the pre-scaled font height where possible to avoid an extra multiply Change 3363188 on 2017/03/24 by Joe.Graf Added support for -iterate for content plugins that require path remapping during cook/packaging #CodeReview: matt.kuhlenschmidt #rb: matt.kuhlenschmidt Change 3363355 on 2017/03/24 by Nick.Darnell UMG - Removing the CookAdditionalFiles function in UserInterfaceSettings. Change 3363672 on 2017/03/24 by Matt.Kuhlenschmidt Material thumbnails now respect used particle system sprites flag and show a quad insead of a sphere by default. For this change I added the ability to have per asset type override for the default thumbnail shape and I added a way to reset thumbnails to default. All existinging particle system materials that have not had a custom thumbnail will have to be reloaded and resaved for this to work #jira UE-42410 Change 3363699 on 2017/03/24 by Mike.Fricker VR Editor: Improved extensibility (for mesh editor) - This was merged from CL 3352612 and re-opened for edit before commit - All mesh editor changes were stripped before merging Change 3363784 on 2017/03/24 by Matt.Barnes Adding content for tests following UEQATC-3548 Change 3363872 on 2017/03/24 by Arciel.Rekman Linux: require user to setup clang/clang++ for building hlslcc. - Earlier we tried to handle most common scenarios since libhlslcc needed to be built during the setup. Now that we supply a prebuilt version we don't need to be as user friendly, especially given that the attempts to second guess the compiler started to look complicated. Change 3364089 on 2017/03/24 by Matt.Kuhlenschmidt Fix CIS Change 3364381 on 2017/03/24 by JeanMichel.Dignard UV Packing optim - Use horizontal segments instead of checking texel by texel to fit source chart in layout. - Skip a couple of rasterize by flipping either the X texels or the Y texels when possible. - Keep the best chart raster so that we don't need to reraster when adding the chart to the layout. - Added a lightmap UV version in StaticMesh so that we don't invalidate the lighting cache. Only use the new lightmap UV generation when going through UStaticMesh::Build which invalidates the lighting. Change 3364587 on 2017/03/24 by Arciel.Rekman Fix ordered comparison warning from clang 4.0. Change 3364596 on 2017/03/24 by Arciel.Rekman Linux: fix editor being stuck (hack). - Rebuilt hlslcc in Debug. Change 3364863 on 2017/03/25 by Max.Chen Sequencer: Fixed crash when deactivating a section in sequencer #jira UE-39880 Change 3364864 on 2017/03/25 by Max.Chen Sequencer: Integrating fix from licensee to ensure FVirtualTrackArea::HitTestSection checks the row of the section Change 3364865 on 2017/03/25 by Max.Chen Cine Camera: Default post process depth of field method to CircleDOF and use that setting in UpdateCameraLens. #jira UE-40621 Change 3364866 on 2017/03/25 by Max.Chen GitHub #3183: Conversion to base class is inaccessible. Change 3364869 on 2017/03/25 by Max.Chen Sequencer: Changed the time snapping interval in the toolbar ui so that it no longer additionally updates the sequencer setting. The setting is only used to initialize the time snapping interval of the level sequence. Added translate keys with ctrl and left-right arrows. #jira UE-41009 #jira UE-41210 Change 3364870 on 2017/03/25 by Max.Chen Sequencer: Added translate keys with ctrl and left-right arrows. #jira UE-41210 Change 3364871 on 2017/03/25 by Max.Chen Sequencer: Add level sequence actor customization to open sequencer from the details panel. For matinee parity. #jira UE-41459 Change 3364879 on 2017/03/25 by Max.Chen Sequencer: Duplicate shot should put the duplicate on the next available row, keeping the start/end times the same. #jira UE-41289 Change 3364880 on 2017/03/25 by Max.Chen Sequencer: Opening the API for MovieSceneAudio-related classes along with some minor functionality additions: - Adding _API specifiers to MovieSceneAudioTrack, MovieSceneAudioSection, and FAudioTrackEditor so they can be subclassed in other modules. - Made GetSoundDuration function in MovieSceneAudioTrack.cpp a member function so it's functionaliy could be reused by subclasses. - Adding ability to specify delegates for OnQueueSubtitles, OnAudioFinished, and OnAudioPlaybackPercent in a MovieSceneAudioSection, and have them automatically assigned to any AudioComponents that are played by the MovieSceneAudioTemplate Change 3364884 on 2017/03/25 by Max.Chen Sequencer fbx import - Removed the PostRotation compensation as it was setuped for 3ds max. - On import, add a rotation to camera and light animation keys like we do on export. - Merge the component local transform with the ActorNode transform when exporting only one component that isn't the root component in fbx since we're not creating child nodes in that case. #jira UE-34692 Change 3364885 on 2017/03/25 by Max.Chen Sequence Recorder: Fix crash when clearing properties to record. #jira UE-41873 Change 3364886 on 2017/03/25 by Max.Chen Sequencer: Add error when attempting to add a circularly dependent level sequence #jira UE-22358 Change 3364890 on 2017/03/26 by Max.Chen Sequencer: Added ability to specify a 'notify' function to property instance bindings - When specified, the (parameterless) function will be called after a property is set Change 3364891 on 2017/03/26 by Max.Chen Sequencer: Various fixes to thumbnails - Fixed alpha blending being used when presenting the full screen quad for thumbnails Change 3364892 on 2017/03/26 by Max.Chen Sequencer: PreRoll and PostRoll is now exposed at the section level, for all sections - For the majority of sections this will be unimplemented, but it will allow for some tracks to set up their data ahead of time Change 3364896 on 2017/03/26 by Max.Chen Sequencer: Add segment flags to equality operator for movie scene evaluation segments - This prevents them from being accumulated into adjacent segments of the same index and forced time, but differing flags Change 3364897 on 2017/03/26 by Max.Chen Sequencer: Fixed "Evaluate in preroll" and "Evaluate in Postroll" options - Pre and postroll flags now come through on compiled segments, so the previous manual logic for sub sections is obsolete; we can just use the compiled segment data directly. Change 3364898 on 2017/03/26 by Max.Chen Sequencer: Moved track options to be accessible on all nodes, and operate on all selected tracks Change 3364902 on 2017/03/26 by Max.Chen Sequencer: Ensure evaluation flags are considered when compiling segments from external sequences - This ensures that preroll regions in sub sequences are correctly evaluated when their parent section has preroll - Changed high pass blending to always allow preroll Change 3364903 on 2017/03/26 by Max.Chen Engine: Moved proxy mesh transform update out of camera view computation code - GetCameraView can happen as part of end of frame updates, which will assert if any changes of transform happen during its processing Change 3364908 on 2017/03/26 by Max.Chen Sequencer: Added visualization of pre and postroll on sections Change 3364909 on 2017/03/26 by Max.Chen Sequencer: Prevent MovieSceneCompiler from removing preroll segments Change 3364910 on 2017/03/26 by Max.Chen Sequencer: MediaPlayer PreRoll/PostRoll fix - Handle PreRoll/PostRoll on sub scenes that have a start offset Change 3364922 on 2017/03/26 by Max.Chen Sequencer: Add check for valid property before dereferencing. #jira UE-40951 Change 3364923 on 2017/03/26 by Max.Chen Sequencer: Fix MovieScene preroll so that it seeks to the start correct frame before the preroll. Change 3364924 on 2017/03/26 by Max.Chen Sequencer - change default behavior for pre/post roll evaluation - MovieSceneTracks are NOT evaluated by default Change 3364925 on 2017/03/26 by Max.Chen Sequencer: Shot track rows now consider pre and post roll when being compiled Change 3364926 on 2017/03/26 by Max.Chen Sequencer: Added the ability to define shared execution tokens, identifyable with a unique identifier, and sortable based on a sort order (<=0: before standard tokens, >0: after other tokens) Change 3364927 on 2017/03/26 by Max.Chen Sequencer: Added the ability to selectively restore state for specific anim type IDs for a given object - This allows us to specifically restore one particular type of animation for a given object (ie, transform, skeletal animation control, or motion blur) Change 3364928 on 2017/03/26 by Max.Chen Sequencer: Fixed sub-sub tracks not being present in master sequences - In order to correctly handle preroll in inner-inner sequences, we need to have access to those tracks when compiling intermediate sub sections. By caching off all the inner templates, we can have access to these tracks to check whether they want to be evaluated in pre/post roll in the master sequence Change 3364937 on 2017/03/26 by Max.Chen Sequencer: Update cine camera component debug focus plane on tick, rather than in GetCameraView #jira UE-41332 Change 3364938 on 2017/03/26 by Max.Chen Sequencer: Fix crash inserting a level sequence with an invalid shot. #jira UE-41481 Change 3364940 on 2017/03/26 by Max.Chen Sequencer: Made handling of pre and post roll more consistent between explicit section pre/post roll and pre/post roll inherited from an outer sub section Change 3364942 on 2017/03/26 by Max.Chen Movie Scene Capture: Move EDL generation to setup instead of close to ensure it gets written out when capturing as a separate process. #jira UE-41703 Change 3364943 on 2017/03/26 by Max.Chen Sequencer: Prevent capturing movies in editor while a PIE session is running #jira UE-41399 Change 3364944 on 2017/03/26 by Max.Chen CIS fixes Change 3364951 on 2017/03/26 by Max.Chen Sequencer: Fix autokey not setting a keyframe for slate color with specified color. #jira UE-41645 Change 3364952 on 2017/03/26 by Max.Chen Sequencer: Level sequence frame snapshots now take account of fixed-frame interval offsets, and overlapping shot sections on the same row #jira UE-41684 Change 3364953 on 2017/03/26 by Max.Chen Sequencer: Fix edl so that it doesn't write out when a shot is out of range. Also fixed not writing the EDL with the correct frame rate when exporting from the track. Reworked the cmx EDL so that its encoded in the same edit time space, including a blank slug at the beginning of the edit. #jira UE-41925 Change 3364954 on 2017/03/26 by Max.Chen Sequencer - Allow animating parameters on cascade effect components which aren't owned by an AEmitter. Change 3364955 on 2017/03/26 by Max.Chen Sequencer: Fixed sequencer anim instance not being used in the case where one was requested, but a different anim instance was already set This fixes an issue when rendering in seaprate process, animations that were set up to use the sequencer instance would be controlled using montage animation instead. Change 3364963 on 2017/03/26 by Max.Chen Sequencer: Fix filtering to include child nodes. #jira UE-42068 Change 3364964 on 2017/03/26 by Max.Chen Sequencer: Enable UseCustomStartFrame and UseCustomEndFrame when rendering a single shot from the menu. #jira UE-42021 Change 3364965 on 2017/03/26 by Max.Chen Sequencer: Set the fade color in the track display Change 3364966 on 2017/03/26 by Max.Chen Sequencer: Show actor attached to label in attach section. Change 3364967 on 2017/03/26 by Max.Chen Sequencer: Fix static analysis warnings Change 3364968 on 2017/03/26 by Max.Chen Sequencer: Fix crash on converting to spawnable. The previous implementation purported to allow null objects to set up spawnable defaults but it actually needed to compare the spawned object to the supported type. This new mechanism now allows the spawner to indicate that it accepts null objects and doesn't crash. #jira UE-42069 Change 3364969 on 2017/03/26 by Max.Chen Sequencer: Fixed crash caused by holding onto stale properties through a raw ptr #jira UE-42072 Change 3364977 on 2017/03/26 by Max.Chen Sequencer: Convert FLinearColor to FColor for fade. #jira UE-41990 Change 3364978 on 2017/03/26 by Max.Chen Sequencer: Limit GetAllSections to the sections that actually correspond to the track #jira UE-42167 Change 3364979 on 2017/03/26 by Max.Chen Sequencer: Filter root nodes too #jira UE-42068 Change 3364980 on 2017/03/26 by Max.Chen Sequencer: Filter relevant material parameters #jira UE-40712 Change 3364982 on 2017/03/26 by Max.Chen Sequencer: Remove audio range bounds which clamps to the section bounds (needed for evaluating in pre and post roll) Change 3364983 on 2017/03/26 by Max.Chen Sequencer: Add socket name to attach track section. Change 3364984 on 2017/03/26 by Max.Chen Sequencer: Fix sub track node deletion so that all the sub tracks aren't deleted, only the row being requested. #jira UE-40955 Change 3364988 on 2017/03/26 by Max.Chen Sequencer: Invalidate expired objects when blueprints are compiled. Fix actor references now handles sections that need to have their guids updated (ie. attach tracks). Change 3364994 on 2017/03/26 by Max.Chen Sequencer: Audio waveforms now show peak samples with smoothed RMS in the center - Audio row heights are now also resizable by dragging on the bottom end of the track lane in the track area view Change 3364995 on 2017/03/26 by Max.Chen UMG: Fix crash on undo #jira UE-42210 Change 3365000 on 2017/03/26 by Max.Chen Sequencer: Fix crash from GetCurrentValue. Change 3365001 on 2017/03/26 by Max.Chen Sequencer: Split "Snap to the Dragged Key" option into two options, pressed key and dragged key. #jira UE-42382 Change 3365002 on 2017/03/26 by Max.Chen Sequencer: Downgraded check to ensure for FMovieSceneEvalTemplateBase::GetScriptStructImpl() Change 3365003 on 2017/03/26 by Max.Chen Sequencer: Fixed section template script struct - Because the cpp is not parsed by UHT, the empty template had its parent struct, rather than its own - We now just return null, and handle empty segments correctly in the segment remapper as part of the track compilation Change 3365013 on 2017/03/26 by Max.Chen Sequencer: Added data validation on compiled template loads, and extra guards against misuse of movie scene types Change 3365014 on 2017/03/26 by Max.Chen Sequencer: Sequencer now re-evaluates when starting PIE or Simulate - This can be disabled by disabling "Bind Sequencer to PIE" and "Bind Sequencer to Simulate" in PIE advanced settings Change 3365015 on 2017/03/26 by Max.Chen Sequencer: Fix edl files so that they don't write out empty range shots Change 3365017 on 2017/03/26 by Max.Chen Sequencer: Set max tick rate when in game. #jira UE-41078 Change 3365018 on 2017/03/26 by Max.Chen Sequencer: When finishing a scrub, playback status is now correctly set to stopped rather than stepping - This fixes a hack that was previously in place from the old PostTickRenderFixup that caused it to run that step after scrubbing bad finished. This is no longer necessary, and actually breaks clicking to set the scrub position, as it now means that we step across the entire range between the previous and current time. Change 3365022 on 2017/03/26 by Max.Chen Sequencer: Insert shot now creates a shot at the current time and puts it on the next available row. #jira UE-41480, UE-27699 Change 3365023 on 2017/03/26 by Max.Chen Sequencer: Add loop selection range. If there is no selection range, loop mode is restricted to loop or no loop. #jira UE-42285 Change 3365029 on 2017/03/26 by Max.Chen Sequencer: Add hotkeys to set the selection range to the next and previous shot (page up, page down). Also, added hotkey to set the playback range to all the shots (end) Change 3365030 on 2017/03/26 by Max.Chen Sequencer: Fix particle system restore state so that it gets the proper initial active state of the particle system. #jira UE-42861, UE-42859 Change 3365031 on 2017/03/26 by Max.Chen Sequencer: Snap time when changing time snapping intervals. #jira UE-42590 Change 3365032 on 2017/03/26 by Max.Chen Sequencer: Add When Finished state to sections. By default, sections now restore state. #jira UE-41991, UE-31569 Change 3365033 on 2017/03/26 by Max.Chen #jira UE-42028 "DialogueWave playback calls OnQueueSubtitles multiple times" Only queue subtitles once per wave instance playback Change 3365041 on 2017/03/26 by Max.Chen Sequencer: Subscene hierarchical bias Tracks can now be prioritized based on their subscene hierarhical bias value. Higher bias values take precedence. #jira UE-42078 Change 3365042 on 2017/03/26 by Max.Chen Sequencer: Generic paste menu for master (root) tracks. Change 3365043 on 2017/03/26 by Max.Chen Sequencer: Hierarchical bias for level visibility track #jira UE-43024 Change 3365044 on 2017/03/26 by Max.Chen Sequencer: Prevent throttling on editing keys/sections. Change 3365045 on 2017/03/26 by Max.Chen Sequencer: Set sequencer audio components bIsUISound to false so that they don't continue playing when the game is paused. #jira UE-39391 Change 3365046 on 2017/03/26 by Max.Chen Sequencer: Add missing BindLevelEditorCommands() Change 3365049 on 2017/03/26 by Max.Chen Sequencer: Set tick prerequites for spawnables when they are spawned. #jira UE-43009 Change 3365050 on 2017/03/26 by Max.Chen Sequencer: Jump to Start and End of playback shortcuts. Rewind renamed to Jump to Start. Shortcut - up arrow. Jump to End Shortcut - ctrl up arrow. #jira UE-43224 Change 3365051 on 2017/03/26 by Max.Chen Sequencer: Add last range to playback Change 3365057 on 2017/03/26 by Max.Chen Sequencer: Fix master sequence subscene generation times. Change 3365058 on 2017/03/26 by Max.Chen Sequencer: Fix paste so that it doesn't paste both onto object nodes and master tracks. Change 3365059 on 2017/03/26 by Max.Chen Sequencer: Fix crash pasting audio track. Change 3365060 on 2017/03/26 by Max.Chen Sequencer: Cache player fade state so that restore state will return the values to the pre animated state. #jira UE-43313 Change 3365061 on 2017/03/26 by Max.Chen Sequencer: Filter hidden functions. This fixes a bug where the field of view property for a cinematic camera appears to be animatable. It should be hidden just like it is in the property editor. #jira UE-41461 Change 3365065 on 2017/03/26 by Max.Chen Sequencer: Support component hierarchies when drawing animation paths #jira UE-39500 Change 3365066 on 2017/03/26 by Max.Chen Sequencer: Refine pause behaviour in sequencer to always evaluate the next frame - This ensures that we get a full frame's worth of evaluation so that the paused frame is of a good quality (and avoids us evaluating a tiny range) Change 3365075 on 2017/03/26 by Max.Chen Sequencer: Fix add shot not setting next row. Change 3365076 on 2017/03/26 by Max.Chen Sequencer: Export MovieSceneTrackEditor #jira UE-41641 Change 3365472 on 2017/03/27 by Yannick.Lange VR Editor landscape. Back out changelist 3356071 with new proper fixes. CL 3356071 introduced another bug and it wasn't correct because of removing FLandscapeToolInteractorPosition. This changelist fixes the same and additional bugs for VREditor Landscape mode. - Fix when sculpting/painting the position wouldn't update. - Fix inverted action for brushes while holding down shift or modifier on motioncontroller. - Fix VREditor Landscape Texture Painting does not paint continuously - Fix having to press once on the landscape to see the visuals for landscape editing. - Removed Interactor parameter from BeginTool. #jira UE-42780, UE-42779 Change 3365497 on 2017/03/27 by Matt.Kuhlenschmidt Fix texture importing when an FBX file incorrectly reports absolute path as relative. First we try absolute, then we try fbx reported relative, then we try relative to parent FBX file. Change 3365498 on 2017/03/27 by Matt.Kuhlenschmidt Fix attempting to load a package in FBX scene import when the import path is empty. This greatly reduces FBX scene import time Change 3365504 on 2017/03/27 by Yannick.Lange VR Editor landscape fix ensure in when starting to paint/sculpt. Mousemove on tool should only be called when the tool is actually active, not when hovering. Change 3365551 on 2017/03/27 by Matt.Kuhlenschmidt PR #3425: Added Scrollbar customization to SComboBox (Contributed by Altrue) #jira UE-43338 Change 3365580 on 2017/03/27 by Matt.Kuhlenschmidt PR #3409: Add support for per-Category filtering in Output Log (Contributed by thagberg) Change 3365672 on 2017/03/27 by Andrew.Rodham Sequencer: Preanimated state producers can now produce null tokens - Doing so implies no preanimated state should be saved Change 3365791 on 2017/03/27 by Andrew.Rodham Sequencer: Added Material Parameter Collection track Change 3365806 on 2017/03/27 by Max.Chen Sequencer: Add option to instance sub sequences. #jira UE-43307 Change 3365822 on 2017/03/27 by Matt.Kuhlenschmidt Subdue the output log font color a bit Change 3365846 on 2017/03/27 by Jamie.Dale Added package redirection on load/find Change 3365852 on 2017/03/27 by Jamie.Dale Adding a way to mark a package as no longer missing Change 3365896 on 2017/03/27 by Jamie.Dale Adding GlobalNotification to Slate This is the guts of the GlobalEditorNotification, so it can be used by code that doesn't link to UnrealEd. Change 3365900 on 2017/03/27 by Jamie.Dale Prevent the default cooked sandbox from trying to read non-cooked assets Change 3366550 on 2017/03/27 by Max.Chen Sequencer: Fix case Change 3367301 on 2017/03/28 by Andrew.Rodham Tests: Added test actor with a variety of properties for testing purposes Change 3367303 on 2017/03/28 by Andrew.Rodham Tests: Enabled ActorSequenceEditor plugin in EngineTest project Change 3367304 on 2017/03/28 by Andrew.Rodham Tests: Added several functional testing maps for sequencer - SequencerTest_Properties - tests animating various property types - SequencerTest_Events - tests basic event triggering functionality (including additional event receivers and event ordering) - SequencerTest_BindingOverrides - tests overriding possessable and spawnable bindings, along with bindings in sub sequences - SequencerTest_ActorSequence - tests basic actor sequence functionality Change 3367465 on 2017/03/28 by Max.Chen Sequencer: Set Bind Sequencer to PIE off by default, Bind Sequencer to Simulate remains on by default. Change 3367515 on 2017/03/28 by Matt.Kuhlenschmidt Guard against visual studio accessor crash #jira UE-43368 Change 3368118 on 2017/03/28 by Alexis.Matte Fix the staticmesh conversion from 4.13. There was a error in the LOD loop we where not remapping the LOD 0. #jira UE-42731 Change 3368485 on 2017/03/28 by Alex.Delesky #jira UE-42207 - Updated SVN Binaries for MacOSX 64-bit: - Subversion 1.9.4 -> 1.9.5 - OpenSSL 1.0.2h -> 1.0.2k - BerkeleyDB 5.3.15 -> 6.2.23 - Java 8u101 -> 8u121 - Sqlite 3.13.0 -> 3.17.0 - Serf 1.3.8 -> 1.3.9 - Swig 3.0.10 -> 3.0.12 - ZLib 1.2.9 -> 1.2.11 Change 3368495 on 2017/03/28 by Alex.Delesky #jira UE-42207 - Updated SVN Binaries for Windows 64-bit: - Subversion 1.9.4 -> 1.9.5 - OpenSSL 1.0.2h -> 1.0.2k - BerkeleyDB 5.3.15 -> 6.2.23 - Java 8u101 -> 8u121 - Sqlite 3.13.0 -> 3.17.0 - Serf 1.3.8 -> 1.3.9 - Swig 3.0.10 -> 3.0.12 - ZLib 1.2.9 -> 1.2.11 Change 3368501 on 2017/03/28 by Alex.Delesky #jira UE-42207 - SVN Build instructions for Windows and Mac 64-bit libraries, and license files for Mac libraries Change 3368782 on 2017/03/28 by Nick.Darnell UMG - Improving some logging for fast widget creation. Change 3368826 on 2017/03/28 by Nick.Darnell Slate - Slate Application now maintains seperate tracking for each pointer being utilized for drag drop, so now multiple fingers on multiple widgets can now simultaneously be attempting a drag, however once one of them becomes successful, we clear all state of all other tracking since only one Drag Drop operation is possible at a time. Slate - bFoldTick is now removed from the codebase, we haven't supported the other (non-folded) code path for awhile, so there was no point in maintaining the switch. Slate - Users have noticed issues where the cursor does not appear when changing visibility (through toggling the way the cursor appears). This was rooted in how the OS requested cursor changes, WM_SETCURSOR on Windows only asks for new cursors when the mouse moves, but often cursors change just because mouse capture changes. So now the path has been centralized in Slate Tick to only handle the cursor changes in one place, and several places that need to refresh the cursor state, now set a flag to handle it on next tick. #jira UE-40486 Change 3368917 on 2017/03/28 by Arciel.Rekman Linux: allow building with clang 4.0. Change 3369074 on 2017/03/28 by Nick.Darnell UMG - Fixing some spelling on the hardware cursor tip. UMG - Changed some checks to ensure now that users can input the wrong data from the editor. Adding some clamping to the editor interface so that users are not tempted to enter incorrect hotspot ranges for their cursors. #jira UE-43419 #jira UE-43425 Change 3369137 on 2017/03/28 by Max.Chen Sequencer: Add given master track sets the outer to the movie scene. Change 3369360 on 2017/03/29 by Andrew.Rodham Sequencer: Reconciled 3349194 and 3365041 with animphys merge Change 3369410 on 2017/03/29 by Alexis.Matte Fix the select filename in the FileDialog "Desktop window platform" #jira UE-43319 Change 3369475 on 2017/03/29 by Nick.Darnell PR #3413: UE-37710: Proper scaling of WebBrowserViewport (Contributed by projectgheist) Modified - you can't use the clip rect to decide on how large you should be. #jira UE-37710 Change 3369775 on 2017/03/29 by Max.Chen ControlRig: Fix crash on exit. #jira UE-43411 Change 3370466 on 2017/03/29 by Nick.Darnell AsyncLoading - Adding USoundBase to the set of CDOs that have a particular fixed boot order. StreamableManager - Only showing the duplicate load error in debug builds, it's not a real error. #jira UE-43409 Change 3370570 on 2017/03/29 by Nick.Darnell Slate - Fixing a bug with ZOrder being discarded on the SOverlay Slot. #jira UE-43431 Change 3370644 on 2017/03/29 by Andrew.Rodham Temporarily disabling sequencer functional test "Event Position" Change 3370713 on 2017/03/29 by Nick.Darnell PR #3399: UE-42831: Anchor text ignores scale (Contributed by projectgheist) #jira UE-43156 #jira UE-42831 Change 3371243 on 2017/03/30 by Arciel.Rekman Linux: scale OS allocation pool to match memory size. - Number of distinct VMAs (contiguous virtual memory areas, i.e. mappings done via mmap()) is rather low (~64k) and we can run out of VMAs earlier than we will run into available memory. Larger pool makes this less likely. Change 3371262 on 2017/03/30 by Arciel.Rekman Linux: fix custom present. - PR #3383 contributed by yaakuro. Change 3371301 on 2017/03/30 by Arciel.Rekman Linux: fix copying to a non-existent directory during Setup. Change 3371307 on 2017/03/30 by Andrew.Rodham Editor: Added "Resave All" functionality to content browser folders Change 3371364 on 2017/03/30 by Andrew.Rodham Sequencer: Level streaming improvements - Tick prerequisites are now set up when any object binding is resolved, not at the start of the sequence. This unifies code between spawnables and possessables, and allows tick prerequisites to still be set up when levels are streamed in - Actor references are no longer resolved when a PIEInstance is specified on the package, and it cannot be fixed up to a different ptr than the original. This stops us resolving actors from one world into another. - Fixed level visibility request getting cleared when the cumulative total was 0 (it should only do this if there are no requests left) #jira UE-43225 Change 3371365 on 2017/03/30 by Andrew.Rodham Tests: Sequencer level streaming tests Change 3371493 on 2017/03/30 by Nick.Darnell PR #3408: UE-19980: Added FCanExecuteAction to prevent keyboard shortcut. (Contributed by projectgheist) Change 3371524 on 2017/03/30 by Nick.Darnell PR #2938: Minor UMG code fixups (Contributed by projectgheist), accepted most of the changes. Change 3371545 on 2017/03/30 by Nick.Darnell UMG - Fixing some minor issues with WidgetComponents not properly limiting input depending on what is supported with reguard to hardware input. Change 3371576 on 2017/03/30 by Matt.Kuhlenschmidt PR #3433: Fix for the Standalone D3D Slate Shader using the wrong value for the. (Contributed by megasjay) Change 3371590 on 2017/03/30 by Nick.Darnell UMG - Fixing widget alignment in the viewport when using the widget component with screen space, with an aspect ratio lock on the player's camera. The widgets should now show up in the right locations. Change 3371625 on 2017/03/30 by Alexis.Matte Fix the merge tool material id assignment #jira UE-43246 Change 3371666 on 2017/03/30 by Nick.Darnell UMG - Reducing logging, don't need to tell everyone all the time we're using the fast widget path. Change 3371687 on 2017/03/30 by Arciel.Rekman Linux: switch to new managed filehandles. Change 3371778 on 2017/03/30 by Matt.Kuhlenschmidt Fixed the animation to play property on skeletal meshes being too small to read anything #jira UE-43327 Change 3372709 on 2017/03/30 by Matt.Kuhlenschmidt Made slate loading widget / movie play back more thread safe by eliminating Slate applicaiton or the main window from being ticked directly on another thread. We now have a separate virtual window for ticking and painting the loading screen widgets in isolation Change 3372757 on 2017/03/30 by Nick.Darnell Paragon - Fixing cases where people were using PostLoad() where really it should have done when the widget was constructed or created. This is a side effect of the FastWidget creation path 'PostLoad()' is not called on newly constructed widgets, though it did before because part of duplicating the WidgetTree, required serialization, which would have called it. Change 3372777 on 2017/03/30 by Nick.Darnell Fixing fast widget template cooking so that it does the same logic as Initialize did, centralizing the code to find the first widgetblueprintclass. Change 3372949 on 2017/03/30 by Nick.Darnell UMG - Fixing some cooking crashes for the super class. Change 3373139 on 2017/03/30 by Jeff.Farris Added TimingPolicy option to WidgetComponent, so widgets can optionally tick in game time rather than real time. (Copy of CL 3279699 from Robo Recall to Dev-Editor) Change 3373235 on 2017/03/30 by Nick.Darnell Fixing a cooking issue, accidentally removed code that was properly loading some needed assets. Change 3373266 on 2017/03/30 by Matt.Kuhlenschmidt Made GetMoviePlayer thread safe. Simply accessing GetMoviePlayer is safe now as is checking IsLoadingFinished. However, most of the functions on movie player are only safe from the game thread! Change 3374026 on 2017/03/31 by Andrew.Rodham Sequencer: Moved evaluation group registration to IMovieSceneModule #jira UE-43420 Change 3374060 on 2017/03/31 by Yannick.Lange VR Editor: Collision on motion controllers in simulate. Change 3374185 on 2017/03/31 by Nick.Darnell Attempting to fix the build. Change 3374232 on 2017/03/31 by Max.Chen Sequencer: Fix audio not playing in editor #jira UE-43514 Change 3374322 on 2017/03/31 by Nick.Darnell UMG - SafeZone widget now has comments, and useful tips. Using the debugging console commands now trigger the broadcast that will cause controls like the SSafeZone widget to resample the display metrics to learn the new safezone ratio. Change 3374424 on 2017/03/31 by Max.Chen Updated test content so that the door animation is now set to "Keep State" for the When Finished property. #jira UE-43519 Change 3374447 on 2017/03/31 by Max.Chen Sequencer: Notify streaming system prior to camera cuts By default, this does nothing. Users will need to enable the preroll section of camera cuts for the streaming system to activate prior to cutting to cameras. #jira UE-42406 Change 3374571 on 2017/03/31 by Andrew.Rodham Sequencer: Unified global and object-bound pre animated state, added InitializeObjectForAnimation method to state producers Change 3374578 on 2017/03/31 by Andrew.Rodham Sequencer: Added unit tests for pre-animated state Change 3374592 on 2017/03/31 by Max.Chen Color Customization: Set curve color names. #jira UE-43405 Change 3374596 on 2017/03/31 by Andrew.Rodham Corrected documentation comment Change 3374671 on 2017/03/31 by Matt.Kuhlenschmidt Fix movie scene audio track not compiling outside of editor Change 3374689 on 2017/03/31 by Matt.Kuhlenschmidt Remove the slate thread masquerading as the game thread in IsInGameThread Change 3374730 on 2017/03/31 by Max.Chen Sequencer: Add check for null loaded level. Change 3374732 on 2017/03/31 by Max.Chen Sequencer: Remove null tracks on postload. Change 3374737 on 2017/03/31 by tim.gautier - Updated UMG_Optimization: Adjusted Variable names to resolve compile errors due to Widget Components and Variables sharing names (cannot be done with new compile improvements) - Set Level Blueprint for TM-UMG back to AllPalettes Change 3374987 on 2017/03/31 by Nick.Darnell UMG - Introducing a way to inform the widgets more information about the designer. There's now a DesignerChanged event sent to all design time widgets letting them know things like the current screen size and DPI scale. UMG - The SafeZone widget will now show the correct safe zone amount if you use the safezone command line options, which are now documented in the comment for the USafeZone class. Change 3375599 on 2017/03/31 by Max.Chen Cine Camera: Update camera debug plane when property changes, rather rely soley on tick. This fixes a bug where sliding the value on the details panel doesn't update the debug plane in the viewport simultaneously. #jira UE-43543 Change 3375601 on 2017/03/31 by Arciel.Rekman Linux: switch to v9 cross-toolchain. Change 3375856 on 2017/04/01 by Andrew.Rodham Sequencer: Fixed 'formal parameter with requested alignment of 16 won't be aligned' Change 3375870 on 2017/04/01 by Andrew.Rodham Sequencer: Fixed explicit template instantiation ocurring before the complete definition of type's members - This resulted such members not being instantiated (and hence exported) when compiled with clang Change 3376114 on 2017/04/02 by Arciel.Rekman Linux: make source code accessor aware of clang 3.9 and 4.0. Change 3376138 on 2017/04/02 by Arciel.Rekman Linux: add clang to fedora deps (UE-42123). - PR #3273 submitted by cpyarger. Change 3376159 on 2017/04/02 by Arciel.Rekman Linux: some support for building on Debian Sid or Stretch (UE-35841). - Basd on PR #2790 by haimat. Change 3376163 on 2017/04/02 by Arciel.Rekman Linux: install latest clang on Arch (UE-42341). - This undoes PR #1905. - PR #2897 by SiebenCorgie. - PR #3302 by awesomeness872. - PR #3341 by patrickelectric. Change 3376167 on 2017/04/02 by Arciel.Rekman Add FreeBSD mem info (courtesy support for the out of tree build) (UE-42994). - PR #3378 by mdcasey. Change 3376168 on 2017/04/02 by Arciel.Rekman Linux: fixed VHACD Makefile on a case sensitive fs (UE-42905). - PR #3381 by slonopotamus. Change 3376177 on 2017/04/02 by Arciel.Rekman SlateDlg: case-insensitive comparison of filter extensions (UE-39477). - PR #3019 by aknarts. Change 3376178 on 2017/04/02 by Arciel.Rekman WebRTC: only x86_64 version exists for Linux. Change 3376245 on 2017/04/03 by Andrew.Rodham Sequencer: Re-enabled event order test Change 3376339 on 2017/04/03 by Matt.Kuhlenschmidt Fix crash during loading movie playback on DX12 due to not ever cleaning up old resources #jira UE-27026 Change 3376481 on 2017/04/03 by Alex.Delesky #jira UE-43495 - TMaps will now support customized key properties correctly. Change 3376741 on 2017/04/03 by Matt.Kuhlenschmidt Fix crash flushing font cache when loading a movie. This is no longer save on the slate movie thread #jira UE-43567 Change 3376763 on 2017/04/03 by Shaun.Kime Material Reroute nodes do not work for Texture Object Parameters as they return a base output type. Modified logic to now support this node type. #jira UE-43521 Change 3376836 on 2017/04/03 by Jamie.Dale Fixed text format history being clobbered by reference collection #jira UE-37513 Change 3376852 on 2017/04/03 by Nick.Darnell Paragon - Found a case where a user had marked a BindWidget property as Transient which prevents serializing the property binding now for widget fast mode. #jira UE-43564 Change 3377207 on 2017/04/03 by Jamie.Dale Desktop platform directory pickers are expected to return absolute paths File pickers return relative paths though, and we should make this consistent at some point. #jira UE-43588 Change 3377214 on 2017/04/03 by Matt.Kuhlenschmidt Fix movie player shutdown crash in non-editor builds #jira UE-43577 Change 3377299 on 2017/04/03 by Michael.Dupuis #jira UE-43586 : properties should be non transactional #jira UE-43559 Change 3378333 on 2017/04/04 by Michael.Dupuis #jira UE-43585 #jira UE-43586 Revert back to purple color Change 3378633 on 2017/04/04 by Matt.Kuhlenschmidt Resaved this asset to avoid zero engine version warnings Change 3378958 on 2017/04/04 by Nick.Darnell Automation - Fixing the race condition to finish compiling shaders on screenshots for UI. [CL 3379345 by Matt Kuhlenschmidt in Main branch]
2017-04-04 15:35:21 -04:00
#include "SequencerCommonHelpers.h"
#include "VirtualTrackArea.h"
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
#include "SequencerTrackNode.h"
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
#include "Algo/AllOf.h"
#include "MovieSceneTimeHelpers.h"
#include "Modules/ModuleManager.h"
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #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]
2018-05-09 10:24:50 -04:00
#include "Channels/MovieSceneChannel.h"
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
#include "Channels/MovieSceneChannelProxy.h"
#include "ISequencerModule.h"
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
struct FInvalidKeyAndSectionSnappingCandidates : ISequencerSnapCandidate
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
/**
* Keys and Sections added to this ISequencerSnapCandidate will be ignored as potential candidates for snapping.
*/
FInvalidKeyAndSectionSnappingCandidates(const TSet<FSequencerSelectedKey>& InKeysToIgnore, const TArray<TWeakObjectPtr<UMovieSceneSection>>& InSectionsToIgnore)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
KeysToExclude = InKeysToIgnore;
for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : InSectionsToIgnore)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
SectionsToExclude.Add(WeakSection.Get());
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
}
virtual bool IsKeyApplicable(FKeyHandle KeyHandle, const TSharedPtr<IKeyArea>& KeyArea, UMovieSceneSection* Section) override
{
return !KeysToExclude.Contains(FSequencerSelectedKey(*Section, KeyArea, KeyHandle));
}
virtual bool AreSectionBoundsApplicable(UMovieSceneSection* Section) override
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
return !SectionsToExclude.Contains(Section);
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
protected:
TSet<FSequencerSelectedKey> KeysToExclude;
TSet<UMovieSceneSection*> SectionsToExclude;
};
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
TOptional<FSequencerSnapField::FSnapResult> SnapToInterval(const TArray<FFrameNumber>& InTimes, int32 FrameThreshold, FFrameRate Resolution, FFrameRate DisplayRate, ESequencerScrubberStyle ScrubStyle)
{
TOptional<FSequencerSnapField::FSnapResult> Result;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameNumber SnapAmount(0);
for (FFrameNumber Time : InTimes)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Convert from resolution to DisplayRate, round to frame, then back again. We floor to frames when using the frame block scrubber, and round using the vanilla scrubber
FFrameTime DisplayTime = FFrameRate::TransformTime(Time, Resolution, DisplayRate);
FFrameNumber PlayIntervalTime = ScrubStyle == ESequencerScrubberStyle::FrameBlock ? DisplayTime.FloorToFrame() : DisplayTime.RoundToFrame();
FFrameNumber IntervalSnap = FFrameRate::TransformTime(PlayIntervalTime, DisplayRate, Resolution ).FloorToFrame();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameNumber ThisSnapAmount = IntervalSnap - Time;
if (FMath::Abs(ThisSnapAmount) <= FrameThreshold)
{
if (!Result.IsSet() || FMath::Abs(ThisSnapAmount) < SnapAmount)
{
Result = FSequencerSnapField::FSnapResult{Time, IntervalSnap};
SnapAmount = ThisSnapAmount;
}
}
}
return Result;
}
/** How many pixels near the mouse has to be before snapping occurs */
const float PixelSnapWidth = 10.f;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3178529) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3149443 on 2016/10/03 by Max.Preussner MediaAssets: Better parameter names for MediaPlayer BP functions Change 3149756 on 2016/10/03 by Max.Chen Sequence Recorder: Set some settings to be clamped at 0 (sequence length, recording delay, audio gain, audio input buffer size, nearby actor recording proximity) #jira UE-35233 Change 3149795 on 2016/10/03 by Max.Chen Curve Editor: Set tangent to user when flattening or straightening tangents only when the tangent mode is auto and the interp mode is cubic. #jira UE-36734 Change 3150378 on 2016/10/04 by Max.Preussner PS4Media: Made video buffer sizes for file and HLS sources configurable (UE-36807) #jira UE-36807 Change 3151414 on 2016/10/05 by Max.Chen Sequencer: Fix case where restoring the last view target was getting skipped. It should always restore if the camera object and the unlock if camera actor object is null. #jira UE-35285 Change 3152038 on 2016/10/05 by Max.Preussner UdpMessaging: Code & documentation modernization pass Change 3152471 on 2016/10/05 by Max.Chen Cine Camera: Don't enable/disable actor ticking based soley on actor tracking since actor ticking is needed for other purposes. Instead, always enable actor ticking and only update actor tracking on tick if necessary. This fixes a bug where the cine camera actor won't tick if you hook in event tick. #jira UE-36625 Change 3152692 on 2016/10/05 by Max.Preussner Messaging: API code & documentation modernization pass Mostly removed shared pointer/ref typedefs as they prevent forward declarations and increase include complexity. Change 3153824 on 2016/10/06 by Max.Preussner Messaging: Renamed IConnectionBasedMessagingModule to ITcpMessagingModule and moved it into TcpMessaging I recommend that we refactor this API. The dependency should be reversed, i.e. instead of AndroidDeviceDiscovery depending on the TcpMessaging plug-in module, the Engine should provide a central registry that device discovery modules can notify, and that message transport plug-ins can register with and listen to OnConnectionAdded/Removed events etc. That way it supports an arbitrary number of transport plug-ins, and the Engine is not coupled to any of them. This functionality is not necessarily related to messaging, and the Messaging API is transport agnostic anyway. I'll think about this some more. Change 3153826 on 2016/10/06 by Max.Preussner Messaging: Removed remaining typedefs in IMessageTracer to enable forward declaration and reduce include dependencies Change 3153857 on 2016/10/06 by Max.Chen Sequencer: Set snap time to dragged key on by default. Change 3153980 on 2016/10/06 by Max.Preussner SessionServices: Removed typedefs; code and documentation modernization pass Change 3154313 on 2016/10/06 by Max.Chen Sequencer: Set the paste keys time to the current time, rather than the mouse time. Change 3154332 on 2016/10/06 by Max.Chen Sequencer: Remove click to rename shot functionality in the shot thumbnail. Added rename shot to the shot context menu. Change 3154377 on 2016/10/07 by Max.Chen Sequencer: Add ability to step to beginning and ends of sections/shots using the hotkeys: , and . Change 3154788 on 2016/10/07 by Max.Chen Sequencer: Fix offsets that created when moving multiple sections. The offsets were being created because section bounds were being generated for all sections except for the current section. Instead, they should be computed for all sections except for any that aren't being moved. #jira UE-29152 Change 3159274 on 2016/10/11 by Max.Preussner Core: Documentation fixes Change 3159275 on 2016/10/11 by Max.Preussner UdpMessaging: Added missing header Change 3160746 on 2016/10/12 by Max.Preussner MediaAssets: Added BP functions to query width, height, and aspect ratio of UMediaTexture instances #jira UE-37241 Change 3160975 on 2016/10/12 by Max.Preussner PS4Media: Better logging for SetRate failures Change 3160995 on 2016/10/12 by Max.Preussner MediaPlayerEditor: Fixed Media player selection is ignored if media specifies player overrides (UE-37248) #jira UE-37248 Change 3161066 on 2016/10/12 by Max.Preussner PS4Media: Enforcing minimum 8 byte alignment for media allocations Change 3161069 on 2016/10/12 by Max.Preussner PS4Media: Fixed log spam when setting play rate to current rate Change 3162567 on 2016/10/13 by Max.Preussner PS4Media: Made track switching code more readable Change 3163447 on 2016/10/14 by Max.Preussner PS4Media: Fixed array out of bounds assertions Change 3163772 on 2016/10/14 by Max.Preussner MfMedia: Fixed a number of timing related issues Change 3163980 on 2016/10/15 by Max.Chen Sequencer: Remove folder name numeric padding so that the naming convention is similar to creating objects in the level. Change 3164581 on 2016/10/17 by Andrew.Rodham Sequencer: Ensure global pre-animated state is restored in reverse order Change 3164582 on 2016/10/17 by Andrew.Rodham Sequencer: Ensure pre animated state is restored for all actor components before saving default state Change 3164583 on 2016/10/17 by Andrew.Rodham Sequencer: Re-enabled support for pre and post roll Change 3165464 on 2016/10/17 by Max.Chen Sequencer: Default number frame handles to 0 so that there's no change in behavior when rendering out a master sequence of shots. Handle frames need to enabled explicitly by the user. Copy from Release-4.14 #jira UE-37416 Change 3165483 on 2016/10/17 by Max.Chen Sequencer: Enable restore state for attach section completion Change 3165771 on 2016/10/18 by Andrew.Rodham Sequencer: Force evaluate when rendering thumbnails #jira UE-37321 Change 3166057 on 2016/10/18 by Andrew.Rodham Sequencer: Only set defaults for tracks that have no keys, and where the requested default has changed #jira UE-37285 Change 3166218 on 2016/10/18 by Max.Preussner MediaPlayerEditor: Failure opening media, even though it opened successfully (UE-37470) #jira UE-37470 Change 3166247 on 2016/10/18 by Max.Preussner WmfMedia: Showing progress bar while media is being resolved Change 3166289 on 2016/10/18 by Max.Preussner MfMedia: Showing progress bar while media is being resolved Change 3166993 on 2016/10/18 by Max.Preussner MfMedia: Fixed info string not reset on media close. Change 3166999 on 2016/10/19 by Max.Preussner Media: Fixed NV12 and NV21 support Change 3167008 on 2016/10/19 by Max.Preussner Media: Removed vertical NV12 alignment Change 3167029 on 2016/10/19 by Max.Preussner WmfMedia: Temp fix for RGB32 encoded AVIs rendering upside-down and too bright (UE-37505) #jira UE-37505 Change 3168593 on 2016/10/19 by Max.Chen Sequencer: Change paste at time to local time, so that the paste happens in the local time of the sequence rather than the global time if pasting in a shot level sequence. Change 3168626 on 2016/10/19 by Max.Chen Sequencer: Clamp to view bounds should snap to frame if frame snapping is on. Change 3168627 on 2016/10/19 by Max.Chen Sequencer: Initialize working and view range to be 10% larger than playback range. Change 3168760 on 2016/10/20 by Max.Preussner Media: Revamped media texture buffer management to support padded frames Added support for Windows bitmap buffers. Fixed a number of format, conversion and/or looping issues in WmfMedia and MfMedia. Not all shaders have been updated yet. Change 3169640 on 2016/10/20 by Max.Chen Sequencer: Add current camera to FLevelSequencePlayerSnapshot. Adjust DefaultBurnIn to include a few more parameters like focal length and focus distance. #jira UE-37407 Change 3170677 on 2016/10/21 by Max.Chen Movie Scene Capture: Add toggle to override engine scalability settings to cinematic scalability. #jira UE-36560 Change 3170710 on 2016/10/21 by Max.Preussner Media: Optimized handling of RGB input Change 3170712 on 2016/10/21 by Max.Preussner Media: Fixed NV21 conversion shader scaling Change 3170923 on 2016/10/21 by Max.Preussner UBT: Copied XboxOne project generator fix from Fortnite CL# 3170868 Change 3171494 on 2016/10/23 by Max.Chen Sequencer: Fix fbx export from master sequence not finding bound objects. #jira UE-35752 Change 3171506 on 2016/10/23 by Max.Chen Sequencer: Draw where in and out points of the shot section are, just like subsequences do. Change to only draw the green starting line if StartOffset is negative. #jira UE-35473 Change 3171743 on 2016/10/24 by Andrew.Rodham Editor: Added support for detail customizations on root structs - Also added the ability to add external struct data onto a detail category builder, and property type customization. Change 3171752 on 2016/10/24 by Andrew.Rodham Sequencer: Fixed spawnable ownership - Spawnables are no longer destroyed when the cursor leaves the master playback range. - Spawnable ownership now operates as it previously did before the evaluation rework. - bIgnoreOwnershipInEditor has been removed since its existence was a work around for when we didn't evaluate sub sequences from the master sequence. - FMovieSceneSequenceID is now a struct so that it can be used in array properties - Meta data now exists for each segment of an evaluation field. Currently this only includes the sub sequence IDs that exist at that time, but it may be expanded to include all evaluation entities (tracks + sections) in future so we don't have to calculate that at runtime. Change 3171756 on 2016/10/24 by Andrew.Rodham Sequencer: Added ability to trigger events with parameters - It's now possible to supply an event payload on event track keys which are to be passed to a given event. The structure must match the signature of the event, or a warning will be emitted. - Added a templated TGenericKeyArea, TKeyFrameManipulator and TCurveInterface that allow to generic manipulation of keyframe section data. In time we will port the other key areas over to this representation. - This new architecture affords the common manipulation of time-based keyframes in a value-agnostic manner. Change 3172935 on 2016/10/24 by Max.Preussner MediaPlayerEditor: Fixed MediaPlayer asset not being dirtied when creating media sound wave or texture for it Change 3173947 on 2016/10/25 by Max.Preussner SlateRemote: Disabled plug-in, but enabled server by default Change 3174510 on 2016/10/26 by Max.Chen Sequencer: Fix slomo track crash #jira UE-37802 Change 3174698 on 2016/10/26 by Andrew.Rodham UMG: Fixed objects bound to a panel slot animating their slot's content instead of the slot itself #jira UE-37775 Change 3174780 on 2016/10/26 by Max.Preussner MediaAssets: Accepting decoder defined buffer dimensions for RGB buffers Change 3174789 on 2016/10/26 by Max.Preussner MediaPlayerEditor: Showing desired player name instead of current player name if no media loaded Change 3174817 on 2016/10/26 by Max.Preussner WmfMedia: Added support for Motion JPEG (MJPG) Change 3174825 on 2016/10/26 by Max.Preussner WmfMedia: Added support for non-RGB32 uncompressed formats Change 3174834 on 2016/10/26 by Max.Preussner MediaPlayerAssets: Allow pausing while buffering media Change 3174886 on 2016/10/26 by Andrew.Rodham Core: Fixed range test that was testing incorrect behavior Change 3174889 on 2016/10/26 by Andrew.Rodham Sequencer: Fixed AssignActor behavior - Also ensure that cached object state is invalidated when playback context changes #jira UE-37798 Change 3174905 on 2016/10/26 by Andrew.Rodham Sequencer: Changed assert when failing to create an audio component to a log message - Audio no longer plays when GEngine->UseSound() is false #jira UE-37772 Change 3174980 on 2016/10/26 by Andrew.Rodham Sequencer: Remove warning when event endpoint could not be found for a given context #jira UE-37824 Change 3175001 on 2016/10/26 by Andrew.Rodham Sequencer: Evaluate sequence with EMovieScenePlaybackStatus::Jumping on Pause. - Also protect Pause() against reentrancy when being called from an event Change 3175012 on 2016/10/26 by Max.Chen Sequence Recorder: Fixes an empty working and view range after recording. On StopRecording() update playback range after nullifying the current sequence so that the playback range isn't empty. Added SetViewRange and SetWorkingRange. #jira UE-34191 Change 3177760 on 2016/10/28 by Max.Chen Sequence Recorder: Don't update the current sequence name if it's already set. This fixes a bug where if you pass in a sequence name to record to, it gets reset to the name in the sequence recorder settings. #jira UE-37808 Change 3178529 on 2016/10/28 by Max.Chen Matinee to Level Sequence: Added interface to extend the matinee to level sequence converter #jira UE-37328 #2864 [CL 3178562 by Max Chen in Main branch]
2016-10-28 15:04:38 -04:00
FEditToolDragOperation::FEditToolDragOperation( FSequencer& InSequencer )
: Sequencer(InSequencer)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
Settings = Sequencer.GetSequencerSettings();
}
FCursorReply FEditToolDragOperation::GetCursor() const
{
return FCursorReply::Cursor( EMouseCursor::Default );
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
int32 FEditToolDragOperation::OnPaint(const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId) const
{
return LayerId;
}
void FEditToolDragOperation::BeginTransaction( TArray< TWeakObjectPtr<UMovieSceneSection> >& Sections, const FText& TransactionDesc )
{
// Begin an editor transaction and mark the section as transactional so it's state will be saved
Transaction.Reset( new FScopedTransaction(TransactionDesc) );
for (int32 SectionIndex = 0; SectionIndex < Sections.Num(); )
{
UMovieSceneSection* SectionObj = Sections[SectionIndex].Get();
SectionObj->SetFlags( RF_Transactional );
// Save the current state of the section
if (SectionObj->TryModify())
{
++SectionIndex;
}
else
{
Sections.RemoveAt(SectionIndex);
}
}
}
void FEditToolDragOperation::EndTransaction()
{
Transaction.Reset();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3048536) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3004054 on 2016/06/07 by Max.Chen Movie Capture: Expose compressed EXR frames to Sequencer Capture UI and command line. Change 3007048 on 2016/06/09 by Max.Chen Sequencer: Allow showing the context menu for more than one selected node. Certain operations (ie. Lock, Active, Label) now operate on all the selected nodes. #jira UE-31762 Change 3007795 on 2016/06/09 by Max.Chen Sequencer: Select actors for corresponding selected keys or sections. #jira UE-30727 Change 3009689 on 2016/06/10 by Max.Chen Movie Capture: Add {shot} description to movie capture filename format. Change 3010180 on 2016/06/11 by Max.Chen Sequencer: Add support for copying and converting linear color tracks from matinee. #jira UE-31260 Change 3012472 on 2016/06/14 by Max.Chen Sequence Recorder: Optimize adding keys to rich curves. Set the times and values at once as an ordered set. Change 3012473 on 2016/06/14 by Max.Chen Sequence Recorder: Find corresponding PIE world actor for Actor to Record. This fixes a bug where if you set the actor before PIE and then record, the recording doesn't work. Change 3012474 on 2016/06/14 by Max.Chen Sequence Recorder: Fix countdown timer so that it draws in Simulate mode as well as Play. #jira UE-31630 Change 3014868 on 2016/06/15 by Max.Chen Sequencer: For legacy, properties with the CPF_Interp flag can be animated in Matinee. It doesn't require the CPF_Edit flag as well. This makes Sequencer consistent with Matinee. #jira UE-32067 Change 3014869 on 2016/06/15 by Max.Chen Sequencer: Rename "Expose to Matinee" to "Expose to Cinematics" #jira UE-31500 Change 3016137 on 2016/06/16 by Max.Chen Sequencer: Added support for the named "PerformanceCapture" event which like Matinee, calls GEngine->PerformanceCapture to output a screenshot when the event fires. Refactor event track/sections so that the player is passed to the trigger events evaluation. #jira UE-32093 Change 3018996 on 2016/06/18 by Max.Chen Sequencer: Add play/pause/stop events to level sequence player ala matinee actor. #jira UETOOL-899 Change 3019763 on 2016/06/20 by Max.Chen Sequencer: Fix key editor commit when user tabs away (lose focus). Also, make the key navigation buttons and track color button not focusable. Slate: Make editable labels not focusable if they are not editable. #jira UE-24566, UE-31913 Change 3019768 on 2016/06/20 by Max.Chen Sequencer: Event track no longer fires if the playback status is stopped. This fixes a bug where when playback is stopped and the movie scene sequence is returned to the start of playback, we don't want all the events from the last playback position to the start of playback to fire. #jira UE-31494 Change 3020849 on 2016/06/21 by Andrew.Rodham Sequencer: Fixed blueprint classes as spawnables not being reinstanced correctly - The RF_ArchetypeObject flag was previously used to denote spawnable object templates, however this caused blueprint reinstancing to skip such objects, which resulted in crashes, or data loss - Added code to rename expired object templates to ensure there is no name collision - Ensured that register functions are only called on actors that are part of a world (when finalizing blueprint reinstancing) #jira UE-31637 Change 3021400 on 2016/06/21 by Frank.Fella Sequencer - Add support for exporting to fbx. Change 3022941 on 2016/06/22 by Andrew.Rodham Sequencer: Thumbnail improvements - Fixed poor performance when continually zooming (thumbnails were being constantly and immediately rendered in this case) - Added quality setting to thumbnail sections (draft/normal/best) - Improved fade transition to use proper alpha blending - Fixed needlessly recreating the entire world's render state when creating a new editor viewport client. This caused a significant hitch opening sequences in certain large worlds. #jira UE-31264 Change 3022944 on 2016/06/22 by Andrew.Rodham Sequencer: Fixed jitter when jumping around - bEditorCameraCut was not being reset on the next frame, which prevented temporal effects from running Change 3024774 on 2016/06/23 by Max.Chen Sequencer: Cache show intensity to invalidate the waveform preview when the intensity changes. #jira UE-32385 Change 3026170 on 2016/06/24 by Max.Chen Sequence Recorder: Change Actor Name to Record to a TLazyObjectPtr<AActor> so that the user can choose the actor directly rather than typing in a name. Change 3026181 on 2016/06/24 by Max.Chen Sequencer: Add visibility options to show/hide/only when selected 3d trajectories per transform section. #jira UE-31814 Change 3026489 on 2016/06/24 by Andrew.Rodham Sequencer: Fixed some recorded actors not being saved into level sequences correctly - The use of StaticDuplicateObject was causing temporary/transient or otherwise external data to be duplicated into template actors which caused the actor to be culled on package save. - Using NewObject followed by copying the object properties guarantees we don't copy this data. - This is the same method used to spawn the spawnable actor Change 3026522 on 2016/06/24 by Max.Chen Sequence Recorder: Fix bug where sample rate wouldn't get set if the length is set to 0. #jira UE32430 Change 3027768 on 2016/06/25 by Max.Chen Sequencer: Fix player stopping after 60 seconds. Assign the player to a UPROPERTY so that it's not garbage collected. #jira UE-32420 Change 3028318 on 2016/06/27 by Andrew.Rodham Editor: Added safety check to prevent stack overflow populating the world outliner - It was possible for the population code to get stuck in an infinite loop if an actor happened to be attached to itself. #jira UE-30914 Change 3034262 on 2016/06/30 by Andrew.Rodham Sequencer: Fixed invalid properties being recorded when creating spawnable object templates - When creating a spawnable out of an attached actor, the attachment was getting copied into the template. This results in GLEO errors when saving the package. - Suppressed object replacement notifications when calling CopyPropertiesForUnrelatedObjects for spawnables Change 3035168 on 2016/06/30 by Max.Chen UMG: Set anim range to the playback range size. This fixes a bug where animation doesn't play the full length of the playback range if it starts negative. #jira UE-32066 Change 3035169 on 2016/06/30 by Max.Chen Sequencer: Add ReversePlay() and ChangePlaybackDirection() functions (ala Matinee). #jira UE-21259 Change 3035174 on 2016/06/30 by Max.Chen Sequencer: Fix evaluation when playback starts or loops around so that last time is enforced to be the lower bound of the playback range. This fixes a bug in the particle track where if there's a particle that triggers at time 0 and a level sequence that starts at time 0, the event will be missed since last time will be 0 but then rounded to a fixed frame with epislon .0001f. #jira UE-32606 Change 3035186 on 2016/06/30 by Max.Chen Sequencer: Add reset selection range and remove unused delete selection range. #jira UE-32666 Change 3035197 on 2016/07/01 by Max.Chen Sequencer: Fix so that adding a sub section adds to the clicked on sub track and not just the first. #jira UE-32665 Change 3036586 on 2016/07/02 by Max.Chen Sequencer: More play controls - shuttle backward, pause, shuttle forward (j, k, l) #jira UE-27539, UE-31424 Change 3036941 on 2016/07/04 by Andrew.Rodham Sequencer: Record transforms in world space where an actor is attached, and we're not recording its parent Change 3039290 on 2016/07/06 by Andrew.Rodham Sequencer: Various capture fixes - Movie captures no longer crash when no world is loaded (they gracefully close instead) - Currently waiting on change from core to hook up the error code with an actual process termination code - We now force -NoLoadingScreen, -Windowed and -ForceRes since movie captures will not work without these #jira UE-32802 Change 3039831 on 2016/07/06 by Frank.Fella Sequencer - Notify data changed refactor. + Add a change type to "NotifyMovieSceneDataChanged" so that sequencer knows what parts of the system to refresh. + Remove most calls for UpdateRuntimeInstances and replace them with a call to NotifyMovieSceneDataChanged. + Update UMG so that it copies the animation data to the compiled class whenever it's changed. #jira UE-29955 Change 3044087 on 2016/07/10 by Max.Chen Sequencer - Prevent crashes when encountering filler shots with no valid sequence. Change 3044151 on 2016/07/10 by Max.Chen Sequencer: Only update selected nodes if they change. This fixes a bug in the curve editor where undo reselects and autoframes. #jira UE-29663 Change 3044164 on 2016/07/10 by Max.Chen Sequencer: Added ability to immediately record actors directly into sequencer - "Record 'ActorName' In Sequencer" option is now available on the level editor context menu for selected actors when sequencer is open. - This immediately triggers a countdown and records the currently selected actors into a sub sequence in the currently focussed movie scene - Creates a cinematic shot track if you record a camera - Removed the older "queue" and "trigger" methods for now to make it cleaner for the demo. Change 3044180 on 2016/07/11 by Max.Chen Sequencer: Added ability to possess viewports while in PIE - Added a new option to the level sequence editor settings to allow possession of PIE viewports Change 3044181 on 2016/07/11 by Max.Chen Sequencer: Added ability to specify event contexts for FSequencer - This allows us to trigger events from playback within sequencer, according to the sequencer client Change 3044188 on 2016/07/11 by Max.Chen Sequencer: We no longer evaluate camera cut tracks as part of sub tracks, only shot tracks. Change 3044193 on 2016/07/11 by Max.Chen Sequencer: Added cvar LevelSequence.DefaultFixedFrameIntervalPlayback to control this setting for newly created level sequences Change 3044194 on 2016/07/11 by Max.Chen Sequencer: Added an option to rewind the sequence when a recording is started Defaults to 'on' Change 3047334 on 2016/07/12 by Max.Chen Sequencer: Add transactions for creating a camera cut track and a folder. #jira UE-33130 Change 3047365 on 2016/07/12 by Max.Chen Cine Camera: Fix crash in CineCameraComponent when setting focus distance from BP Change 3047366 on 2016/07/12 by Max.Chen Sequence Recorder: Arbitrary property recording [CL 3048548 by Max Chen in Main branch]
2016-07-13 15:37:34 -04:00
Sequencer.NotifyMovieSceneDataChanged( EMovieSceneDataChangeType::TrackValueChanged );
}
FResizeSection::FResizeSection( FSequencer& InSequencer, const TSet<TWeakObjectPtr<UMovieSceneSection>>& InSections, bool bInDraggingByEnd, bool bInIsSlipping )
: FEditToolDragOperation( InSequencer )
, Sections( InSections.Array() )
, bDraggingByEnd(bInDraggingByEnd)
Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 3631098) #lockdown nick.penwarden #rb none Change 3618690 on 2017/08/30 by Max.Preussner Media: Pass-through of global timecode in tick Change 3620659 on 2017/08/31 by Max.Preussner WmfMedia: Added string conversion for stream marker types; updated documentation Change 3620663 on 2017/08/31 by Max.Preussner MediaUtils: Always queuing up media events to prevent application from interfering with player state during event callbacks Change 3620878 on 2017/08/31 by Max.Preussner Media: Using correct parameter for printing pointers Change 3621327 on 2017/08/31 by Max.Preussner Core: Added TQueue.Pop Change 3621419 on 2017/08/31 by Chris.Babcock Skip some mediaplayer calls if not prepared and check for completion in stopped state #jira UE-49054 Change 3622023 on 2017/09/01 by Max.Chen Sequencer: Fix regression where spawnables don't play because they're defined as temporary editor actors. #jira UE-48923 Change 3622433 on 2017/09/01 by Chris.Babcock Reorder Android media player suspend and playbackendreached events so stop is first Change 3622568 on 2017/09/01 by Max.Chen Media Player: Move sinks and player guid to PostInitProperties instead of PostLoad to fix issues with newly created players. #jira UE-49160 Change 3622678 on 2017/09/01 by Max.Chen Actor Sequence: Move runtime to plugins. #jira UE-45752 Change 3623243 on 2017/09/01 by Max.Preussner MfMedia: Resetting media characteristics before trying to reinitialize them Change 3623246 on 2017/09/01 by Max.Preussner WmfMedia: Fixed media characteristics not updated when opening media without tracks selected #jira UE-49214 Change 3623675 on 2017/09/01 by Max.Preussner MediaUtils: Fixed multichannel downmixing Change 3623747 on 2017/09/01 by Max.Preussner WmfMedia: Removed still images from list of supported streams as they require special handling that is currently not implemented Change 3623757 on 2017/09/01 by Max.Preussner WmfMedia: Added missing string conversion for Playing state Change 3623793 on 2017/09/01 by Max.Chen Sequencer: Fix ensure when deleting sections. Sections were getting removed from the array during iteration. #jira UE-49220 Change 3623797 on 2017/09/01 by Max.Chen Sequencer: Add transactions to easing type and setting changes. #jira UE-49209 Change 3623924 on 2017/09/02 by Max.Preussner Media: Renamed IMediaPlayer::GetName to GetPlayerName Change 3623931 on 2017/09/02 by Max.Preussner Media: Added IMediaPlayer::GetMediaName Change 3623962 on 2017/09/02 by Max.Preussner WmfMedia: Consistent logging format Change 3623963 on 2017/09/02 by Max.Preussner MfMedia: Consistent logging format Change 3624190 on 2017/09/03 by Max.Preussner MediaUtils: Made sink overflow log messages a compile option Change 3624412 on 2017/09/04 by Richard.Wallis Trivial fix for Mac Audio Mixer playback through engine using current AV implementation. This fixes up what is already there to get us back to a working Mac Media playback via engine. Although it is still disabled just in case this stream is at a time/feature critical point. Just remove the && 0 in the AUDIO_PLAYBACK_VIA_ENGINE define at the top of AvfMediaTracks.cpp. Change 3624769 on 2017/09/04 by Max.Preussner WmfMedia: Fixed some subtle issues with session state changes & track switching Change 3624811 on 2017/09/04 by Max.Preussner WmfMedia: Not compiling WMF related libraries on dedicated server Change 3624813 on 2017/09/04 by Max.Preussner WmfMedia: Added utility function to copy MF attributes Change 3624941 on 2017/09/05 by Max.Chen Sequencer: Added slip functionality for sections. Hold down shift and drag the section left and right (as if you were moving it). #jira UE-24929 Change 3625131 on 2017/09/05 by Andrew.Rodham Media: Fixed optional parameter name not being loaded properly for external texture uniform expressions Change 3625547 on 2017/09/05 by Max.Preussner AudioMixer: Fixed crash due to legacy int16 audio buffer not initialized Change 3625569 on 2017/09/05 by Max.Chen Cine Camera: Added GetFilmbackPresetName(), SetFilmbackPresetByName(), GetLensPresetName(), SetLensPresetByName(). #jira UE-48967 Change 3625668 on 2017/09/05 by Max.Chen Sequence Recorder: Add drag and drop functionality to sequence recorder #jira UE-49072 Change 3625738 on 2017/09/05 by Max.Preussner WmfMedia: showing possible image streams that may be incorrectly returned as video streams in media info Change 3625751 on 2017/09/05 by Max.Preussner WmfMedia: Restarting session from beginning on track switching if media doesn't support seeking Change 3625869 on 2017/09/05 by Andrew.Rodham Sequencer: Fixed crash caused by manipulating selection while iterating Change 3625884 on 2017/09/05 by Andrew.Rodham Sequencer: Optimization pass on key and trajectory rendering when dealing with large numbers of tracks and/or keys - Memory is reserved where possible on hot code paths - Reduced amount of sorting and shuffling of arrays where possible - Key collections (and thus key groups) are now cacheable so we don't have to regenerate them every frame - Reduced amount of overdraw on keys in sequencer UI - Added editor preference to limit the number of keys shown around the current time when rendering trajectories in the editor (default=250) - Optimized various algorithms used for key introspection and manipulation - Overlapping keys are now highlighted with a red border #jira UE-42018 Change 3626270 on 2017/09/05 by Max.Preussner WmfMedia: Added utility function to dump out media type attributes Change 3626274 on 2017/09/05 by Max.Preussner WmfMedia: Dumping media type attributes in very verbose debug log Change 3626275 on 2017/09/05 by Max.Preussner WmfMedia: Clearing pending topologies before setting new one Change 3626440 on 2017/09/05 by Max.Preussner WmfMedia: Resolving stream format types and interlace modes in attribute dump Change 3626719 on 2017/09/05 by Max.Preussner MediaAssets: Exposed the OnTracksChanged event on media player assets Change 3626806 on 2017/09/05 by Chris.Babcock Fix error returns from rungradle.bat and ant.bat #jira UE-49305 Change 3626915 on 2017/09/05 by Chris.Babcock Only use immersive mode if enabled on Android #jira UE-49308 Change 3626980 on 2017/09/05 by Max.Preussner MediaAssets: Renamed capture device enumeration filters from Unspecified to Unknown Change 3627333 on 2017/09/05 by Max.Preussner MediaUtils: Added utility functions for converting common enum values to string Change 3627702 on 2017/09/06 by Andrew.Rodham Sequencer: Fixed crash caused by erroneous persistent references to FSequencer - Also added an ensure to FSequencer::Tick to ensure this doesn't happen again #jira UE-48647 #jira UE-48383 #jira UE-47661 Change 3628000 on 2017/09/06 by Andrew.Rodham Sequencer: Changed ensure for a message log warning #jira UE-49245 Change 3628548 on 2017/09/06 by Max.Preussner MediaUtils: Logging media events in player facade Change 3629189 on 2017/09/06 by Max.Preussner WmfMedia: Selecting default format and track when initializing media source #jira UE-49214 Change 3629207 on 2017/09/06 by Max.Preussner MfMedia: Selecting default format when initializing media source Change 3629256 on 2017/09/06 by Max.Preussner MediaUtils: Fixed sample queue count not decremented on Pop #jira UE-49372 [CL 3631147 by Max Chen in Main branch]
2017-09-07 15:02:48 -04:00
, bIsSlipping(bInIsSlipping)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
, MouseDownTime(0)
{
}
void FResizeSection::OnBeginDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
BeginTransaction( Sections, NSLOCTEXT("Sequencer", "DragSectionEdgeTransaction", "Resize section") );
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
MouseDownTime = VirtualTrackArea.PixelToFrame(LocalMousePos.X);
// Construct a snap field of unselected sections
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
TSet<FSequencerSelectedKey> EmptyKeySet;
FInvalidKeyAndSectionSnappingCandidates SnapCandidates(EmptyKeySet, Sections);
SnapField = FSequencerSnapField(Sequencer, SnapCandidates, ESequencerEntity::Section | ESequencerEntity::Key);
SectionInitTimes.Empty();
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
bool bIsDilating = MouseEvent.IsControlDown();
PreDragSectionData.Empty();
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
{
UMovieSceneSection* Section = WeakSection.Get();
if (Section == nullptr)
{
continue;
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
if (bIsDilating)
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
// Populate the resize data for this section
FPreDragSectionData ResizeData;
ResizeData.MovieSection = Section;
ResizeData.InitialRange = Section->GetRange();
TOptional<FSectionHandle> SectionHandle = Sequencer.GetNodeTree()->GetSectionHandle(Section);
if (SectionHandle)
{
//Tell section that may not have keys it's starting to dilate (e.g. skeletal tracks will cache play rate).
SectionHandle->GetSectionInterface()->BeginDilateSection();
ResizeData.SequencerSection = &SectionHandle->GetSectionInterface().Get();
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
// Add the key times for all keys of all channels on this section
FMovieSceneChannelProxy& Proxy = Section->GetChannelProxy();
for (const FMovieSceneChannelEntry& Entry : Proxy.GetAllEntries())
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #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]
2018-05-09 10:24:50 -04:00
TArrayView<FMovieSceneChannel* const> ChannelPtrs = Entry.GetChannels();
for (int32 Index = 0; Index < ChannelPtrs.Num(); ++Index)
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
// Populate the cached state of this channel
FPreDragChannelData& ChannelData = ResizeData.Channels[ResizeData.Channels.Emplace()];
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #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]
2018-05-09 10:24:50 -04:00
ChannelData.Channel = Proxy.MakeHandle(Entry.GetChannelTypeName(), Index);
ChannelPtrs[Index]->GetKeys(TRange<FFrameNumber>::All(), &ChannelData.FrameNumbers, &ChannelData.Handles);
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
PreDragSectionData.Emplace(ResizeData);
}
else if (TOptional<FSectionHandle> SectionHandle = Sequencer.GetNodeTree()->GetSectionHandle(Section))
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
{
if (bIsSlipping)
{
SectionHandle->GetSectionInterface()->BeginSlipSection();
}
else
{
SectionHandle->GetSectionInterface()->BeginResizeSection();
}
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
SectionInitTimes.Add(Section, bDraggingByEnd ? Section->GetExclusiveEndFrame() : Section->GetInclusiveStartFrame());
}
}
void FResizeSection::OnEndDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
bool bIsDilating = MouseEvent.IsControlDown();
TOptional<EMovieSceneDataChangeType> ChangeNotification;
if (!bIsDilating)
{
TSet<UMovieSceneTrack*> Tracks;
FMovieSceneSectionMovedParams SectionMovedParams(EPropertyChangeType::ValueSet);
EMovieSceneSectionMovedResult SectionMovedResult(EMovieSceneSectionMovedResult::None);
for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : Sections)
{
if (UMovieSceneSection* Section = WeakSection.Get())
{
if (UMovieSceneTrack* OuterTrack = Section->GetTypedOuter<UMovieSceneTrack>())
{
OuterTrack->Modify();
SectionMovedResult |= OuterTrack->OnSectionMoved(*Section, SectionMovedParams);
Tracks.Add(OuterTrack);
}
}
}
for (UMovieSceneTrack* Track : Tracks)
{
Track->UpdateEasing();
}
if (SectionMovedResult != EMovieSceneSectionMovedResult::None)
{
ChangeNotification = EMovieSceneDataChangeType::MovieSceneStructureItemsChanged;
}
}
EndTransaction();
if (ChangeNotification.IsSet())
{
Sequencer.NotifyMovieSceneDataChanged(ChangeNotification.GetValue());
}
}
void FResizeSection::OnDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
ISequencerModule& SequencerModule = FModuleManager::Get().LoadModuleChecked<ISequencerModule>("Sequencer");
bool bIsDilating = MouseEvent.IsControlDown();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
ESequencerScrubberStyle ScrubStyle = Sequencer.GetScrubStyle();
FFrameRate TickResolution = Sequencer.GetFocusedTickResolution();
FFrameRate DisplayRate = Sequencer.GetFocusedDisplayRate();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
// Convert the current mouse position to a time
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameNumber DeltaTime = (VirtualTrackArea.PixelToFrame(LocalMousePos.X) - MouseDownTime).RoundToFrame();
// Snapping
if ( Settings->GetIsSnapEnabled() )
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
TArray<FFrameNumber> SectionTimes;
for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : Sections)
{
if (UMovieSceneSection* Section = WeakSection.Get())
{
SectionTimes.Add(SectionInitTimes[Section] + DeltaTime);
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
float SnapThresholdPx = VirtualTrackArea.PixelToSeconds(PixelSnapWidth) - VirtualTrackArea.PixelToSeconds(0.f);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
int32 SnapThreshold = ( SnapThresholdPx * TickResolution ).FloorToFrame().Value;
TOptional<FSequencerSnapField::FSnapResult> SnappedTime;
if (Settings->GetSnapSectionTimesToSections())
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
SnappedTime = SnapField->Snap(SectionTimes, SnapThreshold);
}
if (!SnappedTime.IsSet() && Settings->GetSnapSectionTimesToInterval())
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
int32 IntervalSnapThreshold = FMath::RoundToInt( ( TickResolution / DisplayRate ).AsDecimal() );
SnappedTime = SnapToInterval(SectionTimes, IntervalSnapThreshold, TickResolution, DisplayRate, ScrubStyle);
}
if (SnappedTime.IsSet())
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3379190) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3342222 on 2017/03/10 by Nick.Darnell UMG - Adding a GetContent to the UContentWidget. Change 3342228 on 2017/03/10 by Nick.Darnell Project Launcher - Always consume mouse wheel vertically so it stops scrolling to the right. Change 3342310 on 2017/03/10 by Nick.Darnell UMG - Cleaning up some extra class references. Change 3343382 on 2017/03/13 by Jamie.Dale Applying optimization to FChunkManifestGenerator::ContainsMap Change 3343523 on 2017/03/13 by Mike.Fricker New details view option: "Show Hidden Properties while Playing" - Enabling this allows you to see every property on selected objects that belong to a simulating world, even non-visible and non-editable properties. Very useful for inspection and debugging. - Remember to change World Outliner to show you actors in the "Play World" if you want to select and inspect those objects first! - This setting is saved for your entire project, similar to "Show All Advanced" Change 3343573 on 2017/03/13 by Mike.Fricker New details view option: "Show Hidden Properties while Playing" (part 2) - Fixed missing include / unity issue Change 3343709 on 2017/03/13 by Jamie.Dale Some fixes for gathering cached dependency data - We no longer load dependency data that doesn't have the correct package name. - We no longer populate the dependency results when bGatherDependsData is false. Change 3343900 on 2017/03/13 by Alexis.Matte fix crash when creating too much LOD at import #jira UE-42785 Change 3344104 on 2017/03/13 by Alexis.Matte Add a boolean to the static mesh socket so we know if the socket was imported or created in UE4. This allow us to not impact editor socket when we re-import a fbx #jira UE-42736 Change 3344802 on 2017/03/14 by Michael.Dupuis #jira UE-42244 : added missing nullptr so render thread wont try to access global var when we're no longer in landscape mode Changed the sync method between graphic resource from render thread and game thread to prevent desync Change 3346061 on 2017/03/14 by Jamie.Dale Adding const& and && overloads of FText::Format Change 3346192 on 2017/03/14 by Arciel.Rekman Linux: fix VHACD to retain bincompat with the baseline (UE-42895). - It is now compiled against libc++ instead of libstdc++ in the toolchain. Change 3347083 on 2017/03/15 by Andrew.Rodham Fixed crash when changing anchors on a background blur widget Change 3347359 on 2017/03/15 by Michael.Dupuis #jira UE-38193: Added Rename, Delete, New Folder, Size Map, Show In Explorer for folder and asset in the path view and asset view Change 3347382 on 2017/03/15 by Michael.Dupuis missing include incremental Change 3347500 on 2017/03/15 by Alex.Delesky #jira UE-41231 - Selecting multiple text widgets in UMG will now allow you to set their value correctly, and the "Multiple Values" text will no longer be set in the widgets instead. Change 3347920 on 2017/03/15 by Jamie.Dale Fixing some places passing tooltips as FString rather than FText #jira UE-42603 Change 3347925 on 2017/03/15 by Jamie.Dale Re-saving some assets so their tooltips can be gathered #jira UE-42603 Change 3348788 on 2017/03/15 by Jamie.Dale Updated the Windows platform to use the newer Vista+ style browser dialogs, rather than the older XP style dialogs Change 3349187 on 2017/03/16 by Andrew.Rodham Sequencer: Added the ability to specify additional event receivers for level sequence actors - Such actors will receive events from event tracks Change 3349194 on 2017/03/16 by Andrew.Rodham Sequencer: Reset compiled templates on load in the editor, and ensure correct serialization of generation ledger - Resetting on load means that we guarantee up-to-date templates, even if underlying compilation logic changes. #jira UE-42198 #jira UE-40969 Change 3349210 on 2017/03/16 by Andrew.Rodham Sequencer: Event tracks can now be defined to trigger events at the start of evaluation, after objects are spawned, or at the end of evaluation Change 3349211 on 2017/03/16 by Andrew.Rodham Sequencer: Add ability to retrieve bound objects from blueprint Change 3349398 on 2017/03/16 by Nick.Darnell UMG - Fixing a flashing hierarchy view. Looks like assets continuing to stream in causing the object change notification to continue to fire, and the widget designer refreshed any time it happened. Now limit to only if widgets are changing. Change 3349420 on 2017/03/16 by Alex.Delesky #jira UE-40720 - Multiline editable text boxes can now be set to Read-Only. Change 3349548 on 2017/03/16 by Alexis.Matte Fbx importer, when importing a staticmesh with combine mesh option check and the fbx file contain some "MultiSub Material" the materialinstance are now always hook properly. Change 3349818 on 2017/03/16 by Cody.Albert Fixed constructor for FNavigationMetaData Change 3350047 on 2017/03/16 by Cody.Albert Removed unneeded check so that children actors are never orphaned when their parent is moved into a newly created folder in the world outliner Change 3350072 on 2017/03/16 by Arciel.Rekman ShaderCompiler: make sure strings are at least 4-byte aligned. - Can crash wcscpy() under Linux otherwise (reported by a licensee). Change 3350146 on 2017/03/16 by Arciel.Rekman Fix CodeLite project generation (UE-42921). - Reportedly causes a crash in CodeLite 10.x Change 3350235 on 2017/03/16 by Arciel.Rekman Fix memory leak in address symbolication on Linux. - Makes MallocProfiler work again. - Also add progress update in MallocProfiler since symbolication is still slow. Merging CL 3338764 from Fortnite to Dev-Editor. Change 3350382 on 2017/03/16 by Arciel.Rekman Linux: fix incorrect cast of rlimit in i686. Change 3350471 on 2017/03/16 by Jamie.Dale Enabling loc dashboard by default for new projects Change 3350516 on 2017/03/16 by Jamie.Dale Enabling content hot-reloading by default Change 3350582 on 2017/03/16 by Cody.Albert Corrected Widget Interaction Component to use current impact point instead of last impact point Change 3350945 on 2017/03/16 by Jamie.Dale Gave FConfigFile::FindOrAddSection API linkage Change 3351441 on 2017/03/17 by Michael.Dupuis #jira UE-42843: Fixed Transaction begin/end order issue happening with min slider passing max slider value Add support for multiple selection value display Change 3351558 on 2017/03/17 by Michael.Dupuis #jira UE-42845: Always refresh the detail panel to properly update for selection change, delete, etc. Change 3351657 on 2017/03/17 by Matt.Kuhlenschmidt Adding USD Third Party dependencies Change 3351665 on 2017/03/17 by Matt.Kuhlenschmidt Added experimental USD Importer Plugin This plugin supports basic static mesh importing and scene creation of actors using static meshes Change 3351682 on 2017/03/17 by Matt.Kuhlenschmidt Enabling USD importer in engine test project for automation tests Change 3351749 on 2017/03/17 by Alexis.Matte Make sure the selection proxy is off for the skeletal mesh component. UE4 use the selection outline instead #jira UE-41677 Change 3351831 on 2017/03/17 by Michael.Dupuis #jira UETOOL-1102: Added HSV controls to Color Grading Some look improvement for RGV/HSV Color Grading refactor Group Reset bug fix (relevant only to color grading) Change 3352041 on 2017/03/17 by Matt.Kuhlenschmidt Updated USD plugin whitelisting Change 3352093 on 2017/03/17 by Michael.Dupuis when FREEZERENDERING is called, stop the foliage culling too Change 3352211 on 2017/03/17 by Alexis.Matte Fix the physic asset missing skeleton warning #jira UE-43006 Change 3352336 on 2017/03/17 by Alexis.Matte We now allow a negative W value of the ScreenPoint vector in the ScreenToPixel function. In this case we simply reverse the W value to kept the manipulator direction on the good side. #jira UE-37458 Change 3352947 on 2017/03/17 by Phillip.Kavan #jira UE-42510 - Instanced static mesh transform edits are now reflected in the Blueprint editor's preview scene. Change summary: - Added IPropertyHandle::GetValueBaseAddress() (interface). - Modified IPropertyHandle::NotifyPostChange() to include EPropertyChangeType as an optional input. - Added FPropertyHandleBase::GetValueBaseAddress() (implementation). - Modified FPropertyHandleBase::NotifyPostChange() to include the optional input arg in the property change event. - Modified FPropertyHandleBase::CreatePropertyNameWidget() to clear the override text after temporarily replacing display name/tooltip text for the creation of the SPropertyNameWidget. This was done to allow for transactions to be named according to the property that's being modified. - Modified FMathStructProxyCustomization::OnValueCommitted() to only apply the input value while not interactively editing via spinbox as well as when not post-processing an undo/redo (which can trigger a focus loss). - Modified the FMathStructProxyCustomization::OnEndSliderMovement() delegate to include property handle and proxy value input parameters, as well as to call FlushValues() as part of the implementation. - Modified FlushValues() for each of FMatrixStructCustomization, FTransformStructCustomization and FQuatStructCustomization to explicitly handle both propagation and transaction processing. - Modified UInstancedStaticMeshComponent::UpdateInstanceTransform() to call Modify() prior to applying changes (so that the previous state is recorded when inside a transaction context). - Modified FInstanceStaticMeshSCSEditorCustomization::HandleViewportDrag() to propagate changes to all instances of the ISMC archetype. Known issues: - Using the spinbox to edit instanced mesh transform values in the Blueprint editor will not apply the change to instances in the level editor until after you release the mouse button (i.e. - it will not be shown as a "live" update). Change 3353678 on 2017/03/20 by Michael.Dupuis properly unfreeze the culling of foliage when toggling the freezerendering command Change 3353747 on 2017/03/20 by Matt.Kuhlenschmidt PR #3372: Git plugin: fix update status on directories hotfix (still) slightly broken in master (UE4.16) (Contributed by SRombauts) Change 3353749 on 2017/03/20 by Matt.Kuhlenschmidt PR #3373: Git Plugin: hotfix for regression off Visual Diffs with older version of Git in master (UE4.16) (Contributed by SRombauts) Change 3353754 on 2017/03/20 by Matt.Kuhlenschmidt PR #3390: Allow OBJ imports to change if materials and textures are also imported (Contributed by mmdanggg2) Change 3353909 on 2017/03/20 by Matt.Kuhlenschmidt Fixed actors showing thumbnails in details panel and made a few other tweeks to thumbnail displays in details panels - The color of the accepted type is now shown properly - All object based properties now have thumbnails on by default. Change 3353948 on 2017/03/20 by Nick.Darnell UMG - Updating the background blur widget's upgrade code to use the custom version, and handling older cases that were continuing to generate blur slots, even when already upgraded. Change 3354335 on 2017/03/20 by Nick.Darnell Paragon - Excluding Archetype objects from reporting references, which causes crashes in the fast template mode. Change 3354495 on 2017/03/20 by Nick.Darnell Core - Making it so order that outers are discovered does not matter, initializing the chain of outers if hasn't been created when instancing subobjects. Change 3354578 on 2017/03/20 by Nick.Darnell Slate - There's now a console variable option, Slate.VerifyHitTestVisibility (off by default) which enables additional visibility checks for widgets. Normally this isn't nessesary, but if you're changing the visibility of widgets during a frame, and several hit tests need to be performed that frame there's a chance that a button could be clicked twice in one frame. Enabling this mode will make all hit testing more expensive, so for now it's off by default, but available for licensees that need the extra testing. Change 3354737 on 2017/03/20 by Nick.Darnell Core - Adding a fix to Dev-Editor from that enables objects in the same package being requested to also be loaded. This came about during async streaming callbacks alerting that a requested class was done loading, but there were still other assets in the package 'not loaded' but were available, just needed post load called on them. Change 3355923 on 2017/03/21 by Yannick.Lange VR Editor: - Remove unnecessary cleanup functions. - Initialize with VR Mode and remove SetOwner function, since it shouldn't be possible to reset the VR Mode afterwards. Change 3355959 on 2017/03/21 by Yannick.Lange VR Editor: - Rename VREditorWorldInteraction to VREditorPlacement, to avoid confusion with ViewportWorldInteraction. VREditorPlacement will only handle placing objects from content browser in the VR Mode. - Removed SnapSelectedActorsToGround to VREditorMode. Change 3355965 on 2017/03/21 by Yannick.Lange VR Editor: Forgot to add files to previous submit 3355959. Change 3355977 on 2017/03/21 by Yannick.Lange VR Editor: Remove function to add a new extension with TSubclassOf<UEditorWorldExtension>. Change 3356017 on 2017/03/21 by Yannick.Lange VR Editor: - UI system check owner VRMode. - UI system fix check on VRMode on shutdown. Change 3356028 on 2017/03/21 by Nick.Darnell Slate - SButton now correctly releases mouse capture even if it becomes disabled while pressed, but before 'click' has been fired. #jira UE-42777 Change 3356071 on 2017/03/21 by Yannick.Lange VR Editor: Copy of change 3353663. - Fix having to press once on the landscape to see the visuals for landscape editing. - Fix when sculpting/painting the position wouldn't update. - Fix inverted action for brushes while holding down shift or modifier on motioncontroller. - Cleanup FLandscapeToolInteractorPosition. - Change from 3353663: Use TStrokeClass::UseContinuousApply and TimeSinceLastInteractorMove to decide when to apply ToolStroke on tick. Change 3356180 on 2017/03/21 by Michael.Dupuis Added ShowFlag Foliage Occlusion Bounds Fixed non initialized variable Expose changing Min Occlusion Bounds instead of assuming 6 #rn none Change 3356347 on 2017/03/21 by Nick.Darnell UMG - Introducing a faster CreateWidget. When cooking, the widget compiler now generates a widget template/archetype that is stored in the same package as the generated blueprint class. During compiling we generate a nearly fully initialized widget tree including all sub userwidgets and their trees, hookup all member variables, initialize named slots, setup any animations...etc. This nearly fully constructed widget can be instanced using it as an archetype in the NewObject call, and does not have to use the correspondingly slow StaticDuplicateObject path. There are restrictions on this method, part of the compiling step for widgets now inspects if the instancing would be successful, or if there would be GLEO references after instancing because a user forgot to setup Instanced on a subobject property. Luckily that should be few and far between, all UVisuals (Widgets & Slots) are now DefaultToInstanced, which takes care of the overwhelming cases that demand the instanced flag. Especially given the bulk of cases using BindWidget in native code. UMG - Removing a lot of deprecated functions from 4.8 on UUserWidget. Change 3356357 on 2017/03/21 by Nick.Darnell Build - Fixing some IWYU issues on the incremental build. Change 3356461 on 2017/03/21 by Nick.Darnell Build - Fixing linux build errors. Change 3356468 on 2017/03/21 by Jamie.Dale STextPropertyEditableTextBox now handles empty texts correctly Change 3356916 on 2017/03/21 by Matt.Kuhlenschmidt Fixed a crash when a material render proxy on a preview node is deleted when it is in flight on the render thread #jira UE-40556 Change 3357033 on 2017/03/21 by Alexis.Matte Fix crash when importing file with import commandlet Make sure path are combine properly to avoid crash Add some missing pointer check Make sure the asset are save when there is no source control #jira UE-42334 Change 3357176 on 2017/03/21 by Alex.Delesky #jira UE-42445 - TMaps now support editing the values of structs that act as map keys. TMaps with struct keys will now show the types of their elements in the details panel as well, and structs will now also display numbers next to set elements. Change 3357197 on 2017/03/21 by Alex.Delesky #jira none - Fixing build issue for TMap key struct change. Change 3357205 on 2017/03/21 by Michael.Dupuis Forgot to reset min granularity to 6 from testing Change 3357340 on 2017/03/21 by Arciel.Rekman Mark FMallocAnsi (standard libc malloc) thread-safe on Linux. Change 3357413 on 2017/03/21 by matt.kuhlenschmidt Added '/Game/Effects/Fort_Effects/Materials/Smoke/M_Main_Smoke_Puff.M_Main_Smoke_Puff' to collection 'MattKTest' Upgraded collection 'MattKTest' (was version 1, now version 2) Change 3357505 on 2017/03/21 by Alexis.Matte Fix to avoid changing the CDO of FbxAssetImportData. The UI was saving the Config which was saving the CDO. But already serialized data will be reload badly if the CDO change since we serialize only the diff. #jira UE-42947 Change 3357825 on 2017/03/21 by Arciel.Rekman Clean up the large thread pool on exit. - Seems like the destruction was missed in the original CL 2785131 (12/1/15). - Fixes problems when threads were allocated in memory that is being cleaned up in another place on exit. Change 3358086 on 2017/03/22 by Yannick.Lange VR Editor: - Fix gizmo scaling down when dragging the world. - Fix gizmo scaling down when dragging rotation handle. Change 3358175 on 2017/03/22 by Andrew.Rodham Sequencer: Made ALevelSequenceActor::AdditionalEventReceivers advanced display Change 3358367 on 2017/03/22 by tim.gautier Submitting resaved QAGame assets - Materials, Material Instances, Material Functions and Parameters Change 3358457 on 2017/03/22 by Yannick.Lange VR Editor: Deleting unused UI assets. Change 3358801 on 2017/03/22 by Matt.Kuhlenschmidt Guard against crash if the level editor is shut down when the object system has already been shut down #jira UE-35605 Change 3358897 on 2017/03/22 by matt.barnes Checking in WIP test content for UEQATC-1635 (UMG Navigation) Change 3358976 on 2017/03/22 by Alex.Delesky #jira none - Fixing an issue where ItemPropertyNode could potentially dereference a null property Change 3358987 on 2017/03/22 by Yannick.Lange VR Editor: Fix warning: Can't find file for asset '/Engine/VREditor/UI/VRButtonBackground' while loading ../../../Engine/Content/VREditor/Devices/Vive/VivePreControllerMaterial.uasset. Change 3359067 on 2017/03/22 by Yannick.Lange VR Editor: Fix Radial Menu remains on controller after exiting VR Preview #jira UE-42885 Change 3359179 on 2017/03/22 by Matt.Kuhlenschmidt Fixed "Multiple Values" in Body Setup when single bone has multiple bodies #jira UE-41546 Change 3359626 on 2017/03/22 by Arciel.Rekman Linux: pool OS allocations. - Add a TMemoryPool and TMemoryPoolArray classes that can be used with any type of OS allocator functions. - Add ability to bypass CachedOSPageAllocator for given sizes. Also, corrected the condition on AllocImpl to match one on FreeImpl. - Switch Linux to pool mmap()/munmap() by default (helps 32-bit Linux and also speeds up 64-bit one), except 64-bit servers. - Add a test to TestPAL to check performance and thread safety. - Misc. fixes. Change 3359989 on 2017/03/23 by Andrew.Rodham Sequencer: Binding overrides improvements - Added the ability to override spawnable bindings - Added the ability to override bindings in sub sequences - Deprecated "Get Sequence Bindings" node in favor of "Get Sequence Binding", which is more robust, and provides a better UI/UX for selecting single bindings #jira UE-42470 Change 3360369 on 2017/03/23 by Alexis.Matte Fix the staticmesh conversion from UE4 4.13 to earlier UE4 versions #jira UE-42731 Change 3360556 on 2017/03/23 by Andrew.Rodham Sequencer: Added drag/drop support for binding overrides - You can now drag and drop sequencer object binding nodes into blueprint graphs (to create 'Get Sequence Binding' nodes), and onto binding overrides specified on level sequence actors. Change 3360618 on 2017/03/23 by Arciel.Rekman Make Binned2 work on Mac. - Game/server will use Binned2 by default. Change 3360838 on 2017/03/23 by Nick.Darnell CommonUI - Making the SingleMaterialStyleMID property transient. It had been serialized mistakenly onto several widgets when it appears the intent is to dynamically allocate it upon demand. Change 3360841 on 2017/03/23 by Nick.Darnell UMG - Updating the editor to use DuplicateAndInitializeFromWidgetTree, so that Initialize is properly called when duplicating sub widget trees. Change 3362561 on 2017/03/24 by Matt.Kuhlenschmidt Fixed text outlines being cropped at large sizes #jira UE-42647 Change 3362565 on 2017/03/24 by Matt.Kuhlenschmidt Added automation test for font outlines Change 3362567 on 2017/03/24 by Matt.Kuhlenschmidt Resaved this file to fix 0 engine version warnings Change 3362582 on 2017/03/24 by Yannick.Lange VR Editor: - Fix log warnings when teleporting. - Fix undo/redo when using teleport scaling. - Improved teleport scaling and push/pull input. #jira UE-43214 Change 3362631 on 2017/03/24 by Jamie.Dale Split the monolithic culture concept in UE4 UE4 has historically only supported the concept of a single monolithic "culture" that applied to both text localization and internationalization, as well as all asset localization. Typically the "culture" was set to the "locale" of the OS, however that could be undesirable or incorrect on platforms (such as newer versions of Windows) that have a distinct concept of "language" (for localization) and "locale" (for internationalization). This change splits the concept of "culture" into "language" and "locale", and also adds the concept of "asset groups". The language is now used to work out which localization we should use, and the locale is used to control how numbers/dates/times/etc are formatted within our internationalization library. Asset groups expand on the language used by asset localization and allow you to create a group of asset classes that can be assigned a different culture than the main game language. A typical use-case of this would be creating an "audio" group that could, for example, be set to Japanese while the rest of the game runs in English. If your game doesn't care about the distinction between language and locale, and doesn't need to use asset groups, then you're able to continue to use "culture" as you always have. If, however, you do care about those things, then you'll likely want to avoid using the "culture" directly (as it's now a very aggressive setting that overrides all others), and instead favor using language/locale (games will typically treat these as the same) and asset groups as separate concepts (both in settings, and in your in-game UI). The language or locale for a game can be controlled by settings within the "Internationalization" section of your configs (this would typically be set in your GameUserSettings config, in the same way that "culture" works), eg) [Internationalization] language=fr locale=fr The asset groups for a game can be controlled by settings within the "Internationalization.AssetGroupClasses" and "Internationalization.AssetGroupCultures" sections of your configs (the asset group class definition would typically be set in your DefaultGame config, and the cultures the groups use would typically be set in your GameUserSettings config), eg) [Internationalization.AssetGroupClasses] +Audio=SoundWave +Audio=DialogueWave [Internationalization.AssetGroupCultures] +Audio=ja #jira UE-38418 #jira UE-43014 Change 3362798 on 2017/03/24 by Nick.Darnell UMG - Putting the finishing touches on the hardware cursor system. Can now load them from blueprints, and there are options for setting them up in the project settings. UMG - Deprecating the old properties for software widget cursors. They've been moved into a map that can handle any of the mouse cursors as the enum key, which was always the intent/desire but maps couldn't be used as UProperties then. Change 3362805 on 2017/03/24 by Jamie.Dale PR #3397: Allow empty source to override display string (Contributed by jorgenpt) Change 3363039 on 2017/03/24 by Jamie.Dale Use the pre-scaled font height where possible to avoid an extra multiply Change 3363188 on 2017/03/24 by Joe.Graf Added support for -iterate for content plugins that require path remapping during cook/packaging #CodeReview: matt.kuhlenschmidt #rb: matt.kuhlenschmidt Change 3363355 on 2017/03/24 by Nick.Darnell UMG - Removing the CookAdditionalFiles function in UserInterfaceSettings. Change 3363672 on 2017/03/24 by Matt.Kuhlenschmidt Material thumbnails now respect used particle system sprites flag and show a quad insead of a sphere by default. For this change I added the ability to have per asset type override for the default thumbnail shape and I added a way to reset thumbnails to default. All existinging particle system materials that have not had a custom thumbnail will have to be reloaded and resaved for this to work #jira UE-42410 Change 3363699 on 2017/03/24 by Mike.Fricker VR Editor: Improved extensibility (for mesh editor) - This was merged from CL 3352612 and re-opened for edit before commit - All mesh editor changes were stripped before merging Change 3363784 on 2017/03/24 by Matt.Barnes Adding content for tests following UEQATC-3548 Change 3363872 on 2017/03/24 by Arciel.Rekman Linux: require user to setup clang/clang++ for building hlslcc. - Earlier we tried to handle most common scenarios since libhlslcc needed to be built during the setup. Now that we supply a prebuilt version we don't need to be as user friendly, especially given that the attempts to second guess the compiler started to look complicated. Change 3364089 on 2017/03/24 by Matt.Kuhlenschmidt Fix CIS Change 3364381 on 2017/03/24 by JeanMichel.Dignard UV Packing optim - Use horizontal segments instead of checking texel by texel to fit source chart in layout. - Skip a couple of rasterize by flipping either the X texels or the Y texels when possible. - Keep the best chart raster so that we don't need to reraster when adding the chart to the layout. - Added a lightmap UV version in StaticMesh so that we don't invalidate the lighting cache. Only use the new lightmap UV generation when going through UStaticMesh::Build which invalidates the lighting. Change 3364587 on 2017/03/24 by Arciel.Rekman Fix ordered comparison warning from clang 4.0. Change 3364596 on 2017/03/24 by Arciel.Rekman Linux: fix editor being stuck (hack). - Rebuilt hlslcc in Debug. Change 3364863 on 2017/03/25 by Max.Chen Sequencer: Fixed crash when deactivating a section in sequencer #jira UE-39880 Change 3364864 on 2017/03/25 by Max.Chen Sequencer: Integrating fix from licensee to ensure FVirtualTrackArea::HitTestSection checks the row of the section Change 3364865 on 2017/03/25 by Max.Chen Cine Camera: Default post process depth of field method to CircleDOF and use that setting in UpdateCameraLens. #jira UE-40621 Change 3364866 on 2017/03/25 by Max.Chen GitHub #3183: Conversion to base class is inaccessible. Change 3364869 on 2017/03/25 by Max.Chen Sequencer: Changed the time snapping interval in the toolbar ui so that it no longer additionally updates the sequencer setting. The setting is only used to initialize the time snapping interval of the level sequence. Added translate keys with ctrl and left-right arrows. #jira UE-41009 #jira UE-41210 Change 3364870 on 2017/03/25 by Max.Chen Sequencer: Added translate keys with ctrl and left-right arrows. #jira UE-41210 Change 3364871 on 2017/03/25 by Max.Chen Sequencer: Add level sequence actor customization to open sequencer from the details panel. For matinee parity. #jira UE-41459 Change 3364879 on 2017/03/25 by Max.Chen Sequencer: Duplicate shot should put the duplicate on the next available row, keeping the start/end times the same. #jira UE-41289 Change 3364880 on 2017/03/25 by Max.Chen Sequencer: Opening the API for MovieSceneAudio-related classes along with some minor functionality additions: - Adding _API specifiers to MovieSceneAudioTrack, MovieSceneAudioSection, and FAudioTrackEditor so they can be subclassed in other modules. - Made GetSoundDuration function in MovieSceneAudioTrack.cpp a member function so it's functionaliy could be reused by subclasses. - Adding ability to specify delegates for OnQueueSubtitles, OnAudioFinished, and OnAudioPlaybackPercent in a MovieSceneAudioSection, and have them automatically assigned to any AudioComponents that are played by the MovieSceneAudioTemplate Change 3364884 on 2017/03/25 by Max.Chen Sequencer fbx import - Removed the PostRotation compensation as it was setuped for 3ds max. - On import, add a rotation to camera and light animation keys like we do on export. - Merge the component local transform with the ActorNode transform when exporting only one component that isn't the root component in fbx since we're not creating child nodes in that case. #jira UE-34692 Change 3364885 on 2017/03/25 by Max.Chen Sequence Recorder: Fix crash when clearing properties to record. #jira UE-41873 Change 3364886 on 2017/03/25 by Max.Chen Sequencer: Add error when attempting to add a circularly dependent level sequence #jira UE-22358 Change 3364890 on 2017/03/26 by Max.Chen Sequencer: Added ability to specify a 'notify' function to property instance bindings - When specified, the (parameterless) function will be called after a property is set Change 3364891 on 2017/03/26 by Max.Chen Sequencer: Various fixes to thumbnails - Fixed alpha blending being used when presenting the full screen quad for thumbnails Change 3364892 on 2017/03/26 by Max.Chen Sequencer: PreRoll and PostRoll is now exposed at the section level, for all sections - For the majority of sections this will be unimplemented, but it will allow for some tracks to set up their data ahead of time Change 3364896 on 2017/03/26 by Max.Chen Sequencer: Add segment flags to equality operator for movie scene evaluation segments - This prevents them from being accumulated into adjacent segments of the same index and forced time, but differing flags Change 3364897 on 2017/03/26 by Max.Chen Sequencer: Fixed "Evaluate in preroll" and "Evaluate in Postroll" options - Pre and postroll flags now come through on compiled segments, so the previous manual logic for sub sections is obsolete; we can just use the compiled segment data directly. Change 3364898 on 2017/03/26 by Max.Chen Sequencer: Moved track options to be accessible on all nodes, and operate on all selected tracks Change 3364902 on 2017/03/26 by Max.Chen Sequencer: Ensure evaluation flags are considered when compiling segments from external sequences - This ensures that preroll regions in sub sequences are correctly evaluated when their parent section has preroll - Changed high pass blending to always allow preroll Change 3364903 on 2017/03/26 by Max.Chen Engine: Moved proxy mesh transform update out of camera view computation code - GetCameraView can happen as part of end of frame updates, which will assert if any changes of transform happen during its processing Change 3364908 on 2017/03/26 by Max.Chen Sequencer: Added visualization of pre and postroll on sections Change 3364909 on 2017/03/26 by Max.Chen Sequencer: Prevent MovieSceneCompiler from removing preroll segments Change 3364910 on 2017/03/26 by Max.Chen Sequencer: MediaPlayer PreRoll/PostRoll fix - Handle PreRoll/PostRoll on sub scenes that have a start offset Change 3364922 on 2017/03/26 by Max.Chen Sequencer: Add check for valid property before dereferencing. #jira UE-40951 Change 3364923 on 2017/03/26 by Max.Chen Sequencer: Fix MovieScene preroll so that it seeks to the start correct frame before the preroll. Change 3364924 on 2017/03/26 by Max.Chen Sequencer - change default behavior for pre/post roll evaluation - MovieSceneTracks are NOT evaluated by default Change 3364925 on 2017/03/26 by Max.Chen Sequencer: Shot track rows now consider pre and post roll when being compiled Change 3364926 on 2017/03/26 by Max.Chen Sequencer: Added the ability to define shared execution tokens, identifyable with a unique identifier, and sortable based on a sort order (<=0: before standard tokens, >0: after other tokens) Change 3364927 on 2017/03/26 by Max.Chen Sequencer: Added the ability to selectively restore state for specific anim type IDs for a given object - This allows us to specifically restore one particular type of animation for a given object (ie, transform, skeletal animation control, or motion blur) Change 3364928 on 2017/03/26 by Max.Chen Sequencer: Fixed sub-sub tracks not being present in master sequences - In order to correctly handle preroll in inner-inner sequences, we need to have access to those tracks when compiling intermediate sub sections. By caching off all the inner templates, we can have access to these tracks to check whether they want to be evaluated in pre/post roll in the master sequence Change 3364937 on 2017/03/26 by Max.Chen Sequencer: Update cine camera component debug focus plane on tick, rather than in GetCameraView #jira UE-41332 Change 3364938 on 2017/03/26 by Max.Chen Sequencer: Fix crash inserting a level sequence with an invalid shot. #jira UE-41481 Change 3364940 on 2017/03/26 by Max.Chen Sequencer: Made handling of pre and post roll more consistent between explicit section pre/post roll and pre/post roll inherited from an outer sub section Change 3364942 on 2017/03/26 by Max.Chen Movie Scene Capture: Move EDL generation to setup instead of close to ensure it gets written out when capturing as a separate process. #jira UE-41703 Change 3364943 on 2017/03/26 by Max.Chen Sequencer: Prevent capturing movies in editor while a PIE session is running #jira UE-41399 Change 3364944 on 2017/03/26 by Max.Chen CIS fixes Change 3364951 on 2017/03/26 by Max.Chen Sequencer: Fix autokey not setting a keyframe for slate color with specified color. #jira UE-41645 Change 3364952 on 2017/03/26 by Max.Chen Sequencer: Level sequence frame snapshots now take account of fixed-frame interval offsets, and overlapping shot sections on the same row #jira UE-41684 Change 3364953 on 2017/03/26 by Max.Chen Sequencer: Fix edl so that it doesn't write out when a shot is out of range. Also fixed not writing the EDL with the correct frame rate when exporting from the track. Reworked the cmx EDL so that its encoded in the same edit time space, including a blank slug at the beginning of the edit. #jira UE-41925 Change 3364954 on 2017/03/26 by Max.Chen Sequencer - Allow animating parameters on cascade effect components which aren't owned by an AEmitter. Change 3364955 on 2017/03/26 by Max.Chen Sequencer: Fixed sequencer anim instance not being used in the case where one was requested, but a different anim instance was already set This fixes an issue when rendering in seaprate process, animations that were set up to use the sequencer instance would be controlled using montage animation instead. Change 3364963 on 2017/03/26 by Max.Chen Sequencer: Fix filtering to include child nodes. #jira UE-42068 Change 3364964 on 2017/03/26 by Max.Chen Sequencer: Enable UseCustomStartFrame and UseCustomEndFrame when rendering a single shot from the menu. #jira UE-42021 Change 3364965 on 2017/03/26 by Max.Chen Sequencer: Set the fade color in the track display Change 3364966 on 2017/03/26 by Max.Chen Sequencer: Show actor attached to label in attach section. Change 3364967 on 2017/03/26 by Max.Chen Sequencer: Fix static analysis warnings Change 3364968 on 2017/03/26 by Max.Chen Sequencer: Fix crash on converting to spawnable. The previous implementation purported to allow null objects to set up spawnable defaults but it actually needed to compare the spawned object to the supported type. This new mechanism now allows the spawner to indicate that it accepts null objects and doesn't crash. #jira UE-42069 Change 3364969 on 2017/03/26 by Max.Chen Sequencer: Fixed crash caused by holding onto stale properties through a raw ptr #jira UE-42072 Change 3364977 on 2017/03/26 by Max.Chen Sequencer: Convert FLinearColor to FColor for fade. #jira UE-41990 Change 3364978 on 2017/03/26 by Max.Chen Sequencer: Limit GetAllSections to the sections that actually correspond to the track #jira UE-42167 Change 3364979 on 2017/03/26 by Max.Chen Sequencer: Filter root nodes too #jira UE-42068 Change 3364980 on 2017/03/26 by Max.Chen Sequencer: Filter relevant material parameters #jira UE-40712 Change 3364982 on 2017/03/26 by Max.Chen Sequencer: Remove audio range bounds which clamps to the section bounds (needed for evaluating in pre and post roll) Change 3364983 on 2017/03/26 by Max.Chen Sequencer: Add socket name to attach track section. Change 3364984 on 2017/03/26 by Max.Chen Sequencer: Fix sub track node deletion so that all the sub tracks aren't deleted, only the row being requested. #jira UE-40955 Change 3364988 on 2017/03/26 by Max.Chen Sequencer: Invalidate expired objects when blueprints are compiled. Fix actor references now handles sections that need to have their guids updated (ie. attach tracks). Change 3364994 on 2017/03/26 by Max.Chen Sequencer: Audio waveforms now show peak samples with smoothed RMS in the center - Audio row heights are now also resizable by dragging on the bottom end of the track lane in the track area view Change 3364995 on 2017/03/26 by Max.Chen UMG: Fix crash on undo #jira UE-42210 Change 3365000 on 2017/03/26 by Max.Chen Sequencer: Fix crash from GetCurrentValue. Change 3365001 on 2017/03/26 by Max.Chen Sequencer: Split "Snap to the Dragged Key" option into two options, pressed key and dragged key. #jira UE-42382 Change 3365002 on 2017/03/26 by Max.Chen Sequencer: Downgraded check to ensure for FMovieSceneEvalTemplateBase::GetScriptStructImpl() Change 3365003 on 2017/03/26 by Max.Chen Sequencer: Fixed section template script struct - Because the cpp is not parsed by UHT, the empty template had its parent struct, rather than its own - We now just return null, and handle empty segments correctly in the segment remapper as part of the track compilation Change 3365013 on 2017/03/26 by Max.Chen Sequencer: Added data validation on compiled template loads, and extra guards against misuse of movie scene types Change 3365014 on 2017/03/26 by Max.Chen Sequencer: Sequencer now re-evaluates when starting PIE or Simulate - This can be disabled by disabling "Bind Sequencer to PIE" and "Bind Sequencer to Simulate" in PIE advanced settings Change 3365015 on 2017/03/26 by Max.Chen Sequencer: Fix edl files so that they don't write out empty range shots Change 3365017 on 2017/03/26 by Max.Chen Sequencer: Set max tick rate when in game. #jira UE-41078 Change 3365018 on 2017/03/26 by Max.Chen Sequencer: When finishing a scrub, playback status is now correctly set to stopped rather than stepping - This fixes a hack that was previously in place from the old PostTickRenderFixup that caused it to run that step after scrubbing bad finished. This is no longer necessary, and actually breaks clicking to set the scrub position, as it now means that we step across the entire range between the previous and current time. Change 3365022 on 2017/03/26 by Max.Chen Sequencer: Insert shot now creates a shot at the current time and puts it on the next available row. #jira UE-41480, UE-27699 Change 3365023 on 2017/03/26 by Max.Chen Sequencer: Add loop selection range. If there is no selection range, loop mode is restricted to loop or no loop. #jira UE-42285 Change 3365029 on 2017/03/26 by Max.Chen Sequencer: Add hotkeys to set the selection range to the next and previous shot (page up, page down). Also, added hotkey to set the playback range to all the shots (end) Change 3365030 on 2017/03/26 by Max.Chen Sequencer: Fix particle system restore state so that it gets the proper initial active state of the particle system. #jira UE-42861, UE-42859 Change 3365031 on 2017/03/26 by Max.Chen Sequencer: Snap time when changing time snapping intervals. #jira UE-42590 Change 3365032 on 2017/03/26 by Max.Chen Sequencer: Add When Finished state to sections. By default, sections now restore state. #jira UE-41991, UE-31569 Change 3365033 on 2017/03/26 by Max.Chen #jira UE-42028 "DialogueWave playback calls OnQueueSubtitles multiple times" Only queue subtitles once per wave instance playback Change 3365041 on 2017/03/26 by Max.Chen Sequencer: Subscene hierarchical bias Tracks can now be prioritized based on their subscene hierarhical bias value. Higher bias values take precedence. #jira UE-42078 Change 3365042 on 2017/03/26 by Max.Chen Sequencer: Generic paste menu for master (root) tracks. Change 3365043 on 2017/03/26 by Max.Chen Sequencer: Hierarchical bias for level visibility track #jira UE-43024 Change 3365044 on 2017/03/26 by Max.Chen Sequencer: Prevent throttling on editing keys/sections. Change 3365045 on 2017/03/26 by Max.Chen Sequencer: Set sequencer audio components bIsUISound to false so that they don't continue playing when the game is paused. #jira UE-39391 Change 3365046 on 2017/03/26 by Max.Chen Sequencer: Add missing BindLevelEditorCommands() Change 3365049 on 2017/03/26 by Max.Chen Sequencer: Set tick prerequites for spawnables when they are spawned. #jira UE-43009 Change 3365050 on 2017/03/26 by Max.Chen Sequencer: Jump to Start and End of playback shortcuts. Rewind renamed to Jump to Start. Shortcut - up arrow. Jump to End Shortcut - ctrl up arrow. #jira UE-43224 Change 3365051 on 2017/03/26 by Max.Chen Sequencer: Add last range to playback Change 3365057 on 2017/03/26 by Max.Chen Sequencer: Fix master sequence subscene generation times. Change 3365058 on 2017/03/26 by Max.Chen Sequencer: Fix paste so that it doesn't paste both onto object nodes and master tracks. Change 3365059 on 2017/03/26 by Max.Chen Sequencer: Fix crash pasting audio track. Change 3365060 on 2017/03/26 by Max.Chen Sequencer: Cache player fade state so that restore state will return the values to the pre animated state. #jira UE-43313 Change 3365061 on 2017/03/26 by Max.Chen Sequencer: Filter hidden functions. This fixes a bug where the field of view property for a cinematic camera appears to be animatable. It should be hidden just like it is in the property editor. #jira UE-41461 Change 3365065 on 2017/03/26 by Max.Chen Sequencer: Support component hierarchies when drawing animation paths #jira UE-39500 Change 3365066 on 2017/03/26 by Max.Chen Sequencer: Refine pause behaviour in sequencer to always evaluate the next frame - This ensures that we get a full frame's worth of evaluation so that the paused frame is of a good quality (and avoids us evaluating a tiny range) Change 3365075 on 2017/03/26 by Max.Chen Sequencer: Fix add shot not setting next row. Change 3365076 on 2017/03/26 by Max.Chen Sequencer: Export MovieSceneTrackEditor #jira UE-41641 Change 3365472 on 2017/03/27 by Yannick.Lange VR Editor landscape. Back out changelist 3356071 with new proper fixes. CL 3356071 introduced another bug and it wasn't correct because of removing FLandscapeToolInteractorPosition. This changelist fixes the same and additional bugs for VREditor Landscape mode. - Fix when sculpting/painting the position wouldn't update. - Fix inverted action for brushes while holding down shift or modifier on motioncontroller. - Fix VREditor Landscape Texture Painting does not paint continuously - Fix having to press once on the landscape to see the visuals for landscape editing. - Removed Interactor parameter from BeginTool. #jira UE-42780, UE-42779 Change 3365497 on 2017/03/27 by Matt.Kuhlenschmidt Fix texture importing when an FBX file incorrectly reports absolute path as relative. First we try absolute, then we try fbx reported relative, then we try relative to parent FBX file. Change 3365498 on 2017/03/27 by Matt.Kuhlenschmidt Fix attempting to load a package in FBX scene import when the import path is empty. This greatly reduces FBX scene import time Change 3365504 on 2017/03/27 by Yannick.Lange VR Editor landscape fix ensure in when starting to paint/sculpt. Mousemove on tool should only be called when the tool is actually active, not when hovering. Change 3365551 on 2017/03/27 by Matt.Kuhlenschmidt PR #3425: Added Scrollbar customization to SComboBox (Contributed by Altrue) #jira UE-43338 Change 3365580 on 2017/03/27 by Matt.Kuhlenschmidt PR #3409: Add support for per-Category filtering in Output Log (Contributed by thagberg) Change 3365672 on 2017/03/27 by Andrew.Rodham Sequencer: Preanimated state producers can now produce null tokens - Doing so implies no preanimated state should be saved Change 3365791 on 2017/03/27 by Andrew.Rodham Sequencer: Added Material Parameter Collection track Change 3365806 on 2017/03/27 by Max.Chen Sequencer: Add option to instance sub sequences. #jira UE-43307 Change 3365822 on 2017/03/27 by Matt.Kuhlenschmidt Subdue the output log font color a bit Change 3365846 on 2017/03/27 by Jamie.Dale Added package redirection on load/find Change 3365852 on 2017/03/27 by Jamie.Dale Adding a way to mark a package as no longer missing Change 3365896 on 2017/03/27 by Jamie.Dale Adding GlobalNotification to Slate This is the guts of the GlobalEditorNotification, so it can be used by code that doesn't link to UnrealEd. Change 3365900 on 2017/03/27 by Jamie.Dale Prevent the default cooked sandbox from trying to read non-cooked assets Change 3366550 on 2017/03/27 by Max.Chen Sequencer: Fix case Change 3367301 on 2017/03/28 by Andrew.Rodham Tests: Added test actor with a variety of properties for testing purposes Change 3367303 on 2017/03/28 by Andrew.Rodham Tests: Enabled ActorSequenceEditor plugin in EngineTest project Change 3367304 on 2017/03/28 by Andrew.Rodham Tests: Added several functional testing maps for sequencer - SequencerTest_Properties - tests animating various property types - SequencerTest_Events - tests basic event triggering functionality (including additional event receivers and event ordering) - SequencerTest_BindingOverrides - tests overriding possessable and spawnable bindings, along with bindings in sub sequences - SequencerTest_ActorSequence - tests basic actor sequence functionality Change 3367465 on 2017/03/28 by Max.Chen Sequencer: Set Bind Sequencer to PIE off by default, Bind Sequencer to Simulate remains on by default. Change 3367515 on 2017/03/28 by Matt.Kuhlenschmidt Guard against visual studio accessor crash #jira UE-43368 Change 3368118 on 2017/03/28 by Alexis.Matte Fix the staticmesh conversion from 4.13. There was a error in the LOD loop we where not remapping the LOD 0. #jira UE-42731 Change 3368485 on 2017/03/28 by Alex.Delesky #jira UE-42207 - Updated SVN Binaries for MacOSX 64-bit: - Subversion 1.9.4 -> 1.9.5 - OpenSSL 1.0.2h -> 1.0.2k - BerkeleyDB 5.3.15 -> 6.2.23 - Java 8u101 -> 8u121 - Sqlite 3.13.0 -> 3.17.0 - Serf 1.3.8 -> 1.3.9 - Swig 3.0.10 -> 3.0.12 - ZLib 1.2.9 -> 1.2.11 Change 3368495 on 2017/03/28 by Alex.Delesky #jira UE-42207 - Updated SVN Binaries for Windows 64-bit: - Subversion 1.9.4 -> 1.9.5 - OpenSSL 1.0.2h -> 1.0.2k - BerkeleyDB 5.3.15 -> 6.2.23 - Java 8u101 -> 8u121 - Sqlite 3.13.0 -> 3.17.0 - Serf 1.3.8 -> 1.3.9 - Swig 3.0.10 -> 3.0.12 - ZLib 1.2.9 -> 1.2.11 Change 3368501 on 2017/03/28 by Alex.Delesky #jira UE-42207 - SVN Build instructions for Windows and Mac 64-bit libraries, and license files for Mac libraries Change 3368782 on 2017/03/28 by Nick.Darnell UMG - Improving some logging for fast widget creation. Change 3368826 on 2017/03/28 by Nick.Darnell Slate - Slate Application now maintains seperate tracking for each pointer being utilized for drag drop, so now multiple fingers on multiple widgets can now simultaneously be attempting a drag, however once one of them becomes successful, we clear all state of all other tracking since only one Drag Drop operation is possible at a time. Slate - bFoldTick is now removed from the codebase, we haven't supported the other (non-folded) code path for awhile, so there was no point in maintaining the switch. Slate - Users have noticed issues where the cursor does not appear when changing visibility (through toggling the way the cursor appears). This was rooted in how the OS requested cursor changes, WM_SETCURSOR on Windows only asks for new cursors when the mouse moves, but often cursors change just because mouse capture changes. So now the path has been centralized in Slate Tick to only handle the cursor changes in one place, and several places that need to refresh the cursor state, now set a flag to handle it on next tick. #jira UE-40486 Change 3368917 on 2017/03/28 by Arciel.Rekman Linux: allow building with clang 4.0. Change 3369074 on 2017/03/28 by Nick.Darnell UMG - Fixing some spelling on the hardware cursor tip. UMG - Changed some checks to ensure now that users can input the wrong data from the editor. Adding some clamping to the editor interface so that users are not tempted to enter incorrect hotspot ranges for their cursors. #jira UE-43419 #jira UE-43425 Change 3369137 on 2017/03/28 by Max.Chen Sequencer: Add given master track sets the outer to the movie scene. Change 3369360 on 2017/03/29 by Andrew.Rodham Sequencer: Reconciled 3349194 and 3365041 with animphys merge Change 3369410 on 2017/03/29 by Alexis.Matte Fix the select filename in the FileDialog "Desktop window platform" #jira UE-43319 Change 3369475 on 2017/03/29 by Nick.Darnell PR #3413: UE-37710: Proper scaling of WebBrowserViewport (Contributed by projectgheist) Modified - you can't use the clip rect to decide on how large you should be. #jira UE-37710 Change 3369775 on 2017/03/29 by Max.Chen ControlRig: Fix crash on exit. #jira UE-43411 Change 3370466 on 2017/03/29 by Nick.Darnell AsyncLoading - Adding USoundBase to the set of CDOs that have a particular fixed boot order. StreamableManager - Only showing the duplicate load error in debug builds, it's not a real error. #jira UE-43409 Change 3370570 on 2017/03/29 by Nick.Darnell Slate - Fixing a bug with ZOrder being discarded on the SOverlay Slot. #jira UE-43431 Change 3370644 on 2017/03/29 by Andrew.Rodham Temporarily disabling sequencer functional test "Event Position" Change 3370713 on 2017/03/29 by Nick.Darnell PR #3399: UE-42831: Anchor text ignores scale (Contributed by projectgheist) #jira UE-43156 #jira UE-42831 Change 3371243 on 2017/03/30 by Arciel.Rekman Linux: scale OS allocation pool to match memory size. - Number of distinct VMAs (contiguous virtual memory areas, i.e. mappings done via mmap()) is rather low (~64k) and we can run out of VMAs earlier than we will run into available memory. Larger pool makes this less likely. Change 3371262 on 2017/03/30 by Arciel.Rekman Linux: fix custom present. - PR #3383 contributed by yaakuro. Change 3371301 on 2017/03/30 by Arciel.Rekman Linux: fix copying to a non-existent directory during Setup. Change 3371307 on 2017/03/30 by Andrew.Rodham Editor: Added "Resave All" functionality to content browser folders Change 3371364 on 2017/03/30 by Andrew.Rodham Sequencer: Level streaming improvements - Tick prerequisites are now set up when any object binding is resolved, not at the start of the sequence. This unifies code between spawnables and possessables, and allows tick prerequisites to still be set up when levels are streamed in - Actor references are no longer resolved when a PIEInstance is specified on the package, and it cannot be fixed up to a different ptr than the original. This stops us resolving actors from one world into another. - Fixed level visibility request getting cleared when the cumulative total was 0 (it should only do this if there are no requests left) #jira UE-43225 Change 3371365 on 2017/03/30 by Andrew.Rodham Tests: Sequencer level streaming tests Change 3371493 on 2017/03/30 by Nick.Darnell PR #3408: UE-19980: Added FCanExecuteAction to prevent keyboard shortcut. (Contributed by projectgheist) Change 3371524 on 2017/03/30 by Nick.Darnell PR #2938: Minor UMG code fixups (Contributed by projectgheist), accepted most of the changes. Change 3371545 on 2017/03/30 by Nick.Darnell UMG - Fixing some minor issues with WidgetComponents not properly limiting input depending on what is supported with reguard to hardware input. Change 3371576 on 2017/03/30 by Matt.Kuhlenschmidt PR #3433: Fix for the Standalone D3D Slate Shader using the wrong value for the. (Contributed by megasjay) Change 3371590 on 2017/03/30 by Nick.Darnell UMG - Fixing widget alignment in the viewport when using the widget component with screen space, with an aspect ratio lock on the player's camera. The widgets should now show up in the right locations. Change 3371625 on 2017/03/30 by Alexis.Matte Fix the merge tool material id assignment #jira UE-43246 Change 3371666 on 2017/03/30 by Nick.Darnell UMG - Reducing logging, don't need to tell everyone all the time we're using the fast widget path. Change 3371687 on 2017/03/30 by Arciel.Rekman Linux: switch to new managed filehandles. Change 3371778 on 2017/03/30 by Matt.Kuhlenschmidt Fixed the animation to play property on skeletal meshes being too small to read anything #jira UE-43327 Change 3372709 on 2017/03/30 by Matt.Kuhlenschmidt Made slate loading widget / movie play back more thread safe by eliminating Slate applicaiton or the main window from being ticked directly on another thread. We now have a separate virtual window for ticking and painting the loading screen widgets in isolation Change 3372757 on 2017/03/30 by Nick.Darnell Paragon - Fixing cases where people were using PostLoad() where really it should have done when the widget was constructed or created. This is a side effect of the FastWidget creation path 'PostLoad()' is not called on newly constructed widgets, though it did before because part of duplicating the WidgetTree, required serialization, which would have called it. Change 3372777 on 2017/03/30 by Nick.Darnell Fixing fast widget template cooking so that it does the same logic as Initialize did, centralizing the code to find the first widgetblueprintclass. Change 3372949 on 2017/03/30 by Nick.Darnell UMG - Fixing some cooking crashes for the super class. Change 3373139 on 2017/03/30 by Jeff.Farris Added TimingPolicy option to WidgetComponent, so widgets can optionally tick in game time rather than real time. (Copy of CL 3279699 from Robo Recall to Dev-Editor) Change 3373235 on 2017/03/30 by Nick.Darnell Fixing a cooking issue, accidentally removed code that was properly loading some needed assets. Change 3373266 on 2017/03/30 by Matt.Kuhlenschmidt Made GetMoviePlayer thread safe. Simply accessing GetMoviePlayer is safe now as is checking IsLoadingFinished. However, most of the functions on movie player are only safe from the game thread! Change 3374026 on 2017/03/31 by Andrew.Rodham Sequencer: Moved evaluation group registration to IMovieSceneModule #jira UE-43420 Change 3374060 on 2017/03/31 by Yannick.Lange VR Editor: Collision on motion controllers in simulate. Change 3374185 on 2017/03/31 by Nick.Darnell Attempting to fix the build. Change 3374232 on 2017/03/31 by Max.Chen Sequencer: Fix audio not playing in editor #jira UE-43514 Change 3374322 on 2017/03/31 by Nick.Darnell UMG - SafeZone widget now has comments, and useful tips. Using the debugging console commands now trigger the broadcast that will cause controls like the SSafeZone widget to resample the display metrics to learn the new safezone ratio. Change 3374424 on 2017/03/31 by Max.Chen Updated test content so that the door animation is now set to "Keep State" for the When Finished property. #jira UE-43519 Change 3374447 on 2017/03/31 by Max.Chen Sequencer: Notify streaming system prior to camera cuts By default, this does nothing. Users will need to enable the preroll section of camera cuts for the streaming system to activate prior to cutting to cameras. #jira UE-42406 Change 3374571 on 2017/03/31 by Andrew.Rodham Sequencer: Unified global and object-bound pre animated state, added InitializeObjectForAnimation method to state producers Change 3374578 on 2017/03/31 by Andrew.Rodham Sequencer: Added unit tests for pre-animated state Change 3374592 on 2017/03/31 by Max.Chen Color Customization: Set curve color names. #jira UE-43405 Change 3374596 on 2017/03/31 by Andrew.Rodham Corrected documentation comment Change 3374671 on 2017/03/31 by Matt.Kuhlenschmidt Fix movie scene audio track not compiling outside of editor Change 3374689 on 2017/03/31 by Matt.Kuhlenschmidt Remove the slate thread masquerading as the game thread in IsInGameThread Change 3374730 on 2017/03/31 by Max.Chen Sequencer: Add check for null loaded level. Change 3374732 on 2017/03/31 by Max.Chen Sequencer: Remove null tracks on postload. Change 3374737 on 2017/03/31 by tim.gautier - Updated UMG_Optimization: Adjusted Variable names to resolve compile errors due to Widget Components and Variables sharing names (cannot be done with new compile improvements) - Set Level Blueprint for TM-UMG back to AllPalettes Change 3374987 on 2017/03/31 by Nick.Darnell UMG - Introducing a way to inform the widgets more information about the designer. There's now a DesignerChanged event sent to all design time widgets letting them know things like the current screen size and DPI scale. UMG - The SafeZone widget will now show the correct safe zone amount if you use the safezone command line options, which are now documented in the comment for the USafeZone class. Change 3375599 on 2017/03/31 by Max.Chen Cine Camera: Update camera debug plane when property changes, rather rely soley on tick. This fixes a bug where sliding the value on the details panel doesn't update the debug plane in the viewport simultaneously. #jira UE-43543 Change 3375601 on 2017/03/31 by Arciel.Rekman Linux: switch to v9 cross-toolchain. Change 3375856 on 2017/04/01 by Andrew.Rodham Sequencer: Fixed 'formal parameter with requested alignment of 16 won't be aligned' Change 3375870 on 2017/04/01 by Andrew.Rodham Sequencer: Fixed explicit template instantiation ocurring before the complete definition of type's members - This resulted such members not being instantiated (and hence exported) when compiled with clang Change 3376114 on 2017/04/02 by Arciel.Rekman Linux: make source code accessor aware of clang 3.9 and 4.0. Change 3376138 on 2017/04/02 by Arciel.Rekman Linux: add clang to fedora deps (UE-42123). - PR #3273 submitted by cpyarger. Change 3376159 on 2017/04/02 by Arciel.Rekman Linux: some support for building on Debian Sid or Stretch (UE-35841). - Basd on PR #2790 by haimat. Change 3376163 on 2017/04/02 by Arciel.Rekman Linux: install latest clang on Arch (UE-42341). - This undoes PR #1905. - PR #2897 by SiebenCorgie. - PR #3302 by awesomeness872. - PR #3341 by patrickelectric. Change 3376167 on 2017/04/02 by Arciel.Rekman Add FreeBSD mem info (courtesy support for the out of tree build) (UE-42994). - PR #3378 by mdcasey. Change 3376168 on 2017/04/02 by Arciel.Rekman Linux: fixed VHACD Makefile on a case sensitive fs (UE-42905). - PR #3381 by slonopotamus. Change 3376177 on 2017/04/02 by Arciel.Rekman SlateDlg: case-insensitive comparison of filter extensions (UE-39477). - PR #3019 by aknarts. Change 3376178 on 2017/04/02 by Arciel.Rekman WebRTC: only x86_64 version exists for Linux. Change 3376245 on 2017/04/03 by Andrew.Rodham Sequencer: Re-enabled event order test Change 3376339 on 2017/04/03 by Matt.Kuhlenschmidt Fix crash during loading movie playback on DX12 due to not ever cleaning up old resources #jira UE-27026 Change 3376481 on 2017/04/03 by Alex.Delesky #jira UE-43495 - TMaps will now support customized key properties correctly. Change 3376741 on 2017/04/03 by Matt.Kuhlenschmidt Fix crash flushing font cache when loading a movie. This is no longer save on the slate movie thread #jira UE-43567 Change 3376763 on 2017/04/03 by Shaun.Kime Material Reroute nodes do not work for Texture Object Parameters as they return a base output type. Modified logic to now support this node type. #jira UE-43521 Change 3376836 on 2017/04/03 by Jamie.Dale Fixed text format history being clobbered by reference collection #jira UE-37513 Change 3376852 on 2017/04/03 by Nick.Darnell Paragon - Found a case where a user had marked a BindWidget property as Transient which prevents serializing the property binding now for widget fast mode. #jira UE-43564 Change 3377207 on 2017/04/03 by Jamie.Dale Desktop platform directory pickers are expected to return absolute paths File pickers return relative paths though, and we should make this consistent at some point. #jira UE-43588 Change 3377214 on 2017/04/03 by Matt.Kuhlenschmidt Fix movie player shutdown crash in non-editor builds #jira UE-43577 Change 3377299 on 2017/04/03 by Michael.Dupuis #jira UE-43586 : properties should be non transactional #jira UE-43559 Change 3378333 on 2017/04/04 by Michael.Dupuis #jira UE-43585 #jira UE-43586 Revert back to purple color Change 3378633 on 2017/04/04 by Matt.Kuhlenschmidt Resaved this asset to avoid zero engine version warnings Change 3378958 on 2017/04/04 by Nick.Darnell Automation - Fixing the race condition to finish compiling shaders on screenshots for UI. [CL 3379345 by Matt Kuhlenschmidt in Main branch]
2017-04-04 15:35:21 -04:00
// Add the snapped amount onto the delta
DeltaTime += SnappedTime->Snapped - SnappedTime->Original;
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
/********************************************************************/
EMovieSceneSectionMovedResult SectionMovedResult(EMovieSceneSectionMovedResult::None);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
if (bIsDilating)
{
for(FPreDragSectionData Data: PreDragSectionData)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// It is only valid to dilate a fixed bound. Tracks can have mixed bounds types (ie: infinite upper, closed lower)
check(bDraggingByEnd ? Data.InitialRange.GetUpperBound().IsClosed() : Data.InitialRange.GetLowerBound().IsClosed());
FFrameNumber StartPosition = bDraggingByEnd ? UE::MovieScene::DiscreteExclusiveUpper(Data.InitialRange) : UE::MovieScene::DiscreteInclusiveLower(Data.InitialRange);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
FFrameNumber DilationOrigin;
if (bDraggingByEnd)
{
if (Data.InitialRange.GetLowerBound().IsClosed())
{
DilationOrigin = UE::MovieScene::DiscreteInclusiveLower(Data.InitialRange);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
else
{
// We're trying to dilate a track that has an infinite lower bound as its origin.
// Sections already compute an effective range for UMG's auto-playback range, so we'll use that to have it handle finding either the
// uppermost key or the overall length of the section.
DilationOrigin = Data.MovieSection->ComputeEffectiveRange().GetLowerBoundValue();
}
}
else
{
if (Data.InitialRange.GetUpperBound().IsClosed())
{
DilationOrigin = UE::MovieScene::DiscreteExclusiveUpper(Data.InitialRange);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
else
{
// We're trying to dilate a track that has an infinite upper bound as its origin.
DilationOrigin = Data.MovieSection->ComputeEffectiveRange().GetUpperBoundValue();
}
}
// Because we can have an one-sided infinite data range, we calculate a new range using our clamped values.
TRange<FFrameNumber> DataRange;
DataRange.SetLowerBound(TRangeBound<FFrameNumber>(DilationOrigin < StartPosition ? DilationOrigin : StartPosition));
DataRange.SetUpperBound(TRangeBound<FFrameNumber>(DilationOrigin > StartPosition ? DilationOrigin : StartPosition));
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameNumber NewPosition = bDraggingByEnd ? FMath::Max(StartPosition + DeltaTime, DilationOrigin) : FMath::Min(StartPosition + DeltaTime, DilationOrigin);
float DilationFactor = FMath::Abs(NewPosition.Value - DilationOrigin.Value) / float(UE::MovieScene::DiscreteSize(DataRange));
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
if (bDraggingByEnd)
{
if (Data.SequencerSection)
{
Data.SequencerSection->DilateSection(TRange<FFrameNumber>(Data.MovieSection->GetRange().GetLowerBound(), TRangeBound<FFrameNumber>::Exclusive(NewPosition)), DilationFactor);
}
else
{
Data.MovieSection->SetRange(TRange<FFrameNumber>(Data.MovieSection->GetRange().GetLowerBound(), TRangeBound<FFrameNumber>::Exclusive(NewPosition)));
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
}
else
{
if (Data.SequencerSection)
{
Data.SequencerSection->DilateSection(TRange<FFrameNumber>(TRangeBound<FFrameNumber>::Inclusive(NewPosition), Data.MovieSection->GetRange().GetUpperBound()), DilationFactor);
}
else
{
Data.MovieSection->SetRange(TRange<FFrameNumber>(TRangeBound<FFrameNumber>::Inclusive(NewPosition), Data.MovieSection->GetRange().GetUpperBound()));
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
TArray<FFrameNumber> NewFrameNumbers;
for (const FPreDragChannelData& ChannelData : Data.Channels)
{
// Compute new frame times for each key
NewFrameNumbers.Reset(ChannelData.FrameNumbers.Num());
for (FFrameNumber StartFrame : ChannelData.FrameNumbers)
{
FFrameNumber NewTime = DilationOrigin + FFrameNumber(FMath::FloorToInt((StartFrame - DilationOrigin).Value * DilationFactor));
NewFrameNumbers.Add(NewTime);
}
// Apply the key times to the channel
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #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]
2018-05-09 10:24:50 -04:00
FMovieSceneChannel* Channel = ChannelData.Channel.Get();
if (Channel)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4059031) #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]
2018-05-09 10:24:50 -04:00
Channel->SetKeyTimes(ChannelData.Handles, NewFrameNumbers);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
}
}
}
}
/********************************************************************/
else for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : Sections)
{
UMovieSceneSection* Section = WeakSection.Get();
TOptional<FSectionHandle> SectionHandle = Sequencer.GetNodeTree()->GetSectionHandle(Section);
if (!SectionHandle)
{
continue;
}
TSharedRef<ISequencerSection> SectionInterface = SectionHandle->GetSectionInterface();
FFrameNumber NewTime = SectionInitTimes[Section] + DeltaTime;
if( bDraggingByEnd )
{
FFrameNumber MinFrame = Section->HasStartFrame() ? Section->GetInclusiveStartFrame() : TNumericLimits<int32>::Lowest();
if ( Settings->GetIsSnapEnabled() && Settings->GetSnapSectionTimesToInterval())
{
int32 IntervalSnapThreshold = FMath::RoundToInt( ( TickResolution / DisplayRate ).AsDecimal() );
MinFrame = MinFrame + IntervalSnapThreshold;
}
// Dragging the end of a section
// Ensure we aren't shrinking past the start time
NewTime = FMath::Max( NewTime, MinFrame );
if (bIsSlipping)
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
{
SectionInterface->SlipSection( NewTime );
Copying //UE4/Dev-Sequencer to //UE4/Main ========================== MAJOR FEATURES + CHANGES ========================== Change 2875025 on 2016/02/20 by Andrew.Rodham Sequencer: Cinematic viewport improvements - Added optional letterbox overlay (defaults to 2.35:1) - Added ability to change safe frame colors - Added selected tracks' keys to the transport range - Added buttons for jumping between selected tracks' keyframes on the transport controls - Removed black padding around the viewport where possible - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently - Added playback range to the viewport frame numbers - All frame numbers are now spin boxes #jira UE-26429 Change 2875026 on 2016/02/20 by Thomas.Sarkanen Added console commands for recording sequences Changed plugin to a developer plugin so we can load it when the editor is in -game mode. Added Exec commands. Added some more logging to help diagnose problems when using commands. Added loading/saving of config for recorder settings (stored in Editor.ini). Also disabled controls in recorder window when recording. Added auto-saving of assets when in non-editor modes. Moved animation settings from UnrealEd to Engine module. Change 2875036 on 2016/02/20 by Max.Chen Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors. #jira UE-26960 Change 2875046 on 2016/02/20 by Max.Preussner Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene. #jira UE-26249 Change 2875047 on 2016/02/20 by Max.Chen Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors Change 2877138 on 2016/02/23 by Max.Chen Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes. Change 2877143 on 2016/02/23 by Thomas.Sarkanen Added new math function: WindRelativeAnglesDegrees Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips. Good for winding rotations previously expressed as quaternions into a euler-angle representation. Change 2877147 on 2016/02/23 by Thomas.Sarkanen Added the ability to import sequencer transforms from the root node of an animation sequence Intended for use after re-importing animations from DCC tools. Available in the right-click menu for transform tracks. Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks. Change 2877163 on 2016/02/23 by Max.Chen Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false. Change 2877165 on 2016/02/23 by Max.Preussner Sequencer: Drawing vertical position lines when dragging keys Change 2878748 on 2016/02/23 by Max.Chen Curve Editor: Switch curve type to user when flatting or straightening tangents. #jira UE-27277 Change 2878799 on 2016/02/23 by Frank.Fella Sequencer - Add folders support to the outliner. Change 2880769 on 2016/02/24 by Andrew.Rodham Sequencer: Added ability to override runtime spawnable ownership in sequencer - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)" - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range #jira UE-27205 Change 2880770 on 2016/02/24 by Thomas.Sarkanen Sequencer: Added countdown and recording indicator display when recording Also fixed extra popups added post-PIE when animation recordings auto shutdown. Change 2880782 on 2016/02/24 by Max.Chen Sequencer: Snapping now also uses the current time as a possible snap time. #jira UE-26306 Change 2880793 on 2016/02/24 by Max.Chen Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button. Change 2880812 on 2016/02/24 by Max.Chen Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time. #jira UE-26306 Change 2881624 on 2016/02/25 by Andrew.Rodham Changing shader version GUID to fix corrupt shaders in ddc Change 2882408 on 2016/02/25 by Thomas.Sarkanen Asset/actors stored in TLazyObjectPtrs can now reference game content from engine This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain. Change 2882409 on 2016/02/25 by Thomas.Sarkanen [CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00
}
else
{
SectionInterface->ResizeSection( SSRM_TrailingEdge, NewTime );
}
}
else
{
FFrameNumber MaxFrame = Section->HasEndFrame() ? Section->GetExclusiveEndFrame()-1 : TNumericLimits<int32>::Max();
if ( Settings->GetIsSnapEnabled() && Settings->GetSnapSectionTimesToInterval())
{
int32 IntervalSnapThreshold = FMath::RoundToInt( ( TickResolution / DisplayRate ).AsDecimal() );
MaxFrame = MaxFrame - IntervalSnapThreshold;
}
// Dragging the start of a section
// Ensure we arent expanding past the end time
NewTime = FMath::Min( NewTime, MaxFrame );
if (bIsSlipping)
{
SectionInterface->SlipSection( NewTime );
}
else
{
SectionInterface->ResizeSection( SSRM_LeadingEdge, NewTime );
}
}
UMovieSceneTrack* OuterTrack = Section->GetTypedOuter<UMovieSceneTrack>();
if (OuterTrack)
{
OuterTrack->Modify();
SectionMovedResult |= OuterTrack->OnSectionMoved(*Section, EPropertyChangeType::Interactive);
}
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
{
TSet<UMovieSceneTrack*> Tracks;
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
{
if (UMovieSceneSection* Section = WeakSection.Get())
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
{
if (UMovieSceneTrack* Track = Section->GetTypedOuter<UMovieSceneTrack>())
{
Tracks.Add(Track);
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
}
for (UMovieSceneTrack* Track : Tracks)
{
Track->UpdateEasing();
}
}
if (SectionMovedResult != EMovieSceneSectionMovedResult::None)
{
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::MovieSceneStructureItemsChanged);
}
else
{
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::TrackValueChanged);
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
void FDuplicateKeysAndSections::OnBeginDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
// Begin an editor transaction and mark the section as transactional so it's state will be saved
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
BeginTransaction( Sections, NSLOCTEXT("Sequencer", "DuplicateKeysTransaction", "Duplicate Keys or Sections") );
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Call Modify on all of the sections that own keys we have selected so that when we duplicate keys we can restore them properly.
ModifyNonSelectedSections();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// We're going to take our current selection and make a duplicate of each item in it and leave those items behind.
// This means our existing selection will still refer to the same keys, so we're duplicating and moving the originals.
// This saves us from modifying the user's selection when duplicating. We can't move the duplicates as we can't get
// section handles for sections until the tree is rebuilt.
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
TArray<FKeyHandle> NewKeyHandles;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
NewKeyHandles.SetNumZeroed(KeysAsArray.Num());
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Duplicate our keys into the NewKeyHandles array. Duplicating keys automatically updates their sections,
// so we don't need to actually use the new key handles.
DuplicateKeys(KeysAsArray, NewKeyHandles);
// Duplicate our selections as well.
bool bDelayedStructureRebuild = false;
for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
{
UMovieSceneSection* SectionToDuplicate = WeakSection.Get();
if (!SectionToDuplicate)
{
continue;
}
UMovieSceneSection* DuplicatedSection = DuplicateObject<UMovieSceneSection>(SectionToDuplicate, SectionToDuplicate->GetOuter());
UMovieSceneTrack* OwningTrack = SectionToDuplicate->GetTypedOuter<UMovieSceneTrack>();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
OwningTrack->Modify();
OwningTrack->AddSection(*DuplicatedSection);
bDelayedStructureRebuild = true;
}
// Now start the move drag
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
FMoveKeysAndSections::OnBeginDrag(MouseEvent, LocalMousePos, VirtualTrackArea);
if (bDelayedStructureRebuild)
{
// We need to rebuild the track layout now so that the newly added section shows up, otherwise it won't show up until a section is vertically rearranged.
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::MovieSceneStructureItemsChanged);
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
void FDuplicateKeysAndSections::OnEndDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
FMoveKeysAndSections::OnEndDrag(MouseEvent, LocalMousePos, VirtualTrackArea);
EndTransaction();
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340) #lockdown Nick.Penwarden #rb none ========================== MAJOR FEATURES + CHANGES ========================== Change 3209340 on 2016/11/23 by Ben.Marsh Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h. Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms. * Every header now includes everything it needs to compile. * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first. * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h. * Every .cpp file includes its matching .h file first. * This helps validate that each header is including everything it needs to compile. * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more. * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there. * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible. * No engine code explicitly includes a precompiled header any more. * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies. * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files. Tool used to generate this transform is at Engine\Source\Programs\IncludeTool. [CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
FManipulateSectionEasing::FManipulateSectionEasing( FSequencer& InSequencer, TWeakObjectPtr<UMovieSceneSection> InSection, bool _bEaseIn )
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
: FEditToolDragOperation(InSequencer)
, WeakSection(InSection)
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
, bEaseIn(_bEaseIn)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
, MouseDownTime(0)
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
{
}
void FManipulateSectionEasing::OnBeginDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
Transaction.Reset( new FScopedTransaction(NSLOCTEXT("Sequencer", "DragSectionEasing", "Change Section Easing")) );
UMovieSceneSection* Section = WeakSection.Get();
if (Section == nullptr)
{
return;
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
Section->SetFlags( RF_Transactional );
Section->Modify();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
MouseDownTime = VirtualTrackArea.PixelToFrame(LocalMousePos.X);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
if (Settings->GetSnapSectionTimesToSections())
{
// Construct a snap field of all section bounds
ISequencerSnapCandidate SnapCandidates;
SnapField = FSequencerSnapField(Sequencer, SnapCandidates, ESequencerEntity::Section);
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
InitValue = bEaseIn ? Section->Easing.GetEaseInDuration() : Section->Easing.GetEaseOutDuration();
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
void FManipulateSectionEasing::OnDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
ESequencerScrubberStyle ScrubStyle = Sequencer.GetScrubStyle();
FFrameRate TickResolution = Sequencer.GetFocusedTickResolution();
FFrameRate DisplayRate = Sequencer.GetFocusedDisplayRate();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
// Convert the current mouse position to a time
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameTime DeltaTime = VirtualTrackArea.PixelToFrame(LocalMousePos.X) - MouseDownTime;
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
UMovieSceneSection* Section = WeakSection.Get();
if (Section == nullptr)
{
return;
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
// Snapping
if (Settings->GetIsSnapEnabled())
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
TArray<FFrameNumber> SnapTimes;
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
if (bEaseIn)
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameNumber DesiredTime = (DeltaTime + Section->GetInclusiveStartFrame() + InitValue.Get(0)).RoundToFrame();
SnapTimes.Add(DesiredTime);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
else
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
FFrameNumber DesiredTime = (Section->GetExclusiveEndFrame() - InitValue.Get(0) + DeltaTime).RoundToFrame();
SnapTimes.Add(DesiredTime);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
float SnapThresholdPx = VirtualTrackArea.PixelToSeconds(PixelSnapWidth) - VirtualTrackArea.PixelToSeconds(0.f);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
int32 SnapThreshold = ( SnapThresholdPx * TickResolution ).FloorToFrame().Value;
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
TOptional<FSequencerSnapField::FSnapResult> SnappedTime;
if (Settings->GetSnapSectionTimesToSections())
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
SnappedTime = SnapField->Snap(SnapTimes, SnapThreshold);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
if (!SnappedTime.IsSet() && Settings->GetSnapSectionTimesToInterval())
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
int32 IntervalSnapThreshold = FMath::RoundToInt( ( TickResolution / DisplayRate ).AsDecimal() );
SnappedTime = SnapToInterval(SnapTimes, IntervalSnapThreshold, TickResolution, DisplayRate, ScrubStyle);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
if (SnappedTime.IsSet())
{
// Add the snapped amount onto the delta
DeltaTime += SnappedTime->Snapped - SnappedTime->Original;
}
}
const int32 MaxEasingDuration = Section->HasStartFrame() && Section->HasEndFrame() ? UE::MovieScene::DiscreteSize(Section->GetRange()) : TNumericLimits<int32>::Max() / 2;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
if (bEaseIn)
{
Section->Easing.bManualEaseIn = true;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
Section->Easing.ManualEaseInDuration = FMath::Clamp(InitValue.Get(0) + DeltaTime.RoundToFrame().Value, 0, MaxEasingDuration);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
else
{
Section->Easing.bManualEaseOut = true;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 3946692) #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]
2018-03-14 22:09:33 -04:00
Section->Easing.ManualEaseOutDuration = FMath::Clamp(InitValue.Get(0) - DeltaTime.RoundToFrame().Value, 0, MaxEasingDuration);
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3497164) #lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3433074 by Matt.Kuhlenschmidt Fix crash when clicking on certian tutorial blueprints. #jira UE-44593 Change 3433075 by Matt.Kuhlenschmidt Remove hittest grid log spam. The underlying problem causing this has been fixed Change 3433077 by Matt.Kuhlenschmidt Fix lighting becoming unbuilt when mesh painting #jira UE-44837 Change 3433081 by Matt.Kuhlenschmidt PR #3553: Crashfix for static array properties (Contributed by Pierdek) Change 3433104 by Alexis.Matte Make sure re-import skeletal mesh follow the import morph option #jira UE-42846 Change 3434825 by Matt.Kuhlenschmidt Fix crash when GC happens while the vr editor radial menu is open. Change 3434831 by Matt.Kuhlenschmidt Added missing file Change 3434868 by Shaun.Kime If you have a reroute node between a Material Function texture input and its usage, the parent material will fail to resolve the reroute node. #jira ue-44670 Change 3434998 by Alexis.Matte Meshes editors material/section panel are now fully transactional - Staticmesh editor: section material slot, section cast shadow, section collision, material slot instance, material slot name - Skeletal mesh editor: material slot instance, material slot name Also fix some transaction description #jira UE-44462 Change 3435195 by Jamie.Dale Fixed incorrect handling of some LTR scripts that require shaping These scripts need to go through HarfBuzz, and this also fixes a case where HarfBuzz wasn't applying font scale correctly. #jira UE-44767 Change 3435199 by Jamie.Dale Fixed some crashes/artifacts with bidirectional text It was possible for a line to compute an incorrect range, which could cause crashes or other highlighting issues. The highlighting logic has also been updated as the old code didn't handle all bidirectional cases correctly. Change 3435200 by Jamie.Dale Fixed a grapheme cluster metrics issue in the font editor viewport The viewport also now respects the default shaping method CVar. Change 3435771 by Alexis.Matte Fix degenerated bounds calculation for skeletalmesh when the skeleton is remove from a re-import (PhysicAsset API change, adding 1 function) #jira UE-44609 Change 3436856 by Jamie.Dale Added some missing Unicode block ranges Change 3436914 by Jamie.Dale Adding some missing combining character ranges to the text shaper Change 3436923 by Alexis.Matte PR #3463: Get bounds for all triangles, not just the first one. WedgeIndex was . (Contributed by DaveC79) #jira UE-43764 Change 3436948 by Jamie.Dale Updated the Portal to use the predefined Unicode block ranges Change 3436961 by Max.Chen Sequencer: Show camera shake/anim track menus even if there aren't any assets. Change 3437244 by Max.Chen Sequencer: Clear locked cameras when releasing Sequencer. #jira UE-44967 Change 3437515 by Arciel.Rekman UBT: improvements for LocalExecutor. - Larger number of parallel jobs on 16GB+ machines. - Use WaitForExit() instead of polling. - Tested on Linux and Mac. Change 3437629 by Matt.Kuhlenschmidt Improve asset import data display in static and skeletal meshes Change 3438047 by Arciel.Rekman Fix overlapping ranges being passed to memcpy(). Change 3438822 by Yannick.Lange ViewportInteraction: Move gizmo handle files to make them private. Change 3438906 by Matt.Kuhlenschmidt PR #3556: Git Plugin: fix new option "init Git LFS" that make assets read-only (master/UE4.17) (Contributed by SRombauts) Change 3438907 by Matt.Kuhlenschmidt PR #3565: add -quality option to buildlighing commandlet (Contributed by kayama-shift) Change 3438908 by Matt.Kuhlenschmidt PR #3558: UE-44862: Always update SColorPicker color on OK button (Contributed by projectgheist) Change 3439393 by Matt.Kuhlenschmidt Force highest LOD for highres screenshots Change 3439819 by Matt.Kuhlenschmidt Turned FAssetData into a struct for some upcoming script exposure of FAssetData Change 3439949 by Arciel.Rekman Fixed selection logic for the UE4_LINUX_USE_LIBCXX environment variable. - Allows disabling libc++ by setting the variable to 0. - Pull request #3576 contributed by jared-improbable. Change 3441078 by Jamie.Dale The culture/language/locale console commands are now available in all build configs Change 3441109 by Jamie.Dale Text containing surrogate pairs now runs through HarfBuzz when shaping in Auto mode This is needed as the kerning-only shaping code assumes that everything is within the BMP Change 3441275 by Matt.Kuhlenschmidt Disable spinning on location and scale. These dont work because we have no notion of infinite spinning Change 3442748 by Yannick.Lange ViewportInteraction: Remove unused console variables. Change 3442775 by James.Golding Add support for editing MaterialFunctions to MaterialEditingLibrary Pull Material recompile/update code into UMaterialEditingLibrary::RecompileMaterial Pull MaterialFunction update code into UMaterialEditingLibrary::UpdateMaterialFunction util Move RebuildMaterialInstanceEditors to UMaterialEditingLibrary Added test content for Material/MaterialFunction editing Add needed BlueprintReadWrite to expressions (constants, function input/output) Expose UMaterialExpressionMaterialFunctionCall::SetMaterialFunction to BP, rename old func (which takes old function) to SetMaterialFunctionEx, also expose GetInputNameWithType Change 3442779 by James.Golding Fix header order Change 3442817 by Yannick.Lange ViewportInteraction: Add can execute checks for level editor commands. Change 3443038 by Michael.Dupuis #jira UE-43377: When you select a foliage actor we will move all instance contained in it to the new level as we can't move a foliage actor Only permit moving foliage instance if there is some selected Change 3443855 by Michael.Dupuis #jira UE-44885: Unregister from PerModuleDataObjects when the object is destroyed Change 3446096 by Max.Chen Sequencer: Add OnFinished() event when a level sequence completes playback #jira UE-45173 Change 3446097 by Max.Chen Sequencer: Evaluate one last time before the sequence is torn down and reset #jira UE-45174 Change 3446242 by Jamie.Dale Fixed caret not appearing in empty text layouts Caret selections have no range, and therefore have no width Change 3446361 by Matt.Kuhlenschmidt Fix WITH_EDITOR only functions causing generated code compile errors when the all functions on the class are WITH_EDITOR Change 3446457 by Alexis.Matte Polish the speed tree import dialog #jira UE-44963 Change 3446946 by Michael.Trepka Modified FWindowsWindow::GetRestoredDimensions to return correct window position for normal windows for which GetWindowPlacement returns position in workspace coordinates #jira UE-37934 Change 3447543 by Arciel.Rekman Reduce VMAs on Linux. - Trades off increased address space (VIRT in terms of ps/htop) for smaller number of distinct mappings (VMAs, virtual memory areas). This decreases possibility to run into vm.max_map_count limit on Linux. - Tested on Linux and Mac. Change 3448468 by Arciel.Rekman Fix race condition during creation of GMalloc. - On Mac GMalloc can be created on two different thread that are racing with each other - app's main thread and a system thread. Change 3449012 by Max.Chen Sequencer: Add time to transform, color and vector key structs so that key times are editable from the key editors. #jira UE-45089 Change 3449018 by Max.Chen Sequencer: Add OnCameraCut event that fires when there is a camera cut. #jira UE-45137 Change 3449195 by Max.Chen Sequencer: Add setting for limit scrubbing to playback range. #jira UE-43502 Change 3449198 by Max.Chen Sequencer: Reorder hierarchical bias so that group priority takes precedence. Change 3449217 by Max.Chen Sequencer: Add setting to activate realtime viewports when in sequencer. Change 3449219 by Max.Chen Sequencer: Focus on search boxes when opened. Change 3449238 by Max.Chen Sequencer: Assign actor should replace the actor itself after it has updated all the components. Also, replace components be fullname rather than by class. Change 3449239 by Max.Chen Sequencer: Fix offsets when moving multiple sections. Dragging should be clamped to the bounds that any of the selected sections hits against the unselected sections. Change 3449241 by Max.Chen Sequencer: Restore section selection after full tree rebuild. Change 3449279 by Max.Chen Sequencer: Set movie scene capture frames only when not using custom frames. This allows the user entered frame numbers to persist in config, rather than overwriting them when doing a "Render Shot" Change 3449280 by Max.Chen Sequencer: Spawn in the persistent level. Otherwise, they get spawned into whatever sublevel is current. #jira UE-44552 Change 3449294 by Max.Chen Sequencer: Null check for sequencer ed mode crash. Change 3449297 by Max.Chen Sequencer: Fix delay in sliding values. Mark changed when sliding values. Mark refresh immediately when committing values since OnValueChanged will be called and needs to have the correct value that was refreshed immediately. #jira UE-42866 Change 3449542 by Max.Chen Sequencer: Fix scrubber hit testing so that the time scrubber is really favored over the playback ranges. #jira UE-44569 Change 3451507 by Matt.Kuhlenschmidt Fix extra slate uv coords not functioning on ES2 Change 3451510 by Matt.Kuhlenschmidt PR #3595: Fixed wrong colour for level status (Contributed by ronve) Change 3451529 by Alexis.Matte fbx scene importer: Make sure we set INVALID_UNIQUE_ID to node that has no attribute. #jira UE-34410 Change 3451611 by Yannick.Lange ViewportInteraction: Dragging gizmo without second pass for snapped calculations. Change 3452134 by Jamie.Dale Fixed constant font cache flushing if a widget had no font set Change 3452239 by Jamie.Dale Fixed constant font measure flushing if a widget had no font set Change 3452243 by Jamie.Dale Removed deprecated code for creating fonts from bulk data Change 3452277 by Jamie.Dale The concept of "stale" composite fonts is now editor-only Change 3452358 by Alexis.Matte Fbx scene importer: Do not remove existing attribute reference from the blueprint if the reimport of the associate mesh attribute is not tick. #jira UE-45232 Change 3452678 by Max.Chen Sequencer: Fix crash on export if there's no shot data. Change 3453057 by Matt.Kuhlenschmidt Exposed asset exporting to script Change 3453782 by Andrew.Rodham Sequencer: Fixed deterministic cooking issues with movie scene data - Movie scene signatures are now initialized in PostInitProperties - A warning is now presented when attempting to cook old data that was never serialized with a signature. - Removed redundant legacy data upgrade logic that could dirty level sequences on load. #jira UE-44912 Change 3453788 by Yannick.Lange ViewportInteraction: Custom scene proxy for gizmo handles. Change 3453938 by Max.Chen Sequencer: Hotkeys (shift , and shift .) to step to next/previous shot #jira UE-45119 Change 3454058 by Michael.Dupuis Fixed StaticAnalysis Change 3454077 by Max.Chen Sequencer: Fix not saving the pre-animated track value when creating a track/key. On pre object change, broadcast property change so that a track or key can be created. That track/key needs to be evaluated immediately so that the pre-animated state can be saved properly. This is done now with RefreshAllImmediately and is only called when a track has been created. Also, added a return value for OnKeyProperty, so that it's known what changed in particular (ie. track created, track modified, etc) Also, fixed transform keying so that if a transform track already exists for the object or the scene component, the existing track is used. #jira UE-45130 Change 3454108 by Nick.Darnell UMG - Fixing the WIC to properly record cursor delta so that scrollbars work. Change 3454109 by Jamie.Dale Cache the text layout source info in non-shipping builds so you can inspect it in the debugger Change 3454202 by Matt.Kuhlenschmidt Fix bogus error message about the number of usable texture coordinates on ES2 when compiling a UI domain material Change 3454390 by Yannick.Lange Fix creating a plugin in a C++ project opens a second instance of Visual Studio. Use SourceCodeAccessor to open solution when necessary. #jira UE-45035 Change 3454564 by Matt.Kuhlenschmidt #rnx Fix deprecation warnings Change 3455471 by Yannick.Lange ViewportInteraction: Fix entering and exiting VR Mode disables gizmo in desktop editor viewport. #jira UE-44965 Change 3456183 by Max.Chen Sequencer: Auto key, auto track refactor. Auto key - create a key when the property changes and there's an existing track. Auto track - create a track when the property changes. This is only exposed in the level sequence editor. All - create a key and a track when the property changes. This is only exposed in VR Editor. None - do nothing. #jira UE-43469 Change 3456349 by Andrew.Rodham Sequencer: Only perform legacy signature checks on instances, and only where signatures match the CDO Change 3456678 by Alexis.Matte Allow to add null level instance override material via the advance material array. But still limit the override material number to the mesh material number. #jira UE-45306 Change 3456945 by Max.Chen UMG: Add restore state to 2d transform section. #jira UE-45372 Change 3457196 by Arciel.Rekman Linux: serialize allocations from the memory pool. Change 3458434 by Max.Chen Sequencer: Remove obsolete set tick prerequites functions. Change 3458671 by James.Golding Added MIC editing support to MaterialEditingLibrary Fix static analysis warning Change 3458888 by Matt.Kuhlenschmidt PR #3615: More detailed log messages for debugging warnings/errors (Contributed by projectgheist) Change 3458893 by Matt.Kuhlenschmidt PR #3583: UE-44960: Delta value wasn't being used (Contributed by projectgheist) Change 3458895 by Matt.Kuhlenschmidt Fix typo Change 3458902 by Matt.Kuhlenschmidt PR #3607: Improved InputKeySelector functionality (Contributed by projectgheist) Change 3458917 by Matt.Kuhlenschmidt Fix crash with invalid object properties in the class picker #jira UE-39000 Change 3458939 by Matt.Kuhlenschmidt Fix compile error Change 3458984 by andrew.porter QAGame: Initial check in of sequencer smoke test map Change 3459510 by Matt.Kuhlenschmidt Fixed ensure when deleting a map that contains build data which also happens to be the currently loaded map. #jira UE-45052 Change 3460985 by Max.Chen Sequencer: Snap play time to keys now allows scrubbing between keys and snaps to key times within a certain screenspace tolerance. #jira UE-45090 Change 3461698 by Arciel.Rekman Avoid using ARRAY_COUNT in Vulkan. - Sometimes those arrays can have no extensions whatsoever, and it is illegal to declare a 0 element C array. Change 3462053 by Max.Chen Sequencer: Show sequencer spawnables in the world outliner and add the icon overlay for spawnables. #jira UE-43470 Change 3462139 by Max.Chen Property Editor: Add objects to FPropertyAndParent Change 3462202 by Arciel.Rekman Fix FSocket::Recv() blocking with Peek when there's no data. Change 3462253 by Nick.Darnell Slate - New Clipping System Clipping is now a stateful choice made during composition of the slate hierarchy. Previously every widget got to respect or modify the clipping rect on an as needed basis. The problem was that clipping was only allowed in the layout space of the widget, and it wasn't possible to properly clip elements with render transforms. The new system permits all kinds of transforms on any widget, and they will all be clipped correctly. It tries to use Scissor Rects as they are much cheaper, but will switch over to stenciling if need be to represent a complicated masking structure with several rotated clipping rects all needed to be combined together. Here are the new clipping states a widget can have, almost all widgets are set to No. Only change it from No if your widget actually needs to clip, generally speaking most widgets don't need to clip. /** * This widget does not clip children, it and all children inherit the clipping area of the last widget that clipped. */ Inherit, /** * This widget clips content the bounds of this widget. It intersects those bounds with any previous clipping area. */ ClipToBounds, /** * This widget clips to its bounds. It does NOT intersect with any existing clipping geometry, it pushes a new clipping * state. Effectively allowing it to render outside the bounds of hierarchy that does clip. * * NOTE: This will NOT allow you ignore the clipping zone that is set to [Yes - Always]. */ ClipToBoundsWithoutIntersecting UMETA(DisplayName = "Yes - Without Intersecting (Advanced)"), /** * This widget clips to its bounds. It intersects those bounds with any previous clipping area. * * NOTE: This clipping area can NOT be ignored, it will always clip children. Useful for hard barriers * in the UI where you never want animations or other effects to break this region. */ ClipToBoundsAlways UMETA(DisplayName = "Yes - Always (Advanced)"), /** * This widget clips to its bounds when it's Desired Size is larger than the allocated geometry * the widget is given. If that occurs, it behaves like [Yes]. * * NOTE: This mode was primarily added for Text, which is often placed into containers that eventually * are resized to not be able to support the length of the text. So rather than needing to tag every * container that could contain text with [Yes], which would result in almost no batching, this mode * was added to dynamically adjust the clipping if needed. The reason not every panel is set to OnDemand, * is because not every panel returns a Desired Size that matches what it plans to render at. */ OnDemand UMETA(DisplayName = "On Demand (Advanced)") - Large API Change - All FSlateDrawElement::Make_____ calls have been deprecated that involved passing in a clipping rect. You no longer should are passed a Clipping rect via OnPaint. You are still passed a rect, but this rect represents a Culling Rect, which is valuable if you need to just out right not paint things the user can't possibly see. If you were previously trying to determine if you should cull widgets, by doing something like this, if ( FSlateRect::DoRectanglesIntersect(MyClippingRect, CurWidget.Geometry.GetRenderBoundingRect()) ) That's no longer a good option since there are ways for widgets to ignore the culling bounds. You should convert anything like above to the one below, if (!SWidget::IsWidgetCulled(MyCullingRect, CurWidget)) To assist in debugging efforts, there are several new debugging console flags in Slate, Slate.ShowClipping 1 - Controls whether we should render a clipping zone outline. Yellow = Axis Scissor Rect Clipping (cheap). Red = Stencil Clipping (expensive). Slate.DebugCulling 1 - Disables pushing clipping or stencil rects to the GPU, but continues to intersect culling rects, so that you can tell if a widget is properly culling children it can't possibly draw. Slate.ShowTextDebugging 1 - Show debugging painting for text rendering. I've added a new Experimental Feathering Option, it adds AA geometry around the outside of Box and Image brushes. Slate.Feathering 1 If you're using RenderDoc or something similar, you can now enable render events for slate, so that you can better grok how we're batching and changing states for each UI render pass. Slate.EnableDrawEvents 1 #jira UE-4659 #rn Change 3462714 by Nick.Darnell Fixing a few more compiler issues with the clipping changes. Change 3462726 by Max.Chen Switch OnEditStructChildContentsChanged to use FObjectWriter instead of FMemoryWriter which supports serializeing UObjects. This fixes a crash when adding actor array elements to a user defined event struct. #jira UE-45431 Change 3462801 by Nick.Darnell Adding a UMG dependency to EngineTestBuild. Change 3462914 by Max.Chen Sequencer: Fix regression where spawnables aren't getting saved. Caused by 3407138 #jira UE-30007 #jira UE-39003 Change 3462946 by Nick.Darnell Automation - Tweaking the UI automation tests converting them over to use the new UI Screenshot automation test. Automation - Adding a blur widget test. Change 3462987 by Matt.Kuhlenschmidt Back out changelist 3458893 Change 3464774 by Matt.Kuhlenschmidt PR #3629: Bugfix: Missing small icon in Project Launcher profile editor (Contributed by aarmbruster) Change 3464785 by Nick.Darnell Fixing some clipping stuff in the editor. Change 3464830 by andrew.porter QAGame: Second pass on sequencer smoke test map Change 3464902 by Nick.Darnell Loading - Adding some additional checks to the the loading code to ensure we're on the main thread. Additionally adding a fix from UDN that prevents deadlocks in the rare case a user hits Alt+Tab in a fullscreen game while in a hard loading screen. Change 3464988 by Max.Chen Sequencer: Add attenuation settings for attached audio components. #jira UE-33080 Change 3465024 by Nick.Darnell MoviePlayer - Impoving the playback mode displaynames. Change 3465074 by Arciel.Rekman Fix shadowing issues of GraphicsPSOInit. Change 3465097 by Matt.Kuhlenschmidt Some refactoring of the details panel Exposed new methods of adding a struct on scope to a details panel and have it work properly with customizations. The scruct on scope has a "fake" ustructproperty that allows the details panel to show the whole struct not just an individual property. Refactored the API for adding rows to details panels to make it more consistent\ AddChildCustomBuilder->AddCustomBuilder AddChildGroup->AddGroup AddChildContent->AddCustomRow AddChildPropert->AddProperty AddChildStructure->AddExternalStructureProperty AddStructure->AddAllExternalStructureProperties AddExternalProperty->AddExternalObjectProperty or AddExternalStructureProperty Change 3465186 by Max.Chen Sequencer: Save the BindingID in the pre animated token producer so that it can be destroyed properly. This fixes a bug where the default state of a spawnable isn't saved. #jira UE-43780 Change 3465315 by Matt.Kuhlenschmidt Fix Fortnite and Orion details panel customization warnings Change 3465424 by Nick.Darnell Automation - Moving the step for setting the link to the automation reports to be set before we start the engine. Change 3465488 by Nick.Darnell Automation - Forcing textures to load before taking screenshot, so that the scene gets another opportunity to render before we render with Slate. This should fix the Blur UI Test. Change 3466277 by Arciel.Rekman Linux: fix window drift when dragging (UE-40380). - Change by Cengiz Terzibas. Change 3466370 by Nick.Darnell UMG - Fixing the colors for the resize handle in the designer. Change 3466372 by Nick.Darnell UMG - Fixing the ruler ticks sometimes not being drawn. Change 3466374 by Nick.Darnell UMG - Fixing the designer showing multiple options for sequencer. Change 3466377 by Nick.Darnell UMG - Cleaning up some clipping bits. Change 3467025 by Andrew.Rodham Re-saving assets that contain legacy (<4.15) movie scene data to remove deterministic cook warning. If conflicts arise during merging of these assets, please ignore the changes made in dev-editor, and accept game-side changes. (CIS step 62283298, jobId 7773146) (CIS step 62283297, jobId 7773146) Change 3467099 by Max.Chen Fix GetObjectPropertyClass ensure logic. This was returning UObject::StaticClass when valid. Change 3467172 by Max.Chen Sequencer: Evaluation optimizations. Also, fixes subsequences not getting expired, leaving dangling spawnables. #jira UE-43690 Change 3467192 by Matt.Kuhlenschmidt Fix transactions getting stuck in the color grading controls. This prevents PIE from working properly and causes shutdown crashes #jira UE-45527 Change 3467251 by Yannick.Lange ViewportInteraction: Fix scale and rotation snap while dragging with two lasers. #jira UE-43489 Change 3467331 by Matt.Kuhlenschmidt Fix D3D shader compiler hard coding shader path and not giving proper warnings when it cannot find the shaders Change 3467335 by Matt.Kuhlenschmidt Remove DarkStyle attribute from SNumericEntryBox and allow a spin box style to be passed to it. Change 3467558 by Max.Chen Scene Outliner: Generic support to add default columns to a scene outliner. Change 3467565 by Jamie.Dale Removing old screenshot data for test Change 3467589 by Nick.Darnell Editor - Random cleanup. Change 3467596 by Nick.Darnell Progress Bar - Exposing Border Padding to UMG. Change 3467600 by Nick.Darnell Slate - Adjusting the rendering of the splitter, previously it could be off by a pixel or two, which becomes more apparent now with the clipping changes. Change 3467601 by Max.Chen Property Editor: Fix static analysis warning Change 3467662 by Nick.Darnell Automation - Fixing a bug with the screenshot comparison tool not replacing (removing) the old screenshot data. Change 3467674 by Max.Chen Property Editor: Fix static analysis warning Change 3467737 by Max.Chen Sequencer: Added OnMovieSceneBindingsChanged delegate Change 3468053 by tim.gautier QAGame: Updating Editor Smoke Map - Updated landscapes into Stations for testing - Added Foliage Sublevel Change 3468194 by Arciel.Rekman Linux: fix problems communicating with various STL-using libs. - Stop hiding global new/delete signatures. - Disable CEF3 since this change uncovers the problem with libcef.so not built to use bundled libpng. Change 3468678 by Max.Chen Sequencer: Set "Sequencer Actor" tag before setting the actor label so that the outliner refreshes after the actor has the tag. Change 3469314 by tim.gautier QAGame: Added Painted Foliage / Spline section to EditorSmoke map Change 3469377 by Nick.Darnell Slate - Fixing some warnings in a couple of sample games due to the clipping changes. #rnx Change 3469767 by Max.Chen Sequencer: Outliner column and sequencer binding data #jira UE-43470 Change 3469974 by Arciel.Rekman Fix code projects not working in Linux installed build. Change 3470082 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470174 by Nick.Darnell Slate - Get the last widget in a widget path utility. Change 3470176 by Nick.Darnell UMG - User Widgets now have an easy way to know if they're part of or have been removed from the focused widget path, which is handy for doing effects. Change 3470261 by Nick.Darnell Slate - The GetRenderer() call on SlateApplication no longer returns a SharedPtr, rather than convert it to a thread safe ptr, going to just make accessing it a raw ptr return, so it can be safely referenced on the game thread while being used on the slate loading thread. Change 3470286 by Max.Chen Sequencer: Scene Component's HiddenInGame now goes through the VisibilityTrack and the visibility template. Change 3470366 by Nick.Darnell Slate - We now version focus per user, that way during focus events, we can safely abort focus events and state transitions if someone interrrupts the active focus event with something new. Change 3470649 by Matt.Kuhlenschmidt Fix deprecation warnings Change 3470695 by Matt.Kuhlenschmidt Fixed typo #jira UE-45580 Change 3470721 by Matt.Kuhlenschmidt Fix static analysis Change 3471254 by Michael.Dupuis #jira UE-42952: Keep occlusion result per view Change 3471287 by Nick.Darnell UMG - Render Focus Rule now defaults to never. Change 3471291 by Nick.Darnell Slate - Fixing FSlateRenderer* change fallout. Change 3471299 by Nick.Darnell Slate - Fixing FSlateRenderer* change. Change 3471323 by Nick.Darnell Automation - Fixing automation and Static Analysis warning. Change 3471413 by andrew.porter QAGame: Added test content for anim blending and material parameteres to sequencer smoke level Change 3471649 by Max.Chen Sequencer: Modify the track when adding animation #jira UE-45618 Change 3471659 by Matt.Kuhlenschmidt Added a way to check if a movie is playing from the engine. Prevented viewport redraws for canvas loading screens if a slate based loading movie is playing Change 3471734 by Matt.Kuhlenschmidt Added basic material hookup to USD. Similar to FBX it will find materials based on rules specified by the user in the import settings Change 3472176 by Nick.Darnell UMG - Improving the display of the +Track menu in sequencer for UMG. Renamed it from +Add, which is repetitve to +Track. Additionally, the dropdown now shows the currently selected widgets, as well as a submenu containing all the 'important' widgets, so we no longer populate that list with a ton of irrelevant widgets that are just Buton_1 - N, which is pointless in showing people, they'll never guess which is the right button. Change 3472740 by Max.Chen Sequencer: Add GetThisFrameMetaData accessor Change 3472748 by Max.Chen Sequencer: Added OnBeginScrubbing and OnEndScrubbing event delegates Change 3472753 by Max.Chen Sequencer: Add EMovieSceneDataChangeType parameter to OnMovieSceneDataChanged delegate Change 3472870 by Nick.Darnell Clipping - Fixing the deprecated tip for scissor rect boxes to be correct. Removing it's usage from UT. Change 3473340 by Max.Chen Scene Outliner: Add ability to register additional filters Change 3473348 by Max.Chen Details View: Make ForceRefresh virtual. Added accessors to delegates (ie. GetIsPropertyReadOnlyDelegate) Change 3473441 by Max.Chen Sequencer: Autokey Refactor Part 2. Autokey is now a single toggleable state. Allow Edits Mode has 3 states: Allow All Edits - Allow any edits to occur, some of which may produce tracks/keys or modify default properties. Allow Sequencer Edits Only - All edits will produce either a track or a key. Allow Level Edits Only - Properties in the details panel will be disabled if they have a track. #jira UE-45229 Change 3473670 by Nick.Darnell Modules - The module manager no longer returns sharedptrs to IModuleInterfaces, this was the source of rare hard to track down crashes due to a shared ptr reference leak when GetModule was called on non-main threads. We now store a TUniquePtr internally, and only lease out raw pointers. #rn Change 3473711 by Nick.Darnell Disabling the ensure in the module manager. Change 3473747 by Max.Chen Sequencer: Fix tooltip Change 3474091 by Jamie.Dale Added a warning when cooking a UFontFace that is outered to a UFont asset These cause issues with iterative COTF, and should be split off into their own assets (as the UI has been asking people to do for several versions) Change 3475052 by Yannick.Lange VR Editor: Fix Crash when quitting the editor with VR Mode enabled. VR Editor was being enabled when saving the map on closing the editor. #jira UE-45415 Change 3475054 by Yannick.Lange Fix crash when adding a camera to the world in VR Mode the second time. The slate application did not reset when stop dragging in VR Mode, so the second time when starting to drag a camera out of the UI it would already by in a dragging state. #jira UE-45574 Change 3475263 by Nick.Darnell Fixing some additional cases of IModuleInteface SharedPtr usage. Change 3475268 by Max.Chen Sequencer: Set jumped state when looping playback. This fixes an issue where audio doesn't stop and restart when looped. #jira UE-45654 Change 3475269 by Max.Chen Scene Outliner: Additional filters should only apply to actor browsing mode Change 3475407 by Nick.Darnell Fixing some clipping / module shared ptr changes in the launcher code. Change 3475542 by Max.Chen Sequencer: Update thumbnail and section highlighting to use new clipping behavior. #jira UE-45692 #jira UE-45689 Change 3475743 by Michael.Dupuis #jira UE-45183: When updating phyx region take into account simple collision mip Change 3475949 by Arciel.Rekman Remove PhysX deoptimization (no longer needed). - OR-24947 has been closed three months ago. Change 3476022 by Michael.Dupuis #jira UE-45560: Make sure we're not going out of range Change 3476063 by Michael.Dupuis #jira UE-45562: Do not try to unregister from static mesh if no static mesh is specified for the component Change 3476168 by Michael.Trepka Added handling of directory symlinks to FApplePlatformFile::IterateDirectory #jira UE-43704 Change 3476172 by Nick.Darnell Fixing a Imoduleinterface change. Change 3476183 by Jamie.Dale Exposing GoTo/ScrollTo to single-line editable text for API parity with multi-line editable text Change 3476385 by Arciel.Rekman Linux: handle symlinks when iterating directories. Change 3476522 by Michael.Trepka Solved a problem with Mac FMallocTBB::Malloc() returning nullptr for 0 bytes allocations, which is inconsistent with other platforms. On Mac we always scalable_aligned_malloc, which behaves differently than scalable_malloc, so for 0 bytes requests we allocate sizeof(size_t), which is exactly what scalable_malloc does internally in such case. Change 3476806 by Nick.Darnell UMG - Focus the designer after dropping a widget onto the surface. Change 3476809 by Nick.Darnell Curve Editor - Enable Clipping on the curve editor. Change 3477475 by Nick.Darnell Fixing a module interface shared ptr usage in UT. Change 3477553 by Yannick.Lange VR Editor: Removed AssetEditorPanelID and replaced it with TabManagerPanelID. A panel for AssetEditorPanelID was never created making it impossible to open an asset editor. Change 3477734 by Yannick.Lange VR Editor: Fix Warning: SetRelativeScale3D : Invalid Scale entered (X=inf Y=inf Z=inf). Resetting to 1.f. warning when adding CineCameraActor to World from Modes Panel. Make sure to not divide by zero when there is no boundary scale. #jira UE-44933 Change 3477761 by Jamie.Dale Some improvements to avoid loading the native .locres files twice when we don't need to Change 3477780 by Nick.Darnell PR #3250: Return correct VirtualUserIndex (Contributed by projectgheist) Change 3477786 by Nick.Darnell PR #3650: Changed TestNull to accept const pointers. (Contributed by e-agaubatz) Change 3477795 by Nick.Darnell PR #2844: UE-36936: Don't stretch container for Plugin Image (Contributed by projectgheist) Change 3478092 by Nick.Darnell PR #2341: Optional Middle Mouse Button panning in Graph Editor (Contributed by flipswitchingmonkey) Engine Edit - Made some small changes to the enum type, and some naming. Change 3478450 by Nick.Darnell Fixing some uninitialized variable errors. Change 3479827 by Andrew.Rodham Sequencer: Addressed serialization issues with some struct types Change 3479874 by Jamie.Dale Fixed "NativeGameLanguage" not being used correctly during localization initialization Change 3480012 by Andrew.Rodham Sequencer: Fixed loading tagged properties as native for track identifiers #jira UE-45823 Change 3480337 by Alexis.Matte Fix morph target crash missing some valid index check Change 3480804 by Alexis.Matte Fix crash with ColorGradingMode custom detail #jira UE-45638 Change 3480892 by Andrew.Rodham Sequencer: Ensure that movie scene sequences know about the editor object version #jira UE-45842 Change 3481073 by Nick.Darnell Fix the shader compiler error from main in Slate. Change 3481303 by Nick.Darnell UMG - Fixing a bug with the drag handle not working correctly in HDPI mode. Change 3481308 by Nick.Darnell Slate - Tweaking the IsWidgetCulled logic to consider both the layout and rendering bounds. If we do this, we get a much more desireable outcome for people that want to animate widgets and such and plan to have temporary animations to move the widget offscreen, but want the layout bounds to anchor that widget in the visible frame so that it animates even when normally it would be culled b/c the render transform and therefore the renderbounds moved it completely outside the culling rect. Change 3481629 by Max.Chen Sequencer: Add Level Sequence Actor as an output for CreateLevelSequencePlayer() #jira UE-45785 Change 3481899 by Yannick.Lange VR Editor: Added debug modetoggle command with an event that is broadcasted whenever this happens. Currently this is used to show all the floating UIs of the UI system to debug without HMD using VREd.ForceVRMode. Change 3481984 by Michael.Dupuis #jira UE-45845: always validate if we have a static mesh before trying to access it as user can decide to not assign one and use the tools Change 3482047 by Nick.Darnell Slate - Adding some comments to IsWidgetCulled. Change 3482110 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482136 by Jamie.Dale The CamelCase break iterator now treats digits around character tokens as part of the identifier Change 3482138 by Michael.Dupuis #jira UE-45854: Properly unregister during undo operation Change 3482150 by Michael.Dupuis #jira UE-45845 : Add missing nullcheck for GetStaticMesh Change 3482153 by Nick.Darnell Slate - IsWidgetCulled is no longer static and is now called IsChildWidgetCulled. Change 3482180 by Nick.Darnell UMG - Widget Components do not need to define a widget class to be rendererd, they can have native slate widgets only. This was a regression from main. Change 3482273 by Nick.Darnell UMG - Tweaking some more things about the widget component box outline. Change 3482308 by Alexis.Matte Fixing morph target smooth group support. Do not call FillSkeletalMeshImportData more then once on FbxNode since this fonction is doing some conversion and change the FbxNode, applying those conversion twice do not return the same faces smooth group. #jira UE-45696 Change 3482327 by Nick.Darnell UMG - More tweaks to the WidgetComponent so both shows the box outline, but works in game and VR editor. Change 3482705 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484245 by Max.Chen Sequencer: Evaluate on end scrub. This fixes a bug where audio doesn't evaluate in a stopped position at the end of scrubbing, causing it to not stop all sounds. This fixes a bug introduced from 3365018 where evaluate on end scrub was removed. #jira UE-45905 Change 3484263 by Max.Chen Sequencer: Fix crash on forcing refresh of details panel on release. #jira UE-45911 Change 3484431 by Andrew.Rodham Resaving assets that contain legacy data to suppress CIS warnings. - If conflicts arise in these assets, please take game-side changes and ignore these. Change 3484474 by Alexis.Matte Fix the morph target animation curve name matching. #jira UE-20294 Change 3484475 by Alexis.Matte When removing a LOD, make sure we remove all morph target data associate to the LOD. Change 3484489 by Nick.Darnell PR #3668: UE-45908: Cache debug line locations when performing a LineTraceMulti (Contributed by projectgheist) #jira UE-45908 Change 3484692 by Nick.Darnell Slate - Reverting a change from a game stream. All Arranged Children don't need to allocated 42 to begin with. Do need to initialize WidgetPaths better. Change 3484703 by Nick.Darnell Player Input - Making the input event loop for players obey EKeys::NUM_TOUCH_KEYS, rather than being set to Touch10, as the maximum touch input amount, to make supporting greater than 10 touches easier. Also making the seeding of keys use EKeys::NUM_TOUCH_KEYS. #jira UE-43213 Change 3484918 by Jamie.Dale Fixed font measuring regression with RTL text RTL applies the character count to the next glyph, so it shouldn't process the end of the loop (this was how the older code used to work). Change 3485718 by Nick.Darnell Editor - Removing Super Search & User Feedback button. Change 3485719 by Nick.Darnell Portal - Removing SuperSearch. Change 3485751 by Matt.Kuhlenschmidt Fix crash accessing platformer game menu if the menu is open during a console based load #jira UE-45950 Change 3486047 by Arciel.Rekman Linux: add OpenEXR implementation (UE-40270). #jira UE-40270 Change 3486467 by Max.Chen Sequencer: Reset max tick rate when destroyed. #jira UE-45956 Change 3486477 by Max.Chen Sequencer: Refresh outliner when column is removed. #jira UE-45891 Change 3486667 by Andrew.Rodham Added missing include Change 3486724 by Andrew.Rodham Sequencer: Fixed curves with no default value, and no keys being evaluated and applied to properties - Also fixed an edge case where a zero (but non-animated) channel could be applied to a final transform Change 3486730 by Alexis.Matte In the Auto-Reimport options, hide the mout point only for the default /Game/ folder #UE-45684 Change 3486749 by Alexis.Matte Make sure the parent window of the monitor directory browse folder is set properly #jira UE-45682 Change 3486805 by Matt.Kuhlenschmidt Additional safety against invalid objects being accessed by slate Change 3486848 by Alexis.Matte Make sure Monitor folder feature support root mount point map folder During auto import, give priority to asset import factory over the scene import factory #jira UE-45691 Change 3486879 by Andrew.Rodham Removing obsolete QA assets Change 3486950 by Nick.Darnell PR #2281: Scrollbar missing features and SScrollbar fixes (Contributed by SNikon) Review - made some adjustments from the original. Change 3486954 by Nick.Darnell Slate - Moving the STableViewBase over to the FOverscroll class, rather than it's own clone. Change 3486967 by Nick.Darnell Slate - Fixing some HDPI calculations for fitting new windows on screen, it was using the unscaled size of the widgets for fitting, when it needed to scale them up. Change 3486970 by Andrew.Rodham Sequencer: Delay mouse capture until drag for sequencer time slider - Fixes context menus not opening as a result of mouse capture being taken on mouse down #jira UE-45937 Change 3486984 by Andrew.Rodham Sequencer: Improved blending type iconography Change 3486996 by Nick.Darnell UMG - Adding a way for games to opt-out of the slow widget path, to completely prevent them from being cooked. UMG - The movie data is no longer cloned for each new instance that inhabits. It now keeps a reference to the now publically accessible movie scene data on the class instead. Change 3487070 by Andrew.Rodham Sequencer: Added graphics for key areas that represent empty space Change 3487195 by Andrew.Rodham Sequencer: Changed evaluation groups to always flush implicitly - Due to the latent nature of blended token types, it's no longer safe to rely solely on execution token order between tracks - This fixes an issue where events set in the PostEvaluation stage were executed before blended token actuation Change 3487322 by Nick.Darnell PR #2457: Add .gitdeps.xml-files for plugins support (Contributed by bozaro) Change 3487363 by Nick.Darnell PR #2481: Fix for packing of a project with users plugins (Contributed by yatagarasu25) Change 3487439 by Nick.Darnell PR #2642: Changed private to protected in SVirtualJoystick.h (Contributed by Skylonxe) Change 3487500 by Arciel.Rekman Removed LinuxNativeDialogs. - No longer used; has been superceded by SlateDialogs since UE 4.8 (2 years ago). Change 3487630 by Lauren.Ridge Don't create Landscape Info Maps for Editor Preview Worlds or thumbnail worlds #jira UE-44885 Change 3487864 by Matt.Kuhlenschmidt Exposed the asset registry to blueprints and script. Works in editor scripts and runtime scripts AssetRegistry is now a UInterface object. Blueprint users can access various asset registry methods using the asset registry interface (via GetAssetRegistry) and various static helpers in the AssetRegistryHelpers object C++ users should still continue to use IAssetRegistry. Change 3487879 by Matt.Kuhlenschmidt Renamed asset tools uobject helper to UAssetToolsHelpers Change 3487926 by Lauren.Ridge Fixing reset to default not showing up for custom widgets #jira UE-44164 Change 3488184 by Matt.Kuhlenschmidt PR #3656: Make References/Referencers List copyable (Contributed by user37337) #jira UE-45763 Change 3488240 by Matt.Kuhlenschmidt Fix compiler issue Change 3488350 by Lauren.Ridge Landscape info map transactional state is based on its world's transactional state #jira UE-44885 #jira UE-46019 Change 3488412 by Matt.Kuhlenschmidt Fix reset to default showing up in two different places for some customizations Change 3488413 by Matt.Kuhlenschmidt Fix slate font customization Change 3488414 by Matt.Kuhlenschmidt Fix slate font customization Change 3488415 by Matt.Kuhlenschmidt Missed file Change 3488565 by Arciel.Rekman Add pretty printers for gdb (UETOOL-1171). - Committing shelf by Cengiz.Terzibas, with some modifications. #jira UETOOL-1171 Change 3489094 by Nick.Darnell Slate - The Slate RHI Renderer now caches the TextureLODGroups so that it can properly lookup the filtering of different texture groups that are set to Default, instead of a particular filter override on a texture. Engine/Rendering - Simplifying some of the setup logic in TextureLODSettings so that code is shared for setting them up properly after loading from a config file. Change 3489095 by Nick.Darnell PR #2699: GameViewportClient - Added a method to allow setting the viewport cur. (Contributed by rfenner) Review - Fixed spacing. Change 3489108 by Matt.Kuhlenschmidt Fix deprecation warning Change 3489120 by Nick.Darnell PR #3478: Fix possible UComboBoxString crash (Contributed by nakosung) Change 3489147 by Andrew.Rodham Sequencer: Adding return value to function to appease static analysis - This function is never compiled, and if it is, it won't compile, but static analysis doesn't know that Change 3489264 by Nick.Darnell Testing - Finishing the thought behind an enum comment. Change 3489265 by Nick.Darnell PR #2750: UE-35164: Button padding (Contributed by projectgheist) Change 3489267 by Nick.Darnell PR #3645: UE-45464: Handle SSlider mouse interaction more accurately (Contributed by projectgheist) Change 3489632 by Arciel.Rekman Correctness changes to MallocPoisonProxy. - Missing forwarding functions added. Incorrect comment removed. - Change by Steve.Robb, doing here so it is in 4.17. Change 3489689 by Arciel.Rekman More MallocPoisonProxy changes I missed in previous CL. Change 3489751 by Matt.Kuhlenschmidt Moved editor performance settings out of per-project settings so they can be shared across projects Change 3489837 by Lauren.Ridge Keyboard shortcut for entering/leaving VR Mode is now Alt+V Change 3491082 by Arciel.Rekman Linux: better fix for the crash due to name collision (UE-46040). - Put classes in Sequencer module into Sequencer namespace instead of SceneOutliner namespace. - Undid change in the SceneOutliner module. #jira UE-46040 Change 3491096 by Arciel.Rekman Fix UAT compilation on the newest mono. Change 3491240 by Max.Chen Sequencer: Disable key button when allow level edits only is on. #jira UE-46060 Change 3491406 by Yannick.Lange Fix editor crashes when opening a project that includes a plugin with more than two custom Volume classes. This issue was caused because registering show volume commands is based on finding volume classes. Finding these classes at multiple times resulted in a mismatch of the returned array of volume classes because modules/plugins were still being loaded. #jira UE-45806 Change 3491559 by Alexis.Matte Make sure we use the good preview mesh when doing a preview #jira UE-45963 Change 3491563 by Alexis.Matte Fix crash with staticmesh editor LodLevel selection Change 3491564 by Nick.Darnell UMG - Fixing an offset with the grab handles in HDPI mode. Change 3491595 by Nick.Darnell Editor - Fixing a clipping artifact in the pin type dropdown in the blueprint editor. Change 3491604 by Nick.Darnell Back out changelist 3489265 Change 3491615 by Arciel.Rekman Added malloc replay proxy (Linux only for now). - Allows to dump malloc callstream (without regard to threads) and replay later to study the behavior of different mallocs and/or repro problems. Change 3491684 by Arciel.Rekman Added FMalloc functions I missed. - Also moved function bodies into the .cpp file, this does not make a difference in performance in this case. Change 3491692 by Matt.Kuhlenschmidt Some minor fixes to the static mesh editor - Fix UV combo button looking non-standard on the toolbar - Fix a few combo buttons in the details panel looking too big. Change 3491702 by Arciel.Rekman Do not compile replay proxy-specific code when not used. Change 3491717 by Michael.Dupuis #jira UE-35083: The component is now the owner of the PerInstanceRenderData instead of the proxy Add an Update path to only update specified instances range Always call BuildTreeIfOutdated so we have a standard code path to make sure static mesh are fully loaded before trying to build the tree Moved the Instance Buffer aysnc to the base class, as it's not related to UHierarchicalInstancedStaticMeshComponent Expose a new property to decide if we require dynamic instance buffer Change 3491758 by Matt.Kuhlenschmidt Fix crash on static mesh editor shutdown Change 3491873 by Cody.Albert Fixed clipping issue in Sequencer curve editor #rnx Change 3491956 by Matt.Kuhlenschmidt Fix crash opening the Previewing sub-menu in the level editor settings menu #jira UE-46095 Change 3492046 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492076 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492165 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492222 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492274 by Michael.Dupuis #jira UE-46105: Fixed Clang warning Change 3492338 by andrew.porter QAGame: Testing ensure when submitting Change 3492371 by Nick.Darnell UMG - Reverting the animation sharing, cossed GLEO regressions in cooking. Will look for a better solution. Change 3492462 by Matt.Kuhlenschmidt Fix ensure checking in files through perforce Change 3492491 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492505 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3492517 by Jamie.Dale The package localization ID is no longer used at all at runtime, and is now truly editor-only This should have always been the case, but it was leaked into manifest/archives/PO files in 4.14, and while 4.15 removed it from PO files it was still present in the manifest/archives. This change removes it entirely (unless gathering editor-only data, and even then the PO file will still collapse the entries together for translation), and the deprecated 4.14 export behavior will now produce an error if you attempt to use it. After taking this change you'll need to run a gather, import, and compile of your LocRes files to update your game localization to use the new localization IDs. Change 3492630 by Nick.Darnell UMG - Removing some extra cleanup code that's probably overkill and is causing a crash for uses of "Within" in class meta. #jira UE-46124 Change 3492692 by Matt.Kuhlenschmidt Fix drop shadows inheriting the outline color of the font. The outline should still appear but not have a different outline color from fill color Change 3492714 by Matt.Kuhlenschmidt Added outline with drop shadow to font automation test Change 3492737 by Matt.Kuhlenschmidt Fix linux Change 3492992 by tim.gautier Resaving Ocean Widget Blueprints / Sequences to resolve Legacy Sequence Data warnings #jira UE-46132 Change 3493089 by Jamie.Dale Ensure that the composite font of a font asset is flushed when the font object is GC'd Change 3493322 by Jamie.Dale Fixing null crash #jira UE-45758 Change 3494467 by Andrew.Rodham Fix Xbox warning Change 3494852 by tim.gautier QAGame: Changed streaming method of QA-EditorSmoke-Landscape to Always Loaded Change 3494853 by Nick.Darnell Another attempt at fixing the automation blueprint SA warning. Change 3494896 by Arciel.Rekman Fix possible null pointer access during Vulkan init. - May fix static analysis warnings in UE-46142, although warnings seem to be referring to something else. #jira UE-46142 Change 3494987 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495010 by Matt.Kuhlenschmidt Adding additional logging to track down html5 issue Change 3495212 by Michael.Dupuis #jira UE-46143: Properly init the InstanceRenderData during the cooking phase (required by fortnite) Change 3495536 by Jamie.Dale Updating UGameEngine to call its Super::PreExit after performing its own teardown This prevents UEngine cleaning up resources that UGameEngine still needs. #jira UE-46159 Change 3495551 by Arciel.Rekman Another attempt to fix analyzer problem (UE-46142). Change 3495794 by Jamie.Dale Fixing some font cooking warnings by splitting out font faces from their font assets #jira UE-45843 Change 3495905 by Matt.Kuhlenschmidt Fix USD crash when importing a meshwith no material [CL 3499771 by Matt Kuhlenschmidt in Main branch]
2017-06-19 20:27:30 -04:00
}
UMovieSceneTrack* OuterTrack = Section->GetTypedOuter<UMovieSceneTrack>();
if (OuterTrack)
{
OuterTrack->MarkAsChanged();
}
Sequencer.NotifyMovieSceneDataChanged( EMovieSceneDataChangeType::TrackValueChanged );
}
void FManipulateSectionEasing::OnEndDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
EndTransaction();
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
FMoveKeysAndSections::FMoveKeysAndSections(FSequencer& InSequencer, const TSet<FSequencerSelectedKey>& InSelectedKeys, const TSet<TWeakObjectPtr<UMovieSceneSection>>& InSelectedSections, bool InbHotspotWasSection)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
: FEditToolDragOperation(InSequencer)
, bHotspotWasSection(InbHotspotWasSection)
{
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4279600) #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]
2018-08-13 12:29:41 -04:00
// Filter out the keys on sections that are read only
for (const FSequencerSelectedKey& SelectedKey : InSelectedKeys)
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4279600) #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]
2018-08-13 12:29:41 -04:00
{
if (!SelectedKey.Section->IsReadOnly())
{
Keys.Add(SelectedKey);
}
}
KeysAsArray = Keys.Array();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// However, we don't want infinite sections to be movable, so we discard them from our selection.
// We support partially infinite (infinite on one side) sections however.
for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : InSelectedSections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
const UMovieSceneSection* SelectedSection = WeakSection.Get();
if (SelectedSection->HasStartFrame() || SelectedSection->HasEndFrame())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
Sections.AddUnique(WeakSection);
UMovieScene* MovieScene = InSequencer.GetFocusedMovieSceneSequence()->GetMovieScene();
if (MovieScene)
{
// If the section is in a group, we also want to add the sections it is grouped with
const FMovieSceneSectionGroup* SectionGroup = MovieScene->GetSectionGroup(*SelectedSection);
if (SectionGroup)
{
for (TWeakObjectPtr<UMovieSceneSection> WeakGroupedSection : *SectionGroup)
{
// Verify sections are still valid, and are not infinite.
if (WeakGroupedSection.IsValid() && (WeakGroupedSection->HasStartFrame() || WeakGroupedSection->HasEndFrame()))
{
Sections.AddUnique(WeakGroupedSection);
}
}
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
}
}
void FMoveKeysAndSections::OnBeginDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4279600) #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]
2018-08-13 12:29:41 -04:00
{
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Early out if we've somehow started a drag operation without any sections or keys. This prevents an empty Undo/Redo Transaction from being created.
if (!Sections.Num() && !Keys.Num())
{
return;
}
BeginTransaction(Sections, NSLOCTEXT("Sequencer", "MoveKeyAndSectionTransaction", "Move Keys or Sections"));
// Tell the Snap Field to ignore our currently selected keys and sections. We can snap to the edges of non-selected
// sections and keys. The actual snapping field will add other sequencer data (play ranges, playheads, etc.) as snap targets.
FInvalidKeyAndSectionSnappingCandidates AvoidSnapCanidates(Keys, Sections);
SnapField = FSequencerSnapField(Sequencer, AvoidSnapCanidates );
// Store the frame time of the mouse so we can see how far we've moved from the starting point.
MouseTimePrev = VirtualTrackArea.PixelToFrame(LocalMousePos.X).FloorToFrame();
// Now we store a relative offset to each key and section from the start position. This allows us to know how far away from
// the mouse each valid key/section was so we can restore their offset if needed.
RelativeOffsets.Reserve(Sections.Num() + Keys.Num());
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
UMovieSceneSection* Section = WeakSection.Get();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
FRelativeOffset Offset;
if (Section->HasStartFrame())
{
Offset.StartOffset = Section->GetInclusiveStartFrame() - MouseTimePrev;
}
if (Section->HasEndFrame())
{
Offset.EndOffset = Section->GetExclusiveEndFrame() - MouseTimePrev;
}
RelativeOffsets.Add(Offset);
}
// Sections can be dragged vertically to adjust their row up or down, so we need to store what row each section is currently on. A section
// can be dragged above all other sections - this is accomplished by moving all other sections down. We store the row indices for all sections
// in all tracks that we're modifying so we can get them later to move them.
TSet<UMovieSceneTrack*> Tracks;
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
UMovieSceneSection* Section = WeakSection.Get();
Tracks.Add(Section->GetTypedOuter<UMovieSceneTrack>());
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
for (UMovieSceneTrack* Track : Tracks)
{
for (UMovieSceneSection* Section : Track->GetAllSections())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
InitialSectionRowIndicies.Add(FInitialRowIndex{ Section, Section->GetRowIndex() });
}
}
// Our Key Handles don't store their times so we need to convert the handles into an array of times
// so that we can store the relative offset to each one.
TArray<FFrameNumber> KeyTimes;
KeyTimes.SetNum(Keys.Num());
GetKeyTimes(KeysAsArray, KeyTimes);
for (int32 Index = 0; Index < KeyTimes.Num(); ++Index)
{
// Key offsets use only the Start offset and don't set the End offset as they do not represent ranges.
FRelativeOffset KeyOffset;
KeyOffset.StartOffset = KeyTimes[Index] - MouseTimePrev;
// These are packed with our Section Offsets (ToDo: Is this actually a good idea?)
RelativeOffsets.Add(KeyOffset);
}
// Keys can be moved within sections without the section itself being moved, so we need to call Modify on any section that owns a key that isn't also being moved.
ModifyNonSelectedSections();
}
void FMoveKeysAndSections::OnDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
if (!Sections.Num() && !Keys.Num())
{
return;
}
ESequencerScrubberStyle ScrubStyle = Sequencer.GetScrubStyle();
FFrameRate TickResolution = Sequencer.GetFocusedTickResolution();
FFrameRate DisplayRate = Sequencer.GetFocusedDisplayRate();
// Convert the current mouse position to a time
FVector2D VirtualMousePos = VirtualTrackArea.PhysicalToVirtual(LocalMousePos);
FFrameTime MouseTime = VirtualTrackArea.PixelToFrame(LocalMousePos.X);
// Calculate snapping first which modifies our MouseTime to reflect where it would have to be for the closest snap to work.
if (Settings->GetIsSnapEnabled())
{
float SnapThresholdPx = VirtualTrackArea.PixelToSeconds(PixelSnapWidth) - VirtualTrackArea.PixelToSeconds(0.f);
int32 SnapThreshold = (SnapThresholdPx * TickResolution).FloorToFrame().Value;
// The edge of each bounded section as well as each individual key is a valid marker to try and snap to intervals/sections/etc.
// We take our stored offsets and add them to our current time to figure out where on the timeline the are currently.
TArray<FFrameNumber> ValidSnapMarkers;
// If they have both keys and settings selected then we snap to the interval if either one of them is enabled, otherwise respect the individual setting.
const bool bSnapToInterval = (KeysAsArray.Num() > 0 && Settings->GetSnapKeyTimesToInterval()) || (Sections.Num() > 0 && Settings->GetSnapSectionTimesToInterval());
const bool bSnapToLikeTypes = (KeysAsArray.Num() > 0 && Settings->GetSnapKeyTimesToKeys()) || (Sections.Num() > 0 && Settings->GetSnapSectionTimesToSections());
// RelativeOffsets contains both our sections and our keys, and we add them all as potential things that can snap to stuff.
for (const FRelativeOffset& Offset : RelativeOffsets)
{
if (Offset.StartOffset.IsSet())
{
ValidSnapMarkers.Add((Offset.StartOffset.GetValue() + MouseTime).FloorToFrame());
}
if (Offset.EndOffset.IsSet())
{
ValidSnapMarkers.Add((Offset.EndOffset.GetValue() + MouseTime).FloorToFrame());
}
}
// Now we'll try and snap all of these points to the closest valid snap marker (which may be a section or interval)
TOptional<FSequencerSnapField::FSnapResult> SnappedTime;
if (bSnapToLikeTypes)
{
// This may or may not set the SnappedTime depending on if there are any sections within the threshold.
SnappedTime = SnapField->Snap(ValidSnapMarkers, SnapThreshold);
}
if (!SnappedTime.IsSet() && bSnapToInterval)
{
// Snap to the nearest interval (if enabled). Snapping to other objects has over interval.
int32 IntervalSnapThreshold = FMath::RoundToInt((TickResolution / DisplayRate).AsDecimal());
SnappedTime = SnapToInterval(ValidSnapMarkers, IntervalSnapThreshold, TickResolution, DisplayRate, ScrubStyle);
}
// If they actually snapped to something (snapping may be on but settings might dictate nothing to snap to) add the difference
// to our current MouseTime so that MouseTime reflects the amount needed to move to get to the whole snap point.
if (SnappedTime.IsSet())
{
// Add the snapped amount onto the mouse time so the resulting delta brings us in alignment.
MouseTime += (SnappedTime->Snapped - SnappedTime->Original);
}
}
if (Settings->GetIsSnapEnabled() && Settings->GetSnapKeysAndSectionsToPlayRange() && !Settings->ShouldKeepPlayRangeInSectionBounds())
{
MouseTime = UE::MovieScene::ClampToDiscreteRange(MouseTime, Sequencer.GetPlaybackRange());
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// We'll calculate a DeltaX based on limits on movement (snapping, section collision) and then use them on keys and sections below.
TOptional<FFrameNumber> MaxDeltaX = GetMovementDeltaX(MouseTime);
FFrameNumber MouseDeltaTime = (MouseTime - MouseTimePrev).FloorToFrame();
MouseTimePrev = MouseTimePrev + MaxDeltaX.Get(MouseDeltaTime);
// Move sections horizontally (limited by our calculated delta) and vertically based on mouse cursor.
bool bSectionMovementModifiedStructure = HandleSectionMovement(MouseTime, VirtualMousePos, LocalMousePos, MaxDeltaX, MouseDeltaTime);
// Update our key times by moving them by our delta.
HandleKeyMovement(MaxDeltaX, MouseDeltaTime);
// Get a list of the unique tracks in this selection and update their easing so previews draw interactively as you drag.
TSet<UMovieSceneTrack*> Tracks;
FMovieSceneSectionMovedParams SectionMovedParams(EPropertyChangeType::Interactive);
EMovieSceneSectionMovedResult SectionMovedResult(EMovieSceneSectionMovedResult::None);
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
if (UMovieSceneTrack* Track = WeakSection.Get()->GetTypedOuter<UMovieSceneTrack>())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
Track->Modify();
SectionMovedResult |= Track->OnSectionMoved(*WeakSection.Get(), SectionMovedParams);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
Tracks.Add(Track);
}
}
bSectionMovementModifiedStructure |= (SectionMovedResult != EMovieSceneSectionMovedResult::None);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
for (UMovieSceneTrack* Track : Tracks)
{
Track->UpdateEasing();
}
// If we changed the layout by rearranging sections we need to tell the Sequencer to rebuild things, otherwise just re-evaluate existing tracks.
if (bSectionMovementModifiedStructure)
{
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::MovieSceneStructureItemsChanged);
}
else
{
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::TrackValueChanged);
}
}
void FMoveKeysAndSections::OnEndDrag(const FPointerEvent& MouseEvent, FVector2D LocalMousePos, const FVirtualTrackArea& VirtualTrackArea)
{
if (!Sections.Num() && !Keys.Num())
{
return;
}
InitialSectionRowIndicies.Empty();
ModifiedNonSelectedSections.Empty();
// Tracks can tell us if the row indexes for any sections were changed during our drag/drop operation.
bool bRowIndicesChanged = false;
TSet<UMovieSceneTrack*> Tracks;
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
// Grab only unique tracks as multiple sections can reside on the same track.
Tracks.Add(WeakSection.Get()->GetTypedOuter<UMovieSceneTrack>());
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
for (UMovieSceneTrack* Track : Tracks)
{
// Ensure all of the tracks have updated the row indices for their sections
bRowIndicesChanged |= Track->FixRowIndices();
}
if (bRowIndicesChanged)
{
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::MovieSceneStructureItemsChanged);
}
FMovieSceneSectionMovedParams SectionMovedParams(EPropertyChangeType::ValueSet);
EMovieSceneSectionMovedResult SectionMovedResult(EMovieSceneSectionMovedResult::None);
for (const TWeakObjectPtr<UMovieSceneSection>& WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
UMovieSceneSection* Section = WeakSection.Get();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
UMovieSceneTrack* OuterTrack = Cast<UMovieSceneTrack>(Section->GetOuter());
if (OuterTrack)
{
OuterTrack->Modify();
SectionMovedResult |= OuterTrack->OnSectionMoved(*Section, SectionMovedParams);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
}
for (UMovieSceneTrack* Track : Tracks)
{
Track->UpdateEasing();
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
EndTransaction();
if (SectionMovedResult != EMovieSceneSectionMovedResult::None)
{
Sequencer.NotifyMovieSceneDataChanged(EMovieSceneDataChangeType::MovieSceneStructureItemsChanged);
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
void FMoveKeysAndSections::ModifyNonSelectedSections()
{
for (const FSequencerSelectedKey& Key : Keys)
{
UMovieSceneSection* OwningSection = Key.Section;
const bool bHasBeenModified = ModifiedNonSelectedSections.Contains(OwningSection);
const bool bIsAlreadySelected = Sections.Contains(OwningSection);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
if (!bHasBeenModified && !bIsAlreadySelected)
{
OwningSection->SetFlags(RF_Transactional);
if (OwningSection->TryModify())
{
ModifiedNonSelectedSections.Add(OwningSection);
}
}
}
}
TRange<FFrameNumber> FMoveKeysAndSections::GetSectionBoundaries(const UMovieSceneSection* Section)
{
// Find the borders of where you can drag to
FFrameNumber LowerBound = TNumericLimits<int32>::Lowest(), UpperBound = TNumericLimits<int32>::Max();
// Find the track node for this section
TOptional<FSectionHandle> SectionHandle = Sequencer.GetNodeTree()->GetSectionHandle(Section);
if (SectionHandle)
{
// Get the closest borders on either side
const TArray< TSharedRef<ISequencerSection> >& AllSections = SectionHandle->GetTrackNode()->GetSections();
for (TSharedRef<ISequencerSection> SectionInterface : AllSections)
{
const UMovieSceneSection* TestSection = SectionInterface->GetSectionObject();
if (!TestSection || Sections.Contains(TestSection))
{
continue;
}
if (TestSection->HasEndFrame() && Section->HasStartFrame() && TestSection->GetExclusiveEndFrame() <= Section->GetInclusiveStartFrame() && TestSection->GetExclusiveEndFrame() > LowerBound)
{
LowerBound = TestSection->GetExclusiveEndFrame();
}
if (TestSection->HasStartFrame() && Section->HasEndFrame() && TestSection->GetInclusiveStartFrame() >= Section->GetExclusiveEndFrame() && TestSection->GetInclusiveStartFrame() < UpperBound)
{
UpperBound = TestSection->GetInclusiveStartFrame();
}
}
}
return TRange<FFrameNumber>(LowerBound, UpperBound);
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
TOptional<FFrameNumber> FMoveKeysAndSections::GetMovementDeltaX(FFrameTime MouseTime)
{
TOptional<FFrameNumber> DeltaX;
// The delta of the mouse is the difference in the current mouse time vs when we started dragging
const FFrameNumber MouseDeltaTime = (MouseTime - MouseTimePrev).FloorToFrame();
// Disallow movement if any of the sections can't move
for (int32 Index = 0; Index < Sections.Num(); ++Index)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
// If we're moving a section that is blending with something then it's OK if it overlaps stuff, the blend amount will get updated at the end.
UMovieSceneSection* Section = Sections[Index].Get();
if (!Section)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
continue;
}
TOptional<FFrameNumber> LeftMovementMaximum;
TOptional<FFrameNumber> RightMovementMaximum;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// We'll calculate this section's borders and clamp the possible delta time to be less than that
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
if (!Section->GetBlendType().IsValid())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
TRange<FFrameNumber> SectionBoundaries = GetSectionBoundaries(Section);
LeftMovementMaximum = UE::MovieScene::DiscreteInclusiveLower(SectionBoundaries);
RightMovementMaximum = UE::MovieScene::DiscreteExclusiveUpper(SectionBoundaries);
}
if (Settings->GetIsSnapEnabled() && Settings->GetSnapKeysAndSectionsToPlayRange() && !Settings->ShouldKeepPlayRangeInSectionBounds())
{
if (!LeftMovementMaximum.IsSet() || LeftMovementMaximum.GetValue() < Sequencer.GetPlaybackRange().GetLowerBoundValue())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
LeftMovementMaximum = Sequencer.GetPlaybackRange().GetLowerBoundValue();
}
if (!RightMovementMaximum.IsSet() || RightMovementMaximum.GetValue() > Sequencer.GetPlaybackRange().GetUpperBoundValue())
{
RightMovementMaximum = Sequencer.GetPlaybackRange().GetUpperBoundValue();
}
}
if (LeftMovementMaximum.IsSet())
{
if (Section->HasStartFrame())
{
FFrameNumber NewStartTime = Section->GetInclusiveStartFrame() + MouseDeltaTime;
if (NewStartTime < LeftMovementMaximum.GetValue())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
FFrameNumber ClampedDeltaTime = LeftMovementMaximum.GetValue() - Section->GetInclusiveStartFrame();
if (!DeltaX.IsSet() || DeltaX.GetValue() > ClampedDeltaTime)
{
DeltaX = ClampedDeltaTime;
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
}
}
if (RightMovementMaximum.IsSet())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
if (Section->HasEndFrame())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
FFrameNumber NewEndTime = Section->GetExclusiveEndFrame() + MouseDeltaTime;
if (NewEndTime > RightMovementMaximum.GetValue())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
FFrameNumber ClampedDeltaTime = RightMovementMaximum.GetValue() - Section->GetExclusiveEndFrame();
if (!DeltaX.IsSet() || DeltaX.GetValue() > ClampedDeltaTime)
{
DeltaX = ClampedDeltaTime;
}
}
}
}
}
if (Settings->GetIsSnapEnabled() && Settings->GetSnapKeysAndSectionsToPlayRange() && !Settings->ShouldKeepPlayRangeInSectionBounds())
{
TArray<FFrameNumber> CurrentKeyTimes;
CurrentKeyTimes.SetNum(KeysAsArray.Num());
GetKeyTimes(KeysAsArray, CurrentKeyTimes);
for (int32 Index = 0; Index < CurrentKeyTimes.Num(); ++Index)
{
FSequencerSelectedKey& SelectedKey = KeysAsArray[Index];
const bool bOwningSectionIsSelected = Sections.Contains(SelectedKey.Section);
// We don't want to apply delta if we have the key's section selected as well, otherwise they get double
// transformed (moving the section moves the keys + we add the delta to the key positions).
if (!bOwningSectionIsSelected)
{
FFrameNumber NewKeyTime = CurrentKeyTimes[Index] + MouseDeltaTime;
if (NewKeyTime < Sequencer.GetPlaybackRange().GetLowerBoundValue())
{
FFrameNumber ClampedDeltaTime = CurrentKeyTimes[Index] - Sequencer.GetPlaybackRange().GetLowerBoundValue();
if (!DeltaX.IsSet() || DeltaX.GetValue() > ClampedDeltaTime)
{
DeltaX = ClampedDeltaTime;
}
}
if (NewKeyTime > Sequencer.GetPlaybackRange().GetUpperBoundValue())
{
FFrameNumber ClampedDeltaTime = Sequencer.GetPlaybackRange().GetUpperBoundValue() - CurrentKeyTimes[Index];
if (!DeltaX.IsSet() || DeltaX.GetValue() > ClampedDeltaTime)
{
DeltaX = ClampedDeltaTime;
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
}
}
}
return DeltaX;
}
bool FMoveKeysAndSections::HandleSectionMovement(FFrameTime MouseTime, FVector2D VirtualMousePos, FVector2D LocalMousePos, TOptional<FFrameNumber> MaxDeltaX, FFrameNumber DesiredDeltaX)
{
// Don't try to process moving sections if we don't have any sections.
if (Sections.Num() == 0)
{
return false;
}
// If sections are all on different rows, don't set row indices for anything because it leads to odd behavior.
bool bSectionsAreOnDifferentRows = false;
int32 FirstRowIndex = Sections[0].Get()->GetRowIndex();
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
UMovieSceneSection* Section = WeakSection.Get();
if (FirstRowIndex != Section->GetRowIndex())
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
bSectionsAreOnDifferentRows = true;
}
}
TArray<TSharedRef<FSequencerTrackNode> > TrackNodes;
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
bool bRowIndexChanged = false;
for (TWeakObjectPtr<UMovieSceneSection> WeakSection : Sections)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
UMovieSceneSection* Section = WeakSection.Get();
UMovieSceneTrack* Track = Section->GetTypedOuter<UMovieSceneTrack>();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
const TArray<UMovieSceneSection*>& AllSections = Track->GetAllSections();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
TArray<UMovieSceneSection*> NonDraggedSections;
for (UMovieSceneSection* TrackSection : AllSections)
{
if (!Sections.Contains(TrackSection))
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
NonDraggedSections.Add(TrackSection);
}
}
TOptional<FSectionHandle> SectionHandle = Sequencer.GetNodeTree()->GetSectionHandle(Section);
if (!SectionHandle)
{
continue;
}
TSharedRef<FSequencerTrackNode> TrackNode = SectionHandle->GetTrackNode();
TrackNodes.AddUnique(TrackNode);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
int32 TargetRowIndex = Section->GetRowIndex();
// Handle vertical dragging to re-arrange tracks. We don't support vertical rearranging if you're dragging via
// a key, as the built in offset causes it to always jump down a row even without moving the mouse.
if (Track->SupportsMultipleRows() && AllSections.Num() > 1 && bHotspotWasSection)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
// Compute the max row index whilst disregarding the one we're dragging
int32 MaxRowIndex = 0;
for (UMovieSceneSection* NonDraggedSection : NonDraggedSections)
{
if (NonDraggedSection != Section)
{
MaxRowIndex = FMath::Max(NonDraggedSection->GetRowIndex() + 1, MaxRowIndex);
}
}
// Handle sub-track and non-sub-track dragging
if (TrackNode->GetSubTrackMode() == FSequencerTrackNode::ESubTrackMode::None)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
const int32 NumRows = FMath::Max(Section->GetRowIndex() + 1, MaxRowIndex);
// Find the total height of the track - this is necessary because tracks may contain key areas, but they will not use sub tracks unless there is more than one row
float VirtualSectionBottom = 0.f;
TrackNode->TraverseVisible_ParentFirst([&](FSequencerDisplayNode& Node) { VirtualSectionBottom = Node.GetVirtualBottom(); return true; }, true);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Assume same height rows
const float VirtualSectionTop = TrackNode->GetVirtualTop();
const float VirtualSectionHeight = VirtualSectionBottom - TrackNode->GetVirtualTop();
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
const float VirtualRowHeight = VirtualSectionHeight / NumRows;
const float MouseOffsetWithinRow = VirtualMousePos.Y - (VirtualSectionTop + (VirtualRowHeight * TargetRowIndex));
if (MouseOffsetWithinRow < VirtualRowHeight || MouseOffsetWithinRow > VirtualRowHeight)
{
const int32 NewIndex = FMath::FloorToInt((VirtualMousePos.Y - VirtualSectionTop) / VirtualRowHeight);
TargetRowIndex = FMath::Clamp(NewIndex, 0, MaxRowIndex);
}
// If close to the top of the row, move else everything down
if (VirtualMousePos.Y <= VirtualSectionTop || LocalMousePos.Y <= 0)
{
TargetRowIndex = -1;
}
}
else if (TrackNode->GetSubTrackMode() == FSequencerTrackNode::ESubTrackMode::SubTrack)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
TSharedPtr<FSequencerTrackNode> ParentTrack = StaticCastSharedPtr<FSequencerTrackNode>(TrackNode->GetParent());
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
if (ensure(ParentTrack.IsValid()))
{
for (int32 ChildIndex = 0; ChildIndex < ParentTrack->GetChildNodes().Num(); ++ChildIndex)
{
TSharedRef<FSequencerDisplayNode> ChildNode = ParentTrack->GetChildNodes()[ChildIndex];
float VirtualSectionTop = ChildNode->GetVirtualTop();
float VirtualSectionBottom = 0.f;
ChildNode->TraverseVisible_ParentFirst([&](FSequencerDisplayNode& Node) { VirtualSectionBottom = Node.GetVirtualBottom(); return true; }, true);
if (ChildIndex == 0 && (VirtualMousePos.Y <= VirtualSectionTop || LocalMousePos.Y <= 0))
{
TargetRowIndex = 0;
for (TSharedRef<ISequencerSection> TrackSection : TrackNode->GetSections())
{
if (!Sections.Contains(TrackSection->GetSectionObject()))
{
TargetRowIndex = -1;
break;
}
}
break;
}
else if (VirtualMousePos.Y < VirtualSectionBottom)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
TargetRowIndex = ChildIndex;
break;
}
else
{
TargetRowIndex = ChildIndex + 1;
}
}
// Track if we're expanding a parent track so we can unexpand it if we stop targeting it
if (TargetRowIndex > 0)
{
if (!ParentTrack->IsExpanded() && ParentTrack != ExpandedParentTrack)
{
if (ExpandedParentTrack.IsValid())
{
ExpandedParentTrack->SetExpansionState(false);
ExpandedParentTrack = nullptr;
}
ExpandedParentTrack = ParentTrack;
ParentTrack->SetExpansionState(true);
}
}
else if (ExpandedParentTrack.IsValid())
{
ExpandedParentTrack->SetExpansionState(false);
ExpandedParentTrack = nullptr;
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
}
}
bool bDeltaX = DesiredDeltaX != 0;
bool bDeltaY = TargetRowIndex != Section->GetRowIndex();
const int32 TargetRowDelta = TargetRowIndex - Section->GetRowIndex();
// Prevent flickering by only moving sections if the user has actually made an effort to do so
if (bDeltaY && PrevMousePosY.IsSet())
{
// Check mouse has been moved in the direction of intended move
if ((TargetRowDelta < 0 && LocalMousePos.Y - PrevMousePosY.GetValue() > 1.0f) || (TargetRowDelta > 0 && LocalMousePos.Y - PrevMousePosY.GetValue() < 1.0f))
{
// Mouse was not moved in the direction the section wants to swap
// Assume offset is due to UI relayout and block moving the section
bDeltaY = false;
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Horizontal movement
if (bDeltaX)
{
Section->MoveSection(MaxDeltaX.Get(DesiredDeltaX));
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// Vertical movement
if (bDeltaY && !bSectionsAreOnDifferentRows &&
(
Section->GetBlendType().IsValid() ||
!Section->OverlapsWithSections(NonDraggedSections, TargetRowIndex - Section->GetRowIndex(), DesiredDeltaX.Value)
)
)
{
// Reached the top, move everything else we're not moving downwards
if (TargetRowIndex == -1)
{
if (!bSectionsAreOnDifferentRows)
{
// If the sections being moved are all at the top, and all others are below it, do nothing
bool bSectionsBeingMovedAreAtTop = true;
for (const FInitialRowIndex& InitialRowIndex : InitialSectionRowIndicies)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
if (!Sections.Contains(InitialRowIndex.Section))
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
if (InitialRowIndex.RowIndex <= FirstRowIndex)
{
bSectionsBeingMovedAreAtTop = false;
break;
}
}
}
if (!bSectionsBeingMovedAreAtTop)
{
for (const FInitialRowIndex& InitialRowIndex : InitialSectionRowIndicies)
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
if (!Sections.Contains(InitialRowIndex.Section))
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
{
InitialRowIndex.Section->Modify();
InitialRowIndex.Section->SetRowIndex(InitialRowIndex.RowIndex + 1);
bRowIndexChanged = true;
}
}
}
}
}
else
{
Section->Modify();
Section->SetRowIndex(TargetRowIndex);
bRowIndexChanged = true;
}
}
}
if (bRowIndexChanged)
{
PrevMousePosY = LocalMousePos.Y;
// Expand track node if it wasn't already expanded. This ensures that multi row tracks will show multiple rows if regenerated
for (TSharedRef<FSequencerTrackNode> TrackNode : TrackNodes)
{
if (!TrackNode->IsExpanded())
{
TArray<TSharedRef<ISequencerSection> > TrackNodeSections = TrackNode->GetSections();
if (TrackNodeSections.Num() && TrackNodeSections[0]->GetSectionObject())
{
int32 SectionFirstRowIndex = TrackNodeSections[0]->GetSectionObject()->GetRowIndex();
for (TSharedRef<ISequencerSection> TrackNodeSection : TrackNodeSections)
{
if (TrackNodeSection->GetSectionObject() && SectionFirstRowIndex != TrackNodeSection->GetSectionObject()->GetRowIndex())
{
TrackNode->SetExpansionState(true);
break;
}
}
}
}
}
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
return bRowIndexChanged;
}
void FMoveKeysAndSections::HandleKeyMovement(TOptional<FFrameNumber> MaxDeltaX, FFrameNumber DesiredDeltaX)
{
if (KeysAsArray.Num() == 0)
{
return;
}
// Apply the delta to our key times. We need to get our key time so that we can add the delta
// to each one so that we come up with a new absolute time for it.
TArray<FFrameNumber> CurrentKeyTimes;
CurrentKeyTimes.SetNum(KeysAsArray.Num());
GetKeyTimes(KeysAsArray, CurrentKeyTimes);
for (int32 Index = 0; Index < CurrentKeyTimes.Num(); ++Index)
{
FSequencerSelectedKey& SelectedKey = KeysAsArray[Index];
const bool bOwningSectionIsSelected = Sections.Contains(SelectedKey.Section);
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
// We don't want to apply delta if we have the key's section selected as well, otherwise they get double
// transformed (moving the section moves the keys + we add the delta to the key positions).
if (!bOwningSectionIsSelected)
{
CurrentKeyTimes[Index] += MaxDeltaX.Get(DesiredDeltaX);
}
}
// Now set the times back to the keys.
SetKeyTimes(KeysAsArray, CurrentKeyTimes);
// Expand any sections containing those keys to encompass their new location
for (int32 Index = 0; Index < CurrentKeyTimes.Num(); ++Index)
{
FSequencerSelectedKey SelectedKey = KeysAsArray[Index];
UMovieSceneSection* Section = SelectedKey.Section;
if (ModifiedNonSelectedSections.Contains(Section))
{
// If the key moves outside of the section resize the section to fit the key
// @todo Sequencer - Doesn't account for hitting other sections
const FFrameNumber NewKeyTime = CurrentKeyTimes[Index];
TRange<FFrameNumber> SectionRange = Section->GetRange();
if (!SectionRange.Contains(NewKeyTime))
{
TRange<FFrameNumber> NewRange = TRange<FFrameNumber>::Hull(SectionRange, TRange<FFrameNumber>(NewKeyTime));
Section->SetRange(NewRange);
}
}
}
// Snap the play time to the new dragged key time if all the keyframes were dragged to the same time
if (Settings->GetSnapPlayTimeToDraggedKey() && CurrentKeyTimes.Num())
{
FFrameNumber FirstFrame = CurrentKeyTimes[0];
auto EqualsFirstFrame = [=](FFrameNumber In)
{
return In == FirstFrame;
};
if (Algo::AllOf(CurrentKeyTimes, EqualsFirstFrame))
{
Sequencer.SetLocalTime(FirstFrame);
}
}
for (UMovieSceneSection* Section : ModifiedNonSelectedSections)
{
if (Section)
{
Section->MarkAsChanged();
}
Copying //UE4/Dev-Sequencer to //UE4/Dev-Main (Source: //UE4/Dev-Sequencer @ 4044339) #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]
2018-05-02 10:10:00 -04:00
}
Copying //UE4/Dev-Niagara to //UE4/Dev-Main (Source: //UE4/Dev-Niagara @ 4074996) #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]
2018-05-16 12:53:39 -04:00
}