32blogby Studio Mitsu

Ren'Pyゲームの配布ガイド:ビルドからitch.io公開まで

Ren'Py 8.5でゲームをビルドし、itch.ioに公開する手順を解説。プラットフォーム別の注意点、macOS署名問題、build.classify()によるファイル制御まで。

by omitsu12 min read
目次

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 にビルドの基本情報を記述する。プロジェクト作成時にテンプレートが生成されているので、値を書き換えるだけでいい。

renpy
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アイコンを自分のゲームのアイコンに差し替える。

text
mygame/               ← ベースディレクトリ(ここに置く)
├── icon.ico          ← Windows用(256x256推奨)
├── icon.icns         ← macOS用
└── game/
    └── ...

プロジェクトのベースディレクトリ(game/ フォルダの親)に配置する。

ビルドの実行

Launcherからビルドする

  1. Ren'Py Launcherでプロジェクトを選択
  2. 「Build Distributions」 をクリック
  3. ビルドするパッケージを選択(デフォルトで全プラットフォームが選択済み)
  4. ビルドが完了すると、出力先フォルダが開く

出力されるファイル

デフォルト設定では、以下のファイルが生成される:

ファイル対象
MyVisualNovel-1.0-pc.zipWindows + Linux
MyVisualNovel-1.0-mac.zipmacOS

pc パッケージにはWindowsとLinuxの両方の実行ファイルが含まれている。プレイヤーは自分のOSに対応した実行ファイルを起動するだけでいい。

プラットフォーム別の注意点

Windows

特別な設定は不要。zipを展開して .exe をダブルクリックで起動する。最も手軽なプラットフォーム。

macOS — Gatekeeper問題

macOSでは未署名のアプリケーションの実行が制限されている。macOS Sequoia(15.0)以降、この制限はさらに厳しくなった。

未署名のゲームを起動するには、プレイヤーがターミナルで以下を実行する必要がある:

bash
xattr -r -d com.apple.quarantine /path/to/MyVisualNovel.app

Linux

pc パッケージに含まれる .sh ファイルを実行する。ファイルに実行権限がない場合は chmod +x が必要。

Android

Android向けのビルドにはRAPT(Ren'Py Android Packaging Tool)を使う。

  1. Launcherで 「Android」「Install SDK」 を実行
  2. JDK 21(Adoptium Temurin推奨)が必要
  3. 「Generate Keys」 で署名キーを生成(バックアップ必須)
  4. 「Configure」 でパッケージ名・アイコン等を設定
  5. 「Build」 でAPKまたはAABを生成

Google Play向けにはAAB(Android App Bundle)を、直接配布にはAPKを使う。設定やトラブルシューティングの詳細は公式Androidビルドドキュメントを参照。

Web(ベータ)

ブラウザで遊べるWeb版も作れる。

  1. Launcherで 「Web (Beta)」「Build Web Application」 を実行
  2. 出力フォルダ内の index.html をブラウザで開いて動作確認

Web版はitch.ioでの「ブラウザで遊ぶ」公開に最適だが、ファイルサイズが大きいとロードに時間がかかる。itch.ioのブラウザゲームには1000ファイル・合計500MBの制限がある。画像や音声の最適化と、後述する build.classify() での .rpa アーカイブ化を活用しよう。プラットフォーム制限の詳細は公式Webビルドドキュメントを参照。

itch.ioに公開する

手動アップロード

  1. itch.io でアカウントを作成
  2. Dashboard「Create new project」
  3. プロジェクト情報を入力(タイトル、説明、タグ等)
  4. 「Kind of project」 を「Downloadable」に設定
  5. ビルドしたzipファイルをアップロード
  6. 各ファイルにプラットフォームタグ(Windows / macOS / Linux)を設定
  7. 「Save & view page」 で公開

Web版の場合は 「Kind of project」 を「HTML」にし、zipアップロード後に 「This file will be played in the browser」 にチェックを入れる。

Launcherからの自動アップロード

options.rpy に以下を追加すると、Launcherから直接itch.ioにアップロードできる。

renpy
define build.itch_project = "username/project-name"

ビルド完了後に 「Upload to itch.io」 ボタンが表示される。初回はitchのCLIツール(butler)のインストールとログインが求められる。

自動アップロードでは、ファイル名のパターンに基づいてitch.ioのチャンネルが自動設定される:

ファイルパターンチャンネル
*-pc.zipwin-linux
*-mac.ziposx
*-linux.tar.bz2linux
*-release.apkandroid

build.classify()でファイルを制御する

デフォルトのビルド設定で十分なケースが多いが、ファイルの除外やアーカイブ化をカスタマイズしたい場合は build.classify() を使う。

開発用ファイルを除外する

renpy
init python:
    # Photoshopやイラストソフトのソースファイルを除外
    build.classify("**/*.psd", None)
    build.classify("**/*.clip", None)

    # 開発メモを除外
    build.classify("**/TODO.txt", None)

None を指定すると、そのパターンに一致するファイルはビルドから除外される。

ファイルをアーカイブ化する

画像や音声ファイルを .rpa アーカイブにまとめると、配布時のファイル数を減らせる。Web版ではitch.ioの1000ファイル制限の対策になる。

renpy
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 — コミュニティ

関連記事: