その他の関数と変数 link

新ツールにドキュメントを移殖中です。まだすべてのページは移植されていないので、ここには他に適切な場所のない新機能も載っています。

renpy.add_layer(layer, above=None, below=None, menu_clear=True) link

新しいレイヤーを追加します。レイヤーが既に存在すればこの関数はなにもしません。

behind または above が指定されます。

layer

追加するレイヤー名の文字列です。

above

None または新しいレイヤーの下に配置されるレイヤー名の文字列です。

below

None または新しいレイヤーの上に配置されるレイヤー名の文字列です。

menu_clear

True ならこのレイヤーはゲームメニューコンテキストに入るとクリアされ、出るときに復元されます。

renpy.call_stack_depth() link

現在のコンテキストのコールスタックの深さ、つまり呼び出し先から返らないでいるか、コールスタックからポップされた呼び出しの数を返します。

renpy.choice_for_skipping() link

選択肢がもうすぐ表示されることを Ren'Py に報せます。これには現在 2 つの効果があります。 :

  • Ren'Py がスキップ中で、選択肢後のスキップ設定がスキップ停止に設定されていると、スキップを停止します。

  • オートセーブを実行します。

renpy.clear_game_runtime() link

ゲームランタイムカウンターをリセットします。

renpy.clear_keymap_cache() link

キーマップのキャッシュをクリアします。これにより Ren'Py を再起動せずに config.keymap の変更を反映します。

renpy.context_dynamic(*vars) link

これは1つ以上の変数名を引数として指定できます。これは現在のコンテキストに対する動的スコープの変数を作成します。呼び出しから戻ると変数は元の値にリセットされます。

呼び出し例

$ renpy.context_dynamic("x", "y", "z")
renpy.count_dialogue_blocks() link

ゲームの元の言語での台詞ブロックの数を返します。

renpy.count_newly_seen_dialogue_blocks() link

このセッション中にユーザーが初めて読んだ台詞ブロックの数を返します。

renpy.count_seen_dialogue_blocks() link

いちどでもユーザーが読んでいる台詞ブロックの数を返します。

renpy.dynamic(*vars) link

これは1つ以上の変数名を引数として指定できます。これは現在の呼び出しに対する動的スコープの変数を作成します。呼び出しから戻ると変数は元の値にリセットされます。

呼び出し例

$ renpy.dynamic("x", "y", "z")
renpy.focus_coordinates() link

これは、現在フォーカスのを持つ displayable の座標を見つけようとします。可能であれば、(x, y, w, h) のタプルとして返します。それ以外の場合は、(None, None, None, None) のタプルを返します。

renpy.force_autosave(take_screenshot=False) link

バックグラウンドでのオートセーブを強制します。

take_screenshot

True なら新しいスクリーンショットが撮られます。 False なら既存のスクリーンショットが使用されます。

renpy.force_full_redraw() link

スクリーンを完全に再描画します。 pygame を使用した後でこれを呼び出して、直接スクリーンを再描画します。

renpy.free_memory() link

メモリーの開放を試みます。ミニゲームの実行前に便利です。

renpy.full_restart(transition=False, label='_invoke_main_menu', target='_main_menu') link

Ren'Py をリセットしてメインメニューに戻ります。

transition

指定されるとそのトランジションが実行され、 None の場合はトランジションを実行しません。 False の場合は config.end_game_transition を使用します。

renpy.get_adjustment(bar_value) link

指定した bar_value, BarValue から, 使っていれば ui.adjustment() を返します。 adjustment には以下の定義された属性があります。:

value link

バーの現在の値です。

range link

バーの範囲です。

renpy.get_autoreload() link

自動リロードのフラグを所得します。

renpy.get_game_runtime() link

ゲームランタイムカウンターを返します。

ゲームランタイムカウンターは、トップレベルのコンテキストでユーザーの入力待ちの間の秒数を記録します。(メインメニューやゲームメニューでの時間は記録しません。)

renpy.get_image_load_log(age=None) link

画像をロードする際のログを生成します。最後の100個の画像に対し、次のロードログを返します:

  • 画像がロードされた時間(エポックからの秒数)。

  • ロードされた画像のファイル名。

  • 画像がプリロードされれば true ロード中にゲームが停止すれば false となる真偽値です。

記録は新しいものから古いものの順に並びます。

age

Noneでない場合、 age 秒前にロードされた画像のみが含まれます。

画像のロードログは、 config.developer = True の場合のみ記録されます。

renpy.get_mouse_pos() link

マウスポインターまたは現在のタッチ位置の座標を与えるタプル (x, y) を返します。デバイスがマウスをサポートしていなかったり現在タッチされていない場合、 x, y は数字ではありますが意味を為しません。

renpy.get_physical_size() link

ウィンドウの実際のサイズを返します。

renpy.get_refresh_rate(precision=5) link

1秒ごとのフレームレートの浮動小数点数として、現在のスクリーンのリフレッシュレートを返します。

precision

Ren'Pyが得る生データは1秒ごとの丸められたフレームレートです。つまりモ 59.95 フレームで動作するモニターは、59 fps と報告されます。 precision 引数は読み取りの精度を下げ、読み込んだ値をprecisionの倍数のみにします。

すべてのモニターフレームレートは 5 の倍数になる傾向があるので、これで正度を改善できるかもしれません。1に設定するとこれは無効化されます。

renpy.get_renderer_info() link

Ren'Pyが現在使っているレンダリングエンジンの情報を与える辞書を返します。辞書はキーを要求するものです:

"renderer"

"gl""sw" のどちらか一方で、それぞれ OpenGL とソフトウェアレンダリングに対応しています。

"resizable"

ウィンドウサイズが変更可能な時のみ True となります。

"additive"

レンダリングエンジンが加算合成をサポートする場合のみ True です。

他に、レンダリングエンジン固有のキーが存在するかもしれません。辞書は変更出来ないものとして扱うべきです。また、これは一旦表示が開始されてから ( 初期化コードが終った時 ) のみ呼び出されるべきです。

renpy.get_say_attributes() link

現在の say ステートメントに関連する属性、またはこのステートメントに関連する属性がない場合は None を取得します。

これはsayステートメントを実行するか、予想するときのみ有効です。

renpy.get_side_image(prefix_tag, image_tag=None, not_showing=True, layer='master') link

これはサイドイメージとして表示するための画像を探そうとします。

一連の画像属性を決定すると開始します。 image_tag が与えられればそのタグから画像属性を取得し、そうでなければ現在表示されているキャラクターからそれらを取得します。

タグ prefix_tag とその画像属性を持つ画像を探して、存在すればそれを返します。

not_showing が True で、属性を取れる画像がそのスクリーンになければこれはサイドイメージを返すだけです。

layer が None ならば、現在表示しているタグのデフォルトレイヤーを使用します。

renpy.get_skipping() link

Ren'Py がスキップ中なら True を返し、高速スキップ中なら "fast" 、そうでないなら False を返します。

renpy.get_transition(layer=None) link

layer のトランジションか、 layer が None ならすべてのレイヤーのトランジションを取得します。これは次のインタラクションで実行されるはずのキューされたトランジションか、そのようなトランジションがないなら None を返します。

renpy.iconify() link

ゲームを最小化します。

renpy.invoke_in_thread(fn, *args, **kwargs) link

バックグラウンドスレッドで関数 fn を実行し、与えられた引数とキーワード引数を渡します。スレッドが結果を返すとインタラクションを再開します。

この関数は、 Ren'Py 終了時自動的に停止するデーモンスレッドを作成します。

renpy.is_seen(ever=True) link

現在の行がプレイヤーによって既に読まれていれば True を返します。

ever が True であれば、その行がプレイヤーによって一度でも読まれているかどうかを確認します。False の場合は、今回のプレイでは既読行かどうかを確認します。

renpy.is_start_interact() link

restart_interaction が現在のインタラクションで呼び出されたことがなければ True を返します。これを使用してそのインタラクションが開始されたか、再開されたかを決められます。

renpy.load_module(name, **kwargs) link

これは name と名付けられた Ren'Py モジュールをロードします。 Ren'Py モジュールは通常の名前空間 ( store ) にロードされ、 name.rpym や name.rpymc と名付けられたファイルに含まれている Ren'Py コードで構成されます。 .rpym ファイルが存在し、対応する .rpymc ファイルより新しければロードされて新しい .rpymc ファイルが作成されます。

init ブロック (とその他の初期化段階のコード) のすべてはこの関数が返る前に実行されます。そのモジュール名が見つからないか、曖昧な場合はエラーが発生します。

モジュールのロードは init ブロック内でのみ行なわれます。

renpy.load_string(s, filename='<string>') link

呼び出し可能な Ren'Py スクリプトとして文字列 s をロードします。

s の最初のステートメント名を返します。

filename は、その文字列内のステートメントが置かれることになるファイル名です。

renpy.maximum_framerate(t) link

t 秒間 Ren'Py に最大フレームレートでの画面描画を強制します。 t が None なら、最大フレームレートのリクエストはキャンセルされます。

renpy.munge(name, filename=None) link

Munges name, which must begin with __.

filename
The filename the name is munged into. If None, the name is munged into the filename containing the call to this function.
renpy.not_infinite_loop(delay) link

無限ループ検出のタイマーを delay 秒までリセットします。

renpy.notify(message) link

Ren'Pyにnotify スクリーンを使って message を表示します。デフォルトでは、これはメッセージをdissolveで表示し、2秒間表示した後に再びdissolveで消去します。

これはスクリーンショットやクリックセーブのようにフィードバックを生成しないアクションに便利です。

同時に一つの通知のみが表示されます。二つ目の通知が表示されたら、最初の表示は置き換えられます。

renpy.pause(delay=None, music=None, with_none=None, hard=False, checkpoint=None) link

Ren'Py をポーズします。ユーザーがクリックでポーズを終了すると True 、ポーズがタイムアウトするかスキップされると False を返します。

delay

指定されると、 Ren'Py はその秒数ポーズします。

music

互換性維持目的で残されています。

with_none

ポーズの終了時に with None 節を実行するかどうかを決定します。

hard

True ならクリックではポーズを停止しません。ゲームのクラッシュとハードポーズとは区別が難しいのでこれの使用は控え目にしてください。

checkpoint

True ならチェックポイントが設定され、プレイヤーはこのステートメントにロールバック出来るでしょう。 False ならチェックポイントは設定されません。 None ならチェックポイントは delay が設定されているときのみ設定されます。

renpy.pop_call() link

コールスタックから現在の呼び出しをポップしますが、呼び出し元には返りません。

これは呼び出されたラベルからその呼び出し元に返らないときに利用出来ます。

renpy.queue_event(name, up=False, **kwargs) link

指定された名前のイベントをキューします。 Nameconfig.keymap にあるイベント名の 1 つか、その名前のリストであるべきです。

up

これはそのイベント開始時 ( 例えばキーボードボタンが押された時 ) には False であり、そのイベント終了時 ( ボタンが開放された時 ) には True であるべきです。

イベントはこの関数が呼び出されるとキューされます。この関数はあるイベントを他のイベントで置き換えるためには動作しません。そうするためにはイベント優先度を変更してください。 ( 代わりに config.keymap を使用します )

このメソッドはスレッドセーフです。

renpy.quit(relaunch=False, status=0) link

Ren'Py を完全に終了します。

relaunch

True なら Ren'Py は終了前に自身のコビーを実行します。

status

Ren'Py がオペレーティングシステムに返すステータスコードです。一般に、0は成功、正の整数は失敗を意味します。

renpy.quit_event() link

プレイヤーがウィンドウ端の終了ボタンを押したかのように quit イベントを引き起します。

renpy.reload_script() link

Ren'Py にゲームをセーブさせ、スクリプトをリロード、そのセーブをロードさせます。

renpy.reset_physical_size() link

実際のウィンドウのサイズを renpy.config で指定された値 (screen_width, screen_width) に設定しようと試みます。これは全画面モードを無効化する副作用を持ちます。

renpy.restart_interaction() link

現在のインタラクションを再実行します。とりわけこれは場面に追加された画像と再評価されたスクリーンを表示し、キューされたトランジションを開始します。

これはインタラクション内部 ( 例えばアクション中 ) で呼び出された時のみ動作します。インタラクションの外部ではこの関数は効果がありません。

renpy.screenshot(filename) link

filename でスクリーンショットを撮ります。

renpy.scry() link

現在のステートメントに対する scry オブジェクトを返します。

scry オブジェクトは Ren'Py に現在のステートメントの将来に True でなければならないことについて報せます。現在、 scry オブジェクトは 1 つのフィールドを持ちます。 :

nvl_clear

次のインタラクションの前に nvl clear ステートメントが処理されるなら True です。

renpy.set_autoreload(autoreload) link

自動リロードのフラグを設定し、ゲームがファイル変更後に自動的にリロードするかどうかを決定します。自動リロードはゲームが renpy.utter_restart() でリロードされて始めて完全に有効化されます。

renpy.set_mouse_pos(x, y, duration=0) link

引数 x, y で指定された位置にマウスポインターを移動します。デバイスにマウスポインターがない場合はこれは何もしません。

duration

移動処理にかける秒数です。この時間の間はマウスが反応しません。

renpy.set_physical_size(size) link

実際のウィンドウのサイズを size に設定しようと試みます。これは全画面モードを無効化する副作用を持ちます。

renpy.shown_window() link

これを呼び出してウィンドウを継続的に表示させます。これは「 window show 」ステートメントに対応し、この関数が インタラクションの最中に呼び出されない限り空のウィンドウを表示します。

renpy.split_properties(properties, *prefixes) link

propertiesprefix 毎に辞書に分けます。この機能は各接頭辞に対してプロパティーの各キーを順番にチェックします。接頭辞と一致すればその接頭辞はキーから除かれ、けっかのキーが対応する辞書の値にマップされます。

合う接頭辞がなければ例外が投げられます。(空の文字列 "" を最後の接頭辞に使用してすべての辞書を受け取れます。)

例えば、このコードは text で始まるプロパティーとそうでないものを分割します。

text_properties, button_properties = renpy.split_properties("text_", "")
renpy.substitute(s, scope=None, translate=True) link

翻訳と新スタイルのフォーマットを文字列 s に適用します。

scope

None かフォーマットに使用するスコープで、デフォルト store に追加されます。

translate

翻訳するかを決定します。

翻訳とフォーマットが終了した文字列を返します。

renpy.transition(trans, layer=None, always=False) link

次のインタラクションの間使用されるトランジションをセットします。

layer

トランジションが適用されるレイヤーです。 None ならトランジションは全てのレイヤーに適用されます。

always

False ならこれはトランジション設定を反映します。 True ならトランジションは常に実行されます。

renpy.vibrate(duration) link

デバイスを duration 秒間バイブさせます。現在これはアンドロイドのみのサポートです。

layout.yesno_screen(message, yes=None, no=None) link

これは与えられたメッセージで Yes/No プロンプトを表示します。ユーザーが Yes か No を押したらスクリーンは消えます。

message

表示されるメッセージ

yes

ユーザーが Yes を選んだときに実行されるアクション

no

ユーザーが No を選んだときに実行されるアクション

Ren'Py Version link

renpy.version(tuple=False) link

tuple が False なら「 Ren'Py 」とそれに続く Ren'Py のバージョンの文字列を返します。

tuple が True なら整数でバージョンの各要素を与えるタプルを返します。

renpy.version_string link

Ren'Py のバージョンの数で、 "Ren'Py 1.2.3.456" 形式の文字列です。

renpy.version_only link

Ren'Py のバージョンの数で、Ren'Py が接頭辞につかない "1.2.3.456" 形式の文字列です。

renpy.version_tuple link

Ren'Py のバージョンの数で、 (1, 2, 3, 456) 形式のタプルです。

renpy.version_name link

"Example Version." 形式の人間が読めるバージョン名です。

renpy.license link

ゲームのアバウト画面に表示されるべきライセンステキストの文字列です。

メモリープロファイリング link

renpy.diff_memory(update=True) link

Ren'Py とそのゲームにより使用されたオブジェクトや surface, texture メモリーをプロファイリングします。 update を True にして最後にこの関数を呼び出したときからの、メモリー使用の変化を (memory.txt と stdout に) 書き出します。

The accounting is by names in the store and in the Ren'Py implementation that the memory is reachable from. If an object is reachable from more than one name, it's assigned to the name it's most directly reachable from.

Ren'Py に使用されるすべてのメモリーをスキャンするため、この関数は完了に時間がかかります。

renpy.profile_memory(fraction=1.0, minimum=0) link

Ren'Py とそのゲームにより使用されたオブジェクトや surface, texture メモリーをプロファイリングします。メモリー使用の報告を memory.txt と stdout に書き出します。

The accounting is by names in the store and in the Ren'Py implementation that the memory is reachable from. If an object is reachable from more than one name, it's assigned to the name it's most directly reachable from.

fraction
The fraction of the total memory usage to show. 1.0 will show all memory usage, .9 will show the top 90%.
minimum

ある名前のメモリーが minimum バイトより小さければ、報告しません。

Ren'Py に使用されるすべてのメモリーをスキャンするため、この関数は完了に時間がかかります。

renpy.profile_rollback() link

ロールバックに使用されているメモリーをプロファイリングします。ロールバックシステムによって使用されたメモリー (memory.txt と stdout) へ書き出します。これはロールバックシステムの内部要素とともに、様々な store 変数によって使用されたロールバックメモリーの報告を試みます。

コンテキスト link

renpy.context() link

現在のコンテキストに対してユニークなオブジェクトを返します。新しいオブジェクトに入るとそのオブジェクトはコピーされますが、コピーへんの変更はオリジナルに影響を与えません。

オブジェクトは保存され、ロールバックに参加します。

renpy.context_nesting_level() link

現在のコンテキストのネストレベルを返します。これは (セーブロード、ロールバックされる) 最も外側のコンテキストに対しては 0 で、メニューや回想のような他のコンテキストでは 0 ではありません。

renpy.random link

このオブジェクトは the Python random number generation interface で実装された乱数生成機です。乱数はこのオブジェクトが与える種々のメソッドを呼び出して生成可能です。完全なリストは python ドキュメントを参照する必要がありますが、殆どは以下が使用されます。 :

  • renpy.random.random()

0.0 から 1.0 までの範囲でランダムな浮動小数点数を返します。

  • renpy.random.randint(a, b)

a 以上、 b 以下の範囲でランダムな整数を返します。

  • renpy.random.choice(seq)

空でないシーケンス seq からランダムに要素を返します。

標準の Python 乱数整数機と違い、このオブジェクトはロールバックを考慮し、何回ロールバックしても同じ数字を生成します。標準の python random モジュールの代わりに使用するべきです。

# return a random float between 0 and 1
$ randfloat = renpy.random.random()

# return a random integer between 1 and 20
$ d20roll = renpy.random.randint(1, 20)

# return a random element from a list
$ randfruit = renpy.random.choice(['apple', 'orange', 'plum'])
  • renpy.random.Random(seed=None)

メインとは別に新しい乱数生成オブジェクトを返します。これは存在すれば指定した値をシード値にします。