- 14
- 7 854
Bored Chris
United States
Приєднався 3 гру 2011
Dev account of Bamboo Calculator.
I make quick Ren'Py tutorials
I make quick Ren'Py tutorials
RenPy - Create a toggle to switch between voice acting and text sounds
This Ren'Py tutorial goes over how to implement a toggle within the Preferences screen in your Ren'Py game that swaps voice acting with text sounds (and vice versa) on the fly.
The relevant code for this functionality can be found on my GitHub page:
github.com/bamboocalc/text-sounds-toggle/
This is a modification of another function discussed in this video:
ua-cam.com/video/_Ww_nOmMDVo/v-deo.html
---
I hope this Ren'Py tutorial helps you in your VN dev journey! If you feel that you've received value from it, I'd welcome a small Bitcoin tip sent to the address below.
Thank you!
bc1qde96umdth3q2u56edmm44gagdy2z9zskxgts5g
The relevant code for this functionality can be found on my GitHub page:
github.com/bamboocalc/text-sounds-toggle/
This is a modification of another function discussed in this video:
ua-cam.com/video/_Ww_nOmMDVo/v-deo.html
---
I hope this Ren'Py tutorial helps you in your VN dev journey! If you feel that you've received value from it, I'd welcome a small Bitcoin tip sent to the address below.
Thank you!
bc1qde96umdth3q2u56edmm44gagdy2z9zskxgts5g
Переглядів: 220
Відео
Use SteamPipe GUI to upload your RenPy game to Steam
Переглядів 3462 місяці тому
How to upload your Ren'Py game to Steam using SteamPipe GUI Itchio Butler: itchio.itch.io/butler Steamworks SDK: partner.steamgames.com/downloads/list Music Used: ua-cam.com/video/XmKahi5STkA/v-deo.html I hope this Ren'Py tutorial helps you in your VN dev journey! If you feel that you've received value from it, I'd welcome a small Bitcoin tip sent to the address below. Thank you! bc1qde96umdth3...
3 things I learned while developing my RenPy game in 2024!
Переглядів 3933 місяці тому
1. Feniks is a lifesaver feniksdev.com/ 2. Watch Vimi's tutorials ua-cam.com/video/tbe_ksbJwEQ/v-deo.html 3. Don't open bug tickets on GitHub until you test on the latest build nightly.renpy.org/current-8-fix/ I hope this Ren'Py tutorial helps you in your VN dev journey! If you feel that you've received value from it, I'd welcome a small Bitcoin tip sent to the address below. Thank you! bc1qde9...
RenPy - Effortlessly support an Unlimited number of Fan Translations
Переглядів 4803 місяці тому
Don't have time to regularly push updates for your Ren'Py game in order to support new and existing fan translations? Here's how to update your Ren'Py game's code so that it automatically detects folders inside the game/tl directory and lists them as language options in the Preferences menu!! Full code available HERE: github.com/bamboocalc/fan-translations-renpy Google NotoSans font: fonts.goog...
RenPy - Automatically add pauses after punctuation
Переглядів 1,1 тис.3 місяці тому
RenPy tutorial showing you how to automatically add pauses of different lengths for each and every punctuation mark in your game's script. This eliminates the need to manually type "{w=.25}" after every period. Artificial Selection: ua-cam.com/users/KigyoDev Forum post: lemmasoft.renai.us/forums/viewtopic.php?t=7387 I hope this Ren'Py tutorial helps you in your VN dev journey! If you feel that ...
How to setup an Opening Cinematic on your RenPy game's title screen
Переглядів 4843 місяці тому
Here's how to implement an opening cinematic that auto-plays when you linger on your RenPy game's title screen for a few seconds This is the general flow: 1. Player launches your Ren'Py game 2. Title screen loads 3. Player waits 10 seconds 4. Opening cinematic (movie) plays 5. Player either clicks to skip, or waits until movie ends 6. Player is taken to the main menu I hope this Ren'Py tutorial...
Two free tools to fix unlinked audio in your RenPy game!
Переглядів 1354 місяці тому
Have voice acting in your game, but are struggling to get all the voiced lines properly linked to the correct dialog line? Or do you need a quick and easy way to keep track of which dialog lines are yet to be voiced? These two tools can help you cut down on the time spent chasing after missing voice files! Source code here: github.com/bamboocalc/find-unlinked-audio Questions? Post a comment, an...
Simple Copy Protection for Your RenPy Game
Переглядів 4684 місяці тому
CORRECTION: The correct label name for the RenPy splash screen is: "label splashscreen:" Music by: Samuel Kim Music ua-cam.com/video/cXAuNehHpM0/v-deo.html I hope this Ren'Py tutorial helps you in your VN dev journey! If you feel that you've received value from it, I'd welcome a small Bitcoin tip sent to the address below. Thank you! bc1qde96umdth3q2u56edmm44gagdy2z9zskxgts5g
How I process voice lines for my RenPy game
Переглядів 4874 місяці тому
Using custom Audacity chains, we can easily label, bulk-process, and export multiple audio files for use in our RenPy game. You can read the official documentation to learn more about RenPy's automatic voice feature and how to implement it in your visual novel: www.renpy.org/doc/html/voice.html Note: When using RenPy Auto Voice, you will need to name each voice file with the corresponding block...
Keep Auto-Voice files linked after script changes in RenPy
Переглядів 1534 місяці тому
RenPy has a feature called "Automatic Voice" which (as the name implies) can automatically determine the voice file to play. This relies on the voice file having the same filename as the ID of the corresponding dialog line. This can, in theory save a lot of development time, but if you have extensive voice acting in your game, you might run into a scenario where certain dialog lines have seemin...
RenPy - How to set the player's name as their Steam Profile Name
Переглядів 6534 місяці тому
Here's one way to set a default player name in RenPy that utilizes the player's Steam profile name. Three things to note: * Your RenPy game must have a valid ID on Steam. * You must also install the "Steam Support" library from within the RenPy SDK. * Finally, you must have the Steam desktop client open on your computer. Check out my game: store.steampowered.com/app/2811960/World_Without_Reason...
An email with an 80% response rate
Переглядів 475 місяців тому
This is one of the emails that I've used to reach out to voice actors who I want to voice characters in my game. Additional resources I've found helpful: How to talk to VAs in a way that is productive: ua-cam.com/video/YIcjAnng_0w/v-deo.html How to prepare voice auditions for your project: voiceacting.boards.net/thread/3292/hold-voiceover-auditions-project First steps on how to draft a proper "...
Pull off a Psycho Mantis in RenPy
Переглядів 907 місяців тому
How to implement a Psycho Mantis-style Easter Egg, where a character will have additional dialog if the game detects that a specific RenPy game is installed on the player's computer. Feel free to use, modify, and share this code as needed: github.com/bamboocalc/psychomantis-renpy/ Voice from CHIE・チエ(@asahinaChie) asahinaChie ua-cam.com/users/asahinaChie I hope this Ren'Py tutorial h...
Randomized and continuous text sounds in RenPy
Переглядів 2,9 тис.8 місяців тому
I wanted to get a way to randomize the text bleep sound so that it chooses from 2-4 audio clips, similar to how it's done in the Paper Mario TTYD remake. I searched high and low, but was only able to find existing code for character callbacks using a single audio file. So, here's my method of achieving this result! Feel free to use, adapt, and share as needed. Source Code here: github.com/bambo...
great video, thanks! sorry for the potentially stupid question, but how could i configure this to play through the voice channel instead? just to avoid conflicts with sound effects. I tried to set the channel to voice but it just makes everything silent. Thanks again!
I was going crazy trying to find a tutorial to help me with my visual novel. Thanks a lot, I'm about to credit you as a co-author of my game lol
Glad this was able to help!
CORRECTION @2:35: The code for your two textbuttons should look like this: textbutton _("Enabled") action [SetVariable("persistent.voice_acting",True), SetMute(['voice'], False)] textbutton _("Disabled") action [SetVariable("persistent.voice_acting",False), SetMute(['voice'], True)] In short, each textbutton must do two things: first, toggle the value of our persistent variable between True/False, and second, toggle the "voice" channel between mute/unmute
Informative and clear!
Thank you very much for this handy tutorial <3
Hello Bored Chris i have a specific issue, do you know what could cause the following ? : An error occurred while launching this game: Invalid game configuration. I have this issue only on the game that i have upload to steamworks i don't have this with any other of my games. I think it comes from the path define on Steamwork however i cannot see clearly where it comes from ? Any idea ?
Try these: 1) Navigate to the directory where you keep the Steamworks SDK folder, then go to: Steamworks_SDK\tools\ContentBuilder\scripts * Delete all the ".vdf" files in the scripts folder, then open the SteamPipe GUI app, and click "Generate VDFs" * Upload your game to Steam once again 2) Inside Steamworks, navigate to: Steamworks Admin > Installation > General Installation * Under "Launch Options" confirm that there are launch options for Windows, Mac, and Linux * This is what my setup looks like: calloway.city/images/steamsetup.png * Note that my example is for a RenPy game with "Windows, Mac, Linux for Markets" selected as the Build Package 3) On the Steam client app, on your game's page (inside the Library), click on the gear icon on the right-hand side underneath the game's banner * Click on "Properties" * Under "Installed Files" click on "Verify Integrity of Game Files" After all that, try and Start the game again
Python can't seem to find my dialogue file despite indicating my filepath. Is there a way to fix it?
Hm... I'm not entirely sure, but I do have one idea: If you have your renpy project saved in a non-C drive (like drive E for example) then you would structure the file paths like this: # find_unlinked_audio.py tab_file_path = os.path.join('E:\\', 'RenPy Projects', 'YOUR_GAME_NAME_GOES_HERE', 'dialogue.tab') voice_folder_path = os.path.join('E:\\', 'RenPy Projects', 'YOUR_GAME_NAME_GOES_HERE', 'game', 'voice') output_file_path = os.path.join('E:\\', 'RenPy Projects', 'YOUR_GAME_NAME_GOES_HERE', 'game', 'python-packages', 'voice_check_results.txt') #find_unvoiced_lines.py tab_file_path = os.path.join('E:\\', 'RenPy Projects', 'YOUR_GAME_NAME_GOES_HERE', 'dialogue.tab') voice_folder_path = os.path.join('E:\\', 'RenPy Projects', 'YOUR_GAME_NAME_GOES_HERE', 'game', 'voice') output_folder_path = os.path.join('E:\\', 'RenPy Projects', 'YOUR_GAME_NAME_GOES_HERE', 'game', 'character_csvs') In this above example, I have all my renpy projects inside a folder called "RenPy Projects"
Thanks for this!
Mind I ask what's the use of "Install Libraries?", I still don't understand even its already explain there XD.
Out of the box, Ren'Py only includes Free and Open Source Software, so any additional proprietary tools need to be installed separately. Clicking on "Install Steam Support" will allow you to add Steam achievements to your game, among other things. Clicking on "Install Live2D Cubism SDK for Native" will let you import Live2D animations into your Ren'Py game, but that's something I'm not as familiar with.
Thank you for this tutorial I will credit you in special thanks but also you earned a sub❤👍
It's good to see this channel growing! I love seeing good content recognized. I'm learning so much about ren'py with your tips and visual novel programming. Your tutorials are clear, useful and succinct. Why isn't UA-cam recommending these more? Anyhow, I'm glad I found it. Gives me an advantage.
very concise video. good job
Haven't used RenPy in like... a year, but this seems cool
It's ridiculous that UA-cam isn't pushing this video to more viewers. This is one of the best Ren'py tutorials for doing this. It is easy to follow, clear and succinct. Thanks for sharing!
Well... I've got this video recommended although I have no business with game design or programming or whatever this is about 🤷 So UA-cam in fact is pushing it, but probably to the wrong audience.
@@etorommka Oh wow, good to know it's getting out there. This is about programming a computer game/visual novel with graphics, artwork, text and music.
Monkey paw: *curls*
hi, sorry but im new to renpy and coding in general, wgat if a wanted to play only a sound for every cps in the game? i don't want different sounds for every characters, i want a general sound for the entire game to play when a first letter is shown and to finish when the last letter of the dialogue is shown, can you help me? great video btw
init python: def play_typing_sound(event, interact=True, **kwargs): if event == "show": renpy.sound.play("audio/sound/beep.ogg", channel="typing", loop=True) elif event in ("slow_done", "end"): renpy.sound.stop(channel="typing", fadeout=0.1) define mario = Character("Mario", callback=play_typing_sound) this is my code and i have an audio called beep in game/audio/sound and is .ogg
@@yyokidd46012 Make sure your new channel "typing" is defined somewhere in your init python block: renpy.music.register_channel("typing", mixer=None, loop=True, stop_on_mute=True, tight=False, file_prefix='', file_suffix='', buffer_queue=True) Then it's just a matter of adding "callback=play_typing_sound" to each of your character objects. Example: define lucas = Character("Lucas", callback=play_typing_sound)
This, as all the one's I've seen from you here, are some of the best tutorials I've seen on youtube, because of the way you explain every line and the various tricky commands. Thank you for sharing.
Thankyou so much
Hi there, this is super cool! Thanks for showing me this. Know that you can enter the label names directly in the program and export it as "label/track" and all the voice lines will be already uploaded with the id.
Good to know, thank you!
This is sooo helpful! I've been trying to figure out how to do exactly this. Thanks for sharing your knowledge.
Hey, i was wondering if you could make a pastebin on the code you created in this video or a link to the renpy that you created so i get get a basis on how it works, id appreciate it :)
Good idea! I should have done this sooner, but I've just created a GitHub repo: github.com/bamboocalc/continuous-text-sounds
Fun fact: This does not solve the problem as the rpa can be extracted before launch on a legitimate copy, run normally with unrpyc, then have the code modified to remove those lines and run normally without owning it
Good point. On that topic, I've found that unrpyc can be thwarted if you include a variable with a value like "ü" in the init python block. I'm not near a computer so I don't have the exact error message handy, but from what I've seen, TaxHeaven3000 implements something similar to prevent modders from accessing the code that way.
A great introduction to a big problem. Thanks!
I understand wanting to protect your work, but I really think you should look into some other methods and not recommend this to people -- especially having the game delete itself. All it would take is some Steam-side bug, some lack of connection, some future change or breaking of the API and your game is not just unplayable but possibly *non-recoverable* for someone who bought it. I'd feel uncomfortable even relying on achievement.steam in any real way (outside of achievements) in case the player is simply in offline mode, and there is some desync between states involved. That shouldn't be the case, but I wouldn't rely on it. And I could be wrong, but I'd think a copied game would be run from the .exe, therefore might not initialize Steam (what if the pirate doesn't have Steam at all?), therefore the 'achievement.steam != None' line will fail and the game will run fine. If not, a savvy pirate/modder would just de-archive the game with something like UnRen and remove this code anyway (or spoof Steam integration, if necessary). In that way, the only people who could feasibly be hurt by this are those who DIDN'T copy the game and don't intend to copy/share it. I think a screen that freezes the game and tells the player "hey, the game thinks something weird is going on; make sure you've started the game through Steam in Online Mode or send feedback to the developer through Steam Support" would be appropriate, if not still a bit heavy-handed; if you really want more than that, unfortunately I think the easily-reversible engines like Ren'Py and RPGMaker just aren't the way to go. At any rate, the only way I'd go so far as (attempting to) delete the game files is with evidence akin to a signed confession of "yeah I pirated this game intentionally" -- anything less than that is just going to hurt innocent players and lead to a lot of confusing support requests.
Absolutely BLESS YOU for this tutorial. I'm in the middle of debugging this year's Spooktober entry, it's my first time adding VA to a game, and you've saved me an enormous headache.
Glad you found it useful!
Same here haha! Good luck with your spooktober project!
CORRECTION: The label for your splash screen must be called "splashscreen" ---- OTHER THINGS TO NOTE: os.path.join(renpy.config.basedir, 'game', 'archive.rpa') is the path to the RPA file. renpy.config.basedir brings you to the base directory of your RenPy game, as the name implies. In general, the complete path should look something like this: C:\Program Files (x86)\Steam\steamapps\common\YOUR_GAME_NAME\game\archive.rpa This assumes that you named your RPA file "archive", and that there is only one RPA file in your game.
That was super helpful and clear to understand. Thank you for sharing this process!
😮👏
This is a phenomenal video. Thank you.
this is super helpful, thank you a ton for sharing this man!
Let's say I'd like the Goombas to have a different voice set than Mario does. How could it be implemented in the code?
If you make another function, let's say "def goomba_speak(event, **kwargs)" and then update your character "goomba" to have "callback=goomba_speak" somewhere in its object. For example...... define goomba = Character("Goomba", callback=goomba_speak)
@@boredchris Hi! I did this and slotted this into the character code, but it comes back with a NameError: name 'goomba_speak' is not defined. I'm not sure how to fix this
@@LuckySpark42 In the script.rpy file, make sure that inside the "init python" block, there exists a function called "goomba_speak" and make sure the init python block appears at the top of the script, before you define any of your characters. I wish UA-cam allowed screenshots in comments, but here's a pastebin of what the code should look like: pastebin.com/XzEue63d