Ren'Py で使用するための新しい transform とトランジションの作成に Python を使用出来ます。
詳細: Transform と Animation and Transformation Language (ATL)
transform とは呼び出し可能な python オブジェクトで、 displayable を引数に呼び出されて別の displayable を返します。
例
init python:
# This is a transform that uses the right and
# left transforms.
def right_or_left(d):
if switch:
return right(d)
else:
return left(d)
Transform オブジェクトは ATL transform に相当する python です。
Transform
(child=None, function=None, **properties) linktransform は cropping や rotation, scaling, alpha-blending のような処理をその子に適用します。 transform オブジェクトはその子に適用する transform プロパティー に対応するフィールドを持ちます。
transform が適用される子
None を設定するか、 transform がレンダリングされるときに呼び出される関数を設定します。関数は3つの引数で呼び出されます。
transform オブジェクト
秒数での出現時間軸
秒数でのアニメーション時間軸
関数が秒数を返すなら、その秒数後再度呼び出され、 None なら次のインタラクション開始時に再度呼び出されます。
この関数は予測のためにいつどの数値で呼び出されるか分からないので、第一引数の Transform オブジェクトの変更の他には副作用を持つべきではありません。
追加のキーワード引数はその transform プロパティーに設定される値となります。その transform が描画されるたびに設定されるので、それらの transform プロパティーは Transform オブジェクトが作成された後は変更されないでしょう。しかし、他の transform プロパティーに対応するフィールドは、 function
パラメータとして渡される関数内や update()
メソッドを呼び出す直前に設定して、変更できます。
hide_request
linkこれは関数が呼び出されると True に設定され、 transform が非表示されていることを示します。
hide_response
linkhide_request が True なら、これを False に設定して transform が非表示されないようにできます。
set_child
(child) link新しい child でこのメソッドを呼び出すと、この transform の子を変更します。
update
() linkfunction 引数として渡された関数以外から transform プロパティーフィールドが更新されるときには、これを呼び出して変更を確実に反映する必要があります。
詳細: トランジション 次も参照: ATL トランジション
トランジションとは 2 つのキーワード引数で呼び出され、トランジション効果を処理する displayable を返す呼び出し可能な python です。 2つのキーワード引数は次となります。 :
以前のスクリーンを表す displayable
新しいスクリーンを表す displayable
返される displayable はトランジションが実行されるべき秒数を与える delay
フィールドを持ちます。
例
init python:
def dissolve_or_pixellate(old_widget=None, new_widget=None):
if persistent.want_pixellate:
return pixellate(old_widget=old_widget, new_widget=new_widget)
else:
return dissolve(old_widget=old_widget, new_widget=new_widget)