今回はアンカーポイントと選択肢についてちょっとふれてみようかと。


私自身まだまだマニュアルを見なければ、
何も出来ない初心者なので心もとないですが。

まずアンカーポイントから。
アンカーポイントというのは、HTMLなどではおなじみですね。
といいつつ、私はあまりHHTMLのほうはよく分かってないんですが。

検索してみたところ、同じページ内のリンクということのようです。
私はどちらかというとラベルという名で覚えてました。
マニュアルにもアンカーポイント(ラベル?)とあるので、
ラベルでもいいのかな?

呼び方はともかく、どちらも同じファイル内に印をつけて、
ジャンプする命令によって印をつけたそれぞれの場所に飛ぶという感じです。

普通は上から順番に1、2、3、4……と読み込んでいきますが、
4というアンカーポイントをジャンプ先に指定すれば、1、2、3を飛ばして
いきなり4から始めることもできます。

逆に10まで行った後、3に戻ることももちろんできます。

書き方は、アンカーポイント名の頭に@をつけるだけです。

@
アンカーポイント名


これを飛ばしたいところ、
たとえばタイトル画面や選択肢によって分かれた道の入り口に
書き込みます。

道が左右に分かれている。どちらに向かおう。
| ↓
 右
| ↓
| 右へ行くとやがて遠くに町の灯りが見えてきた。どうやら今夜は野宿せずにすみそうだ。



左の道は山に向かって続いていた。どうやら今夜は野宿決定のようだ。


芸がないですが、
上のような感じの選択肢とその分岐先があったとします。

&select=選択肢1:&Jmp=選択肢1の分岐先,選択肢2:&Jmp=選択肢2の分岐先;


道が左右に分かれている。どちらに向かおう。

&select=
:&Jmp=@migi,:&Jmp=@hidari;


@migi

右へ行くとやがて遠くに町の灯りが見えてきた。どうやら今夜は野宿せずにすみそうだ。

@hidari
左の道は山に向かって続いていた。どうやら今夜は野宿決定のようだ。

ピンクの字は選択肢の命令、緑がジャンプの命令です。
オレンジ色がジャンプ先のアンカーポイント、つまり行き先です。

ちなみに、上のようなジャンプさせるだけの選択肢なら
かんたん命令で↓のように書くこともできます。

&EzSel =
選択肢1:選択肢1の分岐先,選択肢2:選択肢2の分岐先;

画面15 矢印01 画面16

設問が表示された後、改頁されて選択画面に。

ちょっと分かりにくいですが、カーソルを合わせると、
文字の上に白い半透明の長方形が表示されます。

ホームページなどのリンクと同じですね。

FWの場合選択肢は、文字数に関係なく、
文字を表示するエリアの横いっぱいに矩形が広がるのが基本のようです。
では、次に右を実際に選んでみましょう。

画面17

右の分岐が表示されました。

最後はセリフ再生ですね。

これは今まで自分で使うことがなかったので、
よくは知らなかったんですが、
どうやらインライン命令を使うようです。

【人物名】&v=セリフ用のファイル名&「セリフ」

【ウエイトレス】&v=/voice/Irassyaimase01@22.wav&「いらっしゃいませ」

【ウエイトレス】&v=/voice/Youkoso00@22.wav&「ようこそおいでくださいました」

【ウエイトレス】&v=/voice/Gotyuumon00@22.wav&「ご注文はお決まりですか?」


テスト用にWEB WAVE LIB さんから声ネタをお借りしました。

セリフ再生が終わるまで
カーソルがでないことにお気づきでしょうか?

実際に上の例でやってみたいという方は、
WEB WAVE LIB さんの利用規約をよくお読みの上、
声ネタ→あいさつ等→rassyaimase01、Youkoso00、Gotyuumon00で
3つの音声データをダウンロードしてください。

なお、今回は“data”のフォルダーの下に“voice”というフォルダーを作って
そこに声のデータをいれています。

次は効果音と環境音ですね。

&SND.Load = 効果音のファイル名;

効果音をメモリーに読み込みます。
BGMのときと同じでこれだけでは再生されません。

&SND.Play;

この命令で初めて再生されます。効果音の場合は、ループはされず再生は1回きりです。

&SND.Stop;


たとえ再生の途中であってもこの命令が入ると効果音はストップします。
v2では効果音のフェードアウトの命令はありませんが、
v3ではBGMと同じように

&SND.Stop = フェードアウトする時間;

とすることでフェードアウトさせることができます。


&EzSND = 効果音のファイル名;

かんたん命令
である上の命令を使えば、
効果音のデータを読み込んだ後、すぐに再生されます。


&SE.Load =
環境音のファイル名;


環境音のデータを読み込みます。

&SE.Play;

&SE.Load ”で読み込んだデータを再生します。
環境音の場合は、BGMと同じでループ再生されます。

&SE.Stop;

環境音を止めます。
環境音にもv2ではフェードアウトさせる命令はないですが、

&SE.Stop = フェードアウトする時間;

v3では、上の命令でフェードアウトします。


&EzSE = 環境音のファイル名;

環境音のかんたん命令です。
BGM、効果音と同じで読み込み即再生ですね。


本当に命令を並べただけで終わっていますが、
だいたいはこんな感じです。

味もそっけもないというか、
音関係はやはり実際にやってみないとわかりにくいですね。
サウンド系は、スクリーンショットとかも使えないので
どう説明すればいいのかわからずに今まで保留にしていたんですが、
今回、基本の命令だけでも書いてみることにしました。
(いや、そもそも私に分かるのは基本のみなんですが(汗))

マニュアルの“音声・ムービー系命令 ”の“音声系”にあるように、
FWでは、BGM、効果音、環境音、ボイスの4つの音を同時に再生できます。

つまり、人々のざわめきが聴こえる中、
キャラが喋りながら、ドアを開ける。
そのバックには雑踏のシーンに相応しい音楽が流れ……
というようなことができるわけですね。

まず、BGMの命令

&BGM.Load =
BGMのファイル名;

BGMをロードします。
ロードしているだけなのでこの命令だけでは

BGMはなりません。

なので、次の命令

&BGM.Play;


でループ再生をさせます。

&BGM.Stop;


は、BGMを止める命令です。

&BGM.Stop =
フェードアウトする時間;

上のように書くとBGMをフェードアウトさせることができます。
数値は1/100秒なので、5秒かけてフェードアウトしたいときには、
500と入れてください。

なぜロードしてすぐに再生にならないかというと、
同じBGMを流したりとめたりする場合は
いちいちファイル名を指定しなくていいようにだそうです。

私はそこらへんはあまり深く考えず、
かんたん命令

&EzBGM =
BGMのファイル名;

を使っています。
これだと、一つだけでデータを読み込みんだ後、再生してくれるので。

後、かんたん命令には、BGMをフェードアウトし、
終わるまで待つという下のような命令もあります。

&EzBGMFade =
フェードアウトする時間;

今回はテキストウインドウに画像を使うための命令です。
v2とは、微妙に命令とか順番とかが違っているみたいなので、
v2のときに書いたものを減筆加筆訂正しております。

テキストウインドウは
キタユメ。 』さんの素材をお借りしています。

# 画像ファイル
*MesBody.Load =
画像ファイル名;

# 画像の左上の座標
*MesBody.Pos =
画像の
左上の座標x,画像の左上の座標y;

この命令は2つでセットになっています。

後、画像は必ず『data』フォルダーの中に入れてくださいね。
data』フォルダーの中なら、さらにフォルダーを作って潜らせても大丈夫です。
その場合の記述は、

/フォルダー名/ファイル名


という感じで。

#画像ファイル
*MesBody.Load =
al3.bmp;
# 画像の左上の座標
*MesBody.Pos =
6,
290;


画面42

ちなみにv3では、テキストウインドウの画像の表示や消去のときに
画面効果を設定することができます。

効果番号と効果の細かさは、普通の画像表示のときと同じものです。

▼画像が表示されるときの効果
*Mes.ShowEffect = 効果番号 [,効果の細かさ];

▼画像が消去されるときの効果
*Mes.HideEffect = 効果番号 [,効果の細かさ];


v2用ではsetting.txtの初期設定のカテゴリーに入れていたものを、
メッセージレイヤーのカテゴリー入れてv3用に訂正しています。

今回は、テキストウインドウの設定です。
(ここでは、テキストウィンドウで一応統一していますが、
他にもメッセージ枠、メッセージウィンドウ、セリフ枠等々といろいろ呼び名があります)

# 左上の座標x,y,領域の幅,領域の高さ
*EzMes = 20,320, 600,140;


これは、横20、縦320の座標から600×140の大きさのテキストウインドウという意味です。

画面31

これを下のように変えると、

# 左上の座標x,y,領域の幅,領域の高さ
*EzMes = 20,20, 600,440;


画面32  矢印01  画面33

このようにテキストウインドウが大きくなります。

# 色,透過度(0:非透過~100:透過)
*EzMesColor = #000066, 40;# ボーダーの色,太さ
*EzMesBorder = #66cccc, 2;


現在は上のようにテキストウインドウの色が#000066の色で、
透過が40、ポーダーはの太さの#66ccccの色になっています。
(FWの色はRGBコード、つまりHTMLと同じように指定します。
赤や青という基本的な色なら、“red”、“blue”でも可です。


上のはバックが黒なので分かりにくいですが、

下のように画像を表示してみると透過されているのが分かると思います。


画面34
私は背景の画像表示はほとんどかんたん命令を使っています。


&EzBG=
画像名,画面表示効果番号;

&EzCG =
指定するレイヤー,画像名,画面表示効果番号;


↑この2つですね。


では、まず“&EzBG”から。

かんたん命令というのは、
そもそもいくつかの標準命令が合わさったものなので、
&EzBG”を標準命令に直すと下の4つになります。

#画像を表示したいレイヤーを指定する(0で固定)
&Layer.No = 0;

#表示する画像を読み出す
&Layer.Load = 画像名;

#破棄する画像のレイヤー指定(固定)
&Layers.Nil = 1,255(背景以外の全レイヤー);

#画像を指定した表示効果で表示する
&Draw = 画面表示効果番号;

つまり、レイヤー0に、指定した画像を読み出し、
背景以外の全レイヤーの画像を破棄してから
読み出していた画像を画面表示効果番号の効果によって表示する。

という命令なわけです。
私も今回はじめて知りましたが(汗)。

この命令を使うと、
画像を表示するたびに他のレイヤーの画像も
↓のようにクリアされてしまうので、

画面47 矢印01 画面48

背景画像のみ使っているときとか場面展開などで、
立ち絵やらをいっぺんにクリアしたいときなどに
限定して使うといいかもしれません。

#背景画像を表示する
&EzBG=/mc03.jpg,702;


#立ち絵をレイヤー1に表示する
&Layer.No = 1;
&Layer.Load = /tatie01.bmp;
&Layer.Pos = c,t;
&draw = 702;

立ち絵を表示しました。_

/ちょっとしっくり来ないので、背景画像をイラスト風に加工したものに替えてみます。

#背景の画像を変える
&EzBG=
/mc01.jpg,702;

しかし、肝心の立ち絵が消えてしまいました。


ソースはこんな感じです。

今回の立ち絵も『いずみ亭 』の和泉あすかさんからお借りしました。


では、次に“&EzCG”に行きます。
標準命令に直すと、下のようになります。


#画像を表示したいレイヤーを指定する
&Layer.No = 指定するレイヤー;

#表示する画像を読み出す

&Layer.Load =
画像名;

#画像がマスクにしたがうかどうかの指定をする(マスクに従うに固定)

&Transparent =
1;

#画像を指定した表示効果で表示する
&Draw = 画面表示効果番号;


つまり、任意のレイヤーに指定した画像を呼び出し、
読み出していたマスクに従った画像を
画面表示効果番号の効果によって表示する。

という、命令なわけなんですが
なんかまた書いていてよく分からなくなってしまいました(汗)。

とりあえず、こっちの命令を使うと

画面49

こんなふうに立ち絵は残ったままなので、
背景のみを変えたい場合は、こちらの命令を使ってください。

#背景の画像を読み込む
&EzCG=0,:/mc01.jpg,702;


今度は立ち絵もちゃんと残っています。_

/やはりイラスト風にしたほうが立ち絵が背景になじむ……かな?


後、これは画像表示の命令ではないですが、

&EzBF =
指定の色,画面表示効果番号;

上のような命令を使うと、画面を一色に塗りつぶすことができます。


#画像を表示したいレイヤーを指定する(0で固定)
&Layer.No = 0;

#色を指定する
&Layer.Fill = 塗りつぶしたい色;

#破棄する画像のレイヤー指定(固定)
&Layers.Nil =
 1,255(背景以外の全レイヤー);

#画像を指定した表示効果で表示する
&Draw =
画面表示効果番号;

標準命令に直すと、↑のようになります。


&EzBG”同様、背景以外の全レイヤーがクリアされてしまうので、
やはり場面展開のときなどに使うほうがいいでしょう。
背景に続いて立ち絵の表示の仕方です。

このあたりは、v2用に書いたものが使えそうなので、
命令をv3用にしたものをコピペしてしまいます。

立ち絵の素材は『いずみ亭 』の和泉あすかさんからお借りしております。


立ち絵の場合は、むろんレイヤー0の背景画像の場所に入れても仕方がないので、
まず、立ち絵を表示するレイヤーを指定します。

&layer.No = 指定するレイヤーの番号;

次に画像を呼び出します。

&Layer.Load =
画像名;

表示する位置を決めます。

&Layer.Pos =
横の位置,縦の位置;


画像を表示します。

&Draw =
表示効果番号,効果の細かさ;

#立ち絵を表示するレイヤーを指定
&Layer.No = 1;

#
画像を呼び出す

&Layer.Load = /tatie01.bmp;

#
表示する位置を指定
&Layer.Pos = center,top;

#
画像を表示
&draw = 702;

立ち絵を表示しました。_
/ちょっとしっくり来ないので、背景画像をイラスト風に加工したものに替えてみます。


画面47

↑の例での位置指定"center"と"top"は、それぞれ"c"と"t"と略して書くこともできます。


こまかい位置調整をしたいときには

&Layer.Pos = 400 ,50;

という感じで直接横の位置、縦の位置の数値を入れてください。


数値の頭に"+"や"-"をつけた場合は、
現在の位置からその数値だけ移動ということになります。


位置指定の詳しいことについては、命令マニュアルの
pos型の説明にありますので見て下さい。


デフォルトではマスクに従うようになっているので、
特に設定は必要ありませんが、
もし、マスクに従わない設定をしていたときは
↓のようになってしまいますので、

画面50

その時は、

&Layer.Transparent =
1;


という命令を“&Layer.Load”の前にいれて“マスクに従う”にしてください。
画像を呼び出した後に“マスクに従う”にしても意味はないので。
(実は、後ろに入れておかしいなと首を捻った私(汗)
ちなみに、これを“0”にすると、“マスクに従わない”になります。

後、アクティブレイヤーの透明化の命令である

&Layer.Opacity = 透明にする値(0~255);

を入れることによって

画面51.

このように立ち絵を透けさせることもできます。

うちのカスタマイズサンプルデータを使ってくださっている方を発見すると、
わずかながらでもお役に立てているようで、とても嬉しいです。
へたれながら、作ってよかったと思ってしまいます。

そのこともあってか、今回文字がずれているのを直すだけのつもりが、
いつのまにか、背景とかボタンの画像や色を変えたり
位置をずらしたりといろいろしてしまうという↓こんな結果にうー



なんというか、和風を目指してみて、
見事に玉砕したという感じがよくでているのではないかと汗

前のと比べてみると、あんまり変わってないような気もひしひしとしてきました。

まあ、私のセンスなんて所詮こんなもんなんでしょう。

とりあえず、栞はほぼ真ん中になるよう位置をずらしたので、
もし、使えるようならこれを叩き台とかにでもして使ってやってください。

前のサンプルもこちらとは違う部品もあるので、一応、一緒にいれております。

v2用のときには、かんたん命令のほうを先に説明していたんですが、
v3用を書くにあたり、前の記事とかいろいろ見ているうちに
標準命令のほうを先にやったほうが分かりやすいような気がしてきました。

というわけで、今回は背景画像の標準命令による表示です。


まず、背景を表示するためには、
画像を呼び出す命令の

&Layer.Load = 画像名;

と、それを表示するための

&Draw = 表示効果番号,効果の細かさ;

の二つが最低でも必要です。(効果の細かさのほうは省略可)


では、実際にやってみます。

#画像を読み込む命令
&Layer.Load = mc04.jpg;

#画面表示

&Draw = 702 ;

標準命令で背景画像を表示しています。



画像が表示されました。


ただし、立ち絵を表示した後などでアクティブレイヤーが0以外になっているときは、

画像を表示する前にアクティブレイヤーを0にしておかないと、



↑こんなふうに変な表示になったりしますので、
画像を読み込む命令の前に
アクティブレイヤーを指定する命令である

&Layer.No = 指定するレイヤーの番号;

をいれてください。