Description

Setting the `bUseClientSideCameraUpdates` property in a `PlayerCameraManager` class to false can result in a crash in the Ansel plugin because `GEngine->GameViewport` may be NULL.

Another user has submitted a pull request to correct this (PR # 3488).

Steps to Reproduce
  1. Create a new code project.
  2. Enable the Ansel plugin in the project.
  3. Create a new PlayerCameraManager Blueprint.
  4. Create a new PlayerController Blueprint and set it to use the PlayerCameraManager Blueprint created in step 3.
  5. Create a new GameModeBase Blueprint and set it to use the PlayerController created in step 4.
  6. Set the project to use the GameModeBase Blueprint created in step 5 as the project's GameMode.
  7. Open the PlayerCameraManager Blueprint created in step 3.
  8. Change the Player Camera Manager -> Use Client Side Camera Updates property to false.
  9. Close the Editor.
  10. Re-open the project in the Editor.
  11. Open the PlayerController Blueprint that was created in step 4.

RESULT:
The Editor crashes.

EXPECTED:
The PlayerController Blueprint opens.

Callstack
Access violation - code c0000005 (first/second chance not available)

UE4Editor_Engine!TWeakPtr<SWindow,0>::Pin() [d:\main-builds\stream\engine\source\runtime\core\public\templates\sharedpointer.h:1120]
UE4Editor_Engine!UGameViewportClient::GetWindow() [d:\main-builds\stream\engine\source\runtime\engine\classes\engine\gameviewportclient.h:308]
UE4Editor_Ansel!FNVAnselCameraPhotographyPrivate::ReconfigureAnsel() [d:\main-builds\stream\engine\plugins\runtime\nvidia\ansel\source\ansel\private\ansel.cpp:487]
UE4Editor_Ansel!FNVAnselCameraPhotographyPrivate::FNVAnselCameraPhotographyPrivate() [d:\main-builds\stream\engine\plugins\runtime\nvidia\ansel\source\ansel\private\ansel.cpp:126]
UE4Editor_Ansel!FAnselModule::CreateCameraPhotography() [d:\main-builds\stream\engine\plugins\runtime\nvidia\ansel\source\ansel\private\ansel.cpp:568]
UE4Editor_Engine!FCameraPhotographyManager::FCameraPhotographyManager() [d:\main-builds\stream\engine\source\runtime\engine\private\camera\cameraphotography.cpp:73]
UE4Editor_Engine!FCameraPhotographyManager::Get() [d:\main-builds\stream\engine\source\runtime\engine\private\camera\cameraphotography.cpp:118]
UE4Editor_Engine!APlayerCameraManager::UpdatePhotographyCamera() [d:\main-builds\stream\engine\source\runtime\engine\private\playercameramanager.cpp:1010]
UE4Editor_Engine!APlayerCameraManager::DoUpdateCamera() [d:\main-builds\stream\engine\source\runtime\engine\private\playercameramanager.cpp:988]
UE4Editor_Engine!APlayerCameraManager::UpdateCamera() [d:\main-builds\stream\engine\source\runtime\engine\private\playercameramanager.cpp:858]
UE4Editor_Engine!APlayerController::SpawnPlayerCameraManager() [d:\main-builds\stream\engine\source\runtime\engine\private\playercontroller.cpp:2505]
UE4Editor_Engine!APlayerController::PostInitializeComponents() [d:\main-builds\stream\engine\source\runtime\engine\private\playercontroller.cpp:956]
UE4Editor_Engine!AActor::PostActorConstruction() [d:\main-builds\stream\engine\source\runtime\engine\private\actor.cpp:2950]
UE4Editor_Engine!AActor::FinishSpawning() [d:\main-builds\stream\engine\source\runtime\engine\private\actor.cpp:2876]
UE4Editor_Engine!AActor::PostSpawnInitialize() [d:\main-builds\stream\engine\source\runtime\engine\private\actor.cpp:2818]
UE4Editor_Engine!UWorld::SpawnActor() [d:\main-builds\stream\engine\source\runtime\engine\private\levelactor.cpp:459]
UE4Editor_Engine!UWorld::SpawnActor() [d:\main-builds\stream\engine\source\runtime\engine\private\levelactor.cpp:291]
UE4Editor_Kismet!FBlueprintEditor::UpdatePreviewActor() [d:\main-builds\stream\engine\source\editor\kismet\private\blueprinteditor.cpp:8203]
UE4Editor_Kismet!FBlueprintEditor::Tick() [d:\main-builds\stream\engine\source\editor\kismet\private\blueprinteditor.cpp:7147]
UE4Editor_UnrealEd!FTickableEditorObject::TickObjects() [d:\main-builds\stream\engine\source\editor\unrealed\public\tickableeditorobject.h:21]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\main-builds\stream\engine\source\editor\unrealed\private\editorengine.cpp:1400]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\main-builds\stream\engine\source\editor\unrealed\private\unrealedengine.cpp:386]
UE4Editor!FEngineLoop::Tick() [d:\main-builds\stream\engine\source\runtime\launch\private\launchengineloop.cpp:3117]
UE4Editor!GuardedMain() [d:\main-builds\stream\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Have Comments or More Details?

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

2
Login to Vote

Duplicate
ComponentUE - Graphics Features
Affects Versions4.15.14.17
CreatedApr 18, 2017
ResolvedApr 18, 2017
UpdatedApr 27, 2018