Download

Making 'active pause' in game like in modern action RPG games

Hi there

I wan’t to make active pause in game for giving orders to characters controlled by Player.

Global pausing works fine as it should

The problem i have is I can’t make my player camera to move while paused.
In simple example it works like this:

All my Input events have Execute when paused checked but still i can’t move or rotate my camera.

Player Pawn is simple Static Mesh with spring arm and camera at the end.

You could work around this by allowing the player character to Tick When Paused, but be aware that pausing the game and moving the camera will cause problems anyway because of how Temporal AntiAliasing works.

What I would instead do is create an Event Dispatcher which connects to every Ticking actor in the scene and tells it to stop Ticking (Set Tick Enabled = False for each one), except the player.

For the player, IIRC you can tell his COMPONENTS not to Tick (i.e. his capsule and his skeleton, so he appears to freeze, but his camera can still move). This way the actors don’t move but the player’s inputs still work and the camera can still be controlled.

tried using UMG?
(in this case don’t ‘pause’ the game)(and use your preferred ‘set input mode’ node)

probably wind up using it in some form in this case scenario before you’re done anyway. look better too probably.

Thanks for the idea, I’ll try that.

My camera and Player are more like RTS style player (static mesh is invisible in-game). Your idea will work with my camera perfectly.

Something I’ve done in my game is that I reduce the global time dilation to 0, while matching it by increasing my player’s time dilation to something like 60 or 90, thus effectively pausing the game for everything but the player. Perhaps something to look into?

This is something i also need to check. But i’m affraid than will not prevent enemies to prepare their actions while “paused”. I think reducing global time dilation will stop only acting of enemy pawns. Am I right?

Global time dilation actually affects everything in the world, from ticking functions to animation updates - it’s effectively slowing down time for everything. Mechanically, I believe each frame’s DeltaTime is multiplied by the time dilation. I use it for my pausing and some timewarp mechanics, where the player can move or “warp” from one location to another while time is slowed down.

Thanks for explanation. I will test this solution.

Whoa. I didn’t know you could set anything other than the ‘global’ time dilations. I’m checking this out first thing when I get home, today!

It’s really, really sweet. I plan on using it as a pause screen for the Rift - you hit a button, the screen desaturates, everything else slows to a crawl but you can still move around (I’ll probably restrict it to turning). It’s really fun just knocking around physics objects and seeing them float through the air as if you’re in space x)