投稿記事

変数超初心者の記事 (2)

ビルダーでルート制限する方法の備忘録。(複数条件分岐応用編)

今回は突発でビルダーでのルート制限する方法の備忘録行きます。

このエンドを見ないと特定のエンドやルートが見られない、というやつですね。
前回の「ティラノビルダーで複数の条件を満たした場合のみ分岐させる方法の備忘録。」の応用で、ティラノスクリプトの力を借りて複数の条件を設定します。
[if]文のテンプレートと条件の書き方は前回の備忘録を参考にして下さい。

前回の参考記事↓
https://ci-en.net/creator/16848/article/797159

今回条件は以下の三つにします。

「end1、end2、end3、end4全てを見た場合にルートCに分岐する」
「end1、end2のみを見た場合にはルートBに分岐する」
「上記の条件を満たしていない場合はルートAに分岐する」

逆に言うと最初はルートAにしか入れず、end1、end2を見たらルートBに、end1、end2、end3、end4全てを見た場合にルートCに入れるという場合です。

早速行ってみましょう。

①ビルダー左上のプロジェクト>変数管理でend1、end2、end3、end4を作り、「システム変数」にチェックを入れます。

②分岐を解りやすくするため、シナリオ追加で各ルートシナリオ用のrootA、rootB、rootCと、各エンドシナリオ用のend1、end2、end3、end4を作ります。
(最初からあるscene1.ksは共通ルートとして扱います)

③シナリオ内のend1、end2、end3、end4にたどり着いた所で、それぞれ変数設定で変数がtrueになるように指定します。
 そして今回はend後はタイトル画面にジャンプする指定にします。

④rootA、rootB、rootCの最初にフラグ「start」を追加します。(ジャンプ先の指定用。シナリオの最初に飛ばす場合はなくても動く)

⑤ルートの途中、分岐を発生させたい場所(この場合共通ルートであるscene1.ksの最後)に次のティラノスクリプトを記述します。

ティラノスクリプトで記述

[if exp="sf.end1 =='true'&& sf.end2 =='true'&& sf.end3 =='true'&& sf.end4 =='true'"]

[jump  storage="rootC.ks"  target="*start"  ]

[elsif if exp="sf.end1 =='true'&& sf.end2 =='true'"]

[jump  storage="rootB.ks"  target="*start"  ]

[else]

[jump  storage="rootA.ks"  target="*start"  ]

[endif]

⑥rootAからend1.ksとend2.ksへは分岐ボタンで行けるように設定します。
 同様に、rootBからend3.ksとend4.ksへは分岐ボタンで行けるように設定します。

これでプレビューしてみましょう。

end1、end2を見た状態になると……。

rootBに分岐しました。

4つのendを見た状態でもう一度「はじめから」を選ぶと……。

成功!
無事rootCに入れました。

今回は駆け足でしたが、ここまで。

フォロワー以上限定無料

突発で書いた一言。

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

ビルダーで名字と名前を分けて入力する方法の備忘録。

ティラノビルダーでプレイヤーに任意の名前などを入力してもらい、ゲーム内で表示させる方法は、公式で説明されています。


ティラノビルダー公式ヘルプ↓
https://b.tyrano.jp/tech/page/text

そして、前回のデフォルト名を表示させる方法はこちら。
『ティラノビルダーで名前入力時デフォルト名を入力欄に入れる方法の備忘録。』↓
https://ci-en.net/creator/16848/article/782513

で。

名字と名前を分けて入力したり、後で合体させたりしてみようと色々試行錯誤してみたのですが……。

うん、変数わかんない。

と言うことで、ビルダーの機能と今までのスクリプトの情報だけで何とかしようと思います。

①プロジェクト>変数管理で、変数myoujiとnamaeを作る(システム変数にチェックは入れない)

②シナリオでmacro.ksを作り、scene1.ksの最初でティラノスクリプトで呼び出す
[call storage=macro.ks target=*start]

③macro.ksの中身

「ティラノスクリプト」で以下を記述

[macro name="f.myouji"]
 #&f.myouji
[endmacro]

[macro name="f.myouji"] [emb exp="f.myouji"]
[endmacro]

[macro name="f.namae"]
 #&f.namae
[endmacro]

[macro name="f.namae"] [emb exp="f.namae"]
[endmacro]

④次の順番でシナリオ内に配置する

「ラベル」inputstart
「改ページ」(戻って来た時に画像ボタンを消す)
「ティラノスクリプト」で以下を記述
[edit name="f.myouji" left="350" top="100" width="200" height="40" size="28" maxchars=4 initial="山田"] [edit name="f.namae" left="350" top="200" width="200" height="40" size="28" maxchars=4 initial="太郎"]

「画像ボタン」(OK)ストレージscene1.ksターゲット*inputnamae(分岐ボタンは使えないので、png画像のボタンを自分で用意して下さい)
「停止」
「ラベル」inputnamae
「入力コミット」
「改ページ」

ここまででプレビューするとこんな感じ。(背景、ウィンドウ画像はデフォルトのものです。)

「ジャンプ」ストレージscene1.ksターゲットsainyuuryoku(実行条件を指定する A myouji B 定数 空欄 条件 AとBが同じ場合)名字が空欄の場合再入力
「ジャンプ」ストレージscene1.ksターゲット
sainyuuryoku(実行条件を指定する A namae B 定数 空欄 条件 AとBが同じ場合)名前が空欄の場合再入力
「ジャンプ」ストレージscene1.ksinputok(名字と名前両方が入力されている場合次へ)
「ラベル」sainyuuryoku
「テキスト」で空欄の場合再入力を促す
  #
あなたの名字と名前を入力して下さい。
「ジャンプ」scene1.ks
inputstart(空欄の場合inputstartへ戻して再入力画面へ)

名字や名前を空欄にしてOKボタンを押すと再入力を求められます。


「ラベル」inputok
「ティラノスクリプト」で名前の確認
  #
あなたの名前は[emb exp="f.myouji"][emb exp="f.namae"]で良いですか?[p]

「画像ボタン」(はい)ストレージscene1.ksターゲットnameok
「画像ボタン」(いいえ)ストレージscene1.ksターゲット
inputstart

「停止」
「ラベル」nemaeok
「改ページ」(画像ボタンを消す)

名字と名前を入力した状態でOKボタンを押すと確認メッセージが出ます。

「はい」を押すと確定、「いいえ」を押すと入力画面に戻ります。


素材:びたちー素材館


名前を確定したら、実際にゲーム内で表示させてみましょう。

※シナリオ内で名字を名前欄に表示する時は
 #&f.myouji

名字をテキスト内で表示する時は
[emb exp="f.myouji"]

名前を名前欄で表示する時は
#&f.namae

名前をテキスト内で表示する時は
[emb exp="f.namae"]

フルネームで表示する場合。

#&f.myouji+f.namae
[emb exp="f.myouji"][emb exp="f.namae"]

出来た!!

な、長かった……。
フルネームを表示する時、[emb exp="f.myouji"]と[emb exp="f.namae"]をそのまま並べればいいという発想がなかった……。
そして名前欄に表示する時は#&の後に変数を+で繋げられるんじゃないか? でやってみたら行けた……。

フォロワーさんには自分が変数でフルネームを表示させようとして試行錯誤した上、玉砕した足跡を残しておきます……。
解る人には酷い文字列に見えるんだろうなあ……。
どの位意味が解ってないか少しでも伝わるといい……かな??

フォロワー以上限定無料

変数でフルネームを表示させようとして試行錯誤した上、玉砕した足跡。

無料

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

限定特典から探す

記事を検索