今回は、本来ならsetting.txtの最初の頃にやっておかなければ

ならなかったような気がする拡張子の設定です。


FWには、シナリオテキスト、画像、BGM、効果音、セリフ用と

5つのファイルに対してそれぞれよく使う拡張子を

setting.txtであらかじめ設定しておくと、

その拡張子を省くことができます。


# シナリオテキストの拡張子
*Format.Scenario = txt;
#画像の拡張子

*Format.Image = bmp;
# BGMの拡張子
*Format.BGM = mid;
# 効果音の拡張子
*Format.Snd = wav;
#セリフの拡張子
*Format.v = mp3;


つまり、今まで


*StartScenario = /start.txt;
*Menu.TitleScenario = /title.txt;


上のように書いていたものを


*StartScenario = /start;
*Menu.TitleScenario = /title;


こんな感じで省略して書けるわけですね。


他の拡張子、たとえば画像などで

立ち絵やボタン画像は“bmp”だけど、背景画像は

jpg”を使いたいというときなどは

/”の前に“:”を入れて、“jpg”という拡張子をつけてください。


*MesBody.Img =:/haikei.jpg;


ちなみに、上の例で“:”を前につけずに拡張子をつけた場合は、

拡張子が重複することになってしまうので


『画像haikei.jpg.bmpは開けません』


というエラーがでてしまいます。

どれから手をつけていけばいいのかどんどん分からなくなってきたので、

思いついたまま、順番をあまり考えずに説明していこうかと


というわけで、今回はゲームには欠かせない

セーブとロード部分を。


デフォルトではセーブとロードは無効になっているので、

まず、本編のシナリオ部分(今、使っているのはstart.txtですね)に

有効にするための命令を書きます。

#セーブを有効にする

&SaveEnable = 1;

#ロードを有効にする

&LoadEnable = 1;


セーブとロードを同時に無効にしたり有効にしたりしたい場合には、

下のようなかんたん命令もあります。

#メニューのロード・セーブを使用可にする
&EzLoadOK;

#メニューのロード・セーブを使用不可にする
&EzLoadNG;


さて、これでデフォルトのロードとセーブの準備はOKです。

さっそく実行してみましょう。


メニューバーのファイルからや右クリックメニューから

まず“別名でセーブ”を選んでみます。


画面43 画面44


MAC版は、ちょっと画面が違うかもしれませんが、

デフォルトでできるセーブとロードはだいたいこんな感じです。


手を加えれば、市販のゲームのような

サムネイル付きのセーブ、ロード画面を作ることも可能ですが、

きっぱりはっきり言って、私には一から作るなんて無理です。


というわけで、『Famous Writerホームページ 』の『ライブラリ 』の

ロード/セーブのところにある『サムネイル付きロード/セーブ画面 Ver.2』を

今回は使わせていただきます。


まず“lib_saveloadthumb_v2.zip”をダウンロードしてください。


解凍した後、でてきた画像やらテキストファイルやらを全部

『data』フォルダーの中に入れます。


そして、setting.txtに下のように書き入れます。

#別名でセーブで呼び出すファイル

*Menu.SaveScenario = savelib.txt;

#ロードで呼び出すファイル
*Menu.LoadScenario = loadlib.txt;


さあ、これでOKと思ったら、エラーがでてしまったので、

ちょっと修正を。


savelib.txt”と“loadlib.txt”のファイルをそれぞれ開いて

27、37、41、45、49、53行目あたりにある“savebg”と“loadbg”、

59、65行目あたりにある“cancel”、

72行目あたりにある“larrow”、74行目あたりにある“rarrow”に

“bmp”の拡張子をつけてください。


16行目あたりにある“ # *ImageFormat = bmp;”の“#”をとるだけでも

セーブやロードに関してのエラーはなくなりますが、

*ImageFormat ”という命令は拡張子なしで書いても

設定した拡張子(この場合は“bmp”)を画像ファイルに付与してくれる命令なので

たとえば、セーブやロードした後に00.jpgという画像を表示しようとした場合、

「00.jpg.bmpが開けません」というエラーがでてしまいます。


これを避けるためには、“:/00.jpg”としてやればいいんですが、

どちらにしろややこしいので(自分で書いていて疲れたらしい(汗))

今回は、私が拡張子を勝手につけた“savelib.txt”と“loadlib.txt”を

用意してみました。


上の説明がよく分からなかったという方は、こちら のページから

ダウンロードしてください。


もし、ダウンロードしても開けないあるいはデータがないという場合には

連絡いただけると幸いです。



画面45 画面46


と、妙に前置き(?)が長くなりましたが、

↑こんな感じでセーブとロード画面が読み出せるようになります。

順番がなんか逆ですが、今回は前回のときに使っていた
テキストウインドウに画像を使うための命令です。

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

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

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

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

この2つセットの命令は、

*EzMes =
左上の座標x,左上の座標y,テキストウインドウの幅,テキストウインドウの高さ;

*EzMesColor =
テキストウインドウの色,透過度;

*EzMesBorder =
ボーダーの色, ボーダーの太さ;

この3つセットの命令の代わりになるものなので、
テキストウインドウに画像を使う場合は、
3つセットのほうを削除するか“#”を頭につけて
無効にしておいてください。

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

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


という感じで。


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


画面42

setting.txt
の命令は、本編のシナリオの中でも使えるものが多数あります。
同じゲームのなかでも全画面ウインドウ表示と下画面ウインドウ表示を切り替えたり、
縦書きと横書きを使い分けたりしたいときもあると思いますので、
特にこのテキストウインドウやその中に表示される文字に関する命令は
よく使うことになるのではないかと。

命令自体は、setting.txt内に書くときと変わりませんが、
本編の中に書くときは最後に

*MesBody.New;


という命令を入れてください。
これを入れて初めて、変更した設定が反映されます。

教材用のテキストウインドウを自作しようとしてコケたので、

今回はテキストウインドウを配布していらっしゃる

キタユメ。 』さんから素材をお借りしました。



setting.txtで設定を追加する~左右上下の余白(後、時々ルビ) 』では、

文字の左右上下の余白をまとめて設定しましたが、

テキストウインドウに画像を使ったときなんかには、

左右上下が対称とは限らない場合もあると思います。


たとえば、下のようなウインドウ画像を使ったとして

模様に引っかからないように文字の左右を“150”ぐらいあけると、


#内側の文字の余白をまとめて設定(左右、上下)
*MesBody.Padding =
150,20;


画面40

こんな感じで右のほうが少し開きすぎてしまいます。

文字の余白を左右上下ばらばらに設定したい。


そんなときの命令が、下の4つです。


# 左側の文字の余白を個別に設定
*MesBody.Padding-Left = 文字の左側の余白;

# 上側の文字の余白を個別に設定
*MesBody.Padding-Top = 文字の上側の余白;

# 右側の文字の余白を個別に設定
*MesBody.Padding-Right = 文字の右側の余白;

# 下側の文字の余白を個別に設定
*MesBody.Padding-Bottom = 文字の下側の余白;


# 左側の文字の余白を個別に設定
*MesBody.Padding-Left =
150;

# 上側の文字の余白を個別に設定
*MesBody.Padding-Top =
20;

# 右側の文字の余白を個別に設定
*MesBody.Padding-Right =
100;

# 下側の文字の余白を個別に設定
*MesBody.Padding-Bottom =
20;


                         ▼


画面41


左右の余白がちょうどいい感じになりました。


私は適当に数値を入れた後、

表示させて調整するというアバウトなことをしていまが、

二度手間が嫌いな人とかは、計算したり画像ソフトなどで位置を調べたり

しているみたいです。

名前】「セリフ


上の形だとデフォルトではセリフ部分がインデントするというのを前にも触れましたが、

全画面表示などで改頁しないで続けて違う人物にセリフを言わせたいときは、

このインデントが効かなくなります。


それをなんとかできないかという話題が持ち上がっていたので、

私なりに勝手にちょっと考えてみました。


でも、自動的にインデントさせるのはどう考えても無理っぽい。


となると、やはり手動?


でも、いちいち全部にスペースを入れていくのは

大変だよな。



と、まあ、結局いい方法は全然思いつかなかったわけなんですが、


ゲーテ「女性を力強く守ることのできる者だけが、/    女性の愛願を得るに値する。」 _


//シェークスピア「何かの間違いはあるかもしれないが、/        別に気は狂っちゃいないさ。」_


//ゲーテ「喜びには悩みが、/    悩みには喜びがなくてはならない。」_


//シェークスピア「お前の光は、今、何処にある。」_


//2人は思い思いに勝手なことを言った。



画面39


一部分に効果として使うなら、こういうオーソドックスな手もありかなと。



以上、全然参考にもならないお茶の時間でした。

前回の『setting.txtで初期設定する~テキスト表示部分の設定 』の

最後のほうにこんな画像 をUPしてましたが、

元画像の大きなほうを見ていただくとわかるように、

一行目のルビが上半分切れています。


少し悲しかったので、上下左右に余白をいれて、

文字の表示位置を変えてみます。


*MesBody.Padding = 文字の左右の余白,文字の上下の余白;


を↓のように新たにsetting.txtの中に書き加えます。

*EzMes = 20,20,600,440;
*EzMesColor = #000000, 70;
*EzMesBorder = #66cccc, 0;

*MesBody.Font-Size = 20;
*MesBody.Line-Height = 32;


#内側の文字の余白をまとめて設定(左右、上下)
*MesBody.Padding =
15,15;


画面36

上に余白ができて、

“いぬどし”というルビがちゃんと表示されるようになりました。


その分、下のほうがはみ出してしまいましたが、

これは3行ほど次の頁へ送ることにします。


FWは現在、はみ出た行を自動的に送る

という仕様にはなっていないので、

表示される行数などを考えながら、手動で次の頁へ送ります。


画面37 矢印01 画面38


改頁させるついでに画像も変えてみました。



文字表示の基本~デフォルトのセリフ表示とインデントと少しだけルビ 』のときに、

ルビの詳しい説明はsetting.txtのときにと書きましたが、

命令の書き方を書いてしまったら、新たに説明することは

ほとんどないことに今さらながら気づきました。


ルビを使うときに気をつけることと言ったら、

今回のように上の余白をルビ分はあけること

行間をルビが重ならないようにある程度あけることぐらいです。


とりあえず、ルビの使い方の例として、上の表示に使ったソースを

↓へ書いておきます。


#犬の写真を画面効果702で表示する。

&EzBG=hina.jpg,702;


_&r=年賀:いぬどし&用に撮った写真。我が家の愛犬“ひなた”です。_

/しかし、大抵は“ひな”と呼ばれます。_


/お向かいに住んでいたまだ&r=幼稚園:3つ&ぐらいの男の子が「ひなちゃん」と呼んで小さい手で頭を撫でる姿はとても微笑ましかったです。_


//うちには猫もいて名前は“みんと”という名前なんですが、やはりなぜか縮められて“みん”“み

んちゃん”と呼ばれています。


/なぜ3文字の名前なのに縮めてしまうのかは、我がことながら不思議です。


#猫の写真を画面効果702で表示する。

&EzBG=mint7.jpg,702;


ちなみに猫の場合、他にも“なまねこ”、“けもの”、“けも”、“萌えキャラ”、“猫”などと好

きなように呼ばれていますが、&r=本猫:ほんにん&は大して気にしていない模様。_

/(たぶん(汗))


テキスト表示部分、つまりテキストウインドウと

その中に入る文字の設定です。


# 左上の座標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=画像名,画面表示効果番号;


こんな感じです。


かんたん命令や画面表示効果についてもっと知りたい方は

マニュアルや『かんたん命令とチュートリアル 』等をご覧下さい。




# フォントの大きさ
*MesBody.Font-Size = 24;

# 行間
*MesBody.Line-Height = 32;


文字の大きさが24、行と行の間が32ってことですね。

これもお好みで変えてください。


文字がもっと小さいほうがよければ、

22とか20にしてみるとか、

私みたいにルビが必須な場合は、

ルビが重なってしまわないように行間をあけるとか。



20、縦20から600×440の全画面表示にして、

下の画像が見えるように透過を70まであげて

文字が見えやすいように色は

ボーダーは今回いらないから、太さを0にするでしょう。

文字の大きさはちょっと小さく20にして、

行間は文字のほうを小さくしたからこのままでいいかな。


というわけで、私は↓のように設定しました。

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

# 色,透過度(0:非透過~100:透過)
*EzMesColor = #000000, 70;

# ボーダーの色,太さ
*EzMesBorder = #66cccc, 0;

# フォントの大きさ
*MesBody.Font-Size = 20;

# 行間
*MesBody.Line-Height = 32;


(画像をクリックすると、別窓に実寸大のものが表示されます)


画面35


ちょっとサウンドノベルっぽくなりました。




setting.txtの設定は、いわゆる初期設定なので、

すべてのテキストに反映されますが、

シナリオ中で設定を変えた場合、

以後のシナリオはその変えたほうに従います。


今のところデフォルト(setting.txtの設定)に戻すという命令は

なかったような気がするので、(またしてもうろ覚え(汗))

タイトル画面から始めるなら、setting.txtは、

ゲームのメインである本編用の設定ではなく、

タイトル画面用の設定にしておいてもいいかもしれません。


次は動作の設定。



# ウインドウの大きさ
*WindowSize = 640,480;


ウインドウのサイズです。


普通は640×480ぐらい。


市販のゲームとか

同人でもキャラやグラフィックを売りにしているゲームとかは

800×600ぐらいにしているものが多いようです。



# 最初に読み込むシナリオファイル
*StartScenario = /start.txt;


一番最初に読み込むシナリオファイルの名前。

これは任意に変えることができます。


起動して文字を表示する 』では、setting.txtに添って

start.txtという名前にしましたが、

もし、first.txtという名前から始めたい場合は、

StartScenariofirst.txtという名前に変えてやれば

OKです。


FWで名前が変えられないものは、確か『data』というフォルダー名と

初期設定用の『setting.txt』というファイル名だけだったはず。

(ちょっとうろ覚え(汗))



# 「タイトルへ戻る」のシナリオファイル
*Menu.TitleScenario = /title.txt;


これは、メニューバーのファイルの中にある

タイトルへ戻る』を実行したときに戻るファイル名です。


大抵はタイトルページがあるファイル名を指定します。


ただ、今の状態では『タイトルに戻る』は

表示されていても選べない状態になっていると思います。


画面29


これはシナリオファイルの中に


&TitleEnable = 1;



を入れてやれば下のように有効になります。

画面30


タイトル画面自体のように『タイトルに戻る』が不要なときには、

&TitleEnable = 0;



上記のように“0”にしてやれば、また無効に戻すこともできます。


setting.txtを覚えていますか?

起動して文字を表示する 』のときに

ダウンロードした基本の設定です。



本来なら、この設定部分からとりかかるべきだったんでしょうが、

実際に少しFWを動かしてからのほうが分かりやすいかなと

後回しにしてきました。


むろん、人によってはきっちり設定をすませてからでないと

落ち着かない場合もあることとは思いますので、

画像表示や選択肢とかに入る前に

このsetting.txtに少し触れておきますね。



それぞれに説明が入っているので、

見ていただければだいたい分かると思いますが、

FmWrPlin________
# ↑この一行は絶対に変更しないでください。


一行目は、『起動して文字を表示する 』でもやったように魔法の言葉。


二行目はコメント文です。


# が頭についている文章は、表示されません。


なので、後で見直したときに分かるように

説明や覚え書きなどを入れておくと便利です。



まずはゲームの設定。

# ゲームのタイトル
*Game.Title = test game;


これは説明はいらないですね。


文字通りゲームのタイトルです。


画面25


こんなふうにタイトルバーに表示されています。


# 著作者名
*Game.Author = someone;
# ゲームのバージョン
*Game.Version = 0.1.0.0;
# パスワード
*Game.id = 01234567;


続いて 著作者名、ゲームのバージョン、パスワード。



著作者名には、ゲームの製作者であるご自分の名前や

グループで製作している場合は

そのグループ名を入れてください。



ゲームのバージョンはお好きなものを。


まず1.0.0.0から始めて、バージョンアップするたびに

数値を少しずつあげていこうかなとか、

体験版だから、0.5.0.0かなとか、

私は深く考えずに好き勝手してます。


ただ、この数字4つをピリオドでくぎる形はくずさないで下さい。


1.0.0とか0.5とかではなく、必ず1.0.0.0や0.5.0.0という形で。



パスワードも同じくお好きなものを。


全角ひらがなを入れても実は動いたんですが、

やはりここは半角英数字のほうがいいのではないかと

個人的には思っています。


Windows版のバージョン情報、MAC両版ではアバウトボックスを見ると


画面26


このようにデフォルトでは、タイトル、著作者、

バージョンが反映されています。(画像はWindows版です)

(このバージョン情報を任意の画像に差し替えることも可能です)


# ゲームのタイトル
*Game.Title = 初心者への道;
# 著作者名
*Game.Author = Kuo;
# ゲームのバージョン
*Game.Version = 0.5.0.0;
# パスワード
*Game.id = 23232323;

私は上のように書き換えました。


画面27


画面28


それぞれ変わっているのがお分かりでしょうか?

ご質問をいただいたので、少し追記など。


ゲーテ「女性を力強く守ることのできる者だけが、女性の愛願を得るに値する。」


シェークスピア「何かの間違いはあるかもしれないが、別に気は狂っちゃいないさ。」


ゲーテ「喜びには悩みが、悩みには喜びがなくてはならない。」


シェークスピア「お前の光は、今、何処にある。」


全然会話になっていませんが、

上のセリフをそれぞれの人物ごとに色を変えてみます。


人物名とセリフ、両方とも同じ色にするときも

下のようにそれぞれに色を変える命令を入れてください。


&c=#00cc00&ゲーテ&c=&&c=#00cc00&「女性を力強く守ることのできる者だけが、女性の愛願を得るに値する。」&c=&


&c=#ff0000&シェークスピア&c=&&c=#ff0000&「何かの間違いはあるかもしれないが、別に気は狂っちゃいないさ。」&c=&


&c=#00cc00&ゲーテ&c=&&c=#00cc00&「喜びには悩みが、悩みには喜びがなくてはならない。」&c=&


&c=#ff0000&シェークスピア&c=&&c=#ff0000&「お前の光は、今、何処にある。」&c=&


2人は思い思いに勝手なことを言った。


画面19 矢印01 画面20 矢印01


画面21 矢印01 画面22 矢印01


画面23




今回の例のようにセリフの間間に地の部分が入らず、

セリフが続いている場面なら、

実は下のように命令文を省いても上と同じ表示になります。

&c=#00cc00&ゲーテ】「女性を力強く守ることのできる者だけが、女性の愛願を得るに値する。」


&c=#ff0000&シェークスピア】「何かの間違いはあるかもしれないが、別に気は狂っちゃいないさ。」


&c=#00cc00&ゲーテ】「喜びには悩みが、悩みには喜びがなくてはならない。」


&c=#ff0000&シェークスピア&c=&&c=#ff0000&「お前の光は、今、何処にある。」&c=&


2人は思い思いに勝手なことを言った。


ただし、セリフの最後の行だけは

ちゃんと両方に命令を入れて下さい。


&c=#ff0000&シェークスピア】「お前の光は、今、何処にある。」&c=&


2人は思い思いに勝手なことを言った。


最後の行は命令を省くと、

こんな感じで行末にデフォルトに戻す命令を入れても

下のように次の文も同じ色になってしまいますので。


画面22 画面24