WOLF RPGエディター(ウディタ)[3.175]/イベントコマンド【サイトトップへ戻る】
■選択肢
(更新:2023/04/24)


イベントコマンド【選択肢】について解説します。



ショートカット
■イベントコマンド【選択肢】とは?
■システム変数・システム文字列の一覧
■設定画面の説明:選択肢入力欄
■設定画面の説明:キャンセル分岐先
■設定画面の説明:[左キーで分岐][右キーで分岐]
■設定画面の説明:強制中断
■選択肢の表示位置の変更(システム変数[3〜4])について

イベントコマンド【選択肢】の使用例は別ページに記載しています。
【選択肢の使用例を開く】


  
■イベントコマンド【選択肢】とは?

イベントコマンド【選択肢】最大10個の選択項目を表示し、プレイヤーにどれか1つを選んでもらう時に使います。

▼サンプルゲームにある選択肢の表示




【文書の表示】のすぐ後に【選択肢】を設定する事で、文章の表示と一緒に表示する事ができます。

▼サンプルゲーム内の設定例(マップイベント[14:エフェクト女])




特殊文字を使う事で、文字のサイズや色を変えたり、様々な変数の値を表示したりする事ができます。
【特殊文字についての説明を見る】

特殊文字の画像を表示する特殊文字「\img[アドレス]」を利用して、画像を選択する選択肢を表示する事もできます。

【イベントコード表示】

■変数操作: Sys4:選択肢ウィンドウ Y座標 = 9 + 0
■文章選択肢:/ 【1】<C>\img[EnemyGraphic/GD_Bird(Red).png] /
        【2】<C>\img[EnemyGraphic/GD_Dog.png] /
        【3】<C>\img[EnemyGraphic/GD_Goblin(Green).png]
-◇選択肢:【1】 <C>\img[EnemyGraphic/GD_Bird(Red).png] の場合↓
|■
-◇選択肢:【2】 <C>\img[EnemyGraphic/GD_Dog.png] の場合↓
|■
-◇選択肢:【3】 <C>\img[EnemyGraphic/GD_Goblin(Green).png] の場合↓
|■
◇分岐終了◇



※横並びの選択肢はできません。



【選択肢】の仕様では、空欄の項目はゲーム画面上には表示されない仕様になっています。

▼[分岐2]が空欄


▼空欄の[分岐2]を無視して、文字列の設定がある[分岐1]と[分岐3]のみを表示




文字列タイプの変数を使って選択肢を表示する場合も変数に何も文字列を設定されていない場合は、
その選択項目は表示されません。

▼文字列変数[1]と[3]のみに文字列を設定した場合
【イベントコード表示】

■文字列操作:S1[] = "あいうえお"
■文字列操作:S2[] = ""
■文字列操作:S3[] = "さしすせそ"
■文章選択肢:/ 【1】\s[1] / 【2】\s[2] / 【3】\s[3]
-◇選択肢:【1】 \s[1] の場合↓
|■
-◇選択肢:【2】 \s[2] の場合↓
|■
-◇選択肢:【3】 \s[3] の場合↓
|■
◇分岐終了◇

▼文字列が保存されている[分岐1]と[分岐3]のみを表示



▲トップへ戻る▲


  
■システム変数・システム文字列の一覧

【選択肢】に関連する「システム変数」「システム文字列」の一覧です。
変数名をクリックすると詳細情報を見る事ができます。

【システム変数・システム文字列の説明ページを見る】

システム変数 説明
3:選択肢ウィンドウ X座標
4:選択肢ウィンドウ Y座標
選択肢の表示位置を設定。
【文章の表示】が実行されると、
コモンイベント[063:X[共]メッセージウィンドウ]にて
表示位置の初期化が行われます。
7:選択肢次回初期位置(0,1,2...) 次に選択肢を表示する時の初期の選択位置を設定。
サンプルゲームのタイトル画面では、
以下のように使用します。
Sys7の値 セーブデータ タイトル画面の選択肢
0 ない 初めに[スタート]を選択
1 ある 初めに[コンティニュー]を選択
8:基本フォントサイズ 【文章の表示】【選択肢】【ピクチャ】の文字列の表示
にて文字を表示する時のフォントサイズを設定。
14:選択肢ウィンドウ表示する?(1=ON)] 1=選択肢のウィンドウ画像を表示。
15:方向キーリピート初ウェイト(フレーム数指定)※[キーが押されるまで
16:方向キーリピート次ウェイト(フレーム数指定)※[キーが押されるまで
【選択肢】【キー入力】のキー押しの反応を設定。
17:選択肢SE番号:決定(Sys3)
18:選択肢SE番号:選択(Sys3)
19:選択肢SE番号:キャンセル(Sys3)
選択肢に関連するSEを設定。
設定する値は、
システムDB[3:SEリスト]データIDです。
20:選択肢カーソル現位置(0,1,2..非選択時:-1) 選択肢で現在選択している項目位置を設定。
内容
0〜9 選択している項目
-1 選択肢が表示されていない
-2 キャンセルを選択
98 左キーで分岐
99 右キーで分岐
[選択肢の強制中断]を実行した場合は、
最後に選択していた選択項目番号(0〜9)になります。
21:文字影付ける?(0=OFF,1以上=ON)] 「1」を設定すると文字表示に影が付きます。
22:選択肢カーソル表示モード?(0=通常,1=加算)] カーソル画像の表示方法を設定。
23:ルビのフォントサイズ ルビのフォントサイズを設定。
Sys26:選択肢ウィンドウ X余白
Sys27:選択肢ウィンドウ Y余白
選択肢ウィンドウの上下左右に余白を設定。
73:文・選択肢のマウス入力(1なら受付) 「1」を設定すると、
【文章の表示】のキー待ちや【選択肢】の選択&決定が
マウスで操作できるようになります。

システム文字列 説明
40:[読]選択肢1の内容
41:[読]選択肢2の内容
42:[読]選択肢3の内容
43:[読]選択肢4の内容
44:[読]選択肢5の内容
45:[読]選択肢6の内容
46:[読]選択肢7の内容
47:[読]選択肢8の内容
48:[読]選択肢9の内容
49:[読]選択肢10の内容
最後に表示した選択肢の各行ごとの内容を設定。


▲トップへ戻る▲


   
■設定画面の説明:選択肢入力欄



選択肢の文字列を設定する所です。



選択項目は1行ずつ分かれていますが、特殊文字は[分岐1][分岐2]と連動して機能します。

例えば、文字の色を変える特殊文字「\c[3]」を[分岐1]に設定した場合は、
[分岐2]以降も「\c[3]」の文字色で表示されます。

もしも[分岐1]のみを「\c[3]」にする場合は、[分岐2]に初期の色に戻す「\c[0]」を設定してください。

【イベントコード表示】

■文章選択肢:/ 【1】\c[3]はい / 【2】いいえ
-◇選択肢:【1】 \c[3]はい の場合↓
|■
-◇選択肢:【2】 いいえ の場合↓
|■
◇分岐終了◇
【イベントコード表示】

■文章選択肢:/ 【1】\c[3]はい / 【2】\c[0]いいえ
-◇選択肢:【1】 \c[3]はい の場合↓
|■
-◇選択肢:【2】 \c[0]いいえ の場合↓
|■
◇分岐終了◇


▲トップへ戻る▲


  
■設定画面の説明:キャンセル分岐先



キャンセルキーを押した時にどのように処理するのかを設定します。

ボタン 説明
分岐1〜10 キャンセルキーが押された時に、設定した分岐番号にあるイベントを実行します。
別分岐 キャンセルキー専用のイベントを実行します。
キャンセル不能 キャンセルキーを押しても何も処理しません。


▲トップへ戻る▲


  
■設定画面の説明:[左キーで分岐][右キーで分岐]



[左キーで分岐][右キーで分岐]は、左右キーを押した時に何らかのイベントを発生させる時に使います。

例えば、初めに「1〜10」の選択肢が表示されて、
右キーを押すと「11〜20」の選択肢が表示されるような処理を作る時に使います。

右キーを押す →

← 左キーを押す

▼設定例
【イベントコード表示】

■変数操作: Sys4:選択肢ウィンドウ Y座標 = 32 + 0
●ラベル地点「選択肢トップ」 <<<<<<<<<<<<<<<<<<<<<<<<★
■文章選択肢:/ 【1】選択項目01 / 【2】選択項目02 / 【3】選択項目03 / 【4】選択項目04 / 【5】選択項目05 /
        【6】選択項目06 / 【7】選択項目07 / 【8】選択項目08 / 【9】選択項目09 / 【10】選択項目10
-◇選択肢:【1】 選択項目01 の場合↓
|■
-◇選択肢:【2】 選択項目02 の場合↓
|■
-◇選択肢:【3】 選択項目03 の場合↓
|■
-◇選択肢:【4】 選択項目04 の場合↓
|■
-◇選択肢:【5】 選択項目05 の場合↓
|■
-◇選択肢:【6】 選択項目06 の場合↓
|■
-◇選択肢:【7】 選択項目07 の場合↓
|■
-◇選択肢:【8】 選択項目08 の場合↓
|■
-◇選択肢:【9】 選択項目09 の場合↓
|■
-◇選択肢:【10】 選択項目10 の場合↓
|■
-◇右キーの場合
|■文章選択肢:/ 【1】選択項目11 / 【2】選択項目12 / 【3】選択項目13 / 【4】選択項目14 / 【5】選択項目15 /
        【6】選択項目16 / 【7】選択項目17 / 【8】選択項目18 / 【9】選択項目19 / 【10】選択項目20
|-◇選択肢:【1】 選択項目11 の場合↓
| |■
|-◇選択肢:【2】 選択項目12 の場合↓
| |■
|-◇選択肢:【3】 選択項目13 の場合↓
| |■
|-◇選択肢:【4】 選択項目14 の場合↓
| |■
|-◇選択肢:【5】 選択項目15 の場合↓
| |■
|-◇選択肢:【6】 選択項目16 の場合↓
| |■
|-◇選択肢:【7】 選択項目17 の場合↓
| |■
|-◇選択肢:【8】 選択項目18 の場合↓
| |■
|-◇選択肢:【9】 選択項目19 の場合↓
| |■
|-◇選択肢:【10】 選択項目20 の場合↓
| |■
|-◇左キーの場合
| |●ラベル「選択肢トップ」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■
◇分岐終了◇



上記設定例のように、選択項目を多く設定すると、選択肢の表示位置が画面の下の方にずれた形で表示されます。

そのため、上記設定例では…
■変数操作: Sys4:選択肢ウィンドウ Y座標 = 32 + 0
の設定により、選択肢のY表示位置が画面の上の方へ移動するようにしています。

[Sys4:選択肢ウィンドウ Y座標]の調整なし [Sys4:選択肢ウィンドウ Y座標]の調整あり


▲トップへ戻る▲


  
■設定画面の説明:強制中断



【選択肢】は通常では、決定キーやキャンセルキーを押さないと選択肢は閉じませんが、
この[強制中断]を使うと強制的に選択肢を閉じる事ができます。



■選択肢の強制中断
を実行した時に、選択肢に[強制中断分岐]が無い場合は、選択中の項目が強制選択されます。

選択肢に[強制中断分岐]がある場合は、「強制中断された場合」に分岐されます。



使用例としては、例えば4択クイズなどで、
制限時間以内に選択しないと選択肢が閉じてしまうようなイベントを作る時にこの設定を使います。

【選択肢の強制中断】を実行するためには、選択肢を表示しているイベントとは別に、
「並列実行」のイベントで【選択肢の強制中断】を実行させる必要があります。

▼【選択肢の強制中断】を実行するためのイベント設定例
【イベントコード表示】

■コモンイベント

起動条件:並列実行
起動条件変数:V1[選択肢を閉じるフレーム時間]が1以上

■ループ開始
|■ウェイト:1 フレーム
|■変数操作: V1[選択肢を閉じるフレーム時間] -= 1 + 0
|■条件分岐(変数): 【1】 V1[選択肢を閉じるフレーム時間] が 0 以下
|-◇分岐: 【1】 [ V1[選択肢を閉じるフレーム時間] が 0 以下 ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇
■選択肢の強制中断

▼選択肢の設定例(300フレーム(約5秒)が経ったら選択中の項目を強制的に決定)
【イベントコード表示】

■変数操作: V1[選択肢を閉じるフレーム時間] = 300 + 0
■文章選択肢:/ 【1】選択項目01 / 【2】選択項目02 / 【3】選択項目03 / 【4】選択項目04
-◇選択肢:【1】 選択項目01 の場合↓
|■
-◇選択肢:【2】 選択項目02 の場合↓
|■
-◇選択肢:【3】 選択項目03 の場合↓
|■
-◇選択肢:【4】 選択項目04 の場合↓
|■
◇分岐終了◇

▼[強制中断分岐]を設定した場合
【イベントコード表示】

■変数操作: V1[選択肢を閉じるフレーム時間] = 300 + 0
■文章選択肢:/ 【1】選択項目01 / 【2】選択項目02 / 【3】選択項目03 / 【4】選択項目04
-◇選択肢:【1】 選択項目01 の場合↓
|■
-◇選択肢:【2】 選択項目02 の場合↓
|■
-◇選択肢:【3】 選択項目03 の場合↓
|■
-◇選択肢:【4】 選択項目04 の場合↓
|■
-◇強制中断された場合
|■文章:時間切れ
|■
◇分岐終了◇


▲トップへ戻る▲


  
■選択肢の表示位置の変更(システム変数[3〜4])について

選択肢の表示位置は以下のように設定すると、表示位置を変える事ができます。

【イベントコード表示】

■変数操作: Sys4:選択肢ウィンドウ Y座標 = 30 + 0
■文章選択肢:/ 【1】はい / 【2】いいえ
-◇選択肢:【1】 はい の場合↓
|■
-◇選択肢:【2】 いいえ の場合↓
|■
◇分岐終了◇

[Sys4:選択肢ウィンドウ Y座標]の変更なし [Sys4:選択肢ウィンドウ Y座標]の変更あり



しかし【文章の表示】一緒に設定した時には、表示位置を変える設定を行っても表示位置が変わりません。

【イベントコード表示】

■変数操作: Sys4:選択肢ウィンドウ Y座標 = 30 + 0
■文章:よろしいですか?
■文章選択肢:/ 【1】はい / 【2】いいえ
-◇選択肢:【1】 はい の場合↓
|■
-◇選択肢:【2】 いいえ の場合↓
|■
◇分岐終了◇

▼変化なし


これはコモンイベント[063:X[共]メッセージウィンドウ]48〜50行目に、
選択肢の表示位置を初期化する設定がある事が原因です。



この初期化は【文章の表示】でメッセージウィンドウを表示する時に実行されるため、
【文章の表示】と一緒に【選択肢】を設定した場合は、選択肢の表示位置を変える事ができません。

もしも下図のように文章+選択肢の時に、選択肢の表示位置を変えたい場合は、
コモンイベント[063:X[共]メッセージウィンドウ]を改造するか、
選択肢を表示する前に一瞬だけ文章を表示するか、いずれかの対策が必要になります。





▼コモンイベント[063:X[共]メッセージウィンドウ]を改造する

コモンイベント[063:X[共]メッセージウィンドウ]にある初期化の設定はゲーム開始時の初期化で必要になるため、
初期化の設定は削除しない方が良いでしょう。

今回の改造では、ゲーム開始時に1回だけ初期化が実行されるようにします。

もしもゲームの途中で初期化を実行したい時には、
システム変数[1:メッセージウィンドウ X座標]の値を変える事で初期化が実行されます。

【イベントコード表示(追加分のみ)】

|■条件分岐(変数): 【1】 Sys1:メッセージウィンドウ X座標 が CSelf60[改:sys1の値] 以外
|-◇分岐: 【1】 [ Sys1:メッセージウィンドウ X座標 が CSelf60[改:sys1の値] 以外 ]の場合↓
||■変数操作: Sys1:メッセージウィンドウ X座標 = 2 * CSelf88[座標倍率X(x10)]
||■変数操作: Sys2:メッセージウィンドウ Y座標 = 17 * CSelf89[座標倍率Y(x10)]
||▼ Ver3.00修正 メッセージウィンドウY座標を微調整
||■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 5
||■変数操作: Sys3:選択肢ウィンドウ X座標 = 16 * CSelf88[座標倍率X(x10)]
||▼ Ver3.00修正 選択肢ウィンドウY座標を微調整
||■変数操作: Sys4:選択肢ウィンドウ Y座標 = 7 * CSelf89[座標倍率Y(x10)]
||■変数操作: Sys5:ポーズカーソルX (-1=自動) = 16 * CSelf88[座標倍率X(x10)]
||■変数操作: Sys6:ポーズカーソルY (-1=自動) = 6 * CSelf89[座標倍率Y(x10)]
||■変数操作: CSelf60[改:sys1の値] = Sys1:メッセージウィンドウ X座標 + 0
||■
|◇分岐終了◇

▼改造設定したあとの状態




▼文章+選択肢の前に一瞬だけ文章を表示する

コモンイベント[063:X[共]メッセージウィンドウ]の初期化は、メッセージウィンドウを新規で表示する時に実行されます。

そのため【文章の表示】を連続的に設定している場合は、1つ目の【文章の表示】でメッセージウィンドウを表示するので、
2つ目以降の【文章の表示】では初期化が実行されません。

この仕様を利用して、下記設定例では文章+選択肢を表示する前に一瞬だけ文章を表示し、
先にメッセージウィンドウを表示してから文章+選択肢を表示するように設定します。

この設定方法は、文章+選択肢の処理ごとに設定する必要があるため、何度も表示位置を変えるような場合は、
上記の▼コモンイベント[063:X[共]メッセージウィンドウ]を改造するの方が良いかと思います。

【イベントコード表示】

■変数操作: Sys6:ポーズカーソルY (-1=自動) += 10000 + 0
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 0 + 0
■文章:\^
■変数操作: Sys6:ポーズカーソルY (-1=自動) -= 10000 + 0
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 9 + 0
■変数操作: Sys4:選択肢ウィンドウ Y座標 = 30 + 0
■文章:よろしいですか?
■文章選択肢:/ 【1】はい / 【2】いいえ
-◇選択肢:【1】 はい の場合↓
|■
-◇選択肢:【2】 いいえ の場合↓
|■
◇分岐終了◇

システム変数[6:ポーズカーソルY (-1=自動)]が初期設定のままだと、
最初の【文章の表示】で一瞬ポーズカーソルが表示されてしまいます。
そのため、ポーズカーソルのY表示位置を変えて、一時的にゲーム画面の外に表示するようにしています。

またシステム変数[10:メッセージ表示ウェイト(X フレーム)]が初期設定の「9」のままだと、
最初の【文章の表示】で9フレームのウェイトが発生してしまうため、
こちらも一時的に「0」に変更して、ウェイトが発生しないようにしています。


▲トップへ戻る▲



◎関連ページ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能

YADOT-WOLFトップ  気紛れな空間へ戻る  メール