Python による transform とトランジション link

Python は Ren'Py で使用するための新しい transform とトランジションの作成に使用出来ます。

Transform link

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)

ATL transform と等価な python は Transform オブジェクトです。

class Transform(child=None, function=None, **properties) link

transform は cropping や rotation, scaling, alpha-blending のような処理をその子に適用します。 transform オブジェクトはその子に適用する transform プロパティー に対応するフィールドを持ちます。

child

transform が適用される子

function

None を設定するか、 transform がレンダリングされるときに呼び出される関数を設定します。関数は3つの引数で呼び出されます。

  • transform オブジェクト

  • 秒数での出現時間軸

  • 秒数でのアニメーション時間軸

関数が秒数を返すなら、その秒数後再度呼び出され、 None なら次のインタラクション開始時に再度呼び出されます。

この関数は第一引数の Transform オブジェクトの変更の他には副作用を持つべきではなく、予測のためにいつどの数値で呼び出されるか分かりません。

追加引数は transform プロパティーを設定する値として取られます。

hide_request link

これは関数が呼び出されると True に設定され、 transform が飛ばされることを示します。

hide_response link

hide_request が True なら、これを False に設定して transform が飛ばされないようにできます。

set_child(child) link

新しい child でこのメソッドを呼び出すと、この transform の子を変更します。

update() link

コールバックメソッド以外から transform プロパティーが更新されるときにこれは呼び出されるべきで、変更が効果を持つと保証します。

トランジション link

トランジションとは 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)