年末辺りに会話イベント関連の実装を行いました。 これは、NPCに話しかけた時に実行するイベントなのですが、今までは表示する文字列の中に特別なキーワードをいれ込み、 そのキーワードに応じて処理をさせるという方法を取っていました。
この方法は問題があって、文字列の中に埋め込む為に値の変更が難しかったのです。 たとえば、復帰地点を設定する会話だった場合、マップサイズが変更された時は変更された分ずらす必要がある。 そんな時、文字列を1つずつ調べてその値を変更して、また文字列に直して…
その他、どんなことが設定できるのか時間が経つにつれてわからなくなるという問題もありました。 そこで、今回は設定画面を用意し、グラフィカルな設定にてデータを管理できるようにしました。

キャラ情報の編集画面で、[会話データの編集]ボタンを押すと会話データの編集ダイアログが開きます。

イベントが特にない、文字を表示するだけの場合はここに直接文字列を入力します。 会話イベントを行う場合は「@」と1文字だけ設定します。 [会話イベントの設定]ボタンを押すと設定用のダイアログが開きます。

指定された内容を順番に実行していくのですが、条件による分岐の設定がイメージし難いので「ページ」という単位に切り分けることにしました。 例えば、「項目選択」の場合、

「話しかける」が選択された時はページ2へ。 「クエスト」が選択された時はページ3へ。 という感じです。 ページと言っても、表示されるページではなく、設定ページという感じですね。 昔あったゲームブックみたいな感じでしょうか。

項目選択だけでなく、条件に応じたページ切り替えもできるようになりました。 この場合、プヨンゼリーを持っている場合はページ4へ進むという意味になります。
ページ4でスキル追加のイベントを設定しておくことで、プヨンゼリーを持って話しかけるとスキルを取得できる。 という会話イベントの出来上がりです。
今回こういう基礎部分ができたので、後は店イベントやクエスト処理の実行、座標の変更、アイテムの追加などなど、必要に応じて種類を増やしていくことでゲーム性が高まっていくかと思います。 データをどう持たせるかということから始まり、基礎部分の動作が一通り流れるようになるまで2週間くらいかかってしまいましたが、何とか形になってよかったです。
他のネトゲがどういう設定方法をしているのかわからないのでこういう形になりましたが、 管理周りの情報って公開されないものですもんね… ということで、今後も想像しながら実装してみるというチャレンジが続きそうです。