(57)【特許請求の範囲】
【請求項１】
操作装置を介して受け付けた操作者の操作内容にしたがい仮想的な３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を、表示装置の表示画面上に表示させるエンタテインメント装置であって、
前記オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を、前記３次元世界中における前記オブジェクトの移動速度を考慮して決定するカメラ設定手段を有し、
前記カメラ設定手段は、
前記仮想的なカメラが、前記オブジェクトの移動方向に対して当該オブジェクトの前方に設定された前記３次元世界中の仮想的な点であるカメラ参照点を向くように、当該カメラの視線方向を設定すると共に、前記オブジェクトの移動速度が大きくなるほど、前記カメラ参照点が前記オブジェクトの移動方向に対してより前方へ移動するように、前記カメラ参照点を設定すること
を特徴とするエンタテインメント装置。
【請求項２】
請求項１記載のエンタテインメント装置であって、
前記カメラ設定手段は、
前記オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を、前記オブジェクトの移動速度が大きくなるほど、前記仮想的なカメラが前記オブジェクトの移動方向に対して当該オブジェクトの後方へ遠ざかるよう決定すること
を特徴とするエンタテインメント装置。
【請求項３】
請求項１または２記載のエンタテインメント装置であって、
前記カメラ設定手段は、
前記オブジェクトの移動方向を軸とした回動に応じて、前記仮想的なカメラを、前記カメラの視線方向を軸として回動させること
を特徴とするエンタテインメント装置。
【請求項４】
電子計算機に読み取られ実行されるプログラムを記憶した記憶媒体であって、
前記プログラムは、前記電子計算機に読み取られて実行されることで、
当該電子計算機に接続された操作装置を介して受け付けた操作者の操作内容にしたがい仮想的な３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を、表示装置の表示画面上に表示させる手段を、当該電子計算機上に構築するものであり、
前記表示させる手段は、
前記オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を、前記３次元世界中における前記オブジェクトの移動速度を考慮して決定するカメラ設定手段を有し、
前記カメラ設定手段は、
前記仮想的なカメラが、前記オブジェクトの移動方向に対して当該オブジェクトの前方に設定された前記３次元世界中の仮想的な点であるカメラ参照点を向くように、当該カメラの視線方向を設定すると共に、前記オブジェクトの移動速度が大きくなるほど、前記カメラ参照点が前記オブジェクトの移動方向に対してより前方へ移動するように、前記カメラ参照点を設定すること
を特徴とする記憶媒体。
【請求項５】
請求項４記載の記憶媒体であって、
前記カメラ設定手段は、
前記オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を、前記オブジェクトの移動速度が大きくなるほど、前記仮想的なカメラが前記オブジェクトの移動方向に対して当該オブジェクトの後方へ遠ざかるよう決定すること
を特徴とする記憶媒体。
【請求項６】
請求項４または５記載の記憶媒体であって、
前記カメラ設定手段は、
前記オブジェクトの移動方向を軸とした回動に応じて、前記仮想的なカメラを、前記カメラの視線方向を軸として回動させること
を特徴とする記憶媒体。
【請求項７】
表示装置の表示画面上に、仮想的な３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を表示する、オブジェクト表示方法であって、
前記３次元世界中における前記オブジェクトの移動速度を考慮して、当該オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を決定するステップを有し、
前記ステップは、
前記仮想的なカメラが、前記オブジェクトの移動方向に対して当該オブジェクトの前方に設定された前記３次元世界中の仮想的な点であるカメラ参照点を向くように、当該カメラの視線方向を設定すると共に、前記オブジェクトの移動速度が大きくなるほど、前記カメラ参照点が前記オブジェクトの移動方向に対してより前方へ移動するように、前記カメラ参照点を設定すること
を特徴とするオブジェクト表示方法。
【請求項８】
電子計算機に読み取られ実行されるプログラムであって、
前記プログラムは、記憶装置に格納され、前記電子計算機に読み取られて実行されることで、
当該電子計算機に接続された操作装置を介して受け付けた操作者の操作内容にしたがい仮想的な３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を、表示装置の表示画面上に表示させる手段を、当該電子計算機上に構築するものであり、
前記表示させる手段は、
前記オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を、前記３次元世界中における前記オブジェクトの移動速度を考慮して決定するカメラ設定手段を有し、
前記カメラ設定手段は、
前記仮想的なカメラが、前記オブジェクトの移動方向に対して当該オブジェクトの前方に設定された前記３次元世界中の仮想的な点であるカメラ参照点を向くように、当該カメラの視線方向を設定すると共に、前記オブジェクトの移動速度が大きくなるほど、前記カメラ参照点が前記オブジェクトの移動方向に対してより前方へ移動するように、前記カメラ参照点を設定すること
を特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、操作装置を介して受け付けた利用者の操作内容にしたがい仮想的な３次元世界中を移動するオブジェクトを、仮想的なカメラで撮影することで得られる動画像を作成し、表示装置の表示画面上に表示する技術に関する。
【０００２】
【従来の技術】
近年、３次元グラフィックアニメーションを利用して、フライトシミュレーションやドライブシミュレーションなどを行うことが可能な、テレビゲーム機などのエンタテインメント装置が普及している。
【０００３】
この種のエンタテインメント装置では、操作者は、当該装置に接続された操作装置を使用して、飛行機、自動車などを表すオブジェクトを操作し、仮想的な３次元世界中を移動させることができる。当該エンタテインメント装置は、この３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を生成し、当該装置に接続された表示装置の表示画面に表示する。
【０００４】
ところで、従来のフライトシミュレーションやドライブシミュレーションなどを行うことが可能なエンタテイメント装置では、仮想的なカメラをオブジェクトとの相対的な位置関係で一義的（固定的）に定まる位置に設定している。
【０００５】
図１５は、従来のこの種のエンタテイメント装置におけるオブジェクト（飛行機を表すオブジェクト）９０１と仮想的なカメラ９０２との位置関係を説明するための図である。ここで、図１５（ａ）は、３次元世界中に配置されたオブジェクト９０１と仮想的なカメラ９０２を、真上（Ｚ軸の無限遠方）から見下ろした様子を示しており、図１５（ｂ）は、３次元世界中に配置されたオブジェクト９０１と仮想的なカメラ９０２を、真横（Ｘ軸の無限遠方）から見た様子を示している。なお、これらの図では３次元世界中に配置された地図構成要素の図示を省略している。
【０００６】
図示するように、従来のフライトシミュレーションやドライブシミュレーションなどを行うことが可能なエンタテイメント装置では、たとえば、オブジェクト９０１を通過する、当該オブジェクト９０１の移動方向に沿った線９０３において、オブジェクト９０１から所定距離Ｌだけ後方の位置より所定距離Ｈだけ上方の位置（カメラ設置点Ａ）や、オブジェクト９０１の位置（カメラ設置点Ｂ）に、仮想的なカメラ９０２を設置し、当該カメラ９０２が、当該オブジェクト９０１より前方の線９０３上の任意の点を向くように、当該カメラの視線方向を設定している。
【０００７】
図１６は、図１５に示すようにして配置された仮想的なカメラ９０２からオブジェクト９０１を撮影した場合に得られる映像を示した図である。ここで、図１６（ａ）は、図１５において仮想的なカメラ９０２をカメラ設置点Ａに設定した場合に、当該カメラ９０２により得られる映像の一例を示しており、図１６（ｂ）は、図１５において仮想的なカメラ９０２をカメラ設置点Ｂに設定した場合に、当該カメラ９０２により得られる映像の一例を示している。
【０００８】
【発明が解決しようとする課題】
さて、上述したように、従来のフライトシミュレーションやドライブシミュレーションなどを行うことが可能なエンタテイメント装置では、仮想的なカメラをオブジェクトとの相対的な位置関係で一義的（固定的）に定まる位置に設定しているため、以下のような問題が生ずる。
【０００９】
すなわち、現実の世界において、自動車を運転したり飛行機を操縦する場合、移動速度を上げれば、通常、より広い範囲で遠方まで、周囲に注意を払う必要が生ずる。
【００１０】
しかしながら、上述したように、従来のフライトシミュレーションやドライブシミュレーションなどを行うことが可能なエンタテイメント装置では、仮想的なカメラの配置位置がオブジェクト位置との関係で一義的に定まるため、当該カメラに収められる（つまり表示装置の表示画面に表示される）オブジェクト周囲の映像は、仮想的な３次元世界中におけるオブジェクトの移動速度にかかわらず、一定である。このため、操作者にとって、オブジェクトの移動速度を上げたときに、相対的に視界が狭くなるため、極端に操作が難くなるという傾向がある。
【００１１】
なお、この問題は、操作者が操作装置に入力したパラメータにより特定される移動速度を、３次元世界中を移動するオブジェクトの移動速度にそのまま反映させず、前記パラメータにより特定される移動速度よりも低い移動速度（たとえば、パラメータにより特定される移動速度に１未満の所定の係数を乗算した値）で、オブジェクトが３次元世界中を移動するように設定することで、解決できるかもしれない。しかしながら、この場合、３次元世界中を移動するオブジェクトの移動速度を、前記パラメータにより特定される移動速度よりも極端に低くすると、操作者は、表示装置の表示画面に表示された動画像から、所望のスピード感を得ることができなくなり、十分に楽しむことができない。
【００１２】
そこで、本発明は、仮想的な３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を、表示装置の表示画面上に表示するエンタテインメント装置において、表示装置の表示画面に表示された動画像から所望のスピード感を得ることができるようにすることを課題とする。
【００１３】
また、フライトシミュレーションやドライブシミュレーションなどの、操作者が操作装置を用いて仮想的な３次元世界中を移動するオブジェクトを操作することのできるエンタテイメント装置において、オブジェクトを操作する楽しみを十分に享受できるようにすることを課題とする。具体的には、オブジェクトの移動速度を上げた場合でも、極端に操作が難くなることを防ぎつつ、所望のスピード感を得ることができるようにする。
【００１４】
【課題を解決するための手段】
前記課題達成のために、本発明では、仮想的な３次元世界中を移動するオブジェクト（たとえば飛行機や自動車を表すオブジェクト）を仮想的なカメラで撮影することで得られる動画像を作成し、表示装置の表示画面上に表示するエンタテインメント装置において、前記オブジェクトと前記仮想的なカメラとの前記３次元世界中における位置関係を、前記３次元世界中における前記オブジェクトの移動速度を考慮して決定する。
【００１５】
たとえば、前記オブジェクトの移動速度が大きくなるほど、前記仮想的なカメラが前記オブジェクトの移動方向に対して当該オブジェクトの後方へ遠ざかるよう決定する。
【００１６】
このようにすれば、操作者が、本発明のエンタテインメント装置に接続された操作装置を用いて前記オブジェクトの移動速度を上げた場合、移動速度の増加分に応じて、前記仮想的なカメラに収められる（つまり表示装置の表示画面に表示される）オブジェクト周囲の映像が広くなる。したがって、オブジェクトの移動速度を上げたときに、極端に操作が難くなるという問題を解決できる。
【００１７】
また、オブジェクトの移動速度は、当該オブジェクトの当該オブジェクト周囲に配置された地図構成要素に対する相対速度として、表示装置の表示画面に表示される動画像に反映されるため、オブジェクトの移動速度の増加分に応じて、仮想的なカメラに収められるオブジェクト周囲の映像が広くなっても、前記動画像から得られるスピード感は失われない。
【００１８】
なお、本発明において、前記カメラ設定手段は、前記仮想的なカメラが、前記オブジェクトの移動方向に対して当該オブジェクトの前方に設定された前記３次元世界中の仮想的な点であるカメラ参照点を向くように、当該カメラの視線方向を設定するものでもよい。
【００１９】
たとえば、前記オブジェクトの移動速度に関連した値が大きくなるほど、前記カメラ参照点が前記オブジェクトの移動方向に対してより前方へ移動するように、前記カメラ参照点を設定するようにしてもよい。
【００２０】
このようにすれば、操作者が、本発明のエンタテインメント装置に接続された操作装置を用いて前記オブジェクトの移動速度を上げた場合、移動速度の増加分に応じて、前記仮想的なカメラに収められる（つまり表示装置の表示画面に表示される）オブジェクト周囲の映像がより遠方にまで広がる。
【００２１】
【発明の実施の形態】
以下、本発明の一実施形態について説明する。
【００２２】
まず、本発明の一実施形態に係るエンタテインメント装置のハードウエア構成について説明する。
【００２３】
図１に本発明の一実施形態に係るエンタテインメント装置の外観を示す。
【００２４】
このエンタテインメント装置は、たとえば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭの光ディスク等に記憶されているゲームプログラムを読み出して、操作者（プレイヤ）からの指示に応じて実行するものである。なお、ゲームの実行とは、主として、プレイヤからの指示に応じて、このエンタテインメント装置に接続された表示装置（テレビなど）の表示画面上に表示されている操作対象オブジェクト（たとえば、飛行機や自動車などを表すオブジェクト）を動かし、これに伴い動画像の表示や音声を制御して、ゲームを進行することをいう。
【００２５】
図示するように、エンタテインメント装置１の本体２は、その中央部にテレビゲーム等のアプリケーションプログラムやマルチメディアデータを供給するための記録媒体であるＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の光ティスクが装着されるディスク装着部３と、ゲームをリセットするためのリセットスイッチ４と、電源スイッチ５と、光ディスクの装着を操作するためのディスク操作スイッチ６と、たとえば２つのスロット部７Ａ、７Ｂと、を備えている。
【００２６】
スロット部７Ａ、７Ｂには、２つの操作装置２０を接続することができ、２人のプレイヤが対戦ゲームや競争ゲームなどを行うことができる。また、このスロット部７Ａ、７Ｂには、ゲームデータをセーブ（記憶）したり、読み出すことができるメモリカード装置２６や、本体２と切り離してゲームを実行できる携帯用電子機器１００を装着することができる。
【００２７】
操作装置２０は、第１、第２の操作部２１、２２と、Ｌボタン２３Ｌと、Ｒボタン２３Ｒと、スタートボタン２４と、選択ボタン２５を有し、さらに、アナログ操作が可能なアナログ操作部３１、３２と、これら操作部３１、３２の操作モードを選択するモード選択スイッチ３３と、選択された操作モードを表示するための表示部３４を有している。
【００２８】
アナログ操作部３１、３２は、図２に示すように、所定の支点ａを通る所定の軸ｂに対し、支点ａを中心にして傾倒可能に且つ傾倒した状態で回転可能に構成された操作軸３１ａ、３２ａを有する。操作装置２０は、操作軸３１ａ、３２ａの軸ｂに対する傾きとその傾き方向を検知し、これらから定まるＸ−Ｙ座標上の座標値に応じた信号を出力する。この座標値は、図３に示すように、Ｙ（垂直）方向の値は操作軸３１ａ、３２ａの上下方向の傾きに応じて「０」〜「２５５」の２５６段階の値で表現され、Ｘ（水平）方向の値は、操作軸３１ａ、３２ａの左右方向の傾きに応じて「０」〜「２５５」の２５６段階の値で表現される。
【００２９】
次に、図４に、エンタテインメント装置１の構成を示す。
【００３０】
図示するように、このエンタテインメント装置１は、中央処理装置（ＣＰＵ：ＣｅｎｔＲａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１およびその周辺装置等からなる制御系５０と、フレームバッファ６３に描画を行なう画像処理装置（ＧＰＵ：Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６２等からなるグラフィックシステム６０と、楽音・効果音等のオーディオ信号を生成する音声処理装置（ＳＰＵ：Ｓｏｕｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７１等からなるサウンドシステム７０と、アプリケーションプログラムやマルチメディアデータが記録されている光ディスクの制御を行なう光ディスク制御部８０と、プレイヤからの指示が入カされる操作装置２０からの信号およびゲームの設定等を記憶するメモリカード２６や携帯用電子機器１００からのデータの入出力を制御する通信制御部９０と、上記の各部が接続されているバスＢＵＳ等を備えている。
【００３１】
制御系５０は、ＣＰＵ５１と、割り込み制御やダイレクトメモリアクセス（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送の制御等を行なう周辺装置制御部５２と、ランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）からなるメインメモリ（主記憶装置）５３と、メインメモリ５３やグラフィックシステム６０やサウンドシステム７０等の管理を行なう、いわゆるオペレーティングシステム等のプログラムが格納されたリードオンリーメモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５４と、を備えている。
【００３２】
ＣＰＵ５１は、ＲＯＭ５４に記録されているオペレーティングシステムを実行することにより、このエンタテインメント装置１の全体を制御するもので、たとえばＲＩＳＣ−ＣＰＵからなる。
【００３３】
そして、このエンタテインメント装置１は、電源が投入されると、制御系５０のＣＰＵ５１がＲＯＭ５４に記憶されているオペレーティングシステムを実行する。これにより、ＣＰＵ５１が、グラフィックシステム６０やサウンドシステム７０等の制御を行なうようになっている。
【００３４】
また、オペレーティングシステムが実行されると、ＣＰＵ５１は、動作確認等のエンタテインメント装置１全体の初期化を行った後、光ディスク制御部８０を制御して、光ディスクに記録されているゲーム等のアプリケーションプログラムを実行する。このゲーム等のプログラムの実行により、ＣＰＵ５１は、プレイヤからの入力に応じてグラフィックシスデム６０やサウンドシステム７０等を制御して、画像の表示や効果音・楽音の発生を制御する。
【００３５】
また、グラフィックシステム６０は、座標変換等の処理を行なうジオメトリトランスファエンジン（ＧＴＥ：Ｇｅｏｍｅｔｒｙ  Ｔｒａｎｓｆｅｒ  Ｅｎｇｉｎｅ）６１と、ＣＰＵ５１からの描画指示に従って描画を行なうＧＰＵ６２と、このＧＰＵ６２により描画された画像を記憶するフレームバッファ６３と、離散コサイン変換等の直交変換により圧緒されて符号化された画像データを復号する画像デコーダ６４と、を備えている。
【００３６】
ＧＴＥ６１は、たとえば複数の演算を並列に実行する並列演算機構を備え、座標変換などの行列あるいはベクトル等の演算を行なう。具体的には、このＧＴＥ６１は、たとえば、光ディスクに記録されているゲーム等のアプリケーションプログラムがいわゆる３Ｄグラフィックを利用する場合に、三角形状のポリゴンの集合で仮想的な３次元オブジェクトを構成する。そして、この３次元オブジェクトを仮想的なカメラで撮影することにより得られる画像を生成するための諸計算、すなわち、レンダリングを行う場合における透視変換（３次元オブジェクトを構成する各ポリゴンの頂点を仮想的なカメラスクリーン上に投影した場合における座標値の計算）などを行う。
【００３７】
次に、ＧＰＵ６２は、ＣＰＵ５１からの命令に従って、必要に応じてＧＴＥ６１を利用しながら、フレームバッファ６３に対して３次元オブジェクトのレンダリングを行って、画像を作成する。そして、作成した画像を表すビデオ信号を出力する。なお、レンダリングに用いる隠線、隠面消去の手法としては、Ｚバッファ法、スキャンライン法、レイトレーシング法などを使用する。陰影付けを行うシェーディングの手法としては、フラットシェーディング、グーローシェーディング、レイトレーシング法などを使用する。また、３次元オブジェクトの表面の表面材質や模様を表現する手法としてはテクスチャマッピングなどを使用する。
【００３８】
次に、フレームバッファ６３は、いわゆるデュアルポートＲＡＭからなり、ＧＰＵ６２のレンダリングあるいはメインメモリからの転送と、表示のための読み出しとを同時に行なうことができるようになっている。また、このフレームバッファ６３には、レンダリング、表示のための読み出しが行われる画像領域の他に、前記テクスチャマッピングなどに用いられるテクスチャが記憶されるテクスチヤ領域が設けられている。
【００３９】
次に、画像デコーダ６４は、ＣＰＵ５１からの制御により、メインメモリ５３に記憶されている静止画あるいは動画の画像データを復号して、メインメモリ５３に記憶する。また、この再生された画像データは、ＧＰＵ６２を介してフレームバッファ６３に記憶することにより、上述のＧＰＵ６２によってレンダリングされる画像の背景として使用することができるようになっている。
【００４０】
次に、サウントシステム７０は、ＣＰＵ５１からの指示に基づいて、楽音・効果音等のオーディオ信号を出力するＳＰＵ７１と、このＳＰＵ７１により波形データ等が記録されるサウンドバッファ７２を備えている。
【００４１】
ＳＰＵ７１は、適応予測符号化（ＡＤＰＣＭ：Ａｄａｐｔｉｖｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  ＰＣＭ）された音声データを再生するＡＤＰＣＭ復号機能と、サウンドバッファ７２に記憶されている波形データを再生することにより、効果音等のオーディオ信号を再生し出力する再生機能と、サウンドバッファ７２に記憶されている波形データを変調させて再生する変調機能等を備えている。このような機能を備えることによって、このサウンドシステム７０は、ＣＰＵ５１からの指示によりサウンドバッファ７２に記憶された波形データに基づき楽音・効果音等のオーディオ信号を発生する、いわゆるサンプリング音源として使用することができるように構成されている。
【００４２】
次に、光ディスク制御部８０は、光ディスクに記録されたプログラムやデータ等を再生する光ディスク装置８１と、例えばエラー訂正符号（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）が付加されて記録されているプログラムやデータ等を復号するデコーダ８２と、光ディスク装置８１からのデータを一時的に記憶することにより、光ディスクからのデータの読み出しを高速化するバッファ８３を備えている。デコーダ８２には、サブＣＰＵ８４が接続されている。
【００４３】
なお、光ティスク装置８１で読み出される、光ディスクに記録されている音声データとしては、上述のＡＤＰＣＭデータの他にオーディオ信号をアナログ／デジタル変換したいわゆるＰＣＭデータがある。ＡＤＰＣＭデータは、デコーダ８２で復号された後、上述のＳＰＵ７１に供拾され、ＳＰＵ７１でデジタル／アナログ変換等の処理が施された後、このエンタテインメント装置１に接続されたオーディオ機器などの音響装置から楽音・効果音等として出力される。また、ＰＣＭデータは、ＳＰＵ７１でデジタル／アナログ変換等の処理が施された後、同様に、音響装置から楽音・効果音等として出力される。
【００４４】
次に、通信制御部９０は、バスＢＵＳを介してＣＰＵ５１との通信の制御を行なう通信制御機９１を備えている。通信制御機９１には、プレイヤからの指示を入カする操作装置２０が接続される操作装置接続部１２と、ゲームの設定データ等を記憶する補助記憶装置としてメモリカード２６や携帯用電子機器１００が接続されるメモリカード挿入部８Ａ、８Ｂが設けられている。
【００４５】
操作装置接続部１２に接続された操作装置２０は、プレイヤからの指示を入力するために、通信制御機９１からの指示に従って、前記各ボタンや操作部の状態を、同期式通信により、通信制御機９１に送信する。そして、通信制御機９１は、操作装置２０の前記各ボタンや操作部の状態をＣＰＵ５１に送信する。
【００４６】
これにより、プレイヤからの指示がＣＰＵ５１に入カされ、ＣＰＵ５１は、実行しているゲームプログラム等に基づいて、プレイヤからの指示に従った処理を行なう。具体的には、制御系７０の他の各部およびグラフィックシステム６０と連携して、操作対象オブジェクトを含む画像を生成し、表示装置の表示画面に表示させる。そして、操作装置２０に入力されたプレイヤからの指示にしたがい、操作対象オブジェクトの表示位置や姿勢などを変えた画像（必要に応じてその背景も変える）を順次生成し、表示装置の表示画面に表示させることで、あたかも、操作装置２０に入力されたプレイヤの操作内容に応じて、操作対象オブジェクトが操作されるように、動画像を生成する。また、必要に応じて、サウントシステム７０と連携し、音声装置より出力する音声や音楽を制御する。
【００４７】
ここで、メインメモリ５３、ＧＰＵ６２、画像デコーダ６４およびデコーダ８２等の間では、プログラムの読み出し、画像の表示あるいは描画等を行なう際に、画像データを高速に転送する必要がある。そこで、このエンタテインメント装置１では、上述のようにＣＰＵ５１を介ざずに周辺装置制御部５２からの制御によりメインメモリ５３、ＧＰＵ６２、画像デコーダ６４およびデコーダ８２等の間で直接データの転送を行なう、いわゆるＤＭＡ転送を行なうことができるようになっている。これにより、データ転送によるＣＰＵ５１の負荷を低減させることができ、高速なデータの転送を行なうことができる。
【００４８】
また、ＣＰＵ５１は、実行しているゲームの設定データ等を記憶する必要があるときに、その記憶するデータを通信制御機９１に送信し、通信制御機９１は、ＣＰＵ５１からのデータをメモリカード挿入部８Ａまたは８Ｂのスロットに装着されたメモリカード２６や携帯用電子機器１００に書き込む。
【００４９】
ここで、通信制御機９１には、電気的な破壊を防止するための保護回路が内蔵されている。メモリカード２６や携帯用電子機器１００は、バスＢＵＳから分離されており、装置本体の電源を入れた状態で、着脱することができる。従って、メモリカード２６や携帯用電子機器１００の記憶容量が足りなくなった場合等に、装置本体の電源を遮断することなく、新たなメモリカードなどを挿着できる。このため、バツクアップする必要があるゲームデータが失われてしまうことなく、新たなメモリカードを装着して、必要なデータを新たなメモリカードに書き込むことができる。
【００５０】
なお、パラレルＩ／Ｏインタフェース（ＰＩＯ）９６、および、シリアルＩ／Ｏインタフェース（ＳＩＯ）９７は、メモリカード２６や携帯用電子機器１００と、エンタテインメント装置１とを接続するためのインタフェースである。
【００５１】
以上、エンタテインメント装置１のハードウエア構成について説明した。
【００５２】
次に、上記構成のエンタテインメント装置１において、ＣＰＵ５１が、ディスク装着部３に装着された光ディスクから読み出されたアプリケーションプログラムを実行することで、実現されるフライトシミュレーションゲームについて説明する。
【００５３】
なお、ここで、フライトシミュレーションゲームとは、プレイヤが、エンタテインメント装置１に接続された操作装置２０を使用して、飛行機を表す操作対象オブジェクトを操作し、仮想的な３次元世界中を移動させることで、飛行機の操縦を仮想的に体験することができるゲームである。エンタテインメント装置１は、この３次元世界中を移動する操作対象オブジェクトを仮想的なカメラで撮影することで得られるＣＧアニメーション画像を生成し、当該エンタテインメント装置１に接続された表示装置の表示画面に表示する。
【００５４】
まず、光ディスクのデータ構成について説明する。
【００５５】
図５は、ディスク装着部３に装着される光ディスク８５のデータ構成を説明するための図である。
【００５６】
図示するように、光ディスク８５には、フライトシミュレーションゲームを実現するためのアプリケーションプログラム（ＰＧ）５０１と、オブジェクトデータ（ＤＡ）５０２や地図データベース（ＤＢ）５０３を含む各種データが記録されている。
【００５７】
オブジェクトＤＡ５０２には、フライトシミュレーションゲームにおいて、プレイヤが操作装置２０を用いて操作する操作対象オブジェクト（飛行機を表すオブジェクト）の、３次元形状やテクスチャなどを特定するために必要な各種情報が格納されている。地図ＤＢ５０３には、フライトシミュレーションゲームにおいて、操作対象オブジェクトが移動する仮想的な３次元世界中の地形を特定する様々な地図構成要素の情報が格納されている。
【００５８】
次に、エンタテインメント装置１上に構築される、フライトシミュレーションゲームを実現するためのソフトウエア構成について説明する。
【００５９】
図６は、エンタテインメント装置１上に構築されるフライトシミュレーションゲームを実現するためのソフトウエア構成を示した図である。なお、この図に示す各構成要素は、光ディスク制御部８０によりディスク装着部３に装着された光ディスク８５から読み出され、メインメモリ５３上にロードされたアプリケーションＰＧ５０１を、ＣＰＵ５１が実行することにより、プロセスとして具現化される。
【００６０】
図６において、操作内容受付部８０１は、操作装置２０に入力されたプレイヤの指示にしたがい、仮想的な３次元世界中を移動する操作対象オブジェクトの移動速度や移動方向を決定する。この処理は定期的に行われる。
【００６１】
ここで、操作対象オブジェクトの移動速度は、たとえば、操作装置２０の第１、２の操作部２１、２２、Ｌボタン２３ＬおよびＲボタン２３Ｒのうちのいずれかに、スロットルと同じ機能を持たせることで決定する。
【００６２】
すなわち、スロットルと同じ機能を持たせたボタンの検知信号が操作装置２０から出力されているときは、スロットルオンと判断し、当該ボタンの検知信号が出力されたいないときはスロットルオフと判断する。そして、スロットルオンと判断された場合は、前回決定した操作対象オブジェクトの移動速度に、予め定められたスロットルオンに応じた加速度と前回移動速度を決定してからのスロットルオンの継続時間より求まる速度を加算することで、操作対象オブジェクトの移動速度を決定する。一方、スロットルオフと判断された場合は、前回決定した操作対象オブジェクトの移動速度に、予め定められたスロットルオフに応じた減速度と前回移動速度を決定してからのスロットルオフの継続時間より求まる速度を減算することで、操作対象オブジェクトの移動速度を決定する。
【００６３】
また、操作対象オブジェクトの移動方向は、たとえば操作装置２０の操作軸３１ａ、３２ａに、操縦かんと同じ機能を持たせることで決定する。
【００６４】
すなわち、操作軸３１ａ、３２ａに加えられた操作により、操作装置２０から出力されたＸ−Ｙ座標上の座標値に応じた信号のＸ座標成分の値に応じて、操作対象オブジェクトが表す飛行機の左右の傾きを決定し、Ｙ座標成分の値に応じて、当該飛行機の機首の上下を決定する。
【００６５】
具体的には、図３において、Ｘ座標成分の値が１２８〜２５５の場合は、その値が大きいほど飛行機が右に大きく傾き、Ｘ座標成分の値が０〜１２６の場合は、その値が小さいほど飛行機が左に大きく傾くものとする。そして、Ｘ座標成分の値が１２７の場合は飛行機の左右への傾きなしとする。また、Ｙ座標成分の値が１２８〜２５５の場合は、その値が大きいほど飛行機の機首を大きく上げ、Ｙ座標成分の値が０〜１２６の場合は、値が小さいほど飛行機の機首を大きく下げるものとする。そして、Ｙ座標成分の値が１２７の場合は飛行機の機首の上下はなしとする。
【００６６】
そして、操作内容受付部８０１は、操作装置２０から出力されたＸ−Ｙ座標上の座標値に応じた信号により特定される、操作対象オブジェクトが表す飛行機の左右の傾きおよび機首の上下より、前回決定した操作対象オブジェクトの移動方向に対する相対的な移動方向の変化分を求め、これを前回決定した操作対象オブジェクトの移動方向に加算する。これにより、当該操作対象オブジェクトの移動方向を決定する。
【００６７】
ところで、現実の世界において、操縦かんを用いて、飛行機を完全な旋回飛行状態に移行させる行為は、非常に高度な操縦が要求される。このため、操作装置２０の操作軸３１ａ、３２ａに、操縦かんと同じ機能をそのまま持たせるのでは、不慣れなプレイヤにとって、操作対象オブジェクトの操作が難し過ぎて、十分にフライトシミュレーションゲームを楽しめなくなるかもしれない。
【００６８】
そこで、本実施形態では、操作対象受付部８０１に、操作軸３１ａ、３２ａに加えられた操作により、操作装置２０から出力された信号が示すＸ−Ｙ座標上の座標値が、所定の範囲にある場合、操作内容受付部８０１は、操作対象オブジェクトに所定の動作（現実の世界において、操縦が困難と思われる動作）を行わせるものと判断させている。そして、操作対象オブジェクトの移動方向が、当該動作を行うために要求される方向となるように決定している。図３に示す例では、操作内容受付部８０１は、Ｘ−Ｙ座標上の座標値がＸ座標値≧２４０、Ｙ座標値≦１５の場合は、操作対象オブジェクトに右回りの急旋回飛行を行わせるものと判断し、Ｘ座標値≦１５、Ｙ座標値≦１５の場合は、操作対象オブジェクトに左回りの急旋回飛行を行わせるものと判断している。そして、操作対象オブジェクトの移動方向を、当該飛行を行うのに要求される方向に決定している。
【００６９】
たとえば、右上回りの急旋回飛行を行うものと判断した場合は、操作対象オブジェクトが表す飛行機を右に４５度傾かせ、当該飛行機の機首を４５度挙げたものとし、前回決定した操作対象オブジェクトの移動方向から当該操作対象オブジェクトの移動方向を決定する。左回りの急旋回飛行を行うものと判断した場合は、前記飛行機を左に４５度傾かせ、前記飛行機の機首を４５度挙げたものとし、前回決定した操作対象オブジェクトの移動方向から当該操作対象オブジェクトの移動方向を決定する。
【００７０】
次に、図６において、オブジェクト位置算出部８０２は、仮想的な３次元世界中における操作対象オブジェクトの位置と姿勢を算出する処理を、定期的に行う。
【００７１】
具体的には、前回算出した操作対象オブジェクトの位置および姿勢と、操作内容受付部８０１で決定された操作対象オブジェクトの最新の移動速度から、現時点での操作対象オブジェクトの位置を算出する。また、操作内容受付部８０１で決定された操作対象オブジェクトの最新の移動方向にしたがって、現時点での操作対象オブジェクトの姿勢を算出する。
【００７２】
３次元地図作成部８０３は、オブジェクト位置算出部８０２で算出された操作対象オブジェクトの位置周辺に配置される地図構成要素を、光ディスク８５に格納された地図ＤＢ５０３から直接読み出し、あるいは、光ディスク８５から読み出され、一旦メインメモリ５３などに格納された地図ＤＢ５０３から読み出し、３次元世界中に配置する。これにより、操作対象オブジェクトの位置周辺に展開される地形を生成する。
【００７３】
なお、３次元地図作成部８０３における地形生成処理は、必ずしも、オブジェクト位置算出部８０２で操作対象オブジェクトの位置が算出される毎に行う必要はない。たとえば、オブジェクト位置算出部８０２で操作対象オブジェクトの位置が複数回算出される毎に行うようにしてもよい。この場合、オブジェクト位置算出部８０２における複数回の操作対象オブジェクト位置算出処理で当該操作対象オブジェクトが移動可能な範囲（これは、予め設定されている操作対象オブジェクトの最大移動速度などから推定可能である）を考慮し、当該範囲周辺に配置される地図構成要素を地図ＤＢ５０３から読み出して、３次元世界中に配置すればよい。
【００７４】
オブジェクト配置部８０４は、３次元地図作成部８０３により地形が展開された３次元世界中において、光ディスク８５に格納されたオブジェクトＤＡ５０２によりその３次元形状など特定される操作対象オブジェクトを、オブジェクト位置算出部８０２で算出した最新の操作対象オブジェクトの位置に配置する。この際、操作対象オブジェクトの姿勢が、オブジェクト位置算出部８０２で算出した最新の操作対象オブジェクトの姿勢となるように、操作対象オブジェクトを配置する。
【００７５】
なお、３次元地図作成部８０３やオブジェクト配置部８０４は、図４において、たとえば、ＣＰＵ５１がＧＴＥ６１を利用することで実現される。
【００７６】
カメラ配置部８０５は、３次元地図作成部８０３およびオブジェクト配置部８０４により地形および操作対象オブジェクトが配置された３次元世界から２次元画像を生成するために用いられる、仮想的なカメラの配置位置（つまり視点）と向き（つまり視線方向と視線方向を軸としたカメラの傾き）を設定する処理を行う。この処理は、オブジェクト位置算出部８０２で操作対象オブジェクトの位置や姿勢が算出される毎に行う。以下に、カメラ配置部８０５における、仮想的なカメラの配置位置と向きの具体的な設定処理の一例について説明する。
【００７７】
図７〜図９は、本実施形態における操作対象オブジェクト６０１と仮想的なカメラ６０８との位置関係を説明するための図である。
【００７８】
ここで、図７は、３次元世界中に配置されたオブジェクト６０１と仮想的なカメラ６０９を、真上（Ｚ軸の無限遠方）から見下ろした様子を示しており、図８は、３次元世界中に配置されたオブジェクト６０１と仮想的なカメラ６０９を、真横（Ｘ軸の無限遠方）から見た様子を示している。また、図９は、３次元世界中に配置されたオブジェクト６０１と仮想的なカメラ６０９を、真横（Ｙ軸の無限遠方）から見た様子を示している。なお、これらの図では、３次元世界中に配置された地図構成要素の図示を省略している。
【００７９】
（１）仮想的なカメラの配置位置（カメラ設置点）
図７〜図９に示すように、カメラ配置部８０５は、仮想的なカメラ６０９の配置位置であるカメラ設置点６０６を、下記の条件▲１▼−▲３▼を満たす位置に設定する。
【００８０】
▲１▼：オブジェクト位置算出部８０２で新たに算出された操作対象オブジェクト６０１の位置６０２を通過する、操作内容受付部８０１で新たに算出された操作対象オブジェクト６０１の移動方向に沿った線６０３上の、位置６０２より距離Ｋだけ後方の位置より、所定値Ｈだけ上方の位置に、カメラ追跡点６０４を設定する。
【００８１】
▲２▼：カメラ追跡点６０４および前回算出したカメラ設置点６０６’間の距離Ｌを、所定値Ｍで割ることで得られる距離Ｌ／Ｍだけ、前回算出したカメラ設置点６０６’からカメラ追跡点６０４に近づく位置に、カメラ設置点６０６を設定する。したがって、カメラ設置点６０６と前回算出したカメラ設置点６０６’とカメラ追跡点６０４は、以下の関係を満たす。
【００８２】
0003583995.tif 000002
▲３▼：上記▲１▼において、距離Ｋは、操作内容受付部８０１で新たに算出された操作対象オブジェクト６０１の移動速度が大きくなるほど短くなるように（すなわち、カメラ追跡点６０４が操作対象オブジェクト６０１に近づくように）設定する。たとえば、操作対象オブジェクト６０１の移動速度がＡのときのＫをｋとし、以下の式を満たすように設定する。
【００８３】
Ｋ＝ｋ−ａ（Ｂ−Ａ）
ここで、Ｂは操作内容受付部８０１で新たに算出された操作対象オブジェクトの移動速度、ａは所定の係数である。係数ａは、上記▲２▼に示した所定値Ｍとの関係において、以下の条件を満たすように設定する。
【００８４】
すなわち、カメラ追跡点６０４は、操作対象オブジェクト６０１の移動速度が大きくなるほど操作対象オブジェクト６０１に近づくけれども、カメラ設置点６０６は、操作対象オブジェクト６０１の移動速度が大きくなるほど、操作対象オブジェクト６０１から遠ざかるように、つまり、操作対象オブジェクト６０１の移動方向に対してより後方へ移動するように、係数ａと所定値Ｍを設定する。
【００８５】
なお、初期状態（ゲーム開始時）において、カメラ設置点６０６は、操作対象オブジェクト６０１との相対的な位置関係で固定的に定まる所定位置に設定するようにすればよい。
【００８６】
（２）カメラの向き（カメラ視線方向）
図７〜図９に示すように、カメラ配置部８０５は、カメラ設置点６０６に設置された仮想的なカメラ６０９が、カメラ参照点６０７を向くように、カメラ視線方向６１０を設定する。カメラ配置部８０５は、カメラ参照点６０７を、下記の条件▲１▼−▲２▼を満たす位置に設定する。
【００８７】
▲１▼：オブジェクト位置算出部８０２で新たに算出された操作対象オブジェクトの位置６０２を通過する、操作内容受付部８０１で新たに算出された操作対象オブジェクトの移動方向に沿った線６０３上の、位置６０２より距離Ｊだけ前方の位置に、カメラ参照点６０７を設定する。
【００８８】
▲２▼：上記▲１▼において、距離Ｊは、操作内容受付部８０１で新たに算出された操作対象オブジェクト６０１の移動速度が大きくなるほど長くなるように（すなわち、カメラ参照点６０７が操作対象オブジェクト６０１から遠ざかるように）設定する。たとえば、操作対象オブジェクト６０１の移動速度がＡのときのＪをｊとし、以下の式を満たすように設定する。
【００８９】
Ｊ＝ｊ＋ｂ（Ｂ−Ａ）
ここで、Ｂは操作内容受付部８０１で新たに算出された操作対象オブジェクトの移動速度、ｂは所定の係数である。
【００９０】
（３）カメラの向き（カメラ視線方向を軸としたカメラの傾き）
図９に示すように、操作対象オブジェクト６０１が線６０３を軸として左右に傾いている場合（すなわち、操作内容受付部８０１で操作対象オブジェクト６０１が表す飛行機を左右に傾かせる操作内容を受け付けた場合）には、その傾きに応じて、仮想的なカメラ６０８を、カメラ視線方向６１０を軸として回動させる。そして、操作対象オブジェクト６０１が線６０３を軸として回転した場合は、仮想的なカメラ６０８を、カメラ視線方向６１０を軸として回転させる。
【００９１】
図１０、１１は、本実施形態において、操作対象オブジェクト６０１の動きに対し、仮想的なカメラ６０８がどのように振舞うかを説明するための図である。
【００９２】
ここで、図１０は、操作対象オブジェクト６０１が速度一定で直進状態から右回り旋回状態へ移行した場合における、操作対象オブジェクト６０１と仮想的なカメラ６０８の関係を示しており、図１１は、操作対象オブジェクト６０１が直進状態において移動速度を徐々に増加させた場合における、操作対象オブジェクト６０１と仮想的なカメラ６０８の関係を示している。なお、両図とも、操作対象オブジェクト６０１と仮想的なカメラ６０８を、真上（Ｚ軸の無限遠方）から見下ろした様子を示しており、これらの図では、３次元世界中に配置された地図構成要素の図示を省略している。
【００９３】
図１２は、図１０に示すようにして配置された仮想的なカメラ６０９で撮影した場合に得られる映像の一例を示した図である。ここで、図１２（ａ）は、図１０において、操作対象オブジェクト６０１が（ａ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、図１２（ｂ）は、操作対象オブジェクト６０１が（ｂ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、そして、図１２（ｃ）は、操作対象オブジェクト６０１が（ｃ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、それぞれ示している。また、図１２（ｄ）は、図１０において、操作対象オブジェクト６０１が（ｄ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、図１２（ｅ）は操作対象オブジェクト６０１が（ｅ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、それぞれ示している。
【００９４】
図１３は、図１１に示すようにして配置された仮想的なカメラ６０９で撮影した場合に得られる映像の一例を示した図である。ここで、図１３（ａ）は、図１１において、操作対象オブジェクト６０１が（ａ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、図１３（ｂ）は、操作対象オブジェクト６０１が（ｂ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、そして、図１３（ｃ）は、操作対象オブジェクト６０１が（ｃ）の位置にあるときに仮想的なカメラ６０９で撮影される映像を、それぞれ示している。
【００９５】
図１０および図１２から明らかなように、上記の（１）−（３）に満たす条件を満足するように仮想的なカメラ６０９の配置位置と向きを設定することにより、カメラ設置点６０６には、前回算出されたカメラ設置点６０６’が考慮されるため、仮想的なカメラ６０９は、操作対象オブジェクト６０１の動きに対し、少し遅れて操作対象オブジェクト６０１の後ろを追従するように振舞う。また、操作対象オブジェクト６０１が、移動方向を軸として回動した（左右に傾いた）場合、仮想的なカメラ６０９も、それに応じて、カメラ視線方向６１０を軸として回動する。
【００９６】
また、図１１および図１３から明らかなように、上記の（１）−（３）に満たす条件を満足するように仮想的なカメラ６０９の配置位置と向きを設定することにより、仮想的なカメラ６０９は、操作対象オブジェクト６０１の移動速度が大きくなるほど、操作対象オブジェクト６０１から遠ざかる方向に移動することになる。また、カメラ視線方向６１０は、操作対象オブジェクト６０１の移動速度が大きくなるほど、操作対象オブジェクト６０１の前方に向けられる。
【００９７】
図６に戻って説明を続ける。
【００９８】
画像生成部８０６は、３次元地図作成部８０３およびオブジェクト配置部８０４により地形および操作対象オブジェクトが配置された３次元世界を、カメラ配置部８０５にて配置位置および視線方向が設定された仮想的なカメラで撮影することで得られる２次元画像を生成する。具体的には、仮想的なカメラの配置位置を視点とし、当該カメラの向きを視線方向として、かつ、操作対象オブジェクト６０１の移動方向を軸とした左右に傾きに応じて、仮想的なカメラ６０９を、カメラ視線方向６１０を軸として回動させて、仮想的なカメラスクリーン上に、３次元世界中にある操作対象オブジェクトや地図構成物を投影する処理（レンダリング）を行うことで２次元画像を生成する。
【００９９】
表示制御部８０７は、画像生成部８０６で生成された２次元画像をビデオ信号に変換し、本エンタテインメント装置１に接続された表示装置に出力する。
【０１００】
なお、画像生成部８０６や表示制御部８０７は、図４において、たとえば、ＣＰＵ５１がＧＴＥ６１およびＧＰＵ６２を利用することで実現される。
次に、エンタテインメント装置１上に構築される、フライトシミュレーションゲームを実現するためのソフトウエア構成の動作について説明する。
【０１０１】
図１４は、エンタテインメント装置１上に構築される、フライトシミュレーションゲームを実現するためのソフトウエア構成の動作を説明するためのフロー図である。
【０１０２】
まず、操作内容受付部８０１は、操作対象オブジェクト６０１の移動速度を算出する（ステップＳ１００１）。具体的には、操作装置２０の、スロットルの役割を持たせたボタンの検知信号を検知することで、前回移動速度を算出してからのスロットルのオン・オフ時間を測定する。そして、前回算出した移動速度に、測定したスロットルオンの時間と予め定められた加速度より求まる速度を加算し、および／または、測定したスロットルオフの時間と予め定められた減速度より求まる速度を減算し、操作対象オブジェクト６０１の移動速度を算出する。
【０１０３】
次に、操作内容受付部８０１は、操作対象オブジェクト６０１の移動方向を算出する（ステップＳ１００２〜Ｓ１００４）。
【０１０４】
具体的には、操作装置２０の、操縦かんの役割を持たせた操作軸３１ａ、３２ａに加えられた操作により、操作装置２０から出力される信号が示すＸ−Ｙ座標上の座標値が、所定範囲内にあるか否かを調べる（ステップＳ１００２）。たとえば、図３に示す例では、Ｘ−Ｙ座標上の座標値がＸ座標値≧２４０、Ｙ座標値≦１５の範囲、あるいは、Ｘ座標値≦１５、Ｙ座標値≦１５の範囲にあるか否かを調べる。
【０１０５】
所定範囲内にある場合は、操作対象オブジェクト６０１に所定の動作を行わせるものとし、操作対象オブジェクト６０１の移動方向が、当該動作を行うために要求される方向となるように決定する（ステップＳ１００３）。たとえば、図３に示す例では、Ｘ−Ｙ座標上の座標値がＸ座標値≧２４０、Ｙ座標値≦１５の場合は、操作対象オブジェクトに右回りの急旋回飛行を行わせるものと判断し、前回算出した操作対象オブジェクト６０１の移動方向から、操作対象オブジェクト６０１が表す飛行機を右に４５度傾かせ、当該飛行機の機首を４５度挙げたものとし、当該操作対象オブジェクト６０１の移動方向を算出する。Ｘ座標値≦１５、Ｙ座標値≦１５の場合は、操作対象オブジェクト６０１に左回りの急旋回飛行を行わせるものと判断し、前回算出した操作対象オブジェクト６０１の移動方向から、前記飛行機を左に４５度傾かせ、前記飛行機の機首を４５度挙げたものとし、当該操作対象オブジェクト６０１の移動方向を決定する。
【０１０６】
一方、所定範囲内にない場合は、操作軸３１ａ、３２ａに加えられた操作により、操作装置２０から出力される信号が示すＸ−Ｙ座標上の座標値に応じて、操作対象オブジェクト６０１が表す飛行機の左右の傾き、および、当該飛行機の機首の上下を決定する。そして、前記飛行機を、前回算出した操作対象オブジェクト６０１の移動方向から、前記決定した角度だけ上下左右させたものとし、当該操作対象オブジェクト６０１の移動方向を決定する（ステップＳ１００４）。
【０１０７】
次に、オブジェクト位置算出部８０２は、仮想的な３次元世界中における操作対象オブジェクト６０１の位置と姿勢を算出する（ステップＳ１００５）。
【０１０８】
具体的には、前回算出した操作対象オブジェクトの位置および姿勢と、操作内容受付部８０１で算出された操作対象オブジェクト６０１の最新の移動速度から、現時点での操作対象オブジェクト６０１の位置を算出する。また、操作内容受付部８０１で決定された操作対象オブジェクト６０１の最新の移動方向にしたがって、現時点での操作対象オブジェクト６０１の姿勢を算出する。
【０１０９】
次に、３次元地図作成部８０３は、地図更新の必要があるか否かを調べる（ステップＳ１００６）。たとえば、ステップＳ１００５における操作対象オブジェクト６０１の位置の算出処理がＮ回行われる毎に地図を更新する場合は、カウンタを設け、カウント値がＮに達したか否かを調べる。Ｎに達した場合は、更新の必要ありと判断し、カウント値をリセットして、ステップＳ１００７に進む。一方、カウント値がＮに達していない場合は、カウント値を１つインクリメントして、ステップＳ１００８に進む。
【０１１０】
ステップＳ１００７では、３次元地図地図作成部８０３は、ステップＳ１００５において、オブジェクト位置算出部８０２により算出された操作対象オブジェクトの位置周辺に配置される地図構成要素を地図ＤＢ５０３から読み出し、３次元世界中に配置する。これにより、操作対象オブジェクトの位置周辺に展開される地形を展開する。
【０１１１】
ステップＳ１００８では、オブジェクト配置部８０４は、ステップＳ１００７において、３次元地図地図作成部８０３により地形が展開された３次元世界中において、オブジェクトＤＡ５０２によりその３次元形状など特定される操作対象オブジェクト６０１を、ステップＳ１００５において、オブジェクト位置算出部８０２により算出した操作対象オブジェクトの位置に配置する。この際、操作対象オブジェクトの姿勢が、ステップＳ１００５において、オブジェクト位置算出部８０２により算出した操作対象オブジェクトの姿勢となるように、操作対象オブジェクトを配置する。
【０１１２】
次に、カメラ配置部８０５は、先に図７〜図１３を用いて説明した要領にしたがい、ステップＳ１００７、Ｓ１００８において、３次元地図地図作成部８０３およびオブジェクト配置部８０４により、地形および操作対象オブジェクト６０１が配置された３次元世界から、２次元画像を生成するために用いられる、仮想的なカメラ６０９の配置位置と向きを設定する処理を行う（ステップＳ１００９）。
【０１１３】
上記のようにして、３次元世界中に操作対象オブジェクト６０１および操作対象オブジェクト６０１周辺の地形が配置され、この３次元世界中に配置された操作対象オブジェクト６０１および操作対象オブジェクト６０１周辺の地形を撮影する仮想的なカメラ６０９の配置位置と向きが設定されると、画像生成部８０６は、この仮想的なカメラ６０９の配置位置を視点とし、当該カメラ６０９の向きを視線方向として、かつ、操作対象オブジェクト６０１の移動方向を軸とした左右に傾きに応じて、仮想的なカメラ６０９を、カメラ視線方向６１０を軸として回動させて、この３次元世界中に配置された操作対象オブジェクト６０１および操作対象オブジェクト６０１を、仮想的なカメラスクリーン上に投影するレンダリング処理を行う。これにより、２次元画像を生成する（ステップＳ１０１０）。
【０１１４】
それから、表示制御部８０７は、ステップＳ１０１０において、画像生成部８０６により生成された２次元画像をビデオ信号に変換し、本エンタテインメント装置１に接続された表示装置に出力する（ステップＳ１０１１）。
【０１１５】
上述した図１４に示すフローを繰り返し行うことにより、本エンタテインメント装置１は、操作装置２０を介して受け付けたプレイヤの操作内容にしたがい仮想的な３次元世界中を移動する操作対象オブジェクト６０１を、仮想的なカメラ６０９で撮影することで得られる動画像を、本エンタテインメント装置１に接続された表示装置の表示画面上に表示する。
【０１１６】
以上、本発明の実施形態について説明した。
【０１１７】
本実施形態によれば、仮想的なカメラ６０９の配置位置であるカメラ設置点６０６に、前回算出されたカメラ設置点６０６’が考慮されるため、仮想的なカメラ６０９は、操作対象オブジェクト６０１の動きに対し、少し遅れて操作対象オブジェクト６０１の後ろを追従するように振舞う。また、操作対象オブジェクト６０１が移動方向を軸として回動した場合には、仮想的なカメラ６０９も、それに応じて、カメラ視線方向を軸として回動する。
【０１１８】
このため、プレイヤは、操作装置２０を用いて操作する操作対象オブジェクト６０１の仮想的な３次元世界中における振る舞いを、表示画面を通して把握することが容易となる。したがって、フライトシミュレーションゲームの臨場感が増し、娯楽性が向上する。
【０１１９】
また、本実施形態によれば、仮想的なカメラ６０９は、操作対象オブジェクト６０１の移動速度が大きくなるほど、操作対象オブジェクト６０１から遠ざかる方向に移動することになる。
【０１２０】
このため、プレイヤが、操作装置２０を用いて操作対象オブジェクト６０１の移動速度を上げた場合、移動速度の増加分に応じて、仮想的なカメラ６０９に収められる（つまり表示装置の表示画面に表示される）オブジェクト周囲の映像が広くなる。したがって、操作対象オブジェクト６０１の移動速度を上げたときに、極端に操作が難くなることを防ぐことができる。
【０１２１】
なお、操作対象オブジェクト６０１の移動速度は、当該オブジェクト６０１の当該オブジェクト周囲に配置された地形に対する相対速度として、表示装置の表示画面に表示される動画像に反映されるため、操作対象オブジェクト６０１の移動速度の増加分に応じて、仮想的なカメラ６０９に収められるオブジェクト周囲の映像が広くなっても、動画像から得られるスピード感は失われない。
【０１２２】
さらに、本実施形態では、仮想的なカメラ６０９のカメラ視線方向６１０は、操作対象オブジェクト６０１の移動速度が大きくなるほど、操作対象オブジェクト６０１の前方に向けられる。
【０１２３】
このため、プレイヤが、操作装置２０を用いて操作対象オブジェクト６０１の移動速度を上げた場合、移動速度の増加分に応じて、仮想的なカメラ６０９に収められるオブジェクト周囲の映像がより遠方にまで広がる。したがって、操作対象オブジェクト６０１の移動速度を上げたときに、極端に操作が難くなることをさらに効率よく防ぐことができる。
【０１２４】
くわえて、本実施形態では、操作対象オブジェクト６０９が表す飛行機の左右の傾きや機首の上下を、操作装置２０の操作軸３１ａ、３２ａに加えられた操作により、操作装置２０から出力されたＸ−Ｙ座標上の座標値に応じて決定している。そして、前記Ｘ−Ｙ座標値が所定の範囲にある場合、操作対象オブジェクト６０１、所定の動作（たとえば、急旋回などの、現実の世界において操縦が困難と思われる動作）を行わせるものと判断させ、操作対象オブジェクト６０１の移動方向が、当該動作を行うために要求される方向となるように決定している。
【０１２５】
このようにすることで、操作装置２０の操作軸３１ａ、３２ａに、操縦かんと同じ機能をそのまま持たせる場合に比べ、操作対象オブジェクト６０１の操作を簡単にすることができる。したがって、不慣れなプレイヤにとっても、十分にフライトシミュレーションゲームを楽しむことができる。
【０１２６】
なお、本発明は、上記の実施形態に限定されるものではなく、その要旨の範囲内で様々な変形が可能である。
【０１２７】
上記の実施形態では、仮想的なカメラ６０９の配置位置であるカメラ設置点６０６に、前回算出されたカメラ設置点６０６’が考慮されるように設定している。しかしながら、本発明はこれに限定されない。カメラ設置点６０６は、少なくとも１つ前に算出されたカメラ設置点を考慮して設定するものであればよい。
【０１２８】
たとえば、１つ前に算出されたカメラ設置点６０６’およびカメラ追跡点６０４間の距離Ｌを所定値Ｍで割ることで得られる距離Ｌ／Ｍだけ、前記カメラ設置点６０６’およびカメラ追跡点６０４間の中間点からカメラ追跡点６０４へ近づく位置に、カメラ設置点６０６を設定するようにしてもよい。
【０１２９】
あるいは、１つ前に算出されたカメラ設置点６０６’と２つ前に算出されたカメラ設置点６０６”との中間点およびカメラ追跡点６０４間の距離Ｌを所定値Ｍで割ることで得られる距離Ｌ／Ｍだけ、前記中間点からカメラ追跡点６０４へ近づく位置に、カメラ設置点６０６を設定するようにしてもよい。
【０１３０】
また、上記の実施形態では、本エンタテインメント装置１を用いてフライトシミュレーションゲームを行う場合を例にとり説明したが、本発明はこれに限定されない。たとえば、本エンタテインメント装置１を用いて、ドライブシミュレーションゲームなどの、操作装置２０を介して受け付けたプレイヤの操作内容にしたがい仮想的な３次元世界中の操作対象オブジェクトの移動させることが可能な、様々なテレビゲームを行う場合に適用可能である。
【０１３１】
なお、本エンタテインメント装置１を用いてドライブシミュレーションゲームを行う場合、操作軸３１ａ、３２ａに加えられた操作により操作装置２０から出力された信号が示すＸ−Ｙ座標上の座標値が所定の範囲にある場合、操作内容受付部８０１は、操作対象オブジェクトに急回転などの、現実の世界において、操縦が困難と思われる動作を行わせるものと判断させ、操作対象オブジェクトの移動方向が、当該動作を行うために要求される方向となるように決定すればよい。
【０１３２】
また、本発明における、仮想的なカメラ６０９の配置位置や向きの設定方法は、テレビゲームのみならず、仮想的な３次元世界中を移動する表示オブジェクトを仮想的なカメラで撮影することで動画像を生成する装置に広く適用可能である。
【０１３３】
また、エンタテインメント装置１の外観およびハードウエア構成は、図１、図２および図４に示したものに限定されない。エンタテインメント装置１は、たとえば、ＣＰＵと、メモリと、ハードディスク装置などの外部記憶装置と、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの可搬性を有する記憶媒体からデータを読み取る読取装置と、キーボードやマウスなどの入力装置と、ディスプレイなどの表示装置と、インターネットなどのネットワークを介して通信を行うためのデータ通信装置と、上述した各装置間のデータ送受を司るインターフェースといった、一般的な電子計算機の構成を有するものであってもよい。
【０１３４】
また、エンタテインメント装置１上に、図６に示すソフトウエア構成を構築するためのプログラムや、３次元世界中に配置する地図構成要素および操作対象オブジェクトの３次元形状などを特定するための各種データは、読取装置を介して、可搬性を有する記憶媒体から読み出され、メモリや外部記憶装置に記憶されるようにしてもよいし、あるいは、データ通信装置を介して、ネットワークからダウンロードされ、メモリや外部記憶装置に記憶されるようにしてもよい。
【０１３５】
【発明の効果】
以上のように、本発明によれば、仮想的な３次元世界中を移動するオブジェクトを仮想的なカメラで撮影することで得られる動画像を表示する場合に、表示画面に表示された動画像からスピード感を得ることができる。
【０１３６】
特に、フライトシミュレーションやドライブシミュレーションなどの、操作者が操作装置を用いて仮想的な３次元世界中を移動するオブジェクトを操作することのできるエンタテイメント装置において、オブジェクトの移動速度を上げた場合でも、極端に操作が難くなることを防ぎつつスピード感を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態が適用されたエンタテインメント装置１および操作装置２０の外観例を示した図である。
【図２】図１に示す操作装置２０を示した図である。
【図３】図２に示す操作装置２０の操作軸３１ａ、３２ａを用いて入力できる値を説明するための図である。
【図４】図１に示すエンタテインメント装置１のハードウエア構成例を示す図である。
【図５】エンタテインメント装置１のディスク装着部３に装着される光ディスク８５のデータ構成を説明するための図である。
【図６】図４に示すエンタテインメント装置１上に構築される、フライトシミュレーションゲームを実現するためのソフトウエア構成を示した図である。
【図７】図６に示すカメラ配置部８０５によって３次元世界中に配置される仮想的なカメラ６０８と操作対象オブジェクト６０１との位置関係を説明するための図である。
【図８】図６に示すカメラ配置部８０５によって３次元世界中に配置される仮想的なカメラ６０８と操作対象オブジェクト６０１との位置関係を説明するための図である。
【図９】図６に示すカメラ配置部８０５によって３次元世界中に配置される仮想的なカメラ６０８と操作対象オブジェクト６０１との位置関係を説明するための図である。
【図１０】操作対象オブジェクト６０１の動きに対し、図６に示すカメラ配置部８０５によって３次元世界中に配置される仮想的なカメラ６０８がどのように振舞うかを説明するための図である。
【図１１】操作対象オブジェクト６０１の動きに対し、図６に示すカメラ配置部８０５によって３次元世界中に配置される仮想的なカメラ６０８がどのように振舞うかを説明するための図である。
【図１２】図１０に示すようにして配置された仮想的なカメラ６０９で撮影した場合に得られる映像の一例を示した図である。
【図１３】図１１に示すようにして配置された仮想的なカメラ６０９で撮影した場合に得られる映像の一例を示した図である。
【図１４】図６に示した、エンタテインメント装置１上に構築されるフライトシミュレーションゲームを実現するためのソフトウエア構成の動作を説明するためのフロー図である。
【図１５】従来のフライトシミュレーションゲームを行うエンタテイメント装置におけるオブジェクト（飛行機を表すオブジェクト）９０１と仮想的なカメラ９０２との位置関係を説明するための図である。
【図１６】図１５に示すようにして配置された仮想的なカメラ９０２からオブジェクト９０１を撮影した場合に得られる映像を示した図である。
【符号の説明】
１…エンタテインメント装置
２…本体
３…ディスク装着部
４…リセットスイッチ
５…電源スイッチ
６…ディスク操作スイッチ
７Ａ，７Ｂ…スロット部
８Ａ，８Ｂ…メモリカード挿入部
１２…操作装置接続部
２０…操作装置
２１，２２…操作部
２３Ｌ…Ｌボタン
２３Ｒ…Ｒボタン
２４…スタートボタン
２５…選択ボタン
２６…メモリカード
３１，３２…アナログ操作部
３１ａ，３２ａ…操作軸
３３…モード選択スイッチ
３４…表示部
５０…制御系
５１…中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｓｅｓｓｉｎｇ  Ｕｎｉｔ）
５２…周辺装置制御部
５３…メインメモリ
５４…ＲＯＭ
６０…グラフィックシステム
６１…ジオメトリトランスファエンジン（ＧＴＥ：Ｇｅｏｍｅｔｒｙ  Ｔｒａｎｓｆｅｒ  Ｅｎｇｉｎｅ）
６２…画像処理装置（ＧＰＵ：Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
６３…フレームバッファ
６４…画像デコーダ
７０…サウンドシステム
７１…音声処理装置（ＳＰＵ：Ｓｏｕｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
７２…サウンドバッファ
７３…スピーカ
８０…光ディスク制御部
８１…光ディスク装置
８２…デコーダ
８３…バッファ
８４…サブＣＰＵ
９０…通信制御部
９１…通信制御機
１００…携帯用電子機器
５０１…アプリケーションプログラム
５０２…オブジェクトデータ
５０３…地図データベース
６０１…操作対象オブジェクト
６０９…仮想的なカメラ
８０１…操作内容受付部
８０２…オブジェクト位置算出部
８０３…３次元地図作成部
８０４…オブジェクト配置部
８０５…カメラ配置部
８０６…画像生成部
８０７…表示制御部
【図１】
0003583995.tif 000003
【図２】
0003583995.tif 000004
【図３】
0003583995.tif 000005
【図４】
0003583995.tif 000006
【図５】
0003583995.tif 000007
【図６】
0003583995.tif 000008
【図７】
0003583995.tif 000009
【図８】
0003583995.tif 000010
【図９】
0003583995.tif 000011
【図１０】
0003583995.tif 000012
【図１１】
0003583995.tif 000013
【図１２】
0003583995.tif 000014
【図１３】
0003583995.tif 000015
【図１４】
0003583995.tif 000016
【図１５】
0003583995.tif 000017
【図１６】
0003583995.tif 000018