DHASS 取り扱い説明書

DHASS with tunaスクリプト

DHASS with tunaスクリプトとは

DHASSはDynamicHTMLを使ってアドベンチャーゲームみたいなもの を作ることを目標として開発されたスクリプトで、 InternetExplorer用のJScriptで記述されています。
しかし利用者、ページ製作者はそんなことを気にする必要はありません。 通常のWebページエディタでも、HTMLタグにIDをつけて表示内容を記述していくだけで、 簡単にダイナミックページを作り上げることができます。
このダイナミックページの表示内容は「tunaスクリプト」を使って作成します。 なんだ、やっぱりスクリプトかよ、 と思われるかもしれませんがそこはそれ、戻るのは待ってください。 「tunaスクリプト」は文章表示を主な目的とした簡易スクリプトで、 単純には文章さえ書けばそれがそのままタイプライタ表示できます。

何が出来上がるのか？

これはDHASSとtunaスクリプトで製作したテストページです。
A tale (2001年3月5日)
あまり深く考えないでください。 どの選択肢を選んでもそれぞれの世界は全く異なっています。 あろうことか、主人公の同一性すらなかったりします。 ハッピーエンドもバッドエンドも区別ありませんが、 読み物だと思って気軽にプレイしてみてください。

再利用など

スクリプトの再利用、改変などに制限を加えませんが、利用時に一報をお願いします。 現在βテスト中といえますので、面白い機能があれば追加されます。 フィードバックなどは、 掲示板でどうぞ。

ダウンロード

ess.js (2001年3月5日)

説明書

自動実行的な使い方
手動実行的な使い方
tunaスクリプトの詳しい書き方
タグリファレンス


DHASS 取り扱い説明書

自動実行的な使い方

戻る

基本の使い方

とりあえず、どんなことが出来るのか？ もし私の目的に合うものなら使ってみようじゃないか、 という人のために、いちばん簡単な使い方を説明します。
  1. BODYタグ内のどこかに、次の一行を加えます。
    <script src="ess.js" language="JScript"></script>
  2. 出力エリアとして、IDをつけたブロックを作成します。ここでは仮に、msg1としておきます。
    <div id="msg1"></div>
  3. 実際に出力する内容として、IDをinitialとしたブロックを作成し、表示内容を記述します。
    <div id="initial">
\m[select,msg1]
やあこんにちわ。\n
DHASS with tunaスクリプトはじまります。\n
</div>
これで、ページの全内容が読み込まれたあとに、 msg1にinitialで指定した内容がタイプライタ表示されます。
テストページ
ちなみに、出力エリアは必ずしもDIVである必要はありません。 IDさえついていたらテーブルセルのTDや段落タグのPなど、 文章を含められるタグならどんなタグでも使えます。 IDをつけた要素(文章を含めることの出来るタグ)はすべて「出力エリア」として認識されます。

さらなる使い方

文章を表示するだけではアドベンチャーゲームとしては前時代的です。 ひとつ、画像の表示をしてみましょう。 まず、画像エリアと出力エリアを作ります。
<center>
<img id="img1" width="320" height="240" style="visibility:hidden;">
<div id="msg1" style="border:black solid thin;
 width:400; height:100; text-align:left;"></div>
</center>
すこしごちゃごちゃしていますが、難しいことはありません。 上に画像を表示するimgタグがあります。 IDのついたimgタグはすべて「画像エリア」として認識されます。 画像エリアがvisibility:hiddenで非表示になっているのは、 あとでフェードイン表示させるためです。
下は文章を出力するためのdivです。 IDがついた要素なので「出力エリア」として認識されます。 枠線をつけて大きさを決めるためにスタイルシートを使っています。
表示内容のtunaスクリプトは、次のようにしてみます。
<div id="initial">
\m[select,msg1]
\u[cave.jpg,ruin.jpg]
このtunaスクリプトは先行ロードを完了したあと、\n
画像エリアを選択し、\n
画像をフェードイン表示させます。
\.u
\i[select,img1]
\i[fadeopen,cave.jpg]
</div>
テストページ
まず、出力エリアとしてmsg1を選択しています。
続いて\uタグでcave.jpgの先行ロードを開始します。 Web上では常に画像を先行ロードしておかないと表示できませんので、これは重要です。 \.uタグは先行ロードが完全に終わるまで待機します。 \uと\.uの間は、長いほど効果的です。 というのも、文章を表示している間にバックグラウンドで先行ロードを完了することができれば、 待ち時間なしで進行できるからです。
最後に、画像エリアとしてimg1を選択し、 画像エリアにcave.jpgをフェードインで表示させます。

選択肢を作る

アドベンチャーゲームとしては、やはり選択肢が必要です。 ここではその選択肢の実行を試してみます。
ここで「コントロールタグ」について説明しておきましょう。 tunaスクリプトでは\で始まる文字列を「コントロールタグ」と呼びます。
tunaスクリプトは通常の文章をそのまま出力しますが、 それだけだと文章の表示以外なにも出来なくなってしまいます。 そこでコントロールタグを文章中に入れて、 画像の表示をさせたり、 時間待ちをしたり、 選択肢を作成したりするわけです。
また、tunaスクリプトでは改行が全て無視されますので、 実際に改行をするときには\nというコントロールタグが必要です。
さて、次のtunaスクリプトを見てください。
\m[select,msg1]
あなたの好きな果物は？\n
\a[melon,メロン]\n
\a[mikan,みかん]\n
\a[ringo,リンゴ]\n
\.a

\t[melon]
メロンか。\n
それもよい・・・。
\j[end]

\t[mikan]
みかん。\n
ふむ、食べ過ぎに注意せよ。
\j[end]

\t[ringo]
さくっ。\n

\t[end]
ページを開くと、あなたの好きな果物は？と質問されます。 3つの選択肢が表示され、クリックするとそれぞれの文章が表示されます。
テストページ
選択肢は\a[ラベル,標題]というコントロールタグで作成します。 その選択肢をクリックしたときに、\t[ラベル]の位置に処理が移動するわけです。 必要なだけ選択肢を作った後、\.aで選択肢の選択待ちに入ります。
移動先の位置を\t[ラベル]で設定します。 それぞれの\tに続く文章で個別の内容を表示し終わったら、 \j[end]で最後の位置を示すラベル\t[end]まで強制的にジャンプします。 ここで\jがないと選択肢のジャンプ先で文章が表示された後、 そのまま次の選択肢の内容まで表示されてしまいます。
\j[ラベル]は強制ジャンプ命令で、 \t[ラベル]が上にあれば実行を上に戻すことも可能です。

分割すること

さて、これまでの説明（とサンプルページの内容）でアドベンチャーゲームは作れます。 ですが本格的な大長編に作ろうと思うと、当然ながらtunaスクリプトも大長編になってしまいます。 もっとも、現バージョンではセーブ・ロードが出来ないので、 それほどの長編を作ってもユーザが困るんですが、 それでもある程度の長さになると管理が大変になります。
そこで分割が重要です。 場面ごとにいくつかのdivに分割しておけば、 それぞれでジャンプラベルを新しく使うことが出来ます。 選択肢ごとにひとつのdivを割り当てるぐらいがちょうどです。
別のtunaスクリプトに移動するコントロールタグは\g[ID名]です。 このタグはA taleで多用されているので、それを見てください。
good luck!
戻る


DHASS 取り扱い説明書

手動実行的な使い方

手動実行とは

ページの読み込まれた時に自動的に始まるのではなく、テキストのクリック、 マウスの移動などの特定のタイミングでtunaスクリプトを起動することが出来ます。 これを自動実行に対して手動実行といいます。
DHASSはJScriptで書かれています。 有効行数にして700以上もある気違いじみた巨大スクリプトですが、 使う側にしてみればそんなことはどうでもよくて、 どのように動いて見えるか、 どのようにして起動するかが再重要です。
ちょっとJScriptを知っている人なら、 JScriptには「関数」というものが存在していることを知っていると思います。 「関数」とは、特定の機能を持ったプログラムの集合のことです。 initialとIDをつけたtunaスクリプトがページの読み込まれた時に自動的に実行されるのは、 ページの読み込まれた時にtunaスクリプトを起動する関数が実行されるからです。
その関数を、特定のタイミングで実行することが出来れば、 すなわち特定のタイミングでtunaスクリプトを起動させることが可能になるわけです。 ここでは、そのtunaスクリプトを起動させる関数について説明します。

基本的な使い方

  1. スクリプトをリンクします。
    <script src="ess.js" language="JScript"></script>
  2. tunaスクリプトを適当なIDをつけて作成します。ここでは仮にtstestとします。
    <div id="tstest">\m[select,msg1]tunaスクリプトです～。</div>
  3. 実行させたいタイミングでJScriptのrunScript('ID名');を呼び出します。 たとえばアンカーのクリックで実行させたいなら、次のようになります。
    <a href="javascript:runScript('tstest');">実行</a>
JScriptで関数runScriptを実行させる、というところが重要です。 すなわち、手動実行ではスクリプトの知識が多少必要といえるかも知れません。 ですが実際はそれほどでもないので安心してください。 おいおい最初に言ってたのとちょっと違ってきてるぞ・・・などとは言わないこと。
たとえば、こんな風になります。
実行
\m[select,msg1] クリックに対応してこのスクリプトが実行されて、このように表示されるわけです。 どのように使えばいいのか…と尋ねられると、たとえばクリックしたら表示される目次とか、 マウスを上にかざすと説明を表示するとかの効果に使うと良いと言えます。\p\c

イベントで実行する

runScriptを実行するには、SCRIPTタグの中にJScriptで記述するか、もしくは「イベント」を使います。 しかしSCRIPTを使うのはDHASSの本分ではありませんので、 ここではイベントを使ってrunScriptを実行する方法を説明します。
IEでは対象になにか操作がなされたときに、イベントが発生します。 たとえばマウスのクリックや移動はイベントです。
つまりtunaスクリプトを手動実行させるには、 そのイベントの発生に対応してrunScriptを実行させればよいわけです。 それには、HTMLタグのイベントハンドラ属性を使います。次の例を見てください。
<div onmousemove="runScript('cursor1');">
この領域にマウスカーソルが入るとスクリプトが実行されます
</div>
以下準備中。


DHASS 取り扱い説明書

tunaスクリプトの詳しい書き方

コントロールタグ

tunaスクリプトは文章とコントロールタグで出来ています。 表示する文章の中に特殊な文字列、コントロールタグを挿入することで、 画像を表示させたり表示中の文章を消去したりなどの特殊な操作を実行するわけです。 たとえば、
\m[select,area1]
出力エリアは"area1"で、
表示したあといったん停止してクリックを待ち、
\p
クリックされたら再開します。
次の場合は、クリックを待って内容を消去します。
\p\c
というような内容を実行した場合、次のような結果になります。
実行
ここでは\mが出力エリアを操作選択するタグ、 \pがクリック待ちするタグ、 \cが内容を消去するタグを表しているわけです。
これらの\で始まる文字列を「コントロールタグ」といいます。 次に各コントロールタグの機能説明をしています。

コントロールタグの書式

コントロールタグは次のいずれかの書式をもちます。
\X
\X[引数]
\X～\.X
\X[引数]～\.X
基本は一番上の書式で、何かの意味を持った一文字Xで操作内容を表します。
さらに操作内容の説明が必要なタグの場合、引数を指定します。 引数が一文字だけの場合、大括弧[ ]は省略することができます。 引数が複数ある場合はカンマ,で区切ります。
三番目の書式はタグに始まりと終わりがある場合です。 たとえば「～の間を一度に表示する」タグは\r～\.rになります。 これにさらに引数がつくタグもあります。

タグの実行とクロック

tunaスクリプトは常に一定時間ごとに生じる「クロック」に従って内容が進行しています。 1クロックの時間は0.05秒で、基本的にはクロック発生ごとに次の一文字が読み込まれ、 文字なら表示され、タグならコマンドが実行されます。
ただし、ほとんどのタグは0クロックで実行できます。 たとえば、\i[select,A]\m[select,B]\u[file.jpg]...と続いている場合、 それらの処理は同時に実行されると考えることが出来ます。
ちなみに\rは実際にはクロックの時間を0秒にするタグで、 この場合はその効果を打ち消すタグ（\.r、\p、\q、\.u）が実行されるまで、 全ての処理が同時に実行されることになります。

コントロールコマンド

\iと\mは画像エリアと出力エリアを操作するためのタグです。 これらは引数で操作内容をさらに指定します。 この引数を「コマンド」と呼びます。
\m[select,area2]
出力エリアは"area2"です。\n
\p
フェードアウトします。\n
\m[fadeout]\w[30]
フェードインします。\n
\m[fadein]\w[30]
デモを終了します。
\p\c
実行
続く引数でさらに操作内容を修飾することもあります。 例の\m[select,area2]ではarea2がselectの対象をあらわしています。


DHASS 取り扱い説明書

タグリファレンス

コントロールタグ

tunaスクリプトで利用できるコントロールタグです。 大文字と小文字は区別されます。
表1 コントロールタグ
\a[ラベル,表題]～\.a | ジャンプ選択肢を作成して待機する
\c | 出力エリアの内容を消去する
\f[クラス]～\.f | SPANで～を修飾する
\g[ID] | 別のtunaスクリプトに処理を移す
\h[開タグ,終タグ]～\.h | HTMLタグで～を修飾する
\i[コマンド...] | 画像エリアを制御する
\j[ラベル] | ラベルに移動する
\m[コマンド...] | 出力エリアを制御する
\n | 改行する
\p | クリックを待つ
\q | トランザクションが完了するまで待つ
\r～\.r | ～の間を同時処理する
\s[ID] | 別のtunaスクリプトを取り込む
\t[ラベル] | ラベルを示す
\u[ファイル名,...]～\.u | 先行ロードを開始して必要なら待機する
\w[待ち時間] | 時間待ちをする
\z[コマンド...] | 変数と実行の流れを操作する
\\ | \文字

コマンド

\iと\mで使えるコマンドは表2のとおりです。
表2 コマンド(\mと\i)
メインコマンド
select,ID | エリアを選択する
clear | 出力エリアの内容を消去する
open,ファイル名 | 画像エリアに画像をロードする
fadeopen,ファイル名 | 画像エリアの画像をフェードで切り替える
wipeopen,番号,ファイル名 | 画像エリアの画像をワイプで切り替える
移動系コマンド(position:relativeかabsolute指定が必要)
move,X座標,Y座標 | エリアを移動する
move+,X変位,Y変位 | エリアを移動する
size,幅,高さ | エリアのサイズを変更する
size+,幅変化,高さ変化 | エリアのサイズを変更する
表示操作系コマンド
show | エリアを表示する
hide | エリアを非表示にする
fadein | エリアをフェードインする
fadeout | エリアをフェードアウトする
wipein,番号 | エリアをワイプインする
wipeout,番号 | エリアをワイプアウトする
次の表3に示すのは変数操作(\z)で使うコマンドです。
表3 コマンド(\z)
制御コマンド
use,変数名,... | 利用する変数名を宣言します
calc,変数の式 | 変数の式を計算します
output,変数の式 | 変数の式の値を表示します
if,変数の式, 真ラベル,偽ラベル | 変数の式の値によって分岐します
select, ラベル@変数の式, ラベル@変数の式,... | 変数の式が真のラベルに分岐します


\a (tunaスクリプト)

\a[ラベル,標題]…～\.a

概要

選択肢を作成して、選択待ちをします。

引数

ラベル

選択肢を選択したときにジャンプするラベルの名前を指定します。 大文字と小文字は区別されます。

標題

選択肢の標題です。 HTMLのAタグの色で表示されます。

注意事項

選択肢はいくつでも作成可能です。 ただし、\.aが実行されるまでは選択しても反応しません。
ユーザーからは選択肢のラベル内容がわからないようになっています。 ラベル名に特殊な名前を付けても大丈夫です。（…何が？）
\.aが実行されるとスクリプトは中断して、 選択肢が選択されるまで待機します。 選択肢が選択されたら、該当ラベル（\t[ラベル]）から実行が再開しますが、 このとき現在の出力エリアの内容が消去（\cと同じ）されます。 内容を消去されたくない出力エリアではに\.aを使わないで下さい。

使用例

\m[select,test]\c
次のうち究極のメニューは？\n
\a[foagra,フォアグラ]\n
\a[gurigura,ぐりとぐら]\n
\.a

\t[foagra]
「…フォアグラをありがたがるなんて(以下略)\n
\j[end]

\t[gurigura]
ぐりぐらぐりぐらぐりぐら。\n
今日は森の妖精ゴメスさんのところに遊びに(以下略)\n
\j[end]

\t[end]
実行

関連項目

\c \t


\c (tunaスクリプト)

\c

概要

選択中の出力エリアの内容を消去します。

注意事項

\cは、待機とクリアという処理を実行するのに、よく\pと一緒に使われます。
\cを実行したときには、\hや\fによる修飾による効果はなくなります。
出力エリアの内容をすべて消去するので、 出力エリアがほかの要素の親要素になっている場合には注意が必要です。 とくに、bodyを選択中に\cを実行するとページ全体が消去されてしまいます。 tunaスクリプトの起動直後はbodyが選択されているので注意してください。
<div id="test">
<img id="image1">
</div>
という出力エリア、画像エリアに対して、 次のスクリプトはエラーになります。
\m[select,test]
\c
\i[select,image1]
この場合、testを選択した後に\cを実行することで、 testの内容であるimage1も消えてしまうので、 \i[select,image1]が失敗してしまいます。 通常、出力エリアとして使う要素は他の要素を含まないようにします。
<div id="test"></div>
<img id="image1">

使用例

\m[select,test]
\c
最初に内容を消去します。\p\n
次はクリックを待って内容を消去し、
再び内容を続けます。
\p\c
一瞬だけ表示して消す、というような効果もあります。
\p\c
「うひゃっ！
\c
「・・・どうしたんだ？
実行
実行ボタンをクリックしてください。

関連項目

\p \h \f \m


\f (tunaスクリプト)

\f[クラス]～\.f

概要

\f～\.fの間を<span class="クラス">で修飾します。 一時的なフォントの変更に便利です。 スタイルシートでspanのクラス定義をしておく必要があります。

引数

クラス

修飾するフォント設定としてスタイルシートでのクラスを渡します。 クラスはHTMLのヘッダで設定しておきます。 次にスタイル定義の一例を示します。
<style>
span.r{color:red}
</style>

注意事項

クリア（\c）または出力エリアの変更（\m[select,ID]）で修飾の効果はなくなります。
\.fは最後に実行された\fの修飾を解除します。 基本的には、\fと同じ数だけの\.fが必要です。
\.hとたすきがけに使ってはいけません。 たとえば、次の例は正しくありません。
\f[r]フォント指定は赤です。
\h[<b>,</b>]さらに太字。\.f
ここのフォントは？\.h
\f[クラス]～\.fの実際の処理は、 \h[<span class="クラス">,</span>]～\.hと同じです。

使用例

\m[select,test]\c
このページの先頭でspan.rが宣言されているので、
\f[r]赤いフォント\.fが使えます。\p\n
\frクラス名が一文字だけの場合は
[ ]を省略することもできます。\.f
\p\c
待機カーソルは修飾の影響を受けます。\fr\p\.f
実行

関連項目

\c \h \m


\g (tunaスクリプト)

\g[ID]

戻る

概要

別のtunaスクリプトにジャンプします。

引数

ID

tunaスクリプトを含んでいるHTMLタグのID名を指定します。 大文字と小文字を区別します。

注意事項

ひとつの選択肢ごとにひとつのtunaスクリプトを割り当てるとちょうどよいです。 パートごとに別々のブロックで作成し、それぞれを\gで接続します。
いったん別のスクリプトにジャンプしたら、 元のスクリプトには戻ってきません。 別のスクリプトが終わったときにその位置から再開したい場合は、 かわりに\sを使います。

使用例

\m[select,test]\c
sample2にジャンプします。
\g[sample2]
ここは実行されませんよ～。

\p\c
ここにはsample2というIDがついています。\n
スクリプト内のジャンプには\\jを、\n
スクリプト間のジャンプには\\gを、\n
スクリプトの呼び出しには\\sを使います。
\p\c
実行

関連項目

\j \s


DHASS 取り扱い説明書

\h[開始タグ,終了タグ]～\.h

概要

HTMLタグで\h～\.hの間を修飾します。 一時的にフォントを変更したり、リンクを作成したりするときに使います。 \h～\.hの間にさらに\h…\.hを入れることも出来ます。

引数

開始と終了を同時に設定するのは、 常にHTMLを破綻させないためのトリックです。

開始タグ

修飾するタグの開始タグです。たとえば<a href="tag_f.html">です。

終了タグ

修飾する終了タグです。たとえば</a>です。

注意事項

クリア（\c）または出力エリアの変更（\m[select,ID]）で修飾の効果はなくなります。
\.hは最後に実行された\hの修飾を解除します。 基本的には、\hと同じ数だけの\.hが必要です。
\h～\.hを簡略化したタグとして、\f～\.fが使えます。 フォントを一時的に変更する場合はこちらを使ったほうが簡単です。

使用例

\m[select,test]\c \h[<center>,</center>]中央揃えになります。\n\.h \p フォントの設定には、 \h[<a href="tag_f.html">,</a>]\\f\.h も参照してください。 実行

関連項目

\c \f \m


\i (tunaスクリプト)

\i[コマンド]

戻る

概要

画像エリアを制御します。 コマンドによってさらに内容を指定します。

引数

コマンド

画像エリアに対しては次のコマンドが有効です。(表1)
表1 コマンド(\i)
メインコマンド
select,ID | エリアを選択する
open,ファイル名 | 画像をロードする
fadeopen,ファイル名 | 画像をフェードで切り替える
wipeopen,番号,ファイル名 | 画像をワイプで切り替える
移動系コマンド(position:relativeかabsolute指定が必要)
move,X座標,Y座標 | 選択中のエリアを移動する
move+,X変位,Y変位 | 選択中のエリアを移動する
size,幅,高さ | 選択中のエリアのサイズを変更する
size+,幅変化,高さ変化 | 選択中のエリアのサイズを変更する
表示操作系コマンド
show | 選択中のエリアを表示する
hide | 選択中のエリアを非表示にする
fadein | 選択中のエリアをフェードインする
fadeout | 選択中のエリアをフェードアウトする
wipein,番号 | 選択中のエリアをワイプインする
wipeout,番号 | 選択中のエリアをワイプアウトする

注意事項

openとfadeopenおよびwipeopenとは実行内容が違います。
openは画像エリアに画像をロードしますが、 画像エリアが非表示状態の場合は画像は表示されません。 表示するには表示操作系コマンドのどれかを使って表示状態にする必要があります。
fadeopen、wipeopenは画像エリアに画像をロードして、 画像エリアが非表示状態の場合は表示状態に切り替えます。 すなわち、fadeとwipeの場合は必ず画像が表示されます。
移動系コマンドのmove+、size+を使うときは、 インライン（タグにstyle=で直接書く）でleft,top、width,heightを指定してください。 ヘッダやインポートでこれらを指定しても、 値が継承されません。

使用例

\m[select,test]\c
左から順番に消えていきます。\n
\i[select,img1]\i[fadeout]\w5
\i[select,img2]\i[fadeout]\w5
\i[select,img3]\i[fadeout]\w5
\i[select,img4]\i[fadeout]\w5
\i[select,img5]\i[fadeout]\w5
\i[select,img6]\i[fadeout]\w5
\i[select,img7]\i[fadeout]\w5
\i[select,img8]\i[fadeout]\q
左から順番に表示します。\n
\i[select,img1]\i[wipein,12]\w5
\i[select,img2]\i[wipein,12]\w5
\i[select,img3]\i[wipein,12]\w5
\i[select,img4]\i[wipein,12]\w5
\i[select,img5]\i[wipein,12]\w5
\i[select,img6]\i[wipein,12]\w5
\i[select,img7]\i[wipein,12]\w5
\i[select,img8]\i[wipein,12]\q
実行

関連項目

\m fade wipe


\j (tunaスクリプト)

\j[ラベル]

戻る

概要

指定したラベルにジャンプします。

引数

ラベル

ジャンプ先ラベルの名前を指定します。 大文字と小文字は区別されます。

注意事項

\jは同じスクリプトの中の特定のラベルにジャンプします。 別のスクリプトの中の特定のラベルにジャンプすることは出来ません。
別のスクリプトにジャンプする場合は\g[ID]を使います。

使用例

\m[select,test]
\t[loop]
\c
このスクリプトは無限ループです。\p\n
何度でも続けます。\p\n
\j[loop]
実行

関連項目

\t \g


\m (tunaスクリプト)

\m[コマンド]

戻る

概要

出力エリアを制御します。 コマンドによってさらに内容を指定します。

引数

コマンド

出力エリアに対しては次のコマンドが有効です。(表1)
表1 コマンド(\m)
メインコマンド
select,ID | エリアを選択する
clear | 選択中の出力エリアの内容を消去する
移動系コマンド(position:relativeかabsolute指定が必要)
move,X座標,Y座標 | 選択中のエリアを移動する
move+,X変位,Y変位 | 選択中のエリアを移動する
size,幅,高さ | 選択中のエリアのサイズを変更する
size+,幅変化,高さ変化 | 選択中のエリアのサイズを変更する
表示操作系コマンド
show | 選択中のエリアを表示する
hide | 選択中のエリアを非表示にする
fadein | 選択中のエリアをフェードインする
fadeout | 選択中のエリアをフェードアウトする
wipein,番号 | 選択中のエリアをワイプインする
wipeout,番号 | 選択中のエリアをワイプアウトする

注意事項

tunaスクリプトが起動した直後、 一番最初に\m[select,ID]が必ず必要です。
移動系コマンドのmove+、size+を使うときは、 インライン（タグにstyle=で直接書く）でleft,top、width,heightを指定してください。 ヘッダやインポートでこれらを指定しても、 値が継承されません。

使用例

\m[select,test]\c
出力エリアとしてtestを選択しています。\p\n
エリアを動かすことが出来ます。
\m[move+,10,0]\w0
\m[move+,-10,0]\w0
\m[move+,10,0]\w0
\m[move+,-10,0]\w0
\p\n
エリアをワイプアウト・インします。\p\n
\m[wipeout,7]\q\w[19]
\m[wipein,8]\q

\m[select,test2]\n
別のエリアを選択します。\p\n
内容を消去してから、\p\c
フェードアウトします。\n
\m[fadeout]\q\w[19]
\r見えない間も文字を出力できます。\n\.r
\m[fadein]\q
おわり。
実行
実行をクリックしてください。

関連項目

\i fade wipe


fade (tunaスクリプト)

{fadein|fadeout|fadeopen}

戻る

概要

フェード効果を与えながらエリアの表示を切り替えます。

注意事項

効果を与えながら切り替える処理を「トランザクションフィルタ」と呼びます。 トランザクションフィルタの進行とtunaスクリプトの進行とは独立しています。 tunaスクリプトでトランザクションフィルタの実行が終わるまで待機するには、 直後に\qタグを使います。

使用例

\m[select,test]\c
フェードアウト・フェードインを実行します。\n
\m[fadeout]\q
\m[fadein]\q
それぞれ\\qタグでフェードが完全に終わるまで待機します。
実行

関連項目

wipe \i \m \q


wipe (tunaスクリプト)

{wipein|wipeout|wipeopen},番号

概要

効果を与えながらエリアの表示を切り替えます。

引数

番号

0～22のワイプ効果番号を指定します。 詳細は使用例を見てください。

注意事項

効果を与えながら切り替える処理を「トランザクションフィルタ」と呼びます。 トランザクションフィルタの進行とtunaスクリプトの進行とは独立しています。 tunaスクリプトでトランザクションフィルタの実行が終わるまで待機するには、 直後に\qタグを使います。

使用例

wipeopenデモ

関連項目

fade \i \m \q


wipeopenデモ (tunaスクリプト)

wipeopenデモ

\m[select,msg]
\u[cave.jpg,ruin.jpg]
\c
wipeopen demo\n
\.u
\i[select,img]
0:周囲から中央へ\n\i[wipeopen,0,cave.jpg]\q
1:中央から周囲へ\n\i[wipeopen,1,ruin.jpg]\q
2:周囲から中央へ(円形)\n\i[wipeopen,2,cave.jpg]\q
3:中央から周囲へ(円形)\n\i[wipeopen,3,ruin.jpg]\q
4:下から上へ\n\i[wipeopen,4,cave.jpg]\q
5:上から下へ\n\i[wipeopen,5,ruin.jpg]\q
6:左から右へ\n\i[wipeopen,6,cave.jpg]\q
7:右から左へ\n\i[wipeopen,7,ruin.jpg]\q
8:左から右へ(ブラインド)\n\i[wipeopen,8,cave.jpg]\q
9:上から下へ(ブラインド)\n\i[wipeopen,9,ruin.jpg]\q
10:左から右へ(チェック)\n\i[wipeopen,10,cave.jpg]\q
11:上から下へ(チェック)\n\i[wipeopen,11,ruin.jpg]\q
12:溶けるように\n\i[wipeopen,12,cave.jpg]\q
13:左右から中央へ\n\i[wipeopen,13,ruin.jpg]\q
14:中央から左右へ\n\i[wipeopen,14,cave.jpg]\q
15:上下から中央へ\n\i[wipeopen,15,ruin.jpg]\q
16:中央から上下へ\n\i[wipeopen,16,cave.jpg]\q
17:右上から左下へ\n\i[wipeopen,17,ruin.jpg]\q
18:右下から左上へ\n\i[wipeopen,18,cave.jpg]\q
19:左上から右下へ\n\i[wipeopen,19,ruin.jpg]\q
20:左下から右上へ\n\i[wipeopen,20,cave.jpg]\q
21:水平ランダム\n\i[wipeopen,21,ruin.jpg]\q
22:垂直ランダム\n\i[wipeopen,22,cave.jpg]\q
おわり。\p
\i[fadeout,12]\q
実行


DHASS 取り扱い説明書

\n

概要

現在の出力エリアに改行文字を出力します。

注意事項

tunaスクリプトでは全ての改行が無視されるので、 改行したい位置に\nが必要です。

使用例

\m[select,test]\c
\\nは改行指令です。\n
tunaスクリプトでは改行が無視されるので、\n
改行したい位置には必ず\\nが必要です。
実行


\p (tunaスクリプト)

\p

概要

\pは実行を一時停止し、ユーザのクリックを待ちます。 ドキュメント内でユーザがマウスをクリックしたら、再開します。

注意事項

\pはクリックを待つだけでその他の処理はしません。 出力エリアを消去するために、よく\cを組み合わせて使います。
待機カーソルは現在の文字位置に、 出力エリアフォントと有効な修飾（\hおよび\f）の影響を受けて表示されます。
同時実行中やSHIFTキーによるメッセージスキップが有効なときでも、 \pの位置で必ず一時停止します。

使用例

\m[select,test]\c
ユーザの入力を待ちます。\p\n
待機カーソルは現在の文字位置に表示されます。\n\p\c
出力エリアをクリアするためによく
\\cと組み合わせて使います。
実行

関連項目

\c \h \f \r


\q (tunaスクリプト)

\q

概要

直前のトランザクションが完了するまで待機します。

注意事項

同時実行中やSHIFTによるメッセージスキップ中でも、\qで待機する必要があれば必ず待機します。

使用例

\m[select,test]\c
それぞれ、トランザクションフィルタの完了を待ってから
次の文字を実行します。\p\n
\m[wipeout,12]\q
\m[wipein,13]\q
トランザクションフィルタ実行中に別のフィルタを実行すると、
後の処理が優先します。
\m[wipeout,14]
\m[wipein,15]
実行

関連項目

\r wipe fade


DHASS 取り扱い説明書

\r～\.r

概要

同時実行タグです。 \r～\.rの間のtunaスクリプトは全て時間を消費せずに実行されます。 この間の文章は一度に表示されることになります。

注意事項

\rはtunaスクリプトの実行時間（クロックの時間）を0にするタグです。 \rの効果中には、\wは無効になります。
\.rは同時実行をの効果を無効にするタグです。 \rと\.rの数は同じでなくてもかまいません。 \.rが見つかった時点で、実行した\rの数に関係なく同時実行の効果はなくなります。
同時実行中でも\p、\q、\.uなどで待機が必要であれば、 必ず待機されます。

使用例

\m[select,test]\c
\r
一気に表示しますが、
待機するタグでは必ず止まります。\p\n
効果中は時間待ち\w[100]は無効になります。\p\n
\.r
解除するには\\.rです。
実行

関連項目

\w \p \q \u


\s (tunaスクリプト)

\s[ID]

戻る

概要

別のスクリプトを呼び出して実行します。

引数

ID

tunaスクリプトを含んでいるHTMLタグのIDを指定します。 大文字と小文字を区別します。

注意事項

\sは別のスクリプト内容を呼び出して実行する、 サブルーチン実行タグです。
指定したtunaスクリプトにジャンプした後、 ジャンプ先の最後の文字まで実行されると、 元のtunaスクリプトに戻ってきて \s[ID]の次の文字から処理が再開します。
ジャンプした後、処理をもとの場所に戻さないでよい場合は\gを使ってください。
実行中のtunaスクリプトのIDを指定して呼び出すことも出来ます。

使用例

\m[select,test]\c
sample2を呼び出します。
\s[sample2]
sample2が終了したら、
もとの場所に戻ってきます。

\p\c
ここにはsample2というIDがついています。\n
スクリプト内のジャンプには\\jを、\n
スクリプト間のジャンプには\\gを、\n
スクリプトの呼び出しには\\sを使います。
\p\c
実行

関連項目

\g \j


\t (tunaスクリプト)

\t[ラベル]

戻る

概要

ラベルを示します。 ラベルは強制ジャンプの\j、選択肢の\a、\z[if]または\z[select]からジャンプする時のターゲットとして使えます。

引数

ラベル

ラベルの名前を示します。 1文字以上で、任意の文字(英数字記号および日本語)が使えます。 大文字と小文字は区別されます。

注意事項

\t[ラベル]はそれ自体何もせず、クロックも消費しません。 ジャンプするタグのターゲットとして使います。 同じtunaスクリプト内ではラベルが重複しないようにしてください。
選択肢はラベル名をたくさん使うので、 選択肢がたくさんあるとラベル名の管理がたいへんかもしれません。 そのときは別のtunaスクリプトを作って\g[ID]で処理を連結します。 別のtunaスクリプト同士であればラベル名が重複しても問題ありません。

使用例

\m[select,test]\c
ラベルが一文字の時は[ ]を無くした省略形が使えます。\p\n
\j1
ここは表示されないよ～。
\t1
ラベル名が重複しないように注意してください。
実行

関連項目

\a \j \z


\u (tunaスクリプト)

\u[ファイル名,ファイル名,...]～\.u

概要

画像の先行ロードを開始します。 \.uの位置で、直前の\uで開始した先行ロードが完全に終わるまで待機します。

引数

ファイル名

ロードする画像ファイルのファイル名を指定します。 複数指定する場合はカンマ,で区切ります。

注意事項

オンラインでは\i[open,ファイル名]で画像を表示する前に、必ず先行ロードが必要です。 ただし関連ファイルが全て同時に配布されて、オフラインで実行される場合は必要ありません。
\.uの時点で先行ロードが完了していなかった場合、 選択中の出力エリアにメッセージ（画像読込中.../中断）が表示され、 ロードが完了するまでtunaスクリプトの実行は一時停止して待機状態になります。 ユーザはメッセージの「中断」をクリックすることで、 いつでも画像のロードを中断して再開できます。 \.uの時点で運良く先行ロードが完了していた場合は、 何も表示されずに中断なしでスクリプトが進行します。
\.uは直前の先行ロードだけを調べます。 \uを複数回実行しても、待機するのは最後に実行した\uの先行ロードのみです。
同時実行中やSHIFTによるメッセージスキップが有効でも、\.uで待機する必要があればかならず待機します。

使用例

\m[select,test]\c
\u[cave.jpg]
画像の先行ロードをしています。\p\n
\\uと\\.uをなるべく遠くに離すことで、
待ち時間なしで進行させることが出来る・・・
かもしれません。\p
\.u
\i[select,image1]
\i[fadeopen,cave.jpg]\q
\w[19]
\i[fadeout]
実行

関連項目

\i \r


\w (tunaスクリプト)

\w[待ち時間]

戻る

概要

時間待ちします。

引数

待ち時間

クロック数で待ち時間を指定します。 ただし、\wの実行後、次の文字に移動する時間がさらに1クロックあります。

注意事項

tunaスクリプトは「クロック」と呼ばれている単位で実行されます。 1クロックの時間はおよそ0.05秒で、通常1クロックにつき1文字表示されます。 また、ほとんどのコントロールタグはクロックを消費せずに実行されます。
\wは指定したクロック数だけ実行を空回りさせます。 結果として、指定した時間×0.05秒だけ時間待ちすることになります。
\rはクロックの時間を0秒にするタグなので、 \rの効果中は\wが無効になります。

使用例

\m[select,test]\c
ほう、\w9ほう、\w9ほう。\w[19]\n
待機時間が一桁の場合は[ ]を省略することが出来ます。\p
シーンを演出するために、適当な間をとることが重要です。
実行

関連項目

\r


\z (tunaスクリプト)

\z[コマンド]

戻る

概要

変数と制御構造(プログラムの流れ)を操作します。

引数

コマンド

\zで使えるコマンドは下記のとおりです。
表3 コマンド(\z)
制御コマンド
use,変数名,... | 利用する変数名を宣言します
calc,変数の式 | 変数の式を計算します
output,変数の式 | 変数の式の値を表示します
if,変数の式, 真ラベル,偽ラベル | 変数の式の値によって分岐します
select, ラベル@変数の式, ラベル@変数の式,... | 変数の式が真のラベルに分岐します

注意事項

変数は英数字の大文字(A-Z,0-9)とアンダースコア(_)だけが使えます。

使用例

\m[select,test]\c
\z[use,A]
\z[calc,A=0]

\t[loop]

Aの値は\z[output,A]です。\n
\r
\a[inc,1を足す] \a[dec,1を引く] \a[mul,1.5を掛ける] \a[div,4で割る]
\.r
\.a

\t[inc]
\z[calc,A=A+1]
\j[loop]

\t[dec]
\z[calc,A=A-1]
\j[loop]

\t[mul]
\z[calc,A=A*1.5]
\j[loop]

\t[div]
\z[calc,A=A/4]
\j[loop]
実行

関連項目

\c


calc (tunaスクリプト)

\z[calc,式]

戻る

概要

式を演算します。

引数

式

任意の式を与えます。 詳細は注意事項の欄を見てください。

注意事項

変数の代入には=を使います。 掛け算、割り算、足し算、引き算、括弧はそれぞれ*、/、+、-、()を使います。
次の式は変数BにA(2+3)の結果を代入します。
B=A*(2+3)
変数を使う前に、useで使う変数の名前を宣言する必要があります。

使用例

\m[select,test]\c

\z[use,A,B]

\z[calc,A=10]
\z[calc,B=A*(2+3)]

10×(2+3)の結果は\z[output,B]です。
実行

関連項目

\z use output if select


if (tunaスクリプト)

\z[if,式,真ラベル,偽ラベル]

戻る

概要

式の値で分岐します。

引数

式

任意の式を指定します。

真ラベル

式の値が真のときにジャンプするラベルの名前を指定します。

偽ラベル

式の値が偽のときにジャンプするラベルの名前を指定します。 省略することが出来ます。

注意事項

変数と値の比較には比較演算子を使います。 等しい、等しくない、より大きい、より小さい、以上、以下がそれぞれ eq、ne、gt、lt、ge、leに対応します。
比較演算子の左右には空白(スペース)が必要です。

使用例

\m[select,test]\c

\z[use,A]

\z[calc,A=10]

\z[if,A eq 10,true,false]

\t[true]
Aは10です。
紛れもなく10です。
\j[end]

\t[false]
Aは10ではありません。
よくわかりませんが、他の何かです。

\t[end]
実行

関連項目

\z use calc output select


output (tunaスクリプト)

\z[output,式]

戻る

概要

式を演算して、結果を表示します。

引数

式

任意の式を与えます。 詳細は注意事項の欄を見てください。

注意事項

変数の値を表示するには、単に変数名だけを書きます。
掛け算、割り算、足し算、引き算、括弧はそれぞれ*、/、+、-、()を使います。
変数を使う前に、useで使う変数の名前を宣言する必要があります。

使用例

\m[select,test]\c

\z[use,A,B]

\z[calc,A=10]
\z[calc,B=20]

\z[output,A]÷\z[output,B]の結果は\z[output,A/B]です。
実行

関連項目

\z use calc if select


select (tunaスクリプト)

\z[select,ラベル@式,…]

戻る

概要

式を評価して、真のときに特定のラベルにジャンプします。

引数

ラベル@式

ラベルの名前と式とを@で区切って指定します。

注意事項

変数と値の比較には比較演算子を使います。 等しい、等しくない、より大きい、より小さい、以上、以下がそれぞれ eq、ne、gt、lt、ge、leに対応します。
比較演算子の左右には空白(スペース)が必要です。

使用例

\m[select,test]\c

\z[use,A]

\z[calc,A=3.3]

\z[select,LessThan@A lt 10,Equals@A eq 10,GreaterThan@A gt 10]

\t[LessThan]
Aは10よりも小さい。\n
\j[end]

\t[Equals]
Aは10である。\n
\j[end]

\t[GreaterThan]
Aは10よりも大きい。\n

\t[end]
A=\z[output,A]
実行

関連項目

\z use calc output if


use (tunaスクリプト)

\z[use,変数名,…]

戻る

概要

利用する変数の名前を宣言します。

引数

変数名

変数名は大文字英数字(A-Z,0-9)とアンダースコア(_)だけで構成します。 変数名の最初の一文字は英字だけが使えます。

注意事項

変数名は全て大文字で作成してください。 DHASS中で使う名前と衝突したら不幸だからです。

使用例

\m[select,test]\c

\z[use,A,B,C]

\z[calc,A=1]
\z[calc,B=2]
\z[calc,C=A+B]

1+2の結果は\z[output,C]です。
実行

関連項目

\z calc output if select


A tale

debug area
モニタ
\m[select,div1] \u[cave.jpg,ruin.jpg] \m[clear] \i[select,img1] \i[hide] \.u \c ここはどこだ？\w9\n なぜこんなところにいるんだ？\w9\n 何も、見えない。\w9\n 何も、聞こえない。\w9\n 只そこに闇だけがある。 \p\c とりあえずだ。\w9\n 状況判断には観測が先行する。\w9\n 何か、照らすものは持ってなかったか？\w9\n \a[1,たいまつ]\n \a[2,ライター]\n \a[3,懐中電灯]\n \.a \t1 そうだ、確か、バックパックに松明があったはずだ。\w9\n あった。\w9\n 質量、外形、素材、紛れも無く松明だ。\w9\n しかし・・・。\w9\n \p\c 火をつけるものが無い。\w9\n 何たる不覚！\w9\n ショックのあまり、松明で頭を打ち、死んだ。\w9\n THE END \p\g[initial] \t2 \g[cave1] \t3 \g[ruin1]
そうだ、確か、ポケットにライターがあったはずだ。\w9\n 胸ポケットには、入っていない。\w9\n あんなプラスチックの容器に発火燃料を目一杯詰め込んで 胸ポケットに入れおくなんて、正気の沙汰とは思えない行動だ。\w9\n 左ズボンのサイドポケットからライターを取り出して、火をつけた。 \p\c \i[select,img1]\i[open,cave.jpg]\i[fadein]\w9 ぼっ！と灯があたりの岩肌を照らす。\w9\n ここは・・・洞窟か？ \p\c なぜ洞窟の中にいるかなんてことは、もう分からない。\w9\n この右足の痛みと頭痛はその理由のいくらかの説明にはなるかもしれないが、 今はそんなことを考えている場合ではない。\w9\n どうも向こう側に、なにか光るものが見えたからだ。 \p\c あれは・・・\w9\n \a[1,宝の山だ！]\n \a[2,虎だ！]\n \.a \t1 宝の山だ！\w9\n 私は、宝の山を見つけて一生幸せに暮らしましたとさ。\w9\n めでたしめでたし。\w9\n THE END \p\g[initial] \t2 \g[cave2]
虎だ！あれは虎の牙だ！\w9\n 実に、虎が出てきた。\w9\n どうも機嫌も腹具合もそれほどよくないらしい。\w9\n ぐぐぐ・・・という低いうなり声が肺腑に響く。 \p\c 獣なら火を怖がるはずだ。\w9\n 上着を脱ぎ、火をつけて前に放り出した。\w9\n 畜生め、虎はひるんでいる。\w9\n この隙に・・・\w9\n \a[1,逃げろ！]\n \a[2,戦え！]\n \.a \t1 そうだ、この隙に逃げるべきだ。\w9\n 虎と視線を合わせながら、ライターを後ろ手に投げた。\w9\n かつーん・・・・・・・・\w9\n 落ちるまでに、10mは飛んだだろう。\w9\n 逆位相で聞こえる反響音はほとんどない。 \p\c 逃げられる可能性は高い。\w9\n 視線をそらさずに、一歩、二歩、三歩。\w9\n じり、じりと後退する。\w9\n 十五歩、十六歩、十七歩。\w9\n ぐっ、と踏みしめた左足が滑った。 \p\c ライターだ！\w9\n にわかにバランスを崩し、右手で岩壁を掻く。\w9\n 好機あり、と敵は岩を蹴って跳び出す。\w9\n 私は何とか態勢をもちなおしてクラウチング・スタート。\w9\n しかし・・・虎と競走して勝てるものなのだろうか？ \p\c 「そういえば、虎は火の輪くぐりをするなあ。\w9\n そんなことをつぶやきながら、走る。\w9\n 敵は、駆ける。\w9\n いざとなったときの爆発的な筋力の開放は、われながら驚くべきものだ。\w9\n 右足を負傷してたのではなかったのか？\w9\n 次第に岩壁に苔がむし、外の光が見えた。 \p\c \g[cave3B] \t2 \g[cave3]
闇に慣れた網膜細胞に陽の光は強すぎる。\w9\n オーバーフローした映像は外世界について何の情報も与えてくれなかった。\w9\n \a[1,走り抜ける]\n \a[1,走り抜ける]\n \a[1,走り抜ける]\n \.a \t1 そうだ、今は走り抜けなければならない！\w9\n 勢いよく飛び出したその足元に、期待した手ごたえはなかった。\w9\n 身長の三倍ぐらいの高さを転落したあと、斜面を転がって、崖から空中に投げ出された。\w9\n 崖の下は、河だ。\w9\n 私の体は飛沫を上げて水中に沈んだ。 \p\c \i[select,img1]\i[fadeout] 助かったのだろうか。\w9\n 私は何かベッドに寝かされているようだ。\w9\n すねから、腕から、胸から、激痛がする。\w9\n ひどく寒い。\w9\n 目を開ける気力もない。 \p\c 「安心、するといい。\w9\n 声が聞こえた。\w9\n 私は、安心した。\w9\n THE END \p\g[initial]
た、戦う？\w9\n 何をばかな・・・いや、冷静に考えよう。\w9\n 足元に散らばっている道具に猟銃がある。\w9\n 私は探検隊員だろうか？\w9\n じろ、と虎の様子を確認してから、注意深く視線を天井のほうに上げた。\w9\n 吸い込まれるように、暗い。 \p\c 対峙は続いている。\w9\n 燃え上がる炎を挟んで、こちら側と向こう側。\w9\n 敵はまっすぐこちらを見据えている。\w9\n どれくらいの時間見合っていたのだろうか、ふと、敵は目をそらした。\w9\n \a[1,いまだ撃て！]\n \a[2,いまだ逃げろ！]\n \.a \t1 とっさにしゃがみ、猟銃を拾って構えた。\w9\n しかし獣の俊敏はそれよりはるかに勝っていた。\w9\n あたたかい血が噴出し、虎の牙を染めた。\w9\n THE END \p\g[initial] \t2 とっさに逃げ出したい衝動に駆られたが、足は動かなかった。\w9\n しかし、虎はそのまま向きを変えて、洞窟の奥へと歩いていった。\w9\n 呆然と立ちすくんでいるうち、次第に火は燃え尽きて消えた。\w9\n ひゅうっ、と後ろから風が吹き、灰が舞った。\w9\n THE END \p\g[initial]
ふむ、懐中電灯があったはずだ。\w9\n ごそごそ、と懐を探す。\w9\n あった、懐中電灯。\w9\n ・・・なんでこんなものが懐に入っているんだろう。 \p\c いくら懐中電灯とはいってもこれを懐の中に入れているなんてのは。\w9\n まあいい、渡りに舟とはこのことだろう。\w9\n スイッチを入れると、ぱっと足元が照らされた。\w9\n \i[select,img1]\i[open,ruin.jpg]\i[fadein]\w9 ここは・・・廃墟か？ \p\c 床は粉塵で一杯で、手袋にもうっすらと埃がかぶっている。\w9\n 一体何時間倒れていたのだろうか。\w9\n とりあえず立ち上がろうと上体を起こしたとたん、舞い上がる粉塵が目に入る。\w9\n \p\c 目をぱちぱちさせて涙を出していたそのとき。\w9\n どこからか「ゴトリ」という音が聞こえた。\w9\n あの音は・・・。\w9\n \a[1,天井の崩れる音だ！]\n \a[2,誰か人がいる音だ！]\n \.a \t1 あれは、天井の崩れる音だ！\w9\n どこだ、どこだ、どこだ、どこだ、どこだ、・・・上かっ！\w9\n ぐっ、と床を蹴って部屋から飛び出した。 \p\c ガラガラガラ・・・。\w9\n 避けた。\w9\n わけではなかった。\w9\n 回避行動が常に成功するとは限らない。\w9\n 私はもはや瓦礫の海に沈んでいく他なかった。\w9\n THE END\w9\p\g[initial] \t2 \g[ruin2]
「そこに、誰か人がいるのか？\w9\n 呼びかけてみたが返事はない。\w9\n しかし目を拭って見てみると、入り口から見えている影は、確かに人の形をしている。 \p\c とすると、返事のない理由は一体なんだろうか。\w9\n \a[1,実は刺客が隠れている]\n \a[2,実は彫像が立っている]\n \.a \t1 刺客・・・だな。\w9すなわち、何らかの理由で私は今追われの身だ。\w9\n 私が正しいのか、彼が正しいのかはまだ分からないが、 それを知るためにもことはとにかく逃げのびなくてはならない。\w9\n な、何か・・・武器は？\w9\n 懐を探ると、拳銃と薬莢がでてきた。\w9\n 一体、何者なんだ？ \p\c 装弾し、構えた。\w9\n 影はこちらの様子をうかがっているようだ。 \p\c 「来い！\w9\n 掛け声とともに、私は部屋を横とびに飛び出して発砲した。\w9\n 一発、二発、三発。\w9\n 二発目が相手の右手首に当たり、跳弾して壁を削った。\w9\n 「くっ！\w9\n 逃げる相手に、さらに一発。 \p\c 私は逆方向に走った。\w9\n 廊下の突き当りを左に、次の三叉路を右に。\w9\n 遠く向こうのほう、右の角から私の持っている灯よりはるかに明るい光が漏れている。\w9\n 「出口かっ \p\c \g[ruin3] \t2 動かないところを見ると、彫像かもしれないな。\w9\n しかし、彫像が「ゴトリ」なんて音を出すだろうか？\w9\n 廊下に出て、照らしてみると、それは中世の騎士の鎧兜であった。\w9\n と、そのとき！ \p\c 右の篭手が大きく銅剣をふりかぶり、私の頭上に落とされた。\w9\n 私はもちろんとっさに両手で頭を抱えている。\w9\n だが、西洋剣は殴打するための道具であり、切るための道具ではない。\w9\n 銅剣は腕を折って頭蓋を砕き、私はその場に斃れた。\w9\n THE END\w9\p\g[initial]
その瞬間、目が見えない。\w9\n 伏せた。\w9\n 右から、左から、前方から、すさまじいガトリング音が聞こえる。\w9\n 相手は三人、標的は間違いなく、私だ。 \p\c ここは・・・。\w9\n \a[1,走る]\n \a[2,様子を見る]\n \.a \t1 今は、走るべきときだ！\w9\n 握り締めた手の中の草を抜いて、私は走り出した。\w9\n 一歩動いたのか、二歩走ったのか。\w9\n しかし私はもうそこに倒れていた。\w9\n 永遠に見開いた目のままで。\w9\n THE END \p\g[initial] \t2 まて、今はうかつに動くべきではない。\w9\n こちらにとって順光で、相手にとっては逆光だ。\w9\n な、何か、何か道具は・・・。\w9\n 例のごとく、懐をまさぐった。\w9\n 「あつっ \p\c 人差し指が皮手袋ごと鋭利に切られている。\w9\n これは、手裏剣だ。\w9\n すなわち9枚の星型の投げるもの。\w9\n ではなく、長さ10cmほどの短刀である。 \p\c ドラえもんかよ。\w9\n おっと、記憶喪失の人間の言うことではないな。\w9\n ともかく、私はこれを使えるような気がする。\w9\n 刃を後ろに二本の指で支えて構え、黒スーツに向かってふわりと投げた。 \p\c 放物は日の光を反射して曲線を描きながら飛んでゆく。\w9\n 突然肩の下に刺さったナイフに、黒スーツは叫び声をあげて遺跡の壁から転げ落ちた。\w9\n 動揺する左右二人の隙を私は見逃さない。\w9\n 敵はそれぞれ叫び声をあげてその場に崩れた。\w9\n 一撃で、私は間違いなく急所に当てていたのだ。 \p\c \i[select,img1]\i[fadeout] 前の一人に駆け寄り、蹴りを入れて銃器を取り上げ土手を駆け上がった。\w9\n 並木を抜け、林を抜け、森を抜け、夢中で走った。\w9\n いや、走りながら私はむしろ私は醒めつつあった。 \p\c ふと、足を止めるとそこには一軒のログハウス。\w9\n 「ここは私の・・・家だ！\w9\n 私は家に入り、湯を沸かして茶を煎れた。\w9\n 今、私はすべてを思い出した。\w9\n THE END \p\g[initial]


テストページその1

\m[select,msg1] やあこんにちわ。\n DHASS with tunaスクリプトはじまります。\n \n tunaスクリプトは基本的に文章を書くのがメインです。\n 文章の間に\\記号で始まるコントロールタグを挿入し、\n 時間待ちや選択待ちなどの特殊操作を実行します。\n \n とりあえずこのページのソースも見てください。


テストページその2

\m[select,msg1] \u[cave.jpg,ruin.jpg] このtunaスクリプトは先行ロードを完了したあと、\n 画像エリアを選択し、\n 画像をフェードイン表示させます。 \.u \i[select,img1] \i[fadeopen,cave.jpg] \p\c Web上で画像を利用する場合は、\n 必ず先行ロードしておきます。\n フェードで別の画像に切り替えることも出来ます。\n \i[fadeopen,ruin.jpg] \p\c 通常のフェードアウト、フェードインもできます。\p\c \i[fadeout] \w[20] \i[fadein] \w[20] おわり。


テストページその3

\m[select,msg1] あなたの好きな果物は？\n \a[melon,メロン]\n \a[mikan,みかん]\n \a[ringo,リンゴ]\n \.a \t[melon] メロンか。\n それもよい・・・。 \j[end] \t[mikan] みかん。\n ふむ、食べ過ぎに注意せよ。 \j[end] \t[ringo] さくっ。\n \t[end]