
人と会話をして盛り上がってくると、今何を話していたのかを、忘れてしまうことがある、弓削田です。
会話してると、いろいろな事を考え始めて、実際に会話をしているのに、頭の中では全く別のことを思考しているような状況を
何度か経験したことがあります。
そして、いざ口を開くと、「あれ?今、何話してたっけ???」っていう風になってしまって、
そこで盛り上がっていた会話が終了してしまいます。
なんか、心理的に問題がありそうですね・・・
ランダム会話について
ゲームに置いて、ランダム要素は重要ですが、会話において、毎回同じ話をする、RPGキャラクターに、
少しうんざりする事もあります。
そんな時に、事前に用意しておいたいくつかの会話パターンをランダムで呼び出してくれる機能があれば、
対応は一定なので、ロボットっぽい感じは拭えませんが、同じことばかりを言っていて、
二度と話されなくなるという事は無くなるのではないでしょうか?
そんな事を考えて、会話のパターン化と、ランダムで取得できるように、仕組みを考えてみました。
技術的な話
実際に、今現在の会話システムは、ゲーム中の、登場する他のキャラクターとの会話以外でも、
システムメッセージや、戦闘モードの時の表示から、コマンド選択するウィンドウも兼ねているため、
実は非常に複雑な構造になってしまっています。
ただ、比較的個人的には整理されていて、使える状態にはなっているので、
この構造をそのまま使いつつ、ランダムシステムを導入してみたいと思います。
自裁のプログラムソースは、開示できないんですが、javascriptでは、サーバーに対して、どのキャラクターのどういう状況の時の
会話パターンを要求して、サーバー側のCGIで、それをデータベースから選択してきて、jsonで返すという構造にしています。
この、CGIで取得する処理のところで、データベースで複数のパターンの中からランダムでピックアップするだけでいいかと、最初は簡易に思っていたんですが、
実は会話って、その後続いていく要素もあり、会話パターンが、連続するようなトークの場合になると、破綻してしまう可能性があります。
もちろん、ランダム要素は、話しかけるタイミングで、どの会話パターンを使うかという会話IDを初回に返して、その会話が繰り返される間は、
ずっとその値をjavascript側でキープしておくという処理も必要という事に気が付き、
まあまあ、全体的な修正が入るという事を認識しました。
この機能のメリット
もちろん、ランダム以外に、ストーリーを順番に語ってくれるような会話もあれば、選択肢によって、会話の方向性がかわるような場合もあるでしょう。
それ以前に、このランダム会話システムのメリットは、戦闘中のクイズや選択問題をする場合に、たくさん用意した問題集から
ランダムで出題がされるという、かなりゲームチックな仕様に適用させることができるので、
問題難易度に分類された、問題集からランダムにピックアップされた問題を出題するという、
学習ゲームにふさわしい戦闘仕様が作れることになります。
要するに、この仕様は、このゲームには必要不可欠という事なんですね。
そんな感じで、また一歩、ゴールに近づいた進捗でした。
さて、パターンをたくさん作るためのデータ構築でもするか・・・
0 件のコメント:
コメントを投稿