新時代のソーサリアンを提案する

30周年を越えたソーサリアンの夢と妄想を語り続ける

ソーサリアンText開発者向けマニュアル(メイクリアン Flow編)

本ドキュメントは、ソーサリアンTextのシナリオ開発ツール「メイクリアン Flow」を利用するための簡易マニュアルです。ソーサリアン Textの基本的な仕様についてはここでは触れないので、合わせて以下を参照してください。

メイクリアン Flowとは?

ブラウザー上で動作する簡易ツールで、あらかじめ用意されたフローテキスト(後述)をもとに、ソーサリアン Textで利用できるシナリオデータの骨格を自動生成します。

http://www.web-deli.com/sorcerian/next/flow.aspx
   ▼
http://www.web-deli.com/sorcerian/next/images_blog/stext_flow.png

「開始番号」はid値の初期番号を、「番号間隔」はid値を何番おきに振るかを指定します。id番号は、あとから追加で挿入しやすいよう、最低でも10番おきなど、間隔を空けて振っておくことをお勧めします。

フローテキストの基本

フローテキストは、シナリオの流れをタブ(インデント)で表します(紙面上は、タブは全角スペースとなっています)。以下は、「新・消えた王さまの杖」の冒頭部分をフローテキストで表したものです。

プロローグ
 ぼやき
  凹んだ穴
   ふんだ
   よけた
    杖をメモ
     人面岩
      諦めて立ち去る
       斬りかかる
        話を聞いてみる
         やめておく
         謎に挑む
       *話を聞いてみる
      口に手を入れる
       すると…
        *話を聞いてみる
      石を投げつける
       *話を聞いてみる

これで、「プロローグ->ぼやき->凹んだ穴->...」のようなフローを表しています。個々のシーンを表すテキスト(シーン名)は、10〜20文字程度で端的に、内容を識別しやすいものを設定しましょう。

条件分岐

条件分岐では、インデントを揃えてください。たとえば、上の例であれば、「人面岩」のシーンから以下の分岐が発生していることを意味します。

  • 諦めて立ち去る
  • 口に手を入れる
  • 石を投げつける
エンディング

移動先のないシーンには、自動で「end="bad"」属性(バッドエンディング)が設定されます。ハッピーエンド/バッドエンドの識別機能はないので、ハッピーエンドはあとから値を書き換えてください*1

重複するシーン

同じシーンに遷移する場合には、重複するシーンの頭に「*」を付けて、シーンの名前は一致するようにします。重複するシーンは内部的にはひとつのシーンに束ねられるので、以降のシーンを繰り返し定義しなくても済みます。

上の例であれば、「話を聞いてみる」というシーンが重複していますが、「*」の付いているシーンは、以降も同じになるはずなので省略しています。

ブロックの分割

フローテキストでは、インデントが深くなってくるとテキストが読みにくくなります。そこで、フローが長くなる場合には、フローを複数のブロックに分割することもできます。

プロローグ
 ぼやき
  凹んだ穴
   ふんだ
   よけた->
杖をメモ
 人面岩
  諦めて立ち去る
   斬りかかる
    話を聞いてみる
     やめておく
     謎に挑む
   *話を聞いてみる
  口に手を入れる
   すると…
    *話を聞いてみる
  石を投げつける
   *話を聞いてみる


この例であれば、「プロローグ〜よけた」「杖をメモ〜*話を聞いてみる」がブロックです。ブロックの間は、空行を置いてはいけません。

また、ブロック間を繋ぐには、ブロックの最後のシーンに「->」を付けてください。これでそのシーンから次のブロックの最初のシーンに接続されます。上の例であれば、「よけた->杖をメモ」となります。

メイクリアン Flowによる開発手順

ソーサリアン Textでは、以下の手順でシナリオ開発することを想定しています(あくまで一例なので、自分のやり方がある場合には、この限りではありません)。

  1. フローテキストで、シナリオの流れを定義
  2. メイクリアン Flowでシナリオデータの骨格を自動生成
    • 生成されたシナリオデータはコピペして、scenario.xmlという名前で保存します。
  3. 使い慣れたテキストエディターでシナリオを執筆
  4. 途中でシーンを追加する場合には、メイクリアン Textでシーン&リンクを編集

*1:ほとんどがバッドエンドのはずなので、それで問題ないはず^^;