概要
マルチプラットフォーム ノベル/ADV ゲームエンジン Artemis Engine.
簡易なスクリプトを記述することで、ノベルゲーム、アドベンチャーゲームといった「紙芝居的な」アプリケーションを作成することができます。
同じスクリプトで、Windows, iOS, Android で同じように動作します。
また、モダンなWebブラウザ上で動作する WebAssembly 版もあります。
商用版では、PS4, Switch 版もあります。
また、Windowsでは W.Dee様が開発されている「吉里吉里/KAG」が多く使われていますが、Artemis Engineのスクリプト文法は「KAG」を参考にさせて頂いている部分が大きいため、双方のマクロを工夫することで、限定的ではありますが共通のスクリプトを使うことも可能です。
機能一覧
下記は主要な搭載機能です。
アプリケーション
- Windows用のアプリ(exe)を作成
- 現在、x64 + DirectX 11 / x86 + DirectX 11 / x86 + DirectX 9 / ARM64EC + DirectX 11 の各exeがあります。
- iOS用のアプリを作成
- iPhone専用、iPad専用、iPhone/iPad両対応の各タイプが作成できます。
- Android用のアプリ(apk)を作成
- Google Playのサーバにゲームデータを置いてそこからダウンロードさせる Play Asset Delivery にも対応しています。
- ブラウザ用のWebアプリ(html+js+wasm)を作成
- PCやスマホのモダンブラウザで WebAssembly + WebGL を使用して動作するWebアプリが作成できます。
- 相互互換
- 一つのスクリプトが、対応している全てのプラットフォームで同じように動作するので、Windows上でほとんどの制作ができます。
それぞれのプラットフォームでなければ調整できない項目もあるので、100%ではありませんが、手数のかかるシナリオスクリプトや演出入れ込みなどの作業がWindows上で完結するため、非常に効率的です。
テキスト
- 自由な文字描画
- 任意の大きさ、色のフォントを、任意の範囲に横書きか縦書きで、簡易的なアニメーションを伴って表示できます。
ルビや禁則処理にも対応しています。 - 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内のメソッドを呼ぶことができます) - NVIDIA Image Scaling
- Windows版のみ、超解像技術 NVIDIA Image Scaling に対応しています。内蔵しており、NVIDIA以外のGPUでも動作します。
- E-mote
- WebAssembly版以外の商用版では、E-mote対応版もあります。実装及びライセンスの都合上、個別のご相談が必要となります。
スクリプト例
[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採用タイトルとなります。
システムのご提供について
現在、不特定多数に対する一般公開は行っておりません。
ご提供については、下記を熟読いただき、メールにてお問い合わせください。
昨今、海外を中心に、作品のリリースを目的とせず、技術的な調査やリバースエンジニアリング (技術的な解析等) などを目的とする利用が散見されており、あまり本意ではないのですがご提供に際して僭越ながら審査のようなことをすることといたしました。
作品のリリースを目的としてご採用をご検討くださる方にはご迷惑をおかけしてしまうこととなり申し訳ございませんが、ご理解いただけますと幸いです。
具体的には、下記のように匿名性が比較的低い内容のお問い合わせについてのみ、ご返信をいたします。
必須条件というわけではなく、「どこの誰ともまったくわからない」といったようなお問い合わせはご遠慮いただきたいという主旨とご理解いただければと思います。
明らかに主旨をご理解いただいていないと思われるお問い合わせについては、返信自体を控えさせていただきます。
- ご自身あるいは所属組織等の、ある程度の内容を伴ったWebサイトや、一定期間以上あるいは一定量以上の活動があるSNSアカウントなどをご案内いただく (Webサイトに記載の連絡先や、SNSのDM等で、確認いたします)
- ご自身のポートフォリオ等をファイルにて共有いただく
- フリーメールではなく独自ドメインや特定用途ドメイン (学生用のac.jp等) のメールアドレスからのお問い合わせ
基本的に「趣味」で開発しているものですので、営利を主目的としない個人様、営利を主目的としない任意団体様 (同人サークル様等) の場合は、報酬などは特に頂きません。
営利を主目的とした法人様、個人事業主様は別途ご相談ください。
2024年11月9日 改定
採用して頂けるサークル様を募集しています。
基本的に「趣味」で開発しているものですので、営利を主目的としない個人様、任意団体様(同人サークル様等)の場合は、報酬などは特に頂きません。
営利を主目的とした企業様、個人事業主様は別途ご相談ください。
現在、不特定多数に対する一般公開は行っておりません。メールにてご連絡頂いた方に、順次ご案内を差し上げております。
Artemis Engineや、ノベル/ADVゲーム制作にご興味がおありの方は、お気軽にご連絡ください。
2011年1月9日 改定
採用して頂けるサークル様を募集しています。
基本的に「趣味」で開発しているものですので、報酬などは特に頂きません。(企業さんは別途ご相談ください)
現在、不特定多数に対する一般公開は行っておりません。メールにてご連絡頂いた方に、順次ご案内を差し上げております。
Artemis Engineや、ノベル/ADVゲーム制作にご興味がおありの方は、お気軽にご連絡ください。
補足
iOS用のアプリについては、スクリプト開発及び一次検証はWindowsのみで可能ですが、最終的に App Store にてリリースする際には、下記のものが必要です。
- 最新か、最新の一つ前のバージョンの macOS
- 最新の Xcode 及び iOS SDK (Xcodeでの開発経験は不要です)
- 有料の Apple Developer Program 契約