RPA ファイル形式とは?
.rpa ファイルは Ren'Py Archive です。これは Ren'Py ビジュアルノベルエンジンで使用されるバイナリコンテナ形式で、ゲームのコンパイル済みスクリプトやアセットを単一の配布可能なパッケージにまとめます。ビルドされた Ren'Py ゲームは、通常 game/ フォルダ内に1つ以上の .rpa ファイル(一般的に archive.rpa、images.rpa、または scripts.rpa という名前)が含まれた状態で出荷されます。
この形式は、バージョン(RPA-2.0 または現在の RPA-3.0)を宣言する ASCII ヘッダー行で始まり、その後にファイルインデックスへの 16 進オフセット、および RPA-3.0 の場合は 16 進の XOR 難読化キーが続きます。インデックスは zlib 圧縮された Python の pickle 化辞書として保存され、内部パスをアーカイブ内のオフセットと長さのペアにマッピングします。RPA-3.0 はヘッダーのキーを使用してこれらのオフセットを軽く難読化しますが、これは真の暗号化ではなく、容易に復元可能です。
含まれるファイル(コンパイル済みの .rpyc スクリプト、画像、音声、ビデオ)は、各アセットタイプが通常すでに圧縮されているため、再圧縮されずに生の状態で保存されます。このアーカイブは、リリースビルドには含まれない人間が読める形式の .rpy ソーススクリプトを置き換えるものです。
.rpa ファイルは標準的な ZIP や RAR アーカイブではないため、7-Zip や WinRAR などの汎用ツールでは開くことができません。抽出には、rpatool や UnRen などの Ren'Py 対応ユーティリティが必要です。
セキュリティと安全性
リスク: MEDIUMアーカイブコンテナ自体は不活性なデータですが、.rpa にパックされた Ren'Py ゲームには、Ren'Py エンジンの実行ロジックであるコンパイル済みスクリプト(.rpyc)が含まれており、これには完全な Python が含まれる可能性があります。そのため、信頼できない Ren'Py ゲームを実行したり、中身を確認していない .rpa のモッドをインストールしたりすると、マシン上で任意のコードが実行される可能性があります。ゲームやモッドは信頼できるソースから入手してください。モッド作成のために .rpa を抽出した場合は、実行前にデコンパイルされたスクリプトを確認してください。RPA-3.0 の「難読化」は暗号化ではなく、セキュリティを提供するものではありません。機密情報の保護に依存しないでください。アーカイブの抽出は安全ですが、そのコードの実行には注意が必要です。
形式の詳細
概要- RIB iTWO プロジェクトアーカイブ - 建設/BIM ソフトウェア RIB iTWO はプロジェクトアーカイブを .rpa として保存します。これは RIB iTWO でのみ開くことができます。支配的な Ren'Py の意味と比較すると、.rpa ファイルのごく少数(約9%)です。
- RoboHelp / 汎用「プロジェクトアーカイブ」 - いくつかのレガシーツールが、無関係なパッケージ化されたプロジェクトデータに .rpa を使用していましたが、今日では稀です。
RPA ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルシグネチャ(マジックバイト) | オフセット 0 に `RPA-3.0 `(16進数 `52 50 41 2D 33 2E 30 20`)で始まる ASCII ヘッダー。レガシー版は `RPA-2.0 ` |
| ヘッダー構造 | バージョンタグ、インデックスへの 16 進オフセット、および(RPA-3.0 のみ)16 進 XOR 難読化キーを含む単一の ASCII テキスト行。改行文字で終了 |
| インデックスのエンコーディング | 内部ファイルパスを(オフセット、長さ、プレフィックス)のタプルにマッピングする、zlib 圧縮された Python の `pickle` 辞書 |
| インデックスの難読化 | RPA-3.0 は、ヘッダー行で宣言されたキーを使用して、各エントリの保存されたオフセットと長さを XOR 難読化します。容易に復元可能であり、真の暗号化ではありません |
| 格納ファイルの保存方法 | ファイルはヘッダーの後に生の状態で連結され、追加の圧縮は適用されません。アセット(PNG、OGG、WEBM、RPYC)はソースですでに圧縮されています |
| サポートされているアセットタイプ | コンパイル済みスクリプト(`.rpyc`、`.rpymc`)、画像(PNG、JPEG、WEBP)、音声(OGG、MP3)、ビデオ(WEBM)、および任意のゲームデータファイル |
| インデックスエントリの制限 | 固定の制限はありません。インデックスは pickle 化された Python の `dict` であり、サイズは利用可能なメモリによってのみ制限されます |
| 整合性チェック | ファイルごとのチェックサムは保存されません。形式は、含まれるアセットファイル固有の整合性に依存します |
| バージョンの宣言 | 形式のバージョンはプレーンテキストのヘッダー行(`RPA-2.0` または `RPA-3.0`)で自己宣言されます。ツールはパース時に個別のマニフェストなしでバリアントを検出します |
| 一般的なアーカイブサイズ | ゲームに同梱される画像、音声、ビデオの量に応じて、数 MB から数 GB まで |
| ターゲットプラットフォーム | Windows、macOS、Linux、Android、iOS - Ren'Py エンジンが公式にサポートするすべてのプラットフォーム |
| 一般的なファイル名 | `archive.rpa`、`images.rpa`、`scripts.rpa` - ビルドされた Ren'Py タイトルの `game/` ディレクトリ内に存在 |
| コンテナの互換性 | ZIP、TAR、RAR の派生ではありません。汎用アーカイバ(7-Zip、WinRAR)は `.rpa` ファイルを開くことができません |
| 開発者 / メンテナ | Tom Rothamel および Ren'Py オープンソースプロジェクト。エンジンとともに進化(2004年に初リリース) |
| リリース日 | Ren'Py engine archive format; RPA-3.0 is the long-standing version used by modern Ren'Py |
| 最新バージョン | RPA-3.0 (current); legacy RPA-2.0 exists; format header line declares the version |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.renpy.org |
RPA の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。RPA ファイルについて最初の質問をしてみましょう。