更新 2006-03-27
フリーウェアSLG『ファーレントゥーガ』の著作権は作者あとあと様に帰属します。
『ファーレントゥーガ』のHP :
FT EventScript Supprot(以下ESS)は あとあと氏作のフリーウェアSLG 『ファーレントゥーガ』にて使用する イベントスクリプト(EventScriptファイル)について 製作者向けの支援を行う事を目的とした低機能ツールです。
簡易文法チェック機能とスクリプト製作支援マクロにより、 ケアレスミスにより発生する時間的ロスの削減、 肥大化するスクリプトファイルの分割管理、 煩雑なメッセージ出力スクリプトの簡略化、 スクリプトで指定するゲームフラグに名前を付けて管理、 等を行う事ができます。
FTESSはJavaアプリケーションですがWindows専用です。 動作にはJavaの実行環境JRE(Java Runtime Environment)が必要となります。
※JREの入手先 http://www.java.com/ja/download/index.jsp (2006-03-27時点)
EventScriptファイルをドラッグ&ドロップ、 またはメニュー「新規(Ctrl+N)」にて読み込むことができます。
読み込んだスクリプトファイルは まず「Edit」タブにて表示されるこの画面に表示されます。
テキストエディタとしては非常に低機能ですが 切り取り(Ctrl+X)、コピー(Ctrl+C)、ペースト(Ctrl+V)、くらいならなんとか可能です。
ちなみに、ウィンドウ下部に表示されているのはデバッグ用の簡易コンソールです。 特に実用性はありませんので説明は割愛します。
ファイル読込と同時に文法チェックが行われます。
また、メニュー「再チェック」「展開コードのチェック」を選択すると同様にチェックが行われます。
その結果、EventScriptや後述するマクロの文法上
問題の発生する疑いのある記述を認識すると、それを一つずつ問題点として報告します。
問題点は「Check」タブで表示されるこの画面にリストとして出力されます。
また、問題点の行をダブルクリックすると、エディタ上の該当する位置を表示します。
「位置」カラムは問題点の発生した位置を表示します。 "x,y"という形式で「x行目のy文字目」という形式で表示されます。 このツールで発見したエラーを別のエディタで編集する場合等に役立つと思います。
※このESSはテキストエディタとしては貧弱なツールです。 実際の編集についてはより高性能なエディタを使用することをお勧めします。
「区分」カラムは問題点がどんな問題なのかを一言で表しています。
ただし、これはEventScript製作者の視点から決定されるものではなく、
マクロ展開ツールとしてのESSにとっての問題のレベルだということを認識しておいてください。
「詳細」カラムは各問題点がどのように問題かについての説明が表示されます。
ESSのスクリプト作成支援機能の一つに「マクロ」というものがあります。 このマクロをEventScript形式に変換する処理を「マクロ展開(F6)」といいます。
マクロ展開を行った結果としてのスクリプトは、 「Result」タブを選択すると表示されるこの画面に出力されます。
「Editor」と同様に編集、チェック、保存ができます。
注意点としては、 この「Result」の内容をチェックする場合、 必ず「マクロを含まないEventScript」としてチェックを行います。 その為、「Result」の内容にマクロの記述が含まれるとそれは問題点として報告されます。
ファイル選択ダイアログを表示し、選択したファイルの読込、チェックを行います。 ウィンドウにファイルをドラッグ&ドロップした場合も同じ処理を行います。
「Edit」タブで表示されるテキストを保存します。※既存ファイルを上書きする場合は確認ダイアログが表示されます。
「Result」タブで表示されるテキストを保存します。※既存ファイルを上書きする場合は確認ダイアログが表示されます。
ESSを終了します。※終了の前に確認ダイアログを表示します。
「Edit」タブで表示されるテキストについて文法チェックを行います。 読込時のチェックに対する再チェック、という意味です。
「Edit」タブで表示されるテキストを読み込み、構文解析を行い、 一旦全てをツリー状のデータ構造に変換した後、スクリプトとして再構築し、 「Result」タブで表示されるエディタに出力します。
この時、それまで「Result」タブにて表示されるエディタに 入力されていたデータは全て破棄されますので注意してください。
上記の再構築を行う際、スクリプトの中に存在するマクロとしての記述を発見すると ESSはそれをEventScript形式に変換して出力します。 詳しくはマクロの項で説明します。
「Result」タブにて表示されるテキストに対して文法チェックを行います。 この時必ずEventScriptとしてのチェックを行いますので 「Result」のテキストの中にマクロが残っていると問題として報告されます。
このメニューにチェックを入れた場合、 「新規(Ctrl+N)」, 「再チェック(F5)」にて文法チェックを行う際に 必ずマクロの無いEventScriptとしてチェックを行います。
マクロを含むスクリプトの場合、 比較的緩いルールでのチェックになりますので マクロを使わない場合にはあらかじめチェックを入れておくことをお勧めします。
※ESS起動時はチェックが外れた状態です。
ESSにおけるマクロとは、 EventScriptの作成を支援する事を目的としたESS独自のスクリプトです。
ESSはマクロの形式で記述されたコードを解読し、 対応するEventScript形式に変換する機能を持っています。
マクロを利用してEventScript製作者にとって保守し易い形式で記述を行い、 展開したスクリプトを本体向けのEventScriptファイルとして使う、という使い方を想定しています。
例(左がマクロ、右がマクロ変換後のコード)ちなみにこれは無茶し過ぎw
スクリプトの途中に外部ファイルを組み込むことができます。
書式は
#INCLUDE (""で囲んだパス)
で、指定のパスにファイルが存在する場合、そのファイルを読み込んで テキストを組み込みます。パスは必ずダブルクオートで囲んでください。 そうしないとESSはパスを分解して解析してしまいますので、 構造化エラーとして報告されます。
ファイルへのパスは絶対パスを推奨しますが、 以下のパスを基点とした相対パスを設定することができます。
優先順位は 絶対パス > #PATH > 読込ファイルのパス の順番になります。
注意点としては、循環参照をチェックしないので製作者側でチェックしてください。 例えば二つのファイルでお互いをインクルードするような記述をすると無限ループとなり、 JavaVMの確保したメモリを食い尽すまでテキストを読み込みつづけます。
もう一つの注意点として、
現在この#INCLUDEマクロに関するバグが存在します。
ファイル読込時にインクルード先のファイルまでチェックしてしまうという問題で、
これにより、インクルード先のファイルを含めたエラーが報告され、
エラーの位置情報がおかしくなるという現象が発生しています。
これについては近日対応の予定です。
例:Text1.txtを読み込み、同じフォルダにあるText2.txtをインクルード
▼組み込み結果
例:パスの指定
このように記述すると、"C:\My Documents\Test.txt"というファイルを探します。
会話イベントの際に、いちいち"Print"と打つのが煩わしい人向けのマクロです。
現在はあまり複雑なことはできませんが、
できるだけ柔軟な記述ができるように今後機能を充実させていく予定です。
書式は以下の通りになります。
(ID):(本文)
IDを省略する、もしくは""と設定すると一般メッセージを出力し、 IDを入れるとConversationを自動で挿入します。
文字列の出力にはPrint, 値の出力にはPrintKzを使います。 改行、半角で区切り、次の行を出力します。
例:通常メッセージ出力
例:Conversation出力
また、メッセージウィンドウのサイズ、表示時間を変更することができます。
#MSGSET(表示時間,ウィンドウ幅,ウインドウ高さ,ウィンドウ位置)
ウィンドウのサイズは通常メッセージの場合のみ適用されます。
ウィンドウの幅、高さに数値以外の値を設定するとエラーとなります。 これは数値以外の値を許してしまうと自動改行・改ページ機能の実装に支障が出るからです。
例:#MSGSETの使用
また、メッセージラベルは記述が簡略過ぎて
どこで終わるのかがわかりにくいという問題が出る場合があります。
その場合、上のSSのようにメッセージラベルの本文をブロック化("{}"で囲む)すると
メッセージラベルの範囲を明確にすることができます。
EventScriptで使用するFlag, Leagueに名前を付けて管理することができます。
新しい名前のフラグに対して新しい番号のフラグを払出し、展開時に置き換えるという動きになります。
Flagに名前を付ける時は
$(名前)
Leagueに名前を付ける時は
$$(名前)
名前を付けたフラグの番号については、現在は自動で払出を行う仕様となっています。
Flagは33番から順に使用していきます。Leagueは末尾の119, 119から順に使用していきます。
現在の所、どちらも限界値を定めていないので使いすぎに注意してください。(バグということになります)
今後フラグ関連の詳細な設定機能を追加する予定です。
例:Flag, Leagueに名前をつけて使用
上記の他に、EventScriptとは異なるマクロ独自の言語仕様があります。
配布場所:http://fallentoga.hp.infoseek.co.jp
改変、再配布を物理的には制限していません。 上記サイト以外からこのツールを入手された場合は、 再配布者により何らかの改変が行われている可能性があります。