Commit Graph

1031 Commits

Author SHA1 Message Date
juan portillo
d4c6169b10 Sequencer:
Added option to have different Keyed Status / Icon via Details Keyframe Handler.
Current Keyframe Icon is completely replaced, but not yet deleted from Content or from the Style Set entry.
Added Sequencer->GetPropertyKeyedStatus, which uses the FSequencerPropertyKeyedStatus class to find the keyed status for a property.

The keyed status of a property is gotten through matching the property handle to the channel via its channel meta data. Two new member variables to the Channel MetaData were added to achieve this:
1) Sub Property Path: For structs, this is the relative path from the topmost property. E.g. for the pitch in a Transform property this would be "Rotation.Pitch"
2) Sub Property Path Map: some channels are re-used by multiple different structs and some might have different property names. The prime example is Transform and EulerTransform. These two have different names for their properties. FTransform uses "Translation" whereas FEulerTransform uses "Location", so these two must be differentiated via a map from the Struct's FName to the FName of the name it represents. This is also the case for Scale where FTransform uses "Scale3D" and FEulerTransform uses "Scale".

In addition to this, External handling is possible via ISequencerPropertyKeyedStatus::GetExternalHandler. This is used by Transform Track Editor to link the Scene Component properties (Relative Location/Rotation/Scale) so that these can also get their Keyframe Status properly, as the Transform Track itself can be in the Actor and not in the (Root) Scene Component where the properties are actually at.

#rb Max.Chen
#jira UE-188881, UE-145903, UE-193229

[CL 28307486 by juan portillo in ue5-main branch]
2023-09-27 22:48:56 -04:00
ludovic chabant
91ce6771a2 Sequencer: add option to disable auto-arranging of camera cut sections
#jira UE-195760
#rb max.chen

[CL 28243146 by ludovic chabant in ue5-main branch]
2023-09-26 15:35:05 -04:00
sara schvartzman
9160ce8a56 Control RIg: Invert pose into additive control rig
#jira UE-194091
#rb mike.zyracki

[CL 28219253 by sara schvartzman in ue5-main branch]
2023-09-26 05:01:29 -04:00
mike zyracki
8896180aff Sequencer: Constraints: Constraints in LS update
Main fix is to not use the Constraint Manager/Actor when a constraint is added to a level sequence. Only static constraints are now owned by the manager, animated constraints are owned by the section that the constraint channel is in, and we use a subsystem to gather both sets of these constraints as weak pointers so we can iterate over both groups.  Kept the controller logic around but that now feeds into the sub system.

Also as part of this got rid of the soft object ptr to the constraint in the section, instead we just always use the Spawn copy which we reference via a Get/Set functions.

Since FNames may not be unique when combining level sequences, we now use a FGuid to identify Cosntraints.

We now have options to show Selected,Level Sequence, Current, and All constaints in drop down. As part of this we need to refresh the content more often(on time change) since new constraints may show up and we also no longer cache constraint names or state but get it dynamically.
When we add actors to Sequencer we look to see if it has any static contraints if so we change them to dynamic/owned by the LS and key them.

In the template/system we had issues with constraints not getting turned off when exiting so we make sure to do so if no bound object or when exiting. Also we now always 'init' constraints which involves setting up dependencies/tick functions as needed on every tick in order to handle orders changing and spawning.
As part of starting to fix cycle issues that happen with tick dependencies we no longer set up a child trs dependency but instead always tick the child in the GetFunction(better but need to revisit one last time).

Bake to Control Rig with Sequencer Interp Type
Fixed issue when smart keying constriant active or not not working when over a current, we now just toggle based upon previous value.
#jira UE-192070
#rb benoit.gadreau

[CL 28214862 by mike zyracki in ue5-main branch]
2023-09-25 22:08:00 -04:00
juan portillo
80ebe0bec1 Sequencer:
- Added Support for keying Transform properties from Details Panel

#rb Andrew.Rodham

[CL 28190067 by juan portillo in ue5-main branch]
2023-09-25 11:52:59 -04:00
max chen
daec810c2b Sequencer: Fix crash when binding overrides array change
The repro in this case is adding binding overrides during runtime, then removing them once playback finished.

#jira UE-196249
#rb ludovic.chabant

[CL 28143057 by max chen in ue5-main branch]
2023-09-22 13:11:48 -04:00
ludovic chabant
2814fcabe7 Sequencer: use pre-animated state API in camera cut track instance, and remove directly use of player API
This change tries to address various problems with the camera cut evaluation logic:

- Use the pre-animated state API to properly handle restoring things, instead of doing it partially "by hand". This removes the need for a few hacks like the carry-over of previous view-targets from one sequence to the next.

- Move the code from FSequencer and ULevelSequencePlayer into the track instance (and some related helper classes). Not only does this remove a bit of code duplication, this also lets us take a first step towards removing the dependency of evaluation code on the player API.

#rb max.chen
#jira UE-194692

[CL 28093600 by ludovic chabant in ue5-main branch]
2023-09-21 13:26:39 -04:00
steve robb
51f3ea53ae Removed ChooseClass.h includes.
#rb trivial

[CL 27823723 by steve robb in ue5-main branch]
2023-09-13 05:43:01 -04:00
max chen
f9e13fc0a7 Sequencer: Prefer TrySetDefaultObject over TrySetDefaultValue
#rb david.bromberg, ludovic.chabant
[FYI] david.bromberg

[CL 27816215 by max chen in ue5-main branch]
2023-09-12 19:56:00 -04:00
max chen
76c9ee8215 Sequencer: IsNull deprecation
#rb david.bromberg, ludovic.chabant

[CL 27813550 by max chen in ue5-main branch]
2023-09-12 18:28:13 -04:00
max chen
ad4426479c Sequencer: IsNull deprecation
#rb david.bromberg, ludovic.chabant

[CL 27813398 by max chen in ue5-main branch]
2023-09-12 18:25:33 -04:00
max chen
2cffae32d7 Sequencer: TrySetDefaultValue or TrySetDefaultObject, not both
#rb david.bromberg, ludovic.chabant
[FYI] david.bromberg

[CL 27813165 by max chen in ue5-main branch]
2023-09-12 18:18:38 -04:00
david bromberg
88b7d31c73 Sequencer: Fix issue where Movie Scene Event UObject payload parameters were not properly creating references to the UObjects and therefore renaming those UObjects would not create redirectors and the references would be lost.
[REVIEW] [at]ue-sequencer
#jira UE-165499

[CL 27785664 by david bromberg in ue5-main branch]
2023-09-12 05:10:23 -04:00
david bromberg
ba6a2c427c Sequencer- Improve performance of searching for items in large sequences by keeping the Spawnables, Possessables, and ObjectBindings arrays sorted by FGuid and using BinarySearch where searching is necessary. Testing was performed on adds and searches in these arrays to ensure improvement (to searches). Adds are a bit more expensive, but should be alright in the vast majority of use cases. Iimprovement could be made if necessary to bulk additions by adding bulk operation functionality.
[REVIEW] [at]ue-sequencer
#jira UE-111561

[CL 27759752 by david bromberg in ue5-main branch]
2023-09-11 13:19:25 -04:00
max chen
f2bff70b03 Curve Editor: Show first and last key's tangent handle on both sides.
Previous, the left tangent handle for the first key and the right tangent handle for the last key would be hidden.

This is useful for example, if you have pre and post infinity set to cycle, you can manipulate the last key's leave tangent so that it's smooth to the first key's arrive tangent.

#jira UE-194990
#rb mike.zyracki

[CL 27742330 by max chen in ue5-main branch]
2023-09-10 15:57:44 -04:00
max chen
2317b13e2b Sequencer: Add toggle lock camera command to curve editor shared bindings
#jira UE-194889
#rb matt.hoffman

[CL 27719989 by max chen in ue5-main branch]
2023-09-08 14:14:23 -04:00
andrew rodham
fe8fc215e3 Sequencer: Fixed transform origins being removed from non-absolute auto-key operations
This code was correct for absolute sections, but not for any other blend types.

#rb Max.Chen

[CL 27632478 by andrew rodham in ue5-main branch]
2023-09-06 09:41:34 -04:00
david bromberg
61ff805fc8 Sequencer - Allow MovieSceneByteProperty tracks to find UEnums nested in structs in order to properly show the UI for animating these enums.
[REVIEW] [at]ue-sequencer
#jira UE-194570

[CL 27607421 by david bromberg in ue5-main branch]
2023-09-05 15:17:58 -04:00
david bromberg
5c5b2be807 Sequencer- Add fixup UX logic for Component Material Parameter and Material Switcher tracks. We now detect when a track bound to a material by slot name no longer matches both slot name and material index, and allow the user to either automatically or manually rebind the track to the material slot and index.
As part of this, change display name tooltips on tracks back to using a function rather than a saved value so they can be dynamically specified. This needed Sequencer and ObjectBindingID passed to the function for context. This was only very recently changed to use saved values, so this shouldn't cause issues.
#jira UE-192507
[REVIEW] [at]ue-sequencer

[CL 27595620 by david bromberg in ue5-main branch]
2023-09-05 10:15:32 -04:00
max chen
7b2e877c0a Curve Editor: Show arrive tangent if previous key is cubic. This allows the arrive tangent of a constant key to be visible and manipulatable.
#jira UE-190600
#rb mike.zyracki, ludovic.chabant

[CL 27564488 by max chen in ue5-main branch]
2023-09-01 15:56:04 -04:00
ludovic chabant
797868ddc9 Sequencer: re-add FBX import/export menu entries to template sequences
#rb max.chen

[CL 27524950 by ludovic chabant in ue5-main branch]
2023-08-31 11:46:00 -04:00
max chen
65b66314d8 Sequencer: Import from Animation Root transform keys as relative to the current time
#jira UE-194120
#rb mike.zyracki

[CL 27488054 by max chen in ue5-main branch]
2023-08-30 12:34:58 -04:00
max chen
add058d345 Sequencer: Remove dependency on SceneOutliner private
#jira UE-194142
#rnx
#rb matt.hoffman

[CL 27455815 by max chen in ue5-main branch]
2023-08-29 13:56:27 -04:00
mike zyracki
e183c0336e Sequencer: Add pre/post cycles to integer and bool channels. Integer supports all but linear, bool supports constant(default), cycle and oscillate
#jira UE-189430
#rb max.chen

[CL 27435481 by mike zyracki in ue5-main branch]
2023-08-29 00:48:27 -04:00
max chen
382c0e9e8b Sequencer: Fix duplicate LOC strings
#jira UE-193791
#rb david.bromberg
#rnx

[CL 27342694 by max chen in ue5-main branch]
2023-08-24 11:08:20 -04:00