Description

The purpose was to create a Level Sequence Director inheritance class so that the same event could be reused in multiple sequencers. Attempting to quick-bind this base Level Sequence Director event to a Level Sequence Director will crash.

 

This appears to be affected by the Director Blueprint's self pin. This can be avoided by intentionally masking the self pin, as shown in the following code

 

Engine\Source\Editor\MovieSceneTools\Private\MovieSceneEventCustomization.cpp

void FMovieSceneEventCustomization::SetEventEndpoint(UK2Node* NewEndpoint, UEdGraphPin* BoundObjectPin, UK2Node* PayloadTemplate, EAutoCreatePayload AutoCreatePayload)
{
    // ...

    // if (PayloadPin != BoundObjectPin && PayloadPin->Direction == EGPD_Input && PayloadPin->PinType.PinCategory != UEdGraphSchema_K2::PC_Exec && PayloadPin->LinkedTo.Num() == 0)
    if (PayloadPin != BoundObjectPin && PayloadPin->Direction == EGPD_Input && PayloadPin->PinType.PinCategory != UEdGraphSchema_K2::PC_Exec && PayloadPin->LinkedTo.Num() == 0 && PayloadPin->PinName != "self")
    {
    }
    // ...
}

 

 

Steps to Reproduce
  1. Create a new C++ class that extends LevelSequenceDirector and add the BlueprintCallable function TestFunc()
  2. Add Level Sequencer in the Editor
  3. Added EventTrack
  4. Select [Actions]->[Open Director Blueprint]
  5. Select [Class Settings]->[Parent Class], and set the class that added in Step1
  6. Add any event trigger point on EventTrack
  7. Right click to open [Properties]->[Event]
  8. Set quick bind the TestFunc() that added in Step1

Then, crash occur.

 

Ensure point is here.

Ensure condition failed: pContextTerm != nullptr [File:G:/Engine/Source/Editor/BlueprintGraph/Private/CallFunctionHandler.cpp] [Line: 390]
'/Game/NewLevelSequence.NewLevelSequence:SequenceDirector.ExecuteUbergraph_SequenceDirector.K2Node_CallFunction_0' is missing a target input - if this is a server build, the input may be a cosmetic only property which was discarded (if this is the case, and this is expecting component variable try resaving.)
[2020.09.16-23.06.58:296][559]LogOutputDevice: Error: Ensure condition failed: pContextTerm != nullptr [File:G:/Engine/Source/Editor/BlueprintGraph/Private/CallFunctionHandler.cpp] [Line: 390]
'/Game/NewLevelSequence.NewLevelSequence:SequenceDirector.ExecuteUbergraph_SequenceDirector.K2Node_CallFunction_0' is missing a target input - if this is a server build, the input may be a cosmetic only property which was discarded (if this is the case, and this is expecting component variable try resaving.)

Callstack
> [Inline Frame] UE4Editor-BlueprintGraph.dll!FKCHandler_CallFunction::CreateFunctionCallStatement::__l124::<lambda_f274bfd686065a1ee0cd2907311b868e>::operator()() Line 390 C++
UE4Editor-BlueprintGraph.dll!FKCHandler_CallFunction::CreateFunctionCallStatement(FKismetFunctionContext & Context, UEdGraphNode * Node, UEdGraphPin * SelfPin) Line 390 C++
UE4Editor-BlueprintGraph.dll!FKCHandler_CallFunction::Compile(FKismetFunctionContext & Context, UEdGraphNode * Node) Line 914 C++
UE4Editor-KismetCompiler.dll!FKismetCompilerContext::CompileFunction(FKismetFunctionContext & Context) Line 2073 C++
UE4Editor-KismetCompiler.dll!FKismetCompilerContext::CompileFunctions(EInternalCompilerFlags InternalFlags) Line 4145 C++
UE4Editor-Kismet.dll!FBlueprintCompilationManagerImpl::FlushCompilationQueueImpl(bool bSuppressBroadcastCompiled, TArray<UBlueprint *,TSizedDefaultAllocator<32>> * BlueprintsCompiled, TArray<UBlueprint *,TSizedDefaultAllocator<32>> * BlueprintsCompiledOrSkeletonCompiled, FUObjectSerializeContext * InLoadContext) Line 1299 C++
UE4Editor-Kismet.dll!FBlueprintCompilationManagerImpl::CompileSynchronouslyImpl(const FBPCompileRequestInternal & Request) Line 263 C++
UE4Editor-Kismet.dll!FBlueprintCompilationManager::CompileSynchronously(const FBPCompileRequest & Request) Line 3040 C++
UE4Editor-UnrealEd.dll!FKismetEditorUtilities::CompileBlueprint(UBlueprint * BlueprintObj, EBlueprintCompileOptions CompileFlags, FCompilerResultsLog * pResults) Line 754 C++
UE4Editor-MovieSceneTools.dll!FMovieSceneEventCustomization::SetEventEndpoint(UK2Node * NewEndpoint, UEdGraphPin * BoundObjectPin, UK2Node * PayloadTemplate, EAutoCreatePayload AutoCreatePayload) Line 1309 C++
UE4Editor-MovieSceneTools.dll!FMovieSceneEventCustomization::HandleQuickBindActionSelected(const TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> & SelectedAction, ESelectInfo::Type InSelectionType, UBlueprint * Blueprint, FMovieSceneEventEndpointParameters Params) Line 1019 C++
[Inline Frame] UE4Editor-MovieSceneTools.dll!TMemberFunctionCaller<FMovieSceneEventCustomization,void (__cdecl FMovieSceneEventCustomization::*)(TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> const &,enum ESelectInfo::Type,UBlueprint *,FMovieSceneEventEndpointParameters)>::operator()(const TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> &) Line 156 C++
[Inline Frame] UE4Editor-MovieSceneTools.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int,0,1>,UBlueprint *,FMovieSceneEventEndpointParameters>::ApplyAfter(TMemberFunctionCaller<FMovieSceneEventCustomization,void (__cdecl FMovieSceneEventCustomization::*)(TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> const &,enum ESelectInfo::Type,UBlueprint *,FMovieSceneEventEndpointParameters)> &&) Line 272 C++
UE4Editor-MovieSceneTools.dll!TBaseSPMethodDelegateInstance<0,FMovieSceneEventCustomization,0,TTypeWrapper<void> __cdecl(TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> const &,enum ESelectInfo::Type),UBlueprint *,FMovieSceneEventEndpointParameters>::Execute(const TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> & <Params_0>, ESelectInfo::Type <Params_1>) Line 298 C++
[Inline Frame] UE4Editor-GraphEditor.dll!TBaseDelegate<TTypeWrapper<void>,TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> const &,enum ESelectInfo::Type>::Execute(const TArray<TSharedPtr<FEdGraphSchemaAction,0>,TSizedDefaultAllocator<32>> &) Line 586 C++
UE4Editor-GraphEditor.dll!SGraphActionMenu::HandleSelection(TSharedPtr<FGraphActionNode,0> & InSelectedItem, ESelectInfo::Type InSelectionType) Line 1532 C++
UE4Editor-GraphEditor.dll!SGraphActionMenu::OnMouseButtonDownEvent(TWeakPtr<FEdGraphSchemaAction,0> InAction) Line 1409 C++
[Inline Frame] UE4Editor-GraphEditor.dll!TMemberFunctionCaller<SGraphActionMenu,bool (__cdecl SGraphActionMenu::*)(TWeakPtr<FEdGraphSchemaAction,0>)>::operator()(TWeakPtr<FEdGraphSchemaAction,0> &) Line 156 C++
[Inline Frame] UE4Editor-GraphEditor.dll!UE4Tuple_Private::TTupleImpl<TIntegerSequence<unsigned int>>::ApplyAfter(TMemberFunctionCaller<SGraphActionMenu,bool (__cdecl SGraphActionMenu::*)(TWeakPtr<FEdGraphSchemaAction,0>)> &&) Line 272 C++
UE4Editor-GraphEditor.dll!TBaseSPMethodDelegateInstance<0,SGraphActionMenu,0,bool __cdecl(TWeakPtr<FEdGraphSchemaAction,0>)>::Execute(TWeakPtr<FEdGraphSchemaAction,0> <Params_0>) Line 298 C++
[Inline Frame] UE4Editor-GraphEditor.dll!TBaseDelegate<bool,TWeakPtr<FEdGraphSchemaAction,0>>::Execute(TWeakPtr<FEdGraphSchemaAction,0>) Line 586 C++
UE4Editor-GraphEditor.dll!SDefaultGraphActionWidget::OnMouseButtonDown(const FGeometry & MyGeometry, const FPointerEvent & MouseEvent) Line 241 C++
[Inline Frame] UE4Editor-Slate.dll!FSlateApplication::RoutePointerDownEvent::__l5::<lambda_3008f576504c0c19c83032846bbd2c02>::operator()(const FArrangedWidget) Line 4575 C++
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_3008f576504c0c19c83032846bbd2c02>>(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerDownEvent::__l5::<lambda_3008f576504c0c19c83032846bbd2c02> & Lambda) Line 372 C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerDownEvent(const FWidgetPath & WidgetsUnderPointer, const FPointerEvent & PointerEvent) Line 4561 C++
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonDownEvent(const TSharedPtr<FGenericWindow,0> & PlatformWindow, const FPointerEvent & MouseEvent) Line 4515 C++
UE4Editor-Slate.dll!FSlateApplication::OnMouseDown(const TSharedPtr<FGenericWindow,0> & PlatformWindow, const EMouseButtons::Type Button, const FVector2D CursorPos) Line 4422 C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 2148 C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2592 C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 1816 C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 852 C++
[External Code]
[Inline Frame] UE4Editor-ApplicationCore.dll!WinPumpMessages() Line 108 C++
UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 130 C++
UE4Editor.exe!FEngineLoop::Tick() Line 4741 C++
[Inline Frame] UE4Editor.exe!EngineTick() Line 62 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine) Line 169 C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 257 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-99786 in the post.

0
Login to Vote

Fixed
ComponentUE - Anim - Sequencer
Affects Versions4.25
Target Fix4.26
Fix Commit14377712
Release Commit14377712
CreatedSep 16, 2020
ResolvedSep 23, 2020
UpdatedApr 28, 2021