Description

A Sequence with Override Instance Data enabled and a SubShot will accumulate the TransformOrigin Location wrongly and overshoot the expected end position.
The licensee has encountered a particular setup with a Level Sequencer with OverrideInstanceData enabled, and Location applied to TransformOrigin. If said LevelSequence contains a Shot Track and both base track and shot track manipulate an actor's position, the Actor will shoot out very rapidily to unexpectedly far positions when compared to the expected end point.
The end position is not the same each time the sequence is run.
It looks like the TransformOrigin is applied repeatedly on top of the transformation the SubShot is doing.
In the ReproProject this is hinted by the fact the abnormal movement only happens when the ShotTrack is reached.

Test results:
UE version Error is reproduced
Vanilla 5.0.3 No
Vanilla 5.1.1 No
Vanilla 5.2.1 No
Vanilla 5.3.2 No
Vanilla 5.4.4 No
Vanilla 5.5.4 Yes
Perforce 5.6 (latest) No
I've attached a the 5.0 version of the repro project that can be opened in later versions.

There is also a different repro within the UDN ticket

Steps to Reproduce

Steps to Reproduce
Using the repro project:
The licensee has added a repro project and I strongly recommend using it
Open the SequencerLevel map,
Open the Level Sequence in the scene,
Play it
Verify the CubeActor be shot into the distance.

For manual reproduction:
Create a new level
Create a new level sequence, called 'OuterSequence'
Add cube to the level, name it 'Parent'
Add a sphere mesh component to it as a child (will call this 'Child')
Drag this cube into the OuterSequence as a possessable binding
Key the transform of the Parent cube
Add a binding to the Child mesh component
Key the transform of the Child mesh component
Create a new shot sequence within OuterSequence, named eg. InnerSequence
Drag this cube into the InnerSequence as a possessable binding
Key the transform of the Parent actor here too
Finally select the sequence player actor in the world outliner, and tick 'Override Instance Data'
Set a 'Transform Origin' of eg. (100, 100, 100)
Scrub the Outer sequence in sequencer and observe that the cube flies off into the distance
Mute the Child mesh transform track and observe this no longer occurs
Sometimes you need to adjust a key on the Child mesh transform track before it starts behaving weirdly (though can undo your actual value change and it'll still fly away)

Expected result: Cube Actor should end up at (X=120.000000,Y=210.000000,Z=360.000000)
Actual result: Cube Actor ends up at (X=49020.000000,Y=49110.000000,Z=49269.604151) - this position varies

Callstack

> UnrealEditor-Sequencer.dll!FSequencer::UpdateSubSequenceData() Line 1554 C++
UnrealEditor-Sequencer.dll!FSequencer::Tick(float InDeltaTime) Line 1088 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!FTickableEditorObject::TickObjects::__l2::<lambda_1>::operator()(FTickableObjectBase * TickableObject) Line 33 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!Invoke(FTickableEditorObject::TickObjects::__l2::<lambda_1> &) Line 47 C++
UnrealEditor-UnrealEd.dll!?Call@?$TFunctionRefCaller@V<lambda_1>@?1??TickObjects@FTickableEditorObject@@SAXM@Z@XPEAVFTickableObjectBase@@@Function@Private@Core@UE@@SAXPEAXAEAPEAVFTickableObjectBase@@@Z(void * Obj, FTickableObjectBase * & <Params_0>) Line 315 C++
[Inline Frame] UnrealEditor-Engine.dll!UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,void __cdecl(FTickableObjectBase *)>::operator()(FTickableObjectBase * <Params_0>) Line 470 C++
UnrealEditor-Engine.dll!FTickableObjectBase::SimpleTickObjects(FTickableObjectBase::FTickableStatics & Statics, TFunctionRef<void __cdecl(FTickableObjectBase *)> TickFunc) Line 112 C++
[Inline Frame] UnrealEditor-UnrealEd.dll!FTickableEditorObject::TickObjects(const float) Line 30 C++
UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1898 C++
UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 550 C++
UnrealEditor.exe!FEngineLoop::Tick() Line 5877 C++
[Inline Frame] UnrealEditor.exe!EngineTick() Line 69 C++
UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 188 C++
UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 266 C++
UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 317 C++
[External Code]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-262998 in the post.

0
Login to Vote

Unresolved
ComponentUE - Anim - Sequencer
Affects Versions5.5.4
CreatedMar 28, 2025
UpdatedApr 9, 2025
View Jira Issue