Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

Yes. Feel free to use it in a commercial project.

I updated the description to make that clear.

thanks!

while i'm here, ill also ask, is there a way to make it so that the speech pauses also pause the dialogue sounds if youre using them? i know the other plugin of this has that as an option, but i thought it worth asking here in case

If you mean audio file dialogue? I didn't implement that and I don't know how to do it. I think doing that without syncing with the text is a HUGE endeavor.

If you mean just random sounds which are generated based on the letters, it should happen automatically by ren'py. I didn't do anything about that.

Im referring to the latter, yes. But the sound file doesn't seem to stop between spaces, which sounds pretty odd.

If you are starting a sound when dialogue starts and you don't handle the remaining events, you do get that result. To make it stop in the latter situation, you have to process the other events to control those files.

Also, how do you handle when the user changes settings to use a different text speed? Are you also changing the speed of the dialogue?

(1 edit)

sorry it took forever to reply to this! i had a look at the project that this was based on, and was surprised to see that they actually had a feature for this, in "Version 2". essentially, im just using this code here (although in a different audio channel) from the renpy documentation to have text bleep thingies play. perhaps i didnt explain myself well enough before   

 # This is where we define the dialogue sounds.

    def dialoguesound(event, interact=True, **kwargs):

        if not interact:

            return

        if event == "show":

            renpy.sound.play("sfx/voices/generic.ogg", channel="dialogue", loop=True)

        elif event == "slow_done":

            renpy.sound.stop(channel="dialogue", fadeout=0.1)

(1 edit)

So, it's generic blips. You just have that as callback for the character and dialogue causes events to be provided.

See if this can help you: https://www.renpy.org/doc/html/character_callbacks.html#character-callbacks

You just need to pay additional attention to "slow_done" and that would be the same as "show_done". Probably like this:

     def dialoguesound(event, interact=True, **kwargs):
         if not interact or event in ("slow_done", "show_done"):
             renpy.sound.stop(channel="dialogue", fadeout=0.1)
         elif event == "show":
             renpy.sound.play("sfx/voices/generic.ogg", channel="dialogue", loop=True)

this modified code (i believe specifically the show_done portion) just seems to make it so the sound doesnt play at all

(1 edit)

Try not checking for "interact". Maybe that should be ignored. I'm not sure. I may have induced you in error by having it stopping the sound when interact is False.

unfortunately this still makes no difference.