|| 「踊る金狼亭」TOPメモ箱>空白選択肢の扱い

対応】 CW:1.20○/1.28○/1.29○/1.30○/1.50○
ここで言う選択肢とは、メッセージやセリフの下に表示される分岐ラベルを指します。
文章を送ったり、行動を選択したりする時にクリックするあれです。
分岐ラベルは「OK」「Yes」「No」「キャンセル」などが選べる他、自由に入力する事もできます。
何も入力しないで空白にしておくと、少し特殊な扱いになります。

ラベルが空の選択肢がある時:
  1. 全ての選択肢でラベルが空白の場合、1番上の選択肢に「OK」の文字列が自動的に表示される。
    この時、2番目以降の選択肢は表示されない。
    (※分岐なし=選択肢が1つの場合も同じ)
  2. 選択肢の一部にラベルが空白のものが含まれる場合、それらの選択肢は表示されない。
    並び順に関係なく、選択肢の中で何らかの文字列が設定されているものだけ表示される。
なお、メッセージコンテントやセリフコンテントは、下記の4つの条件のいずれかに当てはまる時、表示そのものが行われません。
これら場合には、後方の分岐の状態に関わらず、イベントの処理は一番上の分岐の枝に自動で進んでいきます。選択肢の表示は行われません。
  1. セリフコンテントで、話者の所持称号に一致するセリフパターンが無い時。
  2. 指定した範囲に話者候補が居ない時。
    (※1人PTで_1を選択し、範囲を「選択中以外のメンバ」に指定した場合など)
  3. セリフやメッセージの内容が空白で、かつ後方の何かの文字列が設定された選択肢が1つ以下の時。
    (※分岐なし=選択肢が1つの場合も同じ)
  4. 文章が空白のイメージ付きメッセージコンテントで、画像指定が「使用カード」の時。
    (※この場合は、後方に文字列が設定された選択肢が2つ以上あっても選択肢表示は行われない)
ややこしくなくなってきました。
エディタで見れば本当に単純な話なんですが…

以下、図で説明を試みてみます。
『 』内がメッセージ/セリフコンテントの出力内容、[ ]内が分岐ラベルとお考え下さい。

【Case1】全ての選択肢が空白の時・1

◎エディタでの組み立て
メッセージ『おはようございます』
└[]メッセージ『今日も良い天気ですね』

↑これを実行すると2つのメッセージが続けて表示されます。

◎実行時
『おはようございます』
 └選択肢:OK→『今日も良い天気ですね』
  └選択肢:OK→(終了)

[▲上へ]

【Case2】全ての選択肢が空白の時・2

今度は、ラベルが空白の選択肢が複数ある場合です。

◎エディタでの組み立て
メッセージ『おはようございます』
├[]メッセージ『今日も良い天気ですね』
└[]メッセージ『今日は雨が降りそうですね』

◎実行時
『おはようございます』
 └選択肢:OK→『今日も良い天気ですね』
  └選択肢:OK→(終了)

空白の選択肢が2つに増えていますが、実行結果はCase1の時と同じです。
2つ目以降の選択肢は表示されず、「今日は雨が〜」のメッセージは無いのと同じになります。

[▲上へ]

【Case3】選択肢の一部のみ空白の時

次に、下のようにラベルの文字列が空のと、そうでないのとが混じっている場合。
この場合は、何かの文字列が設定されている選択肢だけが表示されます。

◎エディタでの組み立て
メッセージ『引き受けて頂けますか?』
├[引き受ける]セリフ『分かりました、その条件で…』
├[内容確認]セリフ『すみませんが、もう一度内容の確認を…』
└[]セリフ『あまりにも危険だ、少し考えさせて…』

◎実行時
『引き受けて頂けますか?』
 ├選択肢:引き受ける→『分かりました、その条件で…』
 │└選択肢:OK→(終了)
 └選択肢:内容確認→『すみませんが、もう一度内容の確認を…』
  └選択肢:OK→(終了)

ラベルが空になっている選択肢は表示されません。
複数選択肢がある時は、表示させたい選択肢全てに何かの文字列を設定しておく必要があります。

[▲上へ]

【Case4】直前が空のメッセージやセリフの場合の例外

直前のメッセージやセリフの本文が空の場合は、通常「どれか1つを選択してください。」と書かれた細長い枠の下に選択肢が表示されます。
基本はCase3と同じです。

>通常の場合
◎エディタでの組み立て
メッセージ『』
├[引き受ける]セリフ『分かりました、その条件で…』
├[内容確認]セリフ『すみませんが、もう一度内容の確認を…』
└[]セリフ『あまりにも危険だ、少し考えさせて…』

◎実行時
選択表示『どれか1つを選択してください。』
 ├選択肢:引き受ける→『分かりました、その条件で…』
 │└選択肢:OK→(終了)
 └選択肢:内容確認→『すみませんが、もう一度内容の確認を…』
  └選択肢:OK→(終了)

ただし、「直前のメッセージ/セリフが空」かつ「何かの文字列が設定された(=空でない)選択肢が1つ以下」の場合のみ、例外的に挙動が変わります。

>例外の例:その1
◎エディタでの組み立て
メッセージ『』
├[引き受ける]セリフ『分かりました、その条件で…』
├[]セリフ『すみませんが、もう一度内容の確認を…』
└[]セリフ『あまりにも危険だ、少し考えさせて…』

◎実行時
『分かりました、その条件で…』
 └選択肢:OK→(終了)

この場合は空のメッセージやセリフの出力命令は飛ばされ、処理は一番上の選択肢に自動的に進みます。
空ではない選択肢の位置によらず、また、一番上の選択肢のラベル内容によらずこうなります。
下の例その2の全てのパターンで、上の例その1と同じ実行結果が得られます。

>例外の例:その2
◎エディタでの組み立て
↓先頭の選択肢ラベルが空白
メッセージ『』
├[]セリフ『分かりました、その条件で…』
├[内容確認]セリフ『すみませんが、もう一度内容の確認を…』
└[]セリフ『あまりにも危険だ、少し考えさせて…』

↓後方に分岐が無い(先頭ラベル空白)
メッセージ『』
└[]セリフ『分かりました、その条件で…』

↓後方に分岐が無い(先頭ラベル空白でない)
メッセージ『』
└[引き受ける]セリフ『分かりました、その条件で…』

蛇足。
セリフの内容が空かどうかは、称号による内容分け別に考えます。
下の例その3は、男女で内容分けしたセリフの女性PC向けの方だけ空になっている例です。
2番目のセリフを女性PCが担当するとセリフ内容が空の場合の処理になり、男性PCが担当すると「いいんじゃないか?」が入って通常通りの処理になります。

>例外の例:その3
◎エディタでの組み立て
メッセージ『引き受けて頂けますか?』
└[]セリフ:_♀『』+条件なし『いいんじゃないか?』
 └[]セリフ『分かりました、その条件で…』

◎実行時
2番目のセリフを女性PCが担当
『引き受けて頂けますか?』
 └選択肢:OK→『分かりました、その条件で…』
  └選択肢:OK→(終了)

2番目のセリフを男性PCが担当
『引き受けて頂けますか?』
 └選択肢:OK→『いいんじゃないか?』
  └選択肢:OK→『分かりました、その条件で…』
   └選択肢:OK→(終了)

[▲上へ]