ファイルフォーマット のバックアップソース(No.7)

[[トップページ]]

- このページは、ウディタ用の外部ツールを作成する人を対象としたページです。
- まだまだ未完成です。

* 文字列データ [#r1da46e9]
|項目|バイト数|備考|
|文字列の長さを表す整数|4|文字列長|
|文字列データ|X|上記で指定した実際の文字列データ。文字列の末尾を表す'\0'が最後に付加される。|

* .commonファイルフォーマット [#v0b32564]
- この節では、コモンイベントを保存する際に生成される.commonファイルのファイルフォーマットを解説しています。

|内容|バイト数|備考|
|(ファイル先頭)|-|-|
|.commonファイルであることを示すマジックナンバー|4|6C 38 0C 03|
|.commonファイルに含まれるコモンイベント数|4|-|
|コモンイベント|X|後述する&aname(s9b76f2d){コモンイベント};が上記個数|
|(ファイル末尾)|-|-|


* コモンイベントフォーマット [#s9b76f2d]
- この節では、.commonファイルに含まれるコモンイベントのフォーマットを解説しています。

|内容|バイト数|備考|
|(コモンイベント先頭)|-|-|
|マジックナンバー|1|8E(1つのコモンイベントイベントの始まりを示すマジックナンバー)|
|ID|4|コモンイベントの番号|
|起動条件|1|20:呼び出しのみ  21:自動実行  22:並列実行  23:並列実行(常時)|
|起動条件の変数番号|4|後述|
|起動条件の比較値|4|-|
|数値入力の個数|1|-|
|文字列入力の個数|1|-|
|コモンイベントの名前の文字列データ|4+X|-|
|イベントコマンド数|4|-|
|イベントコマンド|X|後述する&aname(m8d458cd){イベントコマンド};が上記個数|
|オプションデータサイズ|4|(現在のところ、メモ用以外には使用されていない?)|
|オプションデータ|X|stub|
|メモの文字列データ|4+X|コモンイベントのメモ欄に表示される文字列データ|
|チェックデジット|1|データ配列が正常に並んでいるかチェック。この値が0x8Eか0x8Fでない場合は強制終了する。|
//|入力する数値の個数|4|-|
//|入力する数値の意味の文字列(?)|X||
//||||
//||||
|(コモンイベント終端)|-|-|

* イベントコマンドフォーマット [#m8d458cd]
- この節では、イベントコマンドのフォーマットを解説しています。
- 1個のイベントコマンドは複数の数値データと、複数の文字列データから構成されます。

|内容|バイト数|備考|
|(イベントコマンド先頭)|-|-|
|数値データの個数|1|-|
|数値データ|X*4|数値データを上記個数|
|インデント|1|後述|
|文字データの個数|1|-|
|文字データ|X||
|動作指定フラグ|1|このイベントコマンドが動作指定か否かを表すフラグ(動作指定コマンドの場合1、それ以外の場合0)|
|動作指定|X|動作指定コマンドの場合、その内容(後述)|
|(イベントコマンド終端)|-|-|

** インデントについて [#zc1e3747]
- インデントとは字下げのことをいいます

* 動作指定コマンドの内容 [#q258aaae]
- この節では、動作指定コマンドのフォーマットを解説しています。
|内容|バイト数|備考|
|(動作指定コマンド先頭)|-|-|
|stub|||
//||||
|(動作指定コマンド末尾)|-|-|

* 各種イベントコマンドのフォーマット [#t02b997d]
- イベントコマンドの詳細について解説を行います。
- &aname(m8d458cd){イベントコマンドフォーマット};を読まれていることを前提としています。

** 1個の数値データのみからなるイベントコマンド [#h8713b6f]
- イベントの種類を表す数値データ1つのみからなるイベントコマンドを以下に示します。
- 文字列データ個数は0です
|イベントコマンド|イベントを表す数値データ|
|(命令無し)-注1|00 00 00 00|
|チェックポイント|63 00 00 00|
|文章の強制中断|69 00 00 00|
|トランジション準備|A1 00 00 00|
|トランジション実行|A2 00 00 00|
|ループ中断|AB 00 00 00|
|イベント処理中断|AC 00 00 00|
|タイトル画面へ戻る|AE 00 00 00|
|ゲーム終了|AF 00 00 00|
|ループ開始へ戻る|B0 00 00 00|
|ピクチャ以外の画面更新[停止]|B1 00 00 00|
|ピクチャ以外の画面更新[再開]|B2 00 00 00|
|動作完了までウェイト|CA 00 00 00|
|イベント処理中のEv移動ON|E6 00 00 00|
|イベント処理中のEv移動OFF|E7 00 00 00|
|分岐終了-注2|F3 01 00 00|
|ループここまで-注3|F2 01 00 00|

- 注1:イベントの最後、ループや条件分岐の中などに現れる空命令。
- 注2:文章選択肢、条件分岐(変数)、条件分岐(文字列)で共通
- 注3:回数つき、回数無し両方で共通
//- 注:
//- 注:
//- 注:

- たとえば、「文章の強制中断」の場合以下のようになる。
 01 69 00 00 00 XX 00 00
 │ │          │ │ └ 動作指定命令かどうかのフラグ。動作指定命令でないので0。
 │ │          │ └ 文字列データ個数。文字列データを必要としないので0。
 │ │          └ インデントの段数。
 │ └ 「文章の強制中断」を意味する数値 69 00 00 00
 └ 数値データ個数。イベントコマンドの種類を表す数値データが1個からなるので1。

** イベントコマンド「変数操作」のイベントフォーマット [#w025b8de]
|内容|バイト数|備考|
|(イベントコマンド「変数操作先頭」)|-|-|
|数値データの個数|4|この値は5または6|
|変数操作のイベントコマンドを表す定数|4|79 00 00 00|
|操作対象の変数を表す数字|4|変数の指定方法は別途記載|
|操作に用いる左オペランド|4|同上|
|操作に用いる右オペランド|4|同上|
|操作を表す数値データ|4|詳細は別途記載|
|操作する変数の個数|0 or 4|複数の変数を操作するチェックをつけた場合は、4バイトで操作する個数を指定|
|インデントの深さ|1|-|
|文字列データの個数|1|00(「変数操作」イベントコマンドには、文字列データは含まれないので、必ず00)|
|動作指定コマンドフラグ|1|00|
|(イベントコマンド「変数操作末尾」)|-|-|

** 文章表示・コメント文のイベントフォーマット [#xe1816b0]
|内容|バイト数|備考|
|(イベントコマンド先頭)|-|-|
|数値データの個数|4|この値は1|
|変数操作のイベントコマンドを表す定数|4|文章表示の場合は65 00 00 00、コメント文の場合は67 00 00 00|
|インデントの深さ|1|-|
|文字列データの個数|1||
|文字列データ|X|表示する文字列またはコメント|
|動作指定コマンドフラグ|1|00|
|(イベントコマンド末尾)|-|-|