ムービー 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 ストリーム

( これらのフォーマットのうちいくつかは特許権使用許諾を必要とすることに注意してください。疑わしい場合、特に商業ゲームであれば VP9 や VP8, Theora, Opus, Vorbis, WebM, Matroska, Ogg の使用を勧めます。 )

ムービーは画面全体に、あるいは displayable 内に表示出来ます。フルスクリーンムービーはより効率的です。

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

フルスクリーンののムービーを表示する最も簡単で効率的な方法は renpypy.movie_cutscene 関数の使用です。この関数はムービーが終わるかユーザーがクリックするまでムービーを表示します。

$ 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