i-school - テキストアドベンチャー 手順12
 以下の内容で順番に実装していきます。

29.ゲームのサイクルを確認する


29.ゲームのサイクルを確認する


 必要な機能については実装が終了しました。
 どのようなゲームのサイクルが形成されているのか確認し、足りない部分を補っていきます。

タイトル画面

 
 不要なゲームもありますが、タイトル画面があって、そのあとにメイン画面に遷移するゲームが多いです。
必要に応じてタイトル画面を用意します。
 メイン画面への遷移は画面のタップが一般的です。その場合にはタイトル画面を管理するスクリプトを用意して、その中のメソッドで遷移処理を行うようにしましょう。

オプション機能


 オプションとして1つの画面を用意するのか、あるいはオプションウインドウのゲームオブジェクトを作成しておいて
それをインスタンスする、あるいは配置しておいてSetActiveで切り替えるといった手法が考えられます。

 内容としては、言語の切り替え、BGMやSEのボリューム設定が多くのゲームに備わっているジェネリックな機能です。

 アドベンチャーゲーム特有のものとしてはメッセージの文字の色を変えたり、ウインドウの色を変えたりといった機能があります。

 設計手順としましては、どのような機能を備えるようにするのか、どのようにすればオプション画面やウインドウが開くのか(ボタン配置)を考えて設計します。

 BGMとSEのボリュームについてはGameDataクラスに設定できる変数を用意してありますので、こちらの値を操作するようにすれば実装できます。
(SoundManagerクラスも、この設定値が反映されるようになっています。)

 設計と実装の手順を考えたうえで、ご自分で作成してみましょう。

 手順としては、以下のような設計が一般的になると思います。

 1.Option用のポップアップとして使うゲームオブジェクトを作成し、その中に必要な部品(TextやButtonなど)を配置する
 2.1のゲームオブジェクトにアタッチするOption用ポップアップのゲームオブジェクトを管理するスクリプトを作成する
 3.2のスクリプトを1のゲームオブジェクトにアタッチする
 4.1のゲームオブジェクトをプレファブにする
 5.GameDirectorクラスなどに4のプレファブを生成する処理を追加する
 6.GameDirectorクラスなどにボタンを押したら5の生成処理を実行する処理を追加する

エンディングとその後の処理の流れ


 シナリオデータの分岐先によってはエンディングとなるパラグラフも存在しているはずです。
TextMessageViewerクラスにエンディングの場合の分岐を追加してありますので、こちらの処理を利用してエンディングを実装してみましょう。

 無事にエンディングを迎えた場合ゲームクリアとなります。その場合には、クリアした、という状態を保存しておいて何かに利用するのか
あるいはクリアしたという状態は特に利用しないのかを設計しておいて、必要に応じて実装を行います。

 いわゆる2周目以降のゲームプレイに関して、どのようにゲームが変わるのか、という部分です。
これらの要素がなければこの部分の実装は不要ですが、そういった周回による要素を考えている場合には、適宜な形で設計を考えておく必要があります。

フラグによる分岐


 ストーリーを進めていくと自動的に分岐がすべて表示されるのであれば、特にフラグ管理の必要はありません。
その分岐を進めていくことで、最終的にはエンディングへとつながるようにしましょう。

 ですが、分岐の表示自体が、特定の条件を満たさないと表示されないものがある場合、それはいずれかのタイミングでフラグを立てたり
あるいは進行してきた分岐の状態などを見て判断を行う必要があります。

 Aという分岐を選択しておいたことで、2つ先の分岐に3つ目の選択肢が表示されるようになる、といったものです。

 これらはGameDataにフラグ情報を用意しておき、分岐の選択肢をタップして選択した時点で対象のフラグの操作を行うようにすれば実装できます。
あるいは選択してきた分岐のシナリオ番号をすべて登録しておいて、対象のシナリオ番号が含まれているかどうかをチェックしても大丈夫です。

 実装方法は1つではありませんので、その時にご自分の持つ知識や技術で出来ることがいくつあるか考えて
その中で最善だと思われる方法で設計を行って実装していく手法がよいでしょう。

 知識のみで実装したことがない処理であれば、こういった機会を利用して、どのような処理が行われるのかを確認し、技術として習得していきましょう。

シナリオデータについて


 本プロジェクトは汎用的なアドベンチャーゲームの基本システムを備えています。
そのため、同様のデータの作りでシナリオデータをExcelファイルにて作成して頂くことで、別のシナリオのアドベンチャーゲームを作成することが可能です。

 最初はストーリーは短くて分岐の数もそれほど多くないシナリオデータを作成して、それを完成してみましょう。
そのシナリオデータが問題なく動作しているのであれば、次に作成するシナリオデータも問題なく動作します。
この繰り返しで、どんどんとシナリオデータを追加したり、あるいは新しいシナリオデータを作成することでゲームを発展させていくことが出来ます。