[前へ] [目次へ] [次へ]
Fuku Game Studioの最初に気になるいろいろをまとめたページです。
受け付けた質問の中から汎用性のありそうなものを追加していきます。
詳細なドキュメントやチュートリアルはまだできていません。
ドキュメントなどは一通り使える段階になったら整理しますので、お待ちください。
なお、 FGESのドキュメント は既に準備されていますが、仕様はまだ固定されていません。
●モジュールとは
FGSではゲームの制作システムの単位として「モジュール」という語を使用しています。
FGSPlayer.exeやFGSEditor.exeがOS的な役割を持つのに対して、
FGSにおけるモジュールは実行プログラムや編集用ソフトウェアとしての位置付けとなります。
モジュールは基本的にはFGESスクリプトで記述され、ゲームジャンルごとに特化して作られます。
ただしスクリプトだけでは厳しい部分について、
標準添付されるモジュールの中にはEXE側(C++レベル)に機能を実装しているものもあります。
(例えば、クエストモジュールではタイルマップの描画やイベントの基本制御、当たり判定など、
処理負荷が大きくなりやすい部分についてEXE側(C++レベル)に実装されています)
モジュールには少なくとも実行用スクリプトが収録され、対応する編集用スクリプトも用意できます。
モジュールはFGESスクリプトで実装するので、スクリプトを駆使すれば新しいモジュールを作成できます。
現在、標準でノベルモジュール(実行用)とクエストモジュール(実行用/編集用)、アクションモジュール(実行用/編集用)が準備されています。
使用するモジュールの変更は実行用スクリプトの変更が必要で、
現在デフォルトでクエストモジュールに設定されています。
●新規ゲーム時の初期位置について
実行用スクリプトの main.fges で指定します。
ただし、クエストモジュールではマップエディタでS9キー(デフォルトではキーボードのGキー)を押して
表示されるウィンドウから初期位置を指定します。
●ノベルモジュール関連
●セーブデータについて
セーブデータに保存されるのはゲーム変数の状態と、プレイヤーデータベース、
ノベルスクリプトの実行位置(行番号)、メッセージログです。
ノベルスクリプトを編集して行番号がずれた場合、データをロードした時にその影響を受けます。
●クエスト/アクションモジュール関連
●セーブデータについて
セーブデータに保存されるのはゲーム変数の状態と、プレイヤーデータベース、マップと位置です。
保存されるZ座標はレイヤー番号までで、レイヤー内のサブZ座標はデフォルトに戻ります。
また、ロード時にはそのマップに入りなおした扱いとなり、
イベントの位置や状態、マップ一時変数はリセットされます。
●プレイヤーオブジェクトについて
データベースのグローバルイベントの0番が自動的に使用されます。
プレイヤーオブジェクトのインスタンスIDは常に0で、マップを移動するとオブジェクトが作り直されます。
プレイヤーオブジェクトの見た目などをイベントで変更した場合、その効果はそのマップ内に制限されます。
他のマップでも効果を引き継いだように見せるためにはイベント状態に定義するか、
システムイベントを使って変更を再適用させます。
●システムイベントについて
データベースのグローバルイベントの1番が自動的に使用されます。
システムイベントのインスタンスIDは常に1で、マップを移動するとオブジェクトが作り直されます。
システムイベントオブジェクトはマップの遥か外側に配置され、全てのマップに存在するイベントです。
全てのマップで統一的に行いたい内容を記述することに向いています。
特定の条件でさらに他の動作を定義したい場合、
別のグローバルイベントをシステムイベント応答で生成するようにすると複雑性を抑えることができます。
●イベントが持つ様々なIDについて
●イベントID:そのオブジェクトのイベント内容を示すID。グローバルイベントはbit31が1になります。
マップ内で一意であり、イベント変数の識別に使用されます。
同じイベントIDを持つオブジェクトが複数ある場合、それらの中でイベント変数は共有されます。
●状態ID:そのオブジェクトのイベント状態を示すID。
●インスタンスID:そのオブジェクトを一意に識別するID。
イベントシステムをリセットするか、マップを切り替えるまで有効。
動的に生成したオブジェクトにも割り当てられ、インスタンス変数の識別に使用されます。
●シリアルID:そのオブジェクトをエディタ上で一意に識別するID。
このIDはマップごとに独立して割り当てられ、マップを切り替えても維持されます。
動的に生成したオブジェクトは明示的に割り当てない限り未設定状態になります。
シリアル変数の識別に使用されます。
同じシリアルIDを持つオブジェクトが複数ある場合、それらの中でシリアル変数は共有されます。
●グループ:そのオブジェクトが当たり判定を行うグループ。ビットフラグ。
●ヒットテストグループ:そのオブジェクトが当たり判定を受けるグループ。ビットフラグ。
●障害グループ:そのオブジェクトが当たり判定を受けた時、障害判定を返すグループ。ビットフラグ。
●通過グループ:そのオブジェクトが当たり判定を受けた時、通過判定を返すグループ。ビットフラグ。
●移動障害判定について
クエストモジュールにおいて、移動の可否を判断する当たり判定を移動障害判定と呼びます。
この判定は座標または領域を指定して行い、対象内のマップの判定とイベントの当たり判定が統合されます。
この時、複数の判定が返された場合、以下の優先順位で一番優先される判定が判定結果として採用されます。
通過判定は移動可能で、障害判定は移動不可です。一切の判定がない場合は基本的に通行可能になります。
優先される← →優先されない
イベントの障害判定 > イベントの通過判定 > マップの通過判定 > マップの障害判定
[前へ] [目次へ] [次へ]
最終更新 2023/09/18