広告
Text Adventure Converter System
TACS for Flash(ver 25) + ネット公開版
Copyright(C)1997-2010 Takaaki


著作権について



≪ Copyright(C)1997-2010 Takaaki . All rights reserved ≫
プログラム&マニュアルの著作権は、鷹彰に帰属します。
基本的に著作権は放棄しませんが、どのように御使用いただいても一切自由とします。個人的に利用しようが、商売がらみに使おうがかまいません。
しかし当ソフトウエアの使用上。なんらかの損害が生じた場合があっても、当方は一切の責任を負わないものとします。


全体内容



TACS for Flashとは、Flashでアドベンチャーゲームの製作を支援するツールです。
Flashで動作をする為「機種の制限が大きく緩和され」「インストールが不要で」「インターネット上にオンライン公開」する事が可能です。
文章や選択肢表示ウインドウ、画面効果のエフィクト等は自由にカスタマイズ可能。(カスタマイズ方法は後述)
その気になれば、ミニゲームを組み込んだり、ホームページ作成にもつかえます。


TACS for Flash起動方法



二通りの方法があります。
1.作成したシナリオデータ(tacs.avg)をtacs.swfとおなじ階層に配置し、フラッシュを再生できる媒体で、tacs.swfを再生して下さい。
2._root.loadfilename変数に、シナリオデータのファイル名を指定してtacs.swfを再生させると、任意のシナリオファイル名で再生します。(※以下は、htmlの表記例)

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="640" height="480" id="tacs" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="tacs.swf?loadfilename=tacs.avg" />
<param name="quality" value="high" /><param name="bgcolor" value="#000000" />
<embed src="tacs.swf?loadfilename=tacs.avg" quality="high" bgcolor="#000000" width="640" height="480" name="tacs" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>


TACS for Flashの基本仕様



・スクリーンサイズ640*480,34階層レイヤー( (画面手前)-1番〜32番(画面奥) )
34階層あるレイヤーの好きなところにデータ(画像、文字、ムービー)を送ることによって表現を行う。
-1番:マウス入力待ち用ウインドウ 0番:選択肢表示用ウインドウ 1〜32番:通常ウインドウ
※-1番、0番ウインドウは、基本的にシステム側で使用する為、特別に設定しなければいけないデータを持つ。


シナリオデータの書き方



基本的に処理は上から下にながれます。コマンドをふまえて、書いていってください。
シナリオ製作がスムーズに行えるように、原則的にBASIC等のコマンドに近い感覚にしてあります。
コマンドは半角なら、大文字でも小文字でもどちらでもOKです。


□コマンド一覧

"〜",n
ダブルコーテーション( " )で囲んだ内容をメッセージとして表示します。
メッセージウインドウを読み込んだレイヤー番号を指定する必要があります。
〜 ... メッセージの本文内容
n ... レイヤー番号(-1〜32) ※省略時の値は 1

#$n
シーン名を設定します。
$n ... シーンネーム(※全角文字指定推奨)

#>$n
設定してあるシーン名の位置へジャンプします。
同名のシーンが複数存在した場合は、先に記述してあるシーンへジャンプします。
$n ... シーンネーム(※全角文字指定推奨)

*$n
メイン選択肢を設定します。
各シーン内でこのコマンドの位置に来るとシーン内に設定してある全てのメイン選択肢を抽出し、選択肢ウインドウに表示します。
選択終了後は、選択されたこのコマンドの直後の命令を実行していき、
次の * か # コマンドにたどり着くと、再び上記と同じ動作を行います。
$n ... 選択肢名(※全角文字可)

-$n
サブ選択肢を設定します。
必ずメイン選択肢(* コマンド)の後に記述して下さい。
直前に行われたメイン選択肢内に設定してある全てのサブ選択肢を抽出し、選択肢ウインドウに表示します。
選択終了後は、選択されたこのコマンドの直後の命令を実行していき、
次の * か - コマンドにたどりつくと、再び上記と同じ動作を行います。
$n ... 選択肢名(※全角文字可)

[MEMORY]
シナリオファイルのこの命令のあった位置の一つ下の行を記録します。

[JUMP]
[MEMORY]命令で記録した行へジャンプします。

BACKLOG_INIT
メッセージログの記録をクリア(白紙に)します。(_root.backlog 変数の値が "" になります)

BACKLOG_START
メッセージログの記録を開始・再開します。(以後メッセージ表示命令("〜")の実行毎に、メッセージログとして _root.backlog 変数に追記されていきます)

BACKLOG_STOP
メッセージログの記録を停止します。(_root.backlog 変数の値はクリアされず、そのまま残ります)

BGM_PLAY $n,v
指定ファイルをBGMとしてストリーミング再生します。再生曲は自動ループします。
MP3とWAVに対応しておりますが、サーバーへの負荷となりますので、オンライン動作の場合はMP3が推奨です。
ボリュームはパーセンテージで指定となり、100%以上の指定も可能ですが、音割れの原因となるので注意して下さい。
$n ... ファイル名(※半角英数字推奨)
v ... ボリューム(0〜)※省略可(値は100になる)

BGM_STOP
BGMをの再生をストップします。追記するパラメーターは特にありません。

BGM_VOLUME v
BGMの音量をパーセンテージで指定します。
100%以上の指定も可能ですが、音割れの原因となるので注意して下さい。
v ... ボリューム(0〜)※省略可(値は100になる)

DICE_ROLL $n,d
サイコロ(6面ダイス)を1〜6個振り、その結果をフラグへ代入します。
その際、画面にはサイコロを振るアニメーションが再生されます。
$n ... フラグ名
d ... サイコロの数(1〜6)※省略可(値は1になる)

DICE_ROLL2 $n,d
サイコロ(6面ダイス)を1〜6個振り、その結果をフラグへ代入します。
上記DICE_ROLL命令とは違い、こちらは画面にアニメーションが表示されません。
$n ... フラグ名
d ... サイコロの数(1〜6)※省略可(値は1になる)

FLAG_SYMBOL $n
メッセージ表示命令(ダブルコーテーション " で囲む命令)内で、フラグの値をメッセージとして出力する際に、変数を囲って表記する文字を任意の文字に変更します。
(なおTACSの初期設定は半角ピリオド . を使用しております)
$n ... フラグ識別文字。複数文字指定可。

FLAG_SAVE $n
TACS動作内で使用したフラグをローカルハードディスク上にセーブします。
この命令を実行した時点で、宣言していた全てのフラグをセーブします。
$n ... ファイル名

FLAG_LOAD $n
ローカルハードディスク上からフラグをにロードします。
この命令を実行した時点で今まで保持していたフラグは全消去され、ロードしたフラグデータに書き換わります。
$n ... ファイル名

FRAME_ALPHA n,a
指定したレイヤー(n)の、透過率(a)を設定します。0で完全透明、100で完全不透明になります。
n ... レイヤー番号(-1〜32)
a ... 透過率(0〜100)※省略可(値は50になる)

FRAME_CHANGE n1,n2
指定したレイヤー同士(n1,n2)を、レイヤー番号ごと深度を入れ換えます。
n1 ... レイヤー番号(-1〜32)
n2 ... レイヤー番号(-1〜32)

FRAME_CHANGE2 n1,n2
指定したレイヤー同士(n1,n2)のレイヤー番号は入れ換えず、内容のみを入れ換えます。
n1 ... レイヤー番号(-1〜32)
n2 ... レイヤー番号(-1〜32)

FRAME_MASK n1,n2
指定したレイヤーn1をマスクとして、指定したレイヤーn2にマスクをかけます。
n1 ... マスクするレイヤー番号(-1〜32)
n2 ... マスクされるレイヤー番号(-1〜32)

FRAME_POS n,x,y
指定したレイヤー(n)の、xとy座標を変更します。なお起動時の全レイヤーは x=0,y=0 となっております。
n ... レイヤー番号(-1〜32)
x ... レイヤーX座標
y ... レイヤーY座標

FRAME_SCALE n,xs,ys
指定したレイヤー(n)の、拡大率を設定します。起動時の全レイヤーは縦横とも100%となっております。
n ... レイヤー番号(1〜32)
xs ... 拡大率(100で標準サイズ)※省略可(値は現状維持になる)
ys ... 拡大率(100で標準サイズ)※省略可(値は現状維持になる)

FRAME_PLAY n,$n
指定したレイヤー(n)に読み込まれているSWFファイルに対して、指定フレーム($n)から表示、そのまま再生させます。(※予め指定するレイヤーにSWFファイルを読み込んでおく必要があります)
n ... レイヤー番号(1〜32)
$n ... フレーム番号、又はレイヤー名(半角数字のみのレイヤー名は使用不可)

FRAME_STOP n,$n
指定したレイヤー(n)に読み込まれているSWFファイルに対して、指定フレーム($n)を表示、そのまま停止させます。(※予め指定するレイヤーにSWFファイルを読み込んでおく必要があります)
n ... レイヤー番号(1〜32)
$n ... フレーム番号、又はレイヤー名(半角数字のみのレイヤー名は使用不可)

FULLSCREEN_ON
フルスクリーン表示にします。実行ファイル、または一部のプレイヤーで動作させている場合のみ動作します。ブラウザで公開している場合は、なにもおこりません。フルスクリーン状態を解除する場合は、FULLSCREEN_OFF 命令を実行するか、ESCキーを押して下さい。

FULLSCREEN_OFF
フルスクリーン表示を解除します。実行ファイル、または一部のプレイヤーで動作させている場合のみ動作します。ブラウザで公開している場合は、なにもおこりません。

FUNC $n
ユーザーが記述した関数(ファンクション)を実行します。何度も実行する一連の動作を関数にまとめておけば、この命令するだけで一連の動作を行ってくれるようになります。
$n ... 関数名(※全角文字可)

GET_YEAR $n
現在の西暦を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

GET_MONTH $n
現在の月を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

GET_DAY $n
現在の日を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

GET_WEEK $n
現在の曜日を、指定したフラグに格納します。格納される値は全角文字の、月 火 水 木 金 土 日 のいづれかになります。
$n ... フラグ名(半角英数)

GET_HOUR $n
現在の時間を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

GET_MIN $n
現在の分を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

GET_SEC $n
現在の秒を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

INPUT_TEXT $n
32枚のレイヤーのいずれかから
_parent._root.inputtext
変数に入れられた値を、指定したフラグに格納します。
$n ... フラグ名(半角英数)

MENUBAR_ON
画面左上にマウスカーソルを持っていくと、メニューバーが表示されるようになります。現在はどこでもセーブ・ロードの選択ボタンが追加されます。
なお、どこでもセーブのタイトル名は、SAVETITLE 命令で指定できます。

MENUBAR_OFF
MENUBAR_ON 命令を解除します。

NOVELMODE_ON
以後 PAUSE と PAUSE2 命令を実行した際、最後に表示したメッセージの末尾に入力待ちを促す文字 ▽ や を表示します。

NOVELMODE_OFF
NOVELMODE_ON 命令を解除します。

NOWTIME_RESET
経過時間(※単位:秒)をリセットします。

NOWTIME $n
経過時間(※単位:秒)をフラグへ代入します。
なお特にリセットが行われていない場合は、TACSが起動してからの経過時間がフラグへ代入されます。
$n ... フラグ名

PAUSE
入力待ちウインドウを表示します。
※この命令後は、シナリオソースを改行して下さい
更に NOVELMODE_ON 命令を事前に実行していた場合は、最後に表示したメッセージの末尾に ▽ を表示します。

PAUSE2
入力待ちウインドウを表示します。
※この命令後は、シナリオソースを改行して下さい
更に NOVELMODE_ON 命令を事前に実行していた場合は、最後に表示したメッセージの末尾に を表示します。

PIC n,$f
指定したレイヤー(n)に、指定ファイル名($f)のデータを配置します。ファイル名はフルパスでも相対パスでも可。
n ... レイヤー番号(-1〜32)
$f ... ファイル名(JPG / SWF)

QUALITY $n
画面のクオリティ(画質)を変更します。画質を低くすると処理が軽くなり、画質を高くすると画像のふちが滑らかになります。なおデフォルトは HIGH になっています。
$n ... 画質(文字で指定 LOW , MEDIUM , HIGH , BEST / または数字で指定 (低い)1〜4(最高画質) のどちらの表記でも可)

QUICK_SAVE $n
現在のゲーム状況とフラグをローカルハードディスク上にセーブします。
$n ... ファイル名

QUICK_LOAD $n
ローカルハードディスク上からゲーム状況をロードします。
セーブデータがない場合は、この命令は無視されます。
$n ... ファイル名

QUIT
TACSの全動作を終了し、動作していたウインドウを閉じます。実行ファイル、または一部のプレイヤーで動作させている場合のみ動作します。ブラウザで公開している場合は、なにもおこりません。

SAVETITLE $n
MENUBAR_ON 命令により追加されるどこでもセーブ機能を使ったセーブ時の、セーブデータにタイトル(見出し)を指定します。なおこの命令が未実行の際のタイトルは【NO TITLE】になります。

SET_FUNC $n
 【自由に命令を複数行記述】
ENDFUNC
関数(ファンクション)定義をします。シナリオデータ(tacs.avg)内で何度も行う一連の動作を関数にまとめておくと、以後 FUNC 命令で呼び出すだけで一連の動作を行ってくれるようになります。
この SET_FUNC から ENDFUNC 命令の箇所までを関数定義として認識します。
なお、関数内で「FUNC 命令を用い、別の関数の呼び出す事」と「フラグを利用する事」も可能です。
$n ... 関数名(※全角文字可)

SE_PLAY $n,v
指定ファイルをSEとしてストリーミング再生します。ループはしません。
MP3とWAVに対応しておりますが、サーバーへの負荷となりますので、オンライン動作の場合はMP3が推奨です。
ボリュームはパーセンテージで指定となり、100%以上の指定も可能ですが、音割れの原因となるので注意して下さい。
$n ... ファイル名(※半角英数字推奨)
v ... ボリューム(0〜)※省略可(値は100になる)

SE_STOP
SEの再生をストップします。追記するパラメーターは特にありません。

STOP
TACSの動作を一旦停止します。32枚のレイヤーのいずれかから、
アクションスクリプト命令(変数代入)
_parent._root.Breakmode = 0;
をうけとると、動作再開します。
※この命令後は、シナリオソースを改行して下さい

SUBMENU p,$t,n,$f
右クリックメニュー(右クリックの項目)を有効化し、項目を追加します。最大16項目まで設定可能です。
HTML上で右クリックメニューを有効化する際には、HTMLソースの記述からmenuをfalseしている記述を取り除く必要がある。
(※例:<param name="menu" value="false" /> の表記を消す等)
具体的にはこのマニュアルの項目「TACS for Flash起動方法」であげている、html表記例と同じように記述すれば動作する。
項目の位置指定の番号は、間を置いて指定すると分割線(ボーダー)が表示されます。
各レイヤーに送る値が入った変数名は下記の通り
1〜32は _root.Action
0 は _root.selectwindow.Action
-1 は _root.pausewindow.Action
p ... 項目の位置([最上段]1〜16[最下段])
$f ... 項目名
n ... レイヤー番号(-1〜32)
$f ... そのレイヤに送る値

URL_JUMP $n1,$n2
指定URLにジャンプします。ターゲット指定が可能です。
URLの表記($n1の値)を javascript:window.close(); 等の表記にする事で、javaスクリプトの命令も可能です。
$n1 ... URLアドレス(相対パス可能)
$n2 ... ターゲットネーム※省略可

WAIT_FRAME t
指定した値まで、ウエイトをかけます。単位はtacsのフレーム数です。(デフォルト30fps)
※この命令後は、シナリオソースを改行して下さい
t ... ウエイトをかけるフレーム数


フラグ設定



フラグの登録は !A=0 や !ZZ=58 というように、頭に!をつけ、CやBASIC等の変数代入のように指定します。
その際、フラグ名は必ず半角文字で指定して下さい。

フラグ同士は頭に!!をつけると、簡単なフラグ同士の計算をさせる事ができます。
例えば、 !!A=B+C と記述した場合は、フラグBとCの合計値をフラグAに格納します。
可能な計算は、加算・減算・掛算・割り算・剰余算の五種で、それぞれ + - * / % の表記で計算する事ができます。(※剰余算とは、割り算の余りを求める計算です)
但し注意点がいくつかあります。

 !!A=B+30 というように、直接計算したい数値をいれても、30は「30という名前のフラグ」として判断されますのでご注意下さい。(※シナリオ内で30という名前のフラグを宣言してなければ、値は 0 として扱われます)このような場合は、!C=30;!!A=B+C というように表記し、30という値が格納されているフラグを用意して計算を行って下さい。
 !!A=(B+C)/D 等の一度に複数の計算はできません。このような計算をしたい場合は、 !!A=B+C;!!A=A/D; というように、複数にわけて記述して下さい。


フラグをチェックする場合は、?A=1 というように ? をつけて表記します。
条件をみたしてないと、?A=1 の右に書かれている命令は出力しない事になります。
宣言されてないフラグをチェックした場合は、全て 0 と判断されます。
TACSのフラグは、 !A=★■● などとやって文字型も代入できます。
文字型フラグのチェックも、数値系と同じように ?A=☆■ という風に ? をつけて指定します。
なお、フラグの値を半角数字で指定している場合のみ、 ?A<10 や ?A>=20 というように、数値の大小でフラグのチェックを行うことが可能です。

さらに、メッセージ出力命令("〜" 命令)時に、変数の値をメッセージとして出力する事も可能。
このように行う:(変数 dainu をメッセージ出力する場合)
"これは.dainu.のサンプルです。"


連絡先



Cのアトリエ -統合所-(URL:http://atelier-c.fiw-web.net/ )


[EOF]