外部コモンファイル読み込み

外部コモンファイル実行方法

外部のコモンイベントファイルを読み込むには、コモンイベント呼び出し(コモンEv名で呼び出し)で、 コモンイベント名に外部のコモンイベントファイル名を指定することで呼び出せる。 このとき、呼び出したいコモンイベントファイルはGame.exeと同じフォルダ、またはGame.exe配下のフォルダに配置されている必要がある。

呼び出すときはGame.exeがあるフォルダをカレントとしたパスで指定する。 Data/Commonフォルダにある Event.common を実行したい場合、 コモンイベント名には "Data/Common/Event.common" を指定する。

Dataフォルダが暗号化されている場合

Dataフォルダが暗号化されている場合でも、Dataフォルダ以下のコモンファイルを実行することができる。

実行時の挙動

ほとんどのイベントコマンドは、マップイベントやID指定/名前指定コモンイベントの呼び出しと同じ挙動となる。

挙動が変わる・注意が必要なのは以下のコマンド。

このようなコモンイベントを用意し、外部コモンファイル実行で呼び出す。

なお、実行するコモンファイル内のコモンイベント名は、この一覧にあるコモンイベント名のいずれとも異なる名前にしている。

テストイベント

実行結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv0/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/2行]
このマップイベントID: 0 -->[MapEv0/コモン23/1行]
このコモンイベントID: 23 -->[MapEv0/コモン23/3行]
処理中のEv番号:500023 -->[MapEv0/コモン23/5行]
処理中のEv行数:6 -->[MapEv0/コモン23/7行]
実行回数:1 -->[MapEv0/コモン23/9行]

コモンイベントIDが "23" となっていることが分かる。

既存のコモンイベントが23個(ID0~22)定義済みであることから、その直後からIDが振られていることが分かる。

同様の内容のコモンイベントを2つ用意し、それぞれを実行する。

テストイベント2

先に実行した外部コモンファイルに続けてこの内容のコモンファイルを実行する。

実行結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv0/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/2行]
このマップイベントID: 0 -->[MapEv0/コモン23/1行]
このコモンイベントID: 23 -->[MapEv0/コモン23/3行]
処理中のEv番号:500023 -->[MapEv0/コモン23/5行]
処理中のEv行数:6 -->[MapEv0/コモン23/7行]
実行回数:1 -->[MapEv0/コモン23/9行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 3 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/3行]
---------- 外部コモン読み込み用2-2 -->[MapEv0/コモン24/0行]
このマップイベントID: 0 -->[MapEv0/コモン24/2行]
このコモンイベントID: 24 -->[MapEv0/コモン24/4行]
処理中のEv番号:500024 -->[MapEv0/コモン24/6行]
処理中のEv行数:7 -->[MapEv0/コモン24/8行]
実行回数:1 -->[MapEv0/コモン24/10行]

先と同様に、ID23から順次割り振られている。

同じコモンファイルを複数回実行し、コモンイベントIDがどのように振られるかを確認する。

以下のマップイベントを実行する。

テストイベント3

呼び出すコモンイベントの内容はこれまでの内容と同じ。

外部コモンファイルを3回呼び出し、うち1回目と3回目は同じファイルを呼び出す。

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv0/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/2行]
このマップイベントID: 0 -->[MapEv0/コモン23/1行]
このコモンイベントID: 23 -->[MapEv0/コモン23/3行]
処理中のEv番号:500023 -->[MapEv0/コモン23/5行]
処理中のEv行数:6 -->[MapEv0/コモン23/7行]
実行回数:1 -->[MapEv0/コモン23/9行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 3 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/3行]
---------- 外部コモン読み込み用2-2 -->[MapEv0/コモン24/0行]
このマップイベントID: 0 -->[MapEv0/コモン24/2行]
このコモンイベントID: 24 -->[MapEv0/コモン24/4行]
処理中のEv番号:500024 -->[MapEv0/コモン24/6行]
処理中のEv行数:7 -->[MapEv0/コモン24/8行]
実行回数:1 -->[MapEv0/コモン24/10行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 4 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/4行]
このマップイベントID: 0 -->[MapEv0/コモン23/1行]
このコモンイベントID: 23 -->[MapEv0/コモン23/3行]
処理中のEv番号:500023 -->[MapEv0/コモン23/5行]
処理中のEv行数:6 -->[MapEv0/コモン23/7行]
実行回数:2 -->[MapEv0/コモン23/9行]

一度読み込まれたコモンファイルが再度読み込まれたり、セルフ変数が初期化されるようなことはない。

全く同じファイルを別のフォルダにコピーして読み込み、挙動を確認する。

以下のマップイベントを実行する。

テストイベント4

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv0/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/2行]
このマップイベントID: 0 -->[MapEv0/コモン23/1行]
このコモンイベントID: 23 -->[MapEv0/コモン23/3行]
処理中のEv番号:500023 -->[MapEv0/コモン23/5行]
処理中のEv行数:6 -->[MapEv0/コモン23/7行]
実行回数:1 -->[MapEv0/コモン23/9行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 3 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/3行]
---------- 外部コモン読み込み用2-2 -->[MapEv0/コモン24/0行]
このマップイベントID: 0 -->[MapEv0/コモン24/2行]
このコモンイベントID: 24 -->[MapEv0/コモン24/4行]
処理中のEv番号:500024 -->[MapEv0/コモン24/6行]
処理中のEv行数:7 -->[MapEv0/コモン24/8行]
実行回数:1 -->[MapEv0/コモン24/10行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 4 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/4行]
このマップイベントID: 0 -->[MapEv0/コモン23/1行]
このコモンイベントID: 23 -->[MapEv0/コモン23/3行]
処理中のEv番号:500023 -->[MapEv0/コモン23/5行]
処理中のEv行数:6 -->[MapEv0/コモン23/7行]
実行回数:2 -->[MapEv0/コモン23/9行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 5 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/5行]
このマップイベントID: 0 -->[MapEv0/コモン25/1行]
このコモンイベントID: 25 -->[MapEv0/コモン25/3行]
処理中のEv番号:500025 -->[MapEv0/コモン25/5行]
処理中のEv行数:6 -->[MapEv0/コモン25/7行]
実行回数:1 -->[MapEv0/コモン25/9行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 6 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/6行]
このマップイベントID: 0 -->[MapEv0/コモン26/1行]
このコモンイベントID: 26 -->[MapEv0/コモン26/3行]
処理中のEv番号:500026 -->[MapEv0/コモン26/5行]
処理中のEv行数:6 -->[MapEv0/コモン26/7行]
実行回数:1 -->[MapEv0/コモン26/9行]

全く同じコモンファイルであっても、パスが異なれば異なるコモンイベントとして扱われることが分かる。

また、パスの大文字/小文字が区別されていることも分かる。

実行されない外部コモンファイル呼び出し行がある状態でイベントを実行し、挙動を確認する。

以下のマップイベントを実行する。

テストイベント4

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv4/1行]
---------- -->[MapEv4/2行]
---------- -->[MapEv4/7行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 4 行 8 】   ※もし並列処理のエラーなら地点不明です -->[MapEv4/8行]
---------- 外部コモン読み込み用2-2 -->[MapEv4/コモン23/0行]
このマップイベントID: 4 -->[MapEv4/コモン23/2行]
このコモンイベントID: 23 -->[MapEv4/コモン23/4行]
処理中のEv番号:500023 -->[MapEv4/コモン23/6行]
処理中のEv行数:7 -->[MapEv4/コモン23/8行]
実行回数:1 -->[MapEv4/コモン23/10行]
---------- -->[MapEv4/9行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 4 行 10 】   ※もし並列処理のエラーなら地点不明です -->[MapEv4/10行]
このマップイベントID: 4 -->[MapEv4/コモン24/1行]
このコモンイベントID: 24 -->[MapEv4/コモン24/3行]
処理中のEv番号:500024 -->[MapEv4/コモン24/5行]
処理中のEv行数:6 -->[MapEv4/コモン24/7行]
実行回数:1 -->[MapEv4/コモン24/9行]
---------- -->[MapEv4/11行]

この結果から、外部コモンファイルを初めて実行する際にコモンイベントIDが振られる (そのコモンファイルを読み込む可能性があるイベントが実行されたときではない)事がわかる。

※ウディタの仕様上0回ループは最適化されない(0回ループがあるとその中のコマンド数によって負荷が変動するため)事が前提。

拡張子のないファイルを読み込み、挙動を確認する。

"Data/Common/外部コモン読み込み用1.common"を"Data/Common/外部コモン読み込み用1"にリネームし、これを実行する。

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv0/1行]

ファイル名に拡張子".common"が付与されていない場合、外部コモンイベントファイルとは認識されない様子。 名前が"Data/Common/外部コモン読み込み用1"のコモンイベントは存在しないため、何も実行されていない。

このことから、イベント名を指定して呼び出す際に、末尾が".common"である場合に外部ファイルを読み込んでいることが分かる。

存在しないファイルを指定し、挙動を確認する。

"Data/Common/NotFound.common"を実行する。

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv0/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 0 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv0/2行]

存在しないコモンイベント名が指定されたとき同様、何も実行されない。

以下のようなコモンイベントを用意し、コモンファイルとして保存する。

相対位置指定テストイベント1

このコモンファイルを読み込み、実行する。

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv1/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 1 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv1/2行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(1回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(2回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(3回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(4回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(5回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(6回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(7回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(8回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(9回目) -->[MapEv1/コモン23/2行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
コモンイベント008:aaaaが呼ばれました -->[MapEv1/コモン8/0行]
外部コモン読み込み用2-3 が呼ばれました(コモンイベントID:23)(10回目) -->[MapEv1/コモン23/2行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]
コモンイベント22が読み込まれました -->[MapEv1/コモン22/1行]

呼び出しコモンイベントを相対位置指定する場合、 読み込み後に割り振られたコモンイベントIDからの相対位置で指定する必要があることが分かる。

名前を指定してコモンイベントを呼び出す場合、以下のような制約がある。

同一名称のコモンイベントが存在する場合、番号の大きい方が呼び出されます。

http://www.silversecond.com/WolfRPGEditor/Help/04ev_common.html

以下のようなコモンイベントを用意する。

名前指定テストイベント1

このイベントの3行目のデバッグ文を削除したものを、"Data/Common/呼び出し確認1.common" として保存する。

この状態でイベント"Data/Common/呼び出し確認1.common"を実行する。

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv1/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 1 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv1/2行]
コモンイベント名指定時の呼び出し確認
コモンイベント名:呼び出し確認1
このコモンイベントID:23 -->[MapEv1/コモン23/1行]

外部コモンファイルが読み込まれていることが分かる。

コモンイベント"Data/Common/呼び出し確認2.common"を用意する。

名前指定テストイベント2

このイベントの3行目のデバッグ文を削除したものを、"Data/Common/呼び出し確認2.common" として保存する。

この状態で"Data/Common/呼び出し確認2.common"を実行する。

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv1/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 1 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv1/2行]
コモンイベント名指定時の呼び出し確認
コモンイベント名:Data/Common/呼び出し確認2.common
このコモンイベントID:23 -->[MapEv1/コモン23/1行]

同名のコモンイベント(ID0020)は呼ばれず、読み込まれた外部コモンファイルのイベントが実行されている。

"変数操作+とコモンイベントの初期化に関する挙動"の項で確認した挙動からも、この挙動が意図したものであることが分かる。

以下のような3つのコモンイベントを用意し、それぞれコモンファイルとして保存する。

外部ファイル呼び出し1
外部ファイル呼び出し2
外部ファイル呼び出し3

1つめのコモンファイルを読み込み、実行する。

実行結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv2/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/2行]
外部コモン読み込み用3 実行 -->[MapEv2/コモン23/0行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 コモンEv 23 行 1 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/コモン23/1行]
外部読み込み用1コモンイベントが呼ばれました -->[MapEv2/コモン24/0行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 コモンEv 23 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/コモン23/2行]
外部読み込み用2コモンイベントが呼ばれました(1回目) -->[MapEv2/コモン25/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 コモンEv 25 行 8 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/コモン25/8行]
外部読み込み用2コモンイベントが呼ばれました(2回目) -->[MapEv2/コモン25/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 コモンEv 25 行 8 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/コモン25/8行]
外部読み込み用2コモンイベントが呼ばれました(3回目) -->[MapEv2/コモン25/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 コモンEv 25 行 8 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/コモン25/8行]
外部読み込み用2コモンイベントが呼ばれました(4回目) -->[MapEv2/コモン25/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 2 コモンEv 25 行 8 】   ※もし並列処理のエラーなら地点不明です -->[MapEv2/コモン25/8行]
外部読み込み用2コモンイベントが呼ばれました(5回目) -->[MapEv2/コモン25/1行]

外部コモンファイルから更に外部コモンファイルを呼び出しても正常に動作することがわかる。

外部コモンファイル呼び出し時、引数を指定した場合に正しく渡されるか確認する。 また、返戻値を受け取れるかを確認する。

以下のような2つのコモンイベントを用意し、それぞれコモンファイルとして保存する。

引数確認1
引数確認2

コモンイベント"引数確認1"は引数を受け取る設定を、"引数確認2"は引数を受け取らない設定をしている。

以下のイベントを実行する。

引数確認イベント

なお、返戻値を受け取るためにはイベントコードを手動で編集する必要がある。 (存在しないコモンイベント名を指定した場合、UI上では返戻値の代入先を指定できないため)

実行結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv5/1行]
---------- -->[MapEv5/4行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 5 行 6 】   ※もし並列処理のエラーなら地点不明です -->[MapEv5/6行]
----------引数確認 -->[MapEv5/コモン30/0行]
セルフ変数0 : 10 -->[MapEv5/コモン30/8行]
セルフ変数1 : 200 -->[MapEv5/コモン30/8行]
セルフ変数2 : 65535 -->[MapEv5/コモン30/8行]
セルフ変数3 : -999999 -->[MapEv5/コモン30/8行]
セルフ変数4 : 0 -->[MapEv5/コモン30/8行]
セルフ変数5 : 引数文字列1 -->[MapEv5/コモン30/11行]
セルフ変数6 : 引数文字列2 -->[MapEv5/コモン30/11行]
セルフ変数7 : 文字列引数3 -->[MapEv5/コモン30/11行]
セルフ変数8 : 引数文字列4 -->[MapEv5/コモン30/11行]
セルフ変数9 :  -->[MapEv5/コモン30/11行]
----------引数確認終わり -->[MapEv5/コモン30/17行]
セルフ6:30 -->[MapEv5/7行]
---------- -->[MapEv5/8行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 5 行 10 】   ※もし並列処理のエラーなら地点不明です -->[MapEv5/10行]
----------引数確認 -->[MapEv5/コモン31/0行]
セルフ変数0 : 10 -->[MapEv5/コモン31/8行]
セルフ変数1 : 200 -->[MapEv5/コモン31/8行]
セルフ変数2 : 65535 -->[MapEv5/コモン31/8行]
セルフ変数3 : -999999 -->[MapEv5/コモン31/8行]
セルフ変数4 : 0 -->[MapEv5/コモン31/8行]
セルフ変数5 : 引数文字列1 -->[MapEv5/コモン31/11行]
セルフ変数6 : 引数文字列2 -->[MapEv5/コモン31/11行]
セルフ変数7 : 文字列引数3 -->[MapEv5/コモン31/11行]
セルフ変数8 : 引数文字列4 -->[MapEv5/コモン31/11行]
セルフ変数9 :  -->[MapEv5/コモン31/11行]
----------引数確認終わり -->[MapEv5/コモン31/17行]
セルフ6:99999 -->[MapEv5/11行]
---------- -->[MapEv5/12行]

この結果から、引数や返戻値の扱いはID指定やコモンイベント名指定呼び出しと変わらないことが分かる。

起動条件が"並列実行""自動実行"の外部コモンファイルが読み込まれた場合の挙動を確認する。

まず、自動実行イベントの挙動を確認する。

以下のコモンイベントをコモンファイルとして保存する。

自動実行イベント

以下のイベントを実行する。

自動実行確認イベント

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv6/1行]
---------- -->[MapEv6/2行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 6 行 4 】   ※もし並列処理のエラーなら地点不明です -->[MapEv6/4行]
自動実行イベントが呼ばれました -->[MapEv6/コモン30/0行]
---------- -->[MapEv6/6行]
10 -->[MapEv6/9行]
---------- -->[MapEv6/10行]

外部コモンファイルに定義した自動実行イベントは、読み込まれた後に起動条件を満たしても実行されないことが分かる。

続いて、常時並列実行イベントの挙動を確認する。

以下のコモンイベントをコモンファイルとして保存する。

自動実行イベント

以下のイベントを実行する。

自動実行確認イベント

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv7/1行]
---------- -->[MapEv7/2行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 7 行 3 】   ※もし並列処理のエラーなら地点不明です -->[MapEv7/3行]
自動実行イベントが呼ばれました -->[MapEv7/コモン30/0行]
---------- -->[MapEv7/4行]
---------- -->[MapEv7/6行]

外部コモンファイルに定義した並列実行イベントも、読み込まれた後に並列実行されないことが分かる。

これらの結果から、外部コモンファイルは「呼び出し」でしか実行できないコモンイベントとして読み込まれることが分かる。

通常のコモンイベントは、データセーブ時にセルフ変数も保存される。

外部コモンファイルから読み込まれたコモンイベントの場合はどのような挙動になるかを確認する。

コモンイベントの定義数を確認する。ID0~29まで定義されているので、 外部コモンファイルから読み込まれたコモンイベントはID30になると予測できる。

コモンイベント確認

セーブ用のイベント・ロード用のイベントを用意する。

セーブイベント
ロードイベント

呼び出すコモンイベントは、以前の挙動確認で使用した、セルフ変数0~9をデバッグ出力するコモンイベント。

呼び出し時にセルフ変数の内容を上書きさせないよう、イベントコードを手動編集して引数を渡さないようにしている。

ロードイベントではあえて複数のイベントを読み込ませることで、セーブイベントで読み込んだイベントをロード時に異なるコモンイベントIDで読み込ませている。

また、コモンイベント30のセルフ変数0~4を表示するイベントを用意する。 (処理の見通しが良くなるよう分割しているだけで、動作確認には関係ない。)

コモンイベント30の編集出力

セーブ用イベントを実行する。 セーブイベントが一とおり終わった後、セーブデータのロードとロードイベントが実行される。

結果は以下のとおり。

セーブ用イベントが実行されました -->[MapEv8/8行]
---------- -->[MapEv8/9行]
CSelf0:0 -->[MapEv10/4行]
CSelf1:0 -->[MapEv10/4行]
CSelf2:0 -->[MapEv10/4行]
CSelf3:0 -->[MapEv10/4行]
CSelf4:0 -->[MapEv10/4行]
---------- -->[MapEv8/11行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 8 行 12 】   ※もし並列処理のエラーなら地点不明です -->[MapEv8/12行]
----------引数確認 -->[MapEv8/コモン30/0行]
セルフ変数0 : 0 -->[MapEv8/コモン30/8行]
セルフ変数1 : 0 -->[MapEv8/コモン30/8行]
セルフ変数2 : 0 -->[MapEv8/コモン30/8行]
セルフ変数3 : 0 -->[MapEv8/コモン30/8行]
セルフ変数4 : 0 -->[MapEv8/コモン30/8行]
セルフ変数5 :  -->[MapEv8/コモン30/11行]
セルフ変数6 :  -->[MapEv8/コモン30/11行]
セルフ変数7 :  -->[MapEv8/コモン30/11行]
セルフ変数8 :  -->[MapEv8/コモン30/11行]
セルフ変数9 :  -->[MapEv8/コモン30/11行]
----------引数確認終わり -->[MapEv8/コモン30/17行]
---------- -->[MapEv8/13行]
CSelf0:0 -->[MapEv10/4行]
CSelf1:0 -->[MapEv10/4行]
CSelf2:0 -->[MapEv10/4行]
CSelf3:0 -->[MapEv10/4行]
CSelf4:0 -->[MapEv10/4行]
---------- -->[MapEv8/15行]
コモンイベント30のセルフ変数に値を設定します -->[MapEv8/16行]
CSelf0:0 -->[MapEv10/4行]
CSelf1:100 -->[MapEv10/4行]
CSelf2:200 -->[MapEv10/4行]
CSelf3:300 -->[MapEv10/4行]
CSelf4:400 -->[MapEv10/4行]
---------- -->[MapEv8/25行]
データをロードします -->[MapEv8/28行]
ロード用イベントが実行されました -->[MapEv9/7行]
---------- -->[MapEv9/8行]
CSelf0:0 -->[MapEv10/4行]
CSelf1:100 -->[MapEv10/4行]
CSelf2:200 -->[MapEv10/4行]
CSelf3:300 -->[MapEv10/4行]
CSelf4:400 -->[MapEv10/4行]
---------- -->[MapEv9/10行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 9 行 11 】   ※もし並列処理のエラーなら地点不明です -->[MapEv9/11行]
----------引数確認 -->[MapEv9/コモン30/0行]
セルフ変数0 : 0 -->[MapEv9/コモン30/8行]
セルフ変数1 : 100 -->[MapEv9/コモン30/8行]
セルフ変数2 : 200 -->[MapEv9/コモン30/8行]
セルフ変数3 : 300 -->[MapEv9/コモン30/8行]
セルフ変数4 : 400 -->[MapEv9/コモン30/8行]
セルフ変数5 :  -->[MapEv9/コモン30/11行]
セルフ変数6 :  -->[MapEv9/コモン30/11行]
セルフ変数7 :  -->[MapEv9/コモン30/11行]
セルフ変数8 :  -->[MapEv9/コモン30/11行]
セルフ変数9 :  -->[MapEv9/コモン30/11行]
----------引数確認終わり -->[MapEv9/コモン30/17行]
---------- -->[MapEv9/12行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 9 行 13 】   ※もし並列処理のエラーなら地点不明です -->[MapEv9/13行]
----------引数確認 -->[MapEv9/コモン31/0行]
セルフ変数0 : 0 -->[MapEv9/コモン31/8行]
セルフ変数1 : 0 -->[MapEv9/コモン31/8行]
セルフ変数2 : 0 -->[MapEv9/コモン31/8行]
セルフ変数3 : 0 -->[MapEv9/コモン31/8行]
セルフ変数4 : 0 -->[MapEv9/コモン31/8行]
セルフ変数5 :  -->[MapEv9/コモン31/11行]
セルフ変数6 :  -->[MapEv9/コモン31/11行]
セルフ変数7 :  -->[MapEv9/コモン31/11行]
セルフ変数8 :  -->[MapEv9/コモン31/11行]
セルフ変数9 :  -->[MapEv9/コモン31/11行]
----------引数確認終わり -->[MapEv9/コモン31/17行]
---------- -->[MapEv9/14行]
CSelf0:0 -->[MapEv10/4行]
CSelf1:100 -->[MapEv10/4行]
CSelf2:200 -->[MapEv10/4行]
CSelf3:300 -->[MapEv10/4行]
CSelf4:400 -->[MapEv10/4行]
---------- -->[MapEv9/16行]

"コモンイベントID30"の値が保存されていることが分かる。 ("Data/Common/引数確認1.common"イベントの値が保存されているわけではない)

コモンイベントを1万個定義した状態で外部コモンファイルを実行する。 読み込むコモンファイルのイベントは以下のとおり。(これまでの挙動確認に使用したイベント)

自身のコモンイベントID出力イベント

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv3/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 3 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv3/2行]
格納先 16000005 代入値「」  文字列操作:「文字列」を格納すべき場所に「変数」を代入しようとしました
処理地点:【マップEv 3 行 2 】   ※もし並列処理のエラーなら地点不明です
 -->[MapEv3/2行]
格納先 16000006 代入値「」  文字列操作:「文字列」を格納すべき場所に「変数」を代入しようとしました
処理地点:【マップEv 3 行 2 】   ※もし並列処理のエラーなら地点不明です
 -->[MapEv3/2行]
格納先 16000007 代入値「」  文字列操作:「文字列」を格納すべき場所に「変数」を代入しようとしました
処理地点:【マップEv 3 行 2 】   ※もし並列処理のエラーなら地点不明です
 -->[MapEv3/2行]
格納先 16000008 代入値「」  文字列操作:「文字列」を格納すべき場所に「変数」を代入しようとしました
処理地点:【マップEv 3 行 2 】   ※もし並列処理のエラーなら地点不明です
 -->[MapEv3/2行]
---------- 外部コモン読み込み用2-2 -->[MapEv3/コモン10000/0行]
このマップイベントID: 3 -->[MapEv3/コモン10000/2行]
このコモンイベントID: 10000 -->[MapEv3/コモン10000/4行]
処理中のEv番号:0 -->[MapEv3/コモン10000/6行]
処理中のEv行数:0 -->[MapEv3/コモン10000/8行]
実行回数:0 -->[MapEv3/コモン10000/10行]

読み込まれたイベントがコモンイベントID10000として認識されていることが分かる。

また、コモンセルフ変数の書き込み/読み取りが正常に作動しないことが分かる。

以下2つのコモンイベントを一つのコモンファイルに保存する。

複数イベント1
複数イベント2

以下のイベントを実行する。

複数イベント読み込み

コモンイベントが30個定義されている状態のため、次に読み込んだ外部コモンイベントにはID30が振られる。 外部コモンファイルに定義された2つめのイベントは、それに続くID31が振られると予想できる。

また、別の外部コモンファイルを読み込むことで、読み込む直前に最後に振られていたIDを確認する。 (2つめに読み込む外部コモンファイルのイベントは自身のコモンイベントIDをデバッグ文に出力する。)

結果は以下のとおり。

コモンファイル呼び出しテスト -->[MapEv3/1行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 3 行 2 】   ※もし並列処理のエラーなら地点不明です -->[MapEv3/2行]
外部読み込み用1コモンイベントが呼ばれました -->[MapEv3/コモン30/0行]
外部読み込み用1コモンイベントが呼ばれました -->[MapEv3/コモン30/0行]
【テストプレイ専用エラー】
存在しないコモンEv31を呼び出そうとしました
 -->[MapEv3/4行]
【テストプレイ専用メッセージ】.commonファイル読み込み機能は2.00でサポート対象外になりました。
正常動作は保証できませんのでご了承ください
処理地点:【マップEv 3 行 5 】   ※もし並列処理のエラーなら地点不明です -->[MapEv3/5行]
このマップイベントID: 3 -->[MapEv3/コモン31/1行]
このコモンイベントID: 31 -->[MapEv3/コモン31/3行]
処理中のEv番号:500031 -->[MapEv3/コモン31/5行]
処理中のEv行数:6 -->[MapEv3/コモン31/7行]
実行回数:1 -->[MapEv3/コモン31/9行]

この結果から、複数のイベントが定義されたコモンファイルを読み込んでも、最初の一つだけが読み込まれることが分かる。

Ver2系、Ver3系でそれぞれ以下のようなコモンイベントを作成し、単体保存する。

Ver2 イベント1
Ver2 イベント2
Ver3 イベント1
Ver3 イベント2

以下のイベントを実行する。

テストイベント

まずは1行目、2行目でコモンイベントが読み込まれ、Ver2系で作成したそれぞれのコモンイベントが実行される。

実行結果1-1

続けて3行目が実行され、4行目のcommonファイルが読み込まれる。

実行結果1-2

が、ここから先に進もうとすると強制終了してしまう。

1~2行目と3~4行目を入れ替えて再度イベントを実行する。

テストイベント2

さきほどはエラーで表示されなかった "215_CommonEventVer3-2.common" が実行される。

しかし、さきほどと同じく4行目のコモンイベントが実行されずに強制終了してしまう。

実行結果2

以下のように、1~3行目で「文章の表示」コマンドが混在した状態で再度イベントを実行する。

テストイベント3

2行目の「文章の表示」コマンドまでは実行される。

実行結果3

しかし、やはり3行目のコモンイベントが実行されずに強制終了してしまう。

1行目と3行目を入れ替えてもこの結果は変わらない。

これらの結果から、
  • Ver3.00以前に作成されたコモンファイルは呼び出し可能
  • Ver3.00以降に作成されたコモンファイルも呼び出し可能
  • Ver3.00以前に作成されたコモンファイルとVer3.00以降に作成されたコモンファイルが混在している場合は正常に動作しないことがある
ということがわかる。

元々サポート終了している機能であるため、これ以上の深追いはしない。