システムダイアログは、それが必要になったとき、もしも定義されていれば表示されるダイアログで、
例えば「セーブ時の上書き確認」などがそれにあたります。
システムダイアログが定義されていない場合は、常にYESが押されたものとして処理を継続します。
通知ウィンドウは、システムが何らかの通知を行う必要があるけれども、それに対するリアクションは必要としない場合に表示されるポップアップで、
例えば、クイックセーブを行った際、それが実行されたことを通知する場合などに利用されます。
通知ウィンドウが定義されていない場合は、何もしません。
システムダイアログの一覧
システムダイアログは、現在の所次のタイミングで表示されます。
種類が、Y/Nのものは、YESとNOの二つのボタンを持っているダイアログで、
OKのものは、OKボタンを1つだけ持っているタイプのダイアログです。
ID | 呼びだされるタイミング | 種類 |
0 | ゲーム終了確認 | Y/N | ゲームを終了しますか? |
1 | タイトルへ戻る確認 | Y/N | ゲームを中断してタイトルへ戻りますか? |
2 | クイックロード確認 | Y/N | ロードしてもよろしいですか? |
3 | セーブ上書き確認 | Y/N | 上書きしてもよろしいですか? |
4 | WEBアクセス確認 | Y/N | ブラウザで表示してもよろしいですか? |
5 | 画面モード変更確認 | Y/N | ウィンドウ表示に戻してよろしいですか? |
6 | サウンドテスト不可 | OK | ミュート中はテスト再生を行えません |
7-9 | システム予約 | Y/N | |
10- | ユーザー定義 | Y/N | 任意に定義できます |
4はシステムが外部のURLをOSで標準に設定されているWEBブラウザを利用してアクセスする前に表示されます。
このときフルスクリーンで実行されていると、ウィンドウ表示に戻してからWEBブラウザを起動します。
その際画面モードをウィンドウ表示にして良いかどうか尋ねるのが、5です。
システムダイアログの構造
システムダイアログは、背景とボタンの2種類の画像からできています。
ボタンは
選択アイテムのパネルで作られているため、
通常/onMouse/無効の画像が横に並んだ画像データになっています。
通常、ボタンの形状は変化しないことが多いため、背景にαチャンネルを持たせて、ボタンにはαチャンネルを設定しないことが多いのですが、
ボタンにαチャンネルを設定する場合は、背景に合成した後のαチャンネルを持つ必要があります。
これは、ボタンが背景に合成されるときは、αはαで転送され、画像は画像で転送されるためです。
詳細は、
選択アイテムと関連づけるレイヤーの関係をご覧下さい。
システムダイアログの定義
メニュー
システムダイアログは、def.rsdで定義します。
定義に利用するコマンドは、--です。
定義ダイアログ
dialogIDから、設定したいシチュエーションを選択すると、自動的にdlgIDとボタン数が設定されます。
表示位置(x,y)は、ダイアログを表示したいビュー上の位置、背景画像ファイルは、上記で作成した背景の画像ファイル名を指定します。
この画像ファイルによって、レイヤーが作成されます。
ウィンドウレイヤーIDと
ボタンレイヤーIDはデフォルトでは80が書き込まれていますが、特別変更する必要はありません。
ボタンレイヤー作成画像ファイルは、ウィンドウレイヤーIDとボタンレイヤーIDが異なる場合、ボタンレイヤーを作成するための画像ファイルを指定します。
始点(x, y)と
領域(x, y)は、ボタンレイヤーIDがウィンドウレイヤーIDと異なる場合に
ボタンレイヤーを作成する位置と領域を指定するものですから、同じIDの場合は設定しなくて構いません。
ボタン用選択アイテムの左側の数値(10とか11とか)は、そのボタンを選択したとき返る値ですが、通常は10にYESを、11にNOのボタンを設定してください。
相対位置(x, y)は、ボタンを関連づけるレイヤー上のそれぞれのボタンの表示位置です。ウィンドウレイヤーIDとボタンレイヤーIDが同じ場合は、
ウィンドウレイヤー(背景画像)からの相対位置でボタン位置を指定します。
通知ウィンドウの一覧
通知ウィンドウは、現在の所次のタイミングで表示されます。
ID | 呼びだされるタイミング | 種類 |
0 | コントロールの右クリックが未定義 | Y/N | 右クリックメニューはありません |
1 | クイックセーブ[1]通知 | Y/N | クイックセーブされました |
2 | クイックセーブ[2]通知 | Y/N | クイックセーブされました |
3 | クイックセーブ[3]通知 | Y/N | クイックセーブされました |
4-7 | システム予約 | Y/N | |
8-31 | ユーザー定義 | Y/N | 任意に定義できます |
0はコントロールボタンを右クリックした際、なにも処理が定義されていない場合に表示されます。
ExHIBITの標準設定ではコントロールボタン(メッセージウィンドウの周辺にあるsaveとかloadのボタンのこと)の右クリックで、それぞれのボタンのプロパティが表示されます。
中にはプロパティの表示がないボタンを作ることがありますので、そういうボタンを右クリックした場合、0が表示されます。
ただし、プロパティを全く使わないタイトルもあります。そういうタイトルの場合は、いちいち通知を行うとうざったいため、0番の定義を行わないこともあります。
通知ウィンドウの定義がない場合は、何も行われません。
1はクイックセーブが行われた場合に表示されます。
ExHIBITの過去の版では、プロパティからクイックセーブが3カ所あったため、それに対応するよう1〜3が利用されていますが、
近年のクイックセーブがみため1個でN個がデイジーチェーンで使われるようなタイプの場合、1番だけ設定すればOKです。
通知ウィンドウの構造
通知ウィンドウは、表示されたあと所定の時間が経過すれば自動的に消えるウィンドウですので、
データはただの1枚絵です。
通知ウィンドウの定義
メニュー
通知ウィンドウは、def.rsdで定義します。
定義に利用するコマンドは、--です。
定義ダイアログ
通知ウィンドウリスト
定義する通知ウィンドウ(ID,説明)は、定義したい通知ウィンドウを指定します。
参照...を押すことで、通知ウィンドウリストがひらきますので、一覧から選択すれば良いでしょう。
ファイル名は、この通知ウィンドウを作成する画像データのファイル名を指定します。
表示座標は、ゲーム画面相対座標で、通知ウィンドウの左上を表示する位置を指定します。