HSP GameFactory

このサイトについて
AHDが現在進めているゲーム開発プロジェクトや、そのゲーム内で使用しているファイルフォーマットなどについて整理しています。

ダウンロード
フリーソフトとか

>> 詳しくはこちらへ。
現在開発中のゲーム
AHD開発フォーマット
サポート

イベントアクションスクリプトについて

ARCSエンジンにはRPGにおけるイベント関連の処理も内蔵されているんですが、そのイベントの処理を独自形式のスクリプトファイルで扱っています。
このスクリプトファイルのことを「イベントアクションスクリプト(IAS)ファイル」と呼んでいます。
拡張子は諸事情により「*.ais」です。aisはArcsIveniactionScriptの略です。


◆ イベントアクションスクリプトとは?

イベントアクションスクリプト(IASファイル)を使用すると、ARCSエンジンで作成可能なRPGゲームのマップイベント等を自由に制御することができます。
基本的にBASICやHSPのような文法形式になっていて、ゲーム内でのイベント処理等が簡単に記述できるようになっています。

また、ゲーム実行時はソーススクリプトを直接解析し、内部で一度独自の中間コード形式に変換してから実行します。ゲーム実行前にマップエディタであらかじめ中間コード(オブジェクト)ファイルに変換されたスクリプトを、ゲームプレイ中(マップ読み込み時)にマップデータと共にロードするようになっています。
これはマップの読み込み時に同時に瞬時に行われます。そのためイベント開始もスムーズに行うことができます。
あらかじめコンパイルや中間コードファイル作成を行わないため、ソースコードを編集後ゲームを実行するだけですぐに実行結果をチェックすることもできます。あらかじめマップエディタにて中間コード(オブジェクト)ファイルに変換する必要があります。拡張子は「*.aio」です。aioはArcsIveniactionObjectの略です。
(ただし実行したいイベントIDがあらかじめゲーム内で設定されている必要があります。)

この中間コード(オブジェクト)ファイルは「バイナリデータ」になっているので、通常のテキストエディタで読み込むことはできません。

命令や文法の一部にHSP2.61(?)と互換がある箇所もあり、一部の機能は"HSP on HSP"のような感じで使用することもできます。
IASインタープリターがIASスクリプトのデータ(パラメータ)をそのまま(一部は成型して)HSPに渡しているため、このような仕様になっています。IASエンジン自体がインタープリタなので当然といえば当然ですが。
ただし、IASインタープリター自体がHSPランタイム上で動いていて、かつ1ウェイトの間隔がゲームの仕様上約60分の1秒30分の1秒となっているので、実際にHSP上で動かすときよりも処理速度は落ちることになります。
また、もともとゲームプログラムを1から記述するためのものではないので、そんなにFPS(フレーム毎秒)は要求されないと思います。

処理内容は、イベント時のメッセージ表示や高度なマップ移動、キャラクター移動&表示非表示、ショップ呼び出し、ボス戦呼び出し、セーブ画面呼び出し等の簡単な物から、フラグや変数の操作、分岐処理、繰り返し処理、パラメータを渡せるサブルーチン呼び出し、画面描画処理、キー入力検知等の少し高度な処理等も行えるようになっています。(一部の機能は未実装ですが、将来的に実装予定です。)

イベントアクションを使用して高度な処理(キー入力検知とフラグや変数の操作、分岐処理、繰り返し処理、サブルーチン呼び出し、画面描画処理など)を行うことにより自作システムの設計なども可能です。


◆ IASってぶっちゃけHSPと同じでしょ?

まぁ元々がBASICやHSPくらいしか経験がない人でもスクリプトが組めるようにということと、作者自身の技術の限界でこれくらいのスクリプトエンジンしか作れなかったこと、この2つの理由があります。

...という言い訳はおいといて、、IASはHSP3(ARCSエンジン)上で動作していますが(言語仕様と言語処理の面で)HSPと同一の物ではありません。
ただ、上記の通り命令や文法の一部にHSP2.61(?)と互換がある箇所がいくつかあるので、簡単なスクリプト限定ですが、HSP2.61等向けのスクリプトをそのまま走らせることも可能です。

IASのシステムは「IASパーサー(構文解析器)」と「IASエンジン(インタープリター)」(共にARCSエンジンに実装という形で含まれています)から構成されていますが、両方とも内部で独自のソース処理を行うシステムになっています。
言い換えると、内部で独自のソース処理を行うにあたって両方のシステムとも「HSPCMP.DLL」や「HSP3IMP.DLL」などのHSPランタイム本体関連のプラグインを利用していない、ということです。

この「独自のソース処理」のプログラムがHSP3で書かれているだけです。なので、IASはHSPとは異なるシステムと言えます。
ちなみに、この「独自のソース処理」のプログラムはC言語などの他の言語に移植することもできます。簡単な例だと、IASのシステムをDLL化することも可能です。
...ですが、今のところ他の環境に移植する予定はありません。あえて言うなら無料のFlex3 SDKを使用してFlash9あたりに移植できるかな...とかは考えています。


◆ うぅむ...これはもしかしたら全て作者の妄想かも知れない...

最初の頃は(まだ企画段階だったんで)妄想のような感じでしたが、現在では言語仕様と処理系ともに開発が進んでいる段階です。
実装が完了している命令や文法などに関しては既にデバッグを行っている段階です。

処理系はかなり出来上がってきているので、できれば公開...と行きたいところですが、この処理系自体がエンジンに組み込まれていて、分離して単体で公開することができません。IASエンジンのみを分離したバージョンのものを公開してみたいと思っていて、今準備中だったりします。いつ公開できるかはわかりませんが...

公開するときはゲームエンジンごと公開、といった感じになると思いますが、エンジンはまだまだ開発中なので...はい。

...具体的に?

今のところ、「対戦画面」や「マップ画面でのキャラ移動処理」、など一部がまだ開発中です。
なので、上記の点を除いた「デモゲーム」として公開するならかなり早めに公開できると思います。
実はもう公開していたりして...


ついでに証拠画像をおいときます。(ソース編集用に三浦淳さん作成のJmEditor2を使用しています。)



↑Vista記念に新しい画像に差し替えておきました。これは一部ですがこんな感じになると思います...


◆ イベントアクションスクリプト 文法リファレンス

>> イベントアクションスクリプト 文法リファレンス トップ


◆ イベントアクションスクリプト 命令リファレンス

>> イベントアクションスクリプト 命令リファレンス トップ
現在製作中です...

>> 戻る

更新日:2008/09/23

Copyright:(C)2007-2008 AHD / AHD Creations
All Rights Resrved.