SRPG Studio ~ シミュレーションRPG作成ソフト

Scriptフォルダ

スクリプトを自作するには、主に2つの内容を理解する必要があります。 1つはプロジェクトフォルダに存在するScriptフォルダの中身です。 Scriptフォルダには、ゲームの動作を実装するスクリプトファイルが存在しており、 これらのファイルに目を通すことで、どこで何が行われているかを把握する必要があります。 Scriptフォルダの中身は次のようになっています。

各種フォルダの概要は、次のようになります。

attack 戦闘に関する処理を含むフォルダです。 リアル戦闘や簡易戦闘が含まれます。
base 基底オブジェクトに関する処理を含むフォルダです。 たとえば、BaseObjectは全てのオブジェクトが継承するオブジェクトです。
constants 決して変更することのない定数を含むフォルダです。 ユニットタイプや文字列などが定義されます。
eventcommand イベントコマンドの処理を含むフォルダです。
executive ホストとの連携処理を含むフォルダです。 このフォルダのコードはホスト側の設計に強く依存するため、 今後のバージョンで大きく変更される可能性があります。
item アイテムの処理を含むフォルダです。 1つのファイルには、アイテムの選択、使用、情報表示など様々なオブジェクトが含まれます。
map マップの処理を含むフォルダです。 自軍ターンと敵軍ターンの処理などがあります。
scene ゲームのシーンの処理を含むフォルダです。 シーンが流れる順番は、TITLE(タイトル)→BATTLESETUP(戦闘準備)→FREE(マップ)→BATTLERESULT(戦闘終了)→REST(休憩)→BATTLESETUP…になります。
screen 画面の動作を含むフォルダです。 ここで述べる画面とは、「リソース使用箇所」で定義された「画面」を参照し、 上下にフレームを表示するオブジェクトのことです。
singleton ゲーム中に一つのインスタンスしか存在しないオブジェクトを含むフォルダです。 このフォルダ内のオブジェクトをcreateObjectに指定することはできません。
utility 様々なオブジェクトで使用される補助的なオブジェクトの処理を含みます。
window ウインドウとしての動作を含むフォルダです。 ここで述べるウインドウとは、「リソース使用箇所」で定義された「テキスト系UI」を参照し、 特定フォントでテキストを出力できるオブジェクトです。
info.ini スクリプトの取り扱いについて記述するファイルです。 GeneralのVersionは変更しないようにします。 RuntimeOrderは、優先してロードするスクリプトファイルを記述します。 baseフォルダのオブジェクトは、他のオブジェクトが継承することになるため、 優先してロードしています。 独自ファイルをロードさせる場合は、OriginalOrder以下に記述します。

フォルダ内の各種ファイルを調べる前に、上記フォルダの概要を把握しておくことが重要です。 これを理解していれば、戦闘関係の処理を変更したい場合はattackフォルダ内、 アイテム処理に関してはitemフォルダ内のように、 大まかな場所をすぐに特定できるためです。

スクリプトを自作するうえでもう1つ重要なのは、ホスト APIの仕様を理解することです。 ゲームファイルであるgame.exeは、スクリプトからの処理の要求に応える必要がありますが、 ここで使用されるのがホスト APIになります。

ホスト処理とは、OS固有の処理やデータ制御などが含まれます。 このうち、スクリプト側に伝達を出したい場合は、 スクリプトコールという形でスクリプトのメソッドを呼び出します。 そして、スクリプトはホスト APIを通じて、ホスト側に処理を返すという流れになります。 たとえば、ホスト側は描画を行いたい段階になると、スクリプトのScriptCall_Drawを呼び出しますが、 これがスクリプトコールになります。 そして、スクリプト側はroot.getGraphicsManager().drawTextなどで描画命令を出しますが、 このようなメソッドがホスト APIになります。

ホスト APIは、常にrootと呼ばれるオブジェクトを介して使用します。 上記したようにrootオブジェクトはgetGraphicsManagerというメソッドを含んでいますが、 これ以外にどのようなメソッドを含むかは、ホスト APIのマニュアルを通じて調べることになります。 スクリプトを通じてできることというのは、このマニュアルに記載されていることと大きく関係します。

目次

スクリプト・マニュアル

ヘルプ・マニュアル