Android link

Ren'Py はスマートフォンやタブレットなど、Android が動作するデバイスをサポートしています。これらの機器は Ren'Py の機能の 100% をサポートしてはいませんが、最小のコード修正でパッケージ化してこれらのデバイスに移植出来ます。

RAPT - Ren'Py Android Packaging Tool - は、Ren'Py とは別にダウンロードできるプログラムで、テストやリリースを目的とした Android パッケージを作成できます。

必要な文言 link

iOS で Ren'Py が使用しているライブラリのなかには LGPL ライセンス条件の元で許可されているものがあります。 Ren'Py を配布するためにはそのライセンス条項に沿う必要があります。あなたのアプリの説明に以下の文言を含めれば十分だと信じますが、確認のため弁護士と調査してください。

このプログラムには GNU Lesser General Public ライセンスを含む、いくつものライセンス下でライセンスされています。 https://www.renpy.org/l/license/ にはソフトウェアの完全なリストがあります。

操作方法の説明 link

Ren'Py のゲームが Android で起動された時、次のキーバインディングが有効です:

ホーム

Ren'Py を一時停止し、Android のホーム画面に戻ります。一時停止のときに、Ren'Py は自動的にゲームをセーブします。ユーザーがゲームを再開すると、必要に応じて自動的にセーブデータがロードされます。

メニュー

ゲームメニューの表示、またはゲームに戻ります。

戻る

ロールバックします。

ボリューム↑, ボリューム↓

Android の音量を調整します。

プラットフォームによる違い link

Ren'Py がサポートするプラットフォームには、タッチベースの Android とマウスベースのものという大きな違いがあります。Android のソフトウェア、ハードウェアによる違いは:

  • タッチスクリーンはマウスであるかのように扱われます。ただし、ユーザーがタッチスクリーンアクティビティーにタッチしたときのみマウスイベントが発生します。

  • 動画再生は Android デバイスでサポートされる形式のみ、フルスクリーンのみがサポートされます。サポートされるビデオ形式のリストは このページ です。

  • Ren'Py はデバイスの音量を変更出来ません。しかし、Android のボリュームボタンは通常通り動作します。

  • Ren'Py はボタンとイメージボタンで透明度を管理出来ません。(これはどのピクセルが透明かの決定をサポートするのに必要なディスプレイモードを持ついくつかのデバイスのパフォーマンス問題のためです。)

加えて、人手を必要とする変更作業が少しあります:

  • Android スマートフォンはコンピューターのモニターより小さいので、テキストサイズを大きくしなければなりません。

  • タッチ入力はマウス入力より不正確なので、ボタンを大きくしなければなりません。

これらの差異への対応を補助するために、 Android 用の Ren'Py は自動的にデバイスの画面のサイズと能力に合わせてスクリーンバージョンを選択します。詳細は スクリーンバージョン を参照してください。

テストとエミュレーション link

テスト目的で、 Ren'Py は 3 つの Android エミュレーションモードをサポートしています。これらはランチャーの Android スクリーンからアクセス出来ます。

Phone

このモードは Android Phone をエミュレートします。タッチエミュレーションはマウスを使用して処理されますが、マウスボタンが押された時のみです。エスケープキーはメニューボタンに、ページアップキーはバックボタンにマップされます。

タブレット

このモードは Android タブレットをエミュレートします。タッチエミュレーションはマウスを使用して処理されますが、マウスボタンが押された時のみです。エスケープキーはメニューボタンに、ページアップキーはバックボタンにマップされます。

テレビ / OUYA

このモードは OUYA のようにテレビベースの Android をエミュレートします。キーボードはリモートまたはコントローラーの入力をエミュレートし、矢印キーがナビゲーション、セレクトキーはエンター、エスケープキーはメニューボタンに、ページアップキーはバックボタンにマップされます。

このモードではテレビの非安全領域を示すオーバーレイも表示します。テレビの非安全領域はすべてのテレビでは表示されないかもしれません。

これらのエミュレーターはプロジェクトの簡易なテストで使用可能ですが、実際のハードウェアでテストすることが最善です。エミュレーターはユーザーの指の大きさのようなヒューマンエラーは扱いません。

orphan:

Android アプリケーションのビルド link

Ren'Py には パッケージ作成を中心に Android でのゲーム開発を補助するツールがあります。ここでは PC を使用して Android パッケージをビルドし、あなたのデバイスにアップロードします。そうすれば他の Android アプリと同様にそのゲームを実行可能です。正常に動作すればそのパッケージを Google Play やその他の app store にアップロード出来ます。

Android アプリのビルドは 4 つの手順を踏みます:

  1. Java Development Kit, Android USB ドライバーをダウンロードしてインストールします。 ( リンクは以下にあります。 )

  2. ランチャーを使用して Android SDK をインストールしてキーを作成します。

  3. ランチャーを使用して Android ビルドを設定します。

  4. ランチャーを使用して Android アプリをビルドします。

一旦これらの手順を終えたら、実行可能な Android パッケージが手に入ります。ゲームの設定を変更したり新しいゲームを設定するときは手順 3 を実行するだけで大丈夫です。ゲームの新しいビルドを実行するときは常に手順 4 を実行します。

Step 1: 依存関係のインストール link

パッケージをビルドする前に手動でダウンロードしてインストールしなければならないものが 3 つあります:

Java 開発環境 Java Development Kit (JDK) には RAPT で使用するツールのいくつかが含まれており、その中には鍵の生成と署名をするためのパッケージもあります。これは次からダウンロードできます:

開発者向けの JDK はユーザー向けの JRE とは異なることに注意してください。 Android パッケージの作成には JDK が必要です。

Android Device Drivers. Windows では、デバイスにアクセスするためのデバイスドライバーが欲しくなるかもしれませんが、必要ありません。 Android Device Drivers のリンクは以下にあります:

Linux や OS X では、デバイスドライバーは必要ないでしょう。デバイスにアクセスできない場合は、以下を読んでください:

しかし、最近のバージョンの Linux や OS X ではきちんと動作するはずです。

手順2: Android SDK と開発環境のセットアップ link

次のステップでは、Android SDK と開発環境全体のセットアップを行います。このステップは以下のことをします:

  • JDK が適切にインストールされていることの確認。

  • Apache Ant のインストール。

  • Android SDK のインストール。

  • Android SDK による開発パッケージの追加インストール。

  • キーを 1 つ作成してマーケットに置くパッケージにサインします。 ( android.keystore: これは RAPT ディレクトリーに生成されます。 )

このステップではインターネットアクセスが必要です。

この手順を処理するために、「 Install SDK & Create Keys 」 を Ren'Py ランチャーの Android 画面から選択します。

RAPT は何をしているかを報告し、ライセンスについての警告とともに表示し、ユーザーにキーを生成するか尋ねます。

警告

RAPT が生成したキーはスタンダードなパスフレーズで生成されます。実際にはキーツールを使用してあなた自身でサインしたキーを生成するべきです。

少なくとも、 android.keyring ファイルは安全な場所に保管しておくべきです。また、バックアップもとっておいてください。これはキーがないと生成したアプリケーションをアップロードできなくなるからです。

手順3: ゲームへの設定 link

パッケージをビルドする前に、 Ren'Py にゲームの Android ビルドに関する情報を与えなければなりません。このため Ren'Py ランチャーの Android 画面から「 Configure 」を選択してください。

この情報を変更する必要がある場合、(例えば、ゲームの新しいバージョンをリリースする場合)、設定コマンドを再度実行することができます。以前選択した内容は記憶されます。

手順4: パッケージのビルドとインストール link

最終的にパッケージをビルドし、インストール出来ます。これは Android デバイスとコンピューターを接続し、 Ren'Py ランチャーの Android 画面から「 Build & Install 」を選択することで処理されます。( 最初にインストールするときは Android デバイスはアプリのインストールのために、コンピューターを認証するよう求めるでしょう。 )

ゲームの apk ファイルを Android デバイスに手動でコピーしたいなら、 Ren'Py ランチャーの Android スクリーンから「 Build Package 」を選択後、 RAPT ディレクトリー直下の bin ディレクトリーを開いて mygame-release.apk をあなたのAndroidデバイスに手動でコピーしてください。そのゲームをインストールするためにためには Android デバイスでファイルマネージャアプリを使用してその .apk ファイルを見つけて開かなければなりません。

デバッグ出力の表示 link

デバッグ出力はターミナルから手動で adb コマンドを実行することで見られます。 SDK インストール後は adb コマンドが rapt-dir/android-sdk/platform-tools/adb で見つけられます。 ( Window では adb.exe を使用します。 )

Ren'Py からの出力を閲覧するためには以下のようなコマンドラインを使用してください。 :

adb logcat -s python:*

アイコンとプレスプラッシュ画像 link

これらはパッケージに使用されるアイコンやプレスプラッシュ画像を設定するための特別なファイルです。これらのファイルはベースディレクトリーに配置されます。

android-icon.png

Android ランチャーでこのアプリに使用されるアイコンです。このアイコンは自動的に適切なサイズにスケールダウンしますが 144x144 以上にしてください。

android-density-icon.png

存在するならこれは特定のピクセル密度のスクリーンで android-icon.png より優先して使用されます。これはpixel-perfect なアイコンを許可します。利用可能なスクリーンのピクセル密度と対応するアイコンのサイズは以下のとおりです。 :

  • ldpi (36x36)
  • mdpi (48x48)
  • hdpi (72x72)
  • xhdpi (96x96)
  • xxhdpi (144x144)
android-presplash.jpg

アプリのロード中に使用される画像です。これはモノカラーの境界で囲まれていなければなりません。その境界は画像一杯に拡大されます。

ouya-icon.png

OUYA コンソールで使用される 732x412 のアイコンです。

Google Play の APK 拡張ファイル link

Google Play をサポートするデバイス使用時 Ren'Py は任意で APK 拡張ファイルの使用をサポートします。 APK 拡張ファイルは Google Play が 50MB 以上のサイズのゲームをホスト可能にします。以下を参照してください。 :

APK 拡張ファイルについては、現在 2 GB の制限を持つメイン拡張ファイルのみがサポートされています。 APK 拡張ファイルが作成されると、全てのゲームファイルは APK 拡張ファイルに置かれます。 Ren'Py はこれらのファイルを使用します。

あなたのゲームで APK 拡張ファイルを使用するためには 2 つの変数を設定する必要があります。

build.google_play_key = "..." link

これはあなたのアプリに紐付けされた Google Play のライセンスキーで、あなたのアプリに紐付けされた Google Play developer console の「Services & APIs 」タブで見つけられます。 ( すべてのスペースと改行をキーから除去してください。 )

build.google_play_salt = ( ... ) link

これは 20 バイトのタプルであるべきで、各バイトは -128 から 128 までの整数で表現されます。これは Google Play からのライセンス情報を暗号化するために使用されます。

この変数の ( 安全ではないが ) 妥当な値です。 :

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)

RAPT は APK パッケージをインストールするときにそのデバイスに APK 拡張ファイルを設置します。

通常の処理では、そのアプリがインストールされると Google Play は自動的に APK 拡張ファイルをそのデバイスに設置します。