Just a little unskippable pause.

Deleted member 327695

Member
Game Developer
Dec 11, 2017
438
9,859
Hello,

Let's pretend I have several cutscenes/animations which are each 25 seconds long.

Many players accidentally skipped these animations with a click because they suddenly appeared after a black screen.

My question now is, how can I make the first few seconds (custom amount) unskippable? I don't want to force the whole animation on a person just the first few seconds so that the player knows what is going on before he can still skip it.

"Renpy hard pause" doesn't work. It just adds an unskippable black screen.


Thank you in advance!

Edit: (In Renpy)
 

Porcus Dev

Engaged Member
Game Developer
Oct 12, 2017
2,582
4,692
You can use this:
Python:
$ renpy.pause(5.0, hard=True)   ## forces a 5 second pause
An example:
Python:
label your_label:

            image movie = Movie(size=(1920, 1080), xpos=0, ypos=0, xanchor=0, yanchor=0)  ## You only need this one time

            window hide
            play movie "movies/your_movie.webm"
            show movie
            $ renpy.pause(5.0, hard=True)
 

Porcus Dev

Engaged Member
Game Developer
Oct 12, 2017
2,582
4,692
Indeed, use it with caution, especially for scenes that can be repeated (you can also make it so that the first time the viewing is forced and the following ones are not).
But I understand what you're saying, sometimes it's easy to skip a scene with one click extra, and it's normal that, as a creator, you want that scene to be seen, especially if it's a good animation that you've spent a lot of time working on :LOL:
 

Hamfist

Member
Nov 16, 2019
299
87
yup, I HATE being forced through an entire scene especially a bad one and the second or third time around, but A one or two second pause to let the fingers catch up with the brain may not be so bad. that said I never give a game that traps me in scenes a second go.

That said roll back is definitely a better option.
 
  • Like
Reactions: Mrdeadbird

Deleted member 327695

Member
Game Developer
Dec 11, 2017
438
9,859
there's nothing players hate more than being forced to watch shitty cut scenes.
enable rollback so players can restart the clip if they want to
forcing players to sit through it will get you bad reviews
Let me quote myself: "I don't want to force the whole animation on a person[...]"

Most people did write to me "Which cutscenes?" and some told me that due to their fast clicking they almost didn't see that there even was an animation.

I only want a pause from like half a second to a second so that people realize that there is something.


mgomez0077

I'll try it out! Thanks!

It didn't work when I used "renpy.movie_cutscene()".
 

Porcus Dev

Engaged Member
Game Developer
Oct 12, 2017
2,582
4,692
Let me quote myself: "I don't want to force the whole animation on a person[...]"

Most people did write to me "Which cutscenes?" and some told me that due to their fast clicking they almost didn't see that there even was an animation.

I only want a pause from like half a second to a second so that people realize that there is something.


mgomez0077

I'll try it out! Thanks!

It didn't work when I used "renpy.movie_cutscene()".
Yep, doesn't work with "cutscene" :p
But I think that's already old code, better to use the other ;)
 

Hamfist

Member
Nov 16, 2019
299
87
funny and only semi related but not necessarily relevant to the conversation over all. in the game i'm writing there is one cut scene (or decision that leads to it) that's a trap, it loops over and over, and once your in it it quickly goes past the roll back count, you have to make a really poor decision in the game to wind up in that dead end scene. but if your not quick (or are on skip) you are stuck there and have to load a save. but you really have to screw up in game to be stuck there. put it down to my dark sense of humor and the type of game it is.
 

Porcus Dev

Engaged Member
Game Developer
Oct 12, 2017
2,582
4,692
Let me quote myself: "I don't want to force the whole animation on a person[...]"

Most people did write to me "Which cutscenes?" and some told me that due to their fast clicking they almost didn't see that there even was an animation.

I only want a pause from like half a second to a second so that people realize that there is something.


mgomez0077

I'll try it out! Thanks!

It didn't work when I used "renpy.movie_cutscene()".
Oh, by the way... as I see that you haven't used this code before, keep in mind to use a "stop movie" in the continuation of your script, but right after the next image.
For example:
Python:
label your_label:

            image movie = Movie(size=(1920, 1080), xpos=0, ypos=0, xanchor=0, yanchor=0)  ## You only need this one time

            window hide
            play movie "movies/your_movie.webm"
            show movie
            $ renpy.pause(5.0, hard=True)

            scene mynext_image
            stop movie
* If there are several animations together, it's not necessary to use the "stop movie" until they are finished and you have to show a still image again.
 

Deleted member 327695

Member
Game Developer
Dec 11, 2017
438
9,859
Ah, by the way... as I see that you haven't used this code before, keep in mind to use a "stop movie" in the continuation of your script, but right after the next image.
For example:
Python:
label your_label:

            image movie = Movie(size=(1920, 1080), xpos=0, ypos=0, xanchor=0, yanchor=0)  ## You only need this one time

            window hide
            play movie "movies/your_movie.webm"
            show movie
            $ renpy.pause(5.0, hard=True)

            scene mynext_image
            stop movie
* If there are several animations together, it's not necessary to use the "stop movie" until they are finished and you have to show a still image again.
Worked like a charm! Thank you, buddy! :giggle:

Yea, I did use the "Stop movie". (For some odd reason it was already there. I think I did experiment with the "Show" statement before.)
 
  • Haha
Reactions: Porcus Dev

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,583
2,222
The other suggestion I have for you is to start the movie playing and then have two or three lines of dialogue before the next scene statement.

That way, the cutscene/movie plays in the background while the player is reading the new lines of dialogue.
If they are the sort of player who wants to get to the next section of the game without waiting... they can.
If they accidentally skipped 1 line of dialogue... that's okay... the movie is still active in the background while the other lines of dialogue are being displayed.
And if they want to watch the whole animation/movie before they move on... they can do that too.

You also have the option of using with Pause() as part of your scene/show statement.

You say your animation is 25 seconds long, but you want to give the player at least the first 5 seconds of it before they can move on...

You could do something like...
Python:
    scene black with fade
    mc "just about to start the animation"

    scene anim_my_animation2 with Pause(5.0)
    mc "animation still playing, but game continuing"
    mc "another dialogue line... animation still playing (or not if it ended already)"

    scene black with fade
    "*** THE END ***"
It won't STOP the player skipping the first 5 seconds... but it will pause before showing the next line of dialogue for 5 seconds. That might be all you need to give the player reason to watch the rest.

A "normal" player will see the first 5 seconds and then the dialogue will appear. They can choose to watch the rest of the movie before advancing or advance as normal. Either way, those two following lines of dialogue won't stop the animation playing while the player is reading.
And if it's the sort of player just clicking through things like a nutball... well... let them.

The with Pause() is especially useful for people playing with auto-advance switched on. It tells the game to only auto-advance when the timer = (with_pause_time + normal_autoadvance_time). Players missing images can sometimes be because there's no dialogue to show and the auto-advance advances before the animation really gets going. Hell... use with Pause(25.0) if you really want to... the game will show the full animation before continuing... unless the player clicks... in which case... sod 'em if they can't take a joke.

Edit: For reference... my preference would be to use with Pause(2.0) or with Pause(3.0) and then at least 1 line of dialogue before the next scene statement. Nothing stops the playing advancing, but that brief pause lets the player know an animation has started playing so they can choose whether to click forward or not. If I were using a 25 second animation, I might have 4 or 5 lines of dialogue after the 3 second initial pause. It's very much a "play it by ear" thing and maybe the scene would be ruined by dialogue.... in which case, your only other option would be a longer pause.
 
Last edited:
  • Like
Reactions: Porcus Dev

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,583
2,222
I must agree though... Use hard pauses with extreme caution.

It's not the normal play-throughs that you need to worry about... it's when someone is skipping through from an early save to get to a specific part of your game in order to make a different choice.

Anyone skipping through will curse your name when that hard pause kicks in.