Ren'Pyゲームの配布は、Launcherからプラットフォーム別パッケージ(Windows/macOS/Linux/Android/Web)をビルドし、itch.ioにアップロードするだけ。options.rpy の設定さえ済んでいれば数分で完了する。
この記事では、Ren'Py 8.5.2 でのビルド準備からプラットフォーム別の注意点、itch.ioへの公開、build.classify() によるファイル制御までを一通り解説する。
ビルド前の準備
options.rpy の設定
options.rpy にビルドの基本情報を記述する。プロジェクト作成時にテンプレートが生成されているので、値を書き換えるだけでいい。
define config.name = "My Visual Novel"
define build.name = "MyVisualNovel"
define config.version = "1.0"
config.name はゲームのタイトル。build.name は配布ファイルの名前に使われる。スペース・コロン・セミコロンは使えない。config.version はバージョン番号で、itch.ioへのアップロード時にも参照される。
Lintチェック
ビルド前に必ずLintを実行する。Launcherの 「Check Script (Lint)」 をクリックする。
Lintは以下をチェックする:
- 未定義のimageやcharacterの参照
- 到達不能なlabel
- 音声ファイルの欠落
- その他の潜在的な問題
エラーが出たら修正してからビルドに進む。警告(warning)は致命的ではないが、できるだけ解消しておこう。
アイコンの変更
デフォルトのRen'Pyアイコンを自分のゲームのアイコンに差し替える。
mygame/ ← ベースディレクトリ(ここに置く)
├── icon.ico ← Windows用(256x256推奨)
├── icon.icns ← macOS用
└── game/
└── ...
プロジェクトのベースディレクトリ(game/ フォルダの親)に配置する。
ビルドの実行
Launcherからビルドする
- Ren'Py Launcherでプロジェクトを選択
- 「Build Distributions」 をクリック
- ビルドするパッケージを選択(デフォルトで全プラットフォームが選択済み)
- ビルドが完了すると、出力先フォルダが開く
出力されるファイル
デフォルト設定では、以下のファイルが生成される:
| ファイル | 対象 |
|---|---|
MyVisualNovel-1.0-pc.zip | Windows + Linux |
MyVisualNovel-1.0-mac.zip | macOS |
pc パッケージにはWindowsとLinuxの両方の実行ファイルが含まれている。プレイヤーは自分のOSに対応した実行ファイルを起動するだけでいい。
プラットフォーム別の注意点
Windows
特別な設定は不要。zipを展開して .exe をダブルクリックで起動する。最も手軽なプラットフォーム。
macOS — Gatekeeper問題
macOSでは未署名のアプリケーションの実行が制限されている。macOS Sequoia(15.0)以降、この制限はさらに厳しくなった。
未署名のゲームを起動するには、プレイヤーがターミナルで以下を実行する必要がある:
xattr -r -d com.apple.quarantine /path/to/MyVisualNovel.app
Linux
pc パッケージに含まれる .sh ファイルを実行する。ファイルに実行権限がない場合は chmod +x が必要。
Android
Android向けのビルドにはRAPT(Ren'Py Android Packaging Tool)を使う。
- Launcherで 「Android」 → 「Install SDK」 を実行
- JDK 21(Adoptium Temurin推奨)が必要
- 「Generate Keys」 で署名キーを生成(バックアップ必須)
- 「Configure」 でパッケージ名・アイコン等を設定
- 「Build」 でAPKまたはAABを生成
Google Play向けにはAAB(Android App Bundle)を、直接配布にはAPKを使う。設定やトラブルシューティングの詳細は公式Androidビルドドキュメントを参照。
Web(ベータ)
ブラウザで遊べるWeb版も作れる。
- Launcherで 「Web (Beta)」 → 「Build Web Application」 を実行
- 出力フォルダ内の
index.htmlをブラウザで開いて動作確認
Web版はitch.ioでの「ブラウザで遊ぶ」公開に最適だが、ファイルサイズが大きいとロードに時間がかかる。itch.ioのブラウザゲームには1000ファイル・合計500MBの制限がある。画像や音声の最適化と、後述する build.classify() での .rpa アーカイブ化を活用しよう。プラットフォーム制限の詳細は公式Webビルドドキュメントを参照。
itch.ioに公開する
手動アップロード
- itch.io でアカウントを作成
- Dashboard → 「Create new project」
- プロジェクト情報を入力(タイトル、説明、タグ等)
- 「Kind of project」 を「Downloadable」に設定
- ビルドしたzipファイルをアップロード
- 各ファイルにプラットフォームタグ(Windows / macOS / Linux)を設定
- 「Save & view page」 で公開
Web版の場合は 「Kind of project」 を「HTML」にし、zipアップロード後に 「This file will be played in the browser」 にチェックを入れる。
Launcherからの自動アップロード
options.rpy に以下を追加すると、Launcherから直接itch.ioにアップロードできる。
define build.itch_project = "username/project-name"
ビルド完了後に 「Upload to itch.io」 ボタンが表示される。初回はitchのCLIツール(butler)のインストールとログインが求められる。
自動アップロードでは、ファイル名のパターンに基づいてitch.ioのチャンネルが自動設定される:
| ファイルパターン | チャンネル |
|---|---|
*-pc.zip | win-linux |
*-mac.zip | osx |
*-linux.tar.bz2 | linux |
*-release.apk | android |
build.classify()でファイルを制御する
デフォルトのビルド設定で十分なケースが多いが、ファイルの除外やアーカイブ化をカスタマイズしたい場合は build.classify() を使う。
開発用ファイルを除外する
init python:
# Photoshopやイラストソフトのソースファイルを除外
build.classify("**/*.psd", None)
build.classify("**/*.clip", None)
# 開発メモを除外
build.classify("**/TODO.txt", None)
None を指定すると、そのパターンに一致するファイルはビルドから除外される。
ファイルをアーカイブ化する
画像や音声ファイルを .rpa アーカイブにまとめると、配布時のファイル数を減らせる。Web版ではitch.ioの1000ファイル制限の対策になる。
init python:
build.classify("game/**.png", "archive")
build.classify("game/**.jpg", "archive")
build.classify("game/**.ogg", "archive")
パターン記法
| パターン | 意味 |
|---|---|
* | ディレクトリ区切り以外の任意の文字列 |
** | ディレクトリを含む任意の文字列 |
/ | ディレクトリ区切り |
パターンは上から順に評価され、最初にマッチしたものが適用される。より具体的なパターンを先に書くこと。
FAQ
Ren'PyゲームをSteamで配布できる?
できる。Ren'PyはSteamworks連携をサポートしている。Steamworksの開発者アカウント($100一回払い)が必要で、options.rpy にSteam固有の設定を追加する。ビルド手順自体はitch.ioと同じで、生成したファイルをSteamのツールでアップロードする。
Windowsでコード署名は必要?
厳密には不要。未署名の .exe はSmartScreenが警告を出すが、プレイヤーが「詳細情報」→「実行」で起動できる。コード署名証明書は年$200〜400かかるので、ほとんどのインディー開発者はスキップしている。ダウンロード数が増えると警告が出なくなる傾向がある。
リリース後にゲームを更新するには?
同じチャンネル名で新しいビルドをアップロードすればいい。butlerを使っている場合はpushコマンドを再実行するだけ。butlerは差分パッチを自動処理するので、更新済みのプレイヤーは変更分だけダウンロードする。手動アップロードの場合はプロジェクトページでファイルを差し替える。
iOS向けにビルドできる?
Ren'Pyは公式にはiOSビルドをサポートしていない。サードパーティツールやXcodeを使った非公式の方法はあるが、サポート対象外のワークフロー。モバイル配布はAndroidに集中するのが現実的。
build.classify()の "all"、"windows"、"linux"、"mac" の違いは?
ファイルをどのプラットフォームパッケージに含めるかを制御する。"all" は全パッケージに含める。"windows" はWindows用ビルドのみ。スペース区切りで複数指定もできる: build.classify("README.txt", "windows linux mac")。全リストは公式ビルドドキュメントを参照。
itch.ioのファイルサイズ制限は?
ダウンロード配布の場合、1ファイルあたり最大1GB(申請すれば増枠可能)。ブラウザ版は合計500MB、最大1000ファイルの制限がある。.rpa アーカイブで画像・音声をまとめてファイル数を減らすのが効果的。
macOSで「アプリが壊れている」と表示される
Gatekeeperの検疫フラグが原因。ターミナルで xattr -r -d com.apple.quarantine /path/to/YourGame.app を実行する。配布時はREADMEにこの手順を書いておこう。恒久対策としてはApple Developer Program($99/年)に加入し、Ren'Pyのmac-notarizationツールでNotarizationを行う。
まとめ
この記事で解説したこと:
- ビルド前の準備:
options.rpyの設定、Lintチェック、アイコンの差し替え - ビルドの実行: Launcherから数クリックでzipファイルを生成
- プラットフォーム別の注意点: macOSのGatekeeper問題、Androidの署名キー管理、Web版のファイルサイズ
- itch.ioへの公開: 手動アップロードとLauncherからの自動アップロード
- build.classify(): 開発用ファイルの除外、アーカイブ化、
#プレフィックスの活用
Ren'Pyの基本は 入門ガイド を、選択肢と分岐は 選択肢ガイド を、BGMやSEの追加は 音声・BGM管理ガイド を参照してほしい。
公式リソース:
- Building Distributions — ビルドの公式リファレンス
- Android — Androidビルドの詳細
- Web — Web版ビルドの詳細
- itch.io — インディーゲーム配布プラットフォーム
- r/RenPy — コミュニティ
関連記事: