RXDATA ファイル形式とは?
拡張子 .rxdata を持つファイルは、エンターブレイン(現 KADOKAWA)が開発した Windows アプリケーションである RPG Maker XP で作成されたゲームデータを保存します。このソフトはプログラミング言語の知識がなくてもロールプレイングゲームを作成できるツールです。RPG Maker XP は日本で制作され、2004年に最初にリリースされ、2005年に英語版が続きました。
内部的には、.rxdata ファイルは Ruby の Marshal フォーマット(バージョン 4.8)でシリアル化されたバイナリオブジェクトです。これは RPG Maker XP の RGSS スクリプトエンジンに組み込まれた Ruby 1.8 ランタイムで使用されるシリアル化形式です。完全なプロジェクトには、通常 Actors.rxdata、Items.rxdata、Scripts.rxdata、およびマップごとの MapXXX.rxdata など、約15個の標準的な .rxdata ファイルが含まれます。
RPG Maker XP で開発されたゲームは、以下のような機能をサポートしています:
- 最大 640×480 ピクセルの解像度のゲームグラフィックス
- RGBA グラフィックファイル
- Ruby を搭載した RGSS スクリプトシステム
- ファイルを保護されたゲームアーカイブにエンコードする可能性
ゲームデータは .rxdata ファイルに保存され、RPG Maker の後続のバージョンとは互換性がありません。 以降のバージョンでは、データは .rvdata (RPG Maker VX) または .rvdata2 (RPG Maker VX Ace) に保存されます。
RPG Maker XP で開発されたゲームは、ゲーム内の状態も .rxdata ファイルに保存します。保存されたゲームデータを変更できる専用のエディタが存在しますが、これらは開発元による公式ツールではありません。現在のバージョンの RPG Maker は、RPG Maker XP で作成されたファイルとの下位互換性を提供していません。
セキュリティと安全性
リスク: LOWRXDATA ファイルは純粋なデータシリアル化であり、実行コードを直接含んでいません。Scripts.rxdata には Ruby スクリプトテキスト(圧縮済み)が含まれていますが、このコードはゲーム起動時に RGSS ランタイム内でのみ実行されます。RXDATA ファイルを開いたり変換したりするだけでは、リスクはありません。
形式の詳細
概要RXDATA ファイルを開くプログラム
rxdata-converter input.rxdata output.json 技術的詳細
詳細仕様| シリアル化形式 | Ruby Marshal バージョン 4.8(RGSS ランタイムで使用される Ruby 1.8.x に依存) |
| マジックバイト | オフセット 0 の 0x04 0x08(Ruby Marshal バージョンヘッダー) |
| エンコーディング | バイナリ |
| バイトオーダー | ビッグエンディアン |
| コンテナ | Ruby Marshal シリアル化オブジェクトツリー - 配列、ハッシュ、シンボル、文字列、整数、カスタムクラスのインスタンス |
| 圧縮 | ファイルレベルではなし。Scripts.rxdata は各スクリプト本体を個別に zlib DEFLATE 圧縮された文字列として保存 |
| スクリプトランタイム | Ruby 1.8.6 を使用する RGSS (Ruby Game Scripting System) |
| 標準プロジェクトファイル | プロジェクトごとに約15個の固定名データファイル(Actors, Items, Skills, Weapons, Maps, Scripts, System など) |
| 一般的なサイズ | 1ファイルあたり 1 KB - 5 MB。Scripts.rxdata は数十 MB に達する場合がある |
| 関連 OS | Windows |
| 互換性 | RPG Maker VX (RVDATA), VX Ace (RVDATA2), MV, MZ とは互換性なし |
| 後継フォーマット | .rvdata (RPG Maker VX, 2007), その後 .rvdata2 (RPG Maker VX Ace, 2011) |
| リリース日 | 2004 (RPG Maker XP, first Japanese release; Western release 2005) |
| 最新バージョン | Ruby Marshal version 4.8 (Ruby 1.8.x era); format has not changed |
| 仕様書 | ruby-doc.org |
RXDATA の変換
コミュニティ Q&A
ユーザーからの質問よくある質問
RXDATA ファイルを開くにはどうすればよいですか?
Marshal.load(File.binread(«file.rxdata»)) を実行してロードします。RPG Maker XP なしで RXDATA ファイルを編集できますか?
Script.rxdata のスクリプトを編集するには、まず各スクリプト本体を Zlib::Inflate で解凍する必要があります。どのバージョンの RPG Maker が RXDATA を使用しますか?
Scripts.rxdata からスクリプトを抽出するにはどうすればよいですか?
Marshal.load でロードし、配列を反復処理して、各エントリに対して Zlib::Inflate.inflate(script[2]) を呼び出します。rxdata-converter ツールはこれを自動的に行います。RXDATA ファイルが破損しました。復元する方法はありますか?
*.rxdata_ としてバックアップを作成します)から復元してください。ファイルヘッダー(04 08)が無事であれば、Ruby Marshal パーサーで部分的なデータを回収できる可能性があります。