配布物のビルド link

Ren'Py は 配布物のビルドをサポートしています。ランチャーの「 Build Distributions 」を選択することで、 Ren'Py は自分自身とそのプロジェクトをスキャンし、配布物に含まれるファイルを決定し、必要なアーカイブを生成してパッケージとアップデートファイルのビルドをします。

なにも設定しないと、 Ren'Py は以下の四種類のパッケージをビルドします。

All Desktop Platforms

Windows x86, Macintosh x86, Linux x86, Linux x86_64 をターゲートとする zip ファイルです。

Linux x86/x86_64

Linux x86 と Linux x86_64. をターゲットとする tar.bz2 ファイルです。

Macintosh x86

インテルプロセッサ上の Mac OS X をターゲットとする、マックアプリケーションを含む zip ファイルです。ゲームデータはアプリケーションに含まれ、ユーザーに対してひとつのファイルとして提供されます。

Windows x86

Windows x86 をターゲットとする zip ファイルです。

警告

Ren'Py が生成する zip と tar.bz2 ファイルは Ren'Py がLinux や Macintosh で起動するために必要なパーミッション情報を含んでいます。

Windows 上で zip ファイルを解凍して再圧縮すると、 Linux や Macintosh 上でのそのファイルの実行は未サポートになります。

基本設定 link

ビルド処理は build 名前空間にある変数の設定と関数の呼び出しによって設定出来ます。これは init python ブロック内から実行されなければなりません。

多くのゲームが使用するいくつかの基本的な変数と関数があります。

build.name = "..." link

これにを使用して設定されていなければ自動的に build.directory_name と build.executable_name を生成します。これにはスペースやコロン、セミコロンを含めるてはいけません。

build.directory_name = "..." link

アーカイブファイル内のディレクトリー名を決定するためにこれは使われます。例えばこれが 「 mygame-1.0 」に設定されると、プロジェクトの Linux バージョンは「 mygame-1.0-linux 」に解凍されます。

パッケージファイルが出力されるディレクトリー名を決定するためにもこれは使われます。例えば、 build.directory_name を mygame-1.0 に設定すると、ベースディレクトリーの親フォルダーに存在する mygame-1.0-dists にアーカイブファイルが出力されます。

この変数にはスペースやコロン、セミコロンなど特殊な文字は含めてはいけません。設定されていなければデフォルトで build.name ? config.version になります。

build.executable_name = "..." link

この変数はユーザーがゲームを開始するためにクリックする実行ファイルの名前を制御します。

この変数にはスペースやコロン、セミコロンなど特殊な文字を含めてはいけません。設定されないとデフォルトで build.name です。

例えば、これが 「 mygame 」に設定されると、ユーザーは Windows では mygame.exe, Linux では mygame.sh, Machintoshでは mygame.app を実行することになります。

特別なファイル link

ビルドをカスタマイズするために、ゲームのベースディレクトリーに含められる2つのファイルがあります。

icon.ico

Windows 上で使用されるアイコンです。

icon.icns

Macintosh 上で使用されるアイコンです。

これらのアイコンファイルは特別なフォーマットです。それらを変換するためにプログラムやウェブサービス ( http://iconverticons.com/ のような ) を使用する必要があるでしょう。

ファイルの分類と無視 link

ビルド処理は最初に Ren'Py 自身とゲームのファイルをファイルリストに分類することから始まります。これらのファイルリストはパッケージファイルに含まれます。

分類は buildclassify 関数で実行されます。これはファイル名のパターンと、スペースで区切られたファイルリストを取ります。パターンは最初から最後までマッチされますが、最初のマッチが優先されます。 ( より限定的なパターンが次に続いていた場合もです。 ) パターンには以下の特別な文字が含まれるでしょう。

/

ディレクトリーの区切り。

*

ディレクトリーの区切り以外のすべての文字にマッチします。

**

すべての文字にマッチします。

例:

**.txt

すべてのテキストファイルにマッチします。

game/*.txt

ゲームディレクトリーのテキストファイルにマッチします。

デフォルトではファイルが分類されるファイルリストが 7 つあります。 ( Ren'Py は本体のファイルをそれらのうち最初の 6 つに配置します。 )

all

これらのファイルはすべてのパッケージと Android ビルドに含まれます。

linux

これらのファイルは Linux をターゲットとするパッケージに含まれます。

mac

これらのファイルは Macintosh をターゲットとするパッケージに含まれます。

windows

これらのファイルは Winddows をターゲットとするパッケージに含まれます。

renpy

これらのファイルは Ren'Py エンジンファイルを必要とするパッケージに含まれます。 (Linux, Macintosh, Windows)

android

これらのファイルは Android ビルドに含まれます。

archive

これらのファイルは archive.rpa アーカイブに含まれます。

他に分類されていないファイルは「 all 」ファイルリストに入れられます。

配布物からファイルを除外するためには、それらをNoneまたは空の文字列に分類します。

# Include README.txt
build.classify("README.txt", "all")

# But exclude all other txt files.
build.classify("**.txt", None)

# Add png and jpg files in the game directory into an archive.
build.classify("game/**.png", "archive")
build.classify("game/**.jpg", "archive")

ドキュメント link

パターンを引数に build.documentation 関教を呼び出すとドキュメントとしてそれらのパターンにマッチするファイルをマークします。

例えば、ベースディレクトリーにあるすべてのテキストと html ファイルをドキュメントとしてマークする方法は次の通りです

build.documentation("*.txt")
build.documentation("*.html")

パッケージ link

Ren'Py のビルド処理に新しいタイプのパッケージを追加することも可能です。これはパッケージの名前と含めるべきファイルリストの文字列を引数に build. package 関数を呼び出して行います。

通常版のゲームとボーナス要素を追加したものをビルドしたいとすると、ボーナスファイルを「 bonus 」ファイルリストに分類して、次のように all-premium パッケージを宣言します。

build.package("all-premium", "zip", "windows mac linux all bonus")

サポートされるタイプは対応するフォーマットで生成される "zip" と "tar.bz2" 、ファイルを含むディレクトリーを作成する "directory" です。

アーカイブ link

Ren'Py はファイルのひとつのアーカイブへの統合をサポートしています。それほど安全ではありませんが、これは単純なコピーからファイルを守ります。

デフォルトでは「 archive 」ファイルリストに分類されたすべてのファイルは、 all ファイルリストに含まれる archive.rpa アーカイブに置かれます。

build.archive を呼び出すことで、新しいアーカイブと、それらが含まれるファイルリストを宣言できます。( all ファイルリスト以外を使うことはめったにありませんが) あるアーカイブを使って、ファイルをその名前のリストに分類します。

例えば、以下のコードは画像を image.rpa に、スクリプトを script.rpa に保存します

# Declare two archives.
build.archive("scripts", "all")
build.archive("images", "all")

# Put script files into the scripts archive.
build.classify("game/**.rpy", "scripts")
build.classify("game/**.rpyc", "scripts")

# Put images into the images archive.
build.classify("game/**.jpg", "images")
build.classify("game/**.png", "images")

空のアーカイブはビルドされません。

ただあなたのゲームをアーカイブすることについてちょっと考えてみてください。ファイルをオープンなままにしておけばあなたの頃にはなかった将来のプラットフォームで、誰かがゲームを実行する助けになるでしょう。

ビルド関数 link

build.archive(name, file_list=u'all') link

アーカイブの存在を宣言します。一つ以上のファイルが name に分類されると、 name.rpa がアーカイブとしてビルドされます。アーカイブは名前があるファイルリストに含まれます。

build.classify(pattern, file_list) link

pattern にマッチするファイルを file_list に分類する。

build.clear() link

ファイルを分類するために使用したパターンのリストをクリアします。

build.documentation(pattern) link

ドキュメントにマッチするパターンを宣言します。 mac アプリのビルドではこのパターンにマッチしたドキュメントは二度保存されます。 - 一度目は app パッケージ内に、二度目はその外部です。

build.executable(pattern) link

サポートするプラットフォーム ( Linux や Mac ) で実行可能ファイルとしてマークするパターンを追加します。

build.package(name, format, file_lists, description=None, update=True, dlc=False, hidden=False) link

パッケージツールにビルドされるパッケージを宣言します。

name

パッケージ名

format

パッケージのフォーマットで、スペースで区切られた以下のリストの文字列です。 :

zip

zip ファイル

tar.bz2

tar.bz2 ファイル

directory
A directory containing the files.
dmg
A Macintosh DMG containing the files.
app-zip

Macintosh 用のアプリケーションを含む zip ファイル

app-directory

Macintosh 用のアプリケーションを含むディレクトリー

app-dmg

dmg を含む Machintosh ドライブ

文字列が空だと何もビルドされません。

file_lists

パッケージに含まれるファイルリストのリスト

description

ビルドするパッケージに対する任意の説明文です。

update

True ならこのパッケージ向けのアップデータもビルドされます。

dlc

True の場合、 update ディレクトリーは無しとなり、 zip や tar.bz2 ファイルが単独の DLC モードでビルドされます。

hidden

True ならこれはランチャーのパッケージリストでは非表示になります。

高度な設定 link

以下の変数はビルドプロセスのさらなる機能を提供します。

build.exclude_empty_directories = True link

True の場合は空のディレクトリー (アーカイビングの時点で空になるディレクトリーを含む) が生成されたパッケージから除外され、 False の場合は空のディレクトリーも含まれます。

build.destination = "{directory_name}-dists" link

アーカイブファイルが出力されるディレクトリーへのパスを与えます。これは絶対または相対パスです。相対パスはプロジェクトのディレクトリーから始まります。

以下の値は python のフォーマット構文を使用して代入されます。

{directory_name}

build.directory_name の値です。

{executable_name}

build.executable_name の値です。

{version}

build.version の値です。

build.allow_integrated_gpu = True link

組み込みと外付けの GPU が両方あるプラットフォームでは、組み込みの GPU で起動するようにします。現在これは Mac OS X でのみサポートされます。

build.include_old_themes = True link

True なら、Ren'Py 6.99.9以前に存在していたテーマのサポートに必要なファイルがビルドに含まれます。False ならそのようなファイルは除外されます。

gui.init() が呼び出されるとこれは False に設定されます。