ムービー link

Ren'Py は内部の libav を使用して以下のビデオコーデックを使用したムービーの再生が可能です。 :

  • VP9
  • VP8
  • Theora
  • MPEG 4 part 2 (including Xvid and DivX)
  • MPEG 2
  • MPEG 1

以下のオーディオコーデックも使用可能です。 :

  • OPUS
  • Vorbis
  • MP3
  • MP2
  • PCM

以下のフォーマットのコンテナが使用可能です。 :

  • WebM
  • Matroska
  • Ogg
  • Avi
  • 種々の MPEG ストリーム

(Note that using some of these formats may require patent licenses. When in doubt, and especially for commercial games, we recommend using VP9, VP8, or Theora, Opus or Vorbis, and WebM, Matroska, or Ogg.)

Movies can be displayed fullscreen, or in a displayable. Fullscreen movies are the more efficient.

フルスクリーンムービー link

The easiest and most efficient way to display a movie fullscreen is to use the renpy.movie_cutscene function. This function displays the movie fullscreen until it either ends, or the player clicks to dismiss it.

$ renpy.movie_cutscene("On_Your_Mark.webm")

Android や iOS のようなモバイルでは、 config.hw_video が True ならハードウエアデコードが使用されます。これはデフォルトで True です。これは一般的により高速ですが、サポートされるムービーフォーマットのリストはプラットフォームに依存します。

Movie Displayables と Movie Sprites link

Movie displayable を使用して Ren'Py が displayable を表示可能な場所ならどこにでもムービーが表示出来ます。例えばメニューや背景としてムービーが表示出来ます。

Movie displayable を使用して 2 つのムービーからなる Movie sprite も定義出来ます。第一ムービーはスプライトの色を与えます。第二ムービーは白が完全に不透明で黒が完全に透明となり、ムービーをマスクするアルファチャンネルを与えます。

Movie displayable で再生されるムービーは自動的にループされます。

ムービーを表示する3つの重要なパラメーターがあり、2つは常に与えなければいけません。

channel

ムービーが再生されるチャンネル名の文字列

これは常に与えられ、デフォルトの "movie" のままではならず、オーディオのチャンネル名でもいけません。同時にひとつのムービーのみが指定されたチャンネルで表示されるように名前が選ばれるべきです。指定されたチャンネルは未登録なら自動的に renpy.music.register_channel() を使用して登録されます。

play

再生するムービーファイルの文字列です。

これは常に与えなければいけません。

mask

アルファマスクとして使用するムービーファイルの文字列です。

Movie sprite の定義例です。

image eileen movie = Movie(channel="eileen", play="eileen_movie.webm", mask="eileen_mask.webm")

movie sprite は show statement で表示され、自動的に再生が開始します。また非表示になると自動的に停止します。

show eileen movie

e "I'm feeling quite animated today."

hide eileen

e "But there's no point on wasting energy when I'm not around."

初期化時に作成されていれば Movie displayable もスクリーンの一部として使用可能です。 (例えば image ステートメントの一部

image main_menu = Movie(channel="main_menu", play="main_menu.ogv")

screen main_menu:
    add "main_menu"
    textbutton "Start" action Start() xalign 0.5 yalign 0.5

複数の movie displayable や sprite がひとつのスクリーンに同時に表示可能ですが、システムのパフォーマンスに依存し、同じフレームレートを共有します。異なるフレームレートのムービーを表示したときの Ren'Py の振る舞いは未定義ですが、明らかなフレームレートの低下が予測されます。

Python Functions link

renpy.movie_cutscene(filename, delay=None, loops=0, stop_music=True) link

これは MPEG-1 のカットシーンを指定された秒数表示します。ユーザーはクリックでカットシーンを停止出来ます。オーバーレイ、アンダーレイはカットシーン中無効化されます。

filename

MPEG-1 のムービーを含むファイル名

delay

カットシーンが終了するまでの秒数で、通常はムービーの長さです。 None なら時間は ( loops + 1) x ( ムービーの流さ ) で算出されます。 -1 ならユーザーがクリックするまで待ちます。

loops

ループする回数です。 -1 なら永遠にループします。

ムービーがユーザーにより停止されたら True 、停止せずに指定した時間が経過したら False を返します。

Movie(fps=24, size=None, channel='movie', play=None, mask=None, mask_channel=None, image=None, **properties) link

これは現在の ムービーを表示する displayable です。

fps

ムービーが表示されるフレームレートです。 ( これは現在は無視されますが、引数は互換性のために残されています。フレームレートは自動的に決定されます。 )

size

これにはムービーの幅と高さのタプルか、自動的に再生するムービーのサイズに調整するなら None を指定します。 (None なら displayable はムービーが再生されていないとき (0, 0) になります。 ) )

channel

このムービーに関連づけられたオーディオチャンネルです。ムービーファイルがそのチャンネルで再生されると、この Movie displayable で表示されます。これが指定されないと、 play が渡され、チャンネル名が自動で選ばれます。

play

ムービーファイルのパスです。ムービーファイルはムービーが表示されると自動的に channel チャンネルで再生され、非表示になると停止します。

mask

この displayable のアルファチャンネルとして使用されるムービーファイルのパスです。ムービーファイルはムービーが表示されると自動的に movie_channel チャンネルで再生され、非表示になると停止します。

mask_channel

アルファマスクムービーが再生されるチャンネルです。指定されないと、 デフォルトで channel`_mask が使用されます。 (例えば、`channel が "sprite" なら、 mask_channel はデフォルトで "sprite_mask" になります。)

image

play が指定されたが、参照するファイルがないとき表示する画像です。 (例えば、これを使用して movie sprites を使用しないモバイル用のバージョンを作成出来ます。) ビデオがシステムに対して重すぎる場合、ユーザーが設定からこの画像を選択することも可能です。

ムービーが再生さてないとき、この displayable は透明になります。