ステートメントに相当するもの link

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

元のステートメントの代わりに相当するステートメントを使用すると、通常 Lint によるチェックがされなくなってゲームのチェックが容易にできなくなり、予測最適化がなくなるため動作の軽快さも低下する可能性があるので注意してください。

台詞 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, *args, **kwargs) 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 statement に相当する Python 関数があります。

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

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

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

interact

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

screen

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

ほとんどの Ren'Py ゲームはメニューのキャプションを使用せず、代わりにナレーションを使用します。ナレーションを使用してメニューを表示するには次のように記述します。

$ narrator("Which direction would you like to go?", interact=False)
$ result = renpy.display_menu([ ("East", "east"), ("West", "west") ])

画像の表示 link

image, scene, show, hide ステートメントはそれぞれ相当する python 関数を持ちます (元のステートメントは 画像の表示 を参照してください。)

renpy.get_at_list(name, layer=None, camera=False) link

layer 上の name タグの画像に適用されている transform のリストを返します。 transform が適用されていなければ空のリストを返し、画像が表示されていなければ 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.scene(layer=u'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

画像に適用される transform のリストです。 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=u'master', reset=True, camera=False) link

show layer layer at at_list ステートメントに Python コードで相当するものです。 camera が True なら、 camera ステートメントに相当する物でもあります。

reset

True なら、 transform の状態はその表示時までリセットされ、 False なら持続し、次のt ransform で状態を更新できるようにします。

トランジション 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, from_current=False, **kwargs) link

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

from_current

True なら、制御は現在のステートメントに続くステートメントではなく現在のステートメントに返ります(これにより現在のステートメントは二回実行されます。これはキーワード引数として渡されるべきです)。

renpy.return_statement(value=None) link

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

Pause link

Pause ステートメントrenpy.jump() 関数に相当します

renpy.pause(delay=None, *, hard=False, predict=False, modal=False) link

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

delay

指定されると、その秒数 Ren'Py はボーズするはずです。

以下はキーワード引数として指定するべきです。

hard

これはキーワード引数として指定されなければなりません。True なら、Ren'Py はクリックでユーザーがポーズを中断できないようにします。プレイヤーがスキップを有効にした場合はハードポーズはスキップされます。他にも、ハードポーズが早く終了したり、Ren'Py が正しく動作しない状況があるかもしれませんが、これらはバグとして扱われません。

一般的に、ハードポーズの使用は失礼にあたります。ユーザーがゲームを進めるためにクリックするなら、それは明示的な要求です - ユーザーはゲームを進めることを望んでいます。その要求を覆すということは、プレイヤーが何を望んでいるかをプレイヤー以上に理解していると思い込むことです。

renpy.pause を呼び出すと、画面に表示されているものが少なくとも1フレームはプレーヤーに表示されることが保証されます。

つまり、 hard = True にして renpy.pause を使用しないでください。

predict

True の場合、Ren'Py は renpy.start_predict()renpy.start_predict_screen() でスケジュールした予測も含め、すべての予測が終了したときにポーズを終了します。

また、Ren'Py はポーズの間、表示の滑らかさよりも予測を優先させます。そのため、予測中のアニメーション表示は非推奨です。

modal

True または None なら、ポーズはモーダルスクリーンが表示されているときは終わりません。 False なら、ポーズはモーダルスクリーンが表示されていても終わりません。