(57)【特許請求の範囲】
【請求項１】
コンピュータを、
仮想のゲーム空間を生成するゲーム空間生成手段、
前記ゲーム空間内を行動するノンプレイヤキャラクタ（以下、ＮＰＣ）を生成し、ゲーム状況に応じて該ＮＰＣの行動を制御するＮＰＣ制御手段、
前記ＮＰＣがゲーム進行に応じて経験的に得た知識を記憶部に記憶させるＮＰＣ取得知識記憶手段、及び、
他のコンピュータとの間で互いにデータを送受信する通信手段、
として機能させ、
前記ＮＰＣ制御手段は、前記ＮＰＣの行動内容と発言するメッセージとが関連付けられて予め記憶部に記憶された複数の行動候補情報の中から、前記ＮＰＣの行動を、ゲーム状況に応じて選択すると共に、選択した行動に関連付けられたメッセージを出力部に出力し、かつ、前記行動候補情報の少なくとも一部について、前記ＮＰＣ取得知識記憶手段により記憶された情報に基づき、前記ＮＰＣの行動として選択可能か否かを判断し、
前記通信手段が、他のコンピュータから当該他のコンピュータが生成したノンプレイヤキャラクタ（以下、他のＮＰＣ）をロードした場合、前記ＮＰＣ制御手段は、前記他のＮＰＣが前記他のコンピュータでのゲーム進行に応じて経験的に得た知識に基づき、前記他のＮＰＣの行動を選択すると共に、選択した行動に関連付けられたメッセージを前記出力部に出力することを特徴とする、コンピュータプログラム。
【請求項２】
請求項１に記載のコンピュータプログラムを記憶したプログラム記憶部と、該プログラム記憶部に記憶されたプログラムを実行するコンピュータと、を備えた、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想のゲーム空間でのノンプレイヤキャラクタの動作を制御するコンピュータプログラム及びゲーム装置に関する。
【背景技術】
【０００２】
従来、アクションゲームやロールプレイングゲームなど、プレイヤの操作に応じてプレイヤキャラクタ（ＰＣ）を仮想のゲーム空間内で動作させるゲームがある。また、この種のゲームでは、ＰＣと共にゲーム空間内を行動し、敵キャラクタとの戦闘においてもＰＣと協力して戦うノンプレイヤキャラクタ（ＮＰＣ）が登場するものもある。このＮＰＣはプレイヤキャラクタが直接的にその動作を操作することのできないキャラクタであり、所定のルールに従ってゲーム空間内を行動するように設定されている。
【０００３】
また、ＮＰＣの中には、ゲームの状況に応じてＰＣと会話するものもある。このように、ゲーム中に登場するキャラクタ同士が会話する技術を開示するものとして、例えば特許文献１〜５がある。このうち特許文献１には、会話時のＮＰＣの感情表現を、会話内容に加えてＮＰＣの表示枠の形状を変化させるなどして多様化しようとする技術が開示されている。特許文献２には、複数のユーザが操作する複数のＰＣが同一のゲーム空間に登場するオンラインゲームにおいて、一部ユーザによる発言の連発により、ゲームの円滑な進行が損なわれるのを防止しようとする技術が開示されている。
【０００４】
また、特許文献３には、ＰＣとＮＰＣとの距離に応じて会話時の音質を変えることにより、会話をリアルに表現しようとする技術が開示されている。特許文献４には、ユーザが同一文字列を読み慣れるに従って読むのが速くなることを考慮し、特定文字列の過去の表示回数に応じてその表示時間を決定しようとする技術が開示されている。特許文献５には、ＮＰＣとの会話中においてもＰＣの行動をユーザが指定でき、その行動に応じてＮＰＣの会話内容を変化させることにより、キャラクタ間のより自然な会話を実現しようとする技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１０７４５７号公報
【特許文献２】特開２０１０−０５７８９０号公報
【特許文献３】特開２０１０−１１０６２２号公報
【特許文献４】特許第３６８６９２７号公報
【特許文献５】特許第３９６５１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、例えばＰＣと行動を共にするＮＰＣは、ゲームの進行中に一時的に登場する他のキャラクタとは異なり、長時間にわたってＰＣと協力してゲームを進めるパートナーである。従って、このようなＮＰＣが自分の意思及び個性の希薄なキャラクタであれば、ユーザとの信頼関係は構築されず、愛着も湧かないため、真に協力し合えるパートナーとはなり得ない。一方、ＮＰＣに自己表現させるために、上記特許文献１〜５の例のように、ＮＰＣとＰＣとで会話させる手段は有効である。しかしながら、単に会話するだけや、その他の手段（例えば、特許文献１に示された手段）で感情表現を加える程度では、ＮＰＣに対する機械的な印象は完全には拭えず、真に自分の意思及び個性をもつような印象をユーザに抱かせるＮＰＣは実現できない。
【０００７】
そこで本発明は、真に自分の意思及び個性をもつような印象を、ユーザに抱かせ得るＮＰＣを実現することのできるコンピュータプログラム及びゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るコンピュータプログラムは、コンピュータを、仮想のゲーム空間を生成するゲーム空間生成手段、及び、前記ゲーム空間内を行動するノンプレイヤキャラクタ（以下、ＮＰＣ）を生成し、ゲーム状況に応じて該ＮＰＣの行動を制御するＮＰＣ制御手段、として機能させ、前記ＮＰＣ制御手段は、前記ＮＰＣの行動内容と発言するメッセージとが関連付けられて予め記憶部に記憶された複数の行動候補情報の中から、前記ＮＰＣの行動を選択すると共に、選択した行動に関連付けられたメッセージを出力部に出力する。
【０００９】
このような構成により、ユーザが直接操作できないＮＰＣについて、該ＮＰＣが選択した行動に関連するメッセージをディスプレイに表示出力し（又は、スピーカから音声出力し）、ユーザに把握させることができる。例えば、ＮＰＣはゲーム状況（ゲームの進行状況や、当該ＮＰＣの属性などの設定内容など）に応じて様々の行動をとり得るが、ある行動をとったときに、その行動目的を発言させることができる。これにより、ユーザはＮＰＣが選択した行動の意図を知ることができるため、ＮＰＣの意思や個性を感じ取ることができる。また、このようにＮＰＣは、具体的な行動と発言とを組み合わせて自己表現するが、その表現方法は、現実の人間が行うのと同じである。従って、ＮＰＣは自分の意思や個性をより細やかに表現することができ、ユーザとの信頼関係を築く一助となる。
【００１０】
また、前記ＮＰＣ制御手段は、複数の前記行動候補情報の中から前記ＮＰＣの行動を、ゲーム状況に応じて選択することとしてもよい。このような構成により、ゲーム進行により逐次変化するゲーム状況に応じて、ＮＰＣは適切な行動をとることができ、その場に合ったメッセージを出力（表示出力又は音声出力）することができる。
【００１１】
また、前記コンピュータを、前記ＮＰＣがゲーム進行に応じて経験的に得た知識を記憶部に記憶させるＮＰＣ取得知識記憶手段、として機能させ、前記ＮＰＣ制御手段は、前記行動候補情報の少なくとも一部について、前記ＮＰＣ取得知識記憶手段により記憶された情報に基づき、前記ＮＰＣの行動として選択可能か否かを判断することとしてもよい。このような構成により、ＮＰＣは、例えば過去の経験を生かした行動をとることができ、その行動の際、経験に基づく適切な発言をすることができるようになる。これにより、ユーザはＮＰＣが経験により成長していることを実感でき、信頼関係を築きやすくなる。
【００１２】
また、前記メッセージの夫々には、間引きの可否及び優先度が設定されており、前記ＮＰＣ制御手段は、同一ＮＰＣに対して同時に複数のメッセージの出力依頼が生じた場合であって、間引き不可のメッセージが含まれる場合には、該メッセージのみを出力し、間引き可能のメッセージのみが含まれる場合には、その中で優先度が高いものを優先的に出力することとしてもよい。このような構成により、相対的に重要度の低い（間引き可能の）発言メッセージは適度に間引くことで、同一ＮＰＣからの発言メッセージが同時に出力される数を制限しつつも、重要度の高い（間引き不可の）発言メッセージは確実に表現することができる。
【００１３】
また、前記ＮＰＣには、メッセージの出力タイミングに関する待機時間が設定されており、前記ＮＰＣ制御手段は、前記間引き不可のメッセージについては、前回のメッセージを出力した時点から前記待機時間を経過したか否かにかかわらず、生じた依頼に応じてこれを出力し、前記間引き可能のメッセージについては、前回のメッセージを出力した時点から前記待機時間を経過するまでに依頼が生じたものは出力せず、前記待機時間を経過した後に依頼が生じたものを出力することとしてもよい。このような構成により、ＮＰＣに対して「口数」という個性を付与することができ、これと併せて、ＮＰＣ制御手段によるメッセージ数の抑制を、ユーザに不自然さを感じさせずに行うことができる。
【００１４】
本発明に係るゲーム装置は、上述した何れかに記載のコンピュータプログラムを記憶したプログラム記憶部と、該プログラム記憶部に記憶されたプログラムを実行するコンピュータと、を備える。
【発明の効果】
【００１５】
本発明によれば、真に自分の意思及び個性をもつような印象を、ユーザに抱かせ得るＮＰＣを実現することのできるコンピュータプログラム及びゲーム装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るゲームシステムの概要を説明する模式図である。
【図２】ゲーム装置のハードウェア構成を示すブロック図である。
【図３】ゲーム装置の機能的な構成を示すブロック図である。
【図４】ＮＰＣ行動候補記憶部が備えるデータベースを示す模式図である。
【図５】メッセージ発注処理の概要を示す模式図である。
【図６】メッセージ発注処理の流れを示すフローチャートである。
【図７】メッセージ表示処理の概要を示す模式図である。
【図８】メッセージ表示処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態に係るコンピュータプログラム、及びゲーム装置について、図面を参照しつつ説明する。本実施の形態では、仮想のゲーム空間内を、ユーザが操作するプレイヤキャラクタ（ＰＣ）を行動させ、ゲーム空間中に適宜配置された敵キャラクタと対戦しつつゲームを進行させるアクションゲームを例にして説明する。また、本ゲームでは、プレイヤキャラクタに同伴して協力するノンプレイヤキャラクタである味方キャラクタ（ＮＰＣ）が登場する。
【００１８】
［ゲーム概要］
図１は、本発明の実施の形態に係るゲームシステムの概要を説明するための模式図である。本ゲームのゲーム空間はオープンワールドに設計されており、プレイヤが操作するプレイヤキャラクタの移動に伴って変化するゲーム空間が、ゲーム装置の画面にシームレスに表示される。そして、図１のゲーム空間は、このオープンワールドなゲーム空間の一部を示している。但し、本発明の適用対象はオープンワールドのゲームに限定されるわけではない。例えば、ゲーム空間が複数のフィールドに分割されたゲームであって、フィールド間を移動する際に、移動先のフィールドのデータをロードし、移動前後のフィールドを切り換えて表示するようなゲームにも適用することができる。
【００１９】
図１に示すゲーム空間100では、街101と森102とが例示されている。この他にも丘陵地、砂漠、洞窟、海中など、様々の地形をゲーム空間100に含めることができる。そしてプレイヤキャラクタPCは、これらの地形に応じてゲーム空間100内を移動可能になっている。また、プレイヤキャラクタPCには、一又は複数体の味方キャラクタNPC（本実施の形態では最大３体の味方キャラクタNPC1〜NPC3）が同伴し、１つのパーティを形成する。パーティを形成する各味方キャラクタNPCは、プレイヤキャラクタPCと共にゲーム空間100を移動し、適宜出現する敵キャラクタと遭遇した場合には、互いに協力し合って戦闘を行う。
【００２０】
また、各味方キャラクタNPCは、様々の場面で状況に応じた行動を実行すると共に、その行動に応じた発言をする。これにより、プレイヤキャラクタPCに対して自身の意思、即ち、なぜ自身（NPC）がそのような行動をしたのかという意思を表現する。例えば、図１に示すように、プレイヤキャラクタPCらのパーティが、ある街101に入ると、何れかの味方キャラクタNPCが「賑やかでいい街ですね」と発言しつつ周囲を見渡す動作をする。また、街101のある住人と会話することで所定のクエストが発生すると、そのクエスト内容に応じて味方キャラクタNPCは、例えば森102へ向かいつつ「森へ行って探してみましょう！」などと発言し、街101から出ることを促す。また、森102へ出たパーティが、片足に怪我を負った敵キャラクタに遭遇すると、これと対戦する際に味方キャラクタNPCは「もう片方の足を攻撃します！」と発言し、戦闘の準備態勢をとる。更に、敵キャラクタとの戦闘により味方キャラクタNPCがダメージを受けると、その味方キャラクタNPCは、攻撃を受けたリアクションをしつつ「ウワッ！」と発言する。
【００２１】
本実施の形態に係るゲームでは、このように味方キャラクタNPCが、ゲーム状況に応じた行動及び発言により、積極的にプレイヤキャラクタPC（又はユーザ）に対して意思の疎通を図る。また、後に詳述するように、その行動及び発言内容は、経験から得た知識や、敵及び自分（味方キャラクタ）の状態など、ゲームの進行状況に応じて変化するようになっている。更に、味方キャラクタNPCの発言はディスプレイに文字列で表示され、対応する音声も出力されるが、その際、ユーザに違和感を生じさせることなく、且つ、発言内容を把握しやすいように出力されるようになっている。
【００２２】
［ハードウェア構成］
上述したゲームを実現するゲーム装置の構成について説明する。図２は、ゲーム装置2のハードウェア構成を示すブロック図である。図２に示すように、ゲーム装置2は、他のゲーム装置2及びサーバ装置3との間で、インターネット又はＬＡＮなどの通信ネットワークNWを介して互いに通信可能である。このゲーム装置2は、その動作を制御するコンピュータであるＣＰＵ10を備え、このＣＰＵ10にはバス11を介して、ディスクドライブ12、メモリカードスロット13、プログラム記憶手段を成すＨＤＤ14及びＲＯＭ15、並びにＲＡＭ16が接続されている。
【００２３】
ディスクドライブ12には、ＤＶＤ−ＲＯＭ等のディスク型記録媒体30が装填可能であり、該ディスク型記録媒体30には、本発明の実施の形態に係るゲームプログラム30a、及び本実施の形態で説明するゲームに登場するキャラクタPC，NPC1〜NPC3、敵キャラクタや、ゲーム空間100を形成するのに必要なオブジェクト及びテクスチャ等のゲームデータ30bも記録されている。また、メモリカードスロット13にはカード型記録媒体31が装填でき、ゲームの途中経過等のプレイ状況を示すセーブデータを、ＣＰＵ10からの指示に応じて記録可能である。
【００２４】
ＨＤＤ14はゲーム装置2が内蔵する大容量記録媒体であって、ディスク型記録媒体30から読み込んだゲームプログラム30a及びゲームデータ30b、更にはセーブデータ等を記録する。ＲＯＭ15は、マスクＲＯＭ又はＰＲＯＭなどの半導体メモリであり、ゲーム装置2を起動する起動プログラムや、ディスク型記録媒体30が装填されたときの動作を制御するプログラムなどを記録している。ＲＡＭ16は、ＤＲＡＭ又はＳＲＡＭなどから成り、ＣＰＵ10が実行すべきゲームプログラム30aや、その実行の際に必要になるゲームデータ30bなどを、ゲームのプレイ状況に応じてディスク型記録媒体30又はＨＤＤ14から読み込んで一時的に記録する。
【００２５】
また、ＣＰＵ10には更に、バス11を介してグラフィック処理部17、オーディオ合成部20、無線通信制御部23、及びネットワークインタフェース25が接続されている。
【００２６】
このうちグラフィック処理部17は、ＣＰＵ10の指示に従ってゲーム空間100や各キャラクタ等を含むゲーム画像を描画し、更に、このゲーム画像に重ねて味方キャラクタNPCが発言したメッセージを描画する。また、グラフィック処理部17にはビデオ変換部18を介して外部のモニタ（出力部）19が接続されており、グラフィック処理部17にて描画されたゲーム画像はビデオ変換部18において動画形式に変換され、更にディスプレイ19にて表示されるようになっている。
【００２７】
オーディオ合成部20は、ＣＰＵ10の指示に従ってデジタルのゲーム音声を再生及び合成する。また、オーディオ合成部20にはオーディオ変換部21を介して外部のスピーカ22が接続されている。従って、オーディオ合成部20にて再生及び合成されたゲーム音声は、オーディオ変換部21にてアナログ形式にデコードされ、更にスピーカ22から外部へ出力されるようになっている。
【００２８】
無線通信制御部23は、2.4GHz帯の無線通信モジュールを有し、ゲーム装置2に付属するコントローラ24との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ24に設けられたボタン等の操作子（図示せず）を操作することにより、ゲーム装置2へ信号を入力することができ、ディスプレイ19に表示されるプレイヤキャラクタPCの動作を制御可能になっている。また、ネットワークインタフェース25は、インターネット又はＬＡＮなどの通信ネットワークNWに対してゲーム装置2を接続するものであり、他のゲーム装置2又はサーバ装置3との間で通信可能である。そして、ゲーム装置2を、通信ネットワークNWを介して他のゲーム装置2と接続し、互いにデータを送受信することにより、同一のゲーム空間内で同期して複数のプレイヤキャラクタPCを表示させることができる。従って、複数人が共同してゲームを進行させるマルチプレイが可能になっている。
【００２９】
［ゲーム装置の機能的構成］
図３は、上述したゲーム装置2の機能的な構成を示すブロック図である。図３に示すようにゲーム装置2は、本発明のゲームプログラムを実行することで、下記の各部40〜43、50〜55、60〜61の各機能を備える。そして、これらのゲーム空間生成部40、ＰＣ制御部41、ＮＰＣ制御部42、ゲーム進行制御部43、ＮＰＣ行動候補記憶部50、ＮＰＣ取得知識記憶部55、メッセージ貯留部60、メッセージ表示部61は、具体的には下記のような機能を実現できる。なお、このような各機能は、ハード的には図２に示すＣＰＵ10，ＨＤＤ14，ＲＯＭ15，ＲＡＭ16，グラフィック処理部17，ビデオ変換部18，オーディオ合成部20，オーディオ変換部21，ネットワークインタフェース25等から構成されている。
【００３０】
ゲーム空間生成部40は、上述したようなゲーム空間100を生成し、ディスプレイ19に表示する。例えば、プレイヤキャラクタPCの移動に伴って、ゲームデータ30bに含まれるオブジェクト及びテクスチャ等のデータに基づき、三次元の仮想ゲーム空間100を生成する。また、ゲーム装置2のモニタ19にゲーム空間100を表示するために、生成したゲーム空間100を所定の仮想カメラで撮影したときの二次元画像を生成する。なお、本実施の形態に係るゲーム装置2は、この二次元画像を１秒間に３０フレーム生成し、順次ディスプレイ19に表示する。
【００３１】
ＰＣ制御部41は、プレイヤキャラクタPCを生成すると共に、ユーザによるコントローラ24の操作に応じて、又は、ゲームの状況に応じて、ゲーム空間100でのプレイヤキャラクタPCの動作を制御する。例えば、ユーザはコントローラ24を操作することにより、プレイヤキャラクタPCをゲーム空間100内で移動させたり、味方キャラクタNPCに対して指示を出したり、敵キャラクタに対して攻撃行動をさせたりすることができる。
【００３２】
ＮＰＣ制御部42は、味方キャラクタNPCを生成すると共に、ゲームの状況に応じて、ゲーム空間100での味方キャラクタNPCの動作を制御する。例えば、ユーザの操作によるプレイヤキャラクタPCの行動に伴い、味方キャラクタNPCに所定の行動を実行させたり、所定のエリアへの進入、クエストの発生、敵キャラクタとの遭遇、ダメージを受けるなど、様々のゲーム状況に応じた行動と、その行動に応じた発言を、味方キャラクタNPCに行わせる。
【００３３】
ゲーム進行制御部43は、ユーザの操作及びゲーム内時間の経過等に応じて、ゲームの進行を制御する。例えば、ユーザの操作によりプレイヤキャラクタPCが所定の動作を行なった場合に、所定のイベントを発生させて一定期間だけ所定の動画を再生する。また、ゲーム内時間の経過に伴って、ゲーム空間100内の環境を変化させる。更に、プレイヤキャラクタPCの所在等に応じて、ゲーム空間100の各所に敵キャラクタを出現させたり、プレイヤキャラクタPCが敵キャラクタに対して所定距離以内に接近すると、該敵キャラクタにプレイヤキャラクタPCを攻撃させたりする。
【００３４】
ＮＰＣ行動候補記憶部50は、味方キャラクタNPCがゲーム状況に応じて実行する行動及び該行動に対応する発言に関する情報を記憶する。ここには、詳細メッセージ・データベース（以下、データベースは「ＤＢ」と記載）51、アクションＤＢ52、敵対思考ＤＢ53、及びエリア・クエスト反応ＤＢ54が含まれている。これらの各データベースの詳細については後述する。
【００３５】
ＮＰＣ取得知識記憶部55は、味方キャラクタNPCが経験により取得した知識を記憶する。例えば、街101で他のノンプレイヤキャラクタと会話して得た知識、行ったことのある場所、敵キャラクタとの戦いで得た知識（敵の弱点、攻撃の有効性など）、プレイヤキャラクタPCから受けた指示、といった情報（特に、ゲーム進行上必要なもの）がＮＰＣ取得知識記憶部55に蓄積される。なお、ＮＰＣ制御部42は、これらの知識に基づき、味方キャラクタNPCにゲーム状況に応じた行動及び発言を行わせる。より具体的に説明すると、ＮＰＣ取得知識記憶部55にて、経験や知識に関するデータ（例えば、個別の経験内容や知識に対応するフラグ、及び経験や知識の程度を示す累積値、などのパラメータ）を保持しておく。そして、経験したか否かや知識を得たか否かなどの条件に応じてこのデータを更新する。これにより、ＮＰＣ制御部42は、更新されたデータから経験や知識の有無を判別することができ、経験や知識に基づいて味方キャラクタNPCの行動及び発言を行わせることができる。このように、本ゲームの味方キャラクタNPCは学習機能を備えている。
【００３６】
メッセージ貯留部60は、味方キャラクタNPCが適宜発言しようとするメッセージを一旦貯留するメモリであり、例えばキュー構造を有している。また、メッセージ表示部61は、メッセージ貯留部60に貯留された味方キャラクタNPCのメッセージを適宜取り出し、ディスプレイ19に表示する。
【００３７】
［データベースの詳細］
次に、図４を参照して、ＮＰＣ行動候補記憶部50が備える各データベースの詳細について説明する。まず、図４に示す詳細メッセージリスト51aは、上述した詳細メッセージＤＢ51に記憶されている情報である。この詳細メッセージリスト51aは、味方キャラクタNPCが発言する具体的なメッセージ内容が複数登録されている。また、各メッセージ内容に対して、ＩＤ、ライフ、優先度、間引き可否、といった情報が関連付けられている。
【００３８】
このうち「ＩＤ」は、複数のメッセージを互いに識別する情報であり、１つのＩＤにより１つのメッセージが特定される。「ライフ」は、各メッセージの有効期限を表すパラメータであり、より具体的には、メッセージ貯留部60にて継続して貯留可能な上限時間を示す。なお、本実施の形態では、このライフをフレーム数で管理している。「優先度」は、各メッセージの重要性を示すパラメータであり、ディスプレイ19に表示する必要性が高いメッセージほど、優先度が高く設定されている。本実施の形態では、１〜５の数値で優先度を設定しており、数値が大きいメッセージほど重要性が高く位置づけられている。「間引き可否」は、各メッセージについて発言を間引くことができるか否かを示すパラメータである。即ち、本実施の形態に係るゲーム装置2は、後述するように、味方キャラクタNPCが同時に複数のメッセージを発しようとした場合や、同一の味方キャラクタNPCが連続してメッセージを発しようとした場合などに、一部のメッセージを間引く場合がある。この際の間引き可否の判断のために、各メッセージに対して当該パラメータが設定されている。
【００３９】
ところで、詳細メッセージリスト51aに登録されているメッセージは、内容的に、アクションメッセージ、敵対思考メッセージ、エリア反応メッセージ、及びクエスト反応メッセージに分類される。
【００４０】
＜アクションメッセージ＞
アクションメッセージとは、味方キャラクタNPC自体の状態が変化したとき（石化した、被毒した、物理的ダメージを受けた、など）、敵キャラクタを発見したとき、体力等を回復させる所定の行動を行うとき、敵キャラクタを倒したとき、遭遇した敵キャラクタとの戦闘を不利と判断したとき、プレイヤキャラクタからの命令に返答するとき、など、所定のアクションに対応して味方キャラクタNPCが発するメッセージである。例えば、図１に示すように、敵キャラクタからの攻撃によりダメージを受けたときに発する「ウワッ！」などのメッセージが含まれる。なお、実質的には、その他の敵対思考、エリア反応、クエスト反応の各メッセージの何れにも分類されないメッセージが該当する。
【００４１】
図４に示すように、このようなアクションメッセージは、アクション内容とメッセージに対応するＩＤとを関連付けた情報が、詳細メッセージリスト51aとは別にして、アクションリスト52aに登録されている。また、該リスト52aは、アクションメッセージＤＢ52（図３）に記憶されている。従って、アクションＤＢ52のアクションリスト52aの中から味方キャラクタNPCの行動が決定されると、この行動に対応するＩＤと詳細メッセージリスト51aとを参照することにより、対応するメッセージも決定される。なお、図４に示すアクションリスト52aでは、説明の便宜上から各アクションを文章で記載しているが、実際は各アクション内容を特定するデータ（ＩＤ）が登録されている。
【００４２】
＜敵対思考メッセージ＞
敵対思考メッセージとは、敵キャラクタと戦闘する際の味方キャラクタNPCの思考を表現するメッセージであり、戦闘時に味方キャラクタが選択した行動に対応する内容になっている。例えば、図１に示すように、片足に怪我を負った敵キャラクタと対戦する場合に、味方キャラクタNPCが発する「もう片方の足を攻撃します！」などのメッセージが該当する。このように、敵対思考メッセージは、味方キャラクタNPCが戦闘時に実行する行動について、何故その行動をとったのかという味方キャラクタNPCの意思を表現するメッセージ内容を含んでいる。
【００４３】
図３に示す敵対思考ＤＢ53には、図４に示すような敵対思考リスト53aが記憶されている。この敵対思考リスト53aは、敵キャラクタと戦闘する場合に、味方キャラクタNPCの行動を決定する際に参照するリストである。具体的には、敵の状態や自分の状態といった条件に対応する行動目的が登録されており、この行動目的にはランクが設定されている。また、この行動目的には、これに対応するメッセージ（即ち、上記敵対思考メッセージ）のＩＤが関連付けて登録されている。従って、味方キャラクタNPCの戦闘時の行動が決定されると、その行動に対応するＩＤと詳細メッセージリスト51aとを参照することにより、対応するメッセージも決定される。
【００４４】
敵対思考リスト53aに記載された、行動目的に対応する各項目について概説しておく。「敵の状態」とは、プレイヤキャラクタPCを含むパーティが対戦する敵キャラクタの状態であり、具体的には、「片足に怪我を負っている」、「飛翔している」、「背を向けている」などがあげられる。「自分の状態」とは、パーティ内の味方キャラクタNPCの状態である。例えば、「自分の状態」には、現時点での体力値、所持スキル（魔法や技など）、知識、戦闘経験、性格、性別などが含まれ、これらのうち一又は複数が１つのメッセージに対して関連付けられる。なお、「行動目的」には、条件を満足する場合に味方キャラクタNPCが選択可能な行動内容が設定され、「ランク」には、その行動を実行した場合の有効性が数値で設定されている。
【００４５】
ここで、同一状態の敵に対して設定された攻撃内容（行動目的）が同一であっても、味方キャラクタNPCの経験内容によって、ランク及び敵対思考メッセージの内容を異なるように設定することができる。例えば、図４に示すように、片足を怪我したゴブリン（敵の状態）と遭遇し、同一の行動（「もう片方の足を攻撃」を内容とする行動目的１，２）を実行する場合であっても、過去に同様のゴブリンに対して、もう片方の足を攻撃した経験があるか否か（自分の状態）により、異なるランク及びメッセージを設定できる。図４の例では、過去にもう片方の足を攻撃した経験がある場合の行動目的１には、高いランクが設定され、「もう片方の足を攻撃すれば、致命的なダメージを与えられます！」という、過去の経験を生かしたメッセージ（ＩＤ：２００１）が設定されている。一方、そのような経験がない場合の行動目的２には、低いランクが設定され、単に「もう片方の足を攻撃します！」というメッセージ（ＩＤ：２００２）が設定されている。このように、味方キャラクタNPCは、過去の経験を生かしたメッセージを表現できるようになっている。
【００４６】
なお、敵対思考リスト53aの「自分の状態」に含まれる「知識」や「戦闘経験」は、単に知識や戦闘経験が多いか少ないかという量的なものではなく、どのような知識や戦闘経験があるかという質的な内容が登録可能である。従って、例えば図４の行動目的１，２についていえば、多くの敵キャラクタとの対戦経験がある味方キャラクタNPCであっても、片足を怪我したゴブリンに対してもう片方の足を攻撃した経験がなければ、行動目的２を実行することになり、その際には「もう片方の足を攻撃します！」（ＩＤ：２００２）としか発言できない。逆に、敵キャラクタとの対戦回数が少ない味方キャラクタNPCであっても、片足を怪我したゴブリンに対してもう片方の足を攻撃した経験があれば、行動目的２を実行することができ、その際には「もう片方の足を攻撃すれば、致命的なダメージを与えられます！」（ＩＤ：２００１）という、経験を生かした発言をすることができる。
【００４７】
また、図４の例では、もう片方の足を攻撃した経験がある場合には行動目的１，２の何れもが実行できることになるが、その場合は、ランクの高い方の行動目的（ここでは、行動目的１）を選択するようになっている。なお、敵の状態が同一であっても、自分の状態に応じて異なる内容の行動目的を登録してもよい。例えば、図４の敵対思考リスト53aに示すように、片足を怪我したゴブリン（敵の状態）に遭遇し、もう片方の足を攻撃した経験がある（自分の状態）、という条件に対して「もう片方の足をハンマーで攻撃」という内容の行動目的（行動目的３）を設定してもよい。これにより、メッセージだけでなく行動内容についても、過去の経験が生かされたものとなる。
【００４８】
なお、図４に示す敵対思考リスト53aでは、説明の便宜上から敵の状態、自分の状態、行動目的、ランクなどを文章や文字で記載しているが、実際には各内容を特定するデータ（ＩＤ）が登録されている。また、「行動目的」の登録内容は、図４に示すものより細分化し、例えば敵キャラクタの身体中の攻撃部位（ターゲット）と、該ターゲットに対する攻撃内容とを、別々に登録するようにしてもよい。また、同時に複数の敵キャラクタと遭遇した場合のために、例えば自身（味方キャラクタNPC）から最も近い敵キャラクタ、又は、ユーザの操作等によりターゲットとして特定された敵キャラクタ、などの敵キャラクタを特定する情報も、「行動目的」の登録情報に含めることができる。また、敵対思考リスト53a中の「敵の状態」の対象となり得る敵キャラクタが複数存在する場合についても、例えば、上記と同様に自身（味方キャラクタNPC）に最も近い敵キャラクタ、又は、ユーザの操作等により特定された敵キャラクタ、などの敵キャラクタを対象として特定することができる。なお、この場合には、「敵の状態」の対象となる敵キャラクタと「行動目的」の対象となる敵キャラクタを一致させておけばよい。
【００４９】
＜エリア反応メッセージ・クエスト反応メッセージ＞
エリア反応メッセージとは、パーティが、ゲーム空間100内に設定された所定のエリアに進入したことを契機として、味方キャラクタNPCが発するメッセージである。例えば、図１に示すように、パーティが街101に入った場合に味方キャラクタNPCが周囲を見渡すと共に発する「賑やかでいい街ですね」などのメッセージが該当する。また、クエスト反応メッセージとは、パーティに対して所定のクエスト（依頼）が発生したことを契機として、味方キャラクタNPCが発するメッセージである。即ち、本ゲームでは、例えば図１に示すように、プレイヤキャラクタPCが街101の住人と会話すると、「森102にあるレアアイテムを探す」というクエストが発生し、これを契機に味方キャラクタNPCは森へ向かおうとし、「森へ行って探してみましょう！」などのメッセージを発するように設定できる。このように、所定の条件を満足した場合に、プレイヤキャラクタPCに対する所定のクエストが発生し、このクエストの発生を契機に味方キャラクタが発するメッセージが、クエスト反応メッセージである。このように、エリア反応メッセージやクエスト反応メッセージは、味方キャラクタNPCが、所定のエリアに進入した場合にとる行動や、クエストが発生した場合にとる行動について、何故その行動をとったのかという味方キャラクタNPCの意思を表現するメッセージ内容を含んでいる。
【００５０】
図３に示すエリア・クエスト反応ＤＢ54には、図４に示すようなエリア・クエスト反応リスト54aが記憶されている。このリスト54aは、味方キャラクタNPCが所定のエリアに進入した場合や、クエストが発生した場合に参照するリストである。具体的には、所定の進入エリアや発生クエストといった条件と、これに対応する行動目的と、該行動目的に対応するメッセージ（即ち、上記エリア反応メッセージ又はクエスト反応メッセージ）のＩＤとが関連付けて登録されている。従って、味方キャラクタNPCが所定のエリアに進入すると、そのエリアへの進入時にとる行動が決定され、その行動に対応するメッセージも決定される。また、味方キャラクタNPCが属するパーティにクエストが発生すると、そのクエスト発生時にとる行動が決定され、更に、その行動に対応するメッセージが決定される。
【００５１】
このようなエリア・クエスト反応リスト54aの内容について、より具体的に説明すると、エリア反応メッセージは、基本的には所定エリアへの進入が条件に含まれるため、エリアが関連付けられている。但し、所定のクエストが発生している状況で所定のエリアに進入した場合に、エリア反応メッセージを発するようにしてもよい。この場合は、エリア反応メッセージに対し、進入エリアに加えて発生クエストも条件として関連付ければよい。また、クエスト反応メッセージは、進入エリア及び発生クエストの両項目が条件として関連付けられている。従って、パーティが所定エリアに存在する状況で、所定のクエストが発生した場合に、対応するクエスト反応メッセージは条件を満足することとなる。なお、ゲーム空間100内の場所を問わず、クエストの発生のみを契機にメッセージを発するようにする場合は、進入エリアとしてゲーム空間100の全域を設定すればよい。
【００５２】
なお、上述した各リスト52a〜54aに記載した項目は一例であり、メッセージを発するための他の条件項目を追加してもよい。例えば、エリア反応メッセージや、クエスト反応メッセージにおいても、味方キャラクタNPCの知識・経験や所持スキルを条件として含めてもよい。また、何れのメッセージについても、ゲーム空間100の環境（昼夜、見晴らしの良し悪し、など）を条件項目として含めてもよいし、敵対思考メッセージ以外のメッセージであっても味方キャラクタNPCの性格や性別などを条件項目として含めてもよい。
【００５３】
以上に説明した味方キャラクタNPCの行動及び発言は、ゲーム装置2での「メッセージ発注処理」及び「メッセージ表示処理」によって実行され、発言したメッセージはディスプレイ19に表示される。簡単にいえば、「メッセージ発注処理」は、味方キャラクタNPCがゲーム状況に応じて発言するタイミングとなった場合に、状況に適したメッセージを選択してこれをメッセージ貯留部60へ貯留（発注）する処理である。また、「メッセージ表示処理」は、メッセージ貯留部60に貯留されたメッセージを、適宜選択しつつディスプレイ19に表示させる処理である。そして、これらの処理は互いに独立して行われ、それぞれ一方の処理は他方の処理の進捗にかかわらず進行するようになっている。以下、これらの処理について順次説明する。
【００５４】
はじめに、メッセージ発注処理において発注する対象となるメッセージの決定手順について説明する。ゲーム装置2は、所定フレーム毎（例えば、１フレーム毎）にゲームの状況（味方キャラクタNPCの状態、敵キャラクタと遭遇したか否か、敵キャラクタの状態、進入エリア、発生クエストなど）に応じて、各リスト52a〜54aの中から味方キャラクタNPCの行動を決定し、この行動に応じたメッセージ（後述する「一次メッセージ」）を決定する。従って、所定フレーム毎に決定されるメッセージは、１つだけの場合もあれば、複数の場合もある。
【００５５】
例えば、ゲーム状況に基づき、アクションリスト52aに含まれている中から、実行するアクションを決定すると、このアクションに応じたメッセージ（一次メッセージ）を発注対象に決定する。そして、所定のアクション（例：敵の攻撃を受けた場合のアクション）が決定されたか否かを判断する。所定のアクションに決定されていなければ、敵対思考の行動を決定すると共に、この敵対思考の行動に対応するメッセージ（一次メッセージ）も発注対象として決定する。そして更に、エリア・クエスト反応の行動を決定し、この行動に対応するメッセージ（一次メッセージ）も発注対象に決定する。一方、所定のアクションに決定された場合は、敵対思考の行動を決定することなく、エリア・クエスト反応の行動を決定し、この行動に対応するメッセージ（一次メッセージ）を発注対象として決定する。
【００５６】
この例の場合、所定のアクションに決定されなかった場合は、最大で３種類のメッセージ（一次メッセージ）が同時に発注対象となる可能性があり、所定のアクションに決定された場合は、最大で２種類のメッセージが同時に発注対象となる可能性がある。そして、メッセージ発注処理では、このようにして決定されたメッセージに対して適宜間引き処理を行い、最終的に抽出されたメッセージをメッセージ貯留部60に貯留する。次に、このメッセージ発注処理について具体的に説明する。
【００５７】
［メッセージ発注処理］
図５は、メッセージ発注処理の概要を示す模式図である。また図６は、メッセージ発注処理の流れを示すフローチャートであり、本実施の形態では１フレーム毎に実行する処理を示している。このような処理は、主にＮＰＣ制御部42によって実行される。図６に示すようにメッセージ発注処理では、はじめに各味方キャラクタNPC1〜NPC3に関して決定された発注対象のメッセージを受け付ける（ステップS10）。即ち、ゲーム状況により、リスト52a〜54aに設定されている条件を満足するメッセージが新たに発生すると、ＮＰＣ制御部42は上述した例のようにして、このメッセージ（以下、「一次メッセージ」とも称する）を例えばＲＡＭ16に一旦保持する。
【００５８】
なお、上述したように、同一の味方キャラクタNPCについて、同時に複数のメッセージが発注対象に決定される場合がある。また、複数の味方キャラクタNPCについて、同時に夫々のメッセージが発注対象に決定される場合もある。このような場合は、発注対象に決定された全メッセージを受け付ける（ステップS10）。但し、同一の味方キャラクタNPCに関し、複数の敵対思考メッセージが発注対象に決定された場合もある。この場合には、各敵対思考メッセージに対応する行動のうち、最もランクが高い１つの行動（即ち、有効性の高い行動）のみを敵対思考の行動として決定し、この行動に対応する１つの敵対思考メッセージを発注対象に決定する。
【００５９】
次に、ＮＰＣ制御部42は発注済リストをチェックし、ステップS10で受け付けた一次メッセージのうち、該発注済リストに記憶されているメッセージと同一のもの（例えば、ＩＤが同一のもの）を間引く（ステップS11）。ここで、「発注済リスト」とは、図６に示すメッセージ発注処理によって最終的に発注されたメッセージ、即ち、メッセージ貯留部60に貯留された三次メッセージを記憶するリストであり、例えばＮＰＣ制御部42によって作成される。また、このリストはメッセージ発注処理の実行毎に更新される。更新時には、新たに発注された三次メッセージのＩＤを記憶すると共に、記憶してから所定期間（例えば、２０秒間）を過ぎたＩＤを削除する。このような発注済リストを用いてステップS11の処理を行うことにより、直近の所定時間内（上記の例でいえば、直近の２０秒間内）に何れかの味方キャラクタNPCが発言したメッセージと同一のメッセージの発注をキャンセルしている。これにより、同じ内容のメッセージが短時間のうちに繰り返されるのを防止し、プレイヤに違和感を与えないようにしている。
【００６０】
次に、ＮＰＣ制御部42は、同一の味方キャラクタNPCについて複数の一次メッセージの発注依頼を受け付けたか否かを判断する（ステップS12）。そして、これを受け付けた場合（ステップS12：YES）は、同一味方キャラクタNPCに関する複数の一次メッセージに対して「同時依頼間引き処理」を行う（ステップS13〜S15）。この処理は、同一味方キャラクタNPCに関して同時に発注依頼を受け付けた複数の一次メッセージのうち、間引き可能なものを間引く処理である。具体的には、詳細メッセージリスト51aを参照しつつ、同一味方キャラクタNPCに関する複数の一次メッセージの中に、間引き不可のメッセージを含むか否かを判断する（ステップS13）。そして、間引き不可のメッセージを含む場合には（ステップS13：YES）、間引き不可のメッセージのみを選択する（ステップS14）。これに対し、間引き不可のメッセージを１つも含まない場合（換言すれば、間引き可能のメッセージのみが含まれる場合）には（ステップS13：NO）、間引き可能のメッセージの中から例えば１つを選択する（ステップS15）。
【００６１】
なお、間引き可能のメッセージが複数ある場合は、各メッセージのうち優先度が最も高いものを、間引かないものとして選択するなど、優先度に基づいて適宜選択する。ここでは、このようにして同時依頼間引き処理（ステップS13〜S15）を経て選択された各一次メッセージや、同一味方キャラクタNPCについて１つのみの一次メッセージの受け付けがあった場合（ステップS12：NO）の各メッセージを、便宜的に「二次メッセージ」と称する（ステップS16）。従って、間引き不可の一次メッセージが複数ある場合は、間引き可能なものを除外したこれら複数の一次メッセージが二次メッセージとなる。また、間引き不可の一次メッセージがなく、間引き可能の一次メッセージのみが含まれる場合は、その中から選択した１又は複数の一次メッセージが二次メッセージとなる。
【００６２】
続いて、二次メッセージについて、「口数間引き処理」を行う（ステップS17〜S21）。この処理は、各味方キャラクタNPCの口数の多少という個性に応じて、二次メッセージの発注頻度を調整する処理である。具体的には、各二次メッセージを発注対象とする味方キャラクタNPC（即ち、発注の依頼者）について、口数に関するパラメータ値T1を取得する（ステップS17）。図５に示すように、各味方キャラクタNPC1〜NPC3には、性別の他、口数を示すパラメータT1が設定されており、パラメータ値が長時間であるほど口数が少ない。例えば、男性の味方キャラクタNPC1は６０秒、女性の味方キャラクタNPC2は３秒、男性の味方キャラクタNPC3は２０秒と設定されている。従って、この中では味方キャラクタNPC1が最も口数が少なく、味方キャラクタNPC2が最も口数が多い設定になっている。このような情報は、ＮＰＣ制御部42など適所において記憶されており、ユーザの操作によって別途調整可能なパラメータとしてもよい。
【００６３】
仮に、味方キャラクタNPC1について発注依頼した二次メッセージがあったとすると、この味方キャラクタNPC1について口数パラメータ値T1（図５の例ではT1＝「６０秒」）を取得する（ステップS17）。更に、直前にこの味方キャラクタNPC1に関するメッセージを実際に発注してからの経過時間T2を取得する（ステップS18）。そして、これらT1及びT2の大小を比較する（ステップS19）。その結果、パラメータ値T1よりも経過時間T2が小さい場合は（ステップS19：NO）、続いて、今回味方キャラクタNPCについて発注依頼のあった二次メッセージについて、その間引き可否を、詳細メッセージリスト51aを参照して判断する（ステップS20）。その結果、間引き可能のメッセージであった場合（ステップS20：YES）はこのメッセージを間引くこととし、即ち、このメッセージを発注せず（ステップS21）、発注済リストを更新（ステップS24）した上でこのフレームでのメッセージ発注処理を終了する。
【００６４】
これに対し、間引き可否を判断した二次メッセージが間引き不可であった場合（ステップS20：NO）や、口数パラメータ値T1よりも経過時間T2が大きいと判断した場合（ステップS19：YES）は、今回味方キャラクタNPC1について発注依頼のあったメッセージは、実際に発注するメッセージに決定される（ステップS22）。ここでは、このように口数間引き処理を経て、実際に発注されることに決定されたメッセージを、便宜的に「三次メッセージ」と称する。そしてゲーム装置2は、この三次メッセージをメッセージ貯留部60へ貯留（発注）し（ステップS23）、更に発注済リストを更新（ステップS24）することで、このフレームでのメッセージ発注処理を終了する。なお、このような口数間引き処理は、全ての二次メッセージについて実行される。そして、最終的に発注されたメッセージを用いて、ディスプレイ19への表示が行われる（下記、「メッセージ表示処理」を参照）。
【００６５】
このように本ゲーム装置2のメッセージ発注処理では、ゲーム状況により条件が満たされた行動に対応するメッセージ（一次メッセージ）は、その都度、発注依頼がかけられる。しかしながら、発注依頼された全ての一次メッセージを発注するのではなく、同時依頼間引き処理によって対象数を減らした二次メッセージに絞り込み、更に口数間引き処理によっても対象数を減らして三次メッセージに絞り込んでいる。これにより、ディスプレイ19へのメッセージの表示数を、ユーザに不自然さを感じさせることなく抑制でき、且つ、ユーザの視認性の向上と、ゲーム装置2の処理負荷の低減とが図られる。
【００６６】
特に、「同時依頼間引き処理」によれば、同時に複数表示されると不自然に感じるようなメッセージを「間引き可能」に設定しておくことにより、同一味方キャラクタNPCからのそのようなメッセージが、ディスプレイ19に同時に複数表示されるのを防止できる。一方で、同時に複数表示されても不自然に感じることがないメッセージについては「間引き不可」に設定しておく。これにより、同一味方キャラクタNPCからのそのようなメッセージについては、ディスプレイ19に、違和感なく同時に複数表示することができる。また、「口数間引き処理」によれば、各味方キャラクタNPCの個性（口数の多少）を表現することができると共に、メッセージの表示数を不自然にならずに抑制することができる。なお、上記メッセージ発注処理により絞り込まれる対象は「メッセージ」であって、該メッセージが関連付けられている「行動」自体は、メッセージ発注処理の如何に関わらず、味方キャラクタNPCによって実行される。
【００６７】
なお、ステップS11で示した、発注済リストに記憶されたものと同一の一次メッセージを間引きする処理においても、上記同時依頼間引き処理や口数間引き処理と同様に、間引きの可否に応じた処理を行うこととしてもよい。即ち、発注済リストに記憶されたものと同一の一次メッセージを受け付けた場合に、当該一次メッセージの間引き可否を、詳細メッセージリスト51aを参照して判断する。そして、間引き可能のメッセージについては間引きをする一方、間引き不可のメッセージについては間引きしないこととしてもよい。
【００６８】
ところで、メッセージを発注してメッセージ貯留部60に貯留する処理（ステップS23）では、図５に示すように、当該メッセージそのものではなく対応するＩＤが記憶される。また本実施の形態では、当該メッセージに対応するライフ，優先度，及び味方キャラクタNPCの識別情報も、ＩＤに関連付けて記憶される。但し、これらの情報（ライフ，優先度，味方キャラクタNPCの識別情報）は、次に説明するメッセージ表示処理の典型例で使用するものであるため、メッセージ発注処理として上記作用効果を奏する上で、必須のものではない。
【００６９】
また、図５に示すように、本実施の形態に係るメッセージ貯留部60はメッセージ・キュー（Message queue）の構成を採用しており、上記メッセージ発注処理からのアクセスと、下記メッセージ表示処理からのアクセスとが、非同期的に行えるようになっている。従って、ＣＰＵ10の処理負荷を低減することができ、且つ、ＣＰＵ10を２つのＣＰＵで構成して夫々のＣＰＵに各処理を担当させることも可能である。但しこれも、本実施の形態に係るメッセージ発注処理とメッセージ表示処理とを組み合わせるにあたり、好ましい構成として例示したものであり、必ずしもこの構成に限定されるものではない。
【００７０】
［メッセージ表示処理］
図７は、メッセージ表示処理の概要を示す模式図である。また図８は、メッセージ表示処理の流れを示すフローチャートであり、本実施の形態では１フレーム毎に実行する処理を示している。このような処理は、主にメッセージ表示部61によって実行される。該メッセージ表示部61は、基本的に、メッセージ貯留部60に記憶されたメッセージを記憶された順に、即ち、記憶された時期が早いものを優先的に選択して出力（表示）する。但し、単純に記憶された順に出力すると、味方キャラクタNPCの発言が不自然になるなどして、ユーザに違和感を与える可能性がある。そこで、図８に示すように本実施の形態に係るメッセージ表示処理では、はじめにメッセージ貯留部60に貯留されたメッセージの整理を行う（ステップS30〜S33）。
【００７１】
具体的には、まずメッセージ表示部61は、各メッセージのライフをチェックし、ライフ値が消滅したメッセージをメッセージ貯留部60から消去する（ステップS30）。即ち、既に説明したように各メッセージには、その有効期限を示すパラメータとして、ライフ値がフレーム数を用いて設定されている。ゲーム装置2は、フレーム処理（生成及び表示）を１／３０秒毎に実行するたびに、メッセージ貯留部60に貯留されたメッセージを対象として、そのライフ値を減算する処理を行っている。そして、フレーム毎に、この減算処理によってライフ値が消滅した（ゼロになった）メッセージの有無を判断し、ライフ値が消滅したメッセージをメッセージ貯留部60から消去する。
【００７２】
例えば、図４の詳細メッセージリスト51aに示すＩＤ「１００３」のメッセージは、ライフ値が「３０ｆ」に設定されている。従って、このメッセージがメッセージ貯留部60に残存できる期間の限界は、貯留されてから３０フレーム（本実施の形態では、１秒間）であり、その間にディスプレイ19に表示されなければ、３１フレーム目でメッセージ貯留部60から消去される。これにより、有効期限の切れたメッセージを消去し、表示タイミングを逸したメッセージを表示しないようにしている。
【００７３】
また、メッセージ表示部61は、メッセージ貯留部60内に同一内容のメッセージ（即ち、同一ＩＤ）が複数存在するか否かを判断し、その結果、複数存在すると判断した場合には、その一部を間引く（ステップS31）。例えば、敵キャラクタの連続攻撃により短時間に連続して複数回のダメージを受けると、上述したメッセージ発注処理により、「ウワッ！」というメッセージが連続して複数発注され、これらがメッセージ貯留部60に貯留される場合がある。このような同一内容のメッセージが実際に連続して表示されると、ユーザに違和感を生じさせるため、一部のメッセージを消去することとしている。例えば、最先に貯留されたものだけを残し、後から貯留された同一内容のメッセージは消去する。
【００７４】
なお、メッセージ貯留部60内のメッセージが互いに同一内容であるか否かを判断するにあたっては、各メッセージに対応する味方キャラクタNPCの異同に無関係に行ってもよいし、同一の味方キャラクタNPCに関するメッセージに対してのみ、そのメッセージ内容の同一性判断を行うようにしてもよい。また、複数のメッセージが互いに同一内容であるとは、必ずしも、各メッセージを示すテキストが一字一句同一であることを要しない。
【００７５】
なお、ステップS31に示す間引き処理をするに際し、最先のメッセージのライフ値を、同一内容の最新のメッセージのライフ値で上書きすることとしてもよい。メッセージ貯留部60に複数貯留されている同一内容のメッセージは、表示すべき必要性が比較的高いものといえる。従って、ライフ値を最新のものに上書きすることにより、同一メッセージの連続表示を回避しつつも、最先のメッセージをメッセージ貯留部60に長期間残存させることができ、表示させやすくできる。
【００７６】
また、メッセージ表示部61は、同一味方キャラクタNPCに関して、内容の異なる所定のメッセージが複数あるか否かを判断し、その結果、複数あると判断した場合には、そのうち、より古いメッセージを消去する（ステップS32）。例えば、本ゲームではプレイヤキャラクタPCが味方キャラクタNPCに命令することができ、命令された味方キャラクタNPCはそれに応じた行動をし、更にその行動に応じたメッセージ（命令リアクション・メッセージ）を表示するようになっている。ここで、プレイヤキャラクタPCが味方キャラクタNPCに対して「助けてくれ！」と命令した後に、味方キャラクタNPCが実際に助けに来る前に「行け！」と再度命令する場合があり得る。このような場合に、「行け！」と命令したにもかかわらず、味方キャラクタNPCが前回の命令に基づいてプレイヤキャラクタPCを助けに来たり、「助けます」と発言したりするのは、現状に相応しくない行動であり、ユーザに違和感を生じさせる。従って、所定のメッセージ（本実施の形態では、命令リアクション・メッセージ）については、上記のように古いメッセージを消去することにより、最新のゲーム状況に合致したリアクションを味方キャラクタNPCが実行できるようになる。
【００７７】
更に、メッセージ表示部61は、メッセージ貯留部60内のメッセージを、優先度順にソートする（ステップS33）。具体的には、本実施の形態に係るメッセージ貯留部60は、既に言及したようにメッセージ・キューの構成を採用しており、メッセージは、貯留した順に従って先頭から末尾へと並べられている。そして、先頭のメッセージから順に取り出されて表示される。このステップS33では、このように並べられたメッセージを、貯留時の並び順にかかわらず、優先度が高いものほど先頭に近くなるように並べ替える処理を行う。これにより、ディスプレイ19に表示する必要性が高い重要なメッセージが、より取り出されやすくなっている。
【００７８】
次に、メッセージ表示部61は、表示数条件をクリアしているか否かを判断する（ステップS34）。即ち、ディスプレイ19での現時点の表示数に基づき、新たなメッセージを表示する空き枠が存在するか否かを判断する。本実施の形態では、ユーザの視認性を考慮して、ディスプレイ19に同時に表示できるメッセージ数を例えば３つとしている。そして、既に３つのメッセージが表示されている場合（ステップS34：NO）は、本フレームでは新たなメッセージを表示させない。なお、メッセージ表示部61は、既にディスプレイ19に表示しているメッセージを、所定時間（例：４秒間）が経過したら消去する処理を別途行っている。従って、表示中のメッセージが消去され、空き枠が存在すれば、表示数条件をクリアしていると判断する（ステップS34：YES）。
【００７９】
表示数条件がクリアされている場合は、続いて待機時間条件をクリアしているか否か、即ち、連続表示する場合に所定の待機時間が経過しているか否かを判断する（ステップS35）。具体的に説明すると、本実施の形態では、文字列によるメッセージの表示と同時に、対応する音声を出力する。また、本実施の形態では、１秒間に３０フレームの処理をしているため、空き枠があって制限がなければ最速で１／３０秒毎にメッセージを表示することができる。しかしながら、このような極短時間で複数のメッセージを表示し、対応する音声を出力すると、ユーザには複数の音声出力がほぼ同時に行われているように認識され、各音声を聞き取るのが難しくなる。従って、空き枠がある場合であっても、まず、前回のメッセージの表示開始時点から、所定の待機時間を経過しているか否かを判断する。そして、経過していないと判断した場合（ステップS35：NO）は、本フレームでは新たなメッセージを表示しない。一方、経過していると判断した場合（ステップS35：YES）は、メッセージ貯留部60内の先頭のメッセージを取り出し、このメッセージをディスプレイ19に表示すると共に、対応する音声を出力する（ステップS36）。なお、待機時間は任意に設定することができ、例えば、１／１０秒〜１／２秒の間で、毎回ランダムに決定することとしてもよい。但し、待機時間を一定とすると機械的に制御されている感じをユーザに意識させてしまうため、上記のように待機時間が毎回ランダムに決定されるようにするのが好ましい。
【００８０】
このように本ゲーム装置2のメッセージ表示処理では、メッセージ貯留部60内のメッセージ全てを表示するのではなく、メッセージ貯留部60内の整理を行う。これにより、有効期限が切れて鮮度の落ちたメッセージを消去でき（ステップS30）、同一メッセージを間引くことができ（ステップS31）、状況に合わなくなった同一味方キャラクタNPCの古いメッセージを消去でき（ステップS32）、優先度の高いメッセージを取り出しやすくすることができる（ステップS33）。更に、表示数を制限することによりユーザの視認性を向上し（ステップS34）、連続表示する際に所定時間のインターバルを設けることで、メッセージの表示と共に出力する音声を、ユーザが聞き取りやすいようにしている（ステップS35）。
【００８１】
なお、本実施の形態では、ステップS30〜S33に示した各処理を、メッセージ表示処理において全て実行する場合を例示したが、これに限られない。例えば、ステップS30〜S33は、毎回のメッセージ表示処理において実行する必要はなく、それぞれ所定回数毎に実行するようにしてもよい。あるいは、メッセージ発注処理により新たなメッセージが発注されるたびに、ステップS30〜S33のうち一又は複数の処理を実行することとしてもよい。また、メッセージ貯留部60の整理に関するステップS30〜S33の処理と、ディスプレイ19に表示されているメッセージとの関係で行うステップS34〜S35の処理とを、互いに独立したルーチンで実行することとしてもよい。
【００８２】
［その他］
敵対思考リスト53aの説明でも触れたが、図４に示した敵対思考メッセージは、同一の行動目的であって異なる条件が設定されたものが含まれていてもよい（図４の行動目的１，２参照）。例えば、「もう片方の足を攻撃」という同一の行動目的が設定された２つのメッセージについて、一方には自分の戦闘経験として「もう片方の足を攻撃した経験あり」を設定し、他方には「戦闘経験不問」と設定してもよい。この場合には、前者の方が後者よりもランクを高く設定しておく。これにより、戦闘経験が未熟な間は、前者の行動は選択候補から外れて後者の行動が選択候補となるが、ランクが低いため、条件を満たすが有効性の低い他の行動が選択される可能性もある。これにより、味方キャラクタNPCの未熟さが表現される。一方、多くの戦闘を経験して「もう片方の足を攻撃した経験あり」の条件を満たすこととなった場合には、前者の行動が選択候補に含まれることとなり、しかも、ランク（有効性）が高いので選択される可能性が高くなる。これにより、戦闘を経験したことによる味方キャラクタNPCの成長を、ユーザに実感させることができる。
【００８３】
また、行動目的が同一であっても、経験の違いに応じてランクの設定値及びメッセージの内容を異ならせてもよい。例えば、敵キャラクタと戦闘する場合に、その敵キャラクタとの戦闘に関して有意義な経験を過去にしている場合には、高いランクに設定し、且つ、そのような経験をしていることが伝わるようなメッセージを設定する（行動目的１に対応するメッセージ（ＩＤ：２００１）参照）。一方、そのような経験をしていない場合には、低いランクに設定し、且つ、経験に乏しいことが分かるようなメッセージを設定する（行動目的２に対応するメッセージ（ＩＤ：２００２）参照）。これにより、有意義な経験を積むに従って、高いランクの行動が選択され、それに伴って該行動に対応するメッセージ、即ち、経験を積んだからこそ言えるようなメッセージを表示することができる。なお、経験の違い等に応じて、行動目的、ランク、及びメッセージを異なるように設定してもよい。
【００８４】
図４の詳細メッセージリスト51aに示す「間引きの可否」は、既に言及したように、メッセージ発注処理のステップS13，S20での間引き判断の基準であるが、その設定基準は、各メッセージの重要性や味方キャラクタNPCの自己表現上の貢献度に基づいて定めることができる。例えば、エリア反応メッセージやクエスト反応メッセージ、及び一部のアクションメッセージは間引き不可とし、その他のアクションメッセージ及び敵対思考メッセージは間引き可能とすることが考えられる。なお、メッセージ発注処理のステップS20での口数間引きの判断基準となる口数パラメータ（ステップS17で取得されるパラメータ）は、各味方キャラクタNPCに対して固定的に設定されていてもよいし、ゲーム状況に応じて可変となるように設定してもよい。例えば、強靱な敵キャラクタと戦闘しているとき、崖ぎわなどの危険な地形環境にいるとき、極寒の地にいるとき、などでは口数が少なくなる（口数パラメータが長時間になる）ように可変としてもよい。一方、プレイヤキャラクタPCへの同伴累計時間などに基づいて変化する、プレイヤキャラクタPCへの「なつき度」を設定し、この「なつき度」が高くてプレイヤキャラクタPCによくなついている味方キャラクタNPCほど、口数が多くなる（口数パラメータが短時間になる）ように可変としてもよい。
【００８５】
なお、本ゲームは、ユーザAのゲーム装置2とユーザBのゲーム装置2とをネットワークNWを介して接続し、ユーザBの味方キャラクタNPC-B（及び、その取得知識情報）をユーザAのゲーム装置2にロードすることができる。そして、ユーザAは、この味方キャラクタNPC-Bを自身のパーティの一員にしてプレイすることができる。この場合、ユーザA及びユーザBのゲーム進行状況が異なるため、例えば、ユーザAが操作するパーティが達成していないクエストについて、借り受けた味方キャラクタNPC-Bは既に経験している可能性もある。従って本ゲームでは、このような場合に味方キャラクタNPC-Bが、自身の経験及び知識に基づいて、ユーザAのプレイヤキャラクタPCに対して有効なアドバイスを提供することができる。
【産業上の利用可能性】
【００８６】
本発明は、真に自分の意思及び個性をもつような印象を、ユーザに抱かせ得るＮＰＣを実現することのできるコンピュータプログラム及びゲーム装置に適用することができる。
【符号の説明】
【００８７】
２        ゲーム装置
１９      ディスプレイ
３０ａ    ゲームプログラム
３０ｂ    ゲームデータ
４０      ゲーム空間生成部
４２      ＮＰＣ制御部
５０      ＮＰＣ行動候補記憶部
５５      ＮＰＣ取得知識記憶部
６０      メッセージ貯留部
６１      メッセージ表示部
１００    ゲーム空間
ＮＰＣ    味方キャラクタ
ＰＣ      プレイヤキャラクタ
【図１】
0005988576.tif 000002
【図２】
0005988576.tif 000003
【図３】
0005988576.tif 000004
【図４】
0005988576.tif 000005
【図５】
0005988576.tif 000006
【図６】
0005988576.tif 000007
【図７】
0005988576.tif 000008
【図８】
0005988576.tif 000009