まとめ(プログラマなら入門編)

 $ σ_σ$  < さぁ、今回はテクスティオのまとめよ。
 Σ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入門でシナリオファイルのダウンロードができるので、そちらを参考にして欲しい。

最後に

 これにて、中級編も終了です。
 上級編や応用編の予定はありませんが、テクスティオの利用者が増えれば、書くかもしれません。