投稿記事

複数条件分岐の記事 (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に入れました。

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

フォロワー以上限定無料

突発で書いた一言。

無料

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

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

ティラノビルダーで複数の条件を満たした場合のみ分岐させる方法の備忘録。

今回は、ティラノビルダーで複数の条件を満たした場合のみ分岐させる方法の備忘録になります。

元々ビルダーのジャンプ機能では、「実行条件を指定する」にチェックを入れると発動条件を指定出来ます。

が。

ビルダーでは、一度に一つの条件しか指定出来ません。
ので、
「全てのエンディングを見た場合のみ分岐や表示を変える」場合とかだと、
「end1を見た場合に次のフラグに飛ばして、その後end2を見たかどうか判定してさらに飛ばして……」
とかやると、end数が数十もある場合、コンプリート後にタイトル画面を変えるとか、かなり力業で面倒くさくなります。

逆に見ていない場合に通常のタイトル画面に飛ばす設定にして、全て引っかからない場合全て見たということで、コンプリート後の画面を出すことも出来ますが……。

ここではティラノスクリプトの力を借りて楽をしようと思います。

まずはコピペ用にテンプレートを書いておきます。
今回は[if](もし~の場合)を使ってみます。

テンプレ開始

[if exp="変数名と条件"]

[ここに当てはまる場合の処理を書く]

[elsif if exp="変数名と条件"]

[1番目の条件に当てはまっていなかった場合で、また条件を指定したい場合は[elsif]で指定する]

[else]

[それ以外の場合の処理を書く]

[endif]

テンプレ終わり

で、次に条件の書き方。

条件

A && B and条件。AとBの両方にあてはまっているとき
A || B or条件。AとBのどちらかがあてはまっているとき

A == B  AとBは等しいとき
A != B  AとBが等しくないとき
A > B  AがBよりも大きいとき
A >= B  AがB以上のとき(Bも含んだ値)
A < B  AがBよりも小さいとき
A <= B  AがB以下のとき(Bも含んだ値)

では、実際に「end1、end2、end3、end4全てを見た場合に分岐する」をやってみましょう。

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


②シナリオ内のend1、end2、end3、end4を通過する所でそれぞれ変数設定で変数がtrueになるように指定します。

③それぞれのend後(分岐させたい場面)に、「end1、end2、end3、end4全てを見た場合に分岐する」ティラノスクリプトを記述します。


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

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

[else]

[jump  storage="title_screen.ks"  target=""  ]

[endif]


※個人的注意事項
条件全体は「"」(クォーテーション)で囲みますが、
値であるtrueそのものも「'」(シングルクォーテーション)で囲む必要があります!
'true'

AとBが等しいときは「==」とイコールを二つ書くこと。「=」ではないので注意。

プレビューしてみると……。

分岐した画面が表示されました!(画面は開発中のものです)

出来た!!

ティラノスクリプトは覚えるのが(ビルダー民には)少し取っつきにくいかもですが、覚えると楽ではあるので、役に立てば幸いです。

フォロワー以上限定無料

凍結祭りについてと、開発中タイトル画像。

無料

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

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

月別アーカイブ

限定特典から探す

記事を検索