設定ファイル renmori.toml
renmori protect は設定なしで実行できます。チーム内で保護パラメータを固定したい場合や、CI で同じ設定を再利用したい場合は、TOML 形式の設定ファイル renmori.toml を使用できます。設定ファイルのキーはすべて任意であり、設定されていないキーにはデフォルト値が使用されます。
検索順序
-c, --config FILEで指定したファイル(ファイルが存在しない場合、コマンドは終了コード 2 で失敗)- ビルドルートの
renmori.toml、すなわち<game-dir>/renmori.toml - カレントディレクトリの
renmori.toml
最初に見つかったファイルが使用され、使用したパスが stderr に表示されます。3 か所のいずれにも存在しない場合は、すべてデフォルト値が使用されます。
ビルドルートに置いた renmori.toml は game/ の外にあるためアーカイブされませんが、ビルドディレクトリ内に残ります。設定ファイルを配布用ビルドに含めたくない場合は、カレントディレクトリに置くか、-c で別の場所を指定してください。
設定ファイルの読み込みには Python 3.11 以降が必要です。Python 3.9 または 3.10 では tomli を追加でインストールする必要があり、インストールされていない場合、コマンドは終了コード 2 で失敗します。
マージルール
[protect] セクション
strength
詳細な違いは保護強度とクローズドプラグインを参照してください。
lockdown
有効にすると、実行時に config.developer と config.console が False に設定され、Ren'Py のコマンドラインサブコマンド compile、dialogue、translate、add_from、merge_strings の実行が拒否されます。これらのサブコマンドはスクリプトやテキストデータをディスクにエクスポートできるため、リリース版では無効にしておく必要があります。false に設定するのは、社内テスト用ビルドで開発者コンソールを使用する必要がある場合のみにしてください。
chunk_size
各チャンクは個別に暗号化され、16 バイトの認証タグが付加されます。デフォルト値の 65536 バイトでは、サイズのオーバーヘッドは約 0.024% です。大きなチャンクは大容量の CG や動画のシーケンシャルな読み込みに有利であり、小さなチャンクは多数の小さなファイルによる追加オーバーヘッドを抑えます。フル保護のチャンクパラメータはプラグインがビルドごとに決定します。
exclude と keep_on_disk
どちらも一致したファイルを暗号化せずディスク上に保持しますが、用途が異なります。keep_on_disk はエンジン以外のプログラムが読み込むファイルを宣言するためのもので、exclude はそれ以外で平文のまま保持する必要がある場合に使用します。パターンはゲーム相対パスに対して照合され、Python の fnmatch のセマンティクスを使用します。* はディレクトリ区切りもまたぎ、Windows では大文字と小文字を区別しません。
スクリプトファイルを除外しないでください。ランタイムのローダーは、game/ 内でディスク上にある .rpy、.rpyc、.rpym、.rpymc などのスクリプト系ファイルを開くことを拒否するため、除外したスクリプトは読み込めなくなります。
platforms
プラグインでのみ有効です。設定しない場合は、プラグインがビルド内の lib/py3-* ディレクトリから検出します。使用できる値はプラグインによって決まります。例:
launcher
プラグインでのみ有効です。有効にすると、鍵がネイティブランチャーに紐付けられてビルドと共に配布され、そのランチャーからゲームを起動した場合にのみ鍵が再構築されます。
[keys] セクション
[keys] はベースライン保護でのみ有効で、コンテナ鍵とスクリプト鍵の取得元を指定します。フル保護ではプラグインが鍵を自ら導出し、このセクションは無視されます。
ルール:
- 環境変数の値は 64 文字の 16 進数、すなわち 32 バイトの鍵である必要があり、形式が誤っている場合、コマンドは終了コード 2 で失敗する
master_envまたはscript_envが設定されていない場合は、今回のビルド用にランダムな鍵を生成- キー名が設定されていても環境変数が存在しないか空の場合は、stderr にその旨を表示し、同じくランダムな鍵を生成
- 概要パネルには鍵の取得元が表示される(例:
master=env:RENMORI_MASTER_KEY · script=random)。CLI の出力言語は中国語または英語のみであり、ここでは英語出力の表記を示す
鍵を生成する方法の一例:
CI での鍵の保管方法はCI との連携を参照してください。
ベースライン形式では、鍵がゲームと共に配布されるローダー拡張に平文で書き込まれます。鍵を固定しても保証されるのは複数のビルド間の一貫性のみであり、ベースラインの安全性は向上しません。ベースラインの位置付けは保護強度とクローズドプラグインを参照してください。
完全な例
リポジトリのサンプルファイル:examples/renmori.toml。