(58)【調査した分野】(Int.Cl.,DB名)
請求項1〜4のいずれか1項に記載のビデオゲーム装置としてコンピュータを機能させるためのビデオゲーム制御プログラムであって、コンピュータを上記各手段として機能させるためのビデオゲーム制御プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2に記載の上記ゲームプログラムでは、テキストのテクスチャの透明度または音声の音量は、キャラクタとオブジェクトとの距離と関連付けられているが、キャラクタから見たオブジェクトの方向とは関連付けられていない。
【0008】
そのため、ユーザは、キャラクタから見たオブジェクトの方向を把握することができないので、仮想空間におけるキャラクタとオブジェクトとの位置関係を正確に感じることが難しい。従って、上記ゲームプログラムが提供する仮想空間は、臨場感に欠けているという問題がある。
【0009】
本発明は上記に鑑みてなされたものであり、その目的は、臨場感のある仮想空間を生成することができるビデオゲーム装置を提供することにある。
【課題を解決するための手段】
【0010】
上記の課題を解決するために、本発明の一態様に係るビデオゲーム装置は、仮想空間内でプレイヤキャラクタが見えない特定オブジェクトを捜索するビデオゲームを提供するビデオゲーム装置であり、上記プレイヤキャラクタの視線方向と連動する上記仮想空間の視界を表示するビデオゲーム装置であって、上記視線方向を変える入力操作と、上記仮想空間内で上記プレイヤキャラクタを移動させる入力操作とを受け付け、上記入力操作に応じて上記プレイヤキャラクタを制御するプレイヤキャラクタ制御手段と、(i)上記視線方向と、上記プレイヤキャラクタから上記特定オブジェクトに向かう方向との為す角度が所定角度以内であり、かつ、(ii)上記プレイヤキャラクタと上記特定オブジェクトとの距離が第1の所定値以内であるか否かを判定する判定手段と、上記判定手段が、(i)上記視線方向と、上記プレイヤキャラクタから上記特定オブジェクトに向かう方向との為す角度が所定角度以内であり、かつ、(ii)上記プレイヤキャラクタと上記特定オブジェクトとの距離が第1の所定値以内であると判定した場合、上記特定オブジェクトの位置と関連するメッセージを出力する出力手段と、を備えている。
【0011】
また、上記の課題を解決するために、本発明の一態様に係るに係るビデオゲーム装置の制御方法は、仮想空間内でプレイヤキャラクタが見えない特定オブジェクトを捜索するビデオゲームを提供するビデオゲーム装置の制御方法であり、上記プレイヤキャラクタの視線方向と連動する上記仮想空間の視界を表示するビデオゲーム装置の制御方法であって、(i)上記視線方向と、上記プレイヤキャラクタから上記特定オブジェクトに向かう方向との為す角度が所定角度以内であり、かつ、(ii)上記プレイヤキャラクタと上記特定オブジェクトとの距離が第1の所定値以内であるか否かを判定する判定ステップと、(i)上記視線方向と、上記プレイヤキャラクタから上記特定オブジェクトに向かう方向との為す角度が所定角度以内であり、かつ、(ii)上記プレイヤキャラクタと上記特定オブジェクトとの距離が第1の所定値以内である場合、上記特定オブジェクトの位置と関連するメッセージを出力する出力ステップと、を含んでいる。
【0012】
上記の構成によれば、(i)プレイヤキャラクタの視線方向と、プレイヤキャラクタから特定オブジェクトに向かう方向との為す角度が所定角度以内であり、かつ、(ii)プレイヤキャラクタと特定オブジェクトとの距離が第1の所定値以内である場合、特定オブジェクトの位置と関連するメッセージが出力される。一方、上記以外の場合、すなわち、(i)プレイヤキャラクタの視線方向と、プレイヤキャラクタから特定オブジェクトに向かう方向との為す角度が所定角度以内ではないか、または、(ii)プレイヤキャラクタと特定オブジェクトとの距離が第1の所定値以内ではない場合、上記メッセージは出力されない。
【0013】
換言すれば、プレイヤキャラクタが、特定オブジェクトのほうを向いており、さらに、特定オブジェクトに十分近付かなければメッセージが出力されない。このように、メッセージが出力されるか否かが、プレイヤキャラクタの位置および視線方向の両者に依存するので、ユーザは、プレイヤキャラクタとして、実際に仮想空間内で特定オブジェクトを捜索しているかのように感じる。
【0014】
すなわち、上記の構成によれば、臨場感のある仮想空間を提供することができる。
【0015】
また、本発明の他の態様では、上記ビデオゲーム装置において、上記メッセージはテキストであり、上記出力手段は、上記仮想空間において、上記特定オブジェクトの位置に応じた位置に、上記テキストを配置してもよい。
【0016】
上記の構成によれば、前述したメッセージは、特定オブジェクトの位置と関連する位置情報が付加されたテキストである。また、仮想空間内において、テキストに付加された位置情報によって特定される位置に、上記テキストが配置される。
【0017】
そのため、プレイヤキャラクタの視線方向と連動する仮想空間の視界に、上記テキストの位置が含まれる場合、上記テキストが表示される。これにより、ユーザに、表示されたテキストを読ませながら、特定オブジェクトの捜索を続けさせることができる。
【0018】
上記テキストには、例えば、特定オブジェクトが話す言葉が記載されていてもよい。この構成では、ユーザに、テキストを読ませながら、テキストに記載された言葉を頼りに、特定オブジェクトを捜索させることができる。
【0019】
また、本発明の他の態様に係るビデオゲーム装置において、上記出力手段は、上記テキストと上記プレイヤキャラクタとの距離が短くなるほど、上記テキストを拡大してもよい。
【0020】
上記の構成によれば、プレイヤキャラクタが、テキストに設定された位置情報によって特定される位置に近付くほど、テキストが拡大される。
【0021】
表示されているテキストが拡大されたとき、ユーザは、遠近効果による錯覚によって、プレイヤキャラクタがテキストに近付いたように感じる。
【0022】
すなわち、上記の構成によれば、より臨場感のある仮想空間を提供することができる。
【0023】
また、本発明の他の態様に係るビデオゲーム装置において、上記メッセージは音声であり、上記出力手段は、上記音声を複数の音声出力装置に出力する場合、上記特定オブジェクトと上記プレイヤキャラクタとの位置関係に応じて、上記複数の音声出力装置の出力バランスを調整してもよい。
【0024】
上記の構成によれば、前述したメッセージは、ビデオゲームにおいて特定オブジェクトが発する音声である。また、上記音声が複数の音声出力装置から出力される場合、特定オブジェクトとプレイヤキャラクタとの位置関係に応じて、複数の音声出力装置の出力バランスが調整される。
【0025】
そのため、ユーザは、音声の聞こえ方が変わったとき、プレイヤキャラクタと特定オブジェクトとの位置関係が変化したことによって、相対的に特定オブジェクトの位置が移動したように感じる。
【0026】
すなわち、上記の構成によれば、より臨場感のある仮想空間を提供することができる。
【0027】
また、本発明の他の態様に係るビデオゲーム装置は、上記プレイヤキャラクタと上記特定オブジェクトとの距離が第2の所定値以内である場合、上記仮想空間内において上記特定オブジェクトを可視化する特定オブジェクト可視化手段をさらに備えていてもよい。
【0028】
上記の構成によれば、プレイヤキャラクタと特定オブジェクトとの距離が第2の所定値以内であるとき、見えなかった特定オブジェクトが可視化される。
【0029】
そのため、ユーザは、特定オブジェクトが可視化されたとき、プレイヤキャラクタが特定オブジェクトに十分近付いたために、特定オブジェクトを見ることができるようになったように感じる。
【0030】
すなわち、上記の構成によれば、より臨場感のある仮想空間を提供することができる。
【0031】
本発明の各態様に係るビデオゲーム装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記ビデオゲーム装置が備える各手段として動作させることにより上記ビデオゲーム装置をコンピュータにて実現させるビデオゲーム装置のビデオゲーム制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0032】
本発明は、臨場感のある仮想空間を生成することができるという効果を奏する。
【発明を実施するための形態】
【0034】
以下、本発明の実施の形態について、
図1〜
図8を用いて詳細に説明する。
図2は、本実施形態のビデオゲーム装置1の概略構成を示している。なお、本実施形態のビデオゲーム装置1は、操作ボタンおよびディスプレイを一体に備えた携帯型ゲーム装置であるが、これに限定されるものではない。例えば、操作ボタンを有するコントローラおよびディスプレイの各々とは別体である据え置き型のゲーム装置であってもよい。
【0035】
(ビデオゲーム装置1のハードウェア構成)
図2を用いて、ビデオゲーム装置1のハードウェア構成を説明する。
図2は、ビデオゲーム装置1のハードウェア構成を示すブロック図である。
【0036】
図2に示すように、ビデオゲーム装置1では、CPU(Central Processing Unit)11、
GPU(Graphics Processing Unit)12、RAM(Random Access Memory)13、操作スイッチ14、LCD(Liquid Crystal Display)15、LCDドライバ16、スピーカ17、コネクタ18、通信ユニット19、および電源20が、バス21を介して接続されている。また、ビデオゲーム装置1では、ゲームソフトが記録されたROM(Read Only Memory)を内蔵したカートリッジ22がコネクタ18に着脱可能となっている。
【0037】
CPU11は、例えばRAMやフラッシュメモリなどの記憶素子に記憶されたプログラムを実行することにより、ビデオゲーム装置1内の各種構成を統括的に制御するものである。
【0038】
GPU12は、画像データ処理を行なう専用のハードウェアである。なお、GPU12は、CPU11と一体であってもよい。
【0039】
RAM13は、通信に関するデータ、演算に使用するデータ、および演算結果などを一時的に記憶するものであり、いわゆるワーキングメモリである。なお、図には示していないが、RAM13の他にも、ブートストラップ、通信制御データなどの固定データを記憶する読出し専用の半導体メモリであるROMや、各種の設定データなどを記憶する書換え可能な不揮発性メモリ(例えばフラッシュメモリ)などの記憶素子が設けられている。
【0040】
操作スイッチ14は、ビデオゲーム装置1の表面に設けられ、ユーザの操作によりユーザから各種の入力を受け付ける入力デバイスである。
【0041】
操作スイッチ14は、ユーザが操作した情報を操作データに変換してCPU11に送信する。操作スイッチ14の例としては、操作用ボタン、テンキー、キーボード、タッチパネル、ポインティングデバイス(例えばマウス)などが挙げられる。
【0042】
LCD15は、液晶を利用した表示素子であり、LCDドライバ16は、受信した画像データに基づいて、LCD15を駆動するものである。これにより、LCD15の表示画面に画像が表示される。なお、LCD15の代わりに有機EL(Electro-Luminescence)ディスプレイなど、他の表示素子を利用してもよい。
【0043】
スピーカ17(音声出力装置)は、受信した音声データに基づいて、各種情報を外部に音声出力するものである。なお、イヤホン、ヘッドホンなどの外部の音声出力デバイスが接続するための音声出力用コネクタを設けてもよい。
【0044】
コネクタ18は、上述のように、カートリッジ22を着脱可能に取り付けるためのものである。コネクタ18およびカートリッジ22は、それぞれ、カートリッジ22内のROMに記録されたデータにアクセスするためのI/F(インタフェース)を備えている。
【0045】
通信ユニット19は、外部装置と近距離無線通信を行なうためのものである。近距離無線通信の例としては、IrDAなどの赤外線通信や、無線LAN、Bluetooth(登録商標)などの電波通信が挙げられる。
【0046】
電源20は、ビデオゲーム装置1内の各種構成に適当な電力を供給するものである。電源20は、例えば、リチウムイオン電池などの充電可能な2次電池、電源回路などによって構成される。
【0047】
上記構成のビデオゲーム装置1において、カートリッジ22をコネクタ18に取り付け、カートリッジ22のROMに記録されたゲーム制御プログラムをCPU11が実行することにより、ゲームが開始される。以下、本実施形態の一例として実行されるゲームについて説明する。なお、CPU11は、記憶部30(後述)に記憶されているゲーム制御プログラムを実行することもできる。また、CPU11は、ゲーム制御プログラムを保持する外部サーバ(不図示)と通信ユニット19を介して接続し、外部サーバからゲーム制御プログラムをダウンロードして、記憶部30に記憶することができる。
【0048】
(ゲームの概要)
ビデオゲーム装置1は、複数のゲームのプログラムを実行することができる。上記複数のゲームの1つは、ユーザの操作するキャラクタを表すオブジェクトであるプレイヤキャラクタオブジェクトch1(
図4〜
図6参照)が、隠された他のキャラクタを表すオブジェクトである隠れキャラクタオブジェクトch2(
図4〜
図6参照)を捜索するゲームである。以下では、このゲームの制御プログラムを実行しているビデオゲーム装置1の動作に関して説明する。なお、以下の説明では、プレイヤキャラクタオブジェクトch1および隠れキャラクタオブジェクトch2を、それぞれ、プレイヤキャラクタch1および隠れキャラクタch2(特定オブジェクト)と略称する。
【0049】
図4〜
図6に示すように、ビデオゲーム装置1は、仮想空間内に設定された所定の視点で見た視界を表す表示画像33を生成する。仮想空間内には、真っ白な濃霧のようなオブジェクトである濃霧オブジェクトxcが充満しており、仮想空間はほとんど見通しが効かない。
【0050】
ユーザは、表示画像33を見ながら、このような仮想空間におけるプレイヤキャラクタch1の位置を移動させたり、視線方向を変えたりすることによって、隠れキャラクタch2を捜索する。プレイヤキャラクタch1の視線方向は、上記視界と連動しており、プレイヤキャラクタch1の視線方向が変化したとき、表示画像33に表示される仮想空間の領域が変化する。
【0051】
なお、
図4〜
図6では、プレイヤキャラクタch1および隠れキャラクタch2はどちらも人物を表すオブジェクトである。しかしながら、プレイヤキャラクタch1および隠れキャラクタch2は、人物以外のオブジェクトであってもよい。
【0052】
また、仮想空間は2次元空間であってもよいし、3次元空間であってもよい。仮想空間が2次元空間である構成では、プレイヤキャラクタch1および隠れキャラクタch2は2次元のオブジェクトである。
【0053】
図1は、ビデオゲーム装置1の構成を機能単位で示している。
図1に示すビデオゲーム装置1は、
図1に示すように、制御部10、記憶部30、入力部50、表示部70、および音声出力部90(音声出力装置)を備える構成と考えることができる。ここで、
図1に示す制御部10が、
図2に示すCPU11およびGPU12等のプロセッサに対応し、
図1に示す記憶部30が、
図2に示すRAM13等の記憶素子に対応し、
図1に示す入力部50が、
図2に示す操作スイッチ14等の入力デバイスに対応し、
図1に示す表示部70が、
図2に示すLCD15およびLCDドライバ16等の表示素子に対応する。また、
図1に示す音声出力部90は、
図2に示すスピーカ17等の音声出力デバイスに対応する。
【0054】
制御部10は、ビデオゲーム装置1の各部を統合的に制御する。また、仮想空間に配置するオブジェクトを決定する配置オブジェクト決定処理(後述)を実行する。なお、制御部10の詳細を後述する。
【0055】
記憶部30には、プレイヤキャラクタデータ310、仮想空間データ320、隠れキャラクタデータ330、音声メッセージデータ340、テキストメッセージデータ350、および会話データ360が記憶されている。
【0056】
プレイヤキャラクタデータ310は、(i)プレイヤキャラクタch1の位置情報を示すデータ、(ii)プレイヤキャラクタch1の視線方向情報を示すデータ、および、(iii)プレイヤキャラクタch1の視界範囲v(
図3参照)に関する情報である視界範囲情報を示すデータを含む。プレイヤキャラクタデータ310には、プレイヤキャラクタch1に関するその他の情報(例えば、プレイヤキャラクタch1の姿かたちを示す情報)を示すデータがさらに含まれていてもよい。
【0057】
仮想空間データ320は、仮想空間の地形や状態(例えば、靄で覆われている)の情報を示すデータである。
【0058】
隠れキャラクタデータ330は、(i)隠れキャラクタch2の位置情報を示すデータ、および(ii)隠れキャラクタch2がプレイヤキャラクタch1との会話を受け付けるか否かに関する情報である会話受付可否情報を示すデータを含む。隠れキャラクタデータ330には、隠れキャラクタch2に関するその他の情報(例えば、隠れキャラクタch1の姿かたちを示す情報)を示すデータがさらに含まれていてもよい。
【0059】
音声メッセージデータ340は、隠れキャラクタch2が発する、音声によるメッセージ(音声メッセージ)のデータを含む。音声メッセージデータ340は、ゲームに登場する他のキャラクタが発する音声メッセージのデータをさらに含んでいてもよい。
【0060】
テキストメッセージデータ350は、隠れキャラクタch2が発する、テキストによるメッセージ(テキストメッセージ)のデータである。テキストメッセージデータ350は、ゲームに登場する他のキャラクタが発するテキストメッセージのデータをさらに含んでいてもよい。
【0061】
また、テキストメッセージデータ350には、テキストメッセージオブジェクトme(後述。
図4参照)の位置情報、および、テキストメッセージオブジェクトmeを構成する文字の大きさ、色、およびフォントを示す情報も含まれる。なお、テキストメッセージオブジェクトmeを構成する文字の大きさは、そのテキストメッセージmeの種類ごとに異なっていてもよい。この構成では、テキストメッセージmeの種類は、対応するテキストメッセージの重要度に応じて設定されてもよい。
【0062】
会話データ360は、プレイヤキャラクタch1と隠れキャラクタch2との会話に関するデータである。具体的には、会話データ360には、会話フレームfm(
図5参照)のデータと、会話フレームfm内に表示する会話テキストのデータとが含まれる。会話テキストは、プレイヤキャラクタch1と隠れキャラクタch2との会話を表すテキストである。
【0063】
入力部50は、ユーザによる入力操作を受け付け、その入力操作の内容を認識する。そして、認識した入力操作の内容を示す情報(入力操作情報)を制御部10に送信する。
【0064】
表示部70は、前述したように、LCD15およびLCDドライバ16等の表示素子を備えている。表示部70は、具体的には液晶表示装置である。表示部70は、少なくとも1つの表示画面を備えている。
【0065】
(制御部10の詳細)
図1を用いて、制御部10の詳細な構成を説明する。
図1に示すように、制御部10は、プレイヤキャラクタ制御部101(プレイヤキャラクタ制御手段)、判定部102(判定手段)、隠れキャラクタ制御部103(特定オブジェクト可視化手段)、音声メッセージ制御部104(出力手段)、テキストメッセージ制御部105、仮想空間生成部106(出力手段)、および表示画像生成部107を含んでいる。以下で、制御部10が備えた各ブロックの動作を説明する。
【0066】
(1.プレイヤキャラクタ制御部101)
プレイヤキャラクタ制御部101は、記憶部30から、プレイヤキャラクタデータ310を取得する。また、プレイヤキャラクタ制御部101は、入力部50から入力された入力操作情報に基づいて、プレイヤキャラクタch1の動作(例えば、歩く、走る、視線方向を変える、攻撃する、逃避する、防御する)を制御する。
【0067】
また、プレイヤキャラクタ制御部101は、所定時間ごとに、記憶部30に記憶されたプレイヤキャラクタデータ310を更新するとともに、仮想空間生成部106に対して、更新後のプレイヤキャラクタデータ310を出力する。
【0068】
例えば、プレイヤキャラクタ制御部101は、仮想空間において、プレイヤキャラクタch1を、位置Xから位置Yへ移動させた場合、プレイヤキャラクタデータ310に含まれるプレイヤキャラクタch1の位置情報を、位置Yを示す情報に更新する。
【0069】
また、プレイヤキャラクタ制御部101は、仮想空間において、プレイヤキャラクタch1の視線方向を変更した場合、プレイヤキャラクタデータ310に含まれるプレイヤキャラクタch1の視線方向情報を更新する。
【0070】
(2.判定部102)
判定部102は、記憶部30から、プレイヤキャラクタデータ310および隠れキャラクタデータ330を取得する。そして、プレイヤキャラクタch1の位置情報および視界範囲情報と、隠れキャラクタch2の位置情報とを用いて、隠れキャラクタch2の位置は、プレイヤキャラクタch1の視界範囲vに含まれるか否かを判定する(視界範囲判定)。
【0071】
ここで、視界範囲vは、プレイヤキャラクタch1の視線方向と、プレイヤキャラクタch1から隠れキャラクタch2に向かう方向との為す角度が所定角度以下である範囲を含む。しかしながら、視界範囲vは、プレイヤキャラクタch1の視線方向または移動方向を含む任意の範囲であってもよい。
【0072】
また、判定部102は、上記視界範囲判定において、隠れキャラクタch2の位置が、プレイヤキャラクタch1の視界範囲vに含まれると判定した場合、プレイヤキャラクタch1の位置と隠れキャラクタch2の位置との間の距離rが第1の所定値a1以下であるか否かを判定する(第1の距離判定)。
【0073】
また、判定部102は、上記第1の距離判定において、距離rが第1の所定値a1以下であると判定した場合、距離rが第2の所定値a2(<a1)以下であるか否かをさらに判定する(第2の距離判定)。
【0074】
さらに、判定部102は、上記第2の距離判定において、距離rが第2の所定値a2以下である場合、距離rが第3の所定値a3(<a2)以下であるか否かをさらに判定する(第3の距離判定)。
【0075】
判定部102は、視界範囲判定、第1の距離判定、第2の距離判定、および第3の距離判定における判定結果を隠れキャラクタ制御部103に出力する。
【0076】
図3は、上述した視界範囲v、第1の所定値a1、第2の所定値a2、および第3の所定値a3の一例を示す図である。
【0077】
図3において、隠れキャラクタch2は、プレイヤキャラクタch1の視界範囲vに含まれている。
【0078】
また、
図3では、プレイヤキャラクタch1と隠れキャラクタch2との間の距離rは、第1の所定値a1以下である。しかしながら、距離rは、第2の所定値a2(および第3の所定値a3)よりも大きい。すなわち、
図3において、距離rは、第1の所定値a1以下であり、かつ、第2の所定値a2よりも大きい。
【0079】
(3.隠れキャラクタ制御部103)
隠れキャラクタ制御部103は、所定の思考ルーチンに従い、隠れキャラクタch2の動作(例えば、歩く、走る、立ち止まる、メッセージを発する)を制御する。すなわち、隠れキャラクタch2の動作は、隠れキャラクタ制御部103によって、いわゆる「AI制御」される。例えば、隠れキャラクタ制御部103は、隠れキャラクタch2を、プレイヤキャラクタch1から離れる方向に移動させてもよい。この構成では、ユーザは、プレイヤキャラクタch1を操作して、隠れキャラクタch2を単に捜索するだけでなく、逃げてゆく隠れキャラクタch2を追いかけなければならない。そのため、ゲームの目的を達成することがより困難になるので、ユーザは、より長時間、ゲームを楽しむことができる。
【0080】
また、隠れキャラクタ制御部103は、プレイヤキャラクタch1が隠れキャラクタch2から逃げている(すなわち、隠れキャラクタch2から離れる方向に走っている)とき、プレイヤキャラクタch1を追いかけるように、隠れキャラクタch2を移動させてもよい。
【0081】
さらに、隠れキャラクタ制御部103は、仮想空間における隠れキャラクタch2の大きさを制御してもよい。例えば、隠れキャラクタ制御部103は、仮想空間における隠れキャラクタch2とプレイヤキャラクタch1との距離が近くなるほど、隠れキャラクタch2を大きくしてもよい。
【0082】
隠れキャラクタ制御部103は、所定時間ごとに、記憶部30に記憶された隠れキャラクタデータ330を更新する。例えば、隠れキャラクタ制御部103は、仮想空間において、隠れキャラクタch2を、位置Xから位置Yへ移動させた場合、隠れキャラクタデータ330に含まれる隠れキャラクタch2の位置情報を、位置Yを示す情報に更新する。
【0083】
隠れキャラクタ制御部103は、判定部102から入力される各判定結果を用いて、以下のように動作する。
【0084】
(3−1.視界範囲判定の判定結果に基づく動作)
隠れキャラクタ制御部103は、前述した視界範囲判定の判定結果として、仮想空間における隠れキャラクタch2の位置が、プレイヤキャラクタch1の視界範囲vに含まれないという判定結果が入力された場合、隠れキャラクタデータ330およびテキストメッセージデータ350を出力することを停止する(または出力しない)ように、隠れキャラクタ制御部103およびテキストメッセージ制御部105に指示する。
【0085】
(3−2.第1の距離判定の判定結果に基づく動作)
隠れキャラクタ制御部103は、前述した第1の距離判定の判定結果として、距離rが第1の所定値a1以下であるという判定結果が判定部102から入力された場合、テキストメッセージ制御部105に対して、テキストメッセージデータ350を仮想空間生成部106に出力するように指示するとともに、隠れキャラクタch2の位置情報を通知する。加えて、隠れキャラクタ制御部103は、音声メッセージ制御部104に対して、音声メッセージデータ340を仮想空間生成部106に出力するように指示するとともに、隠れキャラクタch2の位置情報を通知してもよい。
【0086】
一方、隠れキャラクタ制御部103は、前述した第1の距離判定の判定結果として、距離rが第1の所定値a1以下ではないという判定結果が判定部102から入力された場合、テキストメッセージ制御部105に対して、テキストメッセージデータ350を出力することを停止する(または出力しない)ように指示する。あるいは、上記の場合、隠れキャラクタ制御部103は、テキストメッセージ制御部105に対して、テキストメッセージデータ350を出力する頻度を減少させるように指示してもよい。
【0087】
なお、隠れキャラクタ制御部103がテキストメッセージ制御部105に出力させるテキストメッセージデータ350は、ゲームの状況に応じて異なっていてもよい。例えば、隠れキャラクタ制御部103は、プレイヤキャラクタch1が隠れキャラクタch2に近付いてきており、かつ、
図3に半径a1の円で示す領域に入ったとき、「止まりなさい」というメッセージに対応するテキストメッセージデータ350をテキストメッセージ制御部105に出力させる。一方、プレイヤキャラクタch1が隠れキャラクタch2から逃げており、かつ、
図3に半径a1の円で示す領域から出たとき、「待て!」というメッセージに対応するテキストメッセージデータ350をテキストメッセージ制御部105に出力させる。
【0088】
(3−3.第2の距離判定の判定結果に基づく動作)
隠れキャラクタ制御部103は、前述した第2の距離判定の判定結果として、距離rが第2の所定値a2以下であるという判定結果が判定部102から入力された場合、隠れキャラクタデータ330を仮想空間生成部106に出力する。
【0089】
後述するように、仮想空間生成部106は、隠れキャラクタ制御部103から隠れキャラクタデータ330が入力された場合、隠れキャラクタch2が配置された仮想空間のデータを生成する。
【0090】
表示画像生成部107は、仮想空間生成部106から入力された仮想空間のデータを用いて、仮想空間内に設定された所定の視点で見た視界を示す表示画像33を生成し、生成した表示画像33を表示部70に表示する。
【0091】
図4は、隠れキャラクタch2が表示された表示画像33の例である。
図4に示す表示画像33は、距離rが第2の所定値a2以下である場合に表示される。
【0092】
なお、前述のように、表示画像33には、仮想空間内に設定された所定の視点で見た視界に含まれるオブジェクトのみが表示される。そのため、隠れキャラクタ制御部103が仮想空間生成部106に隠れキャラクタデータ330を出力した場合であっても、隠れキャラクタch2が上記視界に含まれない場合には、表示画像33には隠れキャラクタch2が表示されない。この場合、隠れキャラクタch2は、上記視界の外側に存在する。
【0093】
その他のオブジェクト(例えば、後述するテキストメッセージオブジェクトme)についても、隠れキャラクタch2と同様に、仮想空間に配置されている場合であっても、上記視界に含まれない場合には、表示画像33に表示されない。
【0094】
(3−4.第3の距離判定の判定結果に基づく動作)
隠れキャラクタ制御部103は、前述した第3の距離判定の判定結果として、距離rが第3の所定値a3以下であるという判定結果が判定部102から入力された場合、隠れキャラクタデータ330に含まれる会話受付可否情報を、プレイヤキャラクタch1との会話を受け付ける状態(会話受付状態)を示す情報に設定する。
【0095】
ユーザが、会話受付状態にある隠れキャラクタch2に対して、プレイヤキャラクタch1を話しかけさせる操作を行ったとき、隠れキャラクタ制御部103は、記憶部30から会話データ360を取得して、取得した会話データ360を表示画像生成部107に出力する。
【0096】
後述するように、表示画像生成部107は、隠れキャラクタ制御部103から会話データ360が入力された場合、会話データ360を用いて、会話フレームfmの画像データを生成し、生成した画像データを表示画像33内の所定の位置に表示する。
【0097】
図5は、隠れキャラクタch2および会話フレームfmが表示された表示画像33の例である。会話フレームfmには、プレイヤキャラクタch1と隠れキャラクタch2との会話が、テキストで表示されている。
図5に示す表示画像33は、距離rが第3の所定値a3以下である場合に表示される。
【0098】
(4.音声メッセージ制御部104)
音声メッセージ制御部104は、隠れキャラクタ制御部103から、音声メッセージデータ340を仮想空間生成部106に出力するように指示されたとき、記憶部30から、上記メッセージに対応する音声メッセージデータ340を取得する。そして、取得した音声メッセージデータ340を音声出力部90に出力する。
【0099】
音声出力部90が、ユーザの左右に位置する複数のスピーカで構成されている場合、音声メッセージ制御部104は、プレイヤキャラクタch1と隠れキャラクタch2との相対的な位置関係に応じて、複数のスピーカから出力する音声メッセージの音量バランス(出力バランス。複数のスピーカからの全出力が一定である場合における各スピーカの出力の比率)を調整してもよい。
【0100】
例えば、ユーザの視点から見て、隠れキャラクタch2が、プレイヤキャラクタch1の位置の左側に位置している場合、音声メッセージ制御部104は、音声出力部90の出力の大きさ(複数のスピーカから出力される音声の音量の合計)は変更せずに、ユーザの左に位置するスピーカから出力する音声メッセージの音量を、ユーザの右に位置するスピーカから出力する音声メッセージの音量よりも大きくする。これにより、ユーザは、プレイヤキャラクタch1の左側に隠れキャラクタch2がいると認識する。すなわち、聴覚の面で、より優れた臨場感のある仮想空間を提供することができる。
【0101】
(5.テキストメッセージ制御部105)
テキストメッセージ制御部105は、隠れキャラクタ制御部103から、テキストメッセージデータ350を仮想空間生成部106に出力するように指示されたとき、記憶部30から、上記テキストメッセージのテキストメッセージデータ350を取得する。
【0102】
また、テキストメッセージ制御部105は、仮想空間における隠れキャラクタch2の位置の近傍において、隠れキャラクタch2が発するテキストメッセージに対応するオブジェクトであるテキストメッセージオブジェクトme(
図5参照。以下、単にテキストメッセージmeと呼ぶ)の位置を決定する。具体的には、テキストメッセージ制御部105は、テキストメッセージmeの位置を、隠れキャラクタch2の位置と関連する位置に決定する。
【0103】
例えば、テキストメッセージ制御部105は、テキストメッセージmeの位置を、隠れキャラクタch2の位置から所定の方向に所定の距離だけ離れた位置に決定してもよい。
【0104】
または、テキストメッセージ制御部105は、テキストメッセージmeの左右中心が、隠れキャラクタch2の位置と一致するように、テキストメッセージmeの位置を決定してもよい。あるいは、テキストメッセージ制御部105は、テキストメッセージmeの左右どちらかの端(テキストメッセージmeを構成する文字列の最初または最後の文字の位置)を、隠れキャラクタch2の位置と一致させてもよい。
【0105】
あるいは、テキストメッセージ制御部105は、テキストメッセージmeの種類に応じて、テキストメッセージmeの位置を決定してもよい。例えば、テキストメッセージ制御部105は、プレイヤキャラクタch1が隠れキャラクタch2から逃げているときに出力する「待て!」というテキストメッセージmeの位置を、プレイヤキャラクタch1の背後(あるいは画面下)に決定する。一方、プレイヤキャラクタch1が隠れキャラクタch2に近付いているときに出力する「止まりなさい」というテキストメッセージmeの位置を、プレイヤキャラクタch1の正面の手前に決定する。
【0106】
テキストメッセージ制御部105は、記憶部30に記憶されたテキストメッセージデータ350に、テキストメッセージmeの位置情報を追加する。そして、テキストメッセージmeの位置情報が追加されたテキストメッセージデータ350を仮想空間生成部106に出力する。
【0107】
後述するように、仮想空間生成部106は、テキストメッセージ制御部105から、テキストメッセージデータ350、および、テキストメッセージmeの位置情報が入力された場合、テキストメッセージmeが配置された仮想空間のデータを生成する。
【0108】
表示画像生成部107は、仮想空間生成部106によって生成された仮想空間のデータを用いて、表示画像33を生成する。
図4に示す表示画像33では、テキストメッセージmeは、隠れキャラクタch2の左横に表示されている。
【0109】
図6は、テキストメッセージmeが表示された表示画像33の他の例である。
図6に示す表示画像33は、距離rが第1の所定値a1以下である場合に表示される。
【0110】
なお、テキストメッセージ制御部105は、プレイヤキャラクタch1の位置とテキストメッセージmeの位置との間の距離が短くなるほど、テキストメッセージmeを拡大してもよい。
【0111】
上記の構成では、ユーザは、テキストメッセージmeが拡大されたとき、プレイヤキャラクタch1が隠れキャラクタch2に近付いていると認識する。すなわち、奥行効果によって、視覚の面で、より優れた臨場感のある仮想空間を提供することができる。
【0112】
テキストメッセージ制御部105は、仮想空間において、テキストメッセージmeを移動させてもよい。また、テキストメッセージ制御部105は、複数のテキストメッセージmeに関するテキストメッセージデータ350を仮想空間生成部106に出力してもよい。
【0113】
上記の構成では、例えば、隠れキャラクタch2の周囲の四方八方に、複数のテキストメッセージmeが表示され、これらのテキストメッセージmeが隠れキャラクタch2から離れる方向へ移動するという構成が実現される。
【0114】
(6.仮想空間生成部106)
仮想空間生成部106は、記憶部30から、仮想空間データ320を取得する。また、(i)プレイヤキャラクタ制御部101から入力されるプレイヤキャラクタデータ310、(ii)隠れキャラクタ制御部103から入力される隠れキャラクタデータ330、(iii)テキストメッセージ制御部105から入力されるテキストメッセージデータ350、および(iv)その他のオブジェクト(例えば、前述した濃霧オブジェクトxc)のデータを用いて、プレイヤキャラクタch1、隠れキャラクタch2、テキストメッセージme、およびその他のオブジェクトが配置された仮想空間のデータを生成する。
【0115】
具体的には、仮想空間生成部106は、まず、仮想空間データ320を用いて、仮想空間の地形や状態を設定する。次に、仮想空間生成部106は、記憶部30から、プレイヤキャラクタデータ310から、プレイヤキャラクタch1の位置、視線の方向、姿かたち、および状態を示す情報を抽出する。そして、仮想空間生成部106は、上記視線の方向、上記姿かたち、および上記状態を有するプレイヤキャラクタch1を、仮想空間における上記位置に配置する。同様に、仮想空間生成部106は、隠れキャラクタch2を仮想空間内に配置する。
【0116】
また、仮想空間生成部106は、テキストメッセージデータ350から、テキストメッセージmeの位置情報、および、テキストメッセージmeを構成する文字の大きさ、色、およびフォントを示す情報を抽出する。そして、仮想空間生成部106は、上記文字の大きさ、色、およびフォントを有するテキストメッセージmeを上記位置に配置する。
【0117】
仮想空間生成部106は、このようにして各種のオブジェクトが配置された仮想空間のデータを、表示画像生成部107に出力する。
【0118】
(7.表示画像生成部107)
表示画像生成部107は、仮想空間生成部106から入力された仮想空間のデータを用いて、表示画像33を生成する。具体的には、表示画像生成部107は、仮想空間内に設定された所定の視点で見た視界を表す表示画像33を生成する。表示画像生成部107は、生成した表示画像33を表示部70に出力する。
【0119】
ここで、所定の視点は、プレイヤキャラクタch1の視点であってもよいし、プレイヤキャラクタch1から所定の方向に所定の距離だけ離れた位置する視点であってもよい。あるいは、所定の視点は、仮想空間の上空から地面を俯瞰的に見る視点であってもよい。
【0120】
上記の構成では、表示画像生成部107は、記憶部30から、プレイヤキャラクタデータ310を取得し、取得したプレイヤキャラクタデータ310から、プレイヤキャラクタch1の位置情報、および、プレイヤキャラクタch1の視線方向情報を抽出する。そして、抽出した情報を用いて、所定の視点を決定する。
【0121】
(配置オブジェクト決定処理の流れ)
図7および
図8を用いて、制御部10によって実行される配置オブジェクト決定処理の流れを説明する。
図7および
図8は、配置オブジェクト決定処理の流れを示すフローチャートである。配置オブジェクト決定処理において、制御部10は、仮想空間に配置するオブジェクトを決定する。
【0122】
図7に示すように、配置オブジェクト決定処理では、まず、判定部102が、記憶部30から、プレイヤキャラクタch1および隠れキャラクタch2の各位置情報を取得する(S1)。
【0123】
次に、判定部102は、仮想空間における隠れキャラクタch2の位置が、プレイヤキャラクタch1の視界範囲v(
図3参照)に含まれるか否かを判定する(S2)。
【0124】
仮想空間における隠れキャラクタch2の位置は、プレイヤキャラクタch1の視界範囲vに含まれないと判定部102が判定した場合(S2でNo)、隠れキャラクタ制御部103は、テキストメッセージデータ350を出力することを停止する(あるいは、出力しない)ように、テキストメッセージ制御部105に指示する。テキストメッセージ制御部105は、隠れキャラクタ制御部103の指示に従って、テキストメッセージデータ350を仮想空間生成部106に出力することを停止する(あるいは出力しない)。
【0125】
仮想空間生成部106は、テキストメッセージ制御部105からテキストメッセージデータ350が入力されないので、仮想空間内にテキストメッセージmeを配置しない、または、配置されているテキストメッセージmeを除去する(S3)。以上で、配置オブジェクト決定処理は終了する。
【0126】
S2において、仮想空間における隠れキャラクタch2の位置は、プレイヤキャラクタch1の視界範囲vに含まれると判定部102が判定した場合(S2でYes)、判定部102は、さらに、プレイヤキャラクタch1と隠れキャラクタch2との距離rは第1の所定値a1以下であるか否かを判定する(S4、判定ステップ)。
【0127】
距離rは第1の所定値a1以下ではないと判定部102が判定した場合(S4でNo)、隠れキャラクタ制御部103は、テキストメッセージデータ350を仮想空間生成部106に出力することを停止する(あるいは、出力しない)ように、テキストメッセージ制御部105に指示する。その結果、前述したように、仮想空間内にテキストメッセージmeは配置されなくなる(S3)。以上で、配置オブジェクト決定処理は終了する。
【0128】
S4において、距離rは第1の所定値a1以下であると判定部102が判定した場合(S4でYES)、隠れキャラクタ制御部103は、テキストメッセージデータ350を出力するように、テキストメッセージ制御部105に指示する。テキストメッセージ制御部105は、隠れキャラクタ制御部103の指示に従って、テキストメッセージmeの位置情報を含むテキストメッセージデータ350を、仮想空間生成部106に出力する(出力ステップ)。
【0129】
仮想空間生成部106は、テキストメッセージ制御部105から入力されたテキストメッセージデータ350を用いて、仮想空間内にテキストメッセージmeを配置する(S5)。
【0130】
図8に示すように、S5の後、判定部102は、仮想空間におけるプレイヤキャラクタch1と隠れキャラクタch2との距離rは、第2の所定値a2以下であるか否かを判定する(S6)。
【0131】
距離rは第2の所定値a2以下ではないと判定部102が判定した場合(S6でNo)、隠れキャラクタ制御部103は、隠れキャラクタデータ330を出力することを停止する(あるいは、出力しない)ことを決定する。
【0132】
仮想空間生成部106は、隠れキャラクタ制御部103から隠れキャラクタデータ330が入力されないので、仮想空間内に隠れキャラクタch2を配置しない、または、配置されている隠れキャラクタch2を除去する(S7)。以上で、配置オブジェクト決定処理は終了する。
【0133】
S6において、距離rは第2の所定値a2以下であると判定部102が判定した場合(S6でYes)、隠れキャラクタ制御部103は、隠れキャラクタデータ330を、仮想空間生成部106に出力する。
【0134】
仮想空間生成部106は、隠れキャラクタ制御部103から入力された隠れキャラクタデータ330を用いて、仮想空間内に隠れキャラクタch2を配置する(S8)。
【0135】
続いて、判定部102は、プレイヤキャラクタch1と隠れキャラクタch2との距離rは第3の所定値a3以下であるか否かを判定する(S9)。
【0136】
距離rは第3の所定値a3以下ではないと判定部102が判定した場合(S9でNo)、配置オブジェクト決定処理は終了する。
【0137】
一方、距離rは第3の所定値a3以下であると判定部102が判定した場合(S9でYes)、隠れキャラクタ制御部103は、会話データ360を、表示画像生成部107に出力する。
【0138】
表示画像生成部107は、隠れキャラクタ制御部103から入力された会話データ360を用いて、会話フレームfmの画像データを生成し、生成した画像データを表示部70に出力する(S10)。
【0139】
また、表示画像生成部107は、会話フレームfm内に会話テキストを表示する。以上で、配置オブジェクト決定処理は終了する。
【0140】
〔ソフトウェアによる実現例〕
ビデオゲーム装置1の制御ブロック(特に、
図1に示す制御部20の各ブロック)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
【0141】
後者の場合、ビデオゲーム装置1は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0142】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、変更された実施形態についても本発明の技術的範囲に含まれる。