フラグ管理わけわかめでもビルダーなら全EDクリアで真ED行く仕組み作れるよ/ティラノビルダー備忘録
※ティラノビルダー初心者向けのお話です※
急にフラグ建築は無理なんよ
例えば、選択肢の選び方によってエンディングが3つに分岐するとして、3つ全てを見終わったら「真エンディング」に行くようにしたい。
こういうのを「フラグ」というみたいなのですが、軽率に「ティラノビルダー フラグ管理」とかでググると
いきなりこれが出てきます(いきなりレベル高)
ま、まって!!大丈夫、ちゃんとティラノビルダーの機能でもできるよー!!読むべきはコチラ!!
「変数管理」という機能を使うんですな。
変数とは数字とか文字を入れておく入れ物みたいなものです~
足し算や引き算もでき、コンポーネントなのでスクリプトを打たなくても扱うことができるので是非触ってみてほしい機能です。
ではでは作ってみようぞ。
①変数をつくる
まずは左上のメニュー「プロジェクト」→「変数管理」を開いて新しい変数を作ります。
使用用途は「エンディング1~3を見た」という印をつけるためなので
・ed1
・ed2
・ed3
という名前で追加してみます。
そして初期値を「未」と打ち込んでおきます。
これでこの変数は数値ではなく文字を入れておく入れ物になりました。
詳しくは↓
②コンポーネントを置く
下準備が終わったのでコンポーネントを置きに行きましょう~
今回はシンプルにエンディング用シナリオが3つ(ed1~3.ks)、真エンディング用シナリオ1つ(epilogue.ks)の状態でお送りします。
「3つのエンディングを見たら真エンディングへ飛ぶ」
ということはざっくり言うと
「3つのエンディングの最後に見た印をつける」
「3つ見た印が揃ったら真エンディングへジャンプさせる」
という仕組みになります。
ということで、それぞれのエンディング(ed1~3.ks)のお尻に下のコンポーネントを追加します。
まずは変数設定コンポーネントで「エンディング1を見ました!」の印として変数ed1に「済」を「代入」します。
これでエンディング1を見終わると変数ed1の中身が「未」→「済」に変わるわけですね(エンディング2では変数ed2、エンディング3では変数ed3を使う)
したら次は
下にジャンプコンポーネントを置きますがここで「実行条件を指定する」という機能を使います。
条件と合致していた時のみ指定の場所へジャンプするやつです。
こちらは”変数ed1の中身が「未」と同じならタイトル画面へ飛べ”という内容でございます。
さらにその下に似たジャンプが2つありますが設定内容はこちら
つまり
変数ed1の中身が「未」と同じならタイトル画面へ飛べ
変数ed2の中身が「未」と同じならタイトル画面へ飛べ
変数ed3の中身が「未」と同じならタイトル画面へ飛べ
という指示を並べてある状態です。
つまりつまり
この3つの指示をすり抜けられる(タイトル画面に飛ばない)状態というのは
”変数ed1~3の中身が「済」と同じ時”だけなんです。
すり抜けた先に待っているのは……
真エンディング(ここではepilogue.ks)へ無条件にジャンプするコンポーネント。
これで3つのエンディングを見終わりし者は真実へ導かれました(大げさ)
※使用ソフト:ティラノビルダーv202
その他もろもろ
ちなみに、ここで使っている変数は「セーブデータをロードすると中身が上書きされる」タイプの「ゲーム変数」というもの。
エンディングを見終わったらタイトル画面に戻ってはじめから再スタート、という短編ゲームを予想したつくりでお届けしましたが、もしあそこの選択肢からやり直そ!ってエンディングを迎える前のデータをロードされると「未」→「済」に代入したのがなかったことになり、プレイヤーが永遠にエンディングをコンプできなくなるので注意です。。
セーブロードできない仕様のゲームとか、エンディングを見たらタイトル画面ではなくリトライ画面へ導いてくれるゲームとか。そういうのに向いてる気がします。
もしセーブデータをまたいでエンディングの収集状況を保存したい場合は「システム変数」を使います。
最初に変数を作る際にシステム変数へチェックを入れます。
ここで注意なのが「初期値が設定できない」ため、最初にこの変数を使う際には必ず「代入」でお願いしますということ。最初だけ。必ず。
※最初に足し算や引き算を使うとNaNの呪いを受けるぞ(経験者)
よってシステム変数にした場合は初期値が入っていないので、先ほどのジャンプコンポーネントの指示も
変数ed1の中身が「済」と異なるならタイトル画面へ飛べ
変数ed2の中身が「済」と異なるならタイトル画面へ飛べ
変数ed3の中身が「済」と異なるならタイトル画面へ飛べ
へ変更する感じになりますね。
これでタイトルに戻ってどの時点のセーブデータをロードしても一度見たエンディングは見たことになってくれます。ただしゲームを終了したとしても保持されるため、エンディングを3つ達成した状態になると毎回必ず真エンディングへ導かれてしまうので場合によってはリセットボタン(変数設定で「済」→「未」に戻せるコーナー)が必要…?
※変数の種類について詳しくはこちら
システム変数といえば!
真エンディングまで見たら完全クリアの証としてシステム変数(今回の場合はepilogue)に「済」を代入したりなんかすると、タイトル画面に戻ってきた時に「クリア後だとタイトル画面が変わる」とか「クリア後のおまけページへのボタンが出てくる」とかもできるようになるのでおすすめです!
おまけページ出てくるだけならシステム変数でゲーム閉じても開いてもクリア済状態を保持してるのは問題ないですからね。
もし全てのエンディングを達成した状態で「はじめから」を選ぶと真エンディングが始まる、みたいなタイプだとまじでリセットボタンが欲しくなります。
ご参考に:クリア後のタイトル画面の変化
ご参考に:おまけページへ行くボタンの置き方
余談
NaNの呪いって何?
undefinedに足し算や引き算などをすると生まれる子、それがNaN………(変数ウォッチで初めて見た時まじでビビった)
歩けば棒に当たるティラノビルダー人生(楽しいです)