説明

プログラム、情報記憶媒体及びゲーム装置

【課題】NPCのより活き活きとした多彩な動作制御をより簡単に実現すること。
【解決手段】自動制御対象のNPCの周囲に配置されているオブジェクトから注目オブジェクトを選択し、当該NPCから各注目オブジェクトに対して持つマップ内注目度を算出する。マップ内注目度は、注目度初期値を元に、注目オブジェクトの動作状態や相対位置関係、制御対象NPCと当該注目オブジェクトとの相性などに基づいて随時補正される。そして、最大のマップ内注目度を有する注目オブジェクトを、制御対象のNPCの行動対象の候補とし、注目度の大きさに応じて予め定義されている中から行動種類を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、ゲーム空間に配置された複数のキャラクタそれぞれを制御して所定のゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
キャラクタが登場するビデオゲームの多くには、プレーヤによる操作入力に応じて動作制御されるプレーヤキャラクタ(以下「PC」とも言う。)や、コンピュータが自動的に動作制御するノンプレイアブルキャラクタ(以下「NPC」とも言う。)が登場するのが一般的である。
【0003】
NPCは、プレーヤキャラクタをサポートする仲間であったり、或いは一般的な村人、魔法で呼び出される式神や召還獣などと言った具合に、ゲーム世界での役割に応じた設定が与えられ、それぞれその設定に応じてそれらしく見えるように動作制御される。
この「それらしく見えるように動作制御する」ことによって、NPCはより活き活きとした存在感を生み出し、ゲームの興趣を高める。
【0004】
また、プレーヤキャラクタについても、移動や攻撃、会話など大まかなアクションはプレーヤの操作入力に基づいて制御されるが、各アクションにおける細かな動作(例えば、表情や視線の向きなど細やかな動作)はNPCと同様に自動制御の対象とされ、その制御次第でプレーヤキャラクタがより活き活きとした存在感を放つようになる。
【0005】
この「それらしく見えるように動作制御する」ための技術としては、例えば、瞳を有する特定キャラクタと、この特定キャラクタが注目する注視オブジェクト(例えば、敵キャラクタ)とを仮想3次元空間に配置し、移動させるゲームにおいて、特定キャラクタからこの注視オブジェクトまでの相対方向を求め、瞳や首を相対方向に向けるように制御する技術が知られている(例えば、特許文献1参照)。この技術によれば、あたかも特定キャラクタに意志があって注視オブジェクトを自ら認識し注目しているかのように動作させることができる。特定キャラクタがプレーヤキャラクタでもNPCでも、より活き活きとした存在感を放つであろう。
【0006】
また例えば、プレーヤキャラクタの最大検知距離以内に検知可能なオブジェクトがある場合に、その内最も近いオブジェクトを特定し、この特定されたオブジェクトが位置する相対方向に応じてプレーヤキャラクタがそちらの方向を向いている画像に更新する技術がある(例えば、特許文献2参照)。この技術によれば、例えばRPGのように、プレーヤキャラクタが情報を収集するための村や攻略ポイントとしての目的地を探しながら広大なマップ上を移動する状況において、ゲーム画面外に存在する目的地をプレーヤに教えることができるとともに、目的地を探して旅するプレーヤキャラクタの目的地らしきものをめざとく見つけたかのようにそれらしい動作をさせることができる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−141421号公報
【特許文献2】特開2002−253848号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述のように、ゲームに登場するキャラクタの視線の動きなど細やかな動作を制御する技術は知られるところであるが、NPCの大まかな動作を自動制御する手法は、想定される様々な条件分岐をもとに思考パターンを予め設定しておかなければならなかった。
【0009】
例えば、とある村人のNPCの行動を制御する場合、プレーヤキャラクタが所定範囲内に近接した場合に最初は挨拶する。2回目に近接したら最近の天気について話す。3回目以降は、村はずれのお宝伝説について話す。それ以外は、農機具を持って村敷地内をランダム移動・・・と言った具合に設定するならば、当該NPCの役柄と存在場所に応じて、想定され得る状況別に、条件分岐と分岐先の行動を事細かに設定しなければならない。(勿論、この例で言う「それ以外」の条件での行動は単なるランダム移動であり、当該NPCをプレーヤが注視し続けその動作を観察すると、とても一人の人間らしい動作とは感じないであろう。)
【0010】
この村人のNPCをより活き活きとした存在とするためには、例えば、好みの女性を見かけたら畑に行くことをそっちのけに話し込んだり、犬に吠えられたら逃げたり、教会の鐘が鳴れば鐘の方を向くと言った具合に、移動、会話、逃げる、顔を向けるなど、大まかな動作は勿論、注意を惹き付けた対象に応じたより細かくそれでいて人として自然な動作をするように制御されるのが望ましい。しかし、それを従来のように条件分岐と分岐先の行動の設定で実現していては、膨大なゲーム製作労力を要することになる。そのため、プレーヤキャラクタの仲間のように重要なNPC等の少数に対してのみ行動設定を行い、それ以外のNPCに対しては2〜3の大まかな設定のみ、或いはランダム移動といった設定のみで済ますのが一般的であった。そのため、望むような活き活きとした村人NPCがゲームに登場することはなかった。
【0011】
本発明は、こうした事情を鑑みてなされたものであり、NPCのより活き活きとした多彩な動作制御を、より簡単に実現することを目的としている。
【課題を解決するための手段】
【0012】
以上の課題を解決するための第1の形態は、コンピュータに、ゲーム空間に配置された複数のキャラクタそれぞれを制御して所定のゲームを実行させるためのプログラムであって、
前記複数のキャラクタそれぞれに注目度を設定する注目度設定手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、注目オブジェクト選択部214、マップ内注目度算出部216、図18のステップS22、図19のステップS52)、
前記注目度に基づいて、前記複数のキャラクタのうちの制御対象キャラクタ以外のキャラクタの中から当該制御対象キャラクタに影響を与える誘因キャラクタを選択する選択手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、行動対象オブジェクト選択部218、図19のステップS222、図26のステップS228)、
前記誘因キャラクタの注目度に基づいて、前記制御対象キャラクタの動作、移動及び放音のうちの少なくとも1つ(以下「アクション」という。)を制御する制御手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、アクション選択部224、図26のステップS234〜S240、図19のステップS250)として前記コンピュータを機能させるためのプログラムである。
【0013】
また、別形態として、ゲーム空間に配置された複数のキャラクタそれぞれを制御して所定のゲームを実行するゲーム装置であって、
前記複数のキャラクタそれぞれに注目度を設定する注目度設定手段(例えば、図1の制御ユニット1450、図12の処理部200、ゲーム演算部210、NPC自動制御部212、注目オブジェクト選択部214、マップ内注目度算出部216、図18のステップS22、図19のステップS52)と、
前記注目度に基づいて、前記複数のキャラクタのうちの制御対象キャラクタ以外のキャラクタの中から当該制御対象キャラクタに影響を与える誘因キャラクタを選択する選択手段(例えば、図1の制御ユニット1450、図12の処理部200、ゲーム演算部210、NPC自動制御部212、行動対象オブジェクト選択部218、図17のオブジェクトステータスデータ526、行動対象オブジェクトID526j、図19のステップS222、図26のステップS228)と、
前記誘因キャラクタの注目度に基づいて、前記制御対象キャラクタのアクションを制御する制御手段(例えば、図1の制御ユニット1450、図12の処理部200、ゲーム演算部210、NPC自動制御部212、アクション選択部224、図26のステップS234〜S240、図19のステップS250)と、
を備えたゲーム装置(例えば、図1の携帯型ゲーム装置1400)を構成することができる。
【0014】
第1の形態によれば、ゲームに登場する複数のキャラクタそれぞれについて注目度を設定することができる。そして、ある自動動作制御の制御対象であるキャラクタを制御する場合、当該制御対象キャラクタ以外のキャラクタの中から、当該制御対象キャラクタに影響を与える誘因キャラクタを選択し、この誘因キャラクタの注目度に基づいて制御対象キャラクタのアクションを制御することができる。ここで言う「誘因キャラクタ」とは、その誘因キャラクタの注目度故に、当該制御対象キャラクタが興味(ポジティブな興味、ネガティブな興味何れも含む)を惹かれて何らかのアクションを起こすきっかけとなるキャラクタのことである。「アクション」とは、移動、振り向き、攻撃、会話などの身体的動作を伴う行動は勿論、好みや心象の変化など心理的反応を含む意味である。
つまり、制御対象キャラクタが周囲のもの個々に抱く注目度という内部パラメータ(換言すると興味の惹かれ具合パラメータ)に応じて、行動対象(=誘因キャラクタ)を決定しアクションを決定することができるので、従来のようにNPCのゲームにおける役柄や活動範囲を考慮した膨大で複雑な条件分岐を設定する必要はない。
【0015】
更には、注目度の大きさに応じてアクションの種類を選択する構成とするならば、例えば、注目度が比較的低い段階では、目線を送る程度であるが、ある閾値を越えると近寄るように移動し、更に有る閾値を越えると声をかけるといった具合に、興味の惹かれ度合いに応じてアクションが自然に選択されるように、よりそれらしく見える行動制御を多彩且つ簡単に実現できるようになる。
【0016】
第2の形態は、前記選択手段及び前記制御手段が、前記複数のキャラクタのうち、一部又は全部のキャラクタそれぞれを前記制御対象キャラクタとして処理を実行するように前記コンピュータを機能させるための第1の形態のプログラムである。
【0017】
第2の形態によれば、第1の形態と同様の効果を奏するとともに、ゲームに登場するキャラクタの全部又は一部を自動動作制御の対象とすることができる。
【0018】
第3の形態は、前記制御手段が、同一の前記制御対象キャラクタに対する新たなアクションの適用間隔を制御する(例えば、図17の思考タイミングタイマ526f、図19のステップS50、S252)ように前記コンピュータを機能させるための第1又は第2の形態のプログラムである。
【0019】
第3の形態によれば、第1又は第2の形態と同様の効果を奏するとともに、制御対象キャラクタのアクション適用間隔を制御できる。よって、注目度の設定を1/30秒程度の制御サイクル毎に行って、細やかな注目度の変化を実現しつつも、制御対象キャラクタのアクションがめまぐるしく変化するといった事態を回避できる。
【0020】
第4の形態は、前記注目度設定手段が、当該キャラクタの注目度を、当該キャラクタ自身のアクションの実行度合いに応じて変更する自身原因変更手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、マップ内注目度算出部216、図20のステップS90、S110)を有する、ように前記コンピュータを機能させるための第1〜第3の何れかの形態のプログラムである。
【0021】
更に、第5の形態として、前記自身原因変更手段が、当該キャラクタがアクションを開始したことを検出するアクション開始検出手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、マップ内注目度算出部216、図21のステップS94の「動き始め」分岐)を有し、当該検出時に、当該キャラクタの注目度の大きさを一時的に大きくするように変更する、ように前記コンピュータを機能させるための第4の形態のプログラムが実現できる。
【0022】
第4の形態によれば、第1〜第3の形態の何れかと同様の効果を奏するとともに、注目度が設定されるキャラクタのアクションの実行度合いに応じてその注目度を変更することができる。
【0023】
そして、第5の形態によれば、動き始めの物体にはより強く注目する人間の特性を上手く注目度というパラメータ値に反映されることができる。より具体的には、例えば「移動」アクションをするキャラクタについて注目度が設定される場合、移動開始と、移動中と、停止と言った具合にアクションの段階に応じて注目度を変更できる。この例では、前者ほど高く後者ほど低くなるように注目度を変更すると、動き始めの物体にはより強く注目するが、移動している状態の物体にはそれほどは注目せず、停止している物体には更に注目しない、といった注目する側の人間の特性を上手く反映させることができる。
【0024】
第6の形態は、前記注目度変更手段が、当該キャラクタの注目度の大きさを、当該キャラクタと前記制御対象キャラクタとの相対位置関係に応じて変更する手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、マップ内注目度算出部216、図20のステップS140、S160)を有する、ように前記コンピュータを機能させるための第1〜第5の何れかの形態のプログラムである。
【0025】
第6の形態によれば、第1〜第5の形態の何れかと同様の効果を奏するとともに、自動制御される制御対象キャラクタと、注目度を設定するキャラクタとの相対位置関係に応じて変更することができる。ここで言う「相対位置関係」は、例えばゲーム空間内における相対距離、相対方向、制御対象キャラクタからみて見える/見えない、を含む。
よって、注目度を設定するキャラクタが制御対象キャラクタに対してどれだけ近いか、どの方向に見えるか、見えるか/見えないかといった状況に応じて注目度を細かく設定することができる。例えば、相対距離が遠くなるほど注目度を減ずるように設定するならば、遠くのモノには気づきにくい人間の特性を注目度に上手く反映させることができる。
【0026】
第7の形態は、前記各キャラクタには相性に関する属性が定められており、前記制御手段が、前記制御対象キャラクタの属性と前記誘因キャラクタの属性との相性に基づいて、前記制御対象キャラクタのアクションを可変に制御するように前記コンピュータを機能させるための第1〜第6の何れかの形態のプログラムである。
【0027】
第7の形態によれば、第1〜第6の形態の何れかと同様の効果を奏するとともに、制御対象キャラクタの属性と前記誘因キャラクタの属性との相性に基づいて、制御対象キャラクタのアクションを可変できる。
【0028】
第8の形態は、前記制御手段が、前記制御対象キャラクタの属性と前記誘因キャラクタの属性との相性が不良の場合に前記誘因キャラクタから遠ざかる方向に前記制御対象キャラクタを移動制御し、良好の場合に前記誘因キャラクタに近づく方向に前記制御対象キャラクタを移動制御する移動制御手段を有する、ように前記コンピュータを機能させるための第7の形態のプログラムである。
【0029】
第8の形態によれば、第7の形態と同様の効果を奏するとともに、制御対象キャラクタと誘因キャラクタとの相性とが良ければ近づくが、相性が悪ければ近づくよりむしろ遠ざかるように制御対象キャラクタを制御することができる。
【0030】
第9の形態は、前記移動制御手段が、前記誘因キャラクタの注目度の大きさに応じた速度で前記制御対象キャラクタを移動制御するように前記コンピュータを機能させるための第8の形態のプログラムである。
【0031】
第9の形態によれば、第8の形態と同様の効果を奏するとともに、制御対象キャラクタと誘因キャラクタとの相性が良くて近づく場合や、相性が悪くて遠ざかる場合に誘因キャラクタの注目度に応じてその移動速度を変えることができる。例えば、注目度が高いほど速く移動するように制御すれば、相性の良い誘因キャラクタに飛びつくように近づくし、相性が悪い誘因キャラクタから逃げ出すといった具合に、より一層人間らしい動作制御を実現できる。
【0032】
第10の形態は、前記制御手段が、前記各キャラクタに定められた視線方向を変化させる視線方向制御を前記アクションの1つとして実行する視線方向制御手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、アクション選択部224、図13の基礎アクションリストデータ506、図26のステップS234)を有し、
更に、前記視線方向制御手段が、前記制御対象キャラクタの属性と前記誘因キャラクタの属性との相性が不良の場合に前記誘因キャラクタから視線をそらすように前記制御対象キャラクタの視線方向を変化させ、良好の場合に前記誘因キャラクタに視線を向けるように前記制御対象キャラクタの視線方向を変化させる、ように前記コンピュータを機能させるための第7〜第9の何れか形態のプログラムである。
【0033】
第10の形態によれば、第7〜第9の形態の何れかと同様の効果を奏するとともに、制御対象キャラクタの属性と誘因キャラクタの属性との相性が悪ければ、誘因キャラクタから意図的に視線をそらすように制御対象キャラクタの視線方向を変化させる制御ができる一方、相性が良い場合に誘因キャラクタに積極的に視線を向けるように視線方向を変化させることができる。視線方向の制御1つにしても、より人間らしい動作を、複雑な条件分岐の設定無しに簡単に実現できる。
【0034】
第11の形態は、前記キャラクタ設定手段が、変更した注目度を時間経過に応じて変更前の値に戻す注目度復帰制御手段(例えば、図12の処理部200、ゲーム演算部210、NPC自動制御部212、注目度時限補正制御部222、図17の時限補正対象オブジェクトID526m、時限補正開始システム時刻526n、図25のステップS184〜S186、図19のステップS44)を有するように前記コンピュータを機能させるための第1〜第10の何れかの形態のプログラムである。
【0035】
第11の形態によれば、第1〜第10の形態の何れかと同様の効果を奏するとともに、変更した注目度を時間経過に応じて変更前の値に戻すことができる。
【0036】
第12の形態は、第1〜第11の何れかの形態のプログラムを記憶するコンピュータ読取可能な情報記憶媒体である。
ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第12の形態によれば、第1〜第11の形態のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第11の形態の何れかと同様の効果を発揮させることができる。
【図面の簡単な説明】
【0037】
【図1】携帯型ゲーム装置の構成例を示す図。
【図2】ゲーム世界の概要を示す図。
【図3】NPCの自動制御の概要を説明する概念図。
【図4】速度補正値の概念を説明するための図。
【図5】音量補正値の概念を説明するための図。
【図6】距離補正値の概念を説明するための図。
【図7】視界補正値の概念を説明するための図。
【図8】注目タイプ補正値とアクション傾向の概念を説明するための図。
【図9】マップ外注目度の概念を説明するための図。
【図10】ゲーム世界内時間に応じたマップ外注目度の設定例を示す概念図。
【図11】アクション種類の選択における注目度とアクション傾向の関与を示す概念図。
【図12】機能構成例を示す機能ブロック図。
【図13】オブジェクト初期設定データのデータ構成例を示す図。
【図14】注目タイプ設定データのデータ構成例を示す図。
【図15】マップ外注目度設定データのデータ構成例を示す図。
【図16】イベント設定データのデータ構成例を示す図。
【図17】オブジェクトステータスデータのデータ構成例を示す図。
【図18】主たる処理の流れを説明するためのフローチャート。
【図19】NPC自動制御処理の流れを説明するためのフローチャート。
【図20】マップ内注目度算出処理の流れを説明するためのフローチャート。
【図21】速度補正値算出処理の流れを説明するためのフローチャート。
【図22】音量補正値算出処理の流れを説明するためのフローチャート。
【図23】距離補正値算出処理の流れを説明するためのフローチャート。
【図24】視界補正値算出処理の流れを説明するためのフローチャート。
【図25】注目タイプ補正値算出処理の流れを説明するためのフローチャート。
【図26】アクション選択処理の流れを説明するためのフローチャート。
【発明を実施するための形態】
【0038】
〔第1実施形態〕
本発明を適用した実施形態として、携帯型ゲーム装置においてアドベンチャーゲームを実行する例を説明する。
【0039】
[ゲーム装置の構成]
図1は、携帯型ゲーム装置の構成例を説明するための外観図である。本実施形態における携帯型ゲーム装置1400は、プレーヤがゲーム操作を入力するための方向入力キー1402及びボタンスイッチ1404と、第1液晶ディスプレイ1406と、第2液晶ディスプレイ1408と、スピーカ1410と、制御ユニット1450とを、ヒンジ1414で開閉自在なフリップフロップ型の装置本体1401に備えている。
そして、第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408の表示面上には、スタイラスペン1416などで触れることによって表示画面の任意位置を接触入力することのできるタッチパネル1407、1409がそれぞれ装着されている。
【0040】
また、装置本体1401には、コンピュータ読み出し可能な情報記憶媒体であるメモリカード1440にデータを読み書きできるメモリカード読取装置1418が備えられている。メモリカード1440には、携帯型ゲーム装置1400の制御ユニット1450がゲームプレイに係る各種演算処理を実行するために必要なプログラムや各種設定データが記憶されている。またその他、装置本体1401には図示されていない内臓バッテリーや電源スイッチ、音量調節ボタン等が設けられている。
【0041】
タッチパネル1407、1409は、表示画面を遮蔽することなくそれぞれ第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408の表示画面のほぼ全域を被い、プレーヤがスタイラスペン1416(或いは指など)で触れる接触操作を行うと、左上を原点とする直交Xt,Yt軸座標系における接触位置座標を制御ユニット1450へ出力することができる。
【0042】
制御ユニット1450は、ゲーム装置の制御基板に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、VRAMやRAM,ROM等の各種ICメモリを搭載する。
また、制御ユニット1450は、無線通信モジュール1412や、3軸加速度センサ1422、第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408のドライバ回路、タッチパネル1407及びタッチパネル1409のドライバ回路、方向入力キー1402及びボタンスイッチ1404からの信号を受信する回路、スピーカ1410へ音声信号を出力するためのアンプ回路、メモリカード読取装置1418への信号入出力回路と言った所謂I/F回路(インターフェース回路)を搭載する。これら制御ユニット1450に搭載されている各要素は、それぞれバス回路を介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。
【0043】
3軸加速度センサ1422は、携帯型ゲーム装置1400の姿勢変化や位置変化を検出するために直交するX軸・Y軸・Z軸の3軸方向の加速度を検出し、検出信号を制御ユニット1450へ出力する。尚、加速度センサの代わり、又は更なる機能追加としてジャイロセンサを備える構成としても良い。或いは地磁気を基準として位置や姿勢変化を検出する磁気センサを更に機能追加してもよい。
【0044】
そして制御ユニット1450は、メモリカード読取装置1418によってメモリカード1440に格納されているプログラムやデータを読み出して、搭載するICメモリにこれらを一時記憶する。そして、読み出したプログラムを実行して演算処理を実行し、方向入力キー1402やボタンスイッチ1404、タッチパネル1407及び1409からの操作入力に応じて携帯型ゲーム装置1400の各部を制御して、音楽ゲームを実行する。
【0045】
尚、本実施形態では、携帯型ゲーム装置1400は必要なプログラムや各種設定データをメモリカード1440から読み出す構成としているが、無線通信モジュール1412を介して、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)などの有線/無線の通信回線1に接続して外部の装置からダウンロードする構成としても良い。
【0046】
[ゲームの概要]
本実施形態におけるアドベンチャーゲームは、NPCが住まうゲーム世界で、プレーヤキャラクタがNPCから情報を得てこの世界のナゾを解くゲームである。
【0047】
図2は、本実施形態におけるゲーム世界の概要を示す図である。ゲーム世界は複数のマップ(MAP01〜MAP09)から構成されており、プレーヤキャラクタ2の他にNPC3が多数住んでいる設定である。ゲーム世界の各地には、プレーヤキャラクタ2の住居4や、NPC3の住居26、プレーヤキャラクタ2が通う学校6、ショッピング街8、公園10等が配置されている。
【0048】
プレーヤキャラクタ2はゲーム世界のマップを移動して、移動の先々でさまざまなイベントをクリアしてナゾ解きを進める。イベントの基本は、プレーヤキャラクタ2がNPC3に声をかけたり、NPC3から声をかけられたりすることで発動する「会話」である。プレーヤが会話内で提示される選択肢を選ぶことで、プレーヤキャラクタ2のゲーム世界での行動やポジション(例えば、能力、職業、他のNPC3に対する印象など)の一部が変化し、選択肢の選び方で異なるエンディングに導かれる。従って、本実施形態のゲームは、所謂マルチエンディング型のアクションゲームに類する。
【0049】
[NPCの自動制御についての原理]
図3は、本実施形態におけるNPCの自動制御の概要を説明するための概念図であって、ゲーム世界を構成する複数のマップの内の一部を示している。
【0050】
NPC3の動作は、コンピュータによって自動制御される。所謂AI制御が行われる。
NPC自動制御では、制御対象とされるNPC3sについて、ゲーム世界に配置された様々なオブジェクト(例えば、プレーヤキャラクタ2、自動車14、キツネ16、ヘビ18、他のNPC3を含む。その他、適宜、建物、立木、モンスターなどを設定可能。)の中から当該NPCの行動対象の候補を選択し、選択した行動対象の候補それぞれに対して当該NPCの抱く注目度(関心度、優先度と見なせる部分もある)を決定する。そして、最も注目度の高い行動対象に応じて、その注目度の大きさに応じた行動(アクション)を決定し実行するように制御される。
【0051】
より具体的には、NPC自動制御では先ず、ゲーム世界に配置されたオブジェクトの中から、制御対象とされるNPC3sの周囲に存在するオブジェクトであって、行動対象の候補として注目するオブジェクト(以下、単に「注目オブジェクト」と言う。)を選択する。
【0052】
本実施形態では、図3に示すように、図3の中央のNPC3sを制御対象オブジェクト(制御対象キャラクタ)とした場合、プレーヤキャラクタ2と制御対象であるNPC3sとがともに存在するマップ20内に存在するオブジェクトを注目オブジェクトとして選択する。注目オブジェクトには、プレーヤキャラクタ2も含まれれば、自動車14やキツネ16、ヘビ18、その他のNPC3も含まれ得る。勿論、ゲーム空間の設定によっては信号機やポスト、灯台、街路樹などのオブジェクトも含まれ得る。また、注目オブジェクトの選択範囲は、マップ単位とせず、処理対象であるNPC3sを中心とした視界範囲のような所定範囲を基準とし、同範囲内に存在するオブジェクトを注目オブジェクトとしても良いのは勿論である。
【0053】
さて、注目オブジェクトを選択したならば、次に選択された注目オブジェクトそれぞれについて、NPC3sから見た各注目オブジェクトに対する関心度・優先度を表す内部パラメータ値として「マップ内注目度」を計算する。
【0054】
マップ内注目度は、注目オブジェクトそれぞれにゲーム設定上の重要度に応じて予め定められている注目度初期値を基準として、ゲーム進行状況に応じて可変する注目オブジェクト自身の状態に依存する「速度補正値」及び「音量補正値」と、制御対象であるNPC3sと注目オブジェクトとの相対的な状態に依存する「距離補正値」「視界補正値」「注目タイプ」との各種補正値を算出・加算することで算出する。
【0055】
具体的には、例えば図4は、速度補正値の概念を説明するための図である。速度補正値は、動く物に注意を向け易い人の特性を表現する。本実施形態では、注目オブジェクトが動き始めの場合と、動作継続中と、停止又は見えない場合との3段階に分け、動き始めの補正値を最も大きく設定し、停止又は見えない場合に「0」とする。そして、動作継続中の補正値をその中間とする。
【0056】
こうした速度補正値の設定によって、例えば図4の例では、キツネ16は、停止状態から動き始めると高い速度補正値が加算されて一時的にNPC3sの注目を受けやすくなるが、動き始めてしまうと中程度の速度補正値しか加算されず、動き始めた時より注目を受けなくなり、止まったり視界外に達すると速度補正値は加算されず、本来の注目度に戻ることになる。
つまり、「動き始めでは思わず注目する。動いたものの正体を知ってしまうと(その頃には当のキツネ16は動作継続状態になっている)興味を失うが、そのものへの本来持っている興味以上は持たなくなる。」と言った、人間の動くものへの注目の仕方を上手くモデル化することができる。
【0057】
図5は、音量補正値の概念を説明するための図である。音量補正値は、大きな音を出すものに対して注目する人の特性を表現する。本実施形態では、注目オブジェクトが基準値以上の音量を発していて、且つ放音開始した場合と、基準値以上の音量で放音継続中と、基準値未満の音量の場合の3段階に分け、放音開始の補正値を最も大きく設定し、基準値未満の音量の場合を「0」とする。そして、放音継続中の補正値をその中間とする。
【0058】
こうした音量補正値の設定によれば、例えば図5に示すように、NPC3sに向けて自動車14からクラクション(ある程度大きな音)が発せられたケースでは、自動車14の注目度の変化を時系列で見ると、クラクションが鳴らされた当初は高い音量補正値が加算されることにより一時的にNPC3sの注目を得る。しかし、鳴りつづけると中程度の音量補正値しか加算されず、クラクションが鳴らされた当初より注目を受けなくなる。そして、そもそも音が聞こえなかったり、クラクションが止まると音量補正値は加算されず、NPC3sが自動車14に対して本来抱いている以上の注目が受けられなくなる。
【0059】
つまり、音量補正値によって、「音が鳴り始めた当初は音源に注目するが、鳴り続けると興味を失い、そもそも音が小さかったり音が止まる頃には音源そのものへの本来持っている興味以上は持たなくなる」と言った、人間の音源への注目の仕方を上手くモデル化することができる。
【0060】
よって、速度補正値及び音量補正値の導入により、制御対象であるNPC3sが他キャラクタに対して抱く注目度を、当該他キャラクタのアクションの実行度合いに応じて変更することができる。
【0061】
図6は、距離補正値の概念を説明するための図である。距離補正値は、注目する対象との距離が行動に与える影響を表現する。本実施形態では、制御対象のNPC3sから注目オブジェクト(図6の例ではヘビ18)との直線距離Lに応じて注目度に負の補正がかかるように設定されている。
【0062】
これによって、例えばヘビ18が遠い位置にいれば、NPC3sがヘビ18に対して本来持っている興味以上には注目されないが、より近くに居ればより高い注目を得るようになる。つまり、「同じものでも距離が近いほど注目しやすく、遠いと注目を失い易い」と言った、人が抱く注目度合いが対象との距離により変化する様子を上手くモデル化することができる。
【0063】
図7は、視界補正値の概念を説明するための図である。視界補正値は、視界前方の対象には注目し易いが、視界の外(つまりは後方)に向かう程注目し難くなる様子を表現する。本実施形態では、注目オブジェクトへの相対方向ベクトルVsが、現在のNPC3sの正面方向(視線方向)を基準として、ズレが±0°〜30°であれば高い視界補正値を加算し、正面方向を基準にしてズレが±76°以上では視界に入らないと判断して視界補正値を「0」とする。そして、その中間範囲(正面方向からのズレ±31°〜75°)では中程度の大きさの視界補正値を加算するように設定する。
【0064】
こうした視界補正値の設定により、図7の例では、見かけ上は月より小さい星であっても正面方向にあれば高い注目を得られる一方で、背面側に有って視界に入らなければ、星より大きく明るい月でも本来月に抱いている興味以上の注目は得られないこととなる。このように、「視界補正値によって視界前方の対象には注目し易いが、視界の外のものには注目し難い」と言った人間の特性を上手くモデル化することができる。
尚、本実施形態では注目オブジェクトへの相対方向ベクトルVsと正面方向ベクトルとのズレに基づいて視界補正値を決定するが、上下角度又は左右角度の何れかのみを採用して演算処理負荷を軽減する構成としても良い。
【0065】
図8は、注目タイプ補正値の概念を説明するための図である。注目タイプ補正値は、制御対象のNPC3sの好みや注目オブジェクトとの相性が注目度に与える影響を表現する値である。本実施形態では、注目オブジェクトとされるオブジェクトには、それぞれゲーム設定上の属性と、アクション傾向とがセットで予め設定されている。
【0066】
アクション傾向とは、制御対象のNPC3sが注目オブジェクトに対してアクションを行う場合に、注目オブジェクトに対して好意的な行動をとるか、敵対的或いは嫌悪する行動をするかを示すパラメータである。本実施形態では前者に相当する「ポジティブ」と後者に相当する「ネガティブ」の何れかが設定される。注目タイプ補正は、注目オブジェクトの属性によってNPC3sがどの程度興味をそそられる、或いは興味を失うかの度合いを表す。
【0067】
例えば図8の例では、写真趣味を有する男性のNPC3sは、同じ写真趣味を有するNPC3gに対しては、「ポジティブ」のアクション傾向で「25」の注目タイプ補正値が適用され、大変高い注目を得る。また、反社会的グループの構成員とおぼしきNPC3yに対しては、アクション傾向「ネガティブ」で、注目タイプ補正「50」が適用され、NPC3sから悪い意味で高い注目を得ることになる。また例えば、プレーヤキャラクタ2の服装をプレーヤが変更可能な設定としたゲーム設定が有るならば、上手くNPC3sの好みの服装にプレーヤキャラクタ2を着替えさせると、注目を得ることができることになる。
このように、注目タイプ補正値によって、制御対象であるNPC3sの好みによる注目度の変化を上手くモデル化することができる。
【0068】
本実施形態では、オブジェクト毎にゲーム設定上の他オブジェクトとの相性や相対的な位置づけ(兄弟、姉妹、親子、上下関係、友人関係、好敵手、恋人関係、赤の他人など)、役柄等に基づいて予め注目タイプ補正値とアクション傾向とが設定される。
【0069】
以上のように、各オブジェクトに所定の注目度初期値を基礎として、上述のような各種補正値でNPC自動制御対象のNPC3sの状態や、当該NPC3sと他オブジェクトとの相対関係に基づいてその時々のゲーム状況がNPC3sの行動に与える影響を適切に反映するように補正することができる。
そして、全ての注目オブジェクトについてマップ内注目度が算出されたならば、最も高いマップ内注目度の注目オブジェクトが、制御対象のNPC3sにとっての行動対象となるオブジェクト、つまりは何らかのアクションを起こす誘因となる誘因オブジェクトの第1の候補として選択される。
【0070】
[マップ外注目度について]
次に、図9に示すように、制御対象のNPC3sの居るマップ20とは別マップに配置されたオブジェクトであって、マップ外注目度(図中、ハッチングが施された吹き出し)が設定されている特定オブジェクトを、制御対象のNPC3sの行動対象となる第2の候補として選択する。
【0071】
マップ外注目度は、制御対象のNPCと同じマップ上への有無に関わらず設定される。本実施形態では、例えば図10に示すように、NPC3sが一日の行動の中で向かうべき場所のオブジェクト(自宅26、職場28、公園10、ショッピング街8:図9参照)に対して、それぞれゲーム世界内時間に応じてマップ外注目度が設定される。例えば、自宅26は、朝8時までと夜9時以降は高い値が設定されているが、それ以外は低い値となっている。同じように、職場28は、朝8時以降から夕方5時までは高い値が設定されているが、それ以外では低い値となっている。公園10は、夕方5時から夜7時までは高い値が設定されているがそれ以外では低い値となっている。そして、ショッピング街8は夜7時から夜9時まで高い値が設定されているが、それ以外では低い値となっている。
【0072】
例えば、制御対象であるNPC3sがゲーム世界時間でその時々に最もマップ外注目度が高いオブジェクトに向けて「移動」するように行動設定すると、図中の丸囲み数字の順にNPC3sはゲーム世界内を移動する。すなわち、一日の始めは自宅26に居て、朝8時に職場28に向けて移動して仕事をし、夕方5時には公園に移動して息抜きし、夜7時にはショッピング街8に移動してお買い物をして、夜9時には自宅26に帰ると言った行動をとらせることができる。
つまり、マップ内の特定オブジェクトにマップ外注目度をゲーム世界時間別に設定し、それらオブジェクトが行動対象に選択された場合に、NPC3sが当該オブジェクトの場所に移動するように制御すると、NPC3sを、人が一日のスケジュールに従って活動場所に移動するように動作制御することが可能になる。
【0073】
[アクションの選択]
さて、最も高いマップ内注目度と、制御対象のNPC3sが建物や場所に対して持っているマップ外注目度を比較して、最も高い注目度を有するオブジェクトを最終的な行動対象のオブジェクトとして選択する。オブジェクトがキャラクタであれば、NPC3sのアクションを誘う誘因キャラクタに相当する。
【0074】
そして、その注目度の大きさとアクション傾向に基づいて行動種類を選択する。具体的には、例えば図11に示すように、行動対象の注目度(マップ内注目度又はマップ外注目度)の大きさに応じて、二つのアクション傾向別に選択される行動が予め定義されており、制御対象のNPC3sが行動対象として選択された注目オブジェクトに対して、どちらのアクション傾向を有し、どれだけの注目度を有しているかによって行動が選択・決定される。
【0075】
より具体的には、アクション傾向「ネガティブ(−)」には、注目度が低い方から順に、「無視」「見る(或いは、見て見ぬふりとか、視線をそらすなど)」「避ける」「逃げる」と言った基礎的なアクション(基礎アクション)の行動が対応づけられている。
【0076】
つまり、図11に示すようにヘビ18が注目オブジェクトであった場合、NPC3sから遠く離れていたり視界外にヘビ18が居る場合には、NPC3sは無視したり単に目線をおくるだけの行動をするように制御される。しかし、急に動き出したり有る程度近づいたりすると注目度が高くなって、避けたり逃げると言った行動をするように制御されることとなる。それはあたかも、NPC3sが一般人のそれと同じくヘビ16をあまり好ましい存在、できれば近づきたくない、近づきすぎると危険な存在と認識して、状況に応じて自発的に行動しているかのように見える。
【0077】
一方、アクション傾向「ポジティブ(+)」では、注目度が低い方から順に「無視」「見る」「近づく」と言った基礎アクション、「上位アクション」が対応づけて設定されている。上位アクションは、「見る」「避ける」など注目オブジェクトの種類に係わらず一様な単純動作とは異なり、注目オブジェクトの種類に応じて具体的なアクションの種類が変化する行動である。
【0078】
例えば、図11に示すように注目対象がキツネ16のような動物の場合、アクション傾向が「ポジティブ(+)」でNPC3sが注目オブジェクトに対して好意的に注目し、さらにその注目度がかなり高いので、「エサをやる」「撫でる」などの人が動物に対して示す好意的な行動が設定されている。また、例えば、注目オブジェクトが人物ならば、「あいさつ」「会話」など人が他人に対して示す好意的な行動が定義されている。
【0079】
こうした注目度とアクション傾向とに応じた行動の選択によれば、例えば、図8の例でNPC3g或いはNPC3yがそれぞれ行動対象に選択されたとすると、NPC3sはNPC3gに対して「ポジティブ」のアクション傾向で注目度を有するので、最初は「見る」事から始まる。視線を行動対象を向けることで、視界正面にNPC3gが入り、視界補正値により更に注目度が高くなってNPC3sはNPC3gに「近づく」。行動対象に近づくことで、距離補正値により注目度は相対的に更に高くなり、ある一線をこえると「上級アクション(この場合例えば「あいさつ」など)」と言った行動をするように制御される。つまり、好みの相手を見つけると、最初は視線を向けることがから始まり、そばに寄って話しかけると言った人間らしい動作を、複雑な条件分岐の設定などせずに簡易な制御で実現することができる。
【0080】
反対にNPC3yに対しては「ネガティブ」のアクション傾向で注目度を有するので、最初は行動対象に選択される程度に注目度が高くなり、NPC3sは視線をNPC3yに向け「見る」動作をする。見ることでNPC3yは視界正面に入るので視界方正値により注目度は高くなり、NPC3sは「避ける」動作をする。もし、視界正面に入ることで上昇した注目度が有る一線を越えると「避ける」を通りこして「逃げる」と言った行動をするように制御される。つまり、近づくのが剣呑な人物に気づいて視線を向け、相手を認識して避けたり、気づいて視線を向けたら直ぐそばにいたために即座に逃げると言った行動をする、と言った人間らしい動作を実現することができる。
【0081】
[機能ブロックの説明]
次に、上述のようなNPC自動制御を実行するための機能構成例について説明する。
図12は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0082】
操作入力部100は、ボタンスイッチや、ジョイスティック、タッチパッド、トラックボール、加速度センサユニット、傾斜センサユニット、などによって実現され、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1の方向入力キー1402やボタンスイッチ1404はこれに該当する。
【0083】
処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500を含む携帯型ゲーム装置1400の各機能部との間でデータの入出力を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、携帯型ゲーム装置1400の動作を制御する。図1では制御ユニット1450がこれに該当する。そして本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0084】
ゲーム演算部210は、ゲームの進行に関する各種処理を実行する。例えば、3DCGを用いる場合には仮想3次元空間に背景や登場人物等の各種オブジェクトを配置してゲーム空間を生成する処理、操作入力に応じてプレーヤキャラクタをゲーム空間内で移動させるなどの動作を実行する処理、プレーヤキャラクタとNPCとの会話或いはNPC同士の会話などのイベントを実行する処理、イベントの結果に応じたストーリの分岐判定処理、仮想カメラの制御処理、などが実行される。
また、本実施形態のゲーム演算部210は、所謂AI制御を実行するNPC自動制御部212を含む。NPC自動制御部212は更に注目オブジェクト選択部214と、マップ内注目度算出部216と、行動対象オブジェクト選択部218と、注目度変更部220と、注目度時限補正制御部222と、アクション選択部224とを含む。
【0085】
注目オブジェクト選択部214は、制御対象とされるNPCの行動対象オブジェクトの候補とされる注目オブジェクトを選択する。本実施形態では、制御対象のNPC3sはプレーヤキャラクタ2が居るマップ上に配置されているNPCから選択されるので、結果的に制御対象であるNPC3sの居るマップ上のオブジェクトを注目オブジェクトとして選択することとなる。
尚、マップが単一であったり、マップ上に多数のオブジェクトが配置されている場合には、制御対象のNPC3sから視認可能範囲及び可聴可能範囲に相当するサーチ領域を設定し、当該サーチ領域内に含まれるオブジェクトを選択し、更にそのオブジェクト内から特定の種類(例えば、人物オブジェクト)を選択することで選りすぐる構成としても良いのは勿論である。
【0086】
マップ内注目度算出部216は、注目オブジェクト選択部214によって選択された注目オブジェクトそれぞれのマップ内注目度を算出する。具体的には、制御対象とされるNPC3sに予め設定されている注目度初期値を参照し、注目オブジェクトの状態(動作状態や放音状態と言った実行中のアクションの度合い、相対位置など)や、当該制御対象のNPCと注目オブジェクトとの属性の相性に関する各種補正値を加算或いは減算してマップ内注目度を算出する。
【0087】
行動対象オブジェクト選択部218は、注目オブジェクト選択部214によって選択された注目オブジェクトと、マップ外注目度を持っている特定オブジェクトとの中から、最も高い注目度(マップ内注目度及びマップ外注目度を含む)のオブジェクトを、当該NPC3sの行動対象オブジェクトとして選択する。
【0088】
注目度変更部220は、イベントの結果などゲーム進行状況に応じて制御対象のNPC3sが他のオブジェクトに対してもつ注目度を変更する。
【0089】
注目度時限補正部222は、行動対象オブジェクトとして選択されたオブジェクトに対して制御対象のNPCが抱く注目度を一時的に低減するように時限補正する処理をする。これによって、人が行動対象になんらかのアクションをすると、アクション前よりも興味が下がる様子を上手くモデル化する。これによって、ある1つのオブジェクトが不自然に頻繁に行動対象とならず、第1のオブジェクトに対して何らかの行動をしたら、当該第1のオブジェクトの注目度を相対的に下げて、その他のオブジェクトが行動対象オブジェクトとして選ばれ易くする。
【0090】
アクション選択部224は、制御対象のNPCが抱く注目度の内、最大注目度とアクション傾向とに基づいて行動種類(アクション種類)を選択する。
【0091】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)、音声合成ICなどのプロセッサや、音声ファイル再生可能なオーディオコーデックによって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0092】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではスピーカ1410がこれに該当する。
【0093】
画像生成部260は、例えば、GPU(Graphics Processing Unit)、デジタルシグナルプロセッサ(DSP)などのプロセッサ、ビデオ信号IC、ビデオコーデック、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(例えば1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。
【0094】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイと言った画像表示装置によって実現できる。図1では第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408がこれに該当する。
【0095】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0096】
通信部370は、通信回線1と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1の無線通信モジュール1412がこれに該当する。
【0097】
記憶部500は、処理部200に携帯型ゲーム装置1400を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。図1では制御ユニット1450が搭載するICメモリやメモリカード1440がこれに該当する。
【0098】
本実施形態では、記憶部500はシステムプログラム501と、ゲームプログラム502とを記憶している。システムプログラム501は、携帯型ゲーム装置1400の基本機能を実現するためのプログラムであり、各機能部をアプリケーションソフト側で呼び出して利用可能な各種ファームウェアを含む。ゲームプログラム502は、処理部200が読み出して実行することによってゲーム演算部210としての機能を実現させるためのアプリケーションソフトである。
【0099】
また、記憶部500には、予め用意されるデータとして、マップデータライブラリ503と、複数のオブジェクト初期設定データ504と、注目タイプ設定データ510と、マップ外注目度設定データ512と、複数のイベント設定データ514とを記憶する。
更にゲームの準備や進行に伴って随時生成や更新が行われるデータとして、複数のオブジェクトステータスデータ526を記憶する。また、ゲームの進行に係る処理を実行するにあたり必要となるデータ(例えば、タイマ値やカウンタ)なども適宜記憶されるものとする。
【0100】
マップデータライブラリ503は、ゲーム世界を構成する複数のマップ(MAP01〜MAP09;図2参照)それぞれを定義する情報を複数含む。例えば、背景やNPCとして配置されるオブジェクトIDや、その配置される位置などを定義する情報を含む。公知のアドベンチャーゲームやRPGにおけるマップデータと同様に実現することができる。
【0101】
オブジェクト初期設定データ504は、ゲーム世界に配置されるオブジェクトの種類毎に、当該オブジェクトをゲーム世界に配置、表示、動作させるための情報を定義する。
例えば図13に示すように、1つのオブジェクト初期設定データ504は、オブジェクトID504aと、当該オブジェクトの種類(例えば、キャラクタ、動物、機械、静物、建造物、アイテムなど)を示す情報を格納するオブジェクト種類504bと、表示モデルデータ504cと、テクスチャデータ504dと、各種動作をさせるためのモーションデータ504eとを含む。
【0102】
また、オブジェクト初期設定データ504は、NPCの自動動作制御に関連して注目度初期値504fと、基礎アクションリストデータ506と、上位アクションリストデータ508とを含む。
【0103】
注目度初期値504fは、当該オブジェクトのゲーム設定上の重要度に応じて設定される注目度の基礎となる値である。本実施形態では、ゲーム設定上の重要度に加えて当該オブジェクトの周囲に対する相対輝度差(周囲に対して特別に輝度の高い部分を含んでいるか否か)による注目の惹きやすさの観点も加味されて値が設定されているものとする。
【0104】
基礎アクションリストデータ506は、行動対象オブジェクトに対する当該オブジェクトの基礎アクションの種類を定義する情報である。
例えば、図13の例では、制御対象であるNPCが行動対象オブジェクトに抱く最大注目度範囲506aを複数設け、各範囲毎にアクション傾向(ネガティブ、ポジティブ)別に基礎アクション種類506bを設定する。
尚、図13の例は、オブジェクトが人間(または人相当の擬人)であることを想定した例であるが、その他の種類である場合には図示された内容に限らない。例えば、オブジェクトが「動物」であれば、「よける」に代えて「警告音(唸り声など)を出す」、「逃げる」に代えて「攻撃する」などを設定することもできる。
【0105】
上位アクションリストデータ508は、基礎アクションとして「上位アクション」が設定されている場合に参照される情報であり、最大注目度範囲508aの範囲別に行動対象オブジェクトのオブジェクト種類毎の具体的な上位アクション種類508bを定義する。
【0106】
例えば、図13の例では、当該オブジェクトは行動対象オブジェクトが「キャラクタ」の場合には、最大注目度範囲508aの大きさに応じて「あいさつ」「世間話」「深い話」と言った具合に、最大注目度範囲508aが高値になるほどより親密な間柄で交わされるレベルの会話をするように行動が設定されている。尚、本実施形態では、会話は1つのイベントとして扱われ、公知のアドベンチャーゲームと同様に、プレーヤキャラクタ2と行動対象オブジェクトとの間で交わされる会話がイベント形式で発動するように制御される。
【0107】
また、行動対象オブジェクトが「本」の場合、最大注目度範囲508aがより高値になるほどその本への興味のレベルが高い時の行動となるように、「眺める」「斜め読み」「熟読」と言った行動が順に定義されている。この場合は、制御対象であるNPCはモーションデータによって、それらしい動作をするように表示モデルが制御される。また、図示はされていないが、行動対象オブジェクトが「動物」の場合、最大注目度範囲508aが高値になるほどその動物への興味のレベルが高い時の行動となるように、「なでる」「エサをやる」「抱きつく」と言った行動が定義されている。この場合の各動作も、制御対象であるNPCはモーションデータによって、それらしい動作をするように表示モデルが制御されるものとする。
つまり、上位アクションリストデータ508によって、行動対象オブジェクトに対して当該オブジェクトがどういった行動をとるか、その行動にまつわる傾向などが定義され、その人となりが定義される。
【0108】
注目タイプ設定データ510は、行動する側のオブジェクトから見た、行動を受ける側のオブジェクト別の注目タイプ補正値とアクション傾向とを定義する。
例えば、図14に示すように、行動をする側の主体オブジェクト510a毎に、行動を受ける側のオブジェクト、つまり注目オブジェクト510d別にアクション傾向510bと注目タイプ補正値510cとを対応づけて格納している。尚、図中のアクション傾向510bでは、「ポジティブ」の設定を「+」、「ネガティブ」の設定を「−」で示している。
【0109】
具体的なところでは、例えばNPC01のプレーヤキャラクタ(PC)に対するアクション傾向510bと注目タイプ補正値510cからすると、NPC01はPCに大変好意的に注目しているが、NPC02に対するアクション傾向510bと注目タイプ補正値510cとからすると、NPC02に対してはあまり良くない印象を持っていると言える。ところが、NPC02のNPC01に対するアクション傾向510bと注目タイプ補正値510cからすると、大変好意的に注目している。つまり、ここではNPC02がNPC01に片思いしている状況が表現されていると言える。
【0110】
マップ外注目度設定データ512は、ゲーム世界の特定のオブジェクトに対して制御されるNPCが現在居るマップ外にあっても、その行動対象の候補として選択する際の注目度を定義する。
【0111】
例えば、図15に示すように、行動をする側の主体オブジェクト512a毎に、ゲーム世界内時間512dに応じた特定オブジェクト512bとそのマップ外注目度512cとを対応づけて格納する。
特定オブジェクト512bには、マップ外注目度512cを有するオブジェクトの内、そのゲーム世界時間512dにおいて当該主体オブジェクト512aから見て最も高いマップ外注目度を有するオブジェクトが設定されている。
【0112】
例えば、図15の例で説明すると、NPC01は、1時〜6時台までは「自宅」に最も高いマップ外注目度が設定されている。もし、マップ内注目度の値よりもこのマップ外注目度が高ければ、NPC01は「自宅」に向かって移動することになる。しかし、7時〜17時台までは「職場A」に、18時台には「商店」にそれぞれ最も高いマップ外注目度が設定されている。従って、同じようにマップ内注目度の値よりもこのマップ外注目度が高い場合には、NPC01は7時〜17時台ならば「職場A」に、18時台であれば「商店」に移動するように動作制御される。つまり、マップ外注目度データ512を適切に設定することで、一日の時間帯別に主体オブジェクト512aのスケジュールを設定することができる。
尚、本実施形態では特定オブジェクト512bとして、特定の建物や場所のオブジェクトを設定しているが、これらに限らず特定の人物や乗物、特定の食べ物などを適宜設定することができる。
【0113】
イベント設定データ514は、ゲームストーリ上展開される各種イベントを定義する。
1つのイベント設定データ514は、例えば、図16に示すように、イベントID514aと、当該イベントが適用される適用オブジェクト514bと、当該イベントが発生し得るマップを示す適用マップ514cと、アクション種類514dと、優先順位514eの情報を含む。
【0114】
適用オブジェクト514bと、適用マップ514c及びアクション種類514dは、いわば当該イベントの発動条件の一部をなし、優先順位514eは同じ発動条件において実行されるべき優先順位を設定している。例えば、MAP07において、NPC03の行動対象としてプレーヤキャラクタ(PC)が選択され、行動種類として「深い話」が選択された場合には、当該イベントが最初に発動されることになる。勿論、当該イベントが実行済みの場合に、同じような条件でイベントが発動されると、優先順位514eが「2」のイベントが選択・発動されることとなる。
【0115】
また、イベント設定データ514は、イベント実行データ516と、注目タイプ補正値変更データ518とを含む。
【0116】
イベント実行データ516は、1つのイベントを実行させるための各種情報を含み、公知のアドベンチャーゲームやRPG等のイベント実行のためのデータと同様に実現される。図16の例は会話イベントを定義する例であり、話者516aと、その発言テキスト516bと、その時画面表示される画像データ516cと、再生される音声データ516dと、プレーヤに提示される選択肢516eなどが、会話進行順に対応づけて格納されている。イベントの内容によっては、単に再生される動画データであったり、オブジェクトに特別な動作をさせるためのモーションデータやそれを撮影する仮想カメラの制御データなどを格納することができる。
【0117】
注目タイプ補正値変更データ518は、当該イベントの結果に応じた注目度の変更を定義する。例えば、イベント結果518a別に、変更対象518bと変更内容518cとを対応づけて格納する。変更対象518bには、注目タイプ設定データ510(図14参照)における主体オブジェクト510aと注目オブジェクト510dとの組み合わせを設定している。尚、イベントによって変更される値は、注目タイプ補正値に限らず、マップ外注目度などその他の注目度や補正値などを適宜設定することができる。
【0118】
オブジェクトステータスデータ526は、オブジェクトそれぞれに設けられ、当該オブジェクトの現在の状態や行動選択や制御に必要な情報が格納される。
例えば、図17に示すように、オブジェクトID526aと、現在の位置座標526bと、速度履歴526cと、加速度履歴526dと、実行中アクション制御データ526eと、を含む。
【0119】
速度履歴526c及び加速度履歴526dは、それぞれ過去所定フレーム前までの速度と加速度の履歴情報を格納する。実行中アクション制御データ526eは、現在実行中の動作制御に関する情報を格納する。例えば、モーションデータに基づく動作であれば現在のモーションフレーム番号を格納することができる。また、会話イベントであれば実行中のイベントIDや会話の進行状況を示すデータなどを格納することができる。アクションに伴い再生される音データの管理情報なども格納することもできる。
【0120】
また、オブジェクトステータスデータ526は、対応するオブジェクトがNPCの場合、思考タイミングタイマ526fを含む。思考タイミングタイマ526fは、NPCの行動対象と行動種類の選択を実行するタイミングを計る。
【0121】
もし、制御サイクル毎(例えばディスプレイのリフレッシュレートと同等又はそれより短いサイクル;1/30秒)に行動対象と行動種類の決定を行うと、不自然に短いタイミングでNPCの動作が切り替わってしまう不具合が生じることがある。しかし、思考タイミングタイマ526fによって例えば30秒を計時する毎に行動対象と行動種類の選択を実行することによって、NPCが人間らしいリズムで行動の選択をするように調整できる。
尚、本実施形態では、思考タイミングタイマ526fによる計時時間を固定としているが、ランダムに可変することによって思考タイミングに揺らぎを与える構成とすると、よりNPCの行動のリズムを人間のそれらしく見せることができて好適である。
【0122】
当該NPCについてのNPC自動制御処理に際して抽出された注目オブジェクトの識別情報は注目オブジェクトID526gとしてリスト登録され、それぞれのマップ内注目度526hと対応づけられる。
そして、NPC自動制御によって、最終的に選択された行動対象オブジェクトの識別情報及び選択された基礎アクションや上位アクションの行動種類は、それぞれ行動対象オブジェクトID526j及び行動種類526kに格納される。
【0123】
また、オブジェクトステータスデータ526は、時限補正対象オブジェクトID526mと対応づけて時限補正開始システム時刻526nを含む。
本実施形態では、NPCが今回のNPC自動制御処理によってある行動対象オブジェクトに対して行動を開始したならば、当該行動対象オブジェクトに対する注目度を一定時間だけ強制的に下げる処理を行う。これを時限補正と言う。時限補正対象オブジェクトID526mは時限補正されるオブジェクトの識別情報を格納し、時限補正開始システム時刻526nには時限補正の開始時刻が格納される。
【0124】
行動対象オブジェクトも、今回のAI制御された時点では最も高い注目度であったが、次のAI制御のタイミング(思考タイミングが到来したのと同義)では時限補正によって強制的に注目度が下げられるので、次のタイミングでは前回注目度が第2位のオブジェクトが今度の行動対象オブジェクトとして選ばれる可能性が生まれる。
これによって、人が強く惹かれた対象に対して何らかの行動(例えば、見る、触る、話しかける等)をすると、有る程度興味を失い、結果次に惹かれる対象に行動を移すといった習性が上手くNPCの動作制御において再現されることとなる。
【0125】
[処理の流れの説明]
次に、本実施形態における処理の流れについて説明する。ここで説明する一連の処理の流れは、処理部200がゲームプログラム502を読み出して実行することによって実現される。尚、ここではゲーム音の再生に関する説明は省略するが、公知のビデオゲームと同様に適当なタイミングで再生処理されるものとする。
【0126】
図18は、主たる処理の流れを説明するためのフローチャートである。処理部200は先ず、マップデータライブラリ503から初期マップのデータを参照し、3次元仮想空間内に各種オブジェクトを配置してゲーム空間を形成し(ステップS2)、そのゲーム空間にプレーヤキャラクタ2やNPC3、仮想カメラを配置する(ステップS4)。
そして、仮想カメラでプレーヤキャラクタ2の様子を撮影するように自動制御を開始する(ステップS6)。
【0127】
ゲームを開始したならば(ステップS8)、処理部200はゲーム画面のリフレッシュレートに応じた所定の制御サイクル(例えば1/30秒)でステップS10〜S260を繰り返し実行する。
【0128】
具体的には、先ずプレーヤキャラクタ2がアクション実行中であるか否かを判定する(ステップS10)。ここで言う「アクション実行中」と言う意味には、移動などプレーヤキャラクタの表示モデル自体が何らかのモーションを実行中、つまり動作中であることは勿論、会話イベントなどのイベントが発動中である状態も含まれる
【0129】
もし、アクション実行中で無く(ステップS10のNO)、且つプレーヤキャラクタを操作する操作入力を検知した場合には(ステップS12のYES)、処理部200は検知した操作入力に応じてプレーヤキャラクタの動作制御を開始する(ステップS14)。移動であったり、攻撃であったり、ものを拾ったり、会話したりである。
【0130】
もし、アクション実行中であれば(ステップS10のYES)、処理部200は今回の制御サイクル分だけ実行中のアクションに関する処理を継続する(ステップS16)。もし実行中と判定されたアクションがイベントであれば、例えば、処理部200は当該イベントのイベント実行データ516に従ってイベントを実行する。そして、今制御サイクルで実行中のイベントが終了する場合(ステップS18のYES)、処理部200は当該イベントの注目タイプ補正値変更データ518(図16参照)に従って注目タイプ補正値を変更する(ステップS20)。
【0131】
次に、処理部200はNPC自動制御処理を実行する(ステップS22)。
図19は、本実施形態におけるNPC自動制御処理の流れを説明するためのフローチャートである。同処理においては、先ずプレーヤキャラクタ2と同じマップ内に存在するNPCを自動制御処理の対象として抽出し(ステップS42)、抽出した全てのNPCに対してループAの処理を実行する(ステップS44〜S256)。
【0132】
具体的にループAでは先ず、処理部200は処理対象であるNPC3のオブジェクトステータスデータ526を参照し(図17参照)、登録されている時限補正対象オブジェクトID526mのうち、時限補正期間が過ぎているものを登録抹消処理する(ステップS46)。すなわち、時限補正対象オブジェクトID526m毎の時限補正開始システム時刻526nと現在のシステム時刻を参照し、開始システム時刻から所定時間経過していると判断されるものを時限補正期限が過ぎていると判断する。時限補正期限は、本実施形態では標準30秒とするが、当該処理対象であるNPCのゲーム世界における特性に応じて適宜決定できる。例えば、気が多く好奇心旺盛なタイプの設定であれば短く設定し(例えば20秒程度)、周りの様子を慎重に観察してから行動するタイプや、のんびり屋のタイプに設定するのであれば時限補正期限を長く(例えば、50秒)設定すると良い。
【0133】
次に処理部200は、処理対象であるNPCが現在アクション実行中でなければ(ステップS48のNO)、当該NPCのオブジェクトステータスデータ526の思考タイミングタイマ526fの値を参照し(図17参照)、所定の思考タイミング間隔値(例えば、20〜30秒程度)が計時されたかを判定する(ステップS50)。つまり、前回行動を起こしてから所定時間経過しているかを判定する。そして、肯定の場合(ステップS50のYES)、処理部200は処理対象であるNPC3sの新たな行動対象と行動種類を選択するために、先ずはマップ内注目度算出処理を実行する(ステップS52)。
【0134】
図20は、本実施形態におけるマップ内注目度算出処理の流れを説明するためのフローチャートである。同処理では先ず、処理部200は処理対象であるNPC3sにとっての注目オブジェクトを抽出する(ステップS60)。抽出されたオブジェクトの識別情報は、当該NPC3sのオブジェクトステータスデータ526の注目オブジェクトID526g(図17参照)に登録される。
【0135】
本実施形態では、プレーヤキャラクタ2と同マップ上のオブジェクトを全て注目オブジェクトとして抽出するが、例えば処理対象のNPC3sからゲーム世界内距離で所定距離(例えば、50m以内)のオブジェクトを注目オブジェクトとして選択する構成としても良い。勿論、その場合の所定距離は当該NPC3sのゲーム世界内での設定に応じて変更可能である。例えば、当該NPC3sのオブジェクト種類が、特定種類(例えば、レーダーを備えて遠く離れた相手を認識し易いロボット、千里眼能力者など)に該当するか、或いは視界を広げるアイテムを所持しているかを判定し、肯定であれば、他のNPCよりもより広い範囲から注目オブジェクトを抽出処理する構成とすることができる。
反対に、処理対象であるNPC3sが、ステータスの異常状態(例えば、目つぶし攻撃を受けて視力が低下している、痺れている、毒や眠気で朦朧としている、など)や、ヒットポイントが基準値以下に低下して行動力が大幅に低下している状態であるかを判定し、肯定の場合に標準より狭い範囲から注目オブジェクトを抽出するように処理する構成とすることもできる。
【0136】
さて、注目オブジェクトを抽出したならば、処理部200は抽出された全ての注目オブジェクトについてループBの処理を実行する(ステップS62〜S202)。
ループBでは、最初に処理対象の注目オブジェクトのオブジェクト初期設定データ504(図13参照)から注目度初期値504fを取得し(ステップS64)、速度補正値算出処理を実行する(ステップS90)。
【0137】
図21に示すように、速度補正値算出処理では最初に、処理対象である注目オブジェクトについてのオブジェクトステータスデータ526の速度履歴526c及び加速度履歴526d(図17参照)を参照して(ステップS92)、当該注目オブジェクトの移動状態を判定する(ステップS94)。
【0138】
もし、当該注目オブジェクトが今制御サイクルで動き始めたと判定される場合には(ステップS94の「動き始め」)、速度補正値を「50」に設定し、速度補正値算出処理を終了する。等速度運動であったり基準値未満の加速度で加速/減速していると判定される場合には(ステップS94の「移動継続中」)、速度補正値を「20」とする。該注目オブジェクトが今制御サイクルで動きを止めたと判定される場合や、処理対象であるNPC3sと当該注目オブジェクとの間に他のオブジェクトが介在して見えなくなったと判定される場合には(ステップS94の「停止又は見えなくなった」)、速度補正値を「0」に設定し、速度補正値算出処理を終了する。
【0139】
速度補正値算出処理を終了したならば、図20のフローチャートに戻って処理部200は次に音量補正値算出処理を実行する(ステップS110)。
音量補正値算出処理では、図22に示すように、処理対象である注目オブジェクトについてのオブジェクトステータスデータ526の実行中アクション制御データ526e(図17参照)を参照して、当該注目オブジェクトについて再生中の音が有るかを判定する(ステップS114)。
【0140】
もし、再生中の音が無ければ(ステップS114の「なし」)、処理部200は音量補正値を「0」に設定して(ステップS120)、音量補正値算出処理を終了する。再生中の音が有ったとしても所定の基準値未満の音量に過ぎず、処理対象であるNPC3sの注意をひけないと判断される場合(ステップS116の「基準値未満」)、同様に音量補正値を「0」に設定する(ステップS120)。
【0141】
もし、再生中の音が有って、且つ音量が所定基準値以上であれば(ステップS116の「基準値以上」)、処理部200は再生されている音の放音状態を判定する(ステップS118)。具体的は、例えば再生中の音データの再生時間を参照する。
その結果、今回の制御サイクルで放音が開始されたと判断できる場合には(ステップS118の「放音開始」)、処理部200は音量補正値を「30」に設定して(ステップS122)、音量補正値算出処理を終了する。一方、再生して既に有る程度の時間が経っていて放音が続いている状態と判断できる場合には(ステップS118の「放音継続中」)、音量補正値を「10」に設定して(ステップS124)、音量補正値算出処理を終了する。
【0142】
音量補正値算出処理を終了したならば、図20のフローチャートに戻って、処理部200は距離補正値算出処理を実行する(ステップS140)。
距離補正値算出処理では、図23に示すように、先ずループAの処理対象であるNPC3sと、ループBの処理対象である注目オブジェクトとの相対距離Lを算出する(ステップS142)。そして、所定の関数に基づいて算出した相対距離Lから距離補正値を算出し(ステップS144)、距離補正値算出処理を終了する。本実施形態では、相対距離L(単位は、例えばゲーム世界内のメートルなど)をそのままマイナスの距離補正値とするが、換算レートは適宜設定可能である。
【0143】
距離補正値算出処理を終了したならば、図20のフローチャートに戻って、次に処理部200は視界補正値算出処理を実行する(ステップS160)。
視界補正値算出処理では、図24に示すように、先ず処理対象であるNPC3sから処理対象である注目オブジェクトへのベクトルVs(図7参照)を求め(ステップS166)、相対方向ベクトルVsと正面方向ベクトルとのなす角度(ズレ)を判定する(ステップS168)。
具体的には、正面方向のベクトルとのズレ量が±0〜30°の範囲ならば(ステップS168の「±0〜30°」)、処理部200は当該注目オブジェクトが処理対象であるNPC3sのほぼ正面方向にあって、注目され易いと判断して、視界補正値を「30」に設定して視界補正値算出処理を終了する。
一方、ズレ量が±31〜75°の範囲ならば(ステップS168の「±31〜75°」)、視界における位置に関してとりたてて注目されるほどでないが、かといって見え難いとまでは言えないと判断して視界補正値を「10」に設定し(ステップS172)、ズレ量が±76〜180°の範囲ならば(ステップS168の「±76〜180°」)、背中側なので視界外にあって見え難く注目され難いと判断して視界補正値を「0」に設定し(ステップS174)、視界補正値算出処理を終了する。
尚、ズレ量が±76〜180°の範囲の場合、視界補正値を「−15」といった具合にマイナス値に設定すると、視界外のものにより気づきにくい状況を作り出すことができる。
【0144】
視界補正処理を終了したならば、図20のフローチャートに戻って、処理部200は次に注目タイプ補正値算出処理を実行する(ステップS180)。
図25に示すように、注目タイプ補正値算出処理では処理部200は注目タイプ設定データ510(図14参照)を参照して、ループAの処理対象であるNPC3sが主体オブジェクトID512aで、ループBの処理対象である注目オブジェクト510dとの組み合わせに設定されている注目タイプ補正値510cを取得する(ステップS182)。
【0145】
次いで、処理部200は、ループAの処理対象であるNPC3sのオブジェクトステータスデータ526を参照し、時限補正対象オブジェクトID526mに処理対象である注目オブジェクトの識別情報が登録されているかを判定する(ステップS184)。
そして、肯定の場合には(ステップS184のYES)、参照した注目タイプ補正値を「−20」変更して(ステップS186)、注目タイプ補正値算出処理を終了する。処理対象の注目オブジェクトが時限補正対象オブジェクトとして登録されていなければ、参照した注目タイプ補正値は変更せずに注目タイプ補正値算出処理を終了する。
【0146】
尚、ステップS186における変更量は固定値に限らず、例えば処理対象であるNPC3sの時限補正開始システム時刻526nと現在のシステム時刻を比較して、その差分に応じた大きさの変更量を算出して適用する構成とし、時限補正開始からの経過時間に応じて変更量が徐々に少なくなるようにしても良い。
【0147】
注目タイプ補正値算出処理を終了したならば、図20のフローチャートに戻って、処理部200はこれまでに算出した各補正値をステップS64で取得した注目初期値に加算して、ループAの処理対象のNPC3sがループBの処理対象である注目オブジェクトに抱くマップ内注目度を算出し(ステップS200)、当該注目オブジェクトに対するループBの処理を終了する(ステップS202)。
尚、算出された、マップ内注目度は、処理対象であるNPC3sのオブジェクトステータスデータ526にて当該注目オブジェトの識別情報を格納する注目オブジェクトID526gと対応づけて格納される(図17のマップ内注目度526h)。
【0148】
ステップS60で抽出された全ての注目オブジェクトに対してループBの処理を実行したならば、処理部200はマップ内注目度算出処理を終了し、図19のフローチャートに戻る。
そして、次にマップ外注目度設定データ512を参照し、ループAの処理対象であるNPC3sに該当する主体オブジェクト512aに対応づけられ、今現在のゲーム世界内時刻に対応するマップ外注目度512cを取得する(ステップS220)。
【0149】
ステップS52及びS220によって、ループAの処理対象であるNPC3sにとって注目の対象となる全てのオブジェクトについて注目度(マップ内注目度又はマップ外注目度)を取得できたことになるので、処理部200はいよいよループAの処理対象であるNPC3sの行動種類の選択をするためにアクション選択処理を実行する(ステップS222)。
【0150】
図26は、本実施形態におけるアクション選択処理の流れを説明するためのフローチャートである。同処理では、処理部200は先ず、ステップS60で抽出された注目オブジェクトの中から最大のマップ内注目度の注目オブジェクトを1つ選択する(ステップS228)。もし、最大のマップ内注目度の注目オブジェクトが複数ある場合には、何れかを抽選で選択すると良い。
【0151】
次に、処理部200は、この選択された注目オブジェクトの最大マップ内注目度と、ステップS220で取得したマップ外注目度(図19参照)とを比較する(ステップS230)。その結果、最大マップ内注目度の方が大きい場合(ステップS230のYES)、処理部200は注目タイプ設定データ510(図14参照)を参照して、処理対象であるNPC3sが最大マップ内注目度の注目オブジェクトに対して持つアクション傾向510bを取得する(ステップS232)。
【0152】
そして、処理部200は、最大マップ内注目度と取得したアクション傾向とに対応する基礎アクション種類を選択する(ステップS234)。
具体的には、処理対象であるNPC3sのオブジェクト初期設定データ504(図13参照)の基礎アクションリストデータ506を参照して、最大マップ内注目度が該当する最大注目度範囲506aと、ステップS232で取得したアクション傾向との組み合わせに対応する基礎アクション種類506bを選択する。
【0153】
選択された基礎アクション種類506bが「上位アクション」でなければ(ステップS236のNO)、処理部200はこの選択された基礎アクション種類を、処理対象であるNPC3sの行動種類として決定し、アクション選択処理を終了する。
【0154】
一方、選択された基礎アクション種類506bとして「上位アクション」が設定されている場合には(ステップS236のYES)、処理部200は更に同オブジェクト初期設定データの上位アクションリストデータ508を参照する。そして、最大マップ内注目度が該当する最大注目度範囲508aと、ステップS232で取得したアクション傾向との組み合わせに対応する上位アクション種類508bを、先に選択された基礎アクション種類506bに代えて選択する(ステップS238)。処理部200は、これを処理対象であるNPC3sの新たに選んだ行動種類として決定し、アクション選択処理を終了する。
【0155】
尚、ステップS230で選択された最大マップ内注目度よりもマップ外注目度が大きい場合には(ステップS230のNO)、処理部200はステップS220で選択されたマップ外注目度に対応する特定オブジェクト512b(図15参照)に向けて移動するように処理対象であるNPC3sの新たな行動種類を「移動」とし、アクション選択処理を終了する。これは、同じマップ内には処理対象であるNPC3sの注目を集めるものが無いので一日のスケジュールに従って行動すべきと判断されたのに相当する。
【0156】
アクション選択処理を終了したならば、図19のフローチャートに戻って、処理部200は次に、処理対象であるNPC3sを選択された種類のアクションをするように動作制御を開始する(ステップS250)。そして、行動が決まったので処理対象であるNPC3sの思考タイミングタイマ526f(図17参照)をリセットし再スタートさせ(ステップS252)、当該NPC3sに対するループAの処理を終了する(ステップS2567)。
【0157】
一方、ステップS48において、処理対象のNPC3sがアクション実行中であると判断された場合には(ステップS48のYES)、実行中のアクションを今回の制御サイクルの分だけ継続して(ステップS254)、当該NPCに対するループAの処理を終了する(ステップS256)。
【0158】
そして、ステップS42で抽出された全てのNPCについてループAの処理を実行したならば、処理部200は、NPC自動制御処理を終了し、図18のフローチャートに戻る。
【0159】
次に処理部200は、所定のゲーム終了条件を満たすか否かを判定する。そして、満たしていなければ(ステップS260のNO)、ステップS10に移行する。もし、ゲーム終了条件を満たしていれば(ステップS260のYES)、所定のエンディング画面を表示するなどのゲーム終了処理を実行して(ステップS262)、一連の処理を終了する。
【0160】
以上、本実施形態によれば、制御対象のNPCが、ゲーム空間に配置された他のオブジェクトそれぞれに抱く注目度を設定し、この注目度の大きさに基づいて制御対象のNPCの行動対象と行動の種類を選択できる。従来のように、複雑な条件分岐をプログラムで記述する必要はない。
【0161】
しかも、算出される注目度は、オブジェクトの輝度や、移動の状態、放音の状態、視界範囲における位置、相対距離、そして制御対象のNPCと注目するオブジェクトとの相性などに応じて変更・補正される。それらの補正によって、注目度はより人間が興味を惹きやすいものほど高められるように変更される。
【0162】
そうして変更・補正された注目度のなかから最大の注目度を有するオブジェクトが行動対象として選択されるので、人間が自身の周囲にあるあらゆるモノのうち、その時々によって最も注目するモノに対して行動するといった、より人間らしい行動をNPCにさせることができる。
【0163】
〔変形例〕
以上、本発明を適用した実施形態について説明したが、本発明を適用可能な実施形態はこの構成に限定されるものではなく、適宜、構成要素の追加・省略・変更を施すことができる。
【0164】
例えば、本発明が適用されるゲームはアドベンチャーゲームに限らず、NPCが登場するゲームであればどのようなジャンルであっても構わない。
【0165】
また、上記実施形態では注目タイプ補正値はイベントの結果に応じて可変される構成としているが、同補正値を可変する条件はイベントの実行に限らない。
例えば、プレーヤキャラクタ2やNPC3の服装や武器、防具、装飾品と言ったアイテムや属性などがプレーヤ操作或いはゲーム進行に応じて変更される設定の場合、それらアイテムや属性の変化に応じて変更するとしても良い。例えば、ゲーム設定上、主人公であるプレーヤキャラクタ2が好む服装に変更されたNPC3の注目タイプ値を加算することができる。更に同時に、アクション傾向を変更することもできる。
【0166】
また、上記実施形態では、基礎アクションリストデータ506及び上位アクションリストデータ508に基づくアクション選択の際、アクション種類は1種類のみ選択する構成としているがこれに限らない。例えば、身体全体としてのアクションと、身体部分としてのアクションの2種類と言った具合に複数のアクション種類を選択する構成としても良い。後者の例では、例えば口の開け方を最大注目度範囲がより高値を含む範囲であるほど、開口面積が大きくなるように複数の開口アクションを設定することができる。この場合、注目の度合いに応じて思わず声が大きくなってしまう様子を実現し、NPCの動作をより自然に、より人間らしく見せることができるようになる。
【0167】
また例えば、上記実施形態におけるゲーム装置を携帯型ゲーム装置1400として例示したが、据え置き型の家庭用ゲーム装置や業務用ゲーム装置は勿論のこと、“ゲーム装置”として販売されている電子機器に限らず、アプリケーションソフトが実行可能な携帯電話機やコンパクトデジタルカメラ、音楽プレーヤ、パソコンと言った電子機器も、ゲームプログラムを実行することでゲーム装置として機能するため、本発明を実現するゲーム装置とすることができる。
【符号の説明】
【0168】
2 プレーヤキャラクタ
3 NPC(ノン・プレイアブル・キャラクタ)
3s (自動制御対象となっている)NPC
20 マップ
100 操作入力部
200 処理部
210 ゲーム演算部
212 NPC自動制御部
214 注目オブジェクト選択部
216 マップ内注目度算出部
218 行動対象オブジェクト選択部
220 注目度変更部
222 注目度時限補正制御部
224 アクション選択部
360 画像表示部
500 記憶部
502 ゲームプログラム
503 マップデータライブラリ
504 オブジェクト初期設定データ
510 注目タイプ設定データ
512 マップ外注目度設定データ
514 イベント設定データ
516 イベント実行データ
518 注目タイプ補正値変更データ
526 オブジェクトステータスデータ
1400 携帯型ゲーム装置
1401 装置本体
1404 ボタンスイッチ
1406 第1液晶ディスプレイ
1407 タッチパネル
1408 第2液晶ディスプレイ
1409 タッチパネル
1450 制御ユニット

【特許請求の範囲】
【請求項1】
コンピュータに、ゲーム空間に配置された複数のキャラクタそれぞれを制御して所定のゲームを実行させるためのプログラムであって、
前記複数のキャラクタそれぞれに注目度を設定する注目度設定手段、
前記注目度に基づいて、前記複数のキャラクタのうちの制御対象キャラクタ以外のキャラクタの中から当該制御対象キャラクタに影響を与える誘因キャラクタを選択する選択手段、
前記誘因キャラクタの注目度に基づいて、前記制御対象キャラクタの動作、移動及び放音のうちの少なくとも1つ(以下「アクション」という。)を制御する制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記選択手段及び前記制御手段が、前記複数のキャラクタのうち、一部又は全部のキャラクタそれぞれを前記制御対象キャラクタとして処理を実行するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記制御手段が、同一の前記制御対象キャラクタに対する新たなアクションの適用間隔を制御するように前記コンピュータを機能させるための請求項1又は2に記載のプログラム。
【請求項4】
前記注目度設定手段が、当該キャラクタの注目度を、当該キャラクタ自身のアクションの実行度合いに応じて変更する自身原因変更手段を有する、ように前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
【請求項5】
前記自身原因変更手段が、当該キャラクタがアクションを開始したことを検出するアクション開始検出手段を有し、当該検出時に、当該キャラクタの注目度の大きさを一時的に大きくするように変更する、ように前記コンピュータを機能させるための請求項4に記載のプログラム。
【請求項6】
前記注目度変更手段が、当該キャラクタの注目度の大きさを、当該キャラクタと前記制御対象キャラクタとの相対位置関係に応じて変更する手段を有する、ように前記コンピュータを機能させるための請求項1〜5の何れか一項に記載のプログラム。
【請求項7】
前記各キャラクタには相性に関する属性が定められており、
前記制御手段が、前記制御対象キャラクタの属性と前記誘因キャラクタの属性との相性に基づいて、前記制御対象キャラクタのアクションを可変に制御するように前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
前記制御手段が、前記制御対象キャラクタの属性と前記誘因キャラクタの属性との相性が不良の場合に前記誘因キャラクタから遠ざかる方向に前記制御対象キャラクタを移動制御し、良好の場合に前記誘因キャラクタに近づく方向に前記制御対象キャラクタを移動制御する移動制御手段を有する、ように前記コンピュータを機能させるための請求項7に記載のプログラム。
【請求項9】
前記移動制御手段が、前記誘因キャラクタの注目度の大きさに応じた速度で前記制御対象キャラクタを移動制御するように前記コンピュータを機能させるための請求項8に記載のプログラム。
【請求項10】
前記制御手段が、前記各キャラクタに定められた視線方向を変化させる視線方向制御を前記アクションの1つとして実行する視線方向制御手段を有し、
更に、前記視線方向制御手段が、前記制御対象キャラクタの属性と前記誘因キャラクタの属性との相性が不良の場合に前記誘因キャラクタから視線をそらすように前記制御対象キャラクタの視線方向を変化させ、良好の場合に前記誘因キャラクタに視線を向けるように前記制御対象キャラクタの視線方向を変化させる、
ように前記コンピュータを機能させるための請求項7〜9の何れか一項に記載のプログラム。
【請求項11】
前記キャラクタ設定手段が、変更した注目度を時間経過に応じて変更前の値に戻す注目度復帰制御手段を有するように前記コンピュータを機能させるための請求項1〜10の何れか一項に記載のプログラム。
【請求項12】
請求項1〜11の何れか一項に記載のプログラムを記憶するコンピュータ読取可能な情報記憶媒体。
【請求項13】
ゲーム空間に配置された複数のキャラクタそれぞれを制御して所定のゲームを実行するゲーム装置であって、
前記複数のキャラクタそれぞれに注目度を設定する注目度設定手段と、
前記注目度に基づいて、前記複数のキャラクタのうちの制御対象キャラクタ以外のキャラクタの中から当該制御対象キャラクタに影響を与える誘因キャラクタを選択する選択手段と、
前記誘因キャラクタの注目度に基づいて、前記制御対象キャラクタのアクションを制御する制御手段と、
を備えたゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate