TACS for Flash 講座
ここではシナリオソースの基本的な書き方を説明します。
では、サンプルゲーム殺人事件のシナリオソースを例にとって、説明致しましょう。
まずは、シナリオソースをみてみましょう。
下記リンクのシナリオソースをテキストエディタで開いて下さい。
http://atelier-c.fiw-web.net/tacs_samplegame/game1/tacs.avg
- ■1行目(最初の行)と138行目(最後の行)
-
&tacsscenariodata=
この表記は必須です。&
TACSはこの記述の間に記載されている内容を、シナリオソースとして認識致します。
- ■3〜21行目
-
// はコメント行です。ゲーム中には無視される命令なので、作成中のシナリオソースの整理などにご利用下さい。//---------------------------------------- #タイトル画面 //ポーズボタン設置 PIC -1,data/nextbutton01.swf FRAME_POS -1,270,260 //選択肢ウインドウ設置 PIC 0,data/selectwindow01.swf FRAME_POS 0,370,160 FRAME_SCALE 5,125,127 PIC 5,data/title.jpg pause #>最初の海岸 //----------------------------------------
PIC -1,data/nextbutton01.swf で、ゲーム中にマウスクリック待ち状態(PAUSE 命令)にした際に、表示するマウスクリック待ちオブジェを読み込みます。-1番レイヤーはマウスクリック待ちオブジェ専用のレイヤーです。
FRAME_POS -1,270,260 で、マウスクリック待ちオブジェの表示位置を指定しています。
この命令をする前にマウスクリック待ち命令の pause を実行した場合。マウスクリック待ちオブジェが読み込まれてない事になり、TACSの動作はストップしてしまいます。ご注意下さい。
PIC 0,data/selectwindow01.swf で、選択肢ウインドウを読み込みます。0番レイヤーは選択肢ウインドウ専用のレイヤーです。
FRAME_POS 0,370,160 で、選択肢ウインドウの表示位置を指定しています。
この命令をする前に選択肢表示命令 * を実行した場合。選択肢ウインドウが読み込まれてない事になり、TACSの動作はストップしてしまいます。ご注意下さい。
FRAME_SCALE 5,125,127
PIC 5,data/title.jpg
このサンプルゲーム中の5番レイヤーは、少し小さめの画像データを表示するのに使用しようと考えています。
なので5番レイヤーの縮尺を予め大きくしておいた後から、その5番レイヤーに title.jpeg を表示させています。
- ■3〜21行目
-
選択肢と、その選択肢を選んだ結果の記述方法の一例です。私なりにわかりやすくしようとタブを入れておりますが、タブ自体は入れても入れなくても動作致します。*はい。かしこまりました "よし",1;pause "",1 FRAME_ALPHA 1,0 #>地図確認 *やなこった "なめてんのか、こら。\nいいな!?解決しろよ!?",1
"",1
FRAME_ALPHA 1,0
このサンプルゲーム中で、メッセージ表示ウインドウにしていた1番レイヤーを、一時的に非表示にしようとしています。
ウインドウの非表示自体は FRAME_ALPHA 1,0 で透明化することにより非表示可能なのですが、表示しているメッセージ(文字)自体はFlashの性質上、透明化できない場合がありますので、 "",1 で、1番レイヤーに指示してある、メッセージ表示のデータを削除しています。
- ■75〜80行目
-
フラグの使い方の一例です。?knock=0;*灯台に入る ?knock=0;"ノックぐらいしろ!",1;!knock=1 ?knock=1;*ノックする "返事があって、人がでてきた。",1 pause #>灯台の人と対峙
一度も設定してないフラグは、? 命令でチェックした際データの中身は 0 として扱います。
このソースの注目点は、!knock=1と?knock=1の表記してある位置です。
!knock=1がこの位置にないと、*ノックするが無効化したままなので、以下の "返事があっ〜 の命令が実行されてしまったのですが、直前に!knock=1があった為に、*ノックするが有効化。以降の命令が*ノックするを選んだ時のものになるので、選択肢の再表示に戻っております。
わかりやすく表記するのなら、以下のようにするのもオススメです。?knock=0;*灯台に入る ?knock=0;"ノックぐらいしろ!",1;!knock=1 ?knock=1;*ノックする ?knock=1; "返事があって、人がでてきた。",1 ?knock=1; pause ?knock=1; #>灯台の人と対峙