開発ツール link
Ren'Py には開発者用の多くの機能があり、それらの多くは 実行するのに config.developer
が True である必要があります。
Lint link
(ランチャーから利用可能な) Lint ツール は、ゲームに潜在するエラーや最適化ミスをチェックし、開発チームに最適な改善策をアドバイスします。これらのエラーの中には、他のプラットフォームのユーザーにしか影響しないものもあるため、その場で問題を引き起こさない場合でも、すべてのエラーの理解と修正を推奨します。
Lint にはゲームに対して便利な情報や統計データも含まれています。
Lint の使用は徹底的なテストの代用にならないことに注意してください。
Shift+O コンソール link
デバッグコンソールは対話的に Ren'Py スクリプトと Python ステートメントを実行し,即座にその結果が確認できます。コンソールは開発者モードか config.console
が True の時に利用可能で「 shift+O 」でアクセス出来ます。
コンソールは以下に使用可能です。 :
ラベルへのジャンプ
対話的に Ren'Py スクリプトを試用します。
python 式やステートメントを評価して結果を確認します。
ゲーム進行と共に python 式をトレースします。
コマンド :
clear: コンソール履歴をクリアします。
escape: ユニコード文字列中のユニコードシンボルのエスケープを有効化します。
exit: コンソールを出ます。
help: このヘルプを表示します。
help <expr>: <expr> シグネチャとドキュメントを表示します。
jump <label>: ラベルに飛びます。
load <slot>: スロットからゲームを起動します。
long: コンソールにオブジェクトの完全な表現を表示します。
reload: ゲームをリロードしてスクリプトをリフレッシュします。
save <slot>: スロットにゲームを保存します。
short: コンソールのオブジェクトの表示を短縮します。 (default).
stack: リターンスタックを表示します。
unescape: ユニコード文字列中のユニコードシンボルのエスケープを無効化しそのままで表示します(default)。
unwatch <expression>: 式の監視を停止します。
unwatchall: 全ての式の監視を停止します。
watch <expression>: python 式を監視します。
watch short: 追跡している式の表現を短縮します(default)。
watch long: 追跡している式の表現をそのままにします。
<renpy script statement>: ステートメントを実行します。
<python expression or statement>: python 式やステートメントを実行します。
Shift+E エディターサポート link
Shift+E は、ランチャーで設定され、 エディターとの統合 でカスタマイズ可能なデフォルトのテキストエディタを現在のステートメントが書かれているスクリプトファイルの行番号で開きます。
Shift+R リロード link
config.developer
が True なら、「 shift+R 」を押すと現在のゲームをセーブし、スクリプトをロードし直してからゲームをロードします。これをすると「 shift+R 」が押される前に最後に通過した未変更のステートメントまで戻ることがあります。
最初のリロード後、ゲームはオートリロードモードに成ります。アクセスできるファイルに最後のリロード後から変化があればゲームを再度リロードします。
これにより開発者は外部エディターでスクリプトを変更しても Ren'Py を再起動することなく変更を確認出来るようになります。
ゲームの状態には変数の値とシーンリストが含まれており、リロード後も保存されることに注意してください。このことはステートメントの 1 つが変更されたら効果の確認にはロールバックやステートメントの再実行が必要になることを意味します。
Shift+R によるリロードはリプレイでは動作しません。
以下の関数では純粋な pythonで同じ動作を実装しています。これらは開発者モードでのみ使用されることに注意してください。
- renpy.get_autoreload() link
オートリロードのフラグを所得します。
- renpy.reload_script() link
Ren'Py にゲームをセーブさせ、スクリプトをリロード、そのセーブをロードさせます。
これは開発中のみ呼び出すべきです。 Windows、macOS、およびLinux では動作しますが他のプラットフォームでは動作しない場合があります。
- renpy.set_autoreload(autoreload) link
オートリロードのフラグを設定し、ファイル変更後にゲームが自動的にリロードするかどうかを決定します。オートリロードはゲームが
renpy.reload_script()
でリロードされて始めて完全に有効化されます。
Shift+I スタイルインスペクター link
config.developer
が True のときに「 shift+I 」を押すとスタイルインスペクターを実行します。これはマウス下の displayable のリストを画面に描画された順に表示します(つまり最後の Displayable はそれ以外の上にあります)。各 displayable には型と使用されているスタイル、描画されているサイズが表示されます。
スタイル名をクリックするとその Displayable が継承しているスタイルと各スタイルが最後の Displayable に与えているプロパティーを表示します。
> 高速スキップ link
config.developer
か config.fast_skipping
が Ture の時に fast_skip キー ( デフォルトでは、「 > 」 ) を押すとゲームは即座に次の重要なインタラクションまでスキップします。ここで重要なインタラクションとは say ステートメントやトランジション、ポーズによる以外のインタラクションのことです。通常これは次の選択肢へのスキップを意味しますが、ユーザー定義のインタラクションが起きてもストップします。
行ワープ link
Ren'Py は開発者がゲームをプレイしてその場所まで行かなくともスクリプトの特定の行にワープできます。このワープ技術はいくつかの注意が必要ですが、それでもプレビューには便利でしょう。
ワープの実行には Ren'Py をファイル名:行が続く --warp
引数つきで実行して、ワープ先を指定する必要があります。例
renpy.exe my_project --warp script.rpy:458
(ここで、 my_project はプロジェクトのベース・ディレクトリーへのフルパスです)
ワープが実行されると Ren'Py はいくつかの処理をします。最初にプログラム中のすべての scene ステートメントを見つけ、それらの scene ステートメントからそのゲームで到達可能なすべてのステートメントへのパスを見つけます。そして指定された行よりも前のものから最も近い到達可能なステートメントを見つけ、そのステートメントから scene ステートメントまでを逆に探索し、辿ったパスを記録します。その後、scene ステートメント及びパス上のすべての show、hide ステートメントを実行します。最後に、たどり着いたステートメントに制御を移動します。
ワープ機能に対するいくつかの主要な留意点があります。第一にこれは 1 つのパスのみを調査するためそのパスが幾つかのルートの代表となりますが、その他のルートではバグがあるかもしれません。一般的にパスはゲームのロジックを考慮しませんので実際には到達不可能なパスもありえます ( これは実際には python コードを多用するような重いゲームでのみ問題になります )。
最大の問題はワープ先のステートメント以前の python コードが実行されないということです。つまりすべての変数は初期化されず、それらが使用されるとクラッシュする可能性があります。これを克服するためにラベル after_warp
が定義でき、これはワープ後、ワープ先のステートメントの実行前に 呼び出されます。このラベルのコードでプログラムの変数を設定し、プレビューに戻れます。
ワープ機能の実行には config.developer
が True である必要があります。
デバッグ関数 link
- renpy.get_filename_line() link
ファイル名と現在のステートメントの行数のタプルを返します。
- renpy.log(msg) link
config.log
が設定されていなければこれは何もしません。そうでなければログファイルを ( 既に開いていなければ ) 開き、メッセージをlog_width
文字の体裁でログファイルに書き出します。
- renpy.unwatch(expr) link
指定された python 式の表示を停止します。
- renpy.warp_to_line(warp_spec) link
"ファイル名:行番号" の形式で引数を受け取り、その行の前のステートメントにワープを試みます。
--warp コマンドと同様に動作します。
- renpy.watch(expr) link
これは指定された python 式をスクリーンの右上端に表示します。