説明

画像表示装置、画像表示装置の制御方法及びプログラム

【課題】仮想空間内においてユーザがより的確な視点の移動操作を行うことができる画像表示装置を提供する。
【解決手段】仮想空間表示部86が、仮想オブジェクトが配置されている仮想空間内の視点及び視線方向から決定される視野領域を見た様子を示す画像を表示する。視点移動速度決定部98が、ユーザによる視点移動操作に応じて、視野領域に含まれる仮想オブジェクトを示す位置と視点を示す位置との間の距離である仮想オブジェクト視点間距離に基づいて、視点の移動速度を決定する。視点移動部110が、視点移動速度決定部98により決定される移動速度で視点の位置を移動する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像表示装置、画像表示装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
仮想オブジェクトが配置されている仮想空間内の視点及び視線方向から決定される視野領域を見た様子を示す画像をモニタの画面などに表示する画像表示装置が知られている。例えば、特許文献1には、物体の3次元画像を簡易かつ精確に表示することができる画像表示装置に関する技術が開示されている。このような画像表示装置において、仮想空間内に配置されている仮想オブジェクトには、具体的には、例えば、航空写真や衛星写真のテクスチャが張られている複数のポリゴンによって表現される地球や、三次元モデリングを行うことによって、複数のポリゴンによって表現される山脈などが挙げられる。
【特許文献1】米国特許第5912671号明細書
【0003】
そして、このような画像表示装置では、ユーザは操作によって仮想空間内の視点を移動させることができ、あたかも空から地球を見ているかのような臨場感あふれる体験をすることができる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、以上のような画像表示装置では、ユーザの操作によって仮想空間内の視点が移動する際に、仮想オブジェクトと視点との距離に関係なく視点の移動速度が一定になるよう制御されているものがある。
【0005】
このような状況では、例えば、山脈を示す仮想オブジェクトが仮想空間内に配置されている場合のように、仮想オブジェクトの表面に凹凸がある場合は、例えば、ユーザの操作によって仮想空間の表面に沿って視点を移動する際に、視点と仮想オブジェクトとの距離が、視界の流れ方、すなわち、ディスプレイなどの表示装置の画面に表示されている画像のスクロールの速さに影響を与えていた。具体的には、例えば、海抜が低い場所では、視界がゆっくり流れ、海抜が高い場所では、視界が速く流れる、などというようなことが起こっていた。
【0006】
そのため、例えば、ユーザは、自らが興味を引く場所に視点を移動させたい場合などにおいて、的確な視点の移動操作をすることが難しかった。
【0007】
本発明は上記課題に鑑みてなされたものであって、仮想空間内においてユーザがより的確な視点の移動操作を行うことができる画像表示装置、画像表示装置の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明に係る画像表示装置は、仮想オブジェクトが配置されている仮想空間内の視点及び視線方向から決定される視野領域を見た様子を示す画像を表示する画像表示装置であって、ユーザによる視点移動操作に応じて、前記視野領域に含まれる前記仮想オブジェクトを示す位置と前記視点を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、前記視点の移動速度を決定する視点移動速度決定手段と、前記視点移動速度決定手段により決定される前記移動速度で前記視点の位置を移動する視点移動手段と、を含むことを特徴とする。
【0009】
また、本発明に係る画像表示装置の制御方法は、仮想オブジェクトが配置されている仮想空間内の視点から視野領域を見た様子を示す画像を表示する画像表示装置の制御方法であって、ユーザによる視点移動操作に応じて、前記視野領域に含まれる前記仮想オブジェクトを示す位置と前記視点を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、前記視点の移動速度を決定する視点移動速度決定ステップと、前記視点移動速度決定ステップにより決定される前記移動速度で前記視点の位置を移動する視点移動ステップと、を含むことを特徴とする。
【0010】
また、本発明に係るプログラムは、仮想オブジェクトが配置されている仮想空間内の視点から視野領域を見た様子を示す画像を表示する画像表示装置としてコンピュータを機能させるためのプログラムであって、ユーザによる視点移動操作に応じて、前記視野領域に含まれる前記仮想オブジェクトを示す位置と前記視点を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、前記視点の移動速度を決定する視点移動速度決定手段、前記視点移動速度決定手段により決定される前記移動速度で前記視点の位置を移動する視点移動手段、として前記コンピュータを機能させることを特徴とする。
【0011】
また、上記のプログラムはコンピュータ読み取り可能な情報記憶媒体に格納することもできる。
【0012】
本発明によると、仮想オブジェクト視点間距離に応じた移動速度で視点の位置が移動するので、仮想空間内においてユーザがより的確な視点の移動操作を行うことができる。
【0013】
本発明の一態様では、前記視点移動速度決定手段が、前記仮想オブジェクト視点間距離の値が増加するほど前記移動速度の値が増加するよう前記移動速度を決定することを特徴とする。こうすれば、仮想オブジェクト視点間距離の長さが短くなるほど、視界が流れる速度が遅くなるため、ユーザがより的確な視点の移動操作を行うことができる。
【0014】
また、本発明の一態様では、前記視点移動手段による前記視点の移動の際に、前記視点を示す位置と前記仮想オブジェクトを示す位置との距離を測定し、当該距離が所与の距離より短い場合は、前記仮想オブジェクトから離れる方向に前記視点の位置を修正する視点位置修正手段、をさらに含むことを特徴とする。こうすれば、視点が仮想オブジェクトと接触しそうな状況の際に、接触を回避するよう視点が移動されるようにすることができる。
【0015】
また、本発明の一態様では、ユーザによるピッチ角変更操作に応じて、前記視点の現在位置から、前記視点から視線方向に向かう直線上に存在するピッチ角変更中心点を中心にピッチ角を変更し、ピッチ角変更後の前記視点の位置から前記ピッチ角変更中心点を向くよう前記視線方向を変更するピッチ角変更手段と、前記視点移動手段による前記視点の移動の際に、前記ピッチ角変更中心点を示す位置と前記仮想オブジェクトを示す位置との距離を測定し、当該距離が所与の範囲を超える場合に、当該距離が前記範囲におさまるよう前記ピッチ角変更中心点の位置を修正するピッチ角変更中心点位置修正手段と、をさらに含むことを特徴とする。こうすれば、ユーザが視点のピッチ角変更操作を実行することができ、ピッチ角変更中心点と仮想オブジェクトとの距離を所与の範囲内におさめることができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0017】
図1は、本実施形態に係るエンタテインメントシステム(画像表示装置)のハードウェア構成を示す図である。図1に示すように、エンタテインメントシステム10は、MPU(Micro Processing Unit)11と、メインメモリ20と、画像処理部24と、モニタ26と、入出力処理部28と、音声処理部30と、スピーカ32と、光ディスク読み取り部34と、光ディスク36と、ハードディスク38と、インタフェース(I/F)40,44と、コントローラ42と、カメラユニット46と、ネットワークインタフェース48と、を含んで構成されるコンピュータシステムである。
【0018】
図2は、MPU11の構成を示す図である。図2に示すように、MPU11は、メインプロセッサ12と、サブプロセッサ14a,14b,14c,14d,14e,14f,14g,14hと、バス16と、メモリコントローラ18と、インタフェース(I/F)22と、を含んで構成される。
【0019】
メインプロセッサ12は、図示しないROM(Read Only Memory)に記憶されるオペレーティングシステム、例えばDVD(Digital Versatile Disk)−ROM等の光ディスク36から読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて、各種情報処理を行ったり、サブプロセッサ14a乃至14hに対する制御を行ったりする。
【0020】
サブプロセッサ14a乃至14hは、メインプロセッサ12からの指示に従って、各種情報処理を行ったり、エンタテインメントシステム10の各部を、例えばDVD−ROM等の光ディスク36から読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて制御したりする。
【0021】
バス16は、アドレス及びデータをエンタテインメントシステム10の各部でやり取りするためのものである。メインプロセッサ12、サブプロセッサ14a乃至14h、メモリコントローラ18、インタフェース22は、バス16を介して相互にデータ授受可能に接続される。
【0022】
メモリコントローラ18は、メインプロセッサ12及びサブプロセッサ14a乃至14hからの指示に従って、メインメモリ20へのアクセスを行う。メインメモリ20には、光ディスク36やハードディスク38から読み出されたプログラム及びデータや、通信ネットワークを介して供給されたプログラム及びデータが必要に応じて書き込まれる。メインメモリ20はメインプロセッサ12やサブプロセッサ14a乃至14hの作業用としても用いられる。
【0023】
インタフェース22には画像処理部24及び入出力処理部28が接続される。メインプロセッサ12及びサブプロセッサ14a乃至14hと、画像処理部24又は入出力処理部28と、の間のデータ授受はインタフェース22を介して行われる。
【0024】
画像処理部24は、GPU(Graphical Processing Unit)とフレームバッファとを含んで構成される。GPUは、メインプロセッサ12やサブプロセッサ14a乃至14hから供給される画像データに基づいてフレームバッファに各種画面を描画する。フレームバッファに形成された画面は、所定のタイミングでビデオ信号に変換されてモニタ26に出力される。なお、モニタ26には例えば家庭用テレビ受像機が用いられる。
【0025】
入出力処理部28には、音声処理部30、光ディスク読み取り部34、ハードディスク38、インタフェース40,44が接続される。入出力処理部28は、メインプロセッサ12及びサブプロセッサ14a乃至14hと、音声処理部30、光ディスク読み取り部34、ハードディスク38、インタフェース40,44、ネットワークインタフェース48と、の間のデータ授受を制御する。
【0026】
音声処理部30は、SPU(Sound Processing Unit)とサウンドバッファとを含んで構成される。サウンドバッファには、光ディスク36やハードディスク38から読み出されたゲーム音楽、ゲーム効果音やメッセージなどの各種音声データが記憶される。SPUは、これらの各種音声データを再生してスピーカ32から出力させる。なお、スピーカ32には例えば家庭用テレビ受像機の内蔵スピーカが用いられる。
【0027】
光ディスク読み取り部34は、メインプロセッサ12及びサブプロセッサ14a乃至14hからの指示に従って、光ディスク36に記憶されたプログラムやデータを読み取る。なお、エンタテインメントシステム10は、光ディスク36以外の他のコンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成してもよい。
【0028】
光ディスク36は例えばDVD−ROM等の一般的な光ディスク(コンピュータ読み取り可能な情報記憶媒体)である。また、ハードディスク38は一般的なハードディスク装置である。光ディスク36やハードディスク38には各種プログラムやデータがコンピュータ読み取り可能に記憶される。
【0029】
インタフェース(I/F)40,44は、コントローラ42やカメラユニット46等の各種周辺機器を接続するためのインタフェースである。このようなインタフェースとしては、例えばUSB(Universal Serial Bus)インタフェースが用いられる。
【0030】
コントローラ42は汎用操作入力手段であり、ユーザが各種操作(例えばゲーム操作)を入力するために用いられる。入出力処理部28は、所定時間(例えば1/60秒)ごとにコントローラ42の各部の状態をスキャンし、その結果を表す操作状態をメインプロセッサ12やサブプロセッサ14a乃至14hに供給する。メインプロセッサ12やサブプロセッサ14a乃至14hは、ユーザによって行われた操作の内容をその操作状態に基づいて判断する。なお、エンタテインメントシステム10は複数のコントローラ42を接続可能に構成されており、各コントローラ42から入力される操作状態に基づいて、メインプロセッサ12やサブプロセッサ14a乃至14hが各種処理を実行するようになっている。
【0031】
カメラユニット46は、例えば公知のデジタルカメラを含んで構成され、白黒、グレイスケール又はカラーの撮影画像を所定時間(例えば1/60秒)ごとに入力する。本実施の形態におけるカメラユニット46は、撮影画像をJPEG(Joint Photographic Experts Group)形式の画像データとして入力するようになっている。また、カメラユニット46は、例えばレンズをユーザに向けた状態でモニタ26の上に設置され、ケーブルを介してインタフェース44に接続される。ネットワークインタフェース48は入出力処理部28とネットワークとに接続されており、エンタテインメントシステム10がネットワークを介して他のエンタテインメントシステム10とデータ通信するのを中継するようになっている。
【0032】
図3Aは、コントローラ42の一例を示す斜視図である。図3Bは、コントローラ42の一例を示す上側面図である。図3Aに示すように、コントローラ42は、コントローラケーブル62によってエンタテインメントシステム10に接続され、表面42aの左側に方向ボタン群60及び左操作スティック54が設けられ、右側にボタン群58及び右操作スティック56が設けられている。また、図3Bに示すように、コントローラ42の奥側側面には、表面42a側左右に第1の左ボタン50L、第1の右ボタン50Rがそれぞれ設けられており、裏面側左右に第2の左ボタン52L、第2の右ボタン52Rがそれぞれ設けられている。そして、コントローラ42の筐体左右をユーザが両手で持つと、左手親指が方向ボタン群60及び左操作スティック54に位置し、右手親指がボタン群58及び右操作スティック56に位置するようになっており、右手人指し指又は中指のいずれか少なくとも一方が、第1の右ボタン50R又は第2の右ボタン52Rに位置し、左手人指し指又は中指のいずれか少なくとも一方が、第1の左ボタン50L又は第2の左ボタン52Lに位置するようになっている。
【0033】
方向ボタン群60、ボタン群58、第1の左ボタン50L、第1の右ボタン50R、第2の左ボタン52L、第2の右ボタン52Rは感圧ボタンとして構成されており、圧力センサを備えている。そして、これらのボタンをユーザが押下すると、その押圧力に応じて0〜255の値を有する256段階のディジタル値がエンタテインメントシステム10に入力されるようになっている。つまり、エンタテインメントシステム10では、コントローラ42から入力されるディジタル値が0の場合にはそのボタンが押下されておらず、255の場合には最大押圧力でボタンが押下されていること等を該ディジタル値から判断できるようになっている。
【0034】
左操作スティック54及び右操作スティック56は、コントローラ42の筐体表面に直立したスティック状の操作部材であり、この直立状態から全方位に所定角度だけ傾倒自在となっている。図3Aに示すように、コントローラ42の筐体長手方向をX軸方向(図3Aにおいて右方向を正方向とする。)とし、このX軸方向に直交する筐体奥行き方向をY軸方向(図3Aにおいて手前から奥に向かう方向を正方向とする。)とすると、左操作スティック54の姿勢(操作状態)は、X軸方向及びY軸方向の傾き(姿勢データ(X,Y))として、それぞれ0〜255のディジタル値がエンタテインメントシステム10に入力されるようになっている。具体的には、X=127やX=128付近は、左操作スティック54がX軸方向に傾いていないことを示す。また、X=255は、左操作スティック54がX軸の正方向(図3Aにおいて右方向)に限界まで倒れていることを示す。さらに、X=0は、左操作スティック54がX軸の負方向(図3Aにおいて左方向)に限界まで倒れていることを示す。Y軸方向についても同様である。また、右操作スティック56についても左操作スティック54の場合と同様である。こうして、エンタテインメントシステム10では、左操作スティック54及び右操作スティック56の現在の傾き状態(姿勢)を把握できるようになっている。また、左操作スティック54及び右操作スティック56は、方向ボタン群60やボタン群58等と同様の感圧ボタンとしても構成されており、スティックの軸方向に押下できるようになっている。
【0035】
また、コントローラ42は、内蔵振動子(バイブレータ)を備えている。そして、MPU11からの指示によって、このバイブレータは振動する。
【0036】
以下、以上のハードウェア構成を有するエンタテインメントシステム10を、画像表示装置として構成する一実施形態について説明する。
【0037】
まず、本実施形態の概要について説明する。本実施形態においては、エンタテインメントシステム10は、図4A〜図4Cに示すように、少なくとも1つの仮想オブジェクトが配置されている仮想空間64内の視点66(66a〜66j)から、視線方向68(68a〜68j)を見た様子(視点66の位置と視線方向68から決定される視野領域70を見た様子)を示す画像をモニタ26の画面に表示する。本実施形態においては、初期状態では、視点66aから視線方向68aを見た様子を示す画像がモニタ26の画面に表示される。そして、エンタテインメントシステム10のユーザはコントローラ42を操作することによって、視点66の位置や視線方向68を自由に移動することができる。
【0038】
そして、本実施形態においては、図4Aに示すように、仮想空間64内には、地球(地表面)が表現された仮想オブジェクト(仮想地球オブジェクト72)が配置されている。そして、図4Bは、図4Aに示す仮想地球オブジェクト72に表現されている地表面の一部である第1領域72aを示しており、図4Cは、図4Aに示す仮想地球オブジェクト72に表現されている地表面の一部である第2領域72bを示している。図4A〜図4Cに示すように、仮想地球オブジェクト72の表面には山74や、丘76(76a〜76n)や、崖78が立体的に表現されている。
【0039】
図5Aは視点66aから視線方向68aを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Aに示すように、本実施形態では、仮想地球オブジェクト72を示す画像の右側の一部が、陰になっており、この部分に太陽の光があたっていないことが表現されている。そして、全体的には気象衛星から見た雲の様子のような風景が表現されている。
【0040】
図5Bは視点66bから視線方向68bを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Bに示すように、エンタテインメントシステム10のユーザがコントローラ42を操作して、視点66の位置が仮想地球オブジェクト72に近づいている。ここで、視点66の位置が変更される途中で、仮想地球オブジェクト72を示す画像として日本を中心とした地図を示す画像に更新される。そして、本実施形態では、気象衛星から見た雲の様子のような風景が表現されている画像が、日本を中心とした地図を示す画像に更新される際にコントローラ42が備えるバイブレータが振動する。
【0041】
図5Cは視点66cから視線方向68cを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Cに示すように、エンタテインメントシステム10のユーザがコントローラ42を操作して、視点66の位置がより仮想地球オブジェクト72に近づいている。ここで、視点66の位置が変更される途中で、仮想地球オブジェクト72を示す画像がより解像度の高い画像に更新される。また、本実施形態においては、視点66が仮想地球オブジェクト72に近づくにつれ、視点66の移動速度が遅くなっている。すなわち、視点66の位置が、視点66aから視点66cに移動するにつれ、視点66の移動速度が遅くなっている。
【0042】
図5Dは視点66dから視線方向68dを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Dに示すように、エンタテインメントシステム10のユーザがコントローラ42を操作して、視点66の位置がより仮想地球オブジェクト72に近づいていて、仮想地球オブジェクト72の地表面上に立体的に表現されている山74を示す画像がモニタ26の画面に表示されている。
【0043】
図5Eは視点66eから視線方向68eを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Eに示すように、エンタテインメントシステム10のユーザがコントローラ42を操作して、ピッチ角変更中心点80を中心にピッチ角θが変更されている(図4B参照)。ここで、ピッチ角θとは、ピッチ角変更中心点80と視点66とを通る直線と、ピッチ角変更中心点80を通る、仮想オブジェクト(本実施形態では、仮想地球オブジェクト72)を示す領域に対して垂直な直線と、がなす角である。ここで、ピッチ角変更中心点80と視点66との距離をピッチ角変更半径rと呼ぶ。このとき、モニタ26の上方には、仮想地球オブジェクト72の輪郭、すなわち、地平線B1を示す画像が表示されている。なお、ピッチ角変更中心点80の詳細については後述する。
【0044】
図5Fは視点66fから視線方向68fを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Fに示すように、エンタテインメントシステム10のユーザがコントローラ42を操作して、ピッチ角変更中心点80を中心にさらにピッチ角θが変更されている。このとき、モニタ26の中央付近には、地平線B1を示す画像が表示されている。
【0045】
ここで、ユーザがさらに、ピッチ角変更中心点80を中心にさらにピッチ角θを変更しようとしても、本実施形態においては、ピッチ角θが変更されないようになっている。このようにして、仮想地球オブジェクト72の画像がモニタ26の画面にまったく表示されなくなってしまうことや、図18に示すように、仮想地球オブジェクト72の画像がモニタ26の画面にほとんど表示されなくなってしまうことを防ぐことができるようになっている。
【0046】
そして、ピッチ角変更中心点80が、仮想地球オブジェクト72の表面から離れた場所に設けられているため、図5D〜図5Fに示すように、ピッチ角変更中心点80を中心にピッチ角θが変更されるにつれて、山74の頂上74aを示す画像がモニタ26の画面に表示される位置が下がるようになっている。このようにすることによって、山74の頂上74aよりも奥の画像が、ユーザに見えやすくなっている。
【0047】
図5Gは視点66gから視線方向68gを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Hは視点66hから視線方向68hを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5Iは視点66iから視線方向68iを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。そして、図5Jは視点66jから視線方向68jを見た様子を示す、モニタ26の画面に表示される画像の一例を示す図である。図5G〜図5Jに示すように、ここでは、丘76を示す画像がモニタ26の画面に表示されている。このとき、ユーザは、仮想地球オブジェクト72の地表面に沿って右方向に視点66が移動するようコントローラ42に対して視点移動操作を行っている。その結果、視点66が、視点66gの位置から、視点66hの位置、視点66iの位置を経由して、視点66jの位置まで移動している。視点66が視点66gの位置から視点66hの位置に移動する際に、視点66が上がっている。そして、視点66が視点66hの位置から視点66iの位置に移動する際に、視点66が下がっている。そして、視点66が視点66iの位置から視点66jの位置に移動する際に、視点66がとても上がっている。このようにして、エンタテインメントシステム10のユーザは、仮想地球オブジェクト72の地表面に沿って移動しているような感覚を体験することができる。
【0048】
次に、本実施形態に係るエンタテインメントシステム10で実現される機能について、図6に示す機能ブロック図と、図7に示す、本実施形態に係る仮想地球オブジェクト72と視点66の位置及び視線方向68との関係の一例を説明する説明図を参照しながら説明する。
【0049】
図6に示すように、この実施形態に係るエンタテインメントシステム10は、機能的には、仮想オブジェクトデータ記憶部82、仮想オブジェクトデータ取得部84、仮想空間表示部86、視点データ記憶部88、注視点位置算出部90、ピッチ角変更中心点位置算出部92、基準距離算出部94、基準距離データ記憶部96、視点移動速度決定部98、視点移動速度データ記憶部100、許容範囲算出部102、操作状態取得部104、操作状態記憶部106、操作状態変化判断部108、視点移動部110、ピッチ角変更中心点移動部112、ピッチ角変更部114、相対ピッチ角データ変更部116、ピッチ角算出部118、視点位置修正部120、ピッチ角変更中心点位置修正部122を含むものとして機能する。なお、エンタテインメントシステム10がこれらの要素をすべて備えている必要はない。
【0050】
仮想オブジェクトデータ記憶部82は、メインメモリ20やハードディスク38を主として実現される。仮想オブジェクトデータ記憶部82は、仮想オブジェクトに関するポリゴンデータやテクスチャデータなどの仮想オブジェクトデータを記憶する。本実施形態においては、具体的には、例えば、仮想オブジェクトデータ記憶部82は、仮想地球オブジェクト72の地表面が表現された地表面データ124を記憶する(図8参照)。図8は、本実施形態に係る地表面データ124のデータ構造の一例を示す図である。地表面データ124は、基準面データ126と地形面データ128とを含んでいる。基準面データ126は、仮想地球オブジェクト72の基準面130(例えば、海面)を表す複数のポリゴンの仮想空間64内における位置を示すポリゴンデータである。本実施形態においては、基準面130の基本的な形状は球形である。そして、地形面データ128は、仮想地球オブジェクト72の表面に表現される山74や丘76や崖78といった地形の表面(地形面132)を表す複数のポリゴンの仮想空間64内における位置を示すポリゴンデータと、ポリゴンデータが示す各ポリゴンに対応付けられる、それぞれのポリゴンに貼り付けられるテクスチャを示すテクスチャデータとを含んでいる。なお、基準面データ126や地形面データ124は、緯度及び経度の組み合わせと、仮想空間64内における位置との対応関係を示すデータを含んでいてもよい。
【0051】
また、仮想オブジェクトデータ記憶部82は、精度が異なる複数の基準面データ126や地形面データ128を段階的に管理して記憶するようにしても構わない。また、仮想オブジェクトデータ記憶部82は、後述する仮想オブジェクトデータ取得部84が取得するポリゴンデータやテクスチャデータを記憶するようにしても構わない。
【0052】
仮想オブジェクトデータ取得部84は、MPU11と、入出力処理部28と、ネットワークインタフェース48とを主として実現される。仮想オブジェクトデータ取得部84は、ネットワーク上のサーバなどの情報処理装置から、仮想オブジェクトデータを取得する。
【0053】
本実施形態においては、エンタテインメントシステム10は、エンタテインメントシステム10は、ネットワーク上のデータ提供サーバ(図示せず)とネットワークインタフェース48を経由して通信できるようになっている。そして、仮想オブジェクトデータ取得部84は、視点66の位置及び視線方向68と仮想地球オブジェクト72との位置関係を示すデータをデータ提供サーバに送信する。すると、データ提供サーバは、仮想空間64に配置すべき地表面データ124を仮想オブジェクトデータ取得部84に送信する。仮想オブジェクトデータ取得部84は、データ提供サーバから送信された地表面データ124を取得する。具体的には、例えば、仮想オブジェクトデータ取得部84は、視点66の位置に基づいて、そのときの仮想オブジェクトとの距離に応じた大きさのポリゴンデータ、及び、各ポリゴンに貼られるべきテクスチャデータをデータ提供サーバから取得する。
【0054】
仮想空間表示部86は、MPU11と、画像処理部24と、モニタ26と、を主として実現される。仮想空間表示部86は、仮想空間64内の視点66から視線方向68を見た様子(視点66の位置と視線方向68から決定される視野領域70を見た様子)を示す画像をモニタ26の画面に表示する。具体的には、仮想空間表示部86は、視点66の位置と視線方向68とから決定される視野領域70と、視野領域70内の仮想オブジェクトについての仮想オブジェクトデータに含まれるポリゴンデータが示す各ポリゴンの頂点の座標や、各ポリゴンに貼り付けられるテクスチャを示すテクスチャデータなどに基づく画像がモニタ26の画面に表示される。本実施形態では、具体的には、例えば、視野領域70内の仮想地球オブジェクト72についての地形面データ128に含まれるポリゴンデータが示す各ポリゴンの頂点の座標や、各ポリゴンに貼り付けられるテクスチャを示すテクスチャデータなどに基づく画像がモニタ26の画面に表示される。
【0055】
ここで、仮想空間表示部86は、視点66と仮想オブジェクト(例えば、仮想地球オブジェクト72)との位置関係(例えば、距離)に応じて、モニタ26の画面に表示されるべき画像に対応する地形面データ128を選択するようにしても構わない。本実施形態においては、視点66と仮想地球オブジェクト72との距離が長い場合には、仮想空間表示部86が、仮想オブジェクトデータ記憶部82に予め記憶されている、衛星から見た雲の様子を示すテクスチャデータに基づく画像をモニタ26の画面に表示し、視点66が移動して、視点66と仮想地球オブジェクト72との距離が短くなった際に、日本を中心とした地図を示すテクスチャデータに基づく画像をモニタ26の画面に表示するようにしてもよい(図5A及び図5B参照)。なお、このとき、視点66が移動する際に、仮想オブジェクトデータ取得部84が、日本を中心とした地図を示すテクスチャデータに基づく画像を取得するようにしてもよい。このように、仮想オブジェクトデータ取得部84による画像取得の待ち時間に、仮想空間表示部86が、エンタテインメントシステム10に予め記憶されている画像を表示することで、エンタテインメントシステム10のユーザは、データ提供サーバからの画像を取得するのに必要な時間を待っている間も、画像を楽しむことができるので、画像の取得を待つことによるストレスが軽減される。
【0056】
なお、表示される画像が更新されるタイミングで仮想空間表示部86は、コントローラ42に対して、コントローラ42が備えるバイブレータを振動するように指示してもよい。具体的には、例えば、仮想オブジェクトデータ記憶部82に予め記憶されている画像がモニタ26の画面に表示されている状態から、仮想オブジェクトデータ取得部84が取得した画像がモニタ26の画面に表示されている状態に切り替わる際に、仮想空間表示部86は、コントローラ42に対して、コントローラ42が備えるバイブレータを振動するように指示してもよい。
【0057】
また、仮想空間表示部86は、視点66を示す位置と仮想地球オブジェクト72を示す位置との間の距離に応じた、仮想オブジェクトデータ記憶部82に記憶されている画像をモニタ26の画面に表示するようにしてもよい。具体的には、例えば、仮想空間表示部86が、視点66を示す位置と仮想地球オブジェクト72を示す位置との間の長さが長い場合には、低解像度の画像をモニタ26の画面に表示し、視点66を示す位置と仮想地球オブジェクト72を示す位置との間の長さが短い場合には、高解像度の画像をモニタ26の画面に表示するようにしてもよい(図5B〜図5D参照)。また、仮想空間表示部86が、一旦低解像度の画像をモニタ26の画面に表示しておき、仮想オブジェクトデータ取得部84による高解像度の画像の取得が完了した時点で、高解像度の画像をモニタ26の画面に表示するようにしてもよい。
【0058】
視点データ記憶部88は、メインメモリ20やハードディスク38を主として実現される。視点データ記憶部88は、仮想空間64における視点66の位置や視線方向68を示す視点データ134を記憶する(図9参照)。図9は、本実施形態に係る視点データ134のデータ構造の一例を示す図である。なお、視野領域70は、視点データ134が示す視点66の位置及び視線方向68に基づいて決定される。視点データ134の詳細については後述する。
【0059】
注視点位置算出部90は、MPU11を主として実現される。注視点位置算出部90は、視点66の現在位置から視線方向68に向かう直線と、当該直線上に存在する仮想オブジェクトとの交点である注視点136を示す位置を算出する(図10参照)。
【0060】
図10は、本実施形態に係る仮想地球オブジェクト72と視点66の位置及び視線方向68との初期状態における関係の一例を示す説明図である。本実施形態においては、初期状態で視線方向68は、仮想地球オブジェクト72の地表面(例えば、基準面130や地形面132)に対して垂直な方向を向いている(図4A参照)。そして、注視点位置算出部90は、初期状態における視点66の位置から視線方向68に向かう直線と、地形面132との交点(具体的には、地形面データ128に含まれるポリゴンデータが示すポリゴンとの交点)の位置を、注視点136を示す位置として算出する。
【0061】
なお、注視点位置算出部90は、初期状態以外の視点66の位置に基づいて注視点136を示す位置を算出しても構わない。また、注視点位置算出部90が、注視点136を示す位置を算出する際に、視線方向68が仮想オブジェクトに対して垂直な方向を向いていなくても構わない。また、注視点位置算出部90は、初期状態における視点66の位置から視線方向68に向かう直線と、基準面130との交点(基準面データ126に含まれるポリゴンデータが示すポリゴンとの交点)の位置を、注視点136を示す位置として算出しても構わない。
【0062】
ピッチ角変更中心点位置算出部92は、MPU11を主として実現される。ピッチ角変更中心点位置算出部92は、視点66から視線方向68に向かう直線上に存在するピッチ角変更中心点80の位置を算出する。ここで、ピッチ角変更中心点位置算出部92は、視線方向68が仮想オブジェクト(例えば、仮想地球オブジェクト74)を示す方向を向いている際の視点66の位置と仮想オブジェクト(例えば、仮想地球オブジェクト74)を示す位置との間に存在するピッチ角変更中心点80の位置を算出してもよい。また、ピッチ角変更中心点位置算出部92は、注視点136を示す位置と視点66の位置との関係に基づいて、注視点136を示す位置と視点66の位置との間に存在するピッチ角変更中心点80の位置を算出してもよい(図10参照)。なお、ピッチ角変更中心点位置算出部92は、注視点136を示す位置と、視点66の位置との間を、所与の比率で内分する点の位置をピッチ角変更中心点80の位置として算出するようにしても構わない。
【0063】
ここで、視点データ134の詳細について説明する。本実施形態においては、視点データ134は、ピッチ角変更中心点位置データ138と、ヨー角データ140と、最大ピッチ角データ142と、相対ピッチ角データ144と、を含んでいる。
【0064】
ピッチ角変更中心点位置データ138は、ピッチ角変更中心点位置算出部92によって算出されるピッチ角変更中心点80の位置を示すデータであり、例えば三次元座標値によって表現される。
【0065】
ヨー角データ140は、図7に示すように、ピッチ角変更中心点80の位置を中心とした極座標系において、視点66の位置の、ヨー角基準方向146に対するヨー角φを示すデータである。ここで、ヨー角基準方向146は、具体的には、例えば、北を示す方向に対応する方向を示している。
【0066】
最大ピッチ角データ142と、相対ピッチ角データ144とで、ピッチ角変更中心点80の位置を中心とした極座標系における、視点66の位置の、ピッチ角θを示している。これらのデータの詳細については、後述する。
【0067】
ここで、ピッチ角変更中心点80を通る、基準面130に対応する面(例えば、基準面に平行な面)をピッチ角変更中心点基準面148と呼ぶこととすると、ヨー角φは、ヨー角基準方向146と、ピッチ角変更中心点80の位置からピッチ角θが90度である際の視点66の位置への方向と、のなす角である。ここで、ピッチ角変更中心点80の位置からピッチ角θが90度である際の視点66の位置への方向を、ヨー角方向150と呼ぶこととする。
【0068】
なお、視点データ134のデータ構造は上述のデータ構造に限定されない。
【0069】
具体的には、例えば、視点データ記憶部88は、最大ピッチ角θmaxを示す最大ピッチ角データ142の代わりに、最小伏角を示す最小伏角データを記憶してもよい。なお、最小伏角と最大ピッチ角θmaxとは、和が90度である関係がある。なお、最大ピッチ角θmaxの詳細については、後述する。
【0070】
また、例えば、ヨー角方向150を示すヨー角方向データや、視線方向68を示す視線方向データや、ピッチ角変更中心点移動部112によるピッチ角変更中心点80の移動の基準となるピッチ角変更中心点移動基準方向152を示すピッチ角変更中心点移動基準方向データや、ピッチ角変更部114による視点66のピッチ角の変更の基準となる方向を示すピッチ角変更基準方向154などによって視点データ134を表現しても構わない。なお、本実施形態において、ピッチ角変更中心点移動基準方向152を示すベクトルは、ヨー角方向150を示すベクトルに対して逆方向のベクトルである。そして、本実施形態において、ピッチ角変更基準方向154は、ピッチ角変更中心点80を中心とした、半径がピッチ角変更半径rである球面(以後、ピッチ角変更面156と呼ぶ。)に沿った、視点66の現在位置からピッチ角θが0度である際の視点66の位置への方向である。
【0071】
基準距離算出部94は、MPU11を主として実現される。基準距離算出部94は、仮想オブジェクトデータ(本実施形態においては、地形面データ128)に基づいて、仮想オブジェクトの表面の基準面130からの距離を示す基準距離を算出する。本実施形態においては、具体的には、例えば、基準距離算出部94が、まず、ピッチ角変更中心点80を通る、基準面130に対して垂直な直線と、地形面132との交点(具体的には、例えば、地形面データ128に含まれるポリゴンデータが示すポリゴンとの交点)であるピッチ角変更中心点投影点158の位置を算出する。そして、基準距離算出部94が、ピッチ角変更中心点投影点158と基準面130との間の距離を第1地形面距離D1として算出する(図7参照)。そして、基準距離算出部94が、視点66を通る、基準面130に対して垂直な直線と、地形面132との交点である視点投影点160の位置を算出する。そして、基準距離算出部94が、視点投影点160と基準面130との間の距離を第2地形面距離D2として算出する(図7参照)。
【0072】
そして、第1地形面距離D1と、第2地形面距離D2とに基づいて、地形面基準距離Dを算出する。ここでは、基準距離算出部94は、第1地形面距離D1の値を地形面基準距離Dの値として算出する。
【0073】
なお、基準距離算出部94は、第2地形面距離D2の値を地形面基準距離Dの値として算出しても構わない。また、基準距離算出部94は、第1地形面距離D1の値と、第2地形面距離D2の値の平均値を地形面基準距離Dの値として算出しても構わない。
【0074】
基準距離データ記憶部96は、メインメモリ20やハードディスク38を主として実現される。基準距離データ記憶部96は、基準距離算出部94により算出される基準距離を示す基準距離データを記憶する。具体的には、例えば、地形面基準距離Dを示す地形面基準距離データを記憶する。
【0075】
そして、基準距離算出部94は、算出した基準距離と、基準距離データ記憶部96に記憶されている基準距離との差が所与の値(例えば、地形面基準距離バッファΔD)より大きい場合に、基準距離データ記憶部96に記憶されている基準距離データを、基準距離算出部94が算出した基準距離を示す基準距離データに更新するようにしてもよい。
【0076】
視点移動速度決定部98は、MPU11を主として実現される。視点移動速度決定部98は、ユーザによる視点移動操作に応じて、視野領域70に含まれる仮想オブジェクト(本実施形態では、仮想地球オブジェクト72)を示す位置と視点66を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、視点66の移動速度vを決定する。
【0077】
また、視点移動速度決定部98が、仮想オブジェクト視点間距離の値が増加するほど移動速度vの値が増加するよう視点66の移動速度vを決定するようにしても構わない。具体的には、例えば、視点移動速度決定部98は、移動速度vの値が、仮想オブジェクト視点間距離の値に比例するように、移動速度vの値を決定するようにしても構わない。
【0078】
このようにすることで、ユーザは、視点の的確な移動操作を実行することができる。
【0079】
本実施形態においては、具体的には、例えば、視点移動速度決定部98が、ピッチ角変更中心点80とピッチ角変更中心点投影点158(あるいは地形面132)との間のピッチ角変更中心点地形面間距離d1を算出する。このとき、視点移動速度決定部98が、ピッチ角変更中心点80と基準面130との間の距離と、基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dとの差分の値に基づいて、ピッチ角変更中心点地形面間距離d1を算出するようにしても構わない(図7参照)。
【0080】
そして、視点移動速度決定部98は、ピッチ角変更中心点地形面間距離d1の値に基づいて、ピッチ角変更半径rの値を算出する。具体的には、例えば、視点移動速度決定部98が、ピッチ角変更中心点地形面間距離d1の値と所与の値との積の値をピッチ角変更半径rの値として算出する。このように、ピッチ角変更半径rと、ピッチ角変更中心点地形面間距離d1とが所与の比率になっていても構わない。もちろん、ここで、視点移動速度決定部98が、ピッチ角変更半径rの値を算出するようにしても構わない。
【0081】
そして、本実施形態においては、仮想オブジェクト視点間距離は、ピッチ角変更中心点地形面間距離d1と、ピッチ角変更半径rとの和(d1+r)である。すなわち、視点移動速度決定部98は、(d1+r)の値に基づいて、視点66の移動速度を決定する。
【0082】
なお、仮想オブジェクト視点間距離の算出方法はもちろん上記の方法に限定されない。
【0083】
また、視点移動速度決定部98は、基準面130や地形面132に沿った方向への、視点66の移動速度を決定するようにしてもよい。また、基準面130や地形面132に対して垂直な方向への、視点66の移動速度を決定するようにしてもよい。また、視点移動速度決定部98が、視点66の移動速度の代わりに、ピッチ角変更中心点80の移動速度を決定するようにしても構わない。
【0084】
視点移動速度データ記憶部100は、視点移動速度決定部98により決定された視点66の移動速度を示す移動速度データを記憶する。視点移動速度データ記憶部100は、操作開始時の移動速度データを記憶するようにしても構わない。なお、ここで、ピッチ角変更中心点80の移動速度を示す移動速度データを記憶するようにしても構わない。
【0085】
許容範囲算出部102は、MPU11を主として実現される。許容範囲算出部102は、視野領域70と仮想オブジェクト(本実施形態においては、例えば、仮想地球オブジェクト72)が占める閉領域とが交わる領域の大きさに基づいて、視点66の位置の移動許容範囲や、視線方向68の変更許容範囲といった許容範囲162を算出する(図11参照)。図11は、許容範囲162の一例を示す図である。そして、図12は、許容範囲162の別の一例を示す図である。許容範囲算出部102は、図12に示すように、視点66の位置の移動許容範囲だけを算出してもよいし、視線方向68の変更許容範囲だけを算出してもよい。もちろん、許容範囲算出部102が、視点66の位置の移動許容範囲と視線方向68の変更許容範囲の両方を算出してもよい。
【0086】
本実施形態では、許容範囲算出部102は、図11に示すように、ピッチ角θの範囲を算出する。そして、許容範囲算出部102は、ピッチ角変更中心点80と視点66とを通る直線の方向が、仮想地球オブジェクト72が占める閉領域に対する接線方向に対応する方向である際の視点66の位置や視線方向68を許容範囲内と許容範囲外との境界として算出する。そして、このときの、ピッチ角θを最大ピッチ角θmaxと呼ぶこととする。
【0087】
ここで、例えば、仮想地球オブジェクト72の中心と地形面132との間の地形面中心間距離Rと、ピッチ角変更中心点地形面間距離d1とに基づいて、許容範囲算出部102は、最大ピッチ角θmaxを、θmax=sin−1{R/(R+d1)}という数式から算出される。
【0088】
ここで、許容範囲算出部102は、地形面中心間距離Rの代わりに、算出が容易な、仮想地球オブジェクト72の中心と基準面との間の基準面中心間距離R’を用いて、最大ピッチ角θmaxを、概算するようにしても構わない。もちろん、このとき、許容範囲算出部102が、ピッチ角変更中心点地形面間距離d1の代わりに、ピッチ角変更中心点80と基準面130との間のピッチ角変更中心点基準面間距離d’を用いて、最大ピッチ角θmaxを算出しても構わない。また、許容範囲算出部102は、許容範囲の算出に用いる仮想オブジェクトが占める閉領域を、仮想オブジェクトに基づいて算出するようにしても構わない。具体的には、例えば、許容範囲算出部102は、仮想オブジェクトの凸包に基づいて、仮想オブジェクトが示す閉領域を算出するようにしても構わない。
【0089】
そして、本実施形態においては、視点データ記憶部88は、許容範囲算出部102が算出した最大ピッチ角θmaxを示す最大ピッチ角データ142を記憶する。
【0090】
このように、許容範囲算出部102は、視線方向68が仮想オブジェクト(本実施形態においては、例えば、仮想地球オブジェクト72)が占める閉領域に対する接線方向に対応する方向である際の視点66の位置や視線方向68を許容範囲162内と許容範囲162外との境界として算出するようにしても構わない。
【0091】
操作状態取得部104は、所定時間(本実施形態においては、具体的には、例えば、1/60秒)毎に、コントローラ42の操作状態を取得する。操作状態とは、具体的には、例えば、押圧力を示すディジタル値(0〜255)や、姿勢データ(0≦X≦255,0≦Y≦255)などである。本実施形態においては、少なくとも、左操作スティック54及び右操作スティック56の操作状態を示す姿勢データと、左操作スティック54、右操作スティック56、第2の左ボタン52L、及び、第2の右ボタン52Rの押圧力を示すディジタル値を取得する。そして、操作状態取得部104は、取得した操作状態に基づいて、ユーザによって行われた操作の内容を判断する。
【0092】
本実施形態において、具体的には、例えば、操作状態取得部104が、左操作スティック54の姿勢データを取得した場合、又は、第2の左ボタン52L、第2の右ボタン52Rの所与の値以上の押圧力を示すディジタル値を取得した場合は、ユーザによる操作がピッチ角変更中心点移動操作であると判断し、右操作スティック56の姿勢データ及び右操作スティックの所与の値以上の押圧力を示すディジタル値を取得した場合は、ユーザによる操作がピッチ角変更操作、あるいは、ヨー角変更操作であると判断する。これらの操作の内容については、後述する。
【0093】
操作状態記憶部106は、メインメモリ20やハードディスク38を主として実現される。操作状態記憶部106は、操作状態取得部104が取得する操作状態を示す操作状態データを記憶する。
【0094】
操作状態変化判断部108は、MPU11を主として実現される。操作状態変化判断部108は、操作状態記憶部106に記憶されている操作状態データが示す操作状態と、操作状態取得部104が検出する操作状態とを比較して、検出されたデータに変化があったか否かを判断する。
【0095】
視点移動部110は、MPU11を主として実現される。視点移動部110は、ユーザによる視点移動操作に応じて、前記視点の位置の移動又は前記視線方向の変更の少なくとも一方を実行する。
【0096】
このとき、視点移動部110が、許容範囲算出部102によって算出された許容範囲162内で、視点の位置の移動や視線方向の変更を実行できるようにしても構わない。また、視点移動部110が、視点移動速度決定部98により決定される移動速度vで視点66の位置を移動するようにしても構わない。
【0097】
ピッチ角変更中心点移動部112は、MPU11を主として実現される。ピッチ角変更中心点移動部112は、ユーザによるピッチ角変更中心点移動操作に応じて、ピッチ角変更中心点80の位置を移動し、視点66の位置からピッチ角変更中心点80を向くよう少なくとも視線方向68を変更する。また、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80の位置を移動した際に、移動されたピッチ角変更中心点80の位置に基づいて、ヨー角φを算出するようにしてもよい。
【0098】
また、視点移動部110が、ピッチ角変更中心点移動部112によるピッチ角変更中心点80の移動と連動して、視点66を移動するようにしても構わない。具体的には、例えば、視点移動部110は、ピッチ角変更中心点移動部112によりピッチ角変更中心点80が移動する距離だけ移動をするようにしても構わない。また、ピッチ角変更中心点移動部112による移動によりピッチ角変更中心点地形面間距離d1の値が変化する際は、視点移動部110が、変化後のピッチ角変更中心点地形面間距離d1に基づいて、ピッチ角変更半径rを算出して、この算出されるピッチ角変更半径rに基づいて、視点66の位置を移動するようにしても構わない。
【0099】
本実施形態においては、操作状態取得部104が取得した左操作スティック54の姿勢データ(X,Y)に基づいて、左操作スティック54のY軸方向が、ピッチ角変更中心点移動基準方向152の方向に、X軸方向が、ピッチ角変更中心点移動基準方向152に対して右90度の方向に対応付けられた座標上の位置に、ピッチ角変更中心点移動部112がピッチ角変更中心点80を移動する。
【0100】
具体的には、例えば、操作状態取得部104が、左操作スティック54が上方向に操作されていることを示す操作状態を取得すると、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80を、ピッチ角変更中心点移動基準方向152の方向に移動する。また、操作状態取得部104が、左操作スティック54が下方向に操作されていることを示す操作状態を取得すると、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80を、ピッチ角変更中心点移動基準方向152とは逆方向(すなわち、ヨー角方向150の方向)に移動する。そして、操作状態取得部104が、左操作スティック54が左方向(右方向)に操作されていることを示す操作状態を取得すると、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80を、ピッチ角変更中心点移動基準方向152に対して左90度(右90度)の方向に移動する。
【0101】
また、本実施形態においては、操作状態取得部104が、第2の左ボタン52Lの押圧力を示す所与の値以上のディジタル値を取得した場合は、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80を、ピッチ角変更中心点基準面148に対して垂直な方向であって、仮想地球オブジェクト72から離れる方向に移動する。また、操作状態取得部104が、第2の右ボタン52Rの押圧力を示す所与の値以上のディジタル値を取得した場合は、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80を、ピッチ角変更中心点基準面148に対して垂直な方向であって、仮想地球オブジェクト72に近づく方向に移動する。
【0102】
また、このとき、ピッチ角変更中心点移動部112が、視点移動速度決定部98により決定される移動速度vに基づく、ピッチ角変更中心点80の移動速度v’でピッチ角変更中心点80の位置を移動するようにしても構わない。具体的には、例えば、操作状態取得部104が取得した左操作スティック54の姿勢データの値が(X,Y)であり、ピッチ角変更中心点80の移動速度v’の値がvと等しい場合には、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80の現在位置から(vX,vY)だけ移動するようにしても構わない。このように、ピッチ角変更中心点移動部112が、姿勢データなどの操作量の値と、移動速度vの値との積に基づく移動速度でピッチ角変更中心点80を移動するようにしてもよい。もちろん、視点移動部110が、操作量の値と、移動速度vの値との積に基づく移動速度で視点66を移動するようにしてもよい。また、第2の左ボタン52Lや第2の右ボタン52Rによる、ピッチ角変更中心点80のピッチ角変更中心点基準面148に対して垂直な方向への移動の際にも、視点移動速度決定部98により決定される移動速度vに基づく、ピッチ角変更中心点80の移動速度v’でピッチ角変更中心点80の位置を移動するようにしても構わない。
【0103】
ピッチ角変更部114は、MPU11を主として実現される。ピッチ角変更部114は、ユーザによるピッチ角変更操作に応じて、ピッチ角変更中心点80を中心にピッチ角θを変更し、ピッチ角変更後の視点66の位置からピッチ角変更中心点80を向くよう視線方向68を変更する。
【0104】
このとき、ピッチ角変更部114が、このピッチ角θの範囲内で、ピッチ角θを変更するようにしても構わない。
【0105】
相対ピッチ角データ変更部116は、MPU11を主として実現される。相対ピッチ角データ変更部116は、視点データ記憶部88に、相対ピッチ角データ144が記憶されている場合に、ユーザによる相対ピッチ角変更操作に応じて、相対ピッチ角データ144を変更する。ここで、相対ピッチ角データ144とは、ピッチ角変更中心点80と視点66とを通る直線と、仮想オブジェクト(本実施形態においては仮想地球オブジェクト72)を示す領域に対して垂直なピッチ角変更中心点80を通る直線と、がなす角の、最大ピッチ角θmaxに対する比率である相対ピッチ角θ’(0≦θ’≦1)を示すデータである。
【0106】
ピッチ角算出部118は、MPU11を主として実現される。ピッチ角算出部118は、相対ピッチ角データ144が示す相対ピッチ角θ’と、最大ピッチ角θmaxと、に基づいて、ピッチ角変更中心点80と前記視点とを通る直線と、前記仮想オブジェクトを示す領域に対して垂直なピッチ角変更中心点80を通る直線と、がなす角であるピッチ角θを算出する。より具体的には、例えば、ピッチ角算出部118は、最大ピッチ角θmaxが示す角度と、相対ピッチ角θ’との積(θmax×θ’)に基づいて、ピッチ角θを算出するようにしても構わない。
【0107】
本実施形態においては、操作状態取得部104が取得した右操作スティック56の姿勢データ(X,Y)に基づいて、相対ピッチ角データ変更部116が、相対ピッチ角データ144が示す相対ピッチ角θ’の増減を実行する。また、本実施形態では、ピッチ角変更部114は、ヨー角データ140が示すヨー角φの増減、すなわち、ヨー角φの変更も実行する。具体的には、例えば、操作状態取得部104が取得したYの値が正(負)である場合に、相対ピッチ角データ変更部116が、相対ピッチ角θ’の値が減少(増加)する。また、操作状態取得部104が取得したXの値が正(負)である場合に、ピッチ角変更部114が、ヨー角φの値を増加(減少)する。
【0108】
そして、変更される相対ピッチ角データ144に基づいて、ピッチ角算出部118がピッチ角θを算出する。そして、ピッチ角変更部114が、算出されたピッチ角θの値と、ヨー角φの値と、ピッチ角変更中心点80の現在位置とに基づいて、ピッチ角θあるいはヨー角φを変更する。このように、ピッチ角変更部114が、ピッチ角算出部118により算出されるピッチ角θと、ピッチ角変更中心点80の位置と、に基づいて、ピッチ角θやヨー角φを変更するようにしても構わない。
【0109】
また、操作状態取得部104が、右操作スティック56の押圧力を示す所与の値以上のディジタル値を取得した場合は、ピッチ角θ変更部114は、ヨー角基準方向146に対するヨー角φが180度となる位置に視点66が配置されるよう、ピッチ角θを一定にしたままでヨー角φを変更する。このようにして、ユーザは、視線方向68が北方向を向くようにヨー角φを変更することができる。
【0110】
また、ピッチ角変更中心点移動部112が、ピッチ角変更中心点80の位置を移動した際、許容範囲算出部102が許容範囲を再算出するようにしても構わない。具体的には、例えば、ピッチ角変更中心点移動部112が、最大ピッチ角θmaxの値を再算出するようにしてもよい。そして、このとき、ピッチ角算出部118が、再算出される最大ピッチ角θmaxが示す角度と、相対ピッチ角θ’との積(θmax×θ’)に基づいて、ピッチ角θを再算出するようにしても構わない。そして、このとき、ピッチ角変更部114が、再算出されるピッチ角θと、ピッチ角変更中心点80の位置と、に基づいて、ピッチ角θを変更するようにしても構わない。
【0111】
視点位置修正部120は、MPU11を主として実現される。視点位置修正部120は、視点移動部110による視点66の移動の際に、視点66を示す位置と仮想オブジェクト(本実施形態では仮想地球オブジェクト72)を示す位置との距離を測定し、当該距離が所与の距離より短い場合は、仮想オブジェクトから離れる方向に視点66の位置を修正する。このようにすると、視点66が地形面132と接触しそうな状況の際に、接触を回避するよう視点66が移動される。また、本実施形態においては、視点66が地形面132の下に隠れることを防ぐことができる(図5J参照)。なお、視点位置修正部120は、視点66の位置の修正の際に、コントローラ42に対して、コントローラ42が備えるバイブレータを振動するように指示してもよい。
【0112】
本実施形態においては、例えば、視点位置修正部120が、視点66と視点投影点160(あるいは地形面132)との間の視点地形面間距離d2を算出する。このとき、視点位置修正部120が、視点66と基準面130との間の距離と、基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dとの差分の値に基づいて、視点地形面間距離d2を算出するようにしても構わない(図7参照)。
【0113】
そして、視点地形面間距離d2の値が所与の閾値である最小視点地形面間距離d2minより小さい場合は、視点位置修正部120が、視点66を視点地形面間距離d2の値が最小視点地形面間距離d2minの値以上となる位置に修正する。具体的には、例えば、視点位置修正部120が、視点地形面間距離d2の値が最小視点地形面間距離d2minの値となるよう、視点66を通る、基準面130に対して垂直な直線上を、基準面130に対して反対の方向に視点66を修正する。なお、このとき、視点位置修正部120が、ピッチ角変更中心点80の位置を併せて修正するようにしても構わない。
【0114】
ピッチ角変更中心点位置修正部122は、MPU11を主として実現される。ピッチ角変更中心点位置修正部122は、視点移動部110による視点66の移動の際に、ピッチ角変更中心点80を示す位置と、仮想オブジェクト(本実施形態においては、例えば、仮想地球オブジェクト72)を示す位置とを測定し、当該距離が所与の範囲を超える場合に、当該距離がこの範囲におさまるようピッチ角変更中心点80の位置を修正する。このとき、視点移動部110は、併せて視点66の位置を修正するようにしても構わない。このようにすると、例えば、視点66の地形面132に対する位置、及び、ピッチ角変更中心点80の地形面132に対する位置の両方が所与の範囲よりも大きく変化した際に、ピッチ角変更中心点80の位置や視点66の位置を変化させることができる(図5G〜図5I参照)。
【0115】
本実施形態においては、例えば、基準距離算出部94が、基準距離データ記憶部96に記憶されている基準距離データを、基準距離算出部94が算出した基準距離を示す基準距離データに更新する際に、ピッチ角変更中心点位置修正部122が、更新前の基準距離と、更新後の基準距離との差分に基づいて、ピッチ角変更中心点80の位置を修正する。
【0116】
次に、本実施形態に係るエンタテインメントシステム10において、所定時間(本実施形態では、1/60秒)毎に実行される処理の一例について、図7に示す説明図及び図13及び図14に示すフロー図を参照しながら説明する。
【0117】
図13及び図14は、エンタテインメントシステム10において所定時間毎に実行される処理のうち、本実施形態に関連する処理を示すフロー図である。図13及び図14に示す処理は、例えば、DVD−ROM等の情報伝達媒体を介して、あるいは、インターネット等の通信ネットワークを介してエンタテインメントシステム10に供給されるプログラムがMPU11によって実行されることによって実現される。
【0118】
まず、操作状態取得部104が、コントローラ42の操作状態を取得する(S1)。
【0119】
そして、操作状態変化判断部108が、S1に示す処理で、コントローラ42の操作状態を取得したか否かを確認する(S2)。操作状態変化判断部108が、コントローラ42の操作状態を取得していない場合(S2:N)は、処理を終了する。
【0120】
操作状態変化判断部108が、コントローラ42の操作状態を取得した場合は(S2:Y)、操作状態記憶部106に記憶されている操作状態データが示す操作状態と、S1に示す処理で操作状態取得部104により取得された操作状態とが対応するか否かを判断する(S3)。
【0121】
ここで、操作状態記憶部106に記憶されている操作状態データが示す操作状態と、S1に示す処理で検出された操作状態とが対応する場合は(S3:Y)、基準距離データ記憶部96に記憶されている地表面基準距離データ、及び、視点移動速度データ記憶部100に記憶されている移動速度データを取得する(S4)。
【0122】
操作状態記憶部106に記憶されている操作状態データが示す操作状態と、S1に示す処理で検出された操作状態とが対応しない場合は(S3:N)、基準距離算出部94が、地形面基準距離Dを算出し、視点移動速度決定部98が、視点66の移動速度vを決定する(S5)。そして、基準距離算出部94が、算出された地形面基準距離Dを示す地形面基準距離データを基準距離データ記憶部96に記憶する。このとき、基準距離データ記憶部96に地形面基準距離データが記憶されている場合は、基準距離算出部94が、その地形面基準距離データを更新する。そして、視点移動速度決定部98が、決定された移動速度vを示す移動速度データを視点移動速度データ記憶部100に記憶する。このとき、視点移動速度データ記憶部100に移動速度データが記憶されている場合は、視点移動速度決定部98が、その移動速度データを更新する。(S6)。
【0123】
そして、S4に示す処理で取得した移動速度データが示す移動速度v、又は、S5に示す処理で決定した移動速度vに基づいて、ピッチ角変更中心点移動部112によるピッチ角変更中心点80の移動や相対ピッチ角データ変更部116による相対ピッチ角データ144の変更を実行する(S7)。
【0124】
そして、許容範囲算出部102が、移動したピッチ角変更中心点80の位置に基づいて、最大ピッチ角θmaxを算出し、この最大ピッチ角θmaxを示す最大ピッチ角データ142に、視点データ記憶部88に記憶されている最大ピッチ角データ142を更新する(S8)。
【0125】
そして、ピッチ角変更中心点移動部112は、ピッチ角変更中心点80の位置に基づいて、ヨー角φを算出し、視点データ記憶部88に記憶されているヨー角データ140を更新する(S9)。
【0126】
そして、ピッチ角算出部118が、相対ピッチ角データ144が示す相対ピッチ角θ、及び、最大ピッチ角データ142が示す最大ピッチ角θmaxに基づいて、ピッチ角θを算出する(S10)。
【0127】
そして、視点移動速度決定部98が、ピッチ角変更中心点地形面間距離d1、及び、ピッチ角変更中心点地形面間距離d1に所与の比率との積であるピッチ角変更半径rを算出する(S11)。
【0128】
そして、視点移動部110が、ピッチ角変更中心点80の現在位置、S11に示す処理で算出されたピッチ角変更半径r、S9に示す処理において算出されたヨー角φ、S10に示す処理において算出されたピッチ角θに基づいて、視点66の位置及び視線方向68を算出し、算出された位置に視点66を移動し、視線方向68を算出された方向に変更する(S12)。
【0129】
そして、基準距離算出部94が、第1地形面距離D1の値と、第2地形面距離D2の値とを算出する(S13)。
【0130】
そして、基準距離算出部94が、第1地形面距離D1の値から基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dの値を引いた値が、地形面基準距離バッファΔDより大きく、かつ、第2地形面距離D2の値から基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dの値を引いた値が、地形面基準距離バッファΔDより大きいか否かを確認する(S14)。
【0131】
ここで、S13に示す条件を満たしている場合は(S14:Y)、基準距離算出部94は、第1地形面距離D1と、第2地形面距離D2のうちの小さい値に、基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dの値を更新する(S15)。そして、ピッチ角変更中心点位置修正部122がピッチ角変更中心点80の位置、及び、視点66の位置を修正する(S16)。
【0132】
S14に示す条件を満たしていない場合は(S14:N)、基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dの値から第1地形面距離D1の値を引いた値が、地形面基準距離バッファΔDより大きく、かつ、基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dの値から第2地形面距離D2の値を引いた値が、地形面基準距離バッファΔDより大きいか否かを確認する(S17)。ここで、S17に示す条件を満たしていない場合は(S17:N)、S19に示す処理を実行する。
【0133】
ここで、S17に示す条件を満たしている場合は(S17:Y)、基準距離算出部94は、第1地形面距離D1と、第2地形面距離D2のうちの大きい値に、基準距離データ記憶部96に記憶されている地形面基準距離データが示す地形面基準距離Dの値を更新する(S18)。そして、ピッチ角変更中心点位置修正部122がピッチ角変更中心点80の位置、及び、視点66の位置を修正する(S16)。
【0134】
そして、視点位置修正部120が、視点地形面間距離d2を算出する(S19)。そして、視点位置修正部120が、視点地形面間距離d2の値が最小視点地形面間距離d2minより小さいか否かを確認する(S20)。
【0135】
そして、視点地形面間距離d2の値が最小視点地形面間距離d2minより小さい場合は(S20:Y)、視点位置修正部120が、視点66を視点地形面間距離d2の値が最小視点地形面間距離d2min以上となる位置に修正する(S21)。視点地形面間距離d2の値が最小視点地形面間距離d2minより小さくない場合は(S20:N)、S22に示す処理を実行する。
【0136】
そして、仮想空間表示部86が、視点66の現在位置、及び、ピッチ角変更中心点80の現在位置に基づいて、仮想空間64内の視点66から視線方向68を見た様子を示す画像をモニタ26の画面に表示する(S22)。
【0137】
このようにして、ユーザの操作に応じて、視点66の位置やピッチ角変更中心点80の位置が移動して、移動後の視点66の位置やピッチ角変更中心点80の位置に基づく仮想空間64を見た様子を示す画像がモニタ26の画面に表示される。
【0138】
なお、本発明は上記実施形態に限定されるものではない。
【0139】
以下、本発明の変形例の実施形態について、図15のフロー図を参照しながら説明する。なお、上記実施形態と共通する点については、説明を省略する。
【0140】
本実施形態においては、視点データ記憶部88には、移動基準点位置データ164、前方向データ166、標高データ168、視点高度データ170、ピッチ角データ172を含む視点データ134が記憶されている(図16参照)。図16は、本実施形態における視点データ134のデータ構造の一例を示す図である。また、図17は、本実施形態に係る仮想地球オブジェクトと視点の位置及び視線方向との関係の一例を説明する説明図である。
【0141】
移動基準点位置データ164は、本実施形態では、ピッチ角変更中心点80を通る、基準面130に対して垂直な直線と、基準面130との交点である移動基準点174の位置を示すデータであり、例えば三次元座標値や、緯度及び経度を示すデータによって表現される。
【0142】
前方向データ166は、基準面130の法線に対して垂直な方向であり、後述する左操作スティックの上方向の操作に対応する前方方向176を示すデータであり、例えば三次元のベクトルデータによって表現される。
【0143】
標高データ168は、本実施形態では、初期状態におけるピッチ角変更中心点投影点158と、移動基準点174との距離である標高を示すデータである。
【0144】
視点高度データ170は、本実施形態では、初期状態におけるピッチ角変更中心点投影点158と、ピッチ角変更中心点80までの距離と、視点66と、ピッチ角変更中心点80までの距離との和である視点高度を示すデータである。
【0145】
ピッチ角データ172は、ピッチ角θを示すデータである。
【0146】
本実施形態においては、まず、操作状態取得部104が操作状態を取得する(S51)。
【0147】
そして、左操作スティック54の姿勢データ(X,Y)を取得している場合は(S52:Y)、操作状態取得部104が取得した左操作スティック54の姿勢データ(X,Y)に基づいて、左操作スティック54のY軸方向が、前方方向176の方向に、X軸方向が、前方方向176に対して右90度の方向に対応付けられた座標上の位置に、ピッチ角変更中心点移動部112が、基準面130に沿って、移動基準点174を移動する(S53)。このとき、移動基準点位置データ164の変更に応じて、前方向データ166を変更するようにしてもよい。なお、このとき、視点高度データ170、及び、ピッチ角データ172は変更されない。一方、標高データ168は変更される。標高データ168がどのように変更されるかについては、後述する。
【0148】
S52に示す条件を満たさない場合は(S52:N)、S54に示す処理を実行する。
【0149】
操作状態取得部104が、右操作スティック56の姿勢データ(X,Y)を取得している場合は(S54:Y)、操作状態取得部104が取得した右操作スティック56の姿勢データ(X,Y)に基づいて、ピッチ角変更部114が、ピッチ角θの増減、及び、前方向データ166の変更(すなわち、ヨー角φの増減)を実行する(S55)。具体的には、例えば、操作状態取得部104が取得したYの値が正(負)である場合に、ピッチ角変更部114が、ピッチ角θの値を減少(増加)する。また、操作状態取得部104が取得したXの値が正(負)である場合に、前方方向176が基準面130の法線方向に対して時計回り(反時計回り)に回転されるよう前方向データ166を変更する。このことによって、ピッチ角θやヨー角φが変更される。このとき、移動基準点位置データ164及び視点高度データ170は変更されない。一方、標高データ168は変更される。標高データ168がどのように変更されるかについては、後述する。
【0150】
S54に示す条件を満たさない場合は(S54:N)、S56に示す処理を実行する。
【0151】
操作状態取得部104が、第2の左ボタン52L又は第2の右ボタン52Rの押圧力を示す所与の値以上のディジタル値を取得した場合は(S56:Y)、視点高度データ170を変更する(S57)。具体的には、例えば、第2の左ボタン52Lの押圧力を示す所与の値以上のディジタル値を取得した場合は、視点移動部110は、視点66を、ピッチ角変更中心点80から離れる方向に移動する。また、操作状態取得部104が、第2の右ボタン52Rの押圧力を示す所与の値以上のディジタル値を取得した場合は、視点移動部110が、視点66を、ピッチ角変更中心点80に近づく方向に移動する。このとき、前方向データ166、移動基準点位置データ164、及び、ピッチ角データ172が変更されない。一方、標高データ168は変更される。標高データ168がどのように変更されるかについては、後述する。
【0152】
S56に示す条件を満たさない場合は(S56:N)、S58に示す処理を実行する。
【0153】
そして、ピッチ角変更中心点位置修正部112が、標高データ168を変更する(S58)。
【0154】
具体的には、例えば、ピッチ角変更中心点投影点158と基準面130との間の距離を第1地形面距離D1と、視点投影点160と基準面130との間の距離を第2地形面距離D2とを測定する。なお、ここで、視点投影点160を通る、基準面130に対して垂直な直線と基準面130との交点を視点基準点178とする。ここで、ピッチ角変更中心点位置修正部112が、視点基準点178の緯度及び経度を示すデータから、緯度及び経度と標高との関係が示されている標高データベースから、移動基準点174の緯度及び経度を示すデータに基づいて第1地形面距離D1を算出し、視点基準点178の緯度及び経度を示すデータに基づいて第2地形面距離D2を算出するようにしても構わない。
【0155】
そして、ピッチ角変更中心点位置修正部112が、標高データ168を変更する。具体的には、例えば、標高データ168が示す標高の値と第1地形面距離D1の値との差、及び、標高データ168が示す標高の値と第2地形面距離D2の値との差が、所定の範囲(例えば、視点高度の0.1倍)よりも大きい場合は、標高データ168を更新する。このとき、所定の範囲は、視点66が地形面132とぶつからないようにするため、後述する視点高度内分率(例えば0.2)よりも小さいことが望ましい。
【0156】
ここで、例えば、第1地形面距離D1の値と第2地形面距離D2の値のうちの小さい方の値から視点高度の0.1倍を引いた値が、標高の値よりも小さい場合には、ピッチ角変更中心点位置修正部112が標高の値を第1地形面距離D1の値と第2地形面距離D2の値のうちの小さい方の値から視点高度の0.1倍を引いた値に変更する。一方、第1地形面距離D1の値と第2地形面距離D2の値のうちの大きい方の値に視点高度の0.1倍を足した値が、標高の値よりも大きい場合には、ピッチ角変更中心点位置修正部112が標高の値を第1地形面距離D1の値と第2地形面距離D2の値のうちの大きい方の値に視点高度の0.1倍を足した値に変更する。このようにして、標高の値は、第1地形面距離D1の値と第2地形面距離D2の値のうちの小さい方の値から視点高度の0.1倍を引いた値と、第1地形面距離D1の値と第2地形面距離D2の値のうちの大きい方の値に視点高度の0.1倍を足した値との間の範囲に収まるようになる。
【0157】
そして、ピッチ角変更中心点移動部112がピッチ角変更中心点80の位置を移動し、視点移動部110が、視点66の位置を移動する(S59)。具体的には、ピッチ角変更中心点移動部112が、移動基準点174から基準面130に対して垂直な方向に、標高の値と、視点高度に所与の比率である視点高度内分率(例えば、0.2)を掛けた値とを足した距離だけ離れた点に、ピッチ角変更中心点80を変更する。そして、視点移動部110が、ピッチ角変更中心点80を中心として、基準面130に対して垂直な方向から、前方方向176に対して反対の方向への角度がピッチ角θである方向に、ピッチ角変更中心点80から、視点高度に、1から視点高度内分率を引いた比率(例えば、0.8)を掛けて値が示す距離だけ離れた点に、視点66の位置を移動する。
【0158】
そして、仮想空間表示部86が、視点66の現在位置、及び、ピッチ角変更中心点80の現在位置に基づいて、仮想空間64内の視点66から視線方向68を見た様子を示す画像をモニタ26の画面に表示する(S60)。
【0159】
なお、本発明は上記実施形態にも限定されない。
【0160】
例えば、上記実施形態では、仮想空間64内に、1つの仮想オブジェクトが存在しているが、仮想空間64内に仮想オブジェクトが複数存在していても構わない。
【図面の簡単な説明】
【0161】
【図1】本発明の一実施形態に係る画像表示装置として用いられるエンタテインメントシステムのハードウェア構成の一例を示すハードウェア構成図である。
【図2】MPUの詳細の一例を示す詳細構成図である。
【図3A】コントローラの一例を示す斜視図である。
【図3B】コントローラの一例を示す上側面図である。
【図4A】仮想空間内の視点から視線方向を見た様子の一例を示す図である。
【図4B】仮想空間内の視点から視線方向を見た様子の一例を示す図である。
【図4C】仮想空間内の視点から視線方向を見た様子の一例を示す図である。
【図5A】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5B】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5C】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5D】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5E】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5F】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5G】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5H】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5I】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図5J】仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【図6】本発明の一実施形態に係る画像表示装置として用いられるエンタテインメントシステムの機能の一例を示す機能ブロック図である。
【図7】本発明の一実施形態に係る仮想地球オブジェクトと視点の位置及び視線方向との関係の一例を説明する説明図である。
【図8】地表面データのデータ構造の一例を示す図である。
【図9】視点データのデータ構造の一例を示す図である。
【図10】本発明の一実施形態に係る仮想地球オブジェクトと視点の位置及び視線方向との初期状態における関係の一例を示す説明図である。
【図11】許容範囲の一例を示す図である。
【図12】許容範囲の別の一例を示す図である。
【図13】本発明の一実施形態に係るエンタテインメントシステムで行われる処理のフローの一例を示す図である。
【図14】本発明の一実施形態に係るエンタテインメントシステムで行われる処理のフローの一例を示す図である。
【図15】本発明の別の実施形態に係るエンタテインメントシステムで行われる処理のフローの一例を示す図である。
【図16】視点データのデータ構造の別の一例を示す図である。
【図17】本発明の別の実施形態に係る仮想地球オブジェクトと視点の位置及び視線方向との関係の一例を説明する説明図である。
【図18】従来の、仮想空間内の視点から視線方向を見た様子を示す画像の一例を示す図である。
【符号の説明】
【0162】
10 エンタテインメントシステム、11 MPU、12 メインプロセッサ、14a〜14h サブプロセッサ、16 バス、18 メモリコントローラ、20 メインメモリ、22,40,44 インタフェース、24 画像処理部、26 モニタ、28 入出力処理部、30 音声処理部、32 スピーカ、34 光ディスク読み取り部、36 光ディスク、38 ハードディスク、42 コントローラ、42a 表面、46 カメラユニット、48 ネットワークインタフェース、50L 第1の左ボタン、50R 第1の右ボタン、52L 第2の左ボタン、52R 第2の右ボタン、54 左操作スティック、56 右操作スティック、58 ボタン群、60 方向ボタン群、62 コントローラケーブル、64 仮想空間、66 視点、68 視線方向、70 視野領域、72 仮想地球オブジェクト、74 山、74a 頂上、76 丘、78 崖、80 ピッチ角変更中心点、82 仮想オブジェクトデータ記憶部、84 仮想オブジェクトデータ取得部、86 仮想空間表示部、88 視点データ記憶部、90 注視点位置算出部、92 ピッチ角変更中心点位置算出部、94 基準距離算出部、96 基準距離データ記憶部、98 視点移動速度決定部、100 視点移動速度データ記憶部、102 許容範囲算出部、104 操作状態取得部、106 操作状態記憶部、108 操作状態変化判断部、110 視点移動部、112 ピッチ角変更中心点移動部、114 ピッチ角変更部、116 相対ピッチ角データ変更部、118 ピッチ角算出部、120 視点位置修正部、122 ピッチ角変更中心点位置修正部、124 地表面データ、126 基準面データ、128 地形面データ、130 基準面、132 地形面、134 視点データ、136 注視点、138 ピッチ角変更中心点位置データ、140 ヨー角データ、142 最大ピッチ角データ、144 相対ピッチ角データ、146 ヨー角基準方向、148 ピッチ角変更中心点基準面、150 ヨー角方向、152 ピッチ角変更中心点移動基準方向、154 ピッチ角変更基準方向、156 ピッチ角変更面、158 ピッチ角変更中心点投影点、160 視点投影点、162 許容範囲、164 移動基準点位置データ、166 前方向データ、168 標高データ、170 視点高度データ、172 ピッチ角データ、174 移動基準点、176 前方方向、178 視点基準点、B1 地平線

【特許請求の範囲】
【請求項1】
仮想オブジェクトが配置されている仮想空間内の視点及び視線方向から決定される視野領域を見た様子を示す画像を表示する画像表示装置であって、
ユーザによる視点移動操作に応じて、前記視野領域に含まれる前記仮想オブジェクトを示す位置と前記視点を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、前記視点の移動速度を決定する視点移動速度決定手段と、
前記視点移動速度決定手段により決定される前記移動速度で前記視点の位置を移動する視点移動手段と、
を含むことを特徴とする画像表示装置。
【請求項2】
前記視点移動速度決定手段が、前記仮想オブジェクト視点間距離の値が増加するほど前記移動速度の値が増加するよう前記移動速度を決定する、
ことを特徴とする請求項1に記載の画像表示装置。
【請求項3】
前記視点移動手段による前記視点の移動の際に、前記視点を示す位置と前記仮想オブジェクトを示す位置との距離を測定し、当該距離が所与の距離より短い場合は、前記仮想オブジェクトから離れる方向に前記視点の位置を修正する視点位置修正手段、をさらに含む、
ことを特徴とする請求項1又は2に記載の画像表示装置。
【請求項4】
ユーザによるピッチ角変更操作に応じて、前記視点の現在位置から、前記視点から視線方向に向かう直線上に存在するピッチ角変更中心点を中心にピッチ角を変更し、ピッチ角変更後の前記視点の位置から前記ピッチ角変更中心点を向くよう前記視線方向を変更するピッチ角変更手段と、
前記視点移動手段による前記視点の移動の際に、前記ピッチ角変更中心点を示す位置と前記仮想オブジェクトを示す位置との距離を測定し、当該距離が所与の範囲を超える場合に、当該距離が前記範囲におさまるよう前記ピッチ角変更中心点の位置を修正するピッチ角変更中心点位置修正手段と、
をさらに含む、
ことを特徴とする請求項1乃至3のいずれか一項に記載の画像表示装置。
【請求項5】
仮想オブジェクトが配置されている仮想空間内の視点から視野領域を見た様子を示す画像を表示する画像表示装置の制御方法であって、
ユーザによる視点移動操作に応じて、前記視野領域に含まれる前記仮想オブジェクトを示す位置と前記視点を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、前記視点の移動速度を決定する視点移動速度決定ステップと、
前記視点移動速度決定ステップにより決定される前記移動速度で前記視点の位置を移動する視点移動ステップと、
を含むことを特徴とする画像表示装置の制御方法。
【請求項6】
仮想オブジェクトが配置されている仮想空間内の視点から視野領域を見た様子を示す画像を表示する画像表示装置としてコンピュータを機能させるためのプログラムであって、
ユーザによる視点移動操作に応じて、前記視野領域に含まれる前記仮想オブジェクトを示す位置と前記視点を示す位置との関係に基づく距離である仮想オブジェクト視点間距離に基づいて、前記視点の移動速度を決定する視点移動速度決定手段、
前記視点移動速度決定手段により決定される前記移動速度で前記視点の位置を移動する視点移動手段、
として前記コンピュータを機能させるためのプログラム。
【請求項7】
請求項6に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図5D】
image rotate

【図5E】
image rotate

【図5F】
image rotate

【図5G】
image rotate

【図5H】
image rotate

【図5I】
image rotate

【図5J】
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


【公開番号】特開2009−259131(P2009−259131A)
【公開日】平成21年11月5日(2009.11.5)
【国際特許分類】
【出願番号】特願2008−109660(P2008−109660)
【出願日】平成20年4月18日(2008.4.18)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】