Jigsaw

Jigsaw

Learn everything, do nothing.

How to create a tabletop RPG video using Ren'Py

This tutorial is based on the TRPG video tutorial created by Loving Warrior Wind Space ("We Can Make TRPG Videos Without Much Trouble" had two episodes, which have now been deleted for unknown reasons), along with some modifications made by myself. After some refinement, I believe this tutorial is convenient enough to allow for streamlined production, so I share it here for reference. The videos produced using this method may not have high precision, but the efficiency is definitely top-notch (you can complete it in a day as long as you have organized TRPG records).

What are you waiting for? Abandon the life of a grind, and trade it for my lush hair!

Preparation#

Material and Software List#

Windows 10/Windows 7 64-bit system

TRPG records

Character illustrations, scene materials, etc.

TRPG Record Colorizer

Python 3.X

Ultimate Auto Script for Renpy (a modified version based on the original code of Wind Space)

Renpy

Screen recording software: OBS/Bandicam (it seems that Windows 10 can use Win+G for screen recording, but I do not recommend it)

Text-to-speech software: Read Aloud (not mandatory in this version)

Editing software: PR/Vegas/Camtasia (not mandatory)

Editor: Atom/Vscode (not mandatory)

Configuring the Python Environment#

This section is prepared for readers without programming background; those who feel capable can skip directly to reading the script source code.

First, search for Python on Baidu and go to the official website (or click the hyperlink above), ignore the English text, and directly find the Download icon and the python3.X.X below it, then click to enter the download page.

IMG

Next, on the download page, you might feel confused, but don't worry, just scroll down until you see the following interface.

IMG

Click to download the exe file as shown in the picture, and open it to install (generally, you just need to keep clicking Next).

It is important to check the option Add Python 3.X to PATH (the image is an old one, please don't mind).

IMG

Then open the command line (cmd), type pip install baidu-aip, and wait for the installation to complete.

Official Start#

Processing TRPG Logs#

How to Export TRPG Logs#

Using Dice Bot

Current dice bots (Tower Dice and Backtracking Dice, I don't know about Huihui Dice) generally support the .log on command. Just input this command when starting the session and input .log off when ending the session, and the dice bot will automatically save the records.

(This method is simple, but since the records are stored on the dice bot's server, it is recommended to find a stable dice bot~~[for example, my dice bot restarts frequently, which is definitely unreliable]~~, otherwise the records will be lost.)

Using QQ's Message Manager

PC only

Open the Tencent QQ interface, and you will see a button in the lower left corner. Click it, and the page that appears will have the message manager in the upper left corner.

After entering the message manager, find the group chat you use for TRPG in the group chat section, right-click, and export it in txt format.

(This method requires manual filtering and coloring of the exported chat records, and there may be strange occurrences of some text disappearing.)

Coloring#

Open the QQ TRPG Record Colorizer.

img

Select and copy all the prepared TRPG records into the input box of the colorizer.

Set the display time to OFF and click the process button.

img

In the PC name area, make the group name cards of the same person consistent.

The final result is shown in the following image.

img

Select all in the preview area, copy and paste it into Word.

Simple Format Processing#

Copy the colored TRPG records into a Word document (this step is omitted for Tower Dice).

Then open the replace panel in Word, enter < in the find box, and enter ^p【 in the replace box, then replace all.

IMG

Next, change the find box to >, and the replace box to 】^p, and replace all again.

The final result is shown in the following image.

IMG

Finally, select all in the Word document and paste it into a txt text document.

It is recommended to manually check the final records to prevent any English characters or other characters that cannot be used as file names.

Configuration of the Auto Script#

Initial Configuration#

Just look at the comments in the source code; I won't explain it further.

import os
# You need to enter pip install baidu-aip in the command line (What? You don't know what the command line is? I suggest you search it on Baidu.)
from aip import AipSpeech

# Added Baidu's speech synthesis SDK based on the original code of Wind Space to achieve ultimate automation

voice_flag=1 # Speech synthesis switch 1 for on 0 for off, recommended to turn off for slow internet speeds

# Your APPID AK SK, it is recommended to apply for them on the Baidu Cloud platform, but using mine is also fine (but I can't guarantee I won't turn it off one day)
APP_ID = '20355681'
API_KEY = '6gI2piIaG0DzRMTgDE6XN4S6'
SECRET_KEY = 'yARGOWrKDHDSDIkkD1ngFNKvjvhvBWdX'

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

# Open the input file, the organized log. log.txt needs to be utf-8 encoded and placed in the same directory as the auto script for renpy.py
fobj = open('log.txt',mode='r',encoding='utf-8')
# Create an output file for copying into renpy
file_rpy = open('script.rpy',mode='w',encoding='utf-8')
    
# List all the character names of kp, dice, pl, and npc that appear in log.txt
char_list=["【GM】","【Black Spade 3】","【Black Spade 6】","【Club 7】","【Club 4】"]

# List the corresponding voice tones for each character, please keep the order consistent with the char_list above
'''
spd: speech speed, value 0-9, default is 5 for medium speed
pit: pitch, value 0-9, default is 5 for medium pitch
vol: volume, value 0-15, default is 5 for medium volume
per: voice selection, 0 for female, 1 for male, 3 for emotional male, 4 for emotional female, default is 0
'''
char_voice_list=[ 
    {
    'vol': 5,
    'per': 3,
    'pit': 5,
    },
    {
    'vol': 5,
    'per': 1,
    'pit': 3,
    },
    {
    'vol': 5,
    'per': 0,
    'pit': 7,
    },
    {
    'vol': 5,
    'per': 3,
    'pit': 8,
    },
    {
    'vol': 5,
    'per': 4,
    'pit': 6,
    },
    ]

# Custom display width for character illustrations, please keep the order consistent with the char_list above, in pixels
char_x=["500","400", "400", "400", "400"]

# Custom display height for character illustrations, please keep the order consistent with the char_list above, in pixels
char_y=["800","700", "700", "700", "700"]

# Position of each character's illustration. Please keep the order consistent with the char_list above
location_list=["left","right", "right", "right", "right"]

# Name of the dice. Note that the name of the dice should also appear in char_list
dice_tag="【bot-drsink】"

# Whether to automatically process the dice. 1 for automatic, 0 for directly displaying the roll statement
dice_flag=1

# Dice sound effect file names. If you choose to automatically process the dice, you need to set the following parts
rolling_se="manydice.mp3"# rolling sound effect
suc_se="suc_se.mp3"# success sound effect
crit_suc_se="crit_suc_se.mp3"# critical success sound effect
fail_se="fail_se.mp3"# failure sound effect
fumble_fail_se="fumble_fail_se.wav"# critical failure sound effect

Running the Script#

Name the processed TRPG records as log.txt and double-click the script to run it.

Please be patient while it runs; as long as the window does not disappear, it means it is still running.

If the window shows finish!, it means the run is complete. If other text appears, it indicates a problem, and you can modify the TRPG records according to the prompts.

After the run, a script.rpy file and a voice folder will appear in the root directory.

The original code of Wind Space does not automatically generate speech; the folder will contain split text, which can be batch converted to speech using Read Aloud.

Renpy Configuration#

Creating a New Project and Initialization#

After downloading Renpy, open it, and you should see this interface.

IMG

Click to create a new project and follow the prompts step by step.

Open the game folder in the project root directory.

Paste the previously generated script.rpy and voice folder into it.

Create a new image folder, name the prepared character illustrations according to the characters (for example, 【GM】.jpg), and paste them along with the scenes into the image folder.

Replacing Fonts, Hiding Buttons, and Auto Play#

Replacing Fonts

Since Renpy's native font support for Chinese is not very good, I recommend changing the font for a better experience.

Paste the font file you want to replace into the game folder in the project root directory.

Open gui.rpy with Notepad.

## Font for in-game text.
define gui.text_font = "SourceHanSans-Light-Lite.ttf"

## Font for character names.
define gui.name_text_font = "SourceHanSans-Light-Lite.ttf"

Find this section of code and replace SourceHanSans-Light-Lite.ttf with the font you want to use.

Hiding Buttons

Open gui.rpy with Notepad.

            textbutton _("Back") action Rollback()
            textbutton _("History") action ShowMenu('history')
            textbutton _("Fast Forward") action Skip() alternate Skip(fast=True, confirm=True)
            textbutton _("Auto") action Preference("auto-forward", "toggle")
            textbutton _("Save") action ShowMenu('save')
            textbutton _("Quick Save") action QuickSave()
            textbutton _("Quick Load") action QuickLoad()
            textbutton _("Settings") action ShowMenu('preferences')

Find these statements and add # at the beginning of each line to comment them out.

Auto Play

Open the file \renpy\common\00keymap.rpy in the software root directory.

toggle_afm = ['z'],

Modify the letters in the parentheses to change the corresponding auto-play shortcut key.

Simple Syntax#

Assuming there is a background image called bg room, to display it, you need to edit script.rpy and enter the following at the corresponding position:

scene bg room

The same statement is used for switching scenes.

Recording and Post-Processing#

Open Renpy, start the project, and enter the game interface without moving for now.

IMG

Open the screen recording software, adjust it, and then return to the game interface generated by Renpy.

IMG

Start the game, and in English input method mode, press the auto-play shortcut key, and patiently wait for the playback to complete.

Afterward, you can use editing software to perform some post-processing on the recorded video, or you can choose not to process it.

Conclusion#

This is my method for creating TRPG videos. Once again, I emphasize that this method is not the best; it sacrifices precision for efficiency.

(By the way, I feel like the column is a bit unclear; if I have time in the future, I might make a video.)

Overall, creating TRPG videos is not difficult; there are various tutorials available, so don't be intimidated by the initial barriers.

Remember, the important thing in content production is the content itself; the tools for production are not inherently superior or inferior.

If you have any questions, feel free to leave a comment (referring to the Bilibili comment section). I wish everyone can turn their interesting TRPG experiences into videos and share them with others.

TRPG videos made using this method: https://www.bilibili.com/video/BV1sa4y1Y755

Other people's Renpy TRPG video production tutorials: https://www.bilibili.com/video/BV1KT4y157Xr

Recommendations for TRPG video production tools by 139: https://www.bilibili.com/read/cv6348879

Advantages of This Method#

No copyright issues: Both Renpy and the TRPG record colorizer are open-source under the MIT license (of course, if you want to use pirated art materials, I can't help you).

Modular, streamlined production: The processing of TRPG records, text-to-speech, and speech-to-video are all done in separate steps, allowing for quick corrections even if an error occurs in one step.

Disadvantages of This Method#

Voice acting is not rich enough: The auto script I improved uses Baidu's text-to-speech SDK (don't ask me why I didn't use others; the others cost money), so there are only 4 voice tones. Even if divided into high and low pitches, it can only support eight characters. The solution is to turn off the text-to-speech switch in the script and use Read Aloud for a better experience.

No special effects without post-processing: For example, if you want a health bar in a combat round, you will have to create it yourself.

Requires installation of Python and the baidu-aip module: The first step is always the hardest; many people are too lazy to take that first step, and I can't help that.

Simple References to Other Methods#

Related video: https://www.bilibili.com/video/BV1KT4y157Xr

Video Editing Software Production#

There isn't much to say about this method; most UP owners do it manually, mainly due to technical issues. If you are skilled and familiar with the software, your efficiency will be high; if not, you might not be able to produce an episode in a month (don't think this speed is fast; most UP owners delay updates not because of technical issues, but because of real-life busyness/energy spent organizing records/trying to achieve better presentation. If you have a lot of free time in real life, this efficiency is really not fast). As for which editing software to use, it is purely a matter of personal preference, and there is no need to delve into it.

Advantages: If you are already familiar with editing software, there is no additional learning cost, and you can have better presentation during production.

Disadvantages: Not friendly for low-skilled individuals; some software consumes too much memory, making it unfriendly for low-spec computers.

Related video: https://www.bilibili.com/video/BV19t411775m

PPT Production#

I feel that the PPT production method is not much different from the PR production method; both are essentially manual production, but PPT is friendlier (after all, PPT won't consume your memory and won't suddenly become unresponsive). The learning cost is also relatively low (more people know how to use PPT than PR), making it a more beginner-friendly method.

Advantages: Low learning cost, and the operation is somewhat simplified compared to editing software.

Disadvantages: Surprisingly, I can't find any disadvantages.

Related video: https://www.bilibili.com/video/BV1it411Z7oU

Musou AVG Engine#

Since I haven't joined the QQ group for this engine and haven't operated the software, I can only evaluate it based on the content in the videos, so the reliability may not be very high.

Advantages: Very similar to Renpy, but most of the syntax is in Chinese, making it friendlier for Chinese users.

Disadvantages: The tutorials made by UP owners are headache-inducing.

Related video: https://www.bilibili.com/video/BV1cb411J7Jj

Chengguang Game#

Advantages: Low learning cost, and the operation is very simple.

Disadvantages: The art materials from Chengguang cannot actually be used to make videos (using them to make TRPG videos is a gray area).

Related video: https://www.bilibili.com/video/BV1BW411J7zP

Living Character Engine#

I do not recommend using the current version; it is not mature enough.

Advantages: Lightweight syntax, and the original author provides online answers.

Disadvantages: Preloading resources leads to slow startup, built-in fonts prevent customization, and online text-to-speech without caching makes debugging difficult.

Related video: https://www.bilibili.com/video/BV1Ek4y1r7vw

One-Click Python Script#

This is somewhat like an upgraded version of this method, with more pronounced advantages and disadvantages.

Related video: https://www.bilibili.com/video/BV1T5411e78j

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.