Commit Graph

1061 Commits

Author SHA1 Message Date
andrew rodham
026febbcd6 Sequencer: Fixup some more assumptions where the playback context was a UWorld
#rb Max.Chen, Ludovic.Chabant

[CL 30001901 by andrew rodham in ue5-main branch]
2023-11-29 18:14:09 -05:00
max chen
35eeae9c78 Sequencer: Additional GetPlaybackContext fixes
#rb andrew.rodham, ludovic.chabant
#rnx
#jira UE-201421

[CL 29997080 by max chen in ue5-main branch]
2023-11-29 15:17:36 -05:00
max chen
3c670b6fe3 Sequencer: Fix FBX Export context with GetWorld()
#rb andrew.rodham, ludovic.chabant
#rnx
#jira UE-201421

[CL 29993608 by max chen in ue5-main branch]
2023-11-29 13:29:34 -05:00
max chen
63ca9003e3 Sequencer: Null check when locking camera to viewport and ther is no active viewport.
#jira UE-201007
#rb ludovic.chabant

[CL 29964052 by max chen in ue5-main branch]
2023-11-28 13:10:18 -05:00
david bromberg
7c36d1a60e Sequencer- Fix a few issues/bugs with Binding Lifetime tracks and overlapping sections on non-blending tracks in general.
* Broke out some copy/pasted code into a helper function for calculating the inverse of the lifetime section ranges, and protected against hanging in case somehow some of the sections overlap.
* Prevent re-making a section infinite if by doing so would cause it to overlap with another section in its range and the track doesn't allow blending on its sections.
* Fix a crash bug in the initial placement code for the binding lifetime sections caused by an edge case in the logic to prevent overlaps.

[REVIEW] [at]ue-sequencer
#jira UE-200796, UE-200795
#rb ludovic.chabant

[CL 29885252 by david bromberg in ue5-main branch]
2023-11-22 05:32:27 -05:00
benoit gadreau
21d3516222 Constraint baking:
- only remove transform keys in active intervals
    - cleanup useless inactive keys


#jira UE-199612, UE-198648
#rb Mike.Zyracki

[CL 29837789 by benoit gadreau in ue5-main branch]
2023-11-20 04:04:56 -05:00
joe pribele
1e6438eb61 combining FObjectPropertyPtr and FObjectProperty and FClassPropertyPtr and FClassProperty together
simplifies usage of Object Properties and fixes a few edge cases

see zousar.shaker for issues

#rb zousar.shaker

[CL 29761675 by joe pribele in ue5-main branch]
2023-11-15 17:27:09 -05:00
mike zyracki
2e04355678 Sequencer: Constraints: Constrained actor needs to be in Sequencer in order for ConstraintBindingID to be valid
#jira UE-198914
#rb benoit.gadreau

[CL 29760771 by mike zyracki in ue5-main branch]
2023-11-15 17:03:09 -05:00
mike zyracki
42f30d4604 Sequencer: Snapping: Constriants: Perform Euler filter when snapping/compensation static meshes
#jira UE-200411
#rb mike.zyracki

[CL 29756052 by mike zyracki in ue5-main branch]
2023-11-15 14:56:33 -05:00
benoit gadreau
6e68b1d1c2 Constraints: fixed misbehavior when undoing changes with the curve editor opened
#jira UE-200188
#rb mike.zyracki
#rnx

[CL 29680031 by benoit gadreau in ue5-main branch]
2023-11-13 04:29:30 -05:00
benoit gadreau
398ae6dee0 Constraints: fixed crash when deleting a constraint on at the top of the constraint list
- we have to force the reconstruction of the tree as FMovieSceneChannelHandle::Index will be changed when removing a curve model upper in the list

#jira UE-199938
#rb mike.zyracki
#rnx

[CL 29679988 by benoit gadreau in ue5-main branch]
2023-11-13 04:23:28 -05:00
david bromberg
dd8c44e6f5 Sequencer- Binding Lifetime Track.
The Binding Lifetime track is an optional track that can be added to any object binding. It allows the user to set time range(s) for when the object in question will be bound by Sequencer. Outside of those ranges, the object will be released, and any tracks underneath it will restore state/keep state as set.

Currently this track works for both spawnables and possessables. This track is a precursor to other binding types coming to Sequencer, and in the future this track will allow the user to trigger events as part of the binding activation/deactivation so that changes like AI control for example can be set when binding/unbinding NPC characters or player characters.

As part of this change, it was necessary to clean up some of the sequencer UI color settings on labels, as well as a few changes to the layer bar UI to facilitate a hatch overlay for the sections of the binding tracks that are in a deactivated area.

[REVIEW] [at]ue-sequencer
#jira UE-200088, UE-199857, UE-199299
#rb ludovic.chabant

[CL 29636485 by david bromberg in ue5-main branch]
2023-11-10 07:34:17 -05:00
max chen
e052feeb64 Curve: Fix GetValueRange where DBL_MIN means minimum positive. Change this to use NumericLimits with Max and Lowest.
#jira UE-199791
#rb mike.zyracki
#rb andrew.rodham

[CL 29562003 by max chen in ue5-main branch]
2023-11-08 10:41:59 -05:00
ludovic chabant
bb5b082fb1 Sequencer: move evaluation information onto FSharedPlaybackState
This is another step in the broader refactor to remove IMovieScenePlayer from the core evaluation code. This step moves some of the main evaluation information from the player and its root evaluation template instance, to the shared playback state.

With this knowledge, FSharedPlaybackState, FSequenceInstance, and a few other classes have access to basic things like the linker, runner, and more, so this change removes the need to pass these pointers into many methods. We do however still need to pass the player into a few places because the creation and initialization of sequence instances needs to execute some binding-related logic in a careful order. This will be further cleaned-up in a follow-up change when we move object caches and binidng overrides out of the player class.
#rb andrew.rodham
#jira UE-199666

[CL 29410139 by ludovic chabant in ue5-main branch]
2023-11-03 12:31:53 -04:00
david bromberg
aa2abbfe24 Sequencer- Add a new 'SequencerAnimationOverride' interface for blueprint Anim Instances.
This allows custom anim blueprints to either:
a) Allow Sequencer to swap out their anim instance during playback (swapping it back after). This is similar to checking the 'Force Custom Mode' checkbox on a Skeletal Animation track section, but at the blueprint level without having to change anything in Sequencer.
b) Provide a list of valid Anim Slot names for the Sequencer Skeletal Animation track section UI to choose from. When provided by a blueprint with the interface, a valid slot will always be chosen when creating new skeletal animation sections.

These features will allow UEFN devs to better manage Sequencer takeover of pawn animation without the user having to edit a SlotName in the Sequencer UI. To use these features will require them editing their anim blueprints to use this interface.

I had considered as part of this change hiding the Slot Name UI entirely in UEFN when there is no choice to be made, but decided against it for less UEFN-specific code.

[REVIEW] [at]ue-sequencer [at]guillaume.guay
#jira UE-199199, UE-199200
#rb Max.Chen

[CL 29316313 by david bromberg in ue5-main branch]
2023-11-01 10:25:28 -04:00
brian chrisman
fc7eeaa314 Fix for crash with invalid Sequencer shared pointer.
#rb andrew.rodham

[CL 29198207 by brian chrisman in ue5-main branch]
2023-10-27 17:09:54 -04:00
andrew rodham
f7232c7e44 Sequencer: Fixed a crash caused by a dangling delegate pointer
#rb Brian.Chrisman, Max.Chen

[CL 29137424 by andrew rodham in ue5-main branch]
2023-10-26 11:43:42 -04:00
max chen
92e962c3ea Sequencer: Nullptr check for subsequences when drawing the local frame time hint
#rb andrew.rodham
[FYI] nickolas.drake

[CL 29069468 by max chen in ue5-main branch]
2023-10-25 01:21:40 -04:00
max chen
de6b800de0 Sequencer: Mark SequencePlayer as deprecated for 5.4. It can be accessed through GetSequencePlayer()
#jira UE-197922
#rb andrew.rodham
#noqatesting
#lockdown aaron.dittmann, scott.lindeneau, corey.novich, dan.nottingham

[CL 28973413 by max chen in ue5-main branch]
2023-10-20 14:10:22 -04:00
max chen
55b2b39e28 Sequencer: Modify when adding a section for AddTrack
This fixes the UI not updating when adding a Spawn Track from the menu

#jira UE-197601
#rb ludovic.chabant
#rnx

[CL 28890085 by max chen in ue5-main branch]
2023-10-18 16:50:16 -04:00
max chen
aba828ba92 Sequencer: Rework DrawFrameTimeHint so that any section can supply a frame time to draw.
Rework layer id for DrawFrameTimeHint so that it's drawn with a layer id after the section title drawing.

#rb andrew.rodham, mike.zyracki
#rnx
#jira UE-197783

[CL 28879336 by max chen in ue5-main branch]
2023-10-18 11:54:03 -04:00
brian chrisman
1e4ee855dd Adding suppressible dialog to prompt user to use audio clock source when audio is added to a sequence. Dialog is only displayed in UEFN.
#rb max.chen

[CL 28853762 by brian chrisman in ue5-main branch]
2023-10-17 16:48:57 -04:00
david bromberg
57dc8b7e8b Sequencer: Fix new potential issue in Event Tracks caused by my CL27752174. That change introduced TObjectPtr<UObject> references instead of FString references to object parameters in the director blueprint endpoints. The reason for that change was to fix UE-165499 by allowing proper redirectors to get created and redirector fixup.
However, with that change, users can introduce illegal hard references to actors in levels by creating Actor parameters for event track endpoints and then creating keys on event tracks with that parameter pointing at actors in levels in Sequencer. These references then prevent the sequence from being saved and can create crashes.

This change changes the TObjectPtr<UObject> to FSoftObjectPath instead. As the previous change has not yet been rolled out in a UE version or hotfix, this change should be relatively safe. I have tested UE-165499 again with this new change and redirectors are still being resolved properly.

For completeness, UE-165499 should also be reverified.

[REVIEW] [at]ue-sequencer
#jira UE-197624

[CL 28713202 by david bromberg in ue5-main branch]
2023-10-12 12:02:32 -04:00
ludovic chabant
1114736815 Sequencer: fix locking/unlocking of cameras
When the level is about to be saved, properly remember which camera actor was locked to which viewport, and restore exactly that after the save operation has completed.

Also, do not mess up cinematic viewport lock when restoring camera locks.

#jira UE-197260
#rb max.chen

[CL 28679926 by ludovic chabant in ue5-main branch]
2023-10-11 16:09:28 -04:00
mike zyracki
0640be1eb8 Sequencer: Constraints getting removed if we compensate out of a sequence boundary so need ot re-evaluate to make sure it's set up.
#jira UE-197087
#rb benoit.gadreau

[CL 28673836 by mike zyracki in ue5-main branch]
2023-10-11 14:14:45 -04:00