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 (the series "We Can Make TRPG Videos Without Much Trouble" has two episodes and has 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 be very detailed, 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 get my lush hair!

Preparation#

Material and Software List#

Win10/Win7 64-bit system

TRPG records

Character illustrations, scene materials, etc.

TRPG Record Colorizer

Python3.X

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

Renpy

Screen recording software: OBS/Bandicam (it seems Win10 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)

Configure 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 image, and open it to install (generally, just keep clicking Next).

It is important to check the option Add Python 3.X to PATH (the image is old, 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#

TRPG Log Processing#

How to Export TRPG Log#

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 game, and input .log off when finishing, and the dice bot will automatically save the records.

(This method is simple, but since the records are saved 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 message manager will appear in the upper left corner of the displayed page.

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

(This method requires manual filtering and coloring of the exported chat records, and there may be strange incidents where some text mysteriously disappears.)

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 sure the group name cards of the same person are consistent.

The final result is shown in the image below.

img

Select all in the preview area, and 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).

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

IMG

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

The final result is shown in the image below.

IMG

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

It is recommended to manually check the final records to prevent the presence of 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 to achieve ultimate automation

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

# Your APPID AK SK, it is recommended to apply on Baidu Cloud Platform yourself, of course, you can use mine too (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 appearing in log.txt for kp, dice, pl, and npc
char_list=["【GM】","【黑桃 3】","【黑桃 6】","【梅花 7】","【梅花 4】"]

# List the corresponding voice tones for each character, the order should match 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: speaker selection, 0 for female voice, 1 for male voice, 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, the order should match the char_list above, in pixels
char_x=["500","400", "400", "400", "400"]

# Custom display height for character illustrations, the order should match the char_list above, in pixels
char_y=["800","700", "700", "700", "700"]

# Position of each character's illustration. The order should match 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 dice roll line
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"# Dice 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 running; as long as the window does not disappear, it means it is still running.

If the window shows finish!, it means it has completed running. If other text appears, it indicates there was a problem, and you can modify the TRPG records according to the prompts.

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

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

Renpy Configuration#

Create a New Project and Initialize#

Download Renpy, and after opening it, 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 illustrations according to the characters (for example, 【GM】.jpg), and paste them along with the scenes into the image folder.

Replace Fonts, Hide Buttons, and Enable Auto Play#

Replace 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 segment and replace SourceHanSans-Light-Lite.ttf with the font you want to use.

Hide 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 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 input 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 wait patiently 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 detail for efficiency.

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

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 used for production are not inherently better or worse.

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 separately, so even if there is an error in one step, it can be quickly corrected.

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 don'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 to have health bars during combat rounds, you will have to create them yourself.

Requires Installation of Python and baidu-aip Module: The hardest part is getting started; many people are too lazy to take the first step, and I can't help with that.

Simple References for 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 dealing with technical issues. If you are skilled, your efficiency will be high; if not, you might not produce an episode in a month (don't think this speed is fast; most UP owners delay updates not because of technical issues but due to real-life busyness/energy spent organizing records/looking for better presentation forms; if you have a lot of free time, this efficiency is really not fast). As for which editing software to use, it's purely a matter of personal preference, and there's 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, which is not friendly for low-spec computers.

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

PPT Production#

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

Advantages: Low learning cost, and operations are 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, which is friendlier for Chinese users.

Disadvantages: The tutorials made by UP owners make my head hurt.

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

Chengguang Games#

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

Disadvantages: The art materials from Chengguang cannot actually be used for video production (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, 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.