RPY ファイル形式とは?
.rpyは、ビジュアルノベルエンジンRen'Pyで使用されるスクリプトファイルです。この形式の拡張子は.pyに由来していますが、.rpyファイルは単純なPythonソースではありません。これはRen'Py独自のドメイン特化言語で記述されており、Pythonの馴染みのある構文規則の上に、キャラクターの台詞、シーンの指示、分岐メニュー、条件付きのストーリーフローといった高レベルのストーリーテリングステートメントを重ねています。.rpyファイルには、Ren'Py固有のステートメントと並んで、Pythonで書かれたコードを直接含めることができます。
.rpyはUTF-8でエンコードされたプレーンテキストファイルであり、任意のテキストエディタで開いて編集できます。.rpyスクリプトを編集する際、Ren'PyはPythonと同様にインデントを使用してコードブロックを定義するため、作成者はインデントに注意を払う必要があります。高度なロジックのために、スクリプトはpython:ブロック内、または$の1行プレフィックスを介して生のPythonを埋め込むことができ、作成者はRen'Pyプロジェクト内でPythonのフル標準ライブラリにアクセスできます。
Ren'Pyがゲームを起動すると、読み込みを高速化するために、各.rpyソースファイルをバイナリの.rpycキャッシュファイルにコンパイルします。配布されるゲームは通常、コンパイルされた.rpycファイルのみを同梱し、多くの場合.rpaアーカイブ内にパックされているため、プレイヤーが通常.rpyソースを目にすることはありません。unrpycなどのコミュニティツールを使用すると、.rpycファイルを読み取り可能な.rpyスクリプトにデコンパイルできます。
一般的なプロジェクトでは、ストーリーとロジックを多くの.rpyファイルに分割します。あるファイルでキャラクターと変数を定義し、別のファイルでメニュー画面を管理し、さらに別のファイルでメインの物語を保持するといった具合です。Ren'Py SDKは、プロジェクトディレクトリ内のすべての.rpyファイルを単一のプログラムとして扱い、起動時にそれらをまとめてコンパイルおよびリンクします。
セキュリティと安全性
リスク: MEDIUM.rpyはプレーンテキストであり、エディタで開く分には安全ですが、Ren'Pyエンジンにとっては実行可能なロジックであり、python: ブロック内に完全なPythonを含めることができます。そのため、信頼できないRen'PyゲームやMODを実行すると、マシン上で任意のコードが実行される可能性があります。不明なMODのスクリプトはゲームに追加する前に内容を確認し、ゲームやMODは信頼できるソースから入手してください。台詞テキスト自体の編集は無害ですが、不明なpython: ブロックを貼り付けることは危険です。
形式の詳細
概要- Twistedリソース(Pythonウェブスクリプト) - リソースオブジェクトを返すPythonスクリプトとしてTwisted/twistdウェブサーバーで使用されていたレガシーな.rpy。Ren'Pyとは無関係です。
- RPGMaker / その他汎用Pythonスクリプト - 一部のツールでは歴史的に保存されたPythonソースを.rpyとラベル付けしていましたが、今日ではRen'Pyの意味が主流です。
RPY ファイルを開くプログラム
技術的詳細
詳細仕様| ファイルカテゴリ | プレーンテキストソーススクリプト - ビジュアルノベル用のRen'Pyドメイン特化言語 |
| エンコーディング | UTF-8プレーンテキスト。バイナリマジックバイトやバイトオーダーマークは不要 |
| MIMEタイプ | text/plain(汎用ツールではtext/x-pythonとしても認識される) |
| コンパイル形式 | 各.rpyは起動時にRen'Pyエンジンによってバイナリの.rpycファイルにコンパイルされる |
| インデント規則 | Pythonスタイルの意味を持つ空白インデントがすべてのコードブロックを定義する |
| 主要なステートメント型 | label, jump, call, menu, scene, show, hide, play, define, init |
| 埋め込みPython | python: ブロックおよび $ 1行ステートメントプレフィックスを介して完全なPythonコードにアクセス可能 |
| Pythonバージョン | Ren'Py 6および7はPython 2構文を使用。Ren'Py 8以降はPython 3構文が必要 |
| 一般的なファイルサイズ | 1 KBから約500 KB。フルゲームプロジェクトは複数の.rpyファイルにまたがる |
| 配布方法 | ゲームは.rpaアーカイブにパックされたコンパイル済みの.rpycファイルを同梱し、.rpyソースは含まない |
| プラットフォームサポート | Windows、macOS、Linuxで作成。ゲームはAndroidおよびiOSでもビルド・実行可能 |
| プロジェクトのコンパイル | ゲームディレクトリ内のすべての.rpyファイルは、起動時に単一のプログラムとしてコンパイルおよびリンクされる |
| 構文エラー報告 | Ren'Py SDKは起動時に、ファイル名と行番号とともに構文およびロジックエラーを表示する |
| デコンパイル | コミュニティツールのunrpycにより、コンパイル済みの.rpycバイトコードから.rpyソースを再構築可能 |
| 文字サポート | UTF-8による完全なUnicode対応。多言語の台詞テキストや識別子名に使用可能 |
| リリース日 | Ren'Py engine, first release 2004 |
| 最新バージョン | Ren'Py 8.x (Python 3 based); script syntax tracks the engine release |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.renpy.org |
RPY の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。RPY ファイルについて最初の質問をしてみましょう。