トランジションは with ステートメント やその他の場面で使え、場面の変化に効果を適用します。Ren'Py には定義済みのトランジションがあり、with ステートメントに直接指定できます。トランジションクラスを使って新しいトランジションを作成することもできます。
定義済みのトランジションは、with ステートメントに直接指定できます。例
show bg washington
with dissolve
dissolve
link0.5 秒かけて元の画面から新しい画面にディゾルブします。 Dissolve()
トランジションクラスのインスタンスです。
pixellate
link0.5 秒かけて元の画面をピクセレートアウトし、さらに 0.5 秒かけて新しい画面をピクセレートインします。Pixellate()
トランジションクラスのインスタンスです。
move
link0.5 秒かけて画像を新しい場所に移動します。 MoveTransition()
トランジションクラスのインスタンスです(*訳注 タグが同じ画像の移動に使用します)。
moveinright
linkAlso: moveinleft, moveintop, moveinbottom
0.5 秒かけて画像を画面の対応する方向から進入させます(*訳注 タグが同じ画像がすでにあるとトランジションしません)。
moveoutright
linkAlso: moveoutleft, moveouttop, moveoutbottom
0.5 秒かけて画像を画面の対応する方向へ退出させます。
ease
linkAlso: easeinright, easeinleft, easeintop, easeinbottom, easeoutright, easeoutleft, easeouttop, easeoutbottom
move- 類と同じですが、トランジションのはじめと終わりがコサインベースで遅くなります。
zoomin
link0.5 秒かけて画像をズームインで進入させます。
zoomout
link0.5 秒かけて画像をズームアウトで退出させます。
zoominout
link0.5 秒かけて画像のズームアウトによる退出と別の画像のズームインによる進入を同時に行います。
vpunch
link呼び出されたとき、画面を 4 分の 1 秒間垂直に揺らすトランジションです。
hpunch
link呼び出されたとき、画面を 4 分の 1 秒間水平に揺らすトランジションです。
blinds
link画面に1秒間続く垂直ブラインド効果を与えるトランジションです。 ImageDissolve()
トランジションクラスのインスタンスです。
squares
link画面に1秒間続くスクエア効果を与えるトランジションです。
wipeleft
linkAlso: wiperight, wipeup, wipedown
画面を指定の方向へワイプして更新します。 CropMove()
トランジションクラスのインスタンスです。
slideleft
linkAlso: slideright, slideup, slidedown
新しい画面を指定の方向からスライドインします。 CropMove()
トランジションクラスのインスタンスです。
slideawayleft
linkAlso: slideawayright, slideawayup, slideawaydown
古い画面を指定の方向へスライドアウトします。 CropMove()
トランジションクラスのインスタンスです。
pushright
linkAlso: pushleft, pushup, pushdown
指定の方向に新しい画面で以前の画面を押し出します。 PushMove()
トランジションクラスのインスタンスです。
irisin
linkAlso: irisout
新しい画面の表示や元の画面の非表示に矩形の絞りを使います。 CropMove()
トランジションクラスのインスタンスです。
トランジションクラスは、新しいトランジションを作成するために呼び出される関数です。これらの関数にパラメーターを渡して全てのトランジション群を作成できます。
トランジションクラスの呼び出しは、with ステートメントの一部としてなされます。例
# A very long dissolve.
with Dissolve(10.0)
同じトランジションクラスを何度も呼び出さなくて済むように、 define ステートメント を使って変数にトランジションを代入できます
define annoytheuser = Dissolve(1.0)
label start:
show bg washington
with annoytheuser
time_warp 引数は多くのトランジションクラスで受け取られ、 _warper
モジュールにある組み込みのワーパーを指定できます。 warpers を参照してください。
AlphaDissolve
(control, delay=0.0, alpha=False, reverse=False, **properties) link制御用の displayable (たいていはATL transform をならべたもの) を使ってあるスクリーンから別のスクリーンへトランジションするトランジションを返します。 transform は評価され、 transform が不透明な領域は新しい 画面が使われ、 transform が透明な領域は元の画面が使われます。
制御用の displayable です。
トランジションが終了までにかける時間です。
無視されます。
True なら、アルファチャンネルが反転されます。不透明な領域は元の画像が使われ、透明な領域は新しい画像が使われます。
ディゾルブが元のサイズの半分未満に縮小されると mipmap
スタイルプロパティーが True に設定されます。これにより mipmap が生成され、ディゾルブはより多くの GPU リソースを消費するようになりますが歪みは減少します。
ComposeTransition
(trans, before, after) link3 つ以内のトランジションから構成される新しいトランジションを返します。 before と after トランジションは、None でなければ、元の場面と新しい場面にそれぞれ適用されます。更新されたこれらの元の場面と新しい場面が trans トランジションに提供されます。
# Move the images in and out while dissolving. (This is a fairly expensive transition.)
define moveinoutdissolve = ComposeTransition(dissolve, before=moveoutleft, after=moveinright)
CropMove
(time, mode="slideright", startcrop=(0.0, 0.0, 0.0, 1.0), startpos=(0.0, 0.0), endcrop=(0.0, 0.0, 1.0, 1.0), endpos=(0.0, 0.0), topnew=True) link場面を切り抜いてスクリーンに配置するトランジションを返します。これは、場面の矩形のスライスに関わる様々なエフェクトを実装するのに使えます。
トランジションにかける時間です。
トランジションのモードの名前です。モードには三種類あります。ワイプ、スライド、その他です。カスタムモードを定義するために 「 custom 」 にもできます。
ワイプでは、画像は固定されたままで、トランジションが進むにつれて見える領域が増えていきます。例えば、左から右へのワイプである 「 wiperight 」 では、まず画像の左端がスクリーンの左端に現れ、画像の中央が現れ、最後には画像の右端がスクリーンの右端に現れます。ワイプには、その他 「 wipeleft 」,「 wipedown 」, そして 「 wipeup 」 があります。
スライドでは、画像が動きます。ですから 「slideright」では、画像は右端がスクリーンの左端から現れ出し、トランジションが進むにつれて右に進みます。スライドには、その他 「slideleft」、「slidedown」, そして 「slideup」 があります。
スライドアウェイは、元の画像が新しい画像の上を動きます。スライドアウェイには、「slideawayright」, 「slideawayleft」, 「slideawayup」, そして 「slideawaydown」 があります。
矩形の絞りを開く 「irisin」 と矩形の絞りを閉じる 「irisout」 もサポートしています。
次のパラメーターは、モードが 「custom」 であるときのみ考慮されます。ポジションはスクリーンのサイズに対する割合で、クロップは画像のサイズに対する割合です。ですから、(0.25, 0.0, 0.5, 1.0) のクロップは画像の中半分を切り抜きます。
手前の画像から最初に切り抜かれる矩形です。x, y, width, そして height からなる 4 要素のタプルです。
手前の画像が最初に描画されるスクリーン上の場所です。x, y からなる 2 要素のタプルです。
手前の画像から最後に切り抜かれる矩形です。x, y, width, そして height からなる 4 要素のタプルです。
手前の画像が最後に描画されるスクリーン上の場所です。x, y からなる 2 要素のタプルです。
True なら、切り取られてたり動いたりする場面 (1番手前に場面です) は新しい場面です。 False なら、元の場面です。
define wiperight = CropMove(1.0, "wiperight")
define wipeleft = CropMove(1.0, "wipeleft")
define wipeup = CropMove(1.0, "wipeup")
define wipedown = CropMove(1.0, "wipedown")
define slideright = CropMove(1.0, "slideright")
define slideleft = CropMove(1.0, "slideleft")
define slideup = CropMove(1.0, "slideup")
define slidedown = CropMove(1.0, "slidedown")
define slideawayright = CropMove(1.0, "slideawayright")
define slideawayleft = CropMove(1.0, "slideawayleft")
define slideawayup = CropMove(1.0, "slideawayup")
define slideawaydown = CropMove(1.0, "slideawaydown")
define irisout = CropMove(1.0, "irisout")
define irisin = CropMove(1.0, "irisin")
Dissolve
(time, alpha=False, time_warp=None, **properties) link元の場面から新しい場面にディゾルブするトランジションを返します。
ディゾルブにかける時間です。
無視されます。
タイムラインを調節する関数です。None を設定するか、0.0 から 1.0 の間の小数の時間を引数に受け取り、同じ範囲の数を返す関数を指定します。
ディゾルブが元のサイズの半分未満に縮小されると mipmap
スタイルプロパティーが True に設定されます。これにより mipmap が生成され、ディゾルブはより多くの GPU リソースを消費するようになりますが歪みは減少します。
Fade
(out_time, hold_time, in_time, *, color="#000") linkout_time 秒かけて color で満たされたスクリーンにフェードし、そのスクリーンを hold_time 秒保ち、それから in_time 秒かけて新しいスクリーンにフェードするトランジションを返します。
# Fade to black and back.
define fade = Fade(0.5, 0.0, 0.5)
# Hold at black for a bit.
define fadehold = Fade(0.5, 1.0, 0.5)
# Camera flash - quickly fades to white, then back to the scene.
define flash = Fade(0.1, 0.0, 0.5, color="#fff")
ImageDissolve
(image, time, ramplen=8, reverse=False, alpha=True, time_warp=None, **properties) linkディゾルブの過程を制御する画像を使い、元の場面から新しい場面にディゾルブするトランジションを返します。この画像の白いビクセルに対応する部分が最初にディゾルブし、黒いピクセルに対応する部分が最後にディゾルブします。
使用する制御画像です。 config.gl2 が True ならどんな displayable でもよく、そうでなければこれは画像ファイルまたは画像マニピュレータでなければなりません。この画像はディゾルブするスクリーンと同じ大きさでなければなならず、 reverse=True なら、完全に不透明であるべきです。
ディゾルブにかける時間です。
使用する ramp の長さです。これは 2 の整数乗でなければなりません。これがデフォルト値の 8 であるとき、白いピクセルが完全にディゾルブすると、一段階ごとに 8 シェード暗いピクセルのディゾルブインが進みます。
True なら、黒いピクセルの方が白いビクセルより先にディゾルブインします。
無視されます。
タイムラインを調節する関数です。None を設定するか、0.0 から 1.0 の間の小数の時間を引数に受け取り、同じ範囲の数を返す関数を指定します。
define circirisout = ImageDissolve("circiris.png", 1.0)
define circirisin = ImageDissolve("circiris.png", 1.0, reverse=True)
define circiristbigramp = ImageDissolve("circiris.png", 1.0, ramplen=256)
ディゾルブが元のサイズの半分未満に縮小されると mipmap
スタイルプロパティーが True に設定されます。これにより mipmap が生成され、ディゾルブはより多くの GPU リソースを消費するようになりますが歪みは減少します。
MoveTransition
(delay, enter=None, leave=None, old=False, layers=['master'], time_warp=None, enter_time_warp=None, leave_time_warp=None) link( 同じタグを持つ ) 画像の以前の場面と新しい場面の座標を補間するトランジションを返します。
補間が終わるまでの時間です。
None でない場合、その場面に新しく挿入される画像も移動されます。 enter には、その画像が開始位置に至るために適用される transform を指定します。
None でない場合、その場面から消される画像も移動されます。 leave には、その画像が最終的な位置に至るために適用される transform を指定します。
True なら以前の画像が新しいものに優先して使用されます。
トランジションが適用されるレイヤーのリストです。
補間に適用されるタイムワープ関数です。これは 0.0 から 1.0 までの数字を受け取り、同じ範囲の数字を返すはずです。
新しく挿入される画像に適用されるタイムワープ関数です。
消える画像に適用されるタイムワープ関数です。
MultipleTransition
(args) link次々に複数のトランジションを実行できるトランジションを返します。
奇数個のアイテムが格納された * リスト * です。1番目、3番目、その他の奇数番目のアイテムにはシーンを、偶数番目のアイテムにはトランジションを指定します。シーンとして指定できるものは次です。 :
displayable
False, トランジション前の場面を表す
True, トランジション後の場面を表す
ほぼ必ず最初の引数は False で最後の引数は True となります。
args 内のトランジションが順に適用されます。各トランジションは、その前に置かれたスクリーンから後に置かれたスクリーンにトランジションします。たとえば
define logodissolve = MultipleTransition([
False, Dissolve(0.5),
"logo.jpg", Pause(1.0),
"logo.jpg", dissolve,
True])
この例は、logo.jpg にディゾルブし、1 秒待ち、それから新しい場面にディゾルブします。
Pause
(delay) link新しいスクリーンを delay 秒間表示するだけのトランジションを返します。MultipleTransition の一部にするのに便利です。
Pixellate
(time, steps) link元のスクリーンをピクセレートアウトし、それから新しいスクリーンをピクセレートインするトランジションを返します。
トランジションにかける合計時間の秒数です。
それぞれの方向に行われる段階の数です。各段階ごとに、一つ前の段階の 2 倍のピクセルができます。よって、ピクセレートの 5 段階目では 32x32 のピクセルができます。
PushMove
(time, mode="pushright") link新しい場面で元の場面を "plush" するトランジションを返します。
トランジションにかける時間です。
これらには 4 つのモード "pushright", "pushleft", "pushup", "pushdown" があり、指定された方向に以前のスクリーン押し出します。
define pushright = PushMove(1.0, "pushright")
define pushleft = PushMove(1.0, "pushleft")
define pushup = PushMove(1.0, "pushup")
define pushdown = PushMove(1.0, "pushdown")
Swing
(delay=1.0, vertical=False, reverse=False, background="#000", flatten=True) link以前のシーンを画面端の軸中心に90度回転してフェードアウトし、さらにもう90度回転して新しいシーンをフェードインします。
トランジションにかける時間です。
True なら、シーンは x 軸中心に回転してピクセルは縦に動き、False なら、 y 軸中心に回転してピクセルは水平に動きます。
True なら回転は逆方向になります。
シーンが回転している間背景となる displayable です。
True なら、回転前にシーンは画面のサイズの画像に変換されます。画面に満たない画像が望ましくない作用をするならこれを使用してください。
トランジション族は、大量の関連するトランジション族を定義する関数群です。
define.
move_transitions
(prefix, delay, time_warp=None, in_time_warp=None, out_time_warp=None, old=False, layers=[u'master'], **kwargs) linkこれは、move トランジションや ease トランジションのようなトランジション属を定義します。指定の prefix に対して、次のトランジションを定義します
prefix- delay 秒かけて画像を新しい位置に動かすトランジションです。
prefixinleft, prefixinright, prefixintop, prefixinbottom - delay 時間かけて画像を新しい位置に動かすトランジションです。新しく表示される画像は適切な側から現れます。
prefixoutleft, prefixoutright, prefixouttop, prefixoutbottom - delay 時間かけて画像を新しい位置に動かすトランジションです。新しく隠蔽される画像は適切な側へ消えます。
タイムワープ関数です。これらは移動が完了するまでの時間に対する割合を表す 0.0 から 1.0 の小数を与えられ、線形移動が完了するまでの距離に対する割合を表す同じ範囲の小数値を返します。
これは、一定の速度では動かない画像を動かす関数を定義するのに使えます。
これら3つの引数は、スクリーンにある画像、新しく現れる画像、新しく消える画像に、それぞれ使われます。
True なら、トランジションは新しい displayable の代わりに元の displayable を動かします。
トランジションが適用されるレイヤーです。
# This defines all of the pre-defined transitions beginning
# with "move".
init python:
define.move_transitions("move", 0.5)
Ren'Py がトランジションを受け取る様々な場所で、レイヤー名をこのトランジションに対応付ける辞書を代わりに指定できます。この場合、 Ren'Py は対応するレイヤーにそれぞれのトランジションを適用します。
辞書が使用されると、通常行われるトランジション時のポーズは起きません。代わりに辞書を受け取ったステートメントは即座に制御を返し、次のインタラクションの開始時時に実行するようスケジュールされます。
これを使用して,台詞をスクリーンに表示したまま、マスターレイヤーにトランジションを実行できます。例えば、次のように記述してから
define dis = { "master" : Dissolve(1.0) }
次のようにすると :
show eileen happy
with dis
e "Hello, world."
ディゾルブ実行中テキストが表示され続けます。
辞書トランジションはすべてのトランジションをおける場所で使用できるわけではなく、レイヤーへのトランジションが可能な場面でのみ使用できます。 with
ステートメントや scene, show, hide ステートメントの with
節でも使用できます。 renpy.with_statement()
と renpy.transition()
の関数や Show()
, Hide()
アクション、トランジションを受ける様々な設定変数でも使用できます。辞書トランジションは ATL や ComposeTransition()
と MultipleTransition()
のようなレイヤーに対して動作しないものの内部では動作しないでしょう。
これは window auto
で起きるトランジションのような、自身でトランジションを起こす with ステートメントに良くない作用をするかもしれません。それには異なるレイヤーには2つ目の辞書トランジションを適用して対処できます。例えば、もし台詞ウィンドウの表示非表示時で唐突な点滅を目にするなら options.rpy を次のように変更することを考えてください。
define config.window_show_transition = { "screens" : Dissolve(.25) }
define config.window_hide_transition = { "screens" : Dissolve(.25) }
これは台詞ウィンドウがスクリーンレイヤーにあるために動作します。
ATL トランジション, Pythonを使用したトランジション : それぞれ ATL システムや Python を使用したトランジションの作成方法です。