ステートメントの等価性 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 が追加のキーワード引数をキャラクター呼び出しに加えても動作し続けます。

選択肢 link

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

画像の表示 link

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

トランジション link

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

Jump link

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

Call link

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