ソーサリアンText開発者向けマニュアル(GBAT to SText編)
- 開発者マニュアル目次(http://d.hatena.ne.jp/sorcerian/20171221)
GBAT to SText
GBAT(GameBook Authoring Tool)は、ゲームブック執筆を支援するGUIツールです。シナリオのフローをリアルタイムにチャート化するので、全体を見渡しつつ、執筆を進められます。フリーでは100パラグラフまでという制限はありますが、シナリオを分割しながら作業を進めれば、十分に活用できます。
GBATは、以下のページから入手できます。
https://www.crumblyheadgames.co.uk/the-gamebook-authoring-tool/
▼
GBAT to STextは、このGBATで作成したシナリオデータをSText形式に変換するためのツールです。
■Note■
GBATの使い勝手については、ちゃなさんのブログが参考になります。The GameBook Authoring Toolの使い心地
http://chanagame.hateblo.jp/entry/2017/08/21/075122
GBATの使い方
GBATそのものの基本的な使い方は、以下のページを参照してください(英語が苦手な方はChromeなどの翻訳機能を利用すれば、おおよそ把握できる、はず!)。
Getting started with the GameBook Authoring Tool(https://www.crumblyheadgames.co.uk/gamebook-authoring-tool-help/how-to-use-the-gamebook-authoring-tool/)
以下では、SText固有の要素をGBATで表す方法についてのみまとめます。
■Note■
GBATでSText向けシナリオを開発する人のために、
- 最低限のヘッダー見本を含んだテンプレート(template.gbat)
- 主な機能を組み込んだテストデータ(sample1.gbat、sample2.gbat)
も提供しています。開発に際しては、以下からダウンロードしてご利用ください。
GBATテンプレート(http://www.web-deli.com/sorcerian/next/stext/playground/template.zip)
シナリオタイトル/作者名を定義する
プロパティウィンドウの[Gamebook]タブからTitleプロパティを設定してください。
Titleプロパティは「タイトル@作者名」の形式とします(「@」は半角文字です。以降も区切り文字はすべて半角なので、要注意です!)。
■Note■
複数ファイルで執筆している場合には、すべてのファイルにTitleを設定してください。
GBAT to SText的には、最初のひとつを優先して利用しますが、ファイルの選択順序によって、いずれが最初かが変化してしまう可能性があるためです。
プロローグはSection 1で記述する
GBATで執筆する場合、プロローグは「1」とします。
STextでは「id="0"」ですが、GBATではSection 0は設定できないためです。
シーンに紐づくフラグ/アイテムなどの情報を設定する
それぞれのシーンに紐づく情報は、Sectionのテキスト先頭に「@@...@@」で括ったブロックで宣言してください。形式は「@属性名:値」です。
@@ @items:i10,i11 @flags:f6,f5 @enemies:m5,m4 @result:r01 @bgm:boss @se:mom @end:bad @@ ...以下、本文...
それぞれの属性の意味は「SGMLリファレンス」(http://d.hatena.ne.jp/sorcerian/20180128)から[SGML(Sorcerian Gamebook Markup Language)仕様]のscene要素を参照してください。
シナリオの基本情報を設定する
シナリオの基本情報(アイテム/フラグなど)もSectionのテキスト先頭「@@...@@」で宣言できます。ただし、読みやすさの観点から、Section 1で記述するようにしてください。
@@ pc:FIGHTER,WIZARD:FEMALE:YOUNG,ADULT bgm:@battle01::sigh intro:王様の杖を探し出す駆け出しの物語 i01:こいし:何の変哲もない、石だ i02:ひとにぎりのすな:グーランの、なれの果てだ i03:きのぼう:豚(猫)いじめのための?棒 i04:リラの貝殻: 離れた場所でグーランと会話できる。要は携○電話 f01:「☆」の道を調べた。 f02:「〇」の道で、ジャイアントラットを倒した。 f03:「*」の道で、怖い目を見た。 f04:「◎」の道で、豚(猫)を助けた。 m01:人面岩:地:物理:L-STR:喋るだけで、硬い岩だ。 m02:人面岩の口:霊:魔法:R-INT:喋る口だ。牙はない。 r01:絵本の世界:1:少女の部屋まで進めた r02:謎の老人…一体なにティスなんだ…?:3:謎の老人に助けられた r03:怪我の功名:4:塔で右と左の扉を両方開けた w:ダンジョン:bgm:Az:venusaz.seesaa.net/ @items:i10,i11 @flags:f6,f5 @enemies:m5,m4 @result:r01 @bgm:boss @se:mom @end:bad @@ ...以下、本文...
基本情報の後方に、シーン個別の情報を宣言しても構いません。
それぞれの設定の形式は、以下の通りです。
制約条件 | pc:種族:性別:年齢 |
---|---|
BGM | bgm:メイン:ハッピーエンド:バッドエンド |
ラベル | label:FREE1:FREE2:FREE3 |
ツイート | intro:紹介文 |
アイテム | id:名前:説明 |
フラグ | id:説明 |
敵/罠 | id:名前:属性:攻撃の種類:ダメージ式:ドロップ:説明*1 |
実績 | id:名前:レベル:説明 |
ライセンス | w:名前:分類:作者名:URL |
ただし、ライセンスのURLは「http://」を除く、たとえば「venusaz.seesaa.net/」のような形式で表します。
その他の項目の意味は「シナリオ開発リファレンス」(https://sorcerian.hateblo.jp/entry/2018/11/01/211745)から[SGMLリファレンス]のitem、flag、enemy、result、work要素を参照してください。
■Note■
@@...@@の中の空行は無視されます。見易さという観点からは、アイテムであればアイテムの区切りで、空行を空けることをお勧めします。
フラグ/アイテムなどによる条件付き分岐を表現する
分岐テキストを「キャプション@条件」の形式で表してください。
条件 | 記述 | 結果例 |
---|---|---|
フラグ | 次へ@f1,f2 | [次へ](100 "f1,f2") |
アイテム | 次へ@i10 | [次へ](100 "i10") |
魔法 | 次へ@mHEAL | [次へ](100 "mHEAL") |
利用できる条件については「SGMLリファレンス」(http://d.hatena.ne.jp/sorcerian/20180128)から[Markdown形式]-[SGML固有のルール(リンクボタン)]も参照してください。
特殊な分岐について
(1)自由移動欄
自由移動欄([...](X))を利用するならば、以下のように設定してください。
- 移動先の番号は999で固定
- 分岐テキストは移動可能なシーン番号(カンマ区切り)
- scene999のSummaryプロパティに「link」と設定*2
(2)文字列入力欄
文字列入力欄([...](Q))
- 移動先の番号は998で固定
- 分岐テキストは「正答,正しい時の移動先,間違った場合の移動先」
- scene998のSummaryプロパティに「link」と設定*3
(3)ランダム分岐
ランダム分岐を利用する場合には、以下のようなフォーマットで分岐先を指定します。
- 移動先の番号は「分岐先1」
- 分岐テキストは「次へ@@分岐先2,分岐先3,...」(アットマークは2個)
- 条件式を加える場合は、「次へ@条件式@分岐先2,分岐先3,...」としても構わない
(4)複数ファイル対応
GBAT to STextでは、複数ファイルを連結することもできます。ただし、GBATの制限で遷移先のないリンクを生成することができません(自動的に遷移先のシーンが生成されてしまうので、ファイルを跨るための仮のリンクが生成できない)。
ということで、遷移先のシーンが別ファイルにあることを示すために、そのSummaryプロパティに「link」を設定してください。GBAT to SText的には「link」の付いたシーンは、複数ファイル連結のための仮のシーンと見なし、出力をスキップします。
あとは、本来の遷移先を、結合先のファイルで用意しておけば、正しくリンクされます。
■Note■
複数ファイルに分割した場合、2ファイル目以降で自動生成された初期シーン(scene 1)は、1ファイル目と重複しないよう、Numberを変更しておくようにしてください。
GBAT to STextの使い方
GBATto STextは(1)変換ツールとして、(2)Playgroundの中で、のいずれかで利用できます。
(1)変換ツールとして利用(Chrome環境のみ)
GBATで作成したファイル(*.gbat)をSText形式に変換するには、以下のページにアクセスして、Utility 2「GBAT to SText」を探してください。
http://www.web-deli.com/sorcerian/next/stext.aspx
▼
[ファイル選択]ボタンを押して、表示されたファイル選択ボックスから.gbatファイルを選択、[開く]ボタンをクリックすると、ファイルのダウンロードが始まります(複数のファイルを選択する場合は、[Ctrl]キーを押しながら選択してください)。
(2)Playgroundの中で利用
GBATで作成したファイルをPlaygroundで実行することもできます。以下のページにアクセスして、ページ左上の[ファイル選択]ボタンを押して、表示されたファイル選択ボックスから.gbatファイルを選択、[開く]ボタンをクリックすると、左ペインのエディターに変換済みのシナリオデータが反映されます(複数のファイルを選択する場合は、[Ctrl]キーを押しながら選択してください)。
注意点(未確認)
GBATに対して改行コードLFで作成したテキストをコピペすると、改行がうまく認識できていないようです。結果、最終的に生成されるscenario.xmlに余計な改行が含まれてしまう場合があるので、基本は
- 他のテキストからコピペする場合は、改行コードはCRLFとする
- または、GBAT環境でのみテキストを編集する
などの対策を採ってください。