まとめ(プログラマなら入門編)
$ σ_σ$ < さぁ、今回はテクスティオのまとめよ。 Σc ' _' ) < プログラマは、こことリファレンス読めば理解できるという話だ。
テクスティオとは
インタラクティブフィクションというタイプのゲームのシナリオを記述するためのシステムがテクスティオ。
システムはFlashベースで、まずは動かしてみましょうのページでダウンロードできる。
シナリオファイルはXMLで書かれ、基本の構造は以下の通り。
<?xml version="1.0" encoding="UTF-8"?> <textio> <act> <p action="clear"> タイトル 著作者情報 ※プレイの注意 ・この画面を一回クリックしてください。 ・その後はキーボードのみを使います。 ・入力モードは英数にしてください。 ・その状態でローマ字入力します。 </p> <go href="#introduction"/> </act> <act id="introduction"> <select> <option verb="ミル;"> <option noun="ヘヤ;アタリ;マワリ;" atto=""> <p> コレがあります。</p> </option> <option noun="コレ"> <p> コレはコレです。</p> </option> </option> <option verb="タタク"> <option noun="コレ"> <p> コレを叩くと最初に戻ります。</p> <p/> <go href="#start"/> </option> </option> </select> </act> </textio>
要素の分類
テクスティオの要素は大まかにコンテナ、命令、値の3種類に分けられる。
コンテナ
他の要素を含む要素。<textio>,<act>,<p>,<i>,<else>,<select>,<option>
コンテナの多くは<コンテナ id="…"/>の形で、トップレベルに置いた同じidが設定された要素 (定義要素)を、召喚要素で呼び出せる(召喚欄に○のある要素)
また、多くはelse節を含んで条件分岐が行える(条件欄に◎のある要素)
命令
何らかの動作をする要素。<go>,<inventory>
命令は常に<命令/>の空要素の形で使う。
値
値の設定・管理をする要素。<var>,<i>,<item>,<at>,<pla>
値は<値 id="…"/>の形で使うと既定値(true)を設定する。
<値 id="…">要素毎の値</値>のように指定すると任意の値を設定できる。
atとplaはそれぞれ1種類の設定先しかないのでid指定は不要。
idを指定せず、<値/>の形で使うと、値を全て空(あるいはfalse)に初期化する。
全ての値要素は、else節を含んで条件分岐が行える(条件欄に◎のある要素)
それぞれの要素名を属性として指定することで、属性の実行条件とできる(条件欄に◎や○がついている要素に対して)
例えば以下のように使い、itemにハナタバを持つかどうかで条件分岐ができる。
<p item="ハナタバ">素敵ね<else/>手ぶらなの?</p>
要素一覧表
種類 | 要素名 | 内容 | 条件 | 召喚 | 文字 | 属性 | 性質 |
---|---|---|---|---|---|---|---|
ルートコンテナ | <textio> | act,p,option,select | − | − | ○ | − | |
汎用コンテナ | <act> | ◎ | ◎ | ○ | − | id | トップレベルでのみループ |
段落コンテナ | <p> | 文字列,値要素,p,inventory | ◎ | ○ | ○ | id,action | |
条件コンテナ | <else> | 上位の要素による | ◎ | − | − | − | 空要素で区切りになる |
入力コンテナ | <select> | option,select | − | ○ | − | id | 召喚時は内容が展開される |
コマンドコンテナ | <option> | ◎,option | ◎ | ○ | − | id,noun,verb,atto | nounかverbが必須 |
ジャンプ命令 | <go> | − | ○ | − | − | href | |
アイテム表示命令 | <inventory> | − | ○ | − | ○ | − | |
フラグ・数値 | <var> | 真偽値,数値 | ◎ | − | ○ | id | 0はfalse判定 |
文字列値 | <i> | 真偽値,文字列 | ◎ | − | ○ | id | 文字列は空文字列以外true判定 |
アイテム値 | <item> | 真偽値,文字列 | ◎ | − | ○ | id | 文字列は全てfalse判定 |
注目名詞値 | <at> | 名詞 | ◎ | − | ○ | − | 内容はシステムからも更新される |
プロンプト値 | <pla> | 文字列 | ◎ | − | ○ | − |
内容 : ◎ = act,p,select,var,i,item,at,pla,inventory
条件 : ○ = 値属性(var,i,item,at,pla)による条件指定、◎ = さらに内容にelse節が持てる
召喚 : ○ = id付き空要素は定義要素(トップレベルのid付き要素)と入れ替えられる
文字 : ○ = size,color属性を持つ
属性 : 条件・文字の項目以外の属性
サンプル
テクス君とティオちゃんのiF入門でシナリオファイルのダウンロードができるので、そちらを参考にして欲しい。
最後に
これにて、中級編も終了です。
上級編や応用編の予定はありませんが、テクスティオの利用者が増えれば、書くかもしれません。