RGSSスクリプト素材集



文章表示・ウィンドウ表示関連


ラベルで選択肢表示スクリプト

◆概略
 RPGツクールXPでは、標準の選択肢は、4つまでしか設定できません。また、文章表示ウィンドウの中にしか表示できません。
 スクリプトで選択肢を表示することも出来ますが、スクリプトが良く分からないという人には、ちょっと設定しにくいものです。
 そこで、イベントコマンドの「ラベル」を利用して、簡単に多項目の選択肢を表示できるスクリプト素材を作りました。


◆データ
バージョン:0.10
公開日付:2005/02/02
作った人:入江ノジコ
ダウンロード:label_choice.zip

◆バージョンアップ履歴
2005/03/19 Ver.0.11 : ウィンドウのZ座標変更(162行目の「win_choice.z = 10010」で設定)


◆使い方
 ダウンロードしたらファイルを解凍してください。ゲームを起動し、人と会話すると使い方を教えてくれます。より詳しい説明は、下記の『◆詳細な説明』を読んでください。
 サンプルゲームは、Game.exeで起動できます。
 RPGツクールXPで開く時は、Game.rxprojをダブルクリックするか、ツクールのメニューから開いてください。


◆できること
・5つ以上項目がある選択肢を表示できます(限度は無し)
・選択肢ウィンドウを好きな場所に表示できます(自動調整もできます)
・ウィンドウの表示行数を固定できます(自動調整もできます)
・ウィンドウの幅を固定できます(自動調整もできます)
・スクロールするウィンドウを表示できます
・ウィンドウ枠を非表示にできます


◆詳細な説明
 ダウンロードしたファイルをRPGツクールXPで開いたら、「スクリプトエディタ」を開いてください。一番下から2番目に「★label_choice」というセクションが設定されています。
 それが「ラベルで選択肢表示スクリプト」です。

○自分のゲームに導入する方法
 自分のゲームに導入する場合、自分のゲームの「スクリプトエディタ」を開いて「★label_choice」をコピーするだけです。
 コピーする位置は、「Interpreter 3」より下でなければなりません。(もちろん「Main」より上です)

 このスクリプトは、「Interpreter 3」の「command_118(● ラベル)」を再定義して書き換えますので、すでにこのメソッドを変更している場合は注意が必要です。その場合、ご自分で内容を見て変更してください。
 また、新たに「Window_Command2」というクラスを作ります。

○イベントでの設定の仕方
 このスクリプトは、標準の「ラベル」の機能に選択肢表示の機能を付加するものです。従って、選択肢の設定は「ラベル」で行います。

 下図を見てください。これが、最もシンプルな選択肢の設定の仕方です。


 1行目の「¥S スタートラベル」というのが、選択肢の始まりを表します。(ここでは、表示の都合で"¥"を全角で書いていますが、実際には半角で書いてください)
 ラベル名の先頭に"¥S"と書いてあれば、そこを選択肢の始まりとみなします。「スタートラベル」の部分は書かなくてもいいです。(ちなみにSはスタートのSです)

 最後の行の「¥E エンドラベル」というのが、選択肢の終わりです。ラベル名の先頭に"¥E"と書いてあれば、そこを選択肢の終わりとみなします。(ちなみにEはエンドのEです)

 スタートとエンドの間の「¥Cりんご」とか「¥Cみかん」というのが、選択肢の項目になります。ラベル名の先頭に"¥C"と書いてあれば、それを選択肢の項目名とみなします。(ちなみにCはチョイスのCです)
 項目数に制限はありません。
 上図の例の場合、実行すると下図のように表示されます。

 「りんご」を選べば、「¥Cりんご」と書いてあるラベルの下の行からイベントが実行されます。
 そして、次の項目ラベルのところまで行くと、エンドラベルを探してそこへジャンプして続きを実行します。

○キャンセル設定
 選択肢表示中にキャンセルボタンを押した場合に、キャンセルしてウィンドウを閉じるか、キャンセルを受け付けないか設定できます。
 キャンセルできるようにする場合は、スタートラベル("¥S"と書いたラベル)のすぐ下に、キャンセル時の処理を書いてください。下図のような感じです。

 こうすると、キャンセルキーを押した時、スタートラベルの次からイベントが実行されます。
 逆に、スタートラベルのすぐ下に、項目ラベルあるとキャンセル禁止になります。
 キャンセルは有効にしたいけど、何も実行したくないという時は、注釈など実行されないコマンドを入れておきましょう。

○ウィンドウの表示位置設定
 ウィンドウの表示位置は、標準の設定では自動調整になっています。
 自動調整の場合、X座標(横)は、常に中央揃えになります。
 Y座標(縦)は、「文章オプションの変更」の設定に合わせて自動調整します(文章表示と同じですね)。「文章オプションの変更」の設定は、ウィンドウ枠の表示・非表示も有効です。

 ウィンドウの表示位置を座標で指定したい場合は、スタートラベルに"¥[50,100]"のように書きます。例えば、下記のように書きます。

 ◆ラベル:¥S ¥[50,100] スタート

 これで、X座標が50、Y座標が100の位置に、ウィンドウの左上が来るように表示されます。
 
 座標は、どちらか省いてもいいです。
 "¥[,50]"のように、X座標を書かなければ、X座標は標準の中央揃えになり、Y座標は50になります。

○行数の設定
 ウィンドウの行数(ウィンドウの高さ)は、標準の設定では自動調整になっています。項目の数に合わせて行数も設定されます。
 これを、特定の行数に固定したい場合は、スタートラベルに"¥H5"のように書きます。例えば、下記のように書きます。

 ◆ラベル:¥S ¥H5 スタート

 これで、行数が5行に固定されます。(ちなみに、HはHeightのH)
 項目数が、2つでも3つでも、5行分の高さのウィンドウになります。
 項目数が、設定した行数を超えた場合、スクロールするようになります。スクロールするウィンドウは、下記のように表示されます。

○ウィンドウの幅の設定
 ウィンドウの幅は、標準の設定では自動調整になっています。項目の文字数に合わせて設定されます。
 これを、特定の幅に固定したい場合は、スタートラベルに"¥W5"のように書きます。例えば、下記のように書きます。

 ◆ラベル:¥S ¥W200 スタート

 これで、ウィンドウの幅が、200ピクセルに固定されます。(ちなみに、WはWidthのW)

○ウィンドウ枠の表示・非表示
「文章オプションの変更」の設定が、そのまま選択肢ウィンドウにも反映されます。
 
○選択肢のネスト
 仕様上、選択肢の中に更に選択肢を設定することは出来ません。つまり、選択肢を入れ子状に設定することは出来ないわけです。
 ただし、条件分岐の中に指定すれば、入れ子状にできます。このスクリプトは、ラベルを検索する時、条件分岐やループがあった場合、それを飛ばして処理する仕様になっているからです。
 サンプルイベントにも条件分岐を使ったものがあります。下図のような内容です。

 最初の選択肢は、「¥S ¥[20,20] スタートラベル」から始まるもので、「答える・答えない」を選択するものです。
 そして、「答える」を選択した場合、さらに次の選択肢を出すようになっています。これを、条件分岐の中に入れているのがポイントです。もし、条件分岐の中に入れていないと、選択肢の表示がおかしくなります。
 条件分岐の条件は、最初から満たされているものを選ぶといいでしょう。(ここでは、セルフスイッチAがOFFの場合にしています。セルフスイッチの初期値はOFFですから、セルフスイッチをいじっていない限り、この条件分岐は必ず実行されます)

◆その他注意事項
 選択肢を表示している間、他のイベントの実行は止まります。並列処理も止まります。
 その関係で、文章ウィンドウを表示した直後に選択肢を表示すると、ウィンドウが消え残りますので、間にウェイトを3フレームくらい入れてください。



Last Updated : 2007-12-17

Copyright © 2007 入江ノジコ. All rights reserved.
http://tanktown.web.infoseek.co.jp/tt/tt_top.htm