|| 「踊る金狼亭」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つの場合も同じ)
    • セリフやメッセージの内容が空白でも、後方の何かの文字列が設定された選択肢が2つ以上のときは、「どれか一つを選択してください。」という文章とともに選択肢が表示される。
  4. 文章が空白のイメージ付きメッセージコンテントで、画像指定が「使用カード」のとき。
    (※この場合は、後方に文字列が設定された選択肢が2つ以上あっても選択肢表示は行われない)
ややこしくなくなってきました。
エディタで見れば本当に単純な話なんですが…

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

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

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

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

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

[▲上へ]

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

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

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

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

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

[▲上へ]

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

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

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

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

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

[▲上へ]

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

直前のメッセージやセリフの本文が空の場合は、ラベルが空ではない選択肢の数によって挙動が変わります。

Case4-1:直前のメッセージ/セリフが空 かつ ラベルが空ではない選択肢が【2つ以上】の場合

「どれか一つを選択してください。」と書かれた細長い枠の下に、ラベルが空ではない選択肢のみ表示されます。
空白のメッセージやセリフの代わりにシステムによるメッセージが表示されるだけで、挙動としてはCase3と同じです。

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

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

Case4-2:直前のメッセージ/セリフが空 かつ ラベルが空ではない選択肢が【1つ以下】の場合


この場合、例外的に挙動が変わります。
空のメッセージやセリフの出力命令は飛ばされ、自動的に一番上の選択肢に処理が進みます。

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

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

後方が何分岐か、空ではない選択肢の位置、一番上の選択肢のラベル内容による影響は受けません。
下の「例外の例:その2」で示した4つのパターンは、全て上の「例外の例:その1」と同じ実行結果が得られます。

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

↓選択肢ラベルが全て空白
メッセージ『』
├[]セリフ『分かりました、その条件で…』
├[]セリフ『すみませんが、もう一度内容の確認を…』
└[]セリフ『あまりにも危険だ、少し考えさせて…』

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

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

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

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

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

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

[▲上へ]