Description

The problem is caused by the animation sequence playback position being set out of range from Sequencer.

The call stack is : 

UE4Editor-AnimGraphRuntime.dll!FAnimSequencerInstanceProxy::UpdateAnimTrack(UAnimSequenceBase * InAnimSequence, unsigned int SequenceId, const TOptional<FRootMotionOverride> & InRootMotionOverride, TOptional<float> InFromPosition, float InToPosition, float Weight, bool bFireNotifies) Line 202	C++
[Inline Frame] UE4Editor-AnimGraphRuntime.dll!FAnimSequencerInstanceProxy::UpdateAnimTrackWithRootMotion(UAnimSequenceBase *) Line 187	C++
UE4Editor-AnimGraphRuntime.dll!UAnimSequencerInstance::UpdateAnimTrackWithRootMotion(UAnimSequenceBase * InAnimSequence, int SequenceId, const TOptional<FRootMotionOverride> & RootMotion, float InFromPosition, float InToPosition, float Weight, bool bFireNotifies) Line 41	C++
UE4Editor-MovieSceneTracks.dll!UE::MovieScene::FComponentAnimationActuator::PreviewSetAnimPosition(FPersistentEvaluationData & PersistentData, IMovieScenePlayer & Player, USkeletalMeshComponent * SkeletalMeshComponent, FName SlotName, FObjectKey Section, UAnimSequenceBase * InAnimSequence, float InFromPosition, float InToPosition, float Weight, bool bFireNotifies, float DeltaTime, bool bPlaying, bool bResetDynamics, bool bForceCustomMode, const UMovieSceneSkeletalAnimationSection * AnimSection, FFrameTime CurrentTime) Line 528	C++
UE4Editor-MovieSceneTracks.dll!UE::MovieScene::FComponentAnimationActuator::ApplyAnimations(FPersistentEvaluationData & PersistentData, IMovieScenePlayer & Player, USkeletalMeshComponent * SkeletalMeshComponent, TArrayView<FMinimalAnimParameters const ,int> Parameters, float DeltaTime, bool bPreviewPlayback, bool bFireNotifies, bool bResetDynamics) Line 426	C++
UE4Editor-MovieSceneTracks.dll!UE::MovieScene::FComponentAnimationActuator::Actuate(UObject * InObject, const UE::MovieScene::FBlendedAnimation & InFinalValue, const TBlendableTokenStack<UE::MovieScene::FBlendedAnimation> & OriginalStack, const FMovieSceneContext & Context, FPersistentEvaluationData & PersistentData, IMovieScenePlayer & Player) Line 352	C++
UE4Editor-MovieSceneTracks.dll!TBlendableTokenStack<UE::MovieScene::FBlendedAnimation>::ComputeAndActuate(UObject * InObject, FMovieSceneBlendingAccumulator & Accumulator, FMovieSceneBlendingActuatorID InActuatorType, const FMovieSceneContext & Context, FPersistentEvaluationData & PersistentData, IMovieScenePlayer & Player) Line 28	C++
UE4Editor-MovieScene.dll!FMovieSceneBlendingAccumulator::Apply(const FMovieSceneContext & Context, FPersistentEvaluationData & PersistentData, IMovieScenePlayer & Player) Line 24	C++
UE4Editor-MovieScene.dll!FMovieSceneExecutionTokens::Apply(const FMovieSceneContext & RootContext, IMovieScenePlayer & Player) Line 77	C++
UE4Editor-MovieScene.dll!FMovieSceneTrackEvaluator::EvaluateGroup(const FMovieSceneEvaluationGroup & Group, const FMovieSceneContext & RootContext, IMovieScenePlayer & Player) Line 228	C++
UE4Editor-MovieScene.dll!FMovieSceneTrackEvaluator::Evaluate(FMovieSceneContext Context, IMovieScenePlayer & Player, FMovieSceneSequenceID InOverrideRootID) Line 132	C++
UE4Editor-MovieScene.dll!UE::MovieScene::FSequenceInstance::RunLegacyTrackTemplates() Line 285	C++
UE4Editor-MovieScene.dll!UE::MovieScene::FInstanceRegistry::FinalizeFrame() Line 153	C++
UE4Editor-MovieScene.dll!FMovieSceneEntitySystemRunner::GameThread_EvaluationFinalizationPhase() Line 471	C++
UE4Editor-MovieScene.dll!FMovieSceneEntitySystemRunner::DoFlushUpdateQueueOnce() Line 187	C++
UE4Editor-MovieScene.dll!FMovieSceneEntitySystemRunner::Flush() Line 147	C++
UE4Editor-MovieScene.dll!FMovieSceneRootEvaluationTemplateInstance::Evaluate(FMovieSceneContext Context, IMovieScenePlayer & Player) Line 147	C++
UE4Editor-Sequencer.dll!FSequencer::EvaluateInternal(FMovieSceneEvaluationRange InRange, bool bHasJumped) Line 3350	C++
UE4Editor-Sequencer.dll!FSequencer::SetLocalTimeLooped(FFrameTime NewLocalTime) Line 5059	C++
UE4Editor-Sequencer.dll!FSequencer::Tick(float InDeltaTime) Line 758	C++
UE4Editor-UnrealEd.dll!FTickableEditorObject::TickObjects(const float DeltaSeconds) Line 45	C++
UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1502	C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 426	C++
UE4Editor.exe!FEngineLoop::Tick() Line 4921	C++
[Inline Frame] UE4Editor.exe!EngineTick() Line 62	C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine) Line 178	C++
UE4Editor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 262	C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 320	C++
[Inline Frame] UE4Editor.exe!invoke_main() Line 102	C++
UE4Editor.exe!__scrt_common_main_seh() Line 288	C++
kernel32.dll!00007ffcc9137034()	Unknown
ntdll.dll!00007ffccaf62651()	Unknown
Steps to Reproduce
  1. open attached project on ue4.27
  2. open LevelSequence'/Game/LS_EnsureTest.LS_EnsureTest' in content browser
  3. enter console command 't.MaxFPS 30' in output window
  4. set loop playback mode in sequencer window
  5. play the sequence in sequencer window

Result:
Ensure condition failed occurs.
Error message:

Ensure condition failed: bPlayingBackwards ? (CurrentPosition <= PreviousPosition) : (CurrentPosition >= PreviousPosition) [File:D:/dev/UnrealEngine-4.27.2/Engine/Source/Runtime/Engine/Private/Animation/AnimSequenceBase.cpp] [Line: 214] 
in Animation AS_EnsureTest(Skeleton UE4_Mannequin_Skeleton) : bPlayingBackwards(0), PreviousPosition(8.00), Current Position(8.00)

 

Callstack
[Inline Frame] UE4Editor-Engine.dll!UAnimSequenceBase::GetAnimNotifies::__l10::<lambda_b7170629e535a50c2f4eb7028e514362>::operator()() Line 213	C++
UE4Editor-Engine.dll!UAnimSequenceBase::GetAnimNotifies(const float & StartTime, const float & DeltaTime, const bool bAllowLooping, TArray<FAnimNotifyEventReference,TSizedDefaultAllocator<32>> & OutActiveNotifies) Line 213	C++
UE4Editor-Engine.dll!UAnimSequenceBase::HandleAssetPlayerTickedInternal(FAnimAssetTickContext & Context, const float PreviousTime, const float MoveDelta, const FAnimTickRecord & Instance, FAnimNotifyQueue & NotifyQueue) Line 772	C++
UE4Editor-Engine.dll!UAnimSequence::HandleAssetPlayerTickedInternal(FAnimAssetTickContext & Context, const float PreviousTime, const float MoveDelta, const FAnimTickRecord & Instance, FAnimNotifyQueue & NotifyQueue) Line 1358	C++
UE4Editor-Engine.dll!UAnimSequenceBase::TickAssetPlayer(FAnimTickRecord & Instance, FAnimNotifyQueue & NotifyQueue, FAnimAssetTickContext & Context) Line 373	C++
UE4Editor-Engine.dll!FAnimInstanceProxy::TickAssetPlayerInstances(float DeltaSeconds) Line 900	C++
UE4Editor-Engine.dll!UAnimInstance::UpdateAnimation(float DeltaSeconds, bool bNeedsValidRootMotion, UAnimInstance::EUpdateAnimationFlag UpdateFlag) Line 521	C++
UE4Editor-Engine.dll!USkeletalMeshComponent::TickAnimation(float DeltaTime, bool bNeedsValidRootMotion) Line 1118	C++
UE4Editor-Engine.dll!USkeletalMeshComponent::TickPose(float DeltaTime, bool bNeedsValidRootMotion) Line 1278	C++
UE4Editor-Engine.dll!USkinnedMeshComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) Line 854	C++
UE4Editor-Engine.dll!USkeletalMeshComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) Line 1375	C++
[Inline Frame] UE4Editor-Engine.dll!FActorComponentTickFunction::ExecuteTick::__l2::<lambda_865f1c8123559010106a353ada1cfb7d>::operator()(float) Line 1012	C++
UE4Editor-Engine.dll!FActorComponentTickFunction::ExecuteTickHelper<<lambda_865f1c8123559010106a353ada1cfb7d>>(UActorComponent * Target, bool bTickInEditor, float DeltaTime, ELevelTick TickType, const FActorComponentTickFunction::ExecuteTick::__l2::<lambda_865f1c8123559010106a353ada1cfb7d> & ExecuteTickFunc) Line 3586	C++
UE4Editor-Engine.dll!FActorComponentTickFunction::ExecuteTick(float DeltaTime, ELevelTick TickType, ENamedThreads::Type CurrentThread, const TRefCountPtr<FGraphEvent> & MyCompletionGraphEvent) Line 1014	C++
UE4Editor-Engine.dll!FTickFunctionTask::DoTask(ENamedThreads::Type CurrentThread, const TRefCountPtr<FGraphEvent> & MyCompletionGraphEvent) Line 284	C++
UE4Editor-Engine.dll!TGraphTask<FTickFunctionTask>::ExecuteTask(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & NewTasks, ENamedThreads::Type CurrentThread) Line 886	C++
[Inline Frame] UE4Editor-Core.dll!FBaseGraphTask::Execute(TArray<FBaseGraphTask *,TSizedDefaultAllocator<32>> & CurrentThread, ENamedThreads::Type) Line 524	C++
UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread(int QueueIndex, bool bAllowStall) Line 710	C++
UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit(int QueueIndex) Line 602	C++
[Inline Frame] UE4Editor-Core.dll!FTaskGraphImplementation::ProcessThreadUntilRequestReturn(ENamedThreads::Type CurrentThread) Line 1480	C++
UE4Editor-Core.dll!FTaskGraphImplementation::WaitUntilTasksComplete(const TArray<TRefCountPtr<FGraphEvent>,TInlineAllocator<4,TSizedDefaultAllocator<32>>> & Tasks, ENamedThreads::Type CurrentThreadIfKnown) Line 1532	C++
UE4Editor-Engine.dll!FTickTaskSequencer::ReleaseTickGroup(ETickingGroup WorldTickGroup, bool bBlockTillComplete) Line 564	C++
UE4Editor-Engine.dll!FTickTaskManager::RunTickGroup(ETickingGroup Group, bool bBlockTillComplete) Line 1585	C++
UE4Editor-Engine.dll!UWorld::RunTickGroup(ETickingGroup Group, bool bBlockTillComplete) Line 785	C++
UE4Editor-Engine.dll!UWorld::Tick(ELevelTick TickType, float DeltaSeconds) Line 1494	C++
UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1534	C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 426	C++
UE4Editor.exe!FEngineLoop::Tick() Line 4921	C++
[Inline Frame] UE4Editor.exe!EngineTick() Line 62	C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine) Line 178	C++
UE4Editor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 262	C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 320	C++
[Inline Frame] UE4Editor.exe!invoke_main() Line 102	C++
UE4Editor.exe!__scrt_common_main_seh() Line 288	C++
kernel32.dll!00007ffcc9137034()	Unknown
ntdll.dll!00007ffccaf62651()	Unknown

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Anim - Sequencer
Affects Versions4.27
Target Fix5.1
Fix Commit20267976
Main Commit20267976
CreatedMay 10, 2022
ResolvedMay 18, 2022
UpdatedMay 28, 2022