第11話 ゲームブックアプリのシナリオ作成ツールについて

 ゲームブックアプリのシナリオ作成ツールの作成中です。この投稿では、その概要について書いていきます。なかなか長文になりますが、シナリオ作成のイメージとして利用して頂ければ幸いです。(筆者としては、ここにまとめることにより仕様の抜け落ちが無いかを確認し、またアプリ内のヘルプの文案を推敲する意味でも書いています。)


 さて筆者が一番最初にゲームブックのHPを作ったのは、かなり以前の事なのですが、その時は各項目をTabで区切るテキストファイルでシナリオを、メモ帳を使って作っていました。(ゲームの各機能をテストするのが目的のシナリオでしたが200ページを超えていたので、それなりに苦労しました)


 知り合いも簡単なゲームブックシナリオを作ってくれたので、出来ない話ではないのですが、もうちょっと作りやすい方法(具体的にはページの集まりである"ルート"を使う方法)を今回の作成ツールでは試しています。



【シナリオ、ページ、ルート】

  まずシナリオ(すなわちゲームブック)と言うものがページの集まりであることは異論が出ないと思います。


 しかし通常の本でもそうですが、ページが集まったとしても、それをブックとは呼べません。ブックとは、それを構成する各ページに”順番”と言う関係があって初めてブックになると筆者は考えます。


 ここでページの関係性に着目し、2つ以上のページからなり、そのページの間に”前後関係”があるグループを”ルート”と呼ぶ事にします。


 "ルート"は、その構成ページ間の前後関係によりいくつかののタイプに分けることが出来ます。次項では各ルートタイプの概要について説明します。



【ルートタイプ】

 このシナリオ作成ツールでは、以下のような"ルート"タイプを想定しています。(名称は変更するかもしれません)なお、"ルート"内の各ページは、配列と言うデータ形式で保持しています。


 配列とはその中の各要素に順番と言う性質を持たせたデータの集まりです。つまり例えば3番目の要素は”27ページ”であり、最後の要素は”11ページ”と言う扱いが出来ると思ってください。


・直線片道タイプ

 最初のページから最後のページまで連続した繋がりを持ちますが一方通行です。

例:

[”始まりの村”、”旅立ちの朝”、”初めての野営”]

 最初のページ”始まりの村”は2番目のページの”旅立ちの朝”へ続きます。しかし、3番目のページの”初めての野営”にいきなり飛ぶ事は出来ません。また、2番目のページ(そして3番目のページ)から最初のページに戻る事も出来ません。


・直線往復タイプ

 最初のページから最後のページまで連続した繋がりを持ちます。前のページに移動する事も可能です。

例:

[”101号室”、”102号室”、”103号室”]

 ”101号室”から”102号室”への移動(あるいはその逆)は可能ですが、”103号室”に直接移動は出来ません。必ず”102号室”を経由する必要があります。


・ループ片道タイプ

 最後のページは最初のページに戻ります。ただし、逆に最初のページから最後のページに移動は出来ません。

例:

[”1時”、”2時”、中略、”11時”、”12時”]

 直線片道タイプと同様に”1時”から”2時”への移動が出来ます。違いは最後の”12時”から最初の”1時”のページへの移動が出来る事です。ただし”1時”から”12時”への移動は出来ません。


・ループ往復タイプ

 例は省略

 ループ片道タイプの逆方向への進行が可能なタイプです。。



・分岐タイプ

 最初のページは他のすべてのページへ直接移動できます。それ以外の移動は不可。

例:

[”宝箱を開けてみた”、”黄金の剣を見つけた”、”真っ黒な封筒を見つけた”、”モンスターが現われた”]

 ”宝箱を開けてみた”と言うページに対して、色々なページに移動する可能性がある場合に使われます。


 例えばサイコロを振るなどランダムな結果を出す時に使うのが良いかもしれません。


・集約タイプ

 分岐タイプと対にして使うのが良いかもしれません。複数のページから同一のページに移動します。

例:

[”黄金の剣を見つけた”、”真っ黒な封筒を見つけた”、”君は部屋を出た”]

 様々なページから”君は部屋を出た”と言う”ルート”の最終ページに移動します。


 分岐タイプと組み合わせる事が多いかもしれません。ルートの開始ページが複数あるのは、このタイプのみである事にご留意ください。


・総当たりタイプ

 ルート内のページは他のすべてのページへの直接移動が可能です。

例:

[”花屋”、”お菓子屋”、”本屋”、”市役所”]

 町にある色々なお店などに立ち寄るイメージです。


・カスタマイズタイプ

 ”ルート”は作成時、上記のタイプのいずれかとして作成されます。しかし、多くの場合、一部の経路を削除または追加したり新たなページを付け加えたくなるかもしれません。そのような変更を付け加えたルートはカスタマイズタイプになります。

例:

総当たりタイプ[”花屋”、”お菓子屋”、”本屋”、”市役所”]に”市長室”を追加。

 追加した”市長室”ページは市役所からのみ移動でき、市役所のみに移動できようにしました。このような変更を行った後は、このルートが総当たりタイプではない事は明白です。


 元のタイプ、あるいは別のルートタイプに戻す事は可能ですが、付け加えた変更は無視され、”ルート”内の配列の順番とルートタイプのみを参考にそれぞれの移動が再作成されます。



【ページの作成】

 ページの作成は、ルートの作成時あるいは既存のルートの修正で行います。


 どのルートにも属さない形でページを作ることは出来ません。


 各ページは複数のルートに属することが出来ます。


注:ルートの編集により、どのルートにも属さないページが出来ることはあり得ます。このようなページをルートの編集時に再利用出来ます。ただし、作成されたシナリオに、ルートに属さないページが含まれることはありません。



【ルートの作成】

 ルートの作成は5つの処理に分かれます。


・ページ作成

・作成したページの既存のページへの置き換え

・ルートタイプの決定

・既存ページへの接続

・ページの追加・削除やページ間の移動の修正(これを行うとタイプはカスタマイズになります)


1.ページ作成

 まずページタイトルをテキストエリアへのページタイトル入力により一括してページを作成します。


 例えば、以下のイメージです。


始まりの村

旅立ちの朝

初めての野営


 この入力は3つのページを作成する事を意味しています。タイトル未定の場合は空の行でも構いません。



2.作成したページの既存のページへの置き換え

 1.で作成されたページは、この段階では新規のページとして存在します。


 しかし、あるページを他のルート作成で作られた他のページと同一のページにしたいことがあるでしょう。


 そのような処理をここで行います。なおページタイトルについては、ここで決め直すことが可能です。

 


3.ルートタイプの決定

 ルートタイプを決めると、そのルートの下の各ページのネクストページを自動的に作成します。


 例えば選択肢によりページが分岐するタイプのページならば、自動的に選択肢が作成されるという事です。


 上記のイメージが直線片道タイプのルートであれば、”始まりの村” には ”旅立ちの朝”に進む選択肢が自動的に作られます。


 つまりルートタイプはページ間の選択肢作成の補助機能の役割を果たします。



4.既存ページへの接続

 このこと自体は直感的にご理解できると思いますが、少しだけ注意点があります。


 すなわち、


 最初に作ったルートは、当然、既存のページが存在しません。従って、その最初のページをスタートページとします。


 また集約タイプのルートの場合のみ、既存の複数のページと接続させることが必要です。



5.ページの追加・削除やページ間の移動の修正


 これらの作業を行うとルートタイプはカスタマイズになります。元のルートタイプや他のルートタイプにタイプを変更することは出来ますが、その場合、行ったページ間の移動の修正は完全に無視されます


 また、ここで気を付けるべきことは、複数のルートが同じページを持つ場合です。


 例えば一つのページが、2つのループ片道タイプのルートに属している場合を考えてみましょう。


ルート1:[”寝坊した朝”、”校門にて”、”朝礼”]

ルート2:[”早起きした朝”、”校門にて”、”幼馴染との再会”]



・最初の段階では”校門にて”は”寝坊した朝”と”早起きした朝”の2つのページから選択肢として選ばれる可能性があります。また”校門にて”は2つの選択肢を持ちます。


  ”寝坊した朝”  → ”校門にて”

  ”早起きした朝” → ”校門にて”


  ”校門にて”   → ”朝礼”

            ”幼馴染との再会”


・ルート1”寝坊した朝”のページから”校門にて”の選択肢を削除すると上のページ間移行の関係は以下のように変わります。


  ”早起きした朝” → ”校門にて”

  ”校門にて”   → ”幼馴染との再会”


 これは”校門にて”のページの”朝礼”への選択肢が、ルート1によって作られたので削除されたからです。


 これをまとめると


※各ページの選択肢の内、どのルートでも使用されない選択肢は削除される。

 (各選択肢は、どのルートで使われているかの情報を保持している。また一つの選択肢が複数のルートで使用されている可能性もある。)

※※シナリオの内、どのルートでも使用されないページは削除される。


となります。


 ただしページの削除は、シナリオで使用されないページとして再利用のために残されます。



【最後に】

 長々と書きましたが、ループや合流等が無く分岐するだけのシナリオであれば、かなり簡単にシナリオの作成が出来るのではと思います。


 私としても、ここに書く事でうっかり見落としていたケース(選択肢情報の使用ルート保持の必要)がある事に気づけましたので書かせてもらってよかったと思います。


 シナリオ作成ツールの方、出来るだけ早く公開できるように頑張りたいと思いますのでお待ちいただければ幸いです。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る