Artemis Engine について

概要

Windows, iOS, Android マルチプラットフォーム ノベル/ADV ゲームエンジン Artemis Engine.

簡易なスクリプトを記述することで、ノベルゲーム、アドベンチャーゲームといった「紙芝居的な」アプリケーションを作成することができます。

同じスクリプトで、Windows, iOS, Android で同じように動作します。

また、Windowsでは W.Dee様が開発されている「吉里吉里/KAG」が多く使われていますが、Artemis Engineのスクリプト文法は「KAG」を参考にさせて頂いている部分が大きいため、双方のマクロを工夫することで、限定的ではありますが共通のスクリプトを使うことも可能です。

機能一覧

下記は主要な搭載機能です。

アプリケーション

iOS用のアプリを作成
iPhone専用、iPad専用、iPhone/iPad両対応の各タイプが作成できます。
Android用のアプリ(apk)を作成
Google Playのサーバにゲームデータを置いてそこからダウンロードさせる APK Expansion Files にも対応しています。
Windows用のアプリ(exe)を作成
XP, Vista, 7, 8.x, 10 で動作するexeが作成できます。
相互互換
一つのスクリプトが、対応している全てのプラットフォームで同じように動作するので、Windows上でほとんどの制作ができます。
実機でなければ調整できない項目(タッチインターフェース)などもあるので、100%ではありませんが、手数のかかるシナリオスクリプトや演出入れ込みなどの作業がPCで完結するため、非常に効率的です。

テキスト

自由な文字描画
任意の大きさ、色のフォントを、任意の範囲に横書きか縦書きで、簡易的なアニメーションを伴って表示できます。
ルビや禁則処理にも対応しています。
TrueTypeフォント、OpenTypeフォントを組み込み
各環境にインストールされていないフォントを使用できます。
任意のフォントを画像化したデータの使用
フォントのライセンス上、ゲーム中に使用している文字のみを画像化している場合に限り、組み込むことが許されているものを利用したり、文字に任意の画像(ハートマークや汗マークなど)を割り当てるときなどに使用します。
クリック待ちグリフ
クリック待ちのときにアイコンを表示できます。

グラフィック

レイヤー
実機性能の許す限りのレイヤー枚数。位置,拡大縮小,回転,レイヤーモードの各プロパティをもち、プロパティ値を連続的に変化させる簡易的なアニメーションが可能です。
レイヤーセット
複数のレイヤーをまとめて扱えます。
グループ化されたレイヤー群をまとめて移動したり、拡大縮小したりできます。
スクリーンショット
ゲーム画面を保存して、セーブロードのサムネイルなどに使用できます。

サウンド

BGM
フェードイン、フェードアウト、クロスフェード、ボリューム変更ができます。
効果音/ボイス
実機性能の許す限りの多重再生が可能で、フェードイン、フェードアウト、チャンネル別のボリューム変更ができます。
A-Bリピート
イントロとループを別のファイルにわけて、最初にイントロを再生したあとは、ループ部分を繰り返し再生できます。

ビデオ

フルスクリーンビデオ
実機が対応するmp4などのビデオを全画面で再生できます。
ビデオレイヤー
Ogg Theora形式のビデオを、レイヤーとして使用できます。
アルファチャンネルも使用できるため、様々な演出に使えます。

ユーザーインターフェース

レイアウトフリー
タイトル画面や各種メニューなどを全てスクリプトで制御でき、自由なレイアウトが可能です。
テキストリンクや画像ボタンなどを使って選択肢や独自UIを構築できます。
タッチインターフェース
フリックやマルチタッチによるオートモード、既読スキップ、強制スキップ、メッセージウィンドウ一時消去、バックログなどをデフォルトで搭載しています。
無効にしたり、割り当てを変えたりもできます。
複雑な操作
レイヤーの、ロールオーバー、クリック、ロールアウト、ドラッグ開始、ドラッグ、ドラッグ終了の各操作に対して自由にスクリプトを割り当てて、独自のUIを構築できます。
これらを駆使して、ボリューム変更やウィンドウ濃度調整のスライダーなども実装できます。

スクリプト

セーブ/ロード
各セーブごとに独立した変数、各セーブにひもづかないグローバル変数、セーブされない一時変数の各種変数が使用できます。
オートセーブが可能で、スマートフォンなどでホーム画面に戻る際に自動的にセーブしたりできます。
演算/条件分岐/ループ
フラグ管理や四則演算、単純な文字列編集などができます。
サブルーチン/マクロ
頻繁に使う処理をひとまとまりにして新しい命令を定義できます。
この機能を駆使することで、文法の似ている吉里吉里+KAGのスクリプトの移植を省力化することもできます。
スクリプト作成支援
スクリプト上の改行、空行、行頭にマクロを割り当てることができ、改行タグや改ページタグなどを毎回入れていく作業などが不要になります。
Lua
Artemis Engineのスクリプトは柔軟ですが、シナリオを記述することを主眼において設計されているため、複雑な処理を多く記述するには向いていません。
そのようなときのために、本格的な組み込み向けプログラミング言語Luaを搭載しています。
Luaを使用すると、オブジェクト指向のコードを書いたり、再利用性のあるコードを書いたりできます。
Artemis Engineのスクリプトと比較して、圧倒的に高速に動作します。

その他

ユーザー文字入力
プレイヤーに任意の文字を入力させることができます。
主人公の名前入力などで使用できます。
通信
簡易的なHTTP通信が可能です。GETやPOSTでデータを送り、結果を変数に受け取って処理できます。
(SSLには対応していません)
アプリ内課金
iOS版では In App Purchase に、Android版では Google Play の In App Billing に対応しています。
ネイティブ連携
簡易的ではありますが、iOSならObjective-C、AndroidならJavaの、一緒にリンクされたネイティブメソッドを呼ぶことができます。
また、iOSならビュー、AndroidならActivityとして独立していますので、Artemis自体をサブモジュールとして組み込むこともできます。
(Windowsの場合は外部DLL内のメソッドを呼ぶことができます)

スクリプト例

[lyc id=0 file=logo]	// メーカーロゴを読み込む
[trans type=1 time=1000]	// クロスフェードで表示
[wait input=1 time=1000]	// 1秒待つ (クリックでスキップ可)

	// オープニングムービーの全画面再生

[wait input=1 time=1000]	// 1秒待つ (クリックでスキップ可)

[lyc id=0 file=title]	// タイトルを読み込み
[trans type=1 time=1000]	// クロスフェードで表示

[splay file=title time=1000]	// BGMを1秒かけてフェードイン

[call file=title_button label=setup]	// ボタン表示のサブルーチンを呼ぶ
[stop]	// ボタンが押されるのを待つ

*main
// ここから本編

[sxfade file=bgm0 time=1000]	// 1秒かけてクロスフェードしながらBGMを変更

[アルテミス]	// マクロでキャラの立ち絵を表示
「Artemis Engineは、こんなふうに簡単なスクリプトを書いて、
ノベルゲームやADVゲームを作成できるゲームエンジンよ」

[var name=t.os system=os]	// 実行中のOSを取得
[シンシア]	// マクロでキャラの立ち絵を表示
「いま実行中のOSは [print data=$t.os] だね!」

[アルテミス]
「あなたのお名前を教えてくださる?」

[dialog title="名前入力" textfield=name]	// プレイヤーに文字を入力させる
[アルテミス]
「[print data=$name]さんね」	// 変数内の文字列をシナリオとして表示

[アルテミス]
「ところでシンシア、カピバラさん、って100回言ってみなさい」
[シンシア]
「えっ、急になんですかお姉さま…」

[var name=i data=0]	// 変数 i を 0 に初期化
[loop estimate="$i < 100"]	// i が 100 以内なら実行
	[シンシア]
	「カピバラさん」
	[var name=i data="$i + 1"]	// i に 1 を足す
[/loop]

採用実績

こちらに掲載しておりますiPhone/iPadアプリは、全てArtemis Engine採用タイトルとなります。

こちらに掲載しておりますAndroidアプリは、全てArtemis Engine採用タイトルとなります。

その他の情報

2010年9月19日に行われたUstream配信イベントにて、Artemis Engineの講演を行ないました。

そのアーカイブ(24分40秒付近)がご覧いただけます。

概要からスクリプトの少し突っ込んだところまで網羅的に扱いましたので、ご参考になるかと思います。

システムのご提供について

採用して頂けるサークル様を募集しています。

基本的に「趣味」で開発しているものですので、報酬などは特に頂きません。(企業さんは別途ご相談ください)
基本的に「趣味」で開発しているものですので、営利を主目的としない個人様、任意団体様(同人サークル様等)の場合は、報酬などは特に頂きません。
営利を主目的とした企業様、個人事業主様は別途ご相談ください。
2011年1月9日 修正

現在、不特定多数に対する一般公開は行っておりません。メールにてご連絡頂いた方に、順次ご案内を差し上げております。

Artemis Engineや、iOS, Android でのノベル/ADVゲーム制作にご興味がおありの方は、お気軽にご連絡ください。

mikage@ies-net.com

補足

iOS用のアプリについては、スクリプト開発及び一次検証はWindowsのみで可能ですが、最終的に App Store にてリリースする際には、下記のものが必要です。

  • OS X 10.11 El Capitan 以降
  • 最新の Xcode 及び iOS SDK (Xcodeでの開発経験は不要です)
  • 有料の Apple Developer Program 契約

Comments are closed.