開発者向けの注意事項
本ページは、RenMori で自身の作品を保護する開発者とパブリッシャーを対象に、ライセンスで許可される行為と禁止される行為、ゲームと共に配布する際に履行すべきサードパーティのライセンス義務、およびリリース前に完了すべき確認事項を説明します。条項は RenMori License 1.0 に従います。正本は英語の LICENSE であり、本ページはその日本語による要約です。免責条項は免責事項を参照してください。
ライセンスで許可される行為
使用許諾は、ゲーム自体の内容やライセンスの状態にかかわらず適用されます。RenMori のランタイムがあなたの手を離れるのは、あなた自身の保護済みゲームに組み込まれた形に限られます。
ライセンスで禁止される行為
有償か無償かを問わず、以下を行ってはなりません。
- RenMori そのもの、またはその実質的な部分を、改変の有無を問わず、製品やサービスの形で販売、転売、貸与、リース、サブライセンスまたは配布すること
- RenMori を使用して他者の Ren'Py ゲームを保護または暗号化し、料金を受け取ること、または商業的なサービスとして提供すること(例:「Ren'Py 暗号化代行」サービス)
- RenMori の改変版を第三者に配布すること、またはいかなる改変版も RenMori として提示すること
- ゲームが RenMori で保護されていることの正確な表示以外の目的で「RenMori」の名称やロゴを使用すること(例:他の製品の名称や宣伝への使用)
許諾範囲を超える使用はライセンスが付与する権利を終了させますが、すでに適法に配布したゲームについての第 1 条および第 2 条に基づく権利は影響を受けません。
提携先の作品に対して保護を実行する場合や、ツール、エンジン、サービスに RenMori を組み込む場合など、ある使用方法が許諾範囲内かどうか判断できないときは、事前に team@mewbaka.cn までご連絡のうえ確認してください。
ゲーム内での RenMori の表記
ライセンスは、ゲーム内に RenMori を表記することを要求していません。表記する場合は、スタッフクレジットや技術情報に正確な表現を使用できます。例:
ゲームが RenMori の作者によって開発、発売または承認されたと誤解されるおそれのある表現は使用せず、RenMori のロゴも改変しないでください。
サードパーティのライセンス義務
保護済みの配布用ビルドには、引き続き Ren'Py エンジンとそれに同梱されたサードパーティコンポーネントが含まれます。RenMori はこれらのコンポーネントのライセンス条項を変更せず、対応する義務は引き続きゲームを配布する側が負います。
renmori protect のベースライン処理は game/ ディレクトリのみを対象とし、renpy/、lib/ およびビルドルートにあるエンジンファイルとそのライセンスファイルは変更しません。NOTICE の要求に従い、RenMori の保護方式は、LGPL に基づく再リンクを妨げる形で FFmpeg を静的に結合してはなりません。リリース前に、上記のライセンスファイルが配布用ビルドに残っていることを確認してください。
鍵とバックアップ
- バックアップディレクトリ:インプレース保護で生成される
<dir>_bakには平文のリソースとスクリプトがすべて含まれるため、配布用ビルドと共にアップロードまたは配布してはならない - ベースラインの鍵:
[keys]で指定する環境変数を CI の Secret に保存し、設定ファイル、スクリプトやバージョン管理には書き込まない。ベースライン形式では鍵がゲームと共に配布されるローダー拡張に書き込まれるため、鍵を固定してもビルドの一貫性を保つだけであり、ベースラインの安全性は向上しない - フル保護:鍵はビルド時にクローズドプラグインが導出するため、開発者が個別に管理する必要はなく、管理することもできない
- ビルドマニフェスト:
renmori-manifest.jsonに鍵は含まれないが、ベースラインのマニフェストにはすべてのアセットのパスとサイズが列挙される。配布用ビルドに残すかどうかはあなたの判断に委ねられ、削除する場合は事前にrenmori verifyを完了しておく - ソースプロジェクト:RenMori が保護するのは配布用ビルドのみであり、ソースプロジェクトと
.rpyのシナリオは、バージョン管理のアクセス権限などによって自ら保護する必要がある
リリース前チェックリスト
- 保護の対象が Ren'Py ランチャーで生成した新しい配布用ビルドである
- 正式なリリースには
--strength baselineではなくフル保護を使用している - ロックダウンが有効で、
--no-lockdownを使用していない -
--keep-plaintextを使用していない -
excludeとkeep_on_diskにスクリプトファイルも不要なリソースも含まれていない -
renmori verifyに合格した - すべての対象プラットフォームで実際に起動して通しでプレイし、セーブ、ロード、CG 鑑賞、音楽鑑賞、動画再生と多言語の切り替えを確認した
-
renmori.rmcとrenmori.rpeの両方が配布用ビルドに含まれている - 配布用ビルドに
_bakバックアップディレクトリ、鍵ファイルやソースプロジェクトが含まれていない - 保護済みディレクトリを、保護の後に Ren'Py ランチャーで再ビルドしていない
- Ren'Py や FFmpeg などのコンポーネントのライセンスファイルが配布用ビルドに残っている
- Steam でリリースする際に Steam DRM の実行ファイルラッパーを重ねていない(Steam へのリリースを参照)
互換性とテスト
RenMori は Ren'Py 8.x(Python 3)を対象としており、Ren'Py 7.x 以前の Python 2 系のバージョンには対応していません。ランタイムは Windows、Linux、macOS 上の実際の Ren'Py エンジンで検証済みであり、Steam Deck(Proton)での動作検証は現在進行中です。チームは現在 Steam の開発者権限を持っていないため、Steam SDK や Steam オーバーレイなどの関連機能は実機でテストされていません。
Ren'Py の読み込み処理をカスタマイズしているプロジェクト、ディスク上のファイルを直接読み込むサードパーティのプラグインを使用しているプロジェクト、または Python コードで renpy.loader ではなくファイルシステム API を通じて game/ 内のリソースを読み込んでいるプロジェクトでは、該当するファイルに keep_on_disk を設定し、保護後に関連機能を重点的にテストする必要がある場合があります。
プライバシー
RenMori のランタイムはエンジン内部でデータを復号するだけで、プレイヤーの情報を収集せず、ネットワークリクエストも発行しません。ローダーフレームワークをオープンソースにしている目的の一つは、開発者とプレイヤーがこれを検証できるようにすることです。renmori CLI がネットワークにアクセスするのはクローズドプラグインの初回取得時のみであり、RENMORI_NO_DOWNLOAD によって完全に禁止できます。
サポート
- 許諾範囲と技術的なサポート:team@mewbaka.cn
- 問題の報告:GitHub Issues。提出要件は提出要件を参照
- セキュリティ脆弱性:公開の場で報告せず、セキュリティ脆弱性の報告を参照