美食と猫と自作ゲーム

今のところ、自作ゲーム記事ばっかり。

自作ゲーム56 ドラクエ式会話システム+アレンジ

エンディング作成も後少しであるが、まだ、BGMがない。また、エンディングは作中唯一、3音を使った演奏を考えているので、確実に容量をくう。ディスクの残り容量が少なく、不要なプログラムや設定を削りつつ、エンディングを作っている。

 

※最強のザコ敵ゴールドナイツは、主人公に近づくと剣を抜く設定だったが、容量削減の為、剣は常に出したままになった。しかし、正面の攻撃に対し、盾を構えた時と同じ防御力をもつ。側面からの攻撃も効きにくい。連続攻撃でシールドブレイクするか、うまく背後をとらないと大きなダメージを与えられない強敵。

※シールドブレイクの設定について

連続で攻撃を受けた場合に、盾の防御力から補正値が引かれていく。(補正値は連続攻撃から一回でも逃れるとリセットされる。)補正値の増加数は敵(または主人公)の攻撃力によって決まる。攻撃側の攻撃力が補正値を引いた盾の防御力を上回った時、盾の防御をつきやぶって攻撃をくらう。

 

 

今回は会話のシステムについて

基本はドラクエと同じ。会話が続くと矢印がでて、ボタンを押すまで表示をとめる。

 

オリジナル要素とよべるほどではないが、以下の工夫を加えている。

・句読点、スペースで少し時間をおき、実際の会話の間に近づけている。(早口だが)

・キャラクターごとに声のトーンが違う。

・可能なものは漢字表示(わざとひらがなにする時もあり)

 

会話のテキストは、そのまんまデータとして格納してある。容量はくうが、改良はしやすい。

最大3段分のデータがA$、B$、C$に格納されている。その他にN$があり、ここに、名前つきのキャラクターの名前が入る。

 

処理プログラム

最初にあるHFはカウント変数。1以上にするとカウントが始まり、一定数になると、メッセージ表示欄が空白になる。(会話を表示したまま、別マップに移動しても消さず、時間が経つと消える。)

LEN(?$)で文字列の長さを数え、文字列から一文字づつ抜いて、文字数分繰り返し表示する。それを最大3回繰り返す。文字列は、横27文字ぎりぎりまで入力する事もあるが、ぐきりのいい場所での改行したり、上下にある漢字表記が重なるのをなるべくさけて、読みやすくする事を優先している。また、190行の句読点や空白で音を消し、表示に少し時間をかける事による、「ため」を演出するのにも利用する。

※イメージ

「そ、それは、、、、」

そのままだと

  (音)ピピピピピピピピヒ(棒読み)

本作の会話システム

  (音)ピッ   ピピビ  (長めの消音)

 

多分今時のゲームはこういうのも当たり前なのだろうが、村の人の会話一つにも、読みやすさや自然さを考えて作っている。

 

なお、時に会話が面倒くさい場合もある。同じ村で同じ人が話す内容はせいぜい1~3種程度なので聞いた話をまた長々会話されるとわずらわしいが、190行で、会話中にスペースキーを押すと、表示時間をスキップし、会話が流れるように表示される。

 

会話する為の仕組みも単純で、人のいる方向にキーを押すと、一部の人を除いてこちらに振り向き、会話が始まるようにしている。

 

1290行が振り向き処理。

主人公の向き(変数F)は、上が1、右が3、下が5、左が7なので、相手の向き変数は主人公の向きに4を足し、合計が8以上の場合に8を引いてやると、ちょうど向かい合わせとなる。

 

疲れてきたので本日は以上。