Context
GameplayDebugger (Press ` in-game) displays a green smiley (AICON-Green) for AIControlled pawns that are running a BehaviorTree and a red angry face (AICON-Red) otherwise. If the AIController is null, it defaults to the green smiley as that's the 'FailsafeIcon'. See FGameplayDebuggerCategory_AI::DrawPawnIcons:
const AAIController* ItAI = Cast<const AAIController>(ItPawn->GetController());FString DebugIconPath = IsValid(ItAI) ? ItAI->GetDebugIcon() : FailsafeIcon;
Problem
In networked session on remote clients (NetMode == NM_Client), the AIController is never resolvable. Remote clients thus cannot check via the AIController whether a behavior tree is running or not. Defaulting to the green icon gives a false positive: it implies a behavior tree is running while that is not known on clients.
It would be nice to:
*This info can already be derived for the active DebugActor since we already replicate extra debug info for it, but not for all pawns.
In ThirdPersonTemplate:
Not a crash, but callstack to the relevant code:
> UnrealEditor-AIModule.dll!FGameplayDebuggerCategory_AI::DrawPawnIcons(UWorld * World, AActor * DebugActor, APawn * SkipPawn, FGameplayDebuggerCanvasContext & CanvasContext) Line 519 C++
UnrealEditor-AIModule.dll!FGameplayDebuggerCategory_AI::DrawData(APlayerController * OwnerPC, FGameplayDebuggerCanvasContext & CanvasContext) Line 323 C++
UnrealEditor-GameplayDebugger.dll!FGameplayDebuggerCategory::DrawCategory(APlayerController * OwnerPC, FGameplayDebuggerCanvasContext & CanvasContext) Line 115 C++
UnrealEditor-GameplayDebugger.dll!UGameplayDebuggerLocalController::OnDebugDraw(UCanvas * Canvas, APlayerController * PC) Line 261 C++
[Inline Frame] UnrealEditor-GameplayDebugger.dll!Invoke(void(UGameplayDebuggerLocalController::*)(UCanvas *, APlayerController *)) Line 66 C++
[Inline Frame] UnrealEditor-GameplayDebugger.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(void(UGameplayDebuggerLocalController::*)(UCanvas *, APlayerController *) &) Line 310 C++
UnrealEditor-GameplayDebugger.dll!TBaseUObjectMethodDelegateInstance<0,UGameplayDebuggerLocalController,void __cdecl(UCanvas *,APlayerController *),FDefaultDelegateUserPolicy>::ExecuteIfSafe(UCanvas * <Params_0>, APlayerController * <Params_1>) Line 667 C++
[Inline Frame] UnrealEditor-Engine.dll!TMulticastDelegateBase<FDefaultDelegateUserPolicy>::Broadcast(UCanvas *) Line 254 C++
[Inline Frame] UnrealEditor-Engine.dll!TMulticastDelegate<void __cdecl(UCanvas *,APlayerController *),FDefaultDelegateUserPolicy>::Broadcast(UCanvas *) Line 956 C++
UnrealEditor-Engine.dll!UDebugDrawService::Draw(const FEngineShowFlags Flags, UCanvas * Canvas) Line 93 C++
UnrealEditor-Engine.dll!UDebugDrawService::Draw(const FEngineShowFlags Flags, FViewport * Viewport, FSceneView * View, FCanvas * Canvas, UCanvas * CanvasObject) Line 76 C++
UnrealEditor-Engine.dll!UGameViewportClient::Draw(FViewport * InViewport, FCanvas * SceneCanvas) Line 1954 C++
UnrealEditor-Engine.dll!FViewport::Draw(bool bShouldPresent) Line 1751 C++
UnrealEditor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 2293 C++
UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 550 C++
UnrealEditor.exe!FEngineLoop::Tick() Line 5789 C++
[Inline Frame] UnrealEditor.exe!EngineTick() Line 61 C++
UnrealEditor.exe!GuardedMain(const wchar_t * CmdLine) Line 180 C++
UnrealEditor.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 247 C++
UnrealEditor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 298 C++
[External Code]
i have this problem UE4CC-Windows-58DC12AF4B97F057BD108FBFF569B2E9_0000
I am not able to find world outliner how to enable it?
How to achieve HLSL Multiple Render Target in Material blueprints?
What method is used to fill polygonal regions when drawing spline mesh at run time?
How can i modify the param name in EQS node
How does TextureRenderTarget2D get TArray<uint8> type data?
Undefined sysmbol: typeinfo for AActor when cross-compile linux dedicated server on windows
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-209550 in the post.
0 |
Component | UE - AI - Debugging |
---|---|
Affects Versions | 5.1, 5.2, 5.3 |
Target Fix | 5.6 |
Created | Mar 12, 2024 |
---|---|
Updated | Oct 25, 2024 |