9 段目:選ばせたい
分かれ道をご用意いたしますわ。話してばかりのあの子たちに、今日は尋ねることを覚えさせますのよ。
お嬢様のお尋ねは、いつも答えがひとつしか用意されておりませんが。
あら、迷わずに済んで親切でしょう? あの子たちのほうは、ちゃんと選べるようにいたしますわよ。
叶えたいこと
この章で叶えるのは「選んでもらう」ですわ。あの子たちが話題を 2 つ差し出して、選ばれたほうの話を始めますのよ。足す辞書は、今回も 1 枚ですの。
- この章で足すファイル:
ghost/master/dic/09-choice.pasta - 叶うこと: 女の子の体をダブルクリックすると、女の子が選択肢を出すことがある。選択肢を選ぶと、選んだ話題の掛け合いが始まる
新しく覚える表現
選択肢行で選択肢を出す
選択肢は、1 行につき 1 つ書きますの。行の頭を字下げして @? と書き、進む先のシーンの名前を続けますわ。吹き出しに出す文字を変えたいときは、その後ろに 「」 で囲んで添えますのよ。
*つっつき反応その他
女の子:@笑顔 ねえ、ユーザーさん。なんの話をしよっか?
@?おやつの話「おやつの話をする」
@?おでかけの話
!select(10)
@?ジャンプ先「表示」と書くと、選択肢が出る。この行を選択肢行と呼ぶ。行の頭を字下げして書く- ジャンプ先 — 選ばれたときに進むシーンの名前である
- 「表示」 — 選択肢として吹き出しに出る文字である。
「」で囲んで、ジャンプ先の後ろに書く @?おやつの話「おやつの話をする」— 選択肢「おやつの話をする」を出す。選ばれると、おやつの話という名前のシーンへ進む- ジャンプ先の名前と
「の間に、空白は置けない @?おでかけの話— 「表示」を省くと、ジャンプ先の名前がそのまま選択肢に出る。この行は選択肢「おでかけの話」を出し、選ばれるとおでかけの話という名前のシーンへ進む- 選択肢行は、出したい選択肢の数だけ並べる。この章の辞書は 2 行で、選択肢が 2 つ出る
- この章の辞書は、女の子の問いかけの台詞の後ろに、選択肢行を書いている
- 最後の行の
!select(10)は、次の節で扱う
!select で制限時間を決める
とはいえ、いつまでもお返事を待つわけにはまいりませんわね。そこで、選択肢に制限時間を付けますの。!select(10) と書けば、待つのは 10 秒までですわ。
!select(秒)— 選択肢の制限時間を、秒で決める。行の頭を字下げして書く!select(10)— 選択肢の制限時間を 10 秒にする!に続けてコマンド名を書く行を、キューコマンド行と呼ぶ。selectは、選択肢の制限時間を決めるコマンドである!とselectと(10)の間に、空白は入れない- この章の辞書は、選択肢行の後ろに
!select(10)を書いている - 制限時間のうちに選ばれなかった選択肢は、時間切れになる。時間切れになると、どのジャンプ先へも進まない
選ばれた先のシーンへ進む
選択肢が選ばれると、ベースウェアは OnChoiceSelectEx というイベントを送ってきますの。7 段目の流儀でしたら、同じ名前のシーンを書くところですわね。
では、*OnChoiceSelectEx というシーンを書き足すのでございますか。
いいえ、その手間は要りませんわ。pasta が代わりに受け取って、選ばれた選択肢のジャンプ先と同じ名前のシーンへ、話を進めてくれますの。わたくしたちは、ジャンプ先の名前でシーンを書いておくだけですわ。
# 選択肢のジャンプ先。ジャンプ先の名前でシーンを書いておく。
*おやつの話
女の子:@キラキラ 今日のおやつは、プリンがいいな!
男の子:@困惑 きのうもプリンだったよね。
- 選択肢が選ばれると、ベースウェアから
OnChoiceSelectExが来る - pasta は
OnChoiceSelectExを受け取ると、選ばれた選択肢のジャンプ先と同じ名前のシーンを探して、そのシーンへ進む。この仕組みを、自動ルーティングと呼ぶ - ジャンプ先の名前で、シーンを書いておく。上の
*おやつの話は、選択肢「おやつの話をする」のジャンプ先である *OnChoiceSelectExという名前のシーンは、書かなくてよい。書くと、自動ルーティングの代わりに、そのシーンが実行される- 選択肢行のジャンプ先が、選択肢の ID になる。選択肢行と、
OnChoiceSelectExの付加情報は、次の表のとおりに対応する
| 選択肢行 | Reference0(選択肢に出る文字) | Reference1(選択肢の ID) | 選ばれると進むシーン |
|---|---|---|---|
@?おやつの話「おやつの話をする」 | おやつの話をする | おやつの話 | *おやつの話 |
@?おでかけの話 | おでかけの話 | おでかけの話 | *おでかけの話 |
- この章の辞書は、付加情報を変数に取り出さない。pasta が
Reference1の ID を見て、進むシーンを決める OnChoiceSelectExの出典は、次の表のとおりである
| イベント | いつ来るか(UKADOC より) | この段で使う Reference(UKADOC より) |
|---|---|---|
OnChoiceSelectEx | 「選択肢が選択された際に発生。」 | Reference0 —「選択肢のテキスト(ラベル)。」、Reference1 —「選択肢のID。」 |
辞書ファイルを足す
ghost/master/dic/09-choice.pasta を作り、次の内容を UTF-8 で保存する。
# 9 段目:選ばせたい
# @?ジャンプ先「表示」 と書くと、選択肢が出る。選ばれると、ジャンプ先と同じ名前のシーンへ進む。
# 「表示」を省くと、ジャンプ先の名前がそのまま選択肢に出る。
# !select(秒) で、選択肢の制限時間を秒で決める。
# この *つっつき反応その他 は 8 段目と同じ名前なので、8 段目の「その他」に当たる所(女の子の体など)をつつくたびに、8 段目の反応とこの選択肢のどちらかが選ばれる。
*つっつき反応その他
女の子:@笑顔 ねえ、ユーザーさん。なんの話をしよっか?
@?おやつの話「おやつの話をする」
@?おでかけの話
!select(10)
# 選択肢のジャンプ先。ジャンプ先の名前でシーンを書いておく。
*おやつの話
女の子:@キラキラ 今日のおやつは、プリンがいいな!
男の子:@困惑 きのうもプリンだったよね。
*おでかけの話
女の子:@笑顔 晴れたら、お弁当を持って出かけたいな。
男の子:@通常 ユーザーさんの分も作ろうか。
- 1〜8 段目のファイルは書き換えない。新しいファイルを
dic/に足すだけで、この段になる - この章の
*つっつき反応その他は、8 段目の*つっつき反応その他と同じ名前である。女の子の体か足元をつつくたびに、8 段目の反応とこの章の選択肢の、どちらか 1 つが選ばれる - 8 段目のほかのつっつき反応(女の子の頭・女の子の顔・男の子)は、今までどおりに呼ばれる。そこをつついても選択肢は出ない
*おやつの話と*おでかけの話は、選択肢のジャンプ先のシーンである- 台詞の頭の
@笑顔・@キラキラ・@困惑・@通常は、3 段目で付けた表情名である
起動して確かめる
慌てなくてよろしくてよ。女の子の体をつついたときの反応は、8 段目の 1 つと合わせて 2 つになりましたの。選択肢が出るまで、何度か触ってみなさいまし。
- SSP を終了し、もう一度起動する。
- 自分のゴーストが出ていなければ、メニューから切り替える。
- 選択肢が出るまで、女の子の体をダブルクリックする。
- 選択肢「おやつの話をする」をクリックする。
- もう一度、選択肢が出るまで女の子の体をダブルクリックし、選択肢「おでかけの話」をクリックする。
- もう一度、選択肢が出るまで女の子の体をダブルクリックし、何も選ばずに 10 秒待つ。
- 成功の目印(手順 3): 女の子の吹き出しに「ねえ、ユーザーさん。なんの話をしよっか?」と出て、続けて選択肢「おやつの話をする」と「おでかけの話」が出る

- 成功の目印(手順 4 の後): 女の子の吹き出しに「今日のおやつは、プリンがいいな!」と出て、続いて男の子の吹き出しに「きのうもプリンだったよね。」と出る

- 成功の目印(手順 5 の後): 女の子の吹き出しに「晴れたら、お弁当を持って出かけたいな。」と出て、続いて男の子の吹き出しに「ユーザーさんの分も作ろうか。」と出る
- 成功の目印(手順 6 の後): 選択肢が時間切れになり、どちらの掛け合いも出ない
- 選択肢が出ないときは、8 段目の
*つっつき反応その他の反応(「ん? なにか用事?」)が出ている。もう一度ダブルクリックする *つっつき反応その他という名前のシーンは、8 段目の 1 つとこの章の 1 つで、合わせて 2 つになった。2 つを一巡するあいだに、選択肢は 1 回出る
もっと詳しく
尋ねて、選んでいただいて、話が進む。ようやく会話らしくなってきましたわね。
先ほどお嬢様が何をお選びになったか、あの子たちは覚えているのでございましょうか。
それが、きれいさっぱり忘れていますのよ……。次は、終了しても消えない記憶を持たせますわ。