はじめに

Android 1.6 以上で動作するノベルゲームエンジン ONScripter on Android のアプリ(apk)とソース一式を配布しています。

対象言語アプリ
日本語ゲームONScripter-20120513-debug.apk
英語ゲームONScripter-20110416-1byte-debug.apk
  (ENABLE_1BYTE_CHAR and FORCE_1BYTE_CHAR are enabled)

Android マーケットからのゲームデータ(最大 2GB)ダウンロード機能を備えており、ゲームデータの容量が大きくてもアンドロイドマーケットで公開可能な有償・無償のノベルゲームアプリを作成することができます。ゲームデータの容量が少ない場合はゲームデータをアプリに内蔵することもできます。また、自身で用意したサイトからゲームデータをダウンロードすることもできます。

使用するにあたって私に連絡する必要はありません。また、使用者に対して私から何か要求することもありません。自由に使ってください。

使用作品例:かえると剣鬼 参 (ゲームデータ容量 92MB)

NOeSIS01 NOeSIS01
解像度 960x544 でのスクリーンショット (半分に縮小)

使用作品例:キミはキメラR (ゲームデータ容量 34MB)

NOeSIS01 NOeSIS01
HTC Desire (解像度 800x480) でのスクリーンショット (半分に縮小)

使用作品例:NOeSIS -嘘を吐いた記憶の物語- (ゲームデータ容量 146MB)

NOeSIS01 NOeSIS01
HTC Desire (解像度 800x480) でのスクリーンショット (半分に縮小)

使用作品例:NOeSIS 体験版 (ゲームデータ容量 100MB 超)

NOeSIS NOeSIS
HTC Desire (解像度 800x480) でのスクリーンショット (半分に縮小)

アプリの使用方法

「ONScripter on Android」でパソコン用ノベルゲームをスマホでプレイ」の紹介記事が分かりやすいです。当サイトで配布するアプリではゲームデータを別途用意して起動時に選択しますが、自作のゲームデータを起動する専用アプリを開発することもできます。

インストール方法

上のアプリを本体(実機)にダウンロードして、ESファイルエクスプローラーなどからファイルをタップしてインストールしてください。

本体外からインストールする場合は、USB ケーブルで本体と接続した後、以下のようにインストールしてください。

> adb install -r ONScripter-xxxxxxxx-debug.apk

インストールに成功すると ONScripter のアイコンがメニューに表示されます。

アクセス権限

必要最低限の以下のアクセス権限を要求します。

システムツール:端末のスリープを無効にする
ゲーム実行中に端末がスリープしないように要求します。
ストレージ:SDカードのコンテンツを修正/削除する
ゲームデータやセーブデータをSDカードに書き込むために要求します。
ネットワーク通信:完全なインターネットアクセス
専用アプリを開発して初回にゲームデータをダウンロードする場合に必要になります(それ以外の用途には使用しません)。当サイトで配布するアプリでは要求しません。
ネットワーク通信:マーケットライセンスの確認
Android マーケットからゲームデータをダウンロードする場合に必要になります。当サイトで配布するアプリでは要求しません。

ゲームデータの配置方法

SD カードの直下に ons という名前のディレクトリを作成し、その下にゲームごとにディレクトリ(名前は任意)を作成して、さらにその下にゲームの構成ファイルをコピーしてください。nscript.dat, arc.nsa, default.ttf の3つは最低必要になると思います。

/sdcard/ons/game1/nscript.dat (ゲームの構成ファイル)
                 /arc.nsa     (ゲームの構成ファイル)
                 /default.ttf (自分で用意するフォントファイル)
                 /その他のゲームの構成ファイル (基本的に全てコピー)
/sdcard/ons/game2/...
  • ゲームの構成ファイル(arc.nsa など) は解像度変更などはせずに元のファイル(サブディレクトリを含む)をそのままコピーしてください。
  • TrueType font による文字表示を参考にフォントファイルを default.ttf という名前で同じ場所に置いてください。
    例えばM+とIPAの合成フォントの Migu 2M の太字 (Migu-2M-bold.ttf) が、きれいな太字で見やすくお勧めです。

実行方法

ONScripter のアイコンをタップして ONScripter を起動してください。最初にゲーム選択画面が表示されるので、上で準備をしたディレクトリを選択してください。

  • Disable rescale をチェックすると、アーカイブ内の画像の大きさを画面に合わせて自動的に調整する機能が無効になります。

ボタン

ボタン機能
MENUメニュー表示 (次項で説明)
BACKマウス右クリック (ESC キー)
ボリューム(+/-)ボリューム変更
HOME実行をバックグラウンドに移し中断
(ONScripter のアイコンをタップすると再開します)
右クリック(ソフトウェアボタン)マウス右クリック (ESC キー)
左クリック(ソフトウェアボタン)マウス左クリック (Enter キー)
上ホイール(ソフトウェアボタン)マウス上ホイール
下ホイール(ソフトウェアボタン)マウス下ホイール
次のボタン(ソフトウェアボタン)次の選択ボタンにカーソルを移動
前のボタン(ソフトウェアボタン)前の選択ボタンにカーソルを移動
項目機能
オートモードオートモード開始 (a キー)
スキップ次の選択肢まで飛ばすモードに切り替え
速度切替瞬間表示・通常表示の切り替え
設定
  • ボタンの表示・非表示の切り替え
  • バージョン表示
終了ゲームの終了 (SDL_QUIT を発行)

制限・注意事項

  • ディスプレイの解像度に合うようにゲーム画面の解像度が自動調整されます。色深度は 32bit です。
  • 電源ボタンを押すと画面がオフになり音楽は音量0で再生されるようになります。もう一度電源ボタンを押すとゲームを再開します。
  • HOME ボタンを押すと処理を中断して他のアプリを実行できるようになります。この状態では、オートモードにしていても自動的に進行せず、また音楽は音量0で再生されています。アイコンをタップするとゲームを再開します。
  • ディスプレイ上でゲーム画面外の右側(もしくは下側)に余裕がある場合は、上の表にあるソフトウェアボタンが配置されます。
  • 別途動画プレーヤー(MX 動画プレーヤー など)をインストールすることによって動画を再生できます。指定された動画を再生できるプレーヤーが無い場合はそのまま先に進みます。
  • 起動オプションの --force-button-shortcut を有効にした状態で起動します。
  • 使用する音楽のサンプリング周波数は 22.05KHz か 44.1KHz のどちらかにしてください。(混在可)MP3, Ogg Vorbis, WAV をサポートしています。
  • 画像は BMP, JPEG, PNG, GIF をサポートしています。

アプリの開発方法

開発の流れ

  1. 製作 NScripter (2011/12/15)(解説)を使用して Windows PC でゲームを製作します。以下の入門講座が参考になると思います。
  2. 動作確認 Android 実機と PC を USB ケーブルで接続して製作したゲームデータを実機にコピーし、当サイトで配布しているアプリを使用して動作を確認します。問題があれば Windows PC に戻って修正します。
  3. アプリの作成 ゲームが完成したら、Windows でのアプリの作成方法を参考にインストール可能な専用アプリを作成します。
  4. 公開 アンドロイドマーケット、自身のウェブページ、電子媒体などでアプリを公開します。

Windows でのアプリの作成方法

ソフトウェアの導入

長方形内のパスは例です。必ずしもこのとおりにする必要はありません。ただし、ディレクトリ名やファイル名に 2byte 文字(漢字やかな)やスペースが含まれないようにしてください。

  1. Cygwin をインストールします。
    • インストール方法は「cygwin」「インストール」で検索してください。
    • デフォルトパッケージに加えて Devel→make を入れてください。
  2. Download the Android SDKの SDK (例 installer_r18-windows.exe) をインストールします。
    c:\src\android-sdk\...
    
    また SDK インストール後に、SDK Manager.exe を起動して以下のパッケージをインストールしてください。
    • Android 4.0.3 (API 15)
      • SDK Platform
    • Android 2.2 (API 8)
      • SDK Platform
    • Extras
      • Google Play Licesing package
  3. Download the Android NDKの最新の NDK (例 android-ndk-r7c-windows.zip) を適当な場所に展開します。
    c:\src\android-ndk-r7c\...
    
  4. ライブラリと周辺プログラム一式 (SDK)から onscripter_android.tar.gz をダウンロードして適当な場所に展開します。
    c:\src\onscripter_android\jni\...
    c:\src\onscripter_android\src\...
    c:\src\onscripter_android\...
    
  5. ONScripter のページから最新の ONScripter をダウンロードして onscripter_android/jni/application/onscripter-xxxxxxxx に展開します。
    c:\src\onscripter_android\jni\application\onscripter-20120310\ONScripter.h
    c:\src\onscripter_android\jni\application\onscripter-20120310\ONScripter.cpp
    c:\src\onscripter_android\jni\application\onscripter-20120310\...
    
  6. Java SE Downloads から JDK Download をクリックし、JAVA SE Development Kit を(例 Windows x86 (32-bit) の場合は jdk-7u3-windows-i586.exe)をダウンロードしてインストールします。
    c:\Program Files\Java\jdk1.7.0_03\...
    
    • 環境変数 JAVA_HOME を設定します。 (例 c:\Program Files\Java\jdk1.7.0_03)
  7. Apache Ant からバイナリ(例 apache-ant-1.8.2-bin.zip)をダウンロードして適当な場所に展開します。
    c:\src\apache-ant-1.8.2-bin\...
    

アプリの作成

必要に応じてゲームデータの配布方法カスタマイズを参考に設定を行った上で、以下のファイルを実行して Cygwin Bash Shell を立ち上げ、以降の手順に従ってアプリを作成してください。実行ファイルのパスは環境に合わせて適宜変更してください。

c:\cygwin\Cygwin.bat

まず、Google Play Licesing package ライブラリの設定をします。

$ cd /cygdrive/c/src/android-sdk/extras/google/play_licensing/library
$ /cygdrive/c/src/android-sdk/tools/android.bat update project -p .

注意:先頭の $ はプロンプトです(入力しません)。

デバッグ版
$ cd /cygdrive/c/src/onscripter_android
$ ../android-ndk-r7c/ndk-build
$ ../android-sdk/tools/android.bat update project -p . --library ../android-sdk/extras/google/play_licensing/library
$ ../apache-ant-1.8.2/bin/ant clean
$ ../apache-ant-1.8.2/bin/ant debug

注意:android.bat の --library の指定は絶対パスではなく相対パスにしてください。また、../ は1つ上のディレクトリを指します。

成功すると、以下のように debug キーで署名されたアプリが作成されます。このアプリは実機にインストールして実行できますが、アンドロイドマーケットでは公開できません。

onscripter_android/bin/ONScripter-debug.apk
リリース版(アンドロイドマーケットで公開する場合)
$ cd /cygdrive/c/src/onscripter_android
$ ../android-ndk-r7c/ndk-build
$ ../android-sdk/tools/android.bat update project -p . --library ../android-sdk/extras/google/play_licensing/library
$ ../apache-ant-1.8.2/bin/ant clean
$ ../apache-ant-1.8.2/bin/ant release

注意:android.bat の --library の指定は絶対パスではなく相対パスにしてください。

成功すると、以下のように署名がされていないアプリが作成されます。

onscripter_android/bin/ONScripter-release-unsigned.apk

次に電子署名を行います。

まず、以下のコマンドを実行して証明書(鍵)release.keystore を作成します(コマンドは2行に分けず1行で入力してください)。releasename は鍵の別名で、自由に付けてください。この作業は電子署名の度に行わずに、事前に1度だけ行います。毎回行うと電子署名が変更されてしまい、アプリの更新インストールができなくなります。

$ /cygdrive/c/Program\ Files/Java/jdk1.7.0_03/bin/keytool.exe -genkey -v -keystore release.keystore -alias releasename -keyalg RSA -validity 10000

いくつか質問に答える必要があるので、keytoolコマンドで公開するandroidアプリに署名するための証明書(鍵)を生成するなどを参考に入力してください。生成された証明書(鍵) release.keystore は消さないように注意してください。

次に、以下のコマンドを実行してアプリに電子署名をします(コマンドは2行に分けず1行で入力してください)。

$ /cygdrive/c/Program\ Files/Java/jdk1.7.0_03/bin/jarsigner.exe -verbose -keystore release.keystore bin/ONScripter-release-unsigned.apk releasename

いくつか質問に答える必要があるので、jarsignerコマンドで公開するandroidアプリにデジタル署名するなどを参考に入力してください。これでアプリを公開する準備が整いました。

Linux でのアプリの作成方法

Linux での開発方法を説明します。当方の環境(Linux Debian/squeeze)を元に説明します。

ソフトウェアの導入

  1. Download the Android SDKの最新の SDK (例 android-sdk_r18-linux_x86.tgz) をインストールします。
    また SDK インストール後に、android を起動して以下のパッケージをインストールしてください。
    • Android 4.0.3 (API 15)
      • SDK Platform
    • Android 2.2 (API 8)
      • SDK Platform
    • Extras
      • Google Play Licesing package
  2. Download the Android NDKの最新の NDK (例 android-ndk-r7c-linux-x86.tar.bz2) をインストールします。また、SDK の android を起動して SDK の packages を最新のものに更新してください。
  3. ライブラリと周辺プログラム一式 (SDK)から onscripter_android.tar.gz をダウンロードして適当な場所に展開します。
  4. ONScripter のページから最新の ONScripter をダウンロードして onscripter_android/jni/application/onscripter-xxxxxxxx に展開します。
  5. Sun の JDK, Apache Ant が必要になるのでディストリビューションのパッケージシステムなどを使ってインストールしてください。

アプリの作成

必要に応じてゲームデータの配布方法カスタマイズを参考に設定を行った上で、以下の手順に従ってアプリを作成してください。

まず、Google Play Licesing package ライブラリの設定をします。ここでは、SDK が /usr/local/src/android-sdk-linux-r18 以下にインストールされているとして進めます。

> cd <path_to_sdk>/extras/google/play_licensing/library
> android update project -p .

注意:<path_to_sdk>は SDK がインストールされたディレクトリに置き換えてください。

デバッグ版
> cd onscripter_android
> ndk-build
> android update project -p . --library <relative_path_to_sdk>/extras/google/play_licensing/library
> ant clean
> ant debug

注意:<relative_path_to_sdk>は現在のディレクトリから SDK までの相対パスを指定してください。絶対パスではいけません。

成功すると、以下のように debug キーで署名されたアプリが作成されます。このアプリは実機にインストールして実行できますが、アンドロイドマーケットでは公開できません。

onscripter_android/bin/ONScripter-debug.apk
リリース版(アンドロイドマーケットで公開する場合)
> cd onscripter_android
> ndk-build
> android update project -p . --library <relative_path_to_sdk>/extras/google/play_licensing/library
> ant clean
> ant release

注意:<relative_path_to_sdk>は現在のディレクトリから SDK までの相対パスを指定してください。絶対パスではいけません。

成功すると、以下のように署名がされていないアプリが作成されます。

onscripter_android/bin/ONScripter-release-unsigned.apk

次に電子署名を行います。

まず、以下のコマンドを実行して証明書(鍵)release.keystore を作成します(コマンドは2行に分けず1行で入力してください)。releasename は鍵の別名で、自由に付けてください。この作業は電子署名の度に行わずに、事前に1度だけ行います。毎回行うと電子署名が変更されてしまい、アプリの更新インストールができなくなります。

> keytool -genkey -v -keystore release.keystore -alias releasename -keyalg RSA -validity 10000

いくつか質問に答える必要があるので、keytoolコマンドで公開するandroidアプリに署名するための証明書(鍵)を生成するなどを参考に入力してください。生成された証明書(鍵) release.keystore は消さないように注意してください。

次に、以下のコマンドを実行してアプリに電子署名をします(コマンドは2行に分けず1行で入力してください)。

> jarsigner -verbose -keystore release.keystore bin/ONScripter-release-unsigned.apk releasename

いくつか質問に答える必要があるので、jarsignerコマンドで公開するandroidアプリにデジタル署名するなどを参考に入力してください。これでアプリを公開する準備が整いました。

ライブラリと周辺プログラム一式 (SDK)

ONScripter on Android をコンパイルするために必要な ONScripter 本体以外のライブラリとプログラム一式です。

リリース日SDK
20120425 onscripter_android.tar.gz
  最新版
20120319 onscripter_android-20120319.tar.gz
  色深度 16bit 版のスナップショット
20120122 onscripter_android-20120122.tar.gz
  暗号化 zip 対応版のスナップショット
20110815 onscripter_android-20110815.tar.gz
  暗号化 zip 非対応版のスナップショット

Port of libSDL to Android mobile platform, including several games.で Android に移植されている SDL とゲームを元に作成しています。元にしたソースは2010年5月時点のものです。pelya/commandergeniusの last-working-sdl-1.3 が元にしたソースに最も近いと思います。秋月かたねさんが公開されていた ONScripter for Android 2.1 (ARM) 20100530a test1 のソースも参考にさせていただきました。

以下のファイルが含まれています。

  • アプリをコンパイルするための設定ファイル・リソース・アイコン
  • Android と ONScripter の橋渡しをする JAVA のプログラム
    ONScripter.java (MainActivity.java を元に以下の機能を追加)
    起動時のゲームデータ選択・Native Code (C++) で作成された ONScripter 本体部分の呼び出し・ソフトウェアボタン処理・メニュー処理・Intent を利用した動画再生
    Video.java (以下の機能を追加)
    実機のボリュームボタンによる音量変更
    onSurfaceChanged() 内で OpenGL の初期化を行い、onPause(), onResume() 内で SDL_ACTIVEEVENT を発行して ONScripter 側でメインスレッドのロック(GLThread.SwapBuffers() へのアクセス)と再開時の画面再設定が行われるように変更 (あまり綺麗な方法ではありませんが、タスク切り替えに対応するため)
    DataDownload.java (以下の機能を改良・追加)
    Android マーケットもしくは自身で用意したサイトからのゲームデータダウンロード機能
  • SDL-1.3 (SDL port for Android SDK/NDK 1.6 からコピー)
  • SDL_image (SDL port for Android SDK/NDK 1.6 からコピー)
  • SDL_mixer (SDL port for Android SDK/NDK 1.6 からコピー)
  • SDL_ttf (SDL port for Android SDK/NDK 1.6 からコピー)
  • freetype (SDL port for Android SDK/NDK 1.6 からコピー)
  • jpeg (SDL port for Android SDK/NDK 1.6 からコピー)
  • png (SDL port for Android SDK/NDK 1.6 からコピー)
  • tremor (SDL port for Android SDK/NDK 1.6 からコピー)
  • bzip2-1.0.5
  • libmad-0.15.1b

ゲームデータの配布方法

ゲームデータの配布方法には以下の3通りがあります。

  • パターン1:Android マーケットからダウンロードする方法
  • パターン2:アプリに内蔵する方法
  • パターン3:自身で用意したサーバからダウンロードする方法

パターン1:Android マーケットからダウンロードする方法

Android マーケットで配布可能なアプリのサイズには 50MB の制限がありますが、最大 2GB の拡張ファイルを同時に2つまで配布できます。この方法では、ゲームデータを拡張ファイルとして Android マーケットに登録しておき、Android マーケットからアプリとゲームデータを両方ダウンロードします。

注意点として、インストールの際に、一時的に内部ストレージにアプリと拡張ファイルの合計サイズ分の空きが必要になります。ゲームデータ自体は SD カードにインストールされるため、あくまで一時的です。

以下のように赤字の個所を修正してください。

onscripter_android/res/values/strings.xml:
    <bool name="use_launcher">false</bool>
    <bool name="use_download">true</bool>
    <string name="download_version">.20120310</string>
    <string name="download_url"></string>
    <string name="public_key">NKC4A+...</string>
download_version
ゲームデータのバージョン管理に使用します。ゲーム起動時にこのファイルが存在しない場合に、ゲームデータを Android マーケットからダウンロードします。
シナリオや画像などゲームデータを修正してアプリを再作成する場合は更新してください。プログラム(ONScripter)本体の更新(バグ修正によるバージョンアップなど)に伴いアプリを再作成する場合は更新する必要はありません。
download_url
空にしてください。スペースなどを含まないように注意してください。
public_key
デベロッパーコンソールの「プロフィールの編集画面」の「公開鍵」(Public key)の内容をコピーしてください。

ONScripter でサポートする拡張ファイルは1つだけです。ゲームの構成ファイルを全てまとめた単一の zip ファイルを、拡張ファイルとしてアプリと一緒に登録します。ゲームの構成ファイルのうち nscript.dat, arc.nsa, default.ttf は zip 内の(ディレクトリを挟まない)直下に置いてください。
例えば、Lhaca デラックス版ExplzhWinZipなどのzip作成ソフトを起動し、nscript.dat, arc.nsa, default.ttf などのファイルを直接ドラッグ&ドロップすれば zip ファイルが作成されます。iOS 版でも同じ zip ファイルが使用できます。

アプリを実行すると、ゲームの構成ファイルは外部記憶装置(SDカードなど)の以下の場所に展開されます。

/Android/data/<package_name>/

例えばパッケージ名が jp.ogapee.onscripter の場合は /sdcard/Android/data/jp.ogapee.onscripter/ などになります。また、端末の API Level が 8 以上(Android 2.2 以上)の場合は、ダウンロードしてここに展開されたファイルはアプリケーションのアンインストール時に同時に消去されます。

上の例では、ONScripter 起動時に /sdcard/Android/data/<package_name>/.20120310 が存在しない場合、Android マーケットからゲームデータをダウンロードして /sdcard/Android/data/<package_name>/ 以下に展開し、最後に .20120310 (空ファイル)を作成します。その後に、/sdcard/Android/data/<package_name>/ 直下にゲームの構成ファイルがあることを想定してゲームを起動します。

また、Android マーケットからダウンロードするため、インターネット通信の「完全なインターネットアクセス」と「マーケットライセンスの確認」を許可します。(デフォルトではコメントアウトされており不許可になっています)

onscripter_android/AndroidManifest.xml:
    <uses-permission android:name="com.android.vending.CHECK_LICENSE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

パターン2:アプリに内蔵する方法

この方法は、ゲームデータとアプリの合計サイズが 50MB 未満の場合に利用できます。以下のように赤字の個所を修正してください。

onscripter_android/res/values/strings.xml:
    <bool name="use_launcher">false</bool>
    <bool name="use_download">false</bool>
    <string name="download_version">.20120310</string>

ゲームの構成ファイルは onscripter_android/assets/ 以下に配置してください。これらのファイルはアプリに内蔵され、初回や download_version 更新時に外部記憶装置(SDカードなど)の以下の場所にコピーされます。

/Android/data/<package_name>/

例えばパッケージ名が jp.ogapee.onscripter の場合は /sdcard/Android/data/jp.ogapee.onscripter/ などになります。また、端末の API Level が 8 以上(Android 2.2 以上)の場合は、ここにあるファイルはアプリケーションのアンインストール時に同時に消去されます。

正確には、ゲーム起動時にこの場所に download_version で指定したファイルが存在しない場合に、以下の例のように onscripter_android/assets/ 以下に配置された全ファイル(アプリに内蔵されます)をこの場所にコピーし、最後に download_version で指定した空ファイルを作成してゲームを開始します。

アプリ作成時の配置(コピー元):
onscripter_android/assets/arc.nsa
onscripter_android/assets/default.ttf
onscripter_android/assets/nscript.dat
onscripter_android/assets/bgm/bgm01.ogg
初回起動後もしくはアプリ更新後の構成(コピー先):
/sdcard/Android/data/jp.ogapee.onscripter/.20120310
/sdcard/Android/data/jp.ogapee.onscripter/arc.nsa
/sdcard/Android/data/jp.ogapee.onscripter/default.ttf
/sdcard/Android/data/jp.ogapee.onscripter/nscript.dat
/sdcard/Android/data/jp.ogapee.onscripter/bgm/bgm01.ogg

中にファイルが1つもない空のフォルダは省略されます。フォルダには1つ以上の何らかのファイルを置いてください。

なお、Android 2.2 以前では、assets フォルダにある 1MB 以上のファイルを圧縮して apk に含めると、プログラムから読み込む際に失敗してしまいます。これを回避するには、ant の設定ファイルを以下のように書き換えて <nocompress /> を有効にし、assets フォルダ内のファイルを圧縮しないで apk を作成します。

Windows の場合 (Linux の場合も同様)
c:/Program Files/Android/android-sdk/tools/ant/build.xml:
変更前:コメントアウトされています
                <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
変更後:assets 以下に配置するファイルの拡張子を全て列挙します
                <nocompress extension="dat" />
                <nocompress extension="ttf" />
                <nocompress extension="nsa" />
                <nocompress extension="ogg" />

パターン3:自身で用意したサーバからダウンロードする方法

自身で WEB サイトを用意し、そこにゲームデータを置いてダウンロードしてもらいます。ゲームデータは直接外部ストレージ(SDカードなど)にダウンロードされるため、インストール時に内部ストレージを空けておく必要はありません。

以下のように赤字の個所を修正してください。

onscripter_android/res/values/strings.xml:
    <bool name="use_launcher">false</bool>
    <bool name="use_download">true</bool>
    <string name="download_version">.20120310</string>
    <string name="download_url">http://*.*/*/game1_pack.zip</string>
download_version
ゲームデータのバージョン管理に使用します。ゲーム起動時にこのファイルが存在しない場合に、ゲームデータを自身で用意したサイトからダウンロードします。
シナリオや画像などゲームデータを修正してアプリを再作成する場合は更新してください。プログラム(ONScripter)本体の更新(バグ修正によるバージョンアップなど)に伴いアプリを再作成する場合は更新する必要はありません。
download_url
ゲームの構成ファイルを全てまとめた単一の zip ファイルの URL を指定します。ゲームの構成ファイルのうち nscript.dat, arc.nsa, default.ttf は zip 内の(ディレクトリを挟まない)直下に置いてください。
例えば、Lhaca デラックス版ExplzhWinZipなどのzip作成ソフトを起動し、nscript.dat, arc.nsa, default.ttf などのファイルを直接ドラッグ&ドロップすれば zip ファイルが作成されます。iOS 版でも同じ zip ファイルが使用できます。

ゲームの構成ファイルは、外部ストレージ(SDカードなど)の以下の場所に展開されます。

/Android/data/<package_name>/

例えばパッケージ名が jp.ogapee.onscripter の場合は /sdcard/Android/data/jp.ogapee.onscripter/ などになります。また、端末の API Level が 8 以上(Android 2.2 以上)の場合は、ダウンロードしてここに展開されたファイルはアプリケーションのアンインストール時に同時に消去されます。

上の例では、ONScripter 起動時に /sdcard/Android/data/<package_name>/.20120310 が存在しない場合、自身で用意したサイトから game1_pack.zip をダウンロードして /sdcard/Android/data/<package_name>/ 以下に展開し、最後に .20120310 (空ファイル)を作成します。その後に、/sdcard/Android/data/<package_name>/ 直下にゲームの構成ファイルがあることを想定してゲームを起動します。

また、インターネット経由でダウンロードするため、インターネット通信の「完全なインターネットアクセス」を許可します。(デフォルトではコメントアウトされており不許可になっています)

onscripter_android/AndroidManifest.xml:
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

カスタマイズ

パッケージ名の変更

以下の赤字の個所を変更すると、当サイトで配布しているアプリと共存できるようになります。アプリをアンドロイドマーケットなどで第三者に公開する場合は変更してください。

onscripter_android/jni/Android.mk:
SDL_JAVA_PACKAGE_PATH := jp_ogapee_onscripter
onscripter_android/src/*.java:
package jp.ogapee.onscripter;
onscripter_android/AndroidManifest.xml:
      package="jp.ogapee.onscripter"

パッケージ名を変更した場合は、直後にアプリを作成するときに ndk-build に -B オプションを付けて実行してください。ソースを全てコンパイルし直します。

$ ../android-ndk-r7c/ndk-build -B

アプリケーション名の変更

以下の赤字の個所を変更してください。

onscripter_android/res/values/strings.xml:
    <string name="app_name">ONScripter</string>

アイコンの変更

以下の画像ファイルを変更してください。

onscripter_android/res/drawable-hdpi/icon.png: 72x72のアイコン
onscripter_android/res/drawable-mdpi/icon.png: 48x48のアイコン
onscripter_android/res/drawable-ldpi/icon.png: 36x36のアイコン

メニュー内容の初期設定

以下の赤字の個所を修正してください。

バージョン文字列
onscripter_android/res/values/strings.xml:
    <string name="version">ONScripter 20120310\nStudio O.G.A. Ogapee</bool>

メニューの「バージョン」が押されたときに表示する文字列を指定します。"\n"で改行されます。

ソフトウェアボタンの表示/非表示
onscripter_android/res/values/strings.xml:
    <bool name="button_visible">false</bool>

true の場合は表示状態で、false の場合は非表示状態でゲームを開始します。開始後はメニューから切り替えられます。

ゲーム画面の配置
onscripter_android/res/values/strings.xml:
    <bool name="screen_centered">true</bool>

true の場合はゲーム画面をディスプレイの中央配置で、false の場合は左上配置でゲームを開始します。開始後はメニューから切り替えられます。

縦長表示

以下のように赤字の個所を変更すると、縦長画面、つまり通常の表示から90度回転した状態で描画するようになります。

onscripter_android/AndroidManifest.xml:
      android:screenOrientation="portrait"
Cutlass Web Site
ONScripter on Android を使用したゲーム NOeSIS -嘘を吐いた記憶の物語- を公開されています。お勧めです。

Tips

  • 関連するバグ報告
  • フォルダに .nomedia というファイルを置くと、そのフォルダより下の階層にある画像や音楽ファイルはギャラリーや音楽プレイヤーの検索対象外になるようです。
  • スクリーンショットを撮るには、端末を USB で PC と接続し、PC 側で Dalvic Debug Monitor (android-sdk\tools\ddms.bat) を起動して、端末側で接続タイプを HTC Sync にします。次に DDM で端末を選択し、Device -> Screen capture を実行します。
  • Ctrl-F11, Ctrl-F12 でエミュレータの画面表示を縦横に切り替えられま す。ONScripter on Android は横画面専用なので、エミュレータ使用時には切 り替えてください。また、Alt-Enter でフルスクリーンモードの切り替えがで きます。
  • エミュレータの作成直後は、SD card 上のファイルを実行できないよう なので、以下のようにマウントし直して実行可能にします。
    mount -o remount /dev/block/vold/179:0 /mnt/sdcard
    
  • Windows で SDK Setup.exe を立ち上げてパッケージを更新する際に "Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml" とエ ラーが出る場合は、c:\Users\username\.android\androidtool.cfg で以下のように設定するとうまくいくかもしれません。
    sdkman.force.http=true
    
  • Linux (Debian) で android を立ち上げてパッケージを更新する際に "Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml" とエ ラーが出る場合は、以下のようにするとうまくいくかもしれません。
    echo "0" > /proc/sys/net/ipv6/bindv6only
    
  • Android の JAVA のソースの入手法。
    > git clone git://git.source.android.com/platform/frameworks/base android-api
    > cd android-api
    # android 1.6 の場合
    > git checkout android-1.6_r2
    # android 2.1 の場合
    > git checkout android-2.1_r2.1s