新ツールにドキュメントを移殖中です。まだすべてのページは移植されていないので、ここには他に適切な場所のない新機能も載っています。
renpy.
version
(tuple=False) linktuple が False なら「 Ren'Py 」とそれに続く Ren'Py のバージョンの文字列を返します。
tuple が True なら整数でバージョンの各要素を与えるタプルを返します。
renpy.version_string
linkRen'Py のバージョンの数で、 "Ren'Py 1.2.3.456" 形式の文字列です。
renpy.version_only
linkRen'Py のバージョンの数で、Ren'Py が接頭辞につかない "1.2.3.456" 形式の文字列です。
renpy.version_tuple
linkRen'Py のバージョンの数で、 (1, 2, 3, 456) 形式のタプルです。
renpy.version_name
link"Example Version." 形式の人間が読めるバージョン名です。
renpy.license
linkゲームのアバウト画面に表示されるべきライセンステキストの文字列です。
Ren'Py にはどのプラットフォームで実行されているかに基づいて設定される変数があります。
renpy.windows
linkWindows で実行中なら True です。
renpy.macintosh
linkmacOS で実行中なら True です。
renpy.linux
linkLinux やその他の POSIX ライクなオペレーティングシステムで実行中なら True です。
renpy.android
linkAndroid で実行中なら True です。
renpy.ios
linkiOS で実行中なら True です。
renpy.emscripten
linkブラウザで実行中なら True です。
renpy.mobile
linkAndroid や iOS, ブラウザで実行中なら True です。
これらはエミュレーターではなく、実際のデバイスで実行時にのみ設定されます。これらはプラットフォーム指定の Python の使用を意図します。レイアウトの表示には、 スクリーン variant を使用します。
renpy.
diff_memory
(update=True, skip_constants=False) linkRen'Py とそのゲームにより使用されたオブジェクトや surface, texture メモリーをプロファイリングします。 update を True にして最後にこの関数を呼び出したときからの、メモリー使用の変化を (memory.txt と stdout に) 書き出します。
store と Ren'Py の実装に含まれ、メモリーまでアクセス出来る名前が占有する量です。複数の名前からアクセスできるオブジェクトがあれば、最も最短でアクセス出来る名前に代入されます。
True なら、プロファイルは起動後に変更しない Ren'Py の大きなコンテナのスキャンをスキップします。
Ren'Py に使用されるすべてのメモリーをスキャンするため、この関数は完了に時間がかかります。
renpy.
profile_memory
(fraction=1.0, minimum=0, skip_constants=False) linkRen'Py とそのゲームにより使用されたオブジェクトや surface, texture メモリーをプロファイリングします。メモリー使用の報告を memory.txt と stdout に書き出します。
store と Ren'Py の実装に含まれ、メモリーまでアクセス出来る名前が占有する量です。複数の名前からアクセスできるオブジェクトがあれば、最も最短でアクセス出来る名前に代入されます。
全体のメモリー使用のうち表示する割合です。 1.0 ならすべてのメモリー使用を表示し、.9 なら上位90%を表示します。
ある名前のメモリーが minimum バイトより小さければ、報告しません。
True なら、プロファイルは起動後に変更しない Ren'Py の大きなコンテナのスキャンをスキップします。
Ren'Py に使用されるすべてのメモリーをスキャンするため、この関数は完了に時間がかかります。
renpy.
profile_rollback
() linkロールバックに使用されているメモリーをプロファイリングします。ロールバックシステムによって使用されたメモリー (memory.txt と stdout) へ書き出します。これはロールバックシステムの内部要素とともに、様々な store 変数によって使用されたロールバックメモリーの報告を試みます。
renpy.
context
() link現在のコンテキストに対してユニークなオブジェクトを返します。新しいコンテキストに入るとそのオブジェクトはコピーされますが、コピーへの変更はオリジナルに影響を与えません。
オブジェクトは保存され、ロールバックに参加します。
renpy.
context_nesting_level
() link現在のコンテキストのネストレベルを返します。これは (セーブロード、ロールバックされる) 最も外側のコンテキストに対しては 0 で、メニューや回想のような他のコンテキストでは 0 ではありません。
このオブジェクトは 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 からランダムに要素を返します。
renpy.random.shuffle(seq)
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)
メインとは別に新しい乱数生成オブジェクトを返します。これは存在すれば指定した値をシード値にします。
これらの関数は SDL dll 内の関数を呼び出す Python ctypes モジュールを使用出来るようにします。 Ren'Py に含まれている SDL2 がどの機能を含んで、あるいは含まずコンパイルされるかは保証しません。これらの関数は Ren'Py を実行するプラットフォームによっては失敗するので、処理前に None か確認することが重要です。
renpy.
get_sdl_dll
() linkRen'Py が使用している SDL2 のインスタンスを含むライブラリを参照する ctypes.cdll オブジェクトを返します。
これが実行できなければ None を返します。
renpy.
get_sdl_window_pointer
() linkメインウィンドウへの (ctypes.c_void_p 型の) ポインターを返すか、 メインウィンドウが表示されていないかその他の問題が起きれば None を返します。
init python:
import ctypes
def get_window_position():
"""
Retrieves the position of the window from SDL2. Returns
the (x, y) of the upper left corner of the window, or
(0, 0) if it's not known.
"""
sdl = renpy.get_sdl_dll()
if sdl is None:
return (0, 0)
win = renpy.get_sdl_window_pointer()
if win is None:
return (0, 0)
SDL_GetWindowPosition = sdl.SDL_GetWindowPosition
x = ctypes.c_int()
y = ctypes.c_int()
SDL_GetWindowPosition(win, ctypes.byref(x), ctypes.byref(y))
renpy.
add_layer
(layer, above=None, below=None, menu_clear=True) link新しいレイヤーを追加します。レイヤーが既に存在すればこの関数はなにもしません。
below または above のどちらかが指定さなければいけません。
追加するレイヤー名の文字列です。
None または新しいレイヤーの下に配置されるレイヤー名の文字列です。
None または新しいレイヤーの上に配置されるレイヤー名の文字列です。
True ならこのレイヤーはゲームメニューコンテキストに入るとクリアされ、出るときに復元されます。
renpy.
add_python_directory
(path) linkpython モジュールやパッケージの検索パスのリストに path を追加します。パスは game ディレクトリからの相対パスです。これは import ステートメント前に呼び出されなければなりません。
renpy.
add_to_all_stores
(name, value) linkクリエーターが定義したすべての名前空間に name で value を追加します。その名前空間にすでに名前があれば何もしません。
この関数は init ブロック内からのみ実行されるでしょう。一旦ゲームが開始した後に呼び出されるエラーとなります。
renpy.
call_stack_depth
() link現在のコンテキストのコールスタックの深さ、つまり呼び出し先から返らないでいるか、コールスタックからポップされた呼び出しの数を返します。
renpy.
capture_focus
(name=u'default') linkDisplayable に現在フォーカスがあれば、その Displayable の矩形のバウンディングボックスを捕捉し、 name に代入します。そうでなければ、 name に代入されたフォーカスを削除します。
捕捉したフォーカスはセーブ時にセーブされません。
文字列であるべきです。 "tooltip" は特別で、ツールチップのある Displayable がフォーカスを得ると自動的に捕捉されます。
renpy.
choice_for_skipping
() link選択肢がもうすぐ表示されることを Ren'Py に報せます。これには現在 2 つの効果があります。 :
Ren'Py がスキップ中で、選択肢後のスキップ設定がスキップ停止に設定されていると、スキップを停止します。
オートセーブを実行します。
renpy.
clear_capture_focus
(name=u'default') linkname で捕捉したフォーカスをクリアします。
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.
display_notify
(message) linkrenpy.notify()
のデフォルトの実装です。
renpy.
dynamic
(*vars, **kwargs) linkこれは1つ以上の変数名を引数として指定できます。これは現在の呼び出しに対する動的スコープの変数を作成します。呼び出しから戻ると変数は元の値にリセットされます。
変数がキーワード引数として指定されると、その引数の値がその変数名に代入されます。
呼び出し例
$ renpy.dynamic("x", "y", "z")
$ renpy.dynamic(players=2, score=0)
renpy.
flush_cache_file
(fn) linkfn ファイルを参照するすべての画像イメージのキャッシュをクリアします。ディスクの画像ファイルが変わったときに、これを呼び出して、 Ren'Pyに新バージョンの使用を強制します。
renpy.
focus_coordinates
() linkこれは、現在フォーカスを持つ displayable の座標を見つけようとします。可能であれば、(x, y, w, h) のタプルとして返し、それ以外の場合は (None, None, None, None) のタプルを返します。
renpy.
force_autosave
(take_screenshot=False, block=False) linkバックグラウンドでのオートセーブを強制します。
True なら新しいスクリーンショットが撮られます。 False なら既存のスクリーンショットが使用されます。
True なら、自動セーブが完了するまでブロックします。
renpy.
free_memory
() linkメモリーの開放を試みます。ミニゲームの実行前に便利です。
renpy.
full_restart
(transition=False, label=u'_invoke_main_menu', target=u'_main_menu', save=False) linkRen'Py をリセットしてメインメニューに戻ります。
指定されるとそのトランジションが実行され、 None の場合はトランジションを実行しません。 False の場合は config.end_game_transition
を使用します。
True なら、 Ren'Py の再起動時とユーザーがメインメニューに戻ったときにゲームが _quit_slot
に保存されます。
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 となる真偽値
記録は新しいものから古いものの順に並びます。
Noneでない場合、 age 秒前にロードされた画像のみが含まれます。
画像のロードログは、 config.developer = True の場合のみ記録されます。
renpy.
get_mouse_name
(interaction=False) link表示されるべきマウスの名前を返します。
True なら発生しているインタラクションの種類に基づいたマウス名を所得します。
renpy.
get_mouse_pos
() linkマウスポインターまたは現在のタッチ位置の座標を与えるタプル (x, y) を返します。デバイスがマウスをサポートしていなかったり現在タッチされていない場合、 x, y は数字ではありますが意味を為しません。
renpy.
get_physical_size
() linkウィンドウの実際のサイズを返します。
renpy.
get_refresh_rate
(precision=5) link浮動小数点数として、現在のスクリーンのリフレッシュレートを返します。
Ren'Pyが得る生データは1秒ごとの丸められたフレームレートです。つまり 59.95 フレームで動作するモニターは、59 fps と報告されます。 precision 引数は読み取りの精度を下げ、読み込んだ値をprecisionの倍数のみにします。
すべてのモニターフレームレートは 5 の倍数になる傾向があるので、これで正度を改善できるかもしれません。1に設定するとこれは無効化されます。
renpy.
get_renderer_info
() linkRen'Pyが現在使っているレンダリングエンジンの情報を与える辞書を返します。定義されたキーは以下です。 :
"renderer"
使用中のレンダー名の文字列です。
"resizable"
ウィンドウサイズが変更可能な時のみ True となります。
"additive"
レンダリングエンジンが加算合成をサポートする場合のみ True です。
"model"
モデルベースのレンダリングがサポートされればキーが存在し、Trueとなります。
他に、レンダリングエンジン固有のキーが存在するかもしれません。辞書は変更出来ないものとして扱うべきです。また、これは一旦表示が開始されてから ( 初期化コードが終った時 ) のみ呼び出されるべきです。
renpy.
get_say_attributes
() link現在の say ステートメントに対応する属性、またはこのステートメントに対応する属性がない場合は None を取得します。
これはsayステートメントを実行または予想しているときのみ有効です。
renpy.
get_skipping
() linkRen'Py がスキップ中なら "slow" を返し、高速スキップ中なら "fast" 、そうでないなら None を返します。
renpy.
get_transition
(layer=None) linklayer のトランジションか、 layer が None ならすべてのレイヤーのトランジションを取得します。これは次のインタラクションで実行されるはずのキューされたトランジションか、そのようなトランジションがないなら None を返します。
renpy.
iconify
() linkゲームを最小化します。
renpy.
invoke_in_thread
(fn, *args, **kwargs) linkバックグラウンドスレッドで関数 fn を実行し、与えられた引数とキーワード引数を渡します。スレッドが結果を返すとインタラクションを再開します。
この関数は、 Ren'Py 終了時自動的に停止するデーモンスレッドを作成します。
このスレッドは Ren'Py API で実行できる範囲が非常に制限されています。 store 変数の変更と renpy.queue_event()
関数の呼び出しは許可されていますが、その他の殆どの Ren'Py API はメインスレッドからの呼び出しを想定しています。
この関数の主な用途は web API へのアクセスを別スレッドに配置し、この呼び出しの結果で変数を更新してインタラクションを再開し、それらの変数をスクリーンに表示することです。
renpy.
is_init_phase
() linkRen'Py が現在 init コードの実行中なら True, そうでなければ False を返します。
renpy.
is_mouse_visible
() linkマウスカーソルが可視状態なら True, そうでなければFalse を返します。
renpy.
is_seen
(ever=True) link現在の行が既読なら True を返します。
ever が True であれば、その行がプレイヤーによって一度でも読まれているかどうかを確認します。False の場合は、今回のプレイでは既読行かどうかを確認します。
renpy.
is_skipping
() linkRen'Py が現在(ファストまたはスロー)スキップ中なら True を返し、そうでなければ False を返します。
renpy.
is_start_interact
() linkrestart_interaction が現在のインタラクションで呼び出されたことがなければ True を返します。これを使用してそのインタラクションが開始されたか、再開されたかを判定できます。
renpy.
language_tailor
(chars, cls) linkこれを使用してある文字の改行分類を上書きできます。例えば、文字の改行分類を文字の前後での改行を許すIDに設定すれば表語文字的な文字として扱えます。
改行する文字を含む文字列です。
文字分類の文字列です。これは UAX #14: Unicode Line Breaking Algorithm の表1で定義されたクラスの1つであるべきです。
renpy.
load_module
(name) linkこれは name と名付けられた Ren'Py モジュールをロードします。 Ren'Py モジュールは通常の名前空間 ( store ) にロードされ、 name.rpym や name.rpymc と名付けられたファイルに含まれている Ren'Py コードで構成されます。 .rpym ファイルが存在し、対応する .rpymc ファイルより新しければロードされて新しい .rpymc ファイルが作成されます。
init ブロック (とその他の初期化段階のコード) のすべてはこの関数が返る前に実行されます。そのモジュール名が見つからないか、曖昧な場合はエラーが発生します。
モジュールのロードは init ブロック内でのみ行なわれます。
renpy.
load_string
(s, filename=u'<string>') link呼び出し可能な Ren'Py スクリプトとして文字列 s をロードします。
s の最初のステートメント名を返します。
filename は、その文字列内のステートメントがあることになるファイル名です。
renpy.
maximum_framerate
(t) linkt 秒間 Ren'Py に最大フレームレートでの画面描画を強制します。 t が None なら、最大フレームレートのリクエストはキャンセルされます。
renpy.
munge
(name, filename=None) linkname を munge します。 name は __ で始まらなければなりません。
munge されるファイル名です。 None なら、その名前はこの関数への呼び出しを含むファイル名に munge されます。
renpy.
not_infinite_loop
(delay) link無限ループ検出のタイマーを delay 秒までリセットします。
renpy.
notify
(message) linkRen'Pyにnotify スクリーンを使って message を表示します。デフォルトでは、これはメッセージをdissolveで表示し、2秒間表示した後に再びdissolveで消去します。
これはスクリーンショットやクリックセーブのようにフィードバックを生成しないアクションに便利です。
同時に一つの通知のみが表示されます。二つ目の通知が表示されたら、最初の表示は置き換えられます。
この関数は単に config.notify
を呼び出しているため、新しい関数をその変数に代入してその実装を置き換えられます。
renpy.
pop_call
() linkコールスタックから現在の呼び出しをポップしますが、呼び出し元には返りません。
これは呼び出されたラベルからその呼び出し元に返らないときに利用出来ます。
renpy.
predicting
() linkRen'Py が現在予測処理中なら True, そうでなければ False を返します。
renpy.
queue_event
(name, up=False, **kwargs) link指定された名前のイベントをキューします。 Name は config.keymap
にあるイベント名の 1 つか、その名前のリストであるべきです。
これはそのイベント開始時 ( 例えばキーボードボタンが押された時 ) には False であり、そのイベント終了時 ( ボタンが開放された時 ) には True であるべきです。
イベントはこの関数が呼び出されるとキューされます。この関数はあるイベントを他のイベントで置き換えるためには動作しません。そうするためにはイベント優先度を変更してください ( 代わりに config.keymap
を使用します )。
このメソッドはスレッドセーフです。
renpy.
quit
(relaunch=False, status=0, save=False) linkRen'Py を完全に終了します。
True なら Ren'Py は終了前に自身のコピーを実行します。
Ren'Py がオペレーティングシステムに返すステータスコードです。一般に、0は成功、正の整数は失敗を意味します。
True なら、ゲームは Ren'Py 終了時に _quit_slot
に保存されます。
renpy.
quit_event
() linkプレイヤーがウィンドウ端の終了ボタンを押したかのように quit イベントを引き起します。
renpy.
reload_script
() linkRen'Py にゲームをセーブさせ、スクリプトをリロード、そのセーブをロードさせます。
これは開発中のみ呼び出すべきです。 Windows、macOS、およびLinux では動作しますが他のプラットフォームでは動作しない場合があります。
renpy.
reset_physical_size
() link実際のウィンドウのサイズを renpy.config で指定された値 (screen_width, screen_width) に設定しようと試みます。これは全画面モードを無効化する副作用を持ちます。
renpy.
restart_interaction
() link現在のインタラクションを再実行します。これはとりわけ場面に追加された画像と再評価されたスクリーンを表示し、キューされたトランジションを開始します。
これはインタラクション内部 ( 例えばアクション中 ) で呼び出された時のみ動作します。インタラクションの外部ではこの関数は効果がありません。
renpy.
screenshot
(filename) linkfilename でスクリーンショットを撮ります。
スクリーンショットが保存されれば True を、何らかの理由で失敗すれば False を返します。
config.screenshot_pattern
と _screenshot_pattern
変数はスクリーンショットが保存されるファイルを制御します。
renpy.
screenshot_to_bytes
(size) linkim.Data() に渡されるバイトオブジェクトとしてスクリーンショットを返します。バイトオブジェクトは以下のように png フォーマットの画像です。
$ data = renpy.screenshot_to_bytes((640, 360))
show expression im.Data(data, "screenshot.png"):
align (0, 0)
上記は画像を表示します。返されたバイトオブジェクトはセーブファイルと永続データに保存できますが、これらは大きくて大量に含めすぎるには注意が必要です。
スクリーンショットがリサイズされるサイズです。 None なら、スクリーンショットはプレイヤーのウィンドウサイズにリサイズされます。
この関数は遅いため、リアルタイムエフェクトではなく、保存用のスクリーンショット用として意図されています。
renpy.
scry
() link現在のステートメントに対する scry オブジェクトを返します。
scry オブジェクトは Ren'Py に次のステートメントについて報せます。現在、 scry オブジェクトは 次のフィールドを持ちます。 :
nvl_clear
次のインタラクションの前に nvl clear
ステートメントが処理されるなら True です。
say
次のインタラクションの前に say
ステートメントが処理されるなら True です。
menu_with_caption
次のインタラクションの前にキャプションありで menu
ステートメントが処理されるなら True です。
who
次のインタラクションの前に say
または menu-with-caption
ステートメントが処理されるなら、そのキャラクターオブジェクトです。
renpy.
set_autoreload
(autoreload) link自動リロードのフラグを設定し、ゲームがファイル変更後に自動的にリロードするかどうかを決定します。自動リロードはゲームが renpy.utter_restart()
でリロードされて始めて完全に有効化されます。
renpy.
set_mouse_pos
(x, y, duration=0) link引数 x, y で指定された位置にマウスポインターを移動します。デバイスにマウスポインターがない場合はこれは何もしません。
移動処理にかける秒数です。この時間の間はマウスが反応しません。
renpy.
set_physical_size
(size) link実際のウィンドウのサイズを size に設定しようと試みます。これは全画面モードを無効化する副作用を持ちます。
renpy.
shown_window
() linkこれを呼び出してウィンドウを継続的に表示させます。これは「 window show 」ステートメントに対応し、この関数が インタラクションの最中に呼び出されない限り空のウィンドウを表示します。
renpy.
split_properties
(properties, *prefixes) linkproperties を prefix 毎に辞書に分けます。この機能は各接頭辞に対してプロパティーの各キーを順番にチェックします。接頭辞と一致すればその接頭辞がキーから除かれ、その結果のキーが対応する辞書でその値に対応付けられます。
合う接頭辞がなければ例外が投げられます(空の文字列 "" を最後の接頭辞に使用してすべての辞書を受け取れます)。
例えば、このコードは text で始まるプロパティーとそうでないものを分割します。
text_properties, button_properties = renpy.split_properties(properties, "text_", "")
renpy.
substitute
(s, scope=None, translate=True) link翻訳と新スタイルのフォーマットを文字列 s に適用します。
None かフォーマットに使用するスコープで、デフォルト store に追加されます。
翻訳するかを決定します。
翻訳とフォーマットが終了した文字列を返します。
renpy.
transition
(trans, layer=None, always=False) link次のインタラクションの間使用されるトランジションをセットします。
トランジションが適用されるレイヤーです。 None ならトランジションは全てのレイヤーに適用されます。
False ならこれはトランジション設定を反映します。 True ならトランジションは常に実行されます。
renpy.
vibrate
(duration) linkデバイスを duration 秒間バイブさせます。現在これはアンドロイドのみのサポートです。
layout.
yesno_screen
(message, yes=None, no=None) linkこれは与えられたメッセージで Yes/No プロンプトを表示します。ユーザーが Yes か No を押したらスクリーンは消えます。
表示されるメッセージ
ユーザーが Yes を選んだときに実行されるアクション
ユーザーが No を選んだときに実行されるアクション