ステートメントの等価性 link

Ren'Py のスクリプトを Python で記述できるようにするため、それぞれの Ren'Py のステートメントには Python のコードとの等価性があります。これは通常 Python の関数で構成されていますが、ステートメントと等価な動作を行うために複数のコードで構成されることもあります。

台詞 link

Ren'Py の say ステートメントはキャラクターオブジェクトを関数として呼び出すことと等価です。次は、同じ行を2回表示させるコードです

e "Hello, world."

$ e("Hello, world.")

台詞の表示は narrator キャラクターを用いて同様に行えます。キャラクターを呼び出すときは、キーワード引数 interact を与えられます。interactが False なら、 Ren'Py はキャラクターのダイアログボックスを表示しますが、インタラクションを実行する前に処理を戻します。

キャラクターと関数オブジェクトの等価性はその他の面でも同様に働きます。 python 関数を宣言して、キャラクターオブジェクトの代わりに使用することが可能です。例えば、以下の関数は二人のキャラクターを選択するために変数を使用しています。

define lucy_normal = Character("Lucy")
define lucy_evil = Character("Evil Lucy")

init python:

    def l(what, **kwargs):
        if lucy_is_evil:
            lucy_evil(what, **kwargs)
        else:
            lucy_normal(what, **kwargs)

label start:

    $ lucy_is_evil = False

    l "Usually, I feel quite normal."

    $ lucy_is_evil = True

    l "But sometimes, I get really mad!"

このように使用された関数は未知のキーワード引数を無視するか、 キャラクター関数に渡します。このことでゲームは Ren'Py が追加のキーワード引数をキャラクター呼び出しに加えても動作し続けます。

renpy.say(who, what, interact=True) link

say ステートメントと等価です。

who

発言するキャラクターか、キャラクター名の文字列です。 None ならナレーターが使用されます。文字列なら say() を使用して発言するキャラクターが作成されます。

what

発言する文字列です。 % 置換文字列はこの文字列で使用されます。

interact

True なら Ren'Py は台詞表示時にプレイヤーの入力を待ちます。 False なら Ren'Py は台詞を表示しますが、インタラクションを実行しません。

次の3行が等価なためこの関数は滅多に必要ありません。 :

e "Hello, world."
$ renpy.say(e, "Hello, world.")
$ e("Hello, world.")

選択肢 link

menu ステートメントには等価な Python 関数があります。

これはユーザーに選択肢を表示します。 items は 2 つの要素のタプルのリストです。各タプルの最初の要素はラベルで、 2 つ目の要素はその要素が選択された時に返される値です。値が None ならその最初の要素はキャプションに使用されます。

この関数は多くの引数を取りますが、一部のみドキュメントに記載されています。 items を除いてすべての引数はキーワード引数で指定されるべきです。

interact

False なら選択肢は表示されますが、インタラクションは実行されません。

screen

選択肢を表示するために使用されるスクリーンの名前

renpy.display_menu(items, interact=True, screen="choice") link

これはユーザーに選択肢を表示します。 items は 2 つの要素のタプルのリストです。各タプルの最初の要素はラベルで、 2 つ目の要素はその要素が選択された時に返される値です。値が None ならその最初の要素はキャプションに使用されます。

この関数は多くの引数を取りますが、一部のみドキュメントに記載されています。 items を除いてすべての引数はキーワード引数で指定されるべきです。

interact

False なら選択肢は表示されますが、インタラクションは実行されません。

screen

選択肢を表示するために使用されるスクリーンの名前

画像の表示 link

image, scene, show, hide ステートメントはそれぞれ等価な python 関数を持ちます。

renpy.get_at_list(name, layer=None) link

layer 上の name タグの画像に適用されている変換のリストを返します。変換が適用されていなければ空のリストを返し、画像が表示されていなければ None 返します。

layer が None なら、指定されたタグのデフォルトレイヤーを使用します。

renpy.hide(name, layer=None) link

レイヤーから画像を非表示します。 hide ステートメントと等価な python です。

name

非表示する画像の名前です。画像タグのみが使用され、そのタグのすべての画像が非表示されます。(正確な画像名は必要ありません。)

layer

この関数が処理するレイヤーです。None ならタグのデフォルトレイヤーを使用します。

renpy.image(name, d) link

画像を定義する。この関数は image ステートメントと等価な python です。

name

表示する画像の名前で、文字列です。

d

その画像名に関連付けられる displayable

この関数は init ブロック内でのみ実行されます。一旦ゲームが実行されてからこの関数が実行されると、エラーになります。

renpy.layer_at_list(at_list, layer='master') link

show layer layer at at_list ステートメントの Python による書き方です。

renpy.scene(layer='master') link

layer からすべての displayable を除去します。これは表示する画像が与えられない時の scene ステートメントと等価です。

scene ステートメントは renpy.scene に続いて renpy.show() を呼び出すことと等価です。例えば

scene bg beach

これは次と等価です:

$ renpy.scene()
$ renpy.show("bg beach")
renpy.show(name, at_list=, []layer='master', what=None, zorder=0, tag=None, behind=[]) link

レイヤーに画像を表示します。これは show ステートメントとプログラム的に等価です。

name

表示する画像の名前で、文字列です。

at_list

画像に適用される変換のリストです。 at プロパティーと等価です。

layer

画像が表示されるレイヤーの名前の文字列です。 onlayer と等価です。None ならそのタグに関連付けられたデフォルトレイヤーを使用します。

what

None でないならこれは画像を 探す代わりに表示される displayable です。 ( これは show expression ステートメントと等価です。 ) what 引数が与えられると、 name はその画像とタグを関連づけるために使用されます。

zorder

zorder プロパティーと等価な整数です。 None だと zorder があれば維持され、そうでなければ 0 に設定されます。

tag

表示される画像の画像タグを指定するために使用される文字列です。 as プロパティーと等価です。

behind

この画像が背後に表示される画像タグの文字列のリストです。 behind プロパティーと等価です。

renpy.show_layer_at(at_list, layer='master') link

show layer layer at at_list ステートメントの Python による書き方です。

トランジション link

with ステートメントと等価な renpy.with_statement 関数です。

renpy.with_statement(trans, always=False) link

トランジションを実行します。これは with ステートメントと等価な python です。

trans

トランジション

always

True なら、トランジションはユーザーがトランジションを無効化していても常に実行します。

この関数はユーザーがトランジションの中断を選択するなら True を、そうでないなら False を返します。

Jump link

jump ステートメントは renpy.jump 関数と等価です。

renpy.jump(label) link

現在のステートメントを終了し、制御を指定されたラベルに移します。

Call link

call ステートメントと等価なものは renpy.call 関数です。

renpy.call(label, *args, **kwargs) link

現在の Ren'Py ステートメントを終了し、指定された label にジャンプします。ジャンプから戻ると、現在のステートメントに続くステートメントに制御が移ります。

renpy.return_statement() link

現在の Ren'Py の呼び出しレベルから Ren'Py を返します。