v3用のINDEXです。
 現在亀の歩みですが、整理しながらv2用に書いたものをv3用に書き直していっています。
整理の都合上、UPした日にち順になってないことがあります。
圧縮フォルダつきのものは、遊戯の月 でサンプルがダウンロードできるようになっているものです。
v3用の記事を雑談抜きでまとめて読みたい場合は、『Famous Writer~超初心者講座~ 』をどうぞ。
 導入

 文字表示・画像表示・サウンド・選択肢の基本
 メッセージレイヤー

 番外

 お茶の時間

整理の都合上、UPした日にち順になってないことがあります。

“サンプルデータあり”となっているものは、

 遊戯の月 でサンプルがダウンロードできるようになっているものです。

 導入


 文字表示の基本


 setting.txtの初期設定


 setting.txtで設定を追加する


 選択肢、サウンド、画像表示の基本


 文字表示の基本ぷらす


 画像表示の基本ぷらす


 選択肢の詳細


 タイトル画面


 名前を変える(文字変数)


 演出


 バージョンの違い


 番外編


 お茶の時間

どうも&jmp命令を使うと、それ以前のバックログが初期化されてしまうような。
今回はカーソルの変え方です。
これは、v2用のときのものがそのまま使えそうなので、
コピペで。

FWはクリック待ちとか改頁待ちのときには
デフォルトでは文章の終わりに白い▽が点滅します。

このカーソルを、自分のオリジナルのものに変えたり、
横書きでは右下固定、縦書きでは左下固定にすることができます。

カーソル カーソル02 カーソル03

手元にあったカーソルの画像を並べてみました。

左端のは、ATrialProduct's素材置き場 さんから
真ん中のは、First Seed Material さんからそれぞれお借りして加工したものです。

右端は、Famous Writerホームページライブラリ に置いてあるカーソルの
色を変えただけです。

こんな感じで縦に並べて、立ち絵等と同じくマスク画像をつけます。

*Cursor.Loop = コマ数;

*Cursor =画像ファイル名;

*Cursor.Frame = コマとコマのウエイト時間(単位は約1/100秒);

カーソルは↑の3つがセットです。

*Cursor.Loop”は必ず画像を読む前に指定してください。

これをsetting.txtに書き入れます。

シーンによってカーソルを変えたい場合、
上の3つは本文中にも使用可能なので、
変えたいシーンの前にこの命令を入れてください。
ただし、setting.txt以外に書き込む場合は、最後に

*Cursor.New;

という命令を入れなければ、設定が反映されません。
(実はv3からはいらなくなったのかと思い込んでいたら、
ちゃんとv3用のマニュアルにも書いてありました汗


後、カーソルの位置を変えたい場合は、

 *Cursor.Place = 0か1(0はテキストの後、1は固定);

の命令を書き加えてください。(これも本文中に使うことが可能です)

では、実際にやってみます。
例では分かりやすくするために、setting.txtのほうではなく
本編のテキストのほうに設定を入れています。

#コマ数(必ず画像を読む前に指定)
*Cursor.Loop = 2;
#フレーム時間(単位は約1/100秒)
*Cursor.Frame = 40;
#画像ファイル
*Cursor = /cursor3;
# カーソル生成
*Cursor.New;

#カーソルの場所(0ならテキストの後、1なら左下固定)
*Cursor.Place = 1;


カーソルを変えてみました。羊が跳ねてます。

*Cursor.Loop = 4;
*Cursor.Frame = 40;
*Cursor = /cursor4;
*Cursor.New;

次は、スリープをかけられたみたいなカーソル。コマ数は4コマです。

*Cursor.Loop = 6;
*Cursor.Frame = 40;
*Cursor = /cursor2;
*Cursor.New;

これは実は6コマです。静止画では分かりにくいので、ぜひ実際に試してみてください。


画面62                       
画面63
                        

画面64

今回は、今さらな気もしないではない文字表示の設定です。

メッセージウインドウに画像を使ったり顔グラを使ったりしていると、
さすがにデフォルトのままでは無理だと痛感したので。

まあ、マニュアルのメッセージレイヤーのところを見てください。
で終わって問題なさそうなんですが、
せっかくなので無駄にずらずらと並べていきます。

・表示させる文字のサイズです。
*MesBody.Font-Size = 文字の大きさ

文字のスタイルです。
normal(そのまま描画、0でも可)、shadow(影文字、1でも可)、
outline(袋文字、2でも可)と3種類あります。
*MesBody.Font-Style = 文字のスタイル

文字の色です。
インライン命令の右辺を略した書き方(&c&)の時には、ここで設定した色が使われます。
*MesBody.Color = 文字の色

文字の影外側の色
font-styleがshadowの時は影の色、outlineの時は外側の色になります。
*MesBody.Shadow =

文字の進行方向
横書きは、縦書きは
*MesBody.Direction = 文字の進行方向

行間です。
pxで指定してください。
*MesBody.Line-Height = 行間の値

字間です。
これもpxで指定してください。
*MesBody.Letter-Spacing = 字間の値

進行方向の位置揃えです。
left, center, rightで指定します。
*MesBody.Text-Align = 進行方向の位置

行方向の位置揃えです。
top, center, bottomで指定します。
*MesBody.Vertical-Align = 行方向の位置

行末の禁則処理の設定
normalで禁則有り、strictで禁則なしです。
*MesBody.Line-Break = 禁則処理

文字のまわりの余白
1つなら上下左右全部、2つなら上下,左右の順、
3つなら上,左右,下の順、4つなら上,右,下,左の順になります。
*MesBody.Padding = 文字まわりの余白

メッセージレイヤーに表示する文字の設定はこんな感じです。
ちなみに名前表示欄の文字の設定は、
MesBodyMesHeadに替えたものになります

ボタンの上やメッセージレイヤー以外のレイヤーに描く文字の基本設定は
また別でMesBodyの部分をTextに替えたもので設定します。


『WIN/MAC両対応ゲーム制作』初心者への道

↑のテキストウインドウ部分は、↓のように設定しました。
(テキストウインドウは『キタユメ。 』さん、立ち絵は『いずみ亭 』さん、
背景写真は『EnsiLumi 』さんにそれぞれ素材をお借りしました)

# 左上の座標
*MesBody.Pos = 0,300;
# 画像ファイル
*MesBody.Load = 1.bmp;

# フォントの大きさ
*MesBody.Font-Size = 20;
#文字のスタイル
*MesBody.Font-Style = 0;

# 行間
*MesBody.Line-Height = 32;
# 内側の余白をまとめて設定(上下,左右)
*MesBody.Padding = 35,80;

後はだいたいデフォルトのままです。
このところずっとv2用に書いたものの加筆訂正ばかりしていたので、
たまには新しいものを。

というわけで、今回は“顔グラ”です。

マニュアルには、
グラフィック命令→メッセージレイヤー→アイコン
インライン命令→インライン実行命令
あたりにあります。


まず顔グラ(アイコン)の表示位置を指定します。

*MesBody.Icon.Pos = 右からの位置x,上からの位置y;

位置の指定は画面上の座標ではなく、
*MesBody.Pos(『テキストウインドウに画像を使う 』あたりを参照)
で指定した位置が原点になります。

なので、↓のように顔グラをテキストウインドウからはみ出させたい場合は、

『WIN/MAC両対応ゲーム制作』初心者への道
 

 # 画像の左上の座標
*MesBody.Icon.Pos = -40,-40;


↑の例のように“”をつけます。

今回もテキストウインドウは『キタユメ。 』さん
立ち絵は『[y]da's room 』のY田さんにお借りしています。


位置を指定したら、今度は顔グラを透過させるかどうかを設定します。
↑の例では透過させているので、

*MesBody.Icon.Transparent = True;

と書きます。

四角い枠で囲んであったりする顔グラで透過させる必要がない場合は

*MesBody.Icon.Transparent = False;

としてください。

次はいよいよ顔グラを表示と行きたいところですが、
文字を表示する位置がデフォルトのままだと

『WIN/MAC両対応ゲーム制作』初心者への道

↑こんなことになってしまうので、文字の表示位置を設定します。

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

そして、インライン命令の

&i=画像ファイル名&

を使って顔グラを表示させます。

 # 文字の回りの余白
*MesBody.Padding=12,36,30,170;

_&i=face02.jpg&【???】/「背景画像がないのは、ファンタジー風の画像が手元にないためらしいです」


顔グラの場合、どうしても行頭に“&”がきてしまうので、
_”を頭につけるのを忘れないでくださいね。
“あんだーばー”ちゃん大活躍 参照)

『WIN/MAC両対応ゲーム制作』初心者への道

顔グラを消したいときは、

*MesBody.Icon.Nil;

とするか

インライン命令で&i&を入れてください。


ちなみに位置の情報も一緒にクリアにしたい時は、

*MesBody.Icon.Clear;

という命令もあります。
FWは、デフォルトで名前表示欄を設定することができます。

デフォルトといってもむろん、新たに命令を書き加えなければなりませんが、
難しいことは考えなくても、名前表示に使う画像とその表示位置を設定しさえすれば、

名前】「セリフ


この形式で書くことによって、名前を名前表示欄に入れてくれます。

では、実際にやってみましょう。


まず、名前表示欄の画像とそれに合うようなメッセージウインドウの画像を用意します。


今回も『キタユメ。 』さんに昔お借りした素材を使っております。

なお、名前表示欄の画像は、お借りした素材を加工して作りました。


次に名前表示欄を表示させる前に


# 名前表示欄の左上の座標
*MesHead.Pos = 左からの位置,上からの位置;

# 名前表示欄の画像ファイル
*MesHead.Img = 画像ファイル名;

↑の二つの命令をセットで入れてください。


用意した画像ファイルの大きさ等によって

文字がきちんと入らない場合がありますので、

# 名前表示欄のテキストのフォントの大きさ。省略すると24pt。
*MesHead.Font-Size = 文字の大きさ;


# 名前表示欄の内側の余白をまとめて設定(上下,左右)
*MesHead.Padding = 上下の余白,左右の余白;



このあたりの命令で調節してください。
(v2ではsetting.txtに書くようになっていましたが、
v3では本編のテキストに普通に書いても大丈夫です)


後は、普通に下のように書けば、


くお】「こんな感じで表示されます。背景画像もつけたかったんですが、このテキストウインドウに合う背景が手元になくて。仕方ないのでバックは黒のままです


画面52


名前表示枠を表示してくれます。

【】と「」をなしで書いた場合、

画面53


地の部分になると、こんなふうに名前表示欄は自動的に消えてくれます。/とっても便利です。


上記のようになります。

このあたりは、遊戯の月でサンプルデータを配布してますので、
興味のある方はダウンロードしてみてください。 

今回はセリフ表示です。

FWは、【】「」もインライン命令の一つになっています。

下のように【】の中に名前を入れ、「」にセリフを入れると、


【アインシュタイン】「知性を神にしてはいけない。神は強い筋肉を持っているが、人格は持たない。」


画面12


デフォルトではこんなふうに表示されます。


つまり、【】は表示されず、「」の中の文字はインデントされるわけですね。

むろん、↓のような命令を事前に書き加えれば、インデントさせないことも可能です。


*Mes.AutoIndent = False;

インデントする設定に戻したいときはFalseTrueにすればOK。


後、【】が行頭ではなく、文章の中にある場合や、

「」【】の次に書かれていない場合は


「知性を神にしてはいけない。神は強い筋肉を持っているが、人格は持たない。」これは【アインシュタイン】の言葉である。


画面13


このようにちゃんと【】も表示されますし、

「」もインデントはされません。

かーなーり前に予告していた『画像表示サンプルデータその1』を
v3用に直したものを遊戯の月 にアップしました。

追加したものは、基本中の基本のとこだけ。

音関係やら選択肢関係やらのサンプルは
また別口でやれたらいいなと思っています。

セーブ・ロード画面のサンプルも予告通り↓です。



上書き確認も↓のように質問とはい、いいえが同時に表示できるようになりました。



相変わらずのセンスのなさなので、
使ってやろうという方は適当にカスタマイズしてやってください。

前回の続き。

アンカーポイントと基本の選択肢 』で質問をいただいたとおり、

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

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

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

@hidari

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

上記のままでは、右を選んだ場合、
右の分岐先が表示された後、
↓のように左の分岐先の文章も続けて表示されてしまいます。

画面17 矢印01 画面18

これを避けるためには、さらなるジャンプ先を
指定しなければいけません。

上の例では、分岐した先がまったく違う展開になって大変なので
新たな例を作ってみました。

あなたは犬と猫どちらが好きですか?

&select=犬:&Jmp=@dog,猫:
&Jmp=@cat,どちらも好き:&jmp=@ryouhou;

@dog

犬ですか。私も犬は好きですよ。特に大きな犬。あのわふわふした感じが大きな足がたまりません。

ああっ、あの足に踏まれたい。

&Jmp = @tokorode;

@cat

猫ですか。私も猫は好きですよ。あの自分の都合のいいときにしか甘えてこないそっけなさがたまりません。
さっきまで擦り寄ってきていたのに、自分の欲求が満たされた途端、知らんぷりですからね。

&Jmp =
@tokorode;

@ryouhou

心の友よッ! やはりどちらかを選ぶなんてできませんよね!
四足ばんざーい。

&Jmp =
@tokorode;


@tokorode

ところで今度の週末何か予定がありますか?_
/よければ一緒にわんにゃんランドに行きません?

# ↓これは終了命令です。
&End;

おばか丸出しのひどすぎる例ですが、こんなふうにそれぞれジャンプ先を指定してやれば
次の行にいくこともなく、ちゃんと飛んでくれるようになります。

違うファイルを指定したいときは、

&Jmp =
ファイル名;

違うファイルの特定のアンカーポイントに飛びたいときは

&Jmp =
ファイル名@アンカーポイント名;

と記述します。

最後の“&End;”は、『テキストの終端に達しました』という
エラーメッセージをださないための終了命令です。
この命令を入れると、そのままウインドウを閉じてくれます。


ちなみに最初の例のように選択肢を選んだ後分岐して
違うルートに入るのを完全分岐、
2番目の例のようにどれを選んでも一見何もおこらないように見えるのが
遅延分岐というそうです。(ある本に書いてありました)

二番目の例は一見どころか
このままでは本当に何のための選択肢か解かりませんが、
だいたいは、これに好感度をいれるか、
どちらを選んだかによって後ででてくる動物が変化する
などというようなときに使います。