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

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

ソーサリアンText開発者向けマニュアル(チュートリアル)

本ドキュメントは、ソーサリアンTextのシナリオ開発をテキストエディターで進めるチュートリアルです。まずは、シナリオデータの概要を掴んで戴くことを目的としていますので、設定値の意味などについては、SGMLリファレンス(http://d.hatena.ne.jp/sorcerian/20180128)も合わせて参照してください。

[1]シナリオテンプレートをダウンロードする

シナリオテンプレートは、以下のアドレスからダウンロードできます。

http://www.web-deli.com/sorcerian/template.zip

ダウンロードしたtemplate.zipを解凍すると、以下のようなフォルダー/ファイルが展開されます。

  • /template シナリオルート
    • /capture 挿絵フォルダー
    • scenario.xml シナリオデータ
    • *.mp3 楽曲ファイル

シナリオデータとして直接編集するのは、scenario.xmlです。
.mp3ファイルはサンプルなので、適宜差し換えてください。

[2]基本情報を入力する

シナリオのタイトル、作者の名前などを入力します。編集するのは★〜★の部分です(★そのものは強調の意味なので、入力してはいけません)。


■Note■
scenario.xmlを編集する際は、以下の点に気を付けてください(SGMLというよりもXMLとしてのルールです)。

  • <...>で括られた部分は要素、「名前="..."」の部分は属性と言います。これらの部分は、(タイトルの日本語などを除いては)すべて半角で表します。
  • 要素は<***>で始まり、</***>で終わります。うまく動作しない場合、特に</***>を忘れていないかを確認してください。
  • ファイルはUTF-8という文字コードで保存します(他の文字コードでは文字化けします)。

これらの基本的な誤りを防ぐには、scenario.xmlChromeで開いてみると良いでしょう。誤りがなければ、以下のようにファイルを閲覧できます。

http://www.web-deli.com/sorcerian/next/images_blog/stext_chrome.png

[3]アイテム情報を編集する

シナリオで登場するアイテムを登録しておきます。これには、scenario−items要素の配下にitem要素を追加します。複数ある場合は、item要素を列挙します。

シナリオテンプレートには、あらかじめダミーのアイテム情報(scenario−items−item)が用意されているので、これをコピー&ペーストして使うのがカンタンです(以降も同様です)。

よく盗まれる杖
  王さまの杖によく似た棒

[4]フラグ情報を編集する

シナリオ進行を管理するフラグ情報を登録しておきます。これには、scenario−flags要素の配下にflag要素を追加します。複数ある場合は、flag要素を列挙します。

グーランと出会った。
  「#」の道を探索した。

フラグは、本来、物語の分岐を制御するための情報ですが、ソーサリアン Textではステータス画面から確認することもできます。物語の簡易なあらすじを、最初にフラグ一覧としてまとめておくことをお勧めします。

[5]モンスター/罠情報を編集する

シナリオで登場するモンスター/罠などの情報を登録しておきます。これには、scenario−enemies要素の配下にenemy要素を追加します。複数ある場合は、enemy要素を列挙します。

ドラゴン・オヴ・ドラゴン
  毒がたっぷりと塗られた矢

[6]シーン情報を編集する(プロローグ)

いよいよシナリオ本体の執筆です。シーンとは、ゲームブックのパラグラフに相当する概念。ソーサリアン Textでは、シーン単位で物語を遷移していきます。

ひとつのシーンは、scenario−scene要素で表します。シナリオテンプレートには、あらかじめスタート地点を表すシーン(id属性が0のもの)が用意されているので、これを編集してください(「0」はスタートを表す数値なので、変えてはいけません!)。


★ここにプロローグを書きます。

[次へ](100)★

本文は、Markdownという形式で表します。ソーサリアン Text独自のルールもあるので、詳しくは、「SGMLリファレンス」を参照してください。
たとえば、「[次へ](100)」は100番のシーンに移動する[次へ]ボタンを作成します。

[7]シーン情報を編集する(本文)

あとは、ひたすらにシーンを増築していくだけです!100番のシーンを追加してみましょう。


ここにプロローグを書きます。

[次へ](100)

 - フラグf99が立ちます(=> ステータスから確認しましょう)
 - アイテムi99を入手します(=> ステータスから確認しましょう)
 - 敵としてm98、99が登場します(=> 下に情報が表示されます)

[敵に勝った](300)
[敵に負けた(バッドエンド)](200)

詳しくはリファレンスに譲りますが、items/flags/enemies属性でシーンで入手(登場)するアイテムやフラグ、敵を定義できます。

このように、STextでは本文とリンクでもってシーンを連ねていくわけです。簡単ですね!

[8]ライセンス情報を編集する

最後に、シナリオで作成した画像/楽曲のライセンス(作品)情報をまとめておきましょう。これには、scenario−license要素の配下にwork要素を追加します。複数ある場合は、work要素を列挙します。


  

ライセンス情報はシナリオの動作には影響しませんが、出典を明確にするためにも入力しておくことを強くお勧めします。

[9-1]シナリオを実行する(Playgroundの場合)

できあがったシナリオデータ(ソース)は、PlayGround(http://www.web-deli.com/sorcerian/next/playground.aspx)に貼り付ければ、シナリオの動作を確認できます。

http://www.web-deli.com/sorcerian/next/images_blog/stext_edit_play.png

[9-2]シナリオを実行する(ローカル(Apache)環境)

(Playgroundではなく)ローカル環境で動作する場合には、[1]で準備したシナリオフォルダーをApacheに配置します。シナリオフォルダーを/templateから/mystoryにリネームした上で、/stext-master/stextフォルダーの配下に/mystoryフォルダーを移動してください。

■Note■
シナリオフォルダーの名前(/mystory)はなんでも構いません。たとえば「新・消えた王さまの杖」であれば/scepterとしています。
ただし、配置先の/stextフォルダーには、サンプルとして/scepterフォルダーをはじめ、いくつかのシナリオフォルダーが置いてありますので、重複しない名前を付けてください。

あとは、/stext-master/index.htmlの★〜★の部分を自分のシナリオフォルダー名で変更します。

$('#main').startGame('★mystory★');

以上で、「http://localhost/stext-master/」から作成したシナリオにアクセスできるようになります。

   ★   ★   ★

以上でチュートリアルは終わりです。
動作を確認しながら、是非、皆さんの物語を完成させてくださいね♪

本稿ではテキストエディター中心に解説しましたが、STextでは専用ツールとして「メイクリアン Text」「GBAT to SText」なども提供しています。併用することで、シナリオ執筆が効率化されますので、是非ご活用ください!