Ren'Pyの最新プラグイン探す用ブックマーク
24/01/12 よくチェックするので一番上に固定。
Ren’Py Cookbook
Ren'Py Cookbook - Lemma Soft Forums
公式フォーラムの再利用可能なコードの置き場所。
色々な場所からまとめてくれている方がいるので最新の情報を得やすいです。
Itch.io
Latest tools tagged Ren'Py - itch.io
Latest free game assets tagged Ren'Py - itch.io
開発ツールとRen'Pyタグがついた素材の新作タブリンク。
画像・説明が多くてどんなコードか感覚が掴みやすい。
(24/01/26追記)
Visual Novel Assets, Tutorials, and Tools - Collection by Natasha Luna - itch.io
更新頻度の高いitch.ioの素材ブックマーク。こちらをチェックした方が早いかも。
Github
renpy · GitHub Topics · GitHub
GithubのRenpyタグを付けている最新レポジトリのリンク。
【日本語のみ】Ren'Pyの勉強におすすめブックマーク
非プログラマのRen'Pyノート|みやこ出版|個人ゲーム開発|note
導入から応用からtipsまで分かりやすく書かれています
Ren'pyにほんごメモ | Notion
初心者~中級者向け分かりやすいメモ なんでも載ってます
投稿一覧|雉野ハチ|pixivFANBOX
初心者向けスクリプトメモ
雑多帳 | Notion
tips系
Ren’Py – akakyouryuu
tips系 ちょっと古め
Ren'Py部屋 | crAsm ビジュアルノベル情報部屋
ブラウザ投稿の方法、Ren'Pyユーザー向けPython講座など
Ren'Py のドキュメントにようこそ! — Ren'Py Documentation
分かってきた人向け とても良い公式ドキュメントなのですが、スクリプトが苦手な方は最初からクイックスタートに取り組むとおそらく頭が爆発します
Twitterハッシュタグ #RenPy小技
有志投稿tipsハッシュタグ
Twitterハッシュタグ #RenPy疑問
疑問投稿ハッシュタグ 困ってることは既に誰かが質問しているかも
2026/02 itchで見つけたRen'Py素材ブックマーク
動作確認していません。
brunoais.itch.io
翻訳ファイルの存在を確認すると自動で言語変更メニューに追加するスクリプト
kigyo.itch.io
必要な時に上下に映画のような黒い帯(レターボックス)を追加するスクリプト
bast13.itch.io
itch.ioで公開しているゲームにアップデートがあれば通知をするスクリプト
feniksdev.itch.io
パーティクルの詰め合わせ+パーティクルに関する機能追加スクリプト
makevisualnovels.itch.io
トランジションの詰め合わせ
otojang.itch.io
transformの詰め合わせ
Ren’Py製のノベルゲーをマウスホイールで読みたい
参考:https://www.reddit.com/r/RenPy/comments/1bf4od3/a_plea_to_developers_stop_disabling_quality_of/
日本語未対応か海外仕様か初めての作品かの場合、だいたいマウスホイールで進めないことが多いです。なのでマウスホイールで進める機能をつけたMODみたいなのを作りました。なにがしかの悪影響があっては困るので最低限の記述です。
1. このrpyファイルをダウンロードするか自分で書きます
game_folder_in_mouse.rpy - Google ドライブ
init 999 python: config.keymap['dismiss'].append('mousedown_5') #マウスホイールで進む用の設定
中に書いてあるのはこれだけです。
2. やりたいゲームのgameフォルダに入れます
3. ゲームを起動します、既に起動している場合は再起動します
Ren’Py製のゲームがクラッシュする原因
引用
https://www.reddit.com/r/RenPy/comments/1hp7hmf/renpy_game_it_turns_off/
https://www.reddit.com/r/RenPy/comments/m04g66/comment/h7a01fp/
https://x.com/kzng1445/status/1995005974877540814
https://www.reddit.com/r/RenPy/comments/tmwmn0/disable_gamepad/
- CPUかGPUで一部のNVIDIA製のグラフィックスカードを使用している
- Windows Defender以外のウイルス対策ソフトが動作している
- PCやキーボードのRGBライティングを制御するソフトウェアをインストールしている(RazerやLogitechなどの製品が該当)
- Razer製の製品やコントローラーが接続されている
💡NVIDIA製カードが原因の場合の解決法
- Nvidiaコントロールパネルを管理者として起動(Experienceではない)
- 開発者からGPUパフォーマンスカウンターの管理をクリック(「開発者」セクションが表示されない場合は、画面上部の「デスクトップ」→「開発者設定を有効にする」をクリック)
- GPU パフォーマンスカウンターへのアクセスをすべてのユーザーに許可するを選択
- 適用をクリック
💡Razer製品に関する情報
Razer Tartarusは確実にクラッシュするようです。Razarのキーボードを使用している際、USBポートを変えたら動いた場合もあるようです。(R18サイト注意:Renpy games open then close | F95zone | Adult Games | Comics | Mods | Cheats)
制作者の場合、
init python:
renpy.game.preferences.pad_enabled = False
上記のコードを設定することによってゲームパッドを無効にすることでクラッシュを回避できるようです。(1度はクラッシュする必要があるようです)
Ren’Pyでwoff2フォントを使って軽量化するメモ
Changelog (Ren'Py 7.x-) — Ren'Py Documentation
Ren’Py8.5.0からwoff2フォントが使用できるようになりました
woff2とは:最新の圧縮形式フォント 軽い ttfから容量が半分ほどになる
Google fontsからフォントを選ぶ
Google fontsのフォントはほとんどSIL Open Font License(woff2に変換可能なライセンス)なので、ここからフォントを選ぶのをおすすめ
別サイトからフォントを選ぶ場合は改変可能かどうか、ソフトウェアに同梱は可能かどうか、Webフォントに変換できるかどうかを必ず確認
OFLライセンスについてはこちらの解説が一番わかりやすい 「SILオープンフォントライセンス」って何?という方のためのざっくり解説 – たぬきフォント
OFLライセンスで大切なこと
・必ずライセンス情報をゲーム内の文書に含める
・予約フォント名(Reserved Font Name)が記載されているかどうか確認する
ライセンス情報の記載と予約フォント名の確認
Google fontsではフォントを選ぶとLicensesからライセンス情報が確認できる

ここで得たライセンス情報はABOUTなどに記載する 書き方はこちらが参考になる フォントのライセンスについて | 自家製フォント工房
書き方の例
text ”This software uses \"BIZ UD Gothic\" {a=https://github.com/googlefonts/morisawa-biz-ud-gothic}(https://github.com/googlefonts/morisawa-biz-ud-gothic){/a} as the display font.\nLicensed under SIL Open Font License 1.1{a=http://scripts.sil.org/OFL}(http://scripts.sil.org/OFL){/a}\nCopyright 2022 The BIZ UDGothic Project Authors\n"
赤線のwith Reserved Font Name "~" がある場合は予約名があるため、変換した後のフォント名に"~"で囲われた予約名を使用しないよう注意。予約名が無い場合は特に気にしなくて大丈夫
ダウンロードするもしくは変換する
Google fontsにあるフォントはこのサイトからフォント名を検索してダウンロードできる woff2をダウンロードする際はデフォルトの状態でファイルをダウンロードすれば大丈夫 google webfonts helper の使い方 - Benrito
webツールも探したらあるはず
予約名があった場合はファイル名に該当の名前を含めないよう注意
終わったらgameフォルダにwoff2入れる
ビルド設定にwoff2を追記する
build.classify("game/**.woff2", "archive")
忘れがちなので注意。
以前開いたタブを記憶する
最初のテンプレートにあるヘルプ画面はタブ形式になっています。
はじめてのコピペUI改造として向いているいい画面です。
しかし使われている変数が普通の変数のため、
ここに後日談の部屋や回想部屋を入れる場合、
見終わると毎回最初のタブに戻されてしまいます。
今回はその変数をpersistent変数に変更して
以前開いたタブを記憶する仕組みにします。
1.persistent変数を作る
default persistent.help_navi = "sousa"
最初に表示したい画面の文字を設定します。
わかりやすくするためにscreen名に似た文字を設定していますが、
後述の内容に沿っていれば特に問題はありません。
2. screen helpのコードを改造する
screen help(): use game_menu(_("Help"), scroll="viewport"): hbox: if persistent.help_navi == "sousa": use sousa_help elif persistent.help_navi == "readme": use readme_help elif persistent.help_navi == "log": use log_help elif persistent.help_navi == "credit": use credit_help elif persistent.help_navi == "warn": use warn_help hbox: xalign 0.5 yalign 1.0 hbox: style_prefix "navigation2" spacing 5 textbutton _("はじめに"): action SetVariable("persistent.help_navi", "readme") textbutton _("操作方法"): action SetVariable("persistent.help_navi", "sousa") textbutton _("クレジット"): action SetVariable("persistent.help_navi", "credit") textbutton _("注意免責事項"): action SetVariable("persistent.help_navi", "warn") textbutton _("更新履歴"): action SetVariable("persistent.help_navi", "log") screen sousa_help(): (省略)
deviceの変数を削除し、SetScreenVariableからSetVariableにしています。
テキストボタン部分のレイアウトは自作ゲーム用に変更しているので、
そのまま使うとおかしくなるかもしれません。適宜変更おねがいします……
Ren’Pyでテキストファイルを出力する
引用
How do you create an output text file? - Lemma Soft Forums
準備
default persistent.txt_file = False
一度だけ起動させるためpersistent変数を作っておくこと。
コード
if persistent.txt_file == False: python: with open( os.path.join( renpy.config.gamedir, "testfile.txt" ), 'w' ) as f: f.write( 'text' ) persistent.txt_file = True
このコードをテキストファイルを出力したいタイミングに書く。
テキストファイルが出力される時、特に通知はされないため
$ renpy.notify("txtファイルが出力されました")をコードに追加するなど通知を入れてもよい。
勝手にテキストファイルを開きたい場合はこちらを参照。
【Ren’Py】テキストファイルを開く #Ren’Py - Qiita
1.ファイルを出力する場所を選ぶ
3行目のrenpy.config.gamedirのままだと、gameフォルダに出力される。
それ以外の場所で出力する場合は以下のどれかに変更すること。
renpy.config.gamedir:この変数を設定するとgameフォルダに出力される。
gameディレクトリのフルパスを取得する読み込み用の変数。
https://ja.renpy.org/doc/html/config.html#var-config.gamedir
renpy.config.savedir:この変数を設定するとsaveフォルダに出力される。
saveディレクトリの取得する読み込み用の変数。
https://ja.renpy.org/doc/html/config.html#var-config.savedir
renpy.config.renpy_base:この変数を設定するとexeファイルのあるフォルダに出力される。ビルド前のプロジェクトが出力するときはrenpy.exeのある場所に出力されるので注意。
ファイルを出力する場所はゲームのフォルダ内に限る。(ゲームの作りとしてデスクトップなどゲームフォルダ外での干渉することは推奨されない)
2.テキストファイル名を決める
3行目のtestfile.txtを変更する。
.txtは拡張子のため注意。
3.内容を決める
4行目の'text'内を変更する。
パブリックドメイン背景素材の備忘録メモ
本題
検索の時によく使うopenverseのフィルターURLブックマーク。
商用可、CC0、美術館等公的なソースのみ。
room | Openverse
部屋以外を探したい場合はroomを別の単語に変えて検索してください。
検索のフィルターが残ったまま検索できるはず。
画面に雪を降らせる

用意するもの

・雪の結晶の画像x2
私はICOOON MONOさんから2つアイコンを借り、色を明るめに変えて13x15と10x11くらいに縮小しました(私のゲームの解像度は1080x1920)お好みで大きくしたり小さくしたりしてください。これはimagesフォルダに加えておきます。雪じゃなくても色んなもの降らせたらいいと思います。
スクリプトの変換に失敗しましたエラーが出る
きっかけ:https://x.com/intheriverJP/status/1904386586273559003
よくあることかもと思ったのでこちらでもメモ。

ランチャーのアクション→強制再コンパイルで直ります。
日本語未対応Ren’Py製の海外乙女ゲを自動翻訳でやる
はじめに
こっちの記事を読んだほうが早いかもしれない。
guiltyjake.blog95.fc2.com
WindowsPCでのプレイを前提とした記事です。
乙女ゲに関わらずノベルゲームをプレイする向けです。
ルビ(ふりがな)をオンオフできるようにする
2025/04/21 より簡単でスクリプトが読みやすい関数をYan-Gyanが提案してくれました。ありがとう!
2024/12/04 追記
ルビ(ふりがな)をオンオフできるようにする
引用・参考
https://www.reddit.com/r/RenPy/comments/1gthq3l/enablingdisabling_text_tags/
https://ja.renpy.org/doc/html/text.html#ruby-text
https://ja.renpy.org/doc/html/custom_text_tags.html
ルビのスタイル設定
screens.rpy
style ruby_style is default: size 30 yoffset -50 color None style say_dialogue: ruby_style style.ruby_style
永続変数の設定
options.rpy
default persistent.ruby_pref = False
設定画面を作る
screens.rpy
if preferences.language == None: vbox: style_prefix "radio" label _("ふりがなの有無") null height 30 hbox: textbutton _("あり") action SetVariable("persistent.ruby_pref", True), Function(gui.rebuild) null width 10 textbutton _("なし") action SetVariable("persistent.ruby_pref", False), Function(gui.rebuild)
ルビの関数を作る
options.rpy
新ver.
def simple_ruby(tag, argument, contents):
if persistent.ruby_pref:
return [
(renpy.TEXT_TAG, u"rb"),
] + contents + [
(renpy.TEXT_TAG, u"/rb"),
]+[
(renpy.TEXT_TAG, u"rt"),
(renpy.TEXT_TEXT, u"{}".format(argument)),
(renpy.TEXT_TAG, u"/rt"),
]
else:
return contents
config.custom_text_tags["r"] = simple_ruby
旧ver.
def ruby_tag1(tag, argument, contents):
if persistent.ruby_pref:
return [
(renpy.TEXT_TAG, u"rt"),
] + contents + [
(renpy.TEXT_TAG, u"/rt"),
]
else:
return ""
def ruby_tag2(tag, argument, contents):
if persistent.ruby_pref:
return [
(renpy.TEXT_TAG, u"rb"),
] + contents + [
(renpy.TEXT_TAG, u"/rb"),
]
else:
return contents
config.custom_text_tags["r1"] = ruby_tag1
config.custom_text_tags["r2"] = ruby_tag2
バックログでスルーされないよう設定
screens.rpy
新ver.
define gui.history_allow_tags = ("r", "rb","rt","alt","noalt","i", "k")
旧ver.
define gui.history_allow_tags = ("r1", "r2", "rb","rt","alt","noalt","i", "k")
テスト
script.rpy
新ver.
”{r=かさ}傘{/r}”
旧ver.
”{r2}傘{/r2}{r1}かさ{/r1}”
Ren'Pyのスクリーンショット機能にウォーターマークを入れてみる
※この方法はスクリーンショットの度にウォーターマークがチラつくため、あまり実用的ではありません。内容としてはRen’Py内のSキーを押した時に使用されるスクリーンショット機能に画像を表示する動きを挟むものです。外部ソフトによるスクリーンショットでは実行されません。
1.スクリーンを用意する
screens.rpy
screen logo():
timer 0.01 action Hide("logo")
add "logo.png" xpos 10 ypos 10 # 画像の場合はこちら
text "circle name" xpos 10 ypos 10 #テキストの場合はこちら
ウォーターマークを表示する用のスクリーンを用意する。logoの名前は変更可能。画像を用意する場合はaddの行を使い、textをコメントアウトする。テキストのみにする場合は逆の方法で。どちらも使う場合はどちらも残す。xpos yposなどで位置を調整。表示した後、時間経過で閉じるようにtimerを記述している。
2. Config変数に記述する
options.rpy(どこでもいい)
define config.pre_screenshot_actions = [Hide("notify", immediately=True),Show("logo")]
引用:Config 変数 — Ren'Py Documentation
スクリーンショットを撮るときに呼び出されるアクションのリストの変数config.pre_screenshot_actionsに、上記で作成したスクリーンの表示を指定する。スクリーンショットに移したくない要素の一時的な非表示のために使用されるが、今回はウォーターマークの表示のために使う(Hide("notify")~はデフォルトで設定されている内容)
余談
transform alpha_set:
alpha 0.8
透明度を設定するtransformを作って add や text の一番後ろに at alpha_set(名前変更可)で調整することも可。