トランジション link

トランジションは with ステートメント やその他の場面で使え、場面の変化に効果を適用します。Ren'Py には定義済みのトランジションがあり、with ステートメントに直接指定できます。トランジションクラスを使って新しいトランジションを作成することもできます。

定義済みのトランジション link

定義済みのトランジションは、with ステートメントに直接指定できます。例

show bg washington
with dissolve
fade link

0.5 秒かけてフェードで暗転し、さらに 0.5 秒かけて新しい画面にフェードします。 Fade() トランジションクラスのインスタンスです。

dissolve link

0.5 秒かけて元の画面から新しい画面にディゾルブします。 Dissolve() トランジションクラスのインスタンスです。

pixellate link

0.5 秒かけて元の画面をピクセレートアウトし、さらに 0.5 秒かけて新しい画面をピクセレートインします。Pixellate() トランジションクラスのインスタンスです。

move link

0.5 秒かけて画像を新しい場所に移動します。 MoveTransition() トランジションクラスのインスタンスです(*訳注 タグが同じ画像の移動に使用します)。

moveinright link

Also: moveinleft, moveintop, moveinbottom

0.5 秒かけて画像を画面の対応する方向から進入させます(*訳注 タグが同じ画像がすでにあるとトランジションしません)。

moveoutright link

Also: moveoutleft, moveouttop, moveoutbottom

0.5 秒かけて画像を画面の対応する方向へ退出させます。

ease link

Also: easeinright, easeinleft, easeintop, easeinbottom, easeoutright, easeoutleft, easeouttop, easeoutbottom

move- 類と同じですが、トランジションのはじめと終わりがコサインベースで遅くなります。

zoomin link

0.5 秒かけて画像をズームインで進入させます。

zoomout link

0.5 秒かけて画像をズームアウトで退出させます。

zoominout link

0.5 秒かけて画像のズームアウトによる退出と別の画像のズームインによる進入を同時に行います。

vpunch link

呼び出されたとき、画面を 4 分の 1 秒間垂直に揺らすトランジションです。

hpunch link

呼び出されたとき、画面を 4 分の 1 秒間水平に揺らすトランジションです。

blinds link

画面に1秒間続く垂直ブラインド効果を与えるトランジションです。 ImageDissolve() トランジションクラスのインスタンスです。

squares link

画面に1秒間続くスクエア効果を与えるトランジションです。

wipeleft link

Also: wiperight, wipeup, wipedown

画面を指定の方向へワイプして更新します。 CropMove() トランジションクラスのインスタンスです。

slideleft link

Also: slideright, slideup, slidedown

新しい画面を指定の方向からスライドインします。 CropMove() トランジションクラスのインスタンスです。

slideawayleft link

Also: slideawayright, slideawayup, slideawaydown

古い画面を指定の方向へスライドアウトします。 CropMove() トランジションクラスのインスタンスです。

pushright link

Also: pushleft, pushup, pushdown

指定の方向に新しい画面で以前の画面を押し出します。 PushMove() トランジションクラスのインスタンスです。

irisin link

Also: irisout

新しい画面の表示や元の画面の非表示に矩形の絞りを使います。 CropMove() トランジションクラスのインスタンスです。

トランジションクラス link

トランジションクラスは、新しいトランジションを作成するために呼び出される関数です。これらの関数にパラメーターを渡して全てのトランジション群を作成できます。

トランジションクラスの呼び出しは、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 が透明な領域は元の画面が使われます。

control

制御用の displayable です。

delay

トランジションが終了までにかける時間です。

alpha

無視されます。

reverse

True なら、アルファチャンネルが反転されます。不透明な領域は元の画像が使われ、透明な領域は新しい画像が使われます。

ディゾルブが元のサイズの半分未満に縮小されると mipmap スタイルプロパティーが True に設定されます。これにより mipmap が生成され、ディゾルブはより多くの GPU リソースを消費するようになりますが歪みは減少します。

ComposeTransition(trans, before, after) link

3 つ以内のトランジションから構成される新しいトランジションを返します。 beforeafter トランジションは、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

場面を切り抜いてスクリーンに配置するトランジションを返します。これは、場面の矩形のスライスに関わる様々なエフェクトを実装するのに使えます。

time

トランジションにかける時間です。

mode

トランジションのモードの名前です。モードには三種類あります。ワイプ、スライド、その他です。カスタムモードを定義するために 「 custom 」 にもできます。

ワイプでは、画像は固定されたままで、トランジションが進むにつれて見える領域が増えていきます。例えば、左から右へのワイプである 「 wiperight 」 では、まず画像の左端がスクリーンの左端に現れ、画像の中央が現れ、最後には画像の右端がスクリーンの右端に現れます。ワイプには、その他 「 wipeleft 」,「 wipedown 」, そして 「 wipeup 」 があります。

スライドでは、画像が動きます。ですから 「slideright」では、画像は右端がスクリーンの左端から現れ出し、トランジションが進むにつれて右に進みます。スライドには、その他 「slideleft」、「slidedown」, そして 「slideup」 があります。

スライドアウェイは、元の画像が新しい画像の上を動きます。スライドアウェイには、「slideawayright」, 「slideawayleft」, 「slideawayup」, そして 「slideawaydown」 があります。

矩形の絞りを開く 「irisin」 と矩形の絞りを閉じる 「irisout」 もサポートしています。

次のパラメーターは、モードが 「custom」 であるときのみ考慮されます。ポジションはスクリーンのサイズに対する割合で、クロップは画像のサイズに対する割合です。ですから、(0.25, 0.0, 0.5, 1.0) のクロップは画像の中半分を切り抜きます。

startcrop

手前の画像から最初に切り抜かれる矩形です。x, y, width, そして height からなる 4 要素のタプルです。

startpos

手前の画像が最初に描画されるスクリーン上の場所です。x, y からなる 2 要素のタプルです。

endcrop

手前の画像から最後に切り抜かれる矩形です。x, y, width, そして height からなる 4 要素のタプルです。

endpos

手前の画像が最後に描画されるスクリーン上の場所です。x, y からなる 2 要素のタプルです。

topnew

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

元の場面から新しい場面にディゾルブするトランジションを返します。

time

ディゾルブにかける時間です。

alpha

無視されます。

time_warp

タイムラインを調節する関数です。None を設定するか、0.0 から 1.0 の間の小数の時間を引数に受け取り、同じ範囲の数を返す関数を指定します。

ディゾルブが元のサイズの半分未満に縮小されると mipmap スタイルプロパティーが True に設定されます。これにより mipmap が生成され、ディゾルブはより多くの GPU リソースを消費するようになりますが歪みは減少します。

Fade(out_time, hold_time, in_time, *, color="#000") link

out_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

ディゾルブの過程を制御する画像を使い、元の場面から新しい場面にディゾルブするトランジションを返します。この画像の白いビクセルに対応する部分が最初にディゾルブし、黒いピクセルに対応する部分が最後にディゾルブします。

image

使用する制御画像です。 config.gl2 が True ならどんな displayable でもよく、そうでなければこれは画像ファイルまたは画像マニピュレータでなければなりません。この画像はディゾルブするスクリーンと同じ大きさでなければなならず、 reverse=True なら、完全に不透明であるべきです。

time

ディゾルブにかける時間です。

ramplen

使用する ramp の長さです。これは 2 の整数乗でなければなりません。これがデフォルト値の 8 であるとき、白いピクセルが完全にディゾルブすると、一段階ごとに 8 シェード暗いピクセルのディゾルブインが進みます。

reverse

True なら、黒いピクセルの方が白いビクセルより先にディゾルブインします。

alpha

無視されます。

time_warp

タイムラインを調節する関数です。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

( 同じタグを持つ ) 画像の以前の場面と新しい場面の座標を補間するトランジションを返します。

delay

補間が終わるまでの時間です。

enter

None でない場合、その場面に新しく挿入される画像も移動されます。 enter には、その画像が開始位置に至るために適用される transform を指定します。

leave

None でない場合、その場面から消される画像も移動されます。 leave には、その画像が最終的な位置に至るために適用される transform を指定します。

old

True なら以前の画像が新しいものに優先して使用されます。

layers

トランジションが適用されるレイヤーのリストです。

time_warp

補間に適用されるタイムワープ関数です。これは 0.0 から 1.0 までの数字を受け取り、同じ範囲の数字を返すはずです。

enter_time_warp

新しく挿入される画像に適用されるタイムワープ関数です。

leave_time_warp

消える画像に適用されるタイムワープ関数です。

MultipleTransition(args) link

次々に複数のトランジションを実行できるトランジションを返します。

args

奇数個のアイテムが格納された * リスト * です。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

元のスクリーンをピクセレートアウトし、それから新しいスクリーンをピクセレートインするトランジションを返します。

time

トランジションにかける合計時間の秒数です。

steps

それぞれの方向に行われる段階の数です。各段階ごとに、一つ前の段階の 2 倍のピクセルができます。よって、ピクセレートの 5 段階目では 32x32 のピクセルができます。

PushMove(time, mode="pushright") link

新しい場面で元の場面を "plush" するトランジションを返します。

time

トランジションにかける時間です。

mode

これらには 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度回転して新しいシーンをフェードインします。

delay

トランジションにかける時間です。

vertical

True なら、シーンは x 軸中心に回転してピクセルは縦に動き、False なら、 y 軸中心に回転してピクセルは水平に動きます。

reverse

True なら回転は逆方向になります。

background

シーンが回転している間背景となる displayable です。

flatten

True なら、回転前にシーンは画面のサイズの画像に変換されます。画面に満たない画像が望ましくない作用をするならこれを使用してください。

トランジション族 link

トランジション族は、大量の関連するトランジション族を定義する関数群です。

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 時間かけて画像を新しい位置に動かすトランジションです。新しく隠蔽される画像は適切な側へ消えます。

time_warp, in_time_warp, out_time_warp

タイムワープ関数です。これらは移動が完了するまでの時間に対する割合を表す 0.0 から 1.0 の小数を与えられ、線形移動が完了するまでの距離に対する割合を表す同じ範囲の小数値を返します。

これは、一定の速度では動かない画像を動かす関数を定義するのに使えます。

これら3つの引数は、スクリーンにある画像、新しく現れる画像、新しく消える画像に、それぞれ使われます。

old

True なら、トランジションは新しい displayable の代わりに元の displayable を動かします。

layers

トランジションが適用されるレイヤーです。

# This defines all of the pre-defined transitions beginning
# with "move".
init python:
    define.move_transitions("move", 0.5)

辞書トランジション link

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) }

これは台詞ウィンドウがスクリーンレイヤーにあるために動作します。

次も参照してください。 link

ATL トランジション, Pythonを使用したトランジション : それぞれ ATL システムや Python を使用したトランジションの作成方法です。