(57)【要約】【課題】操作性や臨場感を増すことが可能な映像を表示する画像処理装置を提供する。【解決手段】画像処理装置であって、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは進行方向に当該第１オブジェクトを移動させる第１オブジェクト制御手段と、三次元空間での仮想カメラの撮影方向を、第１オブジェクト制御手段により決定された第１オブジェクトの向きまたは進行方向に徐々に追従するように決定し、かつ、当該撮影方向で第１オブジェクトを撮影する仮想カメラ制御手段と、仮想カメラに基づいて表示データを作成する表示データ作成手段とを備える。仮想カメラ制御手段は、仮想カメラから見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する検出手段と、検出結果に基づいて、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させる第１の追従変更手段とを含む。【選択図】図５
2012249799.tif 000002
【特許請求の範囲】
【請求項１】
三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、
前記三次元空間での前記第１オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは進行方向に当該第１オブジェクトを移動させる第１オブジェクト制御手段と、
前記三次元空間での仮想カメラの撮影方向を、前記第１オブジェクト制御手段により決定された前記第１オブジェクトの向きまたは進行方向に徐々に追従するように決定し、かつ、当該撮影方向で前記第１オブジェクトを撮影する仮想カメラ制御手段と、
前記仮想カメラ制御手段による前記仮想カメラに基づいて前記三次元空間の前記第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備え、
前記仮想カメラ制御手段は、
前記仮想カメラから見て前記第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する検出手段と、
前記検出手段での検出結果に基づいて、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させる第１の追従変更手段とを含む、画像処理装置。
【請求項２】
前記検出手段は、前記第１オブジェクトの位置と前記仮想カメラの位置との間に前記他のオブジェクトが存在するか否かを検出する、請求項１に記載の画像処理装置。
【請求項３】
前記仮想カメラ制御手段は、前記第１オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第２の追従変更手段をさらに含む、請求項１または２に記載の画像処理装置。
【請求項４】
前記第１オブジェクト制御手段は、ユーザの方向入力を受け付けて、現在の前記仮想カメラの撮影方向を基準として前記方向入力に応じた方向に前記第１オブジェクトの向きまたは移動方向を変更する、請求項３に記載の画像処理装置。
【請求項５】
前記仮想カメラ制御手段は、前記第１オブジェクト制御手段により移動した前記第１オブジェクトの位置および向きまたは進行方向と前記追従させる程度とに基づいて前記仮想カメラの位置を変更する変更手段をさらに含む、請求項１に記載の画像処理装置。
【請求項６】
前記変更手段は、前記第１オブジェクト制御手段により移動した前記第１オブジェクトの位置との距離が一定となるように前記仮想カメラの位置を変更する、請求項５に記載の画像処理装置。
【請求項７】
前記仮想カメラ制御手段は、前記三次元空間での仮想カメラの撮影方向を、前記第１オブジェクトの向きまたは進行方向に徐々に追従するように角度を調整するために用いられる第１の係数に従って決定し、
前記第１の追従変更手段は、前記検出手段での検出結果に基づいて、前記第１の係数を前記第１の係数よりも大きい第２の係数に変更する、請求項１に記載の画像処理装置。
【請求項８】
前記第１の追従変更手段は、前記第１の係数と前記第２の係数との間の第３の係数へ変更する係数補間手段をさらに含む、請求項７に記載の画像処理装置。
【請求項９】
前記仮想カメラ制御手段は、
前記第１オブジェクト制御手段により移動した前記第１オブジェクトの向きまたは進行方向に基づいて前記第１オブジェクトが進む位置を予測する第１オブジェクト位置予測手段と、
前記仮想カメラから見て前記第１オブジェクト位置予測手段により予測された位置の前記第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する予測検出手段とをさらに含み、
前記第１の追従変更手段は、前記予測検出手段での検出結果に基づいて、前記第１オブジェクトの向きまたは進行方向に追従する程度を上昇させる、請求項１に記載の画像処理装置。
【請求項１０】
前記予測検出手段は、前記第１オブジェクトの位置から前記第１オブジェクトの向きまたは進行方向に所定距離だけ離れた位置と前記仮想カメラの位置との間に前記他のオブジェクトが存在するか否かを検出する、請求項９に記載の画像処理装置。
【請求項１１】
前記第１オブジェクト制御手段は、ユーザの入力に応じて、前記第１オブジェクトの向きまたは進行方向を変更するとともに、当該向きまたは進行方向に前記第１オブジェクトを移動させ、かつ、当該ユーザの入力が所定の入力であるときに、前記第１オブジェクトの向きまたは進行方向を変更せずに前記第１オブジェクトを移動させ、
前記仮想カメラ制御手段は、ユーザの入力が前記所定の入力であるときに、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第２の追従変更手段をさらに含む、請求項１に記載の画像処理装置。
【請求項１２】
三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、
前記三次元空間での前記第１オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは当該進行方向に当該第１オブジェクトを移動させる第１オブジェクト制御手段と、
前記三次元空間での仮想カメラの撮影方向を、前記第１オブジェクト制御手段により決定された前記第１オブジェクトの向きまたは進行方向に追従するように決定し、かつ、当該撮影方向で前記第１オブジェクトを撮影する仮想カメラ制御手段と、
前記仮想カメラ制御手段による前記仮想カメラに基づいて前記三次元空間の前記第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備え、
前記仮想カメラ制御手段は、前記第１オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させる追従変更手段を含む、画像処理装置。
【請求項１３】
三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、
前記三次元空間での前記第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは進行方向に当該第１オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第１オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、
当該撮影方向で前記第１オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、
前記仮想カメラから見て前記第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、
検出結果に基づいて、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む、画像処理方法。
【請求項１４】
三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、
前記三次元空間での前記第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは当該進行方向に当該第１オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第１オブジェクトの向きまたは進行方向に追従するように決定するステップと、
当該撮影方向で前記第１オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、前記第１オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む、画像処理方法。
【請求項１５】
三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、
前記三次元空間での前記第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは進行方向に当該第１オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第１オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、
当該撮影方向で前記第１オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、
前記仮想カメラから見て前記第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、
検出結果に基づいて、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む、処理を実行させる、画像処理装置の制御プログラム。
【請求項１６】
三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、
前記三次元空間での前記第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは当該進行方向に当該第１オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第１オブジェクトの向きまたは進行方向に追従するように決定するステップと、
当該撮影方向で前記第１オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、前記第１オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む、処理を実行させる、画像処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、画像処理方法、および画像処理装置の制御プログラムに関する。
【背景技術】
【０００２】
２次元／３次元のゲーム空間内をオブジェクトが動きまわるようなアプリケーションがある。
【０００３】
このようなアプリケーションでは、自己のプレイヤオブジェクト（プレイヤの操作に応答して移動し、動作するキャラクタ）を中心とする比較的狭い範囲のゲーム空間が通常のゲーム画面としてテレビまたはモニタに表示されている。
【０００４】
たとえば、３Ｄ（3-Dimensional）ゲームにおいては、操作者によって操作され得るプレイヤオブジェクトをたとえば背後からある程度距離を離したカメラで撮影した映像を表示していた。
【０００５】
一方で、３Ｄゲームでは、プレイヤオブジェクトとカメラとの間に背景画像または敵オブジェクトなどの他のオブジェクトが存在するとき、または、他のオブジェクトなどが移動してプレイヤオブジェクトとカメラとの間に割り込んできたとき、プレイヤオブジェクトをカメラで撮影することができず、プレイヤオブジェクトを操作することが難しくなるという問題があった。
【０００６】
この点で、特開平９−１６７２６０号公報においては、プレイヤオブジェクトとカメラとの間にたとえば壁などの他のオブジェクトが存在することを検出した場合に、カメラからプレイヤオブジェクトに対する視線を他のオブジェクトが遮らないような位置にカメラを移動させて撮影する方式が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−１６７２６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記の特許文献に開示された技術では、プレイヤオブジェクトとカメラとの間に壁が存在するときに、壁の向きに基づいてカメラを移動させるため、操作性に問題があった。
【０００９】
本発明は、上記のような問題を解決するためになされたものであって、操作性や臨場感を増すことが可能な映像を表示する画像処理装置、画像処理方法、および画像処理装置の制御プログラムを提供することである。
【課題を解決するための手段】
【００１０】
この発明の第１の局面に従う画像処理装置は、三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは進行方向に当該第１オブジェクトを移動させる第１オブジェクト制御手段と、三次元空間での仮想カメラの撮影方向を、第１オブジェクト制御手段により決定された第１オブジェクトの向きまたは進行方向に徐々に追従するように決定し、かつ、当該撮影方向で第１オブジェクトを撮影する仮想カメラ制御手段と、仮想カメラ制御手段による仮想カメラに基づいて三次元空間の第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備える。仮想カメラ制御手段は、仮想カメラから見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する検出手段と、検出手段での検出結果に基づいて、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させる第１の追従変更手段とを含む。
【００１１】
第１の局面によれば、画像処理装置は、通常時において、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に徐々に追従するようにしつつ、第１オブジェクトが他のオブジェクトに遮蔽されるような状況では、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させて仮想カメラの撮影方向を決定するので、第１オブジェクトが他のオブジェクトに遮蔽される状況になった際の仮想カメラの制御に唐突感がなく、操作性のよい画像処理装置を提供することができる。また、仮想カメラの撮影方向は第１オブジェクトの向きまたは進行方向に追従するので、第１オブジェクトの向きや進行方向が画面の奥行方向となってこの意味においても操作性がよい。
【００１２】
好ましい、第２の局面によれば、検出手段は、第１オブジェクトの位置と仮想カメラの位置との間に他のオブジェクトが存在するか否かを検出する。
【００１３】
第２の局面によれば、第１オブジェクトの位置と仮想カメラの位置との間に他のオブジェクトが存在するか否かを検出するため仮想カメラか見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを容易に検出することが可能である。
【００１４】
好ましい、第３の局面によれば、仮想カメラ制御手段は、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第２の追従変更手段をさらに含む。
【００１５】
第３の局面によれば、第１オブジェクトがその前方に向かって移動するときに、第１オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させることにより、第１オブジェクトが壁を回り込んだ後、その壁に沿って進むような状況において、仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【００１６】
特に、第４の局面によれば、第１オブジェクト制御手段は、ユーザの方向入力を受け付けて、現在の仮想カメラの撮影方向を基準として方向入力に応じた方向にオブジェクトの向きまたは移動方向を変更する。
【００１７】
第４の局面によれば、方向入力に応じた方向にオブジェクトの向きまたは移動方向を変更することにより、前方に進むことを意図するユーザ操作の場合には、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に早期にあわせることによりプレイヤオブジェクトの向きまたは進行方向に沿う前方方向の画像を素早く確認することが可能となるためユーザの操作性をさらに向上させることが可能となる。
【００１８】
好ましい、第５の局面によれば、仮想カメラ制御手段は、第１オブジェクト制御手段により移動した第１オブジェクトの位置および向きまたは進行方向と追従させる程度とに基づいて仮想カメラの位置を変更する変更手段をさらに含む。
【００１９】
特に、第６の局面によれば、変更手段は、第１オブジェクト制御手段により移動した第１オブジェクトの位置との距離が一定となるように仮想カメラの位置を変更する。
【００２０】
第５および第６の局面によれば、第１オブジェクトの位置と仮想カメラの位置とが一定となるように変更されるため仮想カメラにより撮影した三次元空間に存在するオブジェクトとの距離感が変更しない。それゆえ、第１オブジェクトの視界が一定であるように感じられ臨場感を増すことが可能である。
【００２１】
好ましい、第７の局面によれば、仮想カメラ制御手段は、三次元空間での仮想カメラの撮影方向を、第１オブジェクトの向きまたは進行方向に徐々に追従するように角度を調整するために用いられる第１の係数に従って決定し、第１の追従変更手段は、検出手段での検出結果に基づいて、第１の係数を第１の係数よりも大きい第２の係数に変更する。
【００２２】
特に、第８の局面によれば、第１の追従変更手段は、第１の係数と第２の係数との間の第３の係数へ変更する係数補間手段をさらに含む。
【００２３】
第７および第８の局面によれば、第１オブジェクトの向きまたは進行方向に徐々に追従するように角度を調整する第１の係数と第２の係数との間の第３の係数へ変更する係数補間手段を設けることにより、仮想カメラの撮影方向を調整する角度の変化を滑らかにして違和感の少ない映像を表示して臨場感を増す調整することが可能である。
【００２４】
好ましい、第９の局面によれば、仮想カメラ制御手段は、第１オブジェクト制御手段により移動した第１オブジェクトの向きまたは進行方向に基づいて第１オブジェクトが進む位置を予測する第１オブジェクト位置予測手段と、仮想カメラから見て第１オブジェクト位置予測手段により予測された位置の第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する予測検出手段とをさらに含み、第１の追従変更手段は、予測検出手段での検出結果に基づいて、第１オブジェクトの向きまたは進行方向に追従する程度を上昇させる。
【００２５】
特に、第１０の局面によれば、予測検出手段は、第１オブジェクトの位置から第１オブジェクトの向きまたは進行方向に所定距離だけ離れた位置と仮想カメラの位置との間に他のオブジェクトが存在するか否かを検出する。なお、この「所定距離」は、第１オブジェクトの移動速度に応じて変更するのが好ましい。より具体的には、第１オブジェクトの移動速度が速いときにはこの「所定距離」を大きくするのが好ましい。
【００２６】
弟９および第１０の局面によれば、第１オブジェクトが他のオブジェクトに遮蔽される前に追従度を変更することが可能となり、遮蔽される状況となる前に遮蔽を回避する位置に仮想カメラが位置することにより仮想カメラからの撮影方向の良好な視界を常に確保して臨場感を増すことが可能である。
【００２７】
好ましい、第１１の局面によれば、第１オブジェクト制御手段は、ユーザの入力に応じて、第１オブジェクトの向きまたは進行方向を変更するとともに、当該向きまたは進行方向に第１オブジェクトを移動させ、かつ、当該ユーザの入力が所定の入力であるときに、第１オブジェクトの向きまたは進行方向を変更せずに第１オブジェクトを移動させ、仮想カメラ制御手段は、ユーザの入力が所定の入力であるときに、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第２の追従変更手段をさらに含む。
【００２８】
第１１の局面によれば、ユーザの入力が所定の入力であるときに、第１オブジェクトの向きまたは進行方向を変更せずに、第１オブジェクトを移動させ、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させることにより、向きまたは進行方向を変更せずに進むことを意図するユーザ操作の場合には、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に早期にあわせることによりプレイヤオブジェクトの向きまたは進行方向に沿う画像を素早く確認することが可能となるためユーザの操作性をさらに向上させることが可能となる。
【００２９】
この発明の第１２の局面に従う画像処理装置は、三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは当該進行方向に当該第１オブジェクトを移動させる第１オブジェクト制御手段と、三次元空間での仮想カメラの撮影方向を、第１オブジェクト制御手段により決定された第１オブジェクトの向きまたは進行方向に追従するように決定し、かつ、当該撮影方向で第１オブジェクトを撮影する仮想カメラ制御手段と、仮想カメラ制御手段による仮想カメラに基づいて三次元空間の第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備え、仮想カメラ制御手段は、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させる追従変更手段を含む。
【００３０】
第１２の局面によれば、画像処理装置は、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させて仮想カメラの撮影方向を決定することが可能であり、前方に向かって移動するという第１オブジェクトの動きに沿い仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【００３１】
この発明の第１３の局面に従う画像処理方法は、三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは進行方向に当該第１オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第１オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、当該撮影方向で第１オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、仮想カメラから見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む。
【００３２】
第１３の局面によれば、画像処理方法は、仮想カメラから見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを設け、仮想カメラの撮影方向を決定することが可能であり、第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させることにより他のオブジェクトに遮蔽された状態を回避させるとともに操作するプレイヤオブジェクトの視線の変化に合わせてプレイヤオブジェクトをカメラで撮影した映像を表示することが可能であるため臨場感をさらに増すことが可能である。
【００３３】
この発明の第１４の局面に従う画像処理方法は、三次元空間に存在する第１オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは当該進行方向に当該第１オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第１オブジェクトの向きまたは進行方向に追従するように決定するステップと、当該撮影方向で第１オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む。
【００３４】
第１４の局面によれば、画像処理方法は、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステツプを設け、仮想カメラの撮影方向を決定することが可能であり、前方に向かって移動するという第１オブジェクトの動きに沿い仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【００３５】
この発明の第１５の局面に従う画像処理装置の制御プログラムは、三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは進行方向に当該第１オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第１オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、当該撮影方向で第１オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、仮想カメラから見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む、処理を実行させる。
【００３６】
第１５の局面によれば、画像処理装置の制御プログラムは、仮想カメラから見て第１オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを設け、仮想カメラの撮影方向を決定することが可能であり、第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させることにより他のオブジェクトに遮蔽された状態を回避させるとともに操作するプレイヤオブジェクトの視線の変化に合わせてプレイヤオブジェクトをカメラで撮影した映像を表示することが可能であるため臨場感をさらに増すことが可能である。
【００３７】
この発明の第１６の局面に従う画像処理装置の制御プログラムは、三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、三次元空間での第１オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは当該進行方向に当該第１オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第１オブジェクトの向きまたは進行方向に追従するように決定するステップと、当該撮影方向で第１オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第１オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む、処理を実行させる。
【００３８】
第１６の局面によれば、画像処理装置の制御プログラムは、第１オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第１オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステツプを設け、仮想カメラの撮影方向を決定することが可能であり、前方に向かって移動するという第１オブジェクトの動きに沿い仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【００３９】
上述の記載においては、本発明の理解を助けるために後述の実施形態との対応関係を示すための参照符号および補足説明等を付したが、これらは本発明を何ら限定するものではない。
【発明の効果】
【００４０】
本発明に従えば、臨場感を増すことが可能な映像を表示することが可能である。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施の形態に従うビデオゲームシステム１０の構成を説明する図である。
【図２】図１に示すビデオゲームシステム１０の電気的な構成を示すブロック図である。
【図３】コントローラ２２の電気的な構成を示すブロック図である。
【図４】本発明の実施の形態に従うゲーム装置１２のＣＰＵ４０およびＧＰＵ４２ｂで実現される機能ブロックの詳細について説明する図である。
【図５】本発明の実施の形態に従うゲーム空間である３次元ワールド座標系およびカメラ座標系を説明する図である。
【図６】本発明の実施の形態に従うモニタ３４に表示されるゲーム画像の一例を説明する図である。
【図７】本発明の実施の形態に従うゲーム画面を表示する処理を実行するフロー図である。
【図８】本発明の実施の形態に従うプレイヤオブジェクトの配置更新処理のサブルーチンを説明するフロー図である。
【図９】本発明の実施の形態に従う仮想カメラの配置更新処理のサブルーチンを説明するフロー図である。
【図１０】本発明の実施の形態に従う衝突判定処理を説明する概念図である。
【図１１】本発明の実施の形態に従う仮想カメラの位置座標の算出について説明する図である。
【図１２】本発明の実施の形態に従う追従度の変化を説明する図である。
【図１３】本発明の実施の形態に従う十字キーの操作入力と変位量データとの関係を説明する図である。
【図１４】本発明の実施の形態に従う別の衝突判定処理を説明する概念図である。
【図１５】本発明の実施の形態に従う別の衝突判定処理を説明する概念図である。
【発明を実施するための最良の形態】
【００４２】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００４３】
＜ゲーム装置の構成＞
図１は、本発明の実施の形態に従うビデオゲームシステム１０の構成を説明する図である。
【００４４】
図１を参照して、この発明の実施の形態に従うビデオゲームシステム１０は、画像処理装置の一種であるゲーム装置１２およびコントローラ２２を含む。
【００４５】
本実施の形態に従うゲーム装置１２は、少なくとも１つ以上のコントローラ２２と通信可能に設計されている。また、ゲーム装置１２と各コントローラ２２とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【００４６】
ゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した記憶媒体の典型例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ５４（図２参照）に装着される。ディスクスロット１６の周囲には、ＬＥＤと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【００４７】
また、ゲーム装置１２のハウジング１４の前面において、その上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１６の近傍には、外部メモリカード用コネクタカバー２８が設けられる。
【００４８】
この外部メモリカード用コネクタカバー２８の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」とも称す。）が挿入される。メモリカードは、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このビデオゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行なうことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行なうようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。また、ゲームプログラム等は、ネットワーク接続されたサーバなどから、有線または無線の通信回線を通じて、ゲーム装置１２に供給（ダウンロード）されてもよい。このようにダウンロードされたゲームプログラム等については、ゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）やメモリカードに記憶される。
【００４９】
なお、メモリカードとしては、汎用のＳＤ（Secured Digital）カードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００５０】
ゲーム装置１２のハウジング１４の後面には、ＡＶコネクタ５８（図２参照）が設けられる。そのＡＶコネクタ５８には、ＡＶケーブル３２ａを通してゲーム装置１２にモニタ（ディスプレイ）３４およびスピーカ３４ａが接続される。このモニタ３４およびスピーカ３４ａは、典型的には、カラーテレビジョン受像機である。ＡＶケーブル３２ａは、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、モニタ３４の画面上には、たとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからは、ゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ３４の周辺（図１に示す例では、モニタ３４の上側）には、２つの赤外ＬＥＤ（マーカ）３４０ｍ，３４０ｎを有するマーカ部３４ｂが設けられる。このマーカ部３４ｂは、電源ケーブル３２ｂを通してゲーム装置１２に接続される。したがって、マーカ部３４ｂには、ゲーム装置１２から電源が供給される。これによって、マーカ３４０ｍ，３４０ｎは発光し、それぞれモニタ３４の前方に向けて赤外光を出力する。
【００５１】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって供給される。ＡＣアダプタは、家庭用の標準的な壁ソケットに差し込まれ、家庭用電源（商用電源）を、ゲーム装置１２の駆動に適した低いＤＣ電圧信号に変換する。他の実現例では、電源としてバッテリが用いられてもよい。
【００５２】
このビデオゲームシステム１０において、ユーザがゲーム（または、ゲームに限らず、他のアプリケーション）をプレイする場合には、ユーザは、まずゲーム装置１２の電源をオンし、次いで、ビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク１８を選択し、その光ディスク１８をゲーム装置１２のディスクドライブ５４にローディングする。すると、ゲーム装置１２は、その光ディスク１８に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。あるいは、ゲーム装置１２は、予めサーバからダウンロードされフラッシュメモリ４４（図２参照）などに格納されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めることもできる。
【００５３】
ユーザは、コントローラ２２を操作して、ゲーム装置１２に入力を与える。たとえば、入力手段２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段２６に対する操作以外にも、コントローラ２２自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００５４】
また、コントローラ２２には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、十字キー２６ａや、Ａボタン２６ｄ等が設けられる。十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、ユーザによって操作可能なキャラクタまたはオブジェクト（プレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００５５】
Ａボタン２６ｄは、押しボタンスイッチであり、ユーザキャラクタまたはユーザオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【００５６】
さらに、コントローラ２２は、撮像情報演算部８０（図３参照）を有しており、図示しないがコントローラ２２の先端面には撮像情報演算部８０の光入射口が設けられる。
【００５７】
なお、コントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明の本質に包含される。
【００５８】
図２は、図１に示すビデオゲームシステム１０の電気的な構成を示すブロック図である。ハウジング１４内の各コンポーネントは、プリント基板に実装される。
【００５９】
図２を参照して、ゲーム装置１２には、ＣＰＵ４０が設けられる。このＣＰＵ４０は、ゲームプロセッサとして機能する。このＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ＿ＩＣ５６が接続される。
【００６０】
外部メインメモリ４６は、各種アプリケーションのプログラムを記憶したり、各種データを記憶したりし、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする計時回路が設けられる。すなわち、ＣＰＵ４０は、ＲＯＭ／ＲＴＣ４８を参照することで、現在の日時（年月日および時刻）を取得する。ディスクドライブ５４は、光ディスク１８からプログラムデータやオブジェクトデータやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書込む。
【００６１】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ、ＤＳＰ(Digital Signal Processor)４２ｃ、ＶＲＡＭ４２ｄ、および内部メインメモリ４２ｅが設けられ、これらは内部バスによって互いに接続される。
【００６２】
入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【００６３】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００６４】
上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。なお、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００６５】
なお、この本実施の形態では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外のなんらかのアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該アプリケーションについての画像データを生成する。
【００６６】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３４ａから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００６７】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ＿ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３４およびスピーカ３４ａに出力される。したがって、ゲーム画面がモニタ３４に表示され、ゲームに必要な音（音楽）がスピーカ３４ａから出力される。
【００６８】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００６９】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。
【００７０】
また、入出力プロセッサ４２ａは、コントローラ２２から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０のゲーム処理によって利用された後、バッファ領域から消去される。
【００７１】
なお、この本実施の形態では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格にしたがってコントローラ２２との間で通信を行なう。
【００７２】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０および外部メモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。外部メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０や外部メモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００７３】
図１にも示したように、ゲーム装置１２（ハウジング１４）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２は、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（通常モードと呼ぶこととする）を設定する。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２は、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」とも称す。）を設定する。この本実施の形態では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行なう。したがって、このスタンバイモードは、ＣＰＵ４０によってアプリケーションの実行が行なわれないモードである。
【００７４】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【００７５】
また、ゲーム装置１２のハウジング１４内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００７６】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク１８が排出される。
【００７７】
図３は、コントローラ２２の電気的な構成を示すブロック図である。
図３を参照して、コントローラ２２はプロセッサ７０を含み、このプロセッサ７０には、内部バス（図示せず）によって、外部拡張コネクタ２２ｂ、入力手段２６、メモリ７２、加速度センサ７４、無線モジュール７６、撮像情報演算部８０、ＬＥＤ８２（インジケータ２２ｃ）、バイブレータ８４、スピーカ８６および電源回路８８が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００７８】
プロセッサ７０は、コントローラ２２の全体制御を司り、入力手段２６、加速度センサ７４および撮像情報演算部８０によって入力された情報（入力情報）を、入力データとして無線モジュール７６およびアンテナ７８を介してゲーム装置１２に送信（入力）する。このとき、プロセッサ７０は、メモリ７２を作業領域ないしバッファ領域として用いる。
【００７９】
上述した入力手段２６（２６ａ，２６ｄ等）からの操作信号（操作データ）は、プロセッサ７０に入力され、プロセッサ７０は操作データを一旦メモリ７２に記憶する。
【００８０】
また、加速度センサ７４は、コントローラ２２の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００８１】
たとえば、加速度センサ７４は、第１所定時間毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセッサ７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０Ｇ〜２．０Ｇ（Ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセッサ７０は、加速度センサ７４から与えられる加速度データを、第２所定時間毎に検出し、一旦メモリ７２に記憶する。プロセッサ７０は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも１つを含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、５ｍｓｅｃ）毎にゲーム装置１２に送信する。
【００８２】
ここで、加速度センサ７４から出力される加速度データに基づいて、ゲーム装置１２のプロセッサ（たとえば、ＣＰＵ４０）またはコントローラ２２のプロセッサ（たとえば、プロセッサ７０）などのコンピュータが処理を行なうことによって、コントローラ２２に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
【００８３】
たとえば、１軸の加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合、すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合、コントローラ２２が現実に静的な状態であれば、検出された加速度データに基づいてコントローラ２２の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向である状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかを知ることができる。
【００８４】
また、多軸の加速度センサの場合には、さらに各軸の加速度データに対して処理を施すことによって、重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサの出力に基づいて、プロセッサ７０がコントローラ２２の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータの算出処理を行なうことなく、加速度センサからの出力に基づいて、おおよその傾きを推定できるような処理としてもよい。このように、加速度センサをプロセッサと組み合わせることによって、コントローラ２２の傾き、姿勢または位置を判定することができる。
【００８５】
一方、加速度センサが動的な状態を前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動きの方向などを知ることができる。具体的には、加速度センサを有するコントローラ２２がユーザの手で動的に加速されて動かされている場合に、加速度センサによって生成される加速度データを処理することによって、コントローラ２２の様々な動きおよび／または位置を算出することができる。
【００８６】
なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることができる。他の実施の形態では、加速度センサは、加速度データをプロセッサ７０に出力する前に、内蔵の加速度検出手段から出力される加速度信号（加速度データ）に対して所望の処理を行なうための、組込み式の信号処理装置また他の種類の専用の処理装置を搭載してもよい。たとえば、組込み式または専用の処理装置は、加速度センサが静的な加速度（たとえば、重力加速度）を検出するためのものである場合、検知された加速度データをそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００８７】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したゲーム装置１２に設けられた無線コントローラモジュール５２によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置１２（ＣＰＵ４０）は、コントローラ２２からの入力データを取得することができる。そして、ＣＰＵ４０は、取得した入力データとプログラム（ゲームプログラム）とに従ってゲーム処理を行なう。
【００８８】
さらに、上述したように、コントローラ２２には、撮像情報演算部８０が設けられる。この撮像情報演算部８０は、赤外線フィルタ８０ａ、レンズ８０ｂ、撮像素子８０ｃおよび画像処理回路８０ｄによって構成される。赤外線フィルタ８０ａは、コントローラ２２の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ３４の表示画面近傍（周辺）に配置されるマーカ３４０ｍおよび３４０ｎは、モニタ３４の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ８０ａを設けることによってマーカ３４０ｍおよび３４０ｎの画像をより正確に撮像することができる。レンズ８０ｂは、赤外線フィルタ８０ａを透過した赤外線を集光して撮像素子８０ｃへ出射する。撮像素子８０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ８０ｂによって集光された赤外線を撮像する。したがって、撮像素子８０ｃは、赤外線フィルタ８０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子８０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子８０ｃによって生成された画像データは、画像処理回路８０ｄで処理される。画像処理回路８０ｄは、撮像画像内における撮像対象（マーカ３４０ｍおよび３４０ｎ）の位置を算出し、第４所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ７０に出力する。撮像対象を含む撮像画像の画像データを用いて、画像処理回路８０ｄは、各マーカ３４０ｍおよび３４０ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。そして、撮像画像における対象画像間の距離が、コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２はコントローラ２２とマーカ３４０ｍおよび３４０ｎとの間の距離を把握できる。
【００８９】
図４は、本発明の実施の形態に従うゲーム装置１２のＣＰＵ４０およびＧＰＵ４２ｂで実現される機能ブロックの詳細について説明する図である。
【００９０】
図４を参照して、本例においては、一例として、ここでは、データロード処理部２００、レイアウトデータ初期設定処理部２０２、コントローラ入力処理部２０４、プレイヤオブジェクト制御処理部２１０、仮想カメラ制御処理部２２０と、データ生成処理部２３０とが設けられた場合が示されている。
【００９１】
具体的には、データロード処理部２００、レイアウトデータ初期設定処理部２０２、コントローラ入力処理部２０４、プレイヤオブジェクト制御処理部２１０、仮想カメラ制御処理部２２０は、ＣＰＵ４０により実現される機能である。また、データ生成処理部２３０は、ＧＰＵ４２ｂにより実現される機能である。なお、各機能は、必要に応じてマルチタスク制御により実現されるものとする。
【００９２】
以下、具体的に説明する。データロード処理部２００は、光ディスク１８から読み出されたプログラムデータ等を外部メインメモリ４６あるいは内部メインメモリ４２ｅに必要に応じてロードする。
【００９３】
レイアウトデータ初期設定処理部２０２は、外部メインメモリ４６あるいは内部メインメモリ４２ｅから記憶されているロードされたオブジェクトデータを読出し、ワールド座標系の初期座標にそれぞれ配置する。
【００９４】
コントローラ入力処理部２０４は、コントローラ２２により操作されたコントローラ入力である入力データを受け付けて、それを解析した操作入力データをオブジェクトデータの初期座標に関するデータとともにプレイヤオブジェクト制御処理部２１０に出力する。なお、解析する必要が無ければ受け付けた入力データをそのままプレイヤオブジェクト制御処理部２１０に出力するようにしても良い。
【００９５】
ここで、コントローラ入力処理部２０４には、入力方向判定処理部２０６が含まれており、入力方向判定処理部２０６は、操作入力データが所定方向の入力であるかどうかを判定する。後述するが所定方向の入力があったと判定した場合には、追従度調整処理部２２４に対して追従度を所定レベルに変更するように指示する。
【００９６】
プレイヤオブジェクト制御処理部２１０は、プレイヤオブジェクト方向決定処理部２１２と、プレイヤオブジェクト移動量決定処理部２１４と、プレイヤオブジェクト配置変更処理部２１６とを含む。
【００９７】
プレイヤオブジェクト方向決定処理部２１２は、操作入力データに従ってプレイヤオブジェクトの向きあるいは進行方向を決定する。
【００９８】
プレイヤオブジェクト移動量決定処理部２１４は、操作入力データに従ってプレイヤオブジェクトの移動量を決定する。
【００９９】
プレイヤオブジェクト配置変更処理部２１６は、プレイヤオブジェクト方向決定処理部２１２で決定されたプレイヤオブジェクトの向きあるいは進行方向およびプレイヤオブジェクト移動量決定処理部２１４で決定された移動量に基づいてプレイヤオブジェクトの位置を変更する。そして、変更処理したプレイヤオブジェクトの位置等のデータを仮想カメラ制御処理部２２０に出力する。
【０１００】
ここで、プレイヤオブジェクト配置変更処理部２１６は、プレイヤオブジェクト予測処理部２１８が含まれており、プレイヤオブジェクト予測処理部２１８は、プレイヤオブジェクトの向きあるいは進行方向に従って次に進む位置を予測する。後述するがプレイヤオブジェクト予測処理部２１８は、プレイヤオブジェクトの向きあるいは進行方向に従って本来プレイヤオブジェクトが変更される位置から所定距離進んだ位置を予測する。
【０１０１】
仮想カメラ制御処理部２２０は、衝突判定処理部２２２と、追従度調整処理部２２４と、仮想カメラ配置変更処理部２２８とを含む。
【０１０２】
衝突判定処理部２２２は、仮想カメラから見て、プレイヤオブジェクト配置変更処理部２１６で変更された位置に配置されるプレイヤオブジェクトが他のオブジェクトにより遮蔽されるか否かを判定する。
【０１０３】
具体的には、プレイヤオブジェクト配置変更処理部２１６で変更されたプレイヤオブジェクトの位置と、現在の仮想カメラとの位置とに基づいてその間に他のオブジェクトが存在するか否かを判定する。衝突判定処理部２２２は、当該判定結果を追従度調整処理部２２４に出力する。
【０１０４】
追従度調整処理部２２４は、衝突判定処理部２２２での判定結果に基づいてプレイヤオブジェクトの動きに仮想カメラが追従する程度の度合いを示す追従度を調整する。
【０１０５】
具体的には、衝突判定処理部２２２における判定結果に基づいて、他のオブジェクトが存在すると判定した場合には、追従度を上げる。一方、衝突判定処理部２２２における判定結果に基づいて、他のオブジェクトは存在しないと判定した場合には、追従度は変更しない。すなわち、通常の値に設定する。当該追従度に従って仮想カメラが配置される向きおよび位置が変化する。仮想カメラが配置される位置の設定については後述する。
【０１０６】
ここで、追従度調整処理部２２４は、補間処理部２２６を含む。後述するが補間処理部２２６は、追従度の調整に伴う追従係数の値を最小値と最大値との間の値に補間する処理を実行する。
【０１０７】
仮想カメラ配置変更処理部２２８は、プレイヤオブジェクト配置変更処理部２１６で変更されたプレイヤオブジェクトの向きあるいは進行方向および位置等に関するデータと追従度とに基づいて仮想カメラの向き（撮影方向）および位置を変更する。当該仮想カメラの向き（撮影方向）および位置の変更については後述する。
【０１０８】
データ生成処理部２３０は、カメラ座標系変換処理部２３２と、投影平面座標系変換処理部２３４と、表示データ生成処理部２３６とを含む。
【０１０９】
カメラ座標系変換処理部２３２は、プレイヤオブジェクト制御処理部２１０から出力された変更されたプレイヤオブジェクトの位置等のデータと仮想カメラ制御処理部２２０から出力された変更された仮想カメラの位置等のデータとに基づいてカメラ座標系に変換した座標データを投影平面座標系変換処理部２３４に出力する。
【０１１０】
投影平面座標系変換処理部２３４は、投影平面に座標変換し、投影平面における座標データを表示データ生成処理部２３６に出力する。
【０１１１】
表示データ生成処理部２３６は、当該座標データに基づいてテクスチャデータ等を用いて表示データを生成して出力する。
【０１１２】
図５は、本発明の実施の形態に従うゲーム空間である３次元ワールド座標系およびカメラ座標系を説明する図である。
【０１１３】
図５を参照して、ここでは、３次元ワールド座標系において、地形オブジェクト１６０、プレイヤオブジェクト１５０が初期座標に配置された場合が示されている。
【０１１４】
仮想カメラ１００は、プレイヤオブジェクト１５０と所定距離、離れた位置に配置され、プレイヤオブジェクト１５０を撮影する。
【０１１５】
プレイヤオブジェクト１５０の向きあるいは進行方向が変更されない場合、プレイヤオブジェクト１５０の向きあるいは進行方向と仮想カメラの撮影方向は一致した状態を維持する。すなわち、プレイヤオブジェクト１５０の視線と仮想カメラの撮影方向とが同じ向きであり、プレイヤオブジェクト１５０の視点でゲーム操作が可能となる。
【０１１６】
プレイヤオブジェクト１５０の向きあるいは進行方向が変更された場合、仮想カメラ１００の撮影方向は、プレイヤオブジェクト１５０の向きあるいは進行方向に徐々に追従するように決定される。仮想カメラ１００の撮影方向をプレイヤオブジェクトの向きあるいは進行方向に徐々に追従させることによりプレイヤオブジェクト１５０の向きあるいは進行方向が大きく変化した場合であっても急激な画面変化による映像酔い（３Ｄ酔い）を抑制しつつプレイヤオブジェクト１５０の視線でのゲーム操作を可能としている。
【０１１７】
本例においては、プレイヤオブジェクト１５０の向きまたは進行方向が前方であった場合に、左方向にプレイヤオブジェクト１５０の向きまたは進行方向を変更した場合が示されている。つまりプレイヤオブジェクト１５０が地形オブジェクト１６０である壁オブジェクトのコーナを左に曲がったような状況が想定されている。
【０１１８】
プレイヤオブジェクト１５０が壁オブジェクトのコーナを左に曲がって移動した場合、仮想カメラ１００から見て、プレイヤオブジェクト１５０が地形オブジェクト１６０である壁オブジェクトにより遮蔽されてしまう。具体的には、後述するがプレイヤオブジェクト１５０が移動する位置と現在の仮想カメラとの位置とに基づいてその間に地形オブジェクト１６０が存在すると判定される状態である。
【０１１９】
この場合、仮想カメラ１００とプレイヤオブジェクト１５０との間に地形オブジェクト１６０である壁オブジェクトが存在するためプレイヤオブジェクト１５０を撮影することができなくなる。したがって、仮想カメラ１００の位置をプレイヤオブジェクト１５０を撮影することができる位置に変更する必要がある。
【０１２０】
本実施の形態においては、例えば地形オブジェクト１６０により、仮想カメラ１００から見て、プレイヤオブジェクト１５０が遮蔽されてしまう場合には、仮想カメラ１００の撮影方向をプレイヤオブジェクト１５０の向きまたは進行方向に追従させる程度（追従度）を上昇させて仮想カメラ１００の位置および撮影方向を決定する。
【０１２１】
なお、モニタ３４に表示される画像は、決定された仮想カメラの位置および撮影方向でプレイヤオブジェクト１５０等を撮影した画像が表示される。
【０１２２】
図６は、本発明の実施の形態に従うモニタ３４に表示されるゲーム画像の一例を説明する図である。
【０１２３】
図６（Ａ）〜（Ｃ）を参照して、ここでは、仮想カメラ１００でプレイヤオブジェクト１５０を撮影した画像が示されている。
【０１２４】
図６（Ａ）を参照して、ここでは、地形オブジェクト１６０によりプレイヤオブジェクト１５０が囲まれている状況が示されている。コントローラ２２によりプレイヤオブジェクト１５０を操作することが可能であり、ここでは、プレイヤオブジェクトの向きあるいは進行方向の正面に通路があり、通路の前方および右方向は行き止まりであり左方向に続くように表示されている場合が示されている。
【０１２５】
図６（Ｂ）を参照して、図６（Ａ）の状態からプレイヤオブジェクトの向きあるいは進行方向を変更せず、前方に向かって進んだ状態が示されている。ここで、プレイヤオブジェクト１５０の正面および右方向は行き止まりとなっており、左方向に通路が続く場合が示されている。図５のプレイヤオブジェクト１５０が移動する前の状況に対して、仮想カメラ１００により撮影した画像である。
【０１２６】
図６（Ｃ）を参照して、ここでは、プレイヤオブジェクト１５０が左に曲がった場合の状態が示されている。図５のプレイヤオブジェクト１５０が移動した後の状況に対して、仮想カメラ１００により撮影した画像である。本実施の形態においては、仮想カメラの撮影方向は、プレイヤオブジェクト１５０の向きまたは進行方向に徐々に追従するが、この状況の場合、仮想カメラ１００から見て、プレイヤオブジェクト１５０が地形オブジェクト１６０である壁オブジェクトにより遮蔽されることになるため追従度を上げて追従させる。なお、ここでは、時間の経過に従って仮想カメラ１００の撮影方向がプレイヤオブジェクト１５０の向きまたは進行方向と一致した場合の画像が示されている。
【０１２７】
図７は、本発明の実施の形態に従うゲーム画面を表示する処理を実行するフロー図である。当該処理は、主にＣＰＵ４０およびＧＰＵ４２ｂで実行される処理である。
【０１２８】
図７を参照して、まず、データロード処理部２００により光ディスク１８から読み出されたデータ等を外部メインメモリ４６あるいは内部メインメモリ４２ｅに必要に応じてロードする（ステップＳ１）。
【０１２９】
そして、次に、レイアウトデータ初期設定処理部２０２は、外部メインメモリ４６あるいは内部メインメモリ４２ｅからロードされた地形オブジェクト（地面オブジェクト，建物オブジェクト，壁オブジェクト等）等のデータを読み出し、その地形オブジェクトを、図５に示すような、ゲーム空間である３次元ワールド座標系の初期座標に配置する（ステップＳ４）。
【０１３０】
また、レイアウトデータ初期設定処理部２０２は、プレイヤオブジェクト１５０を同じワールド座標系の初期座標に配置する。また、仮想カメラ１００をワールド座標系の初期座標に配置する。
【０１３１】
次に、コントローラ入力処理部２０４は、コントローラ２２の入力手段２６（図１および図３）が操作されたかどうか、すなわち、無線コントローラモジュール５２を介してコントローラ２２から入力があったかどうか判断する（ステップＳ６）。
【０１３２】
コントローラ入力処理部２０４は、コントローラ入力がある場合（ステップＳ６においてＹＥＳ）には、操作入力データをプレイヤオブジェクト制御処理部２１０に出力する。
【０１３３】
そして、プレイヤオブジェクト制御処理部２１０は、プレイヤオブジェクトの配置を更新する（ステップＳ８）。当該プレイヤオブジェクトの配置の更新処理については後述する。
【０１３４】
次に、仮想カメラ制御処理部２２０は、ステップＳ８で更新されたプレイヤオブジェクトの更新された配置に従って、仮想カメラの配置を更新する（ステップＳ１０）。仮想カメラの配置の更新処理については後述する。
【０１３５】
なお、コントローラ入力処理部２０４は、コントローラ２２から入力が無かったと判断した場合（ステップＳ６においてＮＯ）には、ステップＳ８およびステップＳ１０をスキップして次の処理に進む。すなわち、この場合には、プレイヤオブジェクトは移動しない。
【０１３６】
次に、データ生成処理部２３０のカメラ座標系変換処理部２３２は、地形オブジェクト、プレイヤオブジェクト等の位置を配置された仮想カメラの位置を基準とする３次元のカメラ座標系に変換する（ステップＳ１２）。
【０１３７】
そして、次に、データ生成処理部２３０の投影平面座標系変換処理部２３４は、変換された３次元のカメラ座標系を２次元の投陰平面座標系に変換する（ステップＳ１４）。なお、その際、テクスチャの指定やクリッピング（ｃｌｉｐｐｉｎｇ：不可視世界の切り取り）等も併せて実行する。これにより、仮想カメラでプレイヤオブジェクト等を撮影した２次元の画像データを取得することが可能となる。
【０１３８】
そして、データ生成処理部２３０の表示データ生成処理部２３６は、ゲーム画像となる表示データの生成処理を実行する（ステップＳ１６）。
【０１３９】
そして、ゲーム装置１２は、当該表示データをモニタ３４に出力してゲーム画像を表示する（ステップＳ１８）。
【０１４０】
次に、ゲームが終了したかどうかを判断する（ステップＳ２０）。ゲームが終了でない場合には、再び、ステップＳ６に戻る。
【０１４１】
一方、ゲームが終了した場合には、処理を終了する（終了）。
図８は、本発明の実施の形態に従うプレイヤオブジェクトの配置更新処理のサブルーチンを説明するフロー図である。当該処理は、プレイヤオブジェクト制御処理部２１０で実行される処理である。
【０１４２】
図８を参照して、まず、コントローラ２２からの操作入力データを取得する（ステップＳ３０）。
【０１４３】
上述したように、コントローラ２２には、十字キー２６ａが設けられており、本例では、プレイヤオブジェクトの移動方向および移動量、つまり移動位置を決定するためには、十字キー２６ａに応じてプレイヤオブジェクトを移動させる。操作入力データは、十字キー２６ａの２つの軸、横軸（Ｘ軸）および縦軸（Ｙ軸）の変位量データとして与えられる。
【０１４４】
次に、プレイヤオブジェクト方向決定処理部２１２およびプレイヤオブジェクト移動量決定処理部２１４は、操作入力データの変位量データからプレイヤオブジェクトの移動方向および移動量を決定する（ステップＳ３２）。
【０１４５】
次に、プレイヤオブジェクト配置変更処理部２１６は、決定されたプレイヤオブジェクトの移動方向および移動量に基づいてプレイヤオブジェクトの現在の位置座標から新たな位置座標を算出する（ステップＳ３４）。
【０１４６】
そして、プレイヤオブジェクト配置変更処理部２１６は、算出された新たな位置座標に決定された向きでプレイヤオブジェクトを配置し、更新する（ステップＳ３６）。
【０１４７】
そして、処理を終了する（リターン）。
このようにして、コントローラ２２の入力に応答して、プレイヤオブジェクト制御処理部２１０はプレイヤオブジェクトの配置（位置および向き）を更新する。
【０１４８】
図９は、本発明の実施の形態に従う仮想カメラの配置更新処理のサブルーチンを説明するフロー図である。当該処理は、仮想カメラ制御処理部２２０で実行される処理である。
【０１４９】
図９を参照して、まず、衝突判定処理部２２２は、衝突判定処理を実行する（ステップＳ４０）。
【０１５０】
図１０は、本発明の実施の形態に従う衝突判定処理を説明する概念図である。
図１０を参照して、プレイヤオブジェクト１５０について、プレイヤオブジェクト１５０が移動して新たな位置座標に配置された場合に、仮想カメラ１００から見てプレイヤオブジェクト１５０が他のオブジェクトに遮蔽されるか否かを判定する。具体的には、プレイヤオブジェクト１５０の新たな位置座標と仮想カメラ１００の位置座標との間に他のオブジェクト（地形オブジェクト）が存在するかどうかを判定する。
【０１５１】
本例においては、プレイヤオブジェクト１５０の新たな位置座標と仮想カメラ１００の位置座標との間に地形オブジェクトの１つである壁オブジェクトが存在する場合が示されている。
【０１５２】
したがって、当該場合には、衝突有りと判定される。
再び、図９を参照して、ステップＳ４０において、衝突判定処理部２２２は、衝突有りと判断した場合（ステップＳ４０においてＹＥＳ）には、その結果を追従度調整処理部２２４に出力する。追従度調整処理部２２４は、仮想カメラ１００の撮影方向をプレイヤオブジェクト１５０の向きまたは進行方向に追従させる程度を上昇させる。具体的には、追従度を大に決定する（ステップＳ４４）。
【０１５３】
一方、ステップＳ４０において、衝突判定処理部２２２は、衝突無しと判断した場合（ステップＳ４０においてＮＯ）には、その結果を追従度調整処理部２２４に出力する。追従度調整処理部２２４は、仮想カメラ１００の撮影方向をプレイヤオブジェクト１５０の向きまたは進行方向に追従させる程度を通常の状態として維持させる。具体的には、追従度を通常に決定する（ステップＳ４６）。
【０１５４】
そして、次に、仮想カメラ配置変更処理部２２８は、プレイヤオブジェクトの位置座標と仮想カメラの追従度とに基づいて仮想カメラの新たな位置座標を算出する（ステップＳ４８）。位置座標の算出については後述する。
【０１５５】
次に、仮想カメラ配置変更処理部２２８は、算出された新たな位置座標に決定された向きで仮想カメラを配置し、更新する（ステップＳ５０）。
【０１５６】
そして、処理を終了する（リターン）。
このようにして、プレイヤオブジェクトの移動に応じて仮想カメラ制御処理部２２０は、仮想カメラの配置（位置および向き）を更新する。
【０１５７】
なお、仮想カメラの配置の更新処理は、プレイヤオブジェクト１５０の新たな位置座標と仮想カメラの位置座標との距離が一定距離Ｌ以上である場合に実行するようにしても良い。具体的には、プレイヤオブジェクト１５０が方向転換して後ろに下がるような場合、すなわちプレイヤオブジェクト１５０の新たな位置座標と仮想カメラの位置座標との距離が一定距離Ｌ未満となる場合には仮想カメラの配置を更新しないようにすることも可能である。そうすることによりプレイヤオブジェクト１５０の進行方向を容易にユーザが把握することができプレイヤオブジェクト１５０の操作性を向上させることが可能である。
【０１５８】
なお、プレイヤオブジェクト１５０の新たな位置座標と更新された仮想カメラの位置座標とに基づいて衝突判定処理を再度実行するようにしても良い。その場合、衝突が有ると判定された場合には、更新された仮想カメラの配置をさらに再更新するようにして衝突を回避させるようにすることが可能である。
【０１５９】
図１１は、本発明の実施の形態に従う仮想カメラの位置座標の算出について説明する図である。
【０１６０】
図１１を参照して、本例においては、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に徐々に追従するように決定する。
【０１６１】
ここで、一例としてプレイヤオブジェクトが位置座標ＯＢから位置座標ＯＢ１に移動した場合が示されている。また、プレイヤオブジェクトの向きまたは進行方向がｘ軸方向を基準として角度φから角度θに変更され場合が示されている。なお、プレイヤオブジェクトが位置座標ＯＢに配置されていた場合における仮想カメラの向きまたは進行方向は角度φであったものとする。
【０１６２】
本実施の形態においては、プレイヤオブジェクトの向きまたは進行方向に追従して仮想カメラの撮影方向が決定される。なお、プレイヤオブジェクトと仮想カメラとの距離は一定距離Ｌに設定される。一定距離とすることにより仮想カメラにより撮影した三次元空間に存在するオブジェクトとの距離感が変更しない。それゆえ、プレイヤオブジェクトの視界が一定であるように感じられ臨場感を増すことが可能である。
【０１６３】
具体的には、変更される仮想カメラの撮影方向である角度φ’は、目標とする角度（目標角）θと現在の角度（現在角）φと追従度とに従って決定される。本例においては、追従度は、一例として現在の角度（現在角）φから目標とする角度（目標角）θに角度を追従させるために用いる追従係数として示される。
【０１６４】
本例においては、一例として、角度φ’＝（θ−φ）×追従係数＋φに決定される。
追従係数は、本例においては、追従係数ｒ０，ｒ１（＞ｒ０）の２種類の追従係数が設けられている。
【０１６５】
追従係数ｒ０は、追従度が通常時の場合に対応する。追従係数ｒ１は、追従度が大の場合に対応する。
【０１６６】
これにより、プレイヤオブジェクトの移動後の位置座標ＯＢ１と、プレイヤオブジェクトと仮想カメラとの一定距離Ｌと、角度φ’とに基づいて仮想カメラの配置、すなわち位置および撮影方向が一意に決定される。
【０１６７】
本例においては、追従係数ｒ０に従って仮想カメラを位置座標ＣＯＢ１に配置する場合と、追従係数ｒ１に従って仮想カメラを位置座標ＣＯＢ２に配置する場合とが示されている。
【０１６８】
当該方式により仮想カメラの撮影方向は、プレイヤオブジェクトの向きまたは進行方向に徐々に追従するように決定される。
【０１６９】
また、追従係数ｒ１は、当該追従係数に従って角度φ’を決定した場合に、更新されて配置された仮想カメラから見てプレイヤオブジェクトが他のオブジェクトに遮蔽されることがないような適切な値に設定されることが望ましい。
【０１７０】
本発明の実施の形態に従う処理は、仮想的なゲーム空間において、プレイヤオブジェクトが隠れないように仮想カメラを配置する。具体的には、操作するプレイヤオブジェクトの向きまたは進行方向に仮想カメラの撮影方向を徐々に追従させる際、プレイヤオブジェクトが隠れるような場合には追従度を調節（上昇）させて、プレイヤオブジェクトが常に表示されている状態を維持する。また、本例においては、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に徐々に追従させる。すなわち、操作するプレイヤオブジェクトの移動に伴ってプレイヤオブジェクトの視線が徐々に変化する方向に合わせて、仮想カメラでプレイヤオブジェクトを撮影する撮影方向を変化させることにより、プレイヤオブジェクトの視線の変化に沿う映像が表示される。したがって、プレイヤオブジェクトの視線でゲーム操作が可能となり臨場感が増し、ゲームの興趣性を高めることが可能となる。
【０１７１】
また、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に追従させる程度を上昇させて仮想カメラの撮影方向を決定するので、プレイヤオブジェクトが他のオブジェクト（たとえば壁オブジェクト）に遮蔽される状況になった際の仮想カメラの制御に唐突感がなく、操作性が良い。また、仮想カメラの撮影方向はプレイヤオブジェクトの向きまたは進行方向に追従するので、プレイヤオブジェクトの向きや進行方向が画面の奥行方向となってこの意味においても操作性がよい。
【０１７２】
図１２は、本発明の実施の形態に従う追従度の変化を説明する図である。
図１２（Ａ）を参照して、プレイヤオブジェクトの向きまたは進行方向に追従する程度（追従度）に示される追従係数の変化が示されている。ここでは、ｒ０，ｒ１，ｒ２（＞ｒ１）の３種類の追従係数が設定されている。
【０１７３】
追従度が通常の場合には、追従係数はｒ０に設定される。
また、衝突判定処理により衝突有りと判定された場合には、追従度を大に変更する。本例においては、追従係数をｒ１に設定する。そして、再び、追従係数をｒ０に設定する。そして、再び、衝突有りとなった場合には追従度を大に設定する。当該追従度の変更により仮想カメラの撮影方向がプレイヤオブジェクトの向きまたは進行方向に追従する程度を変更することにより、仮想カメラから見てプレイヤオブジェクトが他のオブジェクトに遮蔽される状況を回避することが可能となる。
【０１７４】
また、所定の条件の場合には、追従係数をｒ２に設定する場合が示されている。本例における所定の条件とは、コントローラ２２の十字キー２６ａの上方向が入力された場合に相当する。具体的には、コントローラ入力処理部２０４の入力方向判定処理部２０６は、操作入力データの変位量データに従ってコントローラ２２の十字キー２６ａの上方向が入力されたかどうかを判定する。
【０１７５】
図１３は、本発明の実施の形態に従う十字キーの操作入力と変位量データとの関係を説明する図である。
【０１７６】
図１３を参照して、十字キーを押下した方向が上方向と左方向との間であった場合における変位量データの算出について説明する。
【０１７７】
具体的には、縦軸（ｙ軸）の変位量が１を基準とした場合に閾値である０．１を超えていると判断した場合には上方向の入力（変位量データｙ＝１）がされたものと判断する。また、横軸（ｘ軸）の変位量が−０．１よりも小さいと判断した場合には、左方向の入力（変位量データｘ＝−１）がされたものと判断する。また、縦軸（ｙ軸）の変位量が−０．１よりも小さいと判断した場合には下方向の入力（変位量データｙ＝−１）がされたものと判断する。また、横軸（ｘ軸）の変位量が０．１よりも大きいと判断した場合には、右方向の入力（変位量データｘ＝１）がされたものと判断する。
【０１７８】
したがって、当該場合には、上方向と左方向の間の方向の入力がされたものと判断される。すなわち、操作入力データの変位量データ（ｘ，ｙ）は、（−１，１）として入力方向判定処理部２０６に入力されるものとする。
【０１７９】
なお、ここでは、ｘ軸、ｙ軸の変位量の閾値として０．１あるいは−０．１と比較する場合について説明したが当該閾値は一例であり、他の値とすることも当然に可能である。
【０１８０】
図１４は、本発明の実施の形態に従う所定の条件の場合における仮想カメラの配置更新処理のサブルーチンを説明するフロー図である。当該処理は、仮想カメラ制御処理部２２０で実行される処理である。
【０１８１】
図１４を参照して、追従度調整処理部２２４は、上方向の判定が有ったかどうかを判断する（ステップＳ４３）。なお、上述したように入力方向判定処理部２０６は、変位量データのｙ軸の値に従って上方向が入力されたかどうかを判定することが可能である。そして、上方向の入力がされたと判定された場合には、その判定結果を追従度調整処理部２２４に出力する。ここでの上方向の判定は、入力方向判定処理部２０６からの上方向の判定があったかどうかを判断している。
【０１８２】
追従度調整処理部２２４は、入力方向判定処理部２０６から上方向の判定が有ったと判断した場合（ステップＳ４３においてＹＥＳ）には、仮想カメラ１００の撮影方向をプレイヤオブジェクト１５０の向きまたは進行方向に追従させる程度を上昇させる。具体的には、追従度を最大に決定する（ステップＳ４５）。具体的には、本例においては、追従度として追従係数をｒ２（＞ｒ１）に決定する。
【０１８３】
一方、ステップＳ４３において、追従度調整処理部２２４は、入力方向判定処理部２０６からの上方向の判定が無かったと判断した場合（ステップＳ４３においてＮＯ）には、仮想カメラ１００の撮影方向をプレイヤオブジェクト１５０の向きまたは進行方向に追従させる程度を通常の状態として維持させる。具体的には、追従度を通常に決定する（ステップＳ４６）。
【０１８４】
なお、本例においては、入力方向判定処理部２０６から上方向の判定が有った場合に、追従度を上昇させる場合について説明したが、これに限られず、例えば、入力方向判定処理部２０６において下方向の入力を判定しても良い。そして、当該判定が有った場合に、追従度調整処理部２２４は、追従度を小さくするようにしても良い。より具体的には追従係数をｒ３（０＜ｒ３＜ｒ０）としても良い。
【０１８５】
そして、次に、仮想カメラ配置変更処理部２２８は、プレイヤオブジェクトの位置座標と仮想カメラの追従度とに基づいて仮想カメラの新たな位置座標を算出する（ステップＳ４８）。以降の処理については、図９で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１８６】
すなわち、コントローラ２２の十字キー２６ａの上方向が入力された場合には、当該追従係数ｒ２に従って、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に追従させる。
【０１８７】
プレイヤオブジェクトの向きまたは進行方向と仮想カメラの撮影方向とが同じである場合にも追従係数はｒ２に設定される。なお、目標とする角度と現在の角度との間に差がない場合には当該追従係数の変化は反映されない。
【０１８８】
一方、例えば、図５で示されるようにプレイヤオブジェクト１５０が壁オブジェクトのコーナを左に曲がって、さらに進行方向である前方に移動するような場合、例えば、十字キー２６ａの左方向が入力された後、上方向が入力された場合に追従係数をｒ２に設定する。当該追従係数の変更に伴い追従度がさらに上昇し、仮想カメラの撮影方向は、早期にプレイヤオブジェクトの向きまたは進行方向と一致する向きとなる。
【０１８９】
また、図１３の操作入力のように上方向と左方向の間の方向を入力するように向きまたは進行方向を切り替えつつ前方に移動するような場合にも追従係数をｒ２に設定することにより仮想カメラの撮影方向は早期にプレイヤオブジェクトの向きまたは進行方向と一致する向きとなる。
【０１９０】
すなわち、プレイヤオブジェクトの現在の向きまたは進行方向に対して前方（斜め前に進むことも含む）に進むことを意図するユーザ操作の場合には、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に早期にあわせることによりプレイヤオブジェクトの向きまたは進行方向に沿う前方方向の画像を素早く確認することが可能となるためユーザの操作性をさらに向上させることが可能となる。また、前方に進むというプレイヤオブジェクトの意思に沿いプレイヤオブジェクトの向きまたは進行方向に仮想カメラの撮影方向が早期に追従するため、プレイヤオブジェクトの視線と仮想カメラの撮影方向とがより早く一致することになり臨場感を増すことが可能である。
【０１９１】
なお、本例においては、上記の入力方向判定処理部２０６において所定方向として十字キー２６ａの上方向が入力されたかどうかを判定してその判定結果に基づいて追従係数を調整する場合について説明したが、入力方向に限られず、所定のボタンの入力等があったかどうかを判定するようにしてもよい。
【０１９２】
また、衝突判定処理と組み合わせて、衝突有りの場合であっても入力方向判定処理部２０６において所定方向として十字キー２６ａの上方向の入力があったと判定された場合には、追従係数をｒ２に決定して仮想カメラの配置を更新するようにすることも可能である。
【０１９３】
図１２（Ｂ）を参照して、ここでは、追従係数ｒ０，ｒ１，ｒ２についてその変化を補間する場合が示されている。
【０１９４】
追従係数の変化の立ち上がりあるいは立ち下がりを補間により滑らかに追従係数を変化させて追従の度合いの変化を滑らかにする。当該処理により仮想カメラの撮影方向の変化をさらに滑らかにすることが可能となり、さらに違和感の少ない映像を表示して臨場感を増すことが可能となる。当該追従係数の補間処理は、追従度調整処理部２２４の補間処理部２２６で実行するものとする。
【０１９５】
なお、本例においては、３種類の追従係数が設定されている場合について説明したが、特に、これらの種類に限られずさらに複数の追従係数を設けるようにしても良い。例えば、ゲームの状況に合わせて追従係数を追従係数ｒ０よりも低くあるいは追従係数ｒ２よりも高く設定した追従係数を用いることにより、ユーザに状況の変化を認知させて期待感を高めさせてゲームの興趣性を高めることも可能である。
【０１９６】
図１４は、本発明の実施の形態に従う別の衝突判定処理を説明する概念図である。
図１４を参照して、ここでは、プレイヤオブジェクト１５０について、プレイヤオブジェクト１５０が移動して新たな位置座標に配置された場合に、プレイヤオブジェクト１５０の新たな位置座標と仮想カメラ１００の位置座標との間に地形オブジェクトの１つである壁オブジェクトが存在しない場合が示されている。
【０１９７】
一方で、プレイヤオブジェクト１５０がさらに次の位置に移動する場合には、地形オブジェクトとの衝突判定処理において衝突有りと判定される場合が示されている。
【０１９８】
本例においては、プレイヤオブジェクト１５０が移動して新たな位置座標に配置される場合に、プレイヤオブジェクト１５０の向きまたは進行方向に従ってプレイヤオブジェクト１５０の移動を予測してプレイヤオブジェクト１５０の向きまたは進行方向に従って所定距離Ｌｄ進んだ位置の位置座標と仮想カメラ１００の位置座標との間に他のオブジェクト（地形オブジェクト）が存在するかどうか、すなわち、仮想カメラから見て、予測される位置に移動するプレイヤオブジェクトが他のオブジェクトにより遮蔽されるか否かを判定する。
【０１９９】
プレイヤオブジェクト１５０の向きまたは進行方向に従ってプレイヤオブジェクト１５０の移動を予測して所定距離進んだ位置と仮想カメラ１００との位置座標とに基づいて衝突判定処理を実行することにより衝突判定を前もって予測することが可能である。
【０２００】
当該プレイヤオブジェクトの向きまたは進行方向に従って移動を予測する処理は、プレイヤオブジェクト配置変更処理部２１６のプレイヤオブジェクト予測処理部２１８において実行されるものとする。そして、その予測した位置座標を衝突判定処理部２２２に出力して上述した衝突判定処理を実行する。
【０２０１】
当該処理により、衝突判定を予測してその結果を反映させることにより、追従度を変更するタイミングが早くなりプレイヤオブジェクト１５０の移動に対応した仮想カメラによる撮影が可能となる。すなわち、遮蔽される状況となる前に遮蔽を回避する位置に仮想カメラの配置が更新されることにより仮想カメラからの撮影方向の良好な視界を常に確保して臨場感を増すことが可能である。
【０２０２】
上記の「所定距離」は、プレイヤオブジェクト１５０の移動速度に応じて変更するのが好ましい。より具体的には、プレイヤオブジェクト１５０の移動速度が速いときにはこの「所定距離」を大きくするのが好ましい。
【０２０３】
なお、上記で説明した補間処理と組み合わせることにより衝突判定を予測して追従係数を滑らかに変化させることにより、仮想カメラの撮影方向をプレイヤオブジェクト１５０の移動に合わせて滑らかに変化させることが可能となり、さらに違和感の少ない映像を表示することが可能となる。
【０２０４】
なお、本例においては、プレイヤオブジェクト制御処理部２１０は、コントローラ入力からの操作入力データに従ってプレイヤオブジェクトの配置を変更する処理について説明してきたが、当該コントローラ入力によるものではなく予めプレイヤオブジェクトの動き（向きまたは進行方向）がプログラミングされていて自動的にプレイヤオブジェクトが移動するようなゲームの場合であっても同様に適用することが可能である。また、コントローラ入力またはプログラミングにより自動的にプレイヤオブジェクトの向きを制御した後、プレイヤオブジェクトの進行方向を当該向きに追従させて、プレイヤオブジェクトを移動させるような場合であっても同様に適用可能である。また、強制スクロールのようにプレイヤオブジェクトの向きまたは進行方向に従って自動的にプレイヤオブジェクトが移動し、向きまたは進行方向を変更する場合にはコントローラ入力を受け付けるようなゲームの場合であっても同様に適用可能である。
【０２０５】
また、本例においては、コントローラ入力として入力手段２６の十字キー２６ａを操作した場合を例に挙げて説明したが、特にこれに限られず他の手段、たとえば、コントローラ２２自体を動かすことによって、プレイヤオブジェクトを異なる方向に移動させるようにすることも可能である。
【０２０６】
また、単一の入力手段２６である例えば十字キー２６ａを操作してプレイヤオブジェクトを操作する場合のみならず、別の入力手段（例えば、Ａボタン２６ｄ等）と組み合わせてプレイヤオブジェクトを操作するようにすることも可能である。たとえば、十字キー２６ａを操作してプレイヤオブジェクトの向きを変更し、Ａボタン２６ｄを押下することによりその向きまたはその向きに応じて変更される進行方向にプレイヤオブジェクトを移動させるようにしても良い。
【０２０７】
なお、本例においては、主にプレイヤオブジェクトの向きまたは進行方向に追従する程度（追従度）を調整する場合として、現在角を目標角に追従するために用いる追従係数を変更する場合について説明したが、追従する程度を調整可能であればどのようなものを用いるようにしても良い。例えば、現在角を目標角に追従させるために用いる追従係数ではなく、現在角を目標角に追従させるための角速度を変更するようにしても良い。
【０２０８】
＜その他の形態＞
上述の実施の形態においては、本発明に係る情報処理装置の代表例として、ゲーム装置１２について例示したが、これに限定されることはない。すなわち、本発明に係るプログラムとして、パーソナルコンピュータで実行可能なアプリケーションを提供してもよい。このとき、本発明に係るプログラムは、パーソナルコンピュータ上で実行される各種アプリケーションの一部の機能として組み込まれてもよい。
【０２０９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２１０】
１０  ビデオゲームシステム、１２  ゲーム装置、１４  ハウジング、１６  ディスクスロット、１８  光ディスク、２０ａ  電源ボタン、２０ｂ  リセットボタン、２０ｃ  イジェクトボタン、２２  コントローラ、２２ｂ  外部拡張コネクタ、２２ｃ  インジケータ、２６  入力手段、２６ａ  十字キー、２６ｄ  Ａボタン、２８  外部メモリカード用コネクタカバー、３２ａ  ＡＶケーブル、３２ｂ  電源ケーブル、３４  モニタ、３４ａ，８６  スピーカ、３４ｂ  マーカ部、４０  ＣＰＵ、４２ａ  入出力プロセッサ、４２ｄ  ＲＡＭ、４２ｅ  内部メインメモリ、４４  フラッシュメモリ、４６  外部メインメモリ、５０  無線通信モジュール、５０ａ，５２ａ，７８  アンテナ、、５２  無線コントローラモジュール、５４  ディスクドライブ、５８  ＡＶコネクタ、６０  拡張コネクタ、６２  外部メモリカード用コネクタ、７０  プロセッサ、７２  メモリ、７４  加速度センサ、７６  無線モジュール、８０  撮像情報演算部、８０ａ  赤外線フィルタ、８０ｂ  レンズ、８０ｃ  撮像素子、８０ｄ  画像処理回路、８４  バイブレータ、８８  電源回路。
【図１】
2012249799.tif 000003
【図２】
2012249799.tif 000004
【図３】
2012249799.tif 000005
【図４】
2012249799.tif 000006
【図５】
2012249799.tif 000007
【図６】
2012249799.tif 000008
【図７】
2012249799.tif 000009
【図８】
2012249799.tif 000010
【図９】
2012249799.tif 000011
【図１０】
2012249799.tif 000012
【図１１】
2012249799.tif 000013
【図１２】
2012249799.tif 000014
【図１３】
2012249799.tif 000015
【図１４】
2012249799.tif 000016
【図１５】
2012249799.tif 000017