Ren'Py には開発者用の多くの機能があり、それらの多くは 実行するのに config.developer
が True である必要があります。
(ランチャーから利用可能な) Lint ツール は、ゲームに潜在するエラーや最適化ミスをチェックし、開発チームに最適な改善策をアドバイスします。これらのエラーの中には、他のプラットフォームのユーザーにしか影響しないものもあるため、その場で問題を引き起こさない場合でも、すべてのエラーの理解と修正を推奨します。
Lint にはゲームに対して便利な情報や統計データも含まれています。
Lint の使用は徹底的なテストの代用にならないことに注意してください。
デバッグコンソールは対話的に Ren'Py スクリプトと Python ステートメントを実行し,即座にその結果が確認できます。コンソールは開発者モードか config.console
が True の時に利用可能で「 shift+O 」でアクセス出来ます。
コンソールは以下に使用可能です。 :
ラベルへのジャンプ
対話的に Ren'Py スクリプトを試用します。
python 式やステートメントを評価して結果を確認します。
ゲーム進行と共に python 式をトレースします。
コマンド :
clear: コンソール履歴をクリアします。
escape: ユニコード文字列中のユニコードシンボルのエスケープを有効化します。
exit: コンソールを出ます。
help: このヘルプを表示します。
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 式やステートメントを実行します。
変数 config.editor
は launch_editor キー ( デフォルトでは「 shift-E 」) が押されたときに実行されるエディターのコマンドを開発者が指定出来るようにします。
詳しくは Text Editor Integration を参照してください。
config.developer
が True なら、「 shift+R 」を押すと現在のゲームをセーブし、スクリプトをロードし直してからゲームをロードします。これをすると「 shift+R 」が押される前に最後に通過した未変更のステートメントまで戻ることがあります。
これにより開発者は外部エディターでスクリプトを変更しても Ren'Py を再起動することなく変更を確認出来るようになります。
ゲームの状態には変数の値とシーンリストが含まれており、リロード後も保存されることに注意してください。このことはステートメントの 1 つが変更されたら効果の確認にはロールバックやステートメントの再実行が必要になることを意味します。
config.developer
が True のときに「 shift+I 」を押すとスタイルインスペクターを実行します。これはマウス下の displayable のリストを表示します。各 displayable には型と使用されているスタイル、描画されているサイズが表示されます。
スタイル名をクリックするとその Displayable でスタイルプロパティーが使用されている場所が拾えます。
config.developer
か config.fast_skipping
が Ture の時に fast_skip キー ( デフォルトでは、「 > 」 ) を押すとゲームは即座に次の重要なインタラクションまでスキップします。ここで重要なインタラクションとは say ステートメントやトランジション、ポーズによる以外のインタラクションのことです。通常これは次の選択肢へのスキップを意味しますが、ユーザー定義のインタラクションが起きてもストップします。
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 である必要があります。
renpy.
get_filename_line
() linkファイル名と現在のステートメントの行数のタプルを返します。
renpy.
log
(msg) linkconfig.log
が設定されていなければこれは何もしません。そうでなければログファイルを ( 既に開いていなければ ) 開き、メッセージを log_width
文字の体裁でログファイルに書き出します。
renpy.
unwatch
(expr) link指定された python 式の表示を停止します。
renpy.
watch
(expr) linkこれは指定された python 式をスクリーンの右上端に表示します。