Moving Unreal Engine Camera While Game Is Paused

You can continue to move/rotate your camera while game logic is PAUSED in Unreal Engine. Unfortunately, it’s a little obscure to set up so here is a quick overview with C++.

PlayerController::bShouldPerformFullTickWhenPaused (true) //  Allows Camera Updates during PlayerController Tick. 
UWorld::bIsCameraMoveableWhenPaused (true) // Fixes TXAA/MotionBlur glitches.

bIsCameraMoveableWhenPaused doesn’t actually allow rotation itself but fixes TAA and MotionBlur while paused.

Here is an example of exposing this to Blueprint:

void ULZGameplayStatics::SetCameraMoveableWhenPaused(const UObject* WorldContextObject, bool bNewIsMoveable)
 {
     if (ensure(WorldContextObject))
     {
         WorldContextObject->GetWorld()->bIsCameraMoveableWhenPaused = bNewIsMoveable;
     }
 }

Finally, make sure your InputEvent related to camera input executes while paused using ExecuteWhenPaused checkbox.

This checkbox isn’t necessary when used inside PlayerController since the FullTick checkbox enables full processing of input! (which may be an undesirable side effect, make sure your other PlayerController input is manually blocked as needed using IsGamePaused-node)

That’s it! You may need to enable TickEvenWhilePaused in whatever Pawn/Actor is performing logic related to your camera input in its Tick function.

8 Responses

  1. I have found another issue: LOD of skeletal mesh component is not updating during pause which leads to some undesirable visual artifacts. Any ideas how to fix it?

    • I haven’t encountered this (I use low poly characters without LODs)

      You might want to report this as a bug, it’s rather likely these kind of specific cases haven’t seen much testing.

  2. bIsCameraMoveableWhenPaused does not fix temporal aa glitches. I still can observe ghosting and blurring on fast moving objects. As workaround I set “slomo 0” before pause to settle down objects. Does anyone else experience same issue?

    • I solved the issue by setting Tickable When Paused true to ‘Mesh Component’ and set Owner Actor’s Custom Time Dilation to 0.0 and set Motion Blur off temporary.

  3. Man… i need something like being able “click” on the editor´s pause button from blueprint or C#… so i can debug my actors on the scene with all logic paused from code, not manually pressing the pause button.
    Something like Unity´s Debug.Break()… any tips?
    Thanks a lot!

    • In Blueprint, you can right-click a node and ‘Add Breakpoint’. When you run the game, the game will pause when it reaches a breakpoint. Also if you have more than 1 breakpoint, you can step through them.

Leave a comment on this post!