高度なカスタマイズ機能について
Queek II では、原則的にシステム側で行っている処理を、一部ユーザー側でカスタマイズすることができます。カスタマイズできる処理は、タイトル画面、ゲームオーバー処理、拡張メニューの 3 種類です。ここではチュートリアルシナリオから離れ、サンプルシナリオを開いて説明を行います。
タイトル関数
Queek II では、ゲームのタイトル画面を作る方法が 2 種類用意されています。ひとつは、デフォルトで用意されているタイトル画面の画像を差し替えて作ることです。この方法は、"DATA" ディレクトリに "_Opening1.bmp" と "_Opening2.bmp" を暗号化して用意しておき、一般設定のタイトル関数欄に何も入力しないことで利用できます。このとき、一般設定で設定されたタイトル画面での BGM が再生されます。サンプルシナリオはデフォルトのタイトル画面を使用しています。
デフォルトのタイトル画面は物足りない、独自のタイトル画面を作りたいという場合は「タイトル関数」を使います。一般設定でタイトル関数名を入力しておくと、RPG ランタイム起動時のエントリーポイントとして、ここで設定したタイトル関数が呼び出されます。タイトル関数は、void 型で引数を取らない非静的な関数でなければなりません。タイトル画面が呼び出されている間は、マップやキャラクターのデータを操作するような関数を呼び出してはいけません。画像処理関数などを用いて好みのアニメーション等を表示し、あるいは独自にタイトルメニューを作成します。タイトルメニューとは、「ニューゲーム」「ロード」「オプション」「終了」などのコマンドユーザーに選択してもうためのインターフェイスです。それぞれ、NewGame 関数、LoadMenu 関数、OptionMenu 関数、ForceShutDown 関数を用いて実装します。
タイトル画面のカスタマイズ
サンプルシナリオの "Title.qc" には、タイトル画面をユーザー側で自作するサンプルを収録しています。一般設定の「タイトル関数」に OriginalTitle と入力してください。この設定でゲームを起動すると、オリジナルのタイトル画面がサンプルシナリオに適用されます。サンプルのタイトル画面では、"ORIGINAL TITLE" という文字列がぐるぐる動き回るアニメーションを表示しています。コマンドキーを押すと、文字列が画面中央に揃えられ、ニューゲームやロードなどのメニューを表示します。OriginalTitle 関数の中身についてはここでは詳しく説明しませんので、興味のある方は解読してみてください。
ゲームオーバー関数
プレイヤーのパーティーのキャラクターが全滅すると、デフォルトの動作では "DATA" ディレクトリの "_GameOver.bmp" (暗号化しておく) を表示し、キー入力を待ってタイトル画面に戻ります。このとき、一般設定で設定したゲームオーバー時の BGM が再生されます。この動作を変更したい場合は、独自にゲームオーバー時の処理を定義するために「ゲームオーバー関数」を使用することが出来ます。使い方はタイトル関数と同じで、一般設定でゲームオーバー関数名を入力しておくことで、ゲームオーバー時に自動的にこの関数が呼び出されます。タイトル画面に戻るには BackToTitle 関数を用いて実装します。
ゲームオーバー処理のカスタマイズ
サンプルシナリオの "GameOver.qc" には、ゲームオーバー処理をユーザー側で自作するサンプルを収録しています。一般設定の「ゲームオーバー関数」に OriginalGameOver と入力してください。この設定でゲームを起動し、戦闘によりキャラクターが全滅すると、宿屋に 1 人運ばれるという処理を行っています。これを応用すれば、キャラクターが全滅してもすぐに終了せず、いろいろな処理が可能であると思います。
拡張メニュー関数
フィールド上のコマンドメニューに、独自の項目をひとつ追加することができます。この独自コマンドが実行されたときにコールバックされる関数が「拡張メニュー関数」です。一般設定で拡張メニュー名と拡張メニュー関数名を入力することで有効になります。拡張メニューを使用すれば、アイデア次第でかなりおもしろいこともできると思います。
拡張メニューの使用例
サンプルシナリオの "ExtMenu.qc" には、拡張メニューの機能を使用したサンプルを収録しています。一般設定の「拡張メニュー関数」に ExtMenu と入力してください。この拡張メニューでは、いくつかの場所に瞬間移動するというコマンドを実装しています。拡張メニュー自体はひとつしかありませんが、拡張メニューの中で選択肢を表示して分岐するようにすれば、いくつでもオリジナルの処理が実装できますね。拡張メニューを使用したおもしろいアイデアを期待しています。