Python による transform とトランジション link
Ren'Py で使用するための新しい transform とトランジションの作成に Python を使用出来ます。
Transform link
詳細: 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 です。
- class Transform(child=None, function=None, **properties) link
transform は cropping や rotation, scaling, alpha-blending のような処理をその子に適用します。 transform オブジェクトはその子に適用する transform プロパティー に対応するフィールドを持ちます。
- child
transform が適用される子
- function(trans, st, at, /) int | None link
None を設定するか、 transform がレンダリングされるときに呼び出される関数を設定します。関数は3つの引数で呼び出されます。 :
transform オブジェクト
秒数での出現時間軸
秒数でのアニメーション時間軸
関数が秒数を返すなら、その秒数後再度呼び出され、 None なら次のインタラクション開始時に再度呼び出されます。
この関数は予測のためにいつどの数値で呼び出されるか分からないので、第一引数の Transform オブジェクトの変更の他には副作用を持つべきではありません。
追加のキーワード引数はその transform プロパティーに設定される値となります。 transform が描画されるたびにこれらの指定の transform プロパティーは設定されるので、それらの transform プロパティーは Transform オブジェクトが作成された後は変更されないでしょう。しかし、他の transform プロパティーに対応するフィールドは、 function パラメータとして渡される関数内や
update()
メソッドを呼び出す直前で設定して、変更できます。- hide_request link
これは関数が呼び出されると True に設定され、 transform が非表示されていることを示します。
- hide_response link
hide_request が True なら、これを False に設定して transform が非表示されないようにできます。
- set_child(child) link
新しい child でこのメソッドを呼び出すと、この transform の子を変更します。
- update() link
function 引数として渡された関数以外から transform プロパティーフィールドが更新されるときには、これを呼び出して変更を確実に反映する必要があります。
トランジション link
詳細: トランジション
詳細: ATL トランジション
トランジションとは 2 つのキーワード引数で呼び出され、トランジション効果を処理する displayable を返す呼び出し可能な python です。 2つのキーワード引数は次となります。 :
- old_widget
以前のスクリーンを表す displayable
- new_widget
新しいスクリーンを表す 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)