説明

画像処理装置、画像処理方法、および画像処理装置の制御プログラム

【課題】操作性や臨場感を増すことが可能な映像を表示する画像処理装置を提供する。
【解決手段】画像処理装置であって、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは進行方向に当該第1オブジェクトを移動させる第1オブジェクト制御手段と、三次元空間での仮想カメラの撮影方向を、第1オブジェクト制御手段により決定された第1オブジェクトの向きまたは進行方向に徐々に追従するように決定し、かつ、当該撮影方向で第1オブジェクトを撮影する仮想カメラ制御手段と、仮想カメラに基づいて表示データを作成する表示データ作成手段とを備える。仮想カメラ制御手段は、仮想カメラから見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する検出手段と、検出結果に基づいて、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させる第1の追従変更手段とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像処理装置、画像処理方法、および画像処理装置の制御プログラムに関する。
【背景技術】
【0002】
2次元/3次元のゲーム空間内をオブジェクトが動きまわるようなアプリケーションがある。
【0003】
このようなアプリケーションでは、自己のプレイヤオブジェクト(プレイヤの操作に応答して移動し、動作するキャラクタ)を中心とする比較的狭い範囲のゲーム空間が通常のゲーム画面としてテレビまたはモニタに表示されている。
【0004】
たとえば、3D(3-Dimensional)ゲームにおいては、操作者によって操作され得るプレイヤオブジェクトをたとえば背後からある程度距離を離したカメラで撮影した映像を表示していた。
【0005】
一方で、3Dゲームでは、プレイヤオブジェクトとカメラとの間に背景画像または敵オブジェクトなどの他のオブジェクトが存在するとき、または、他のオブジェクトなどが移動してプレイヤオブジェクトとカメラとの間に割り込んできたとき、プレイヤオブジェクトをカメラで撮影することができず、プレイヤオブジェクトを操作することが難しくなるという問題があった。
【0006】
この点で、特開平9−167260号公報においては、プレイヤオブジェクトとカメラとの間にたとえば壁などの他のオブジェクトが存在することを検出した場合に、カメラからプレイヤオブジェクトに対する視線を他のオブジェクトが遮らないような位置にカメラを移動させて撮影する方式が提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平9−167260号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上記の特許文献に開示された技術では、プレイヤオブジェクトとカメラとの間に壁が存在するときに、壁の向きに基づいてカメラを移動させるため、操作性に問題があった。
【0009】
本発明は、上記のような問題を解決するためになされたものであって、操作性や臨場感を増すことが可能な映像を表示する画像処理装置、画像処理方法、および画像処理装置の制御プログラムを提供することである。
【課題を解決するための手段】
【0010】
この発明の第1の局面に従う画像処理装置は、三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは進行方向に当該第1オブジェクトを移動させる第1オブジェクト制御手段と、三次元空間での仮想カメラの撮影方向を、第1オブジェクト制御手段により決定された第1オブジェクトの向きまたは進行方向に徐々に追従するように決定し、かつ、当該撮影方向で第1オブジェクトを撮影する仮想カメラ制御手段と、仮想カメラ制御手段による仮想カメラに基づいて三次元空間の第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備える。仮想カメラ制御手段は、仮想カメラから見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する検出手段と、検出手段での検出結果に基づいて、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させる第1の追従変更手段とを含む。
【0011】
第1の局面によれば、画像処理装置は、通常時において、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に徐々に追従するようにしつつ、第1オブジェクトが他のオブジェクトに遮蔽されるような状況では、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させて仮想カメラの撮影方向を決定するので、第1オブジェクトが他のオブジェクトに遮蔽される状況になった際の仮想カメラの制御に唐突感がなく、操作性のよい画像処理装置を提供することができる。また、仮想カメラの撮影方向は第1オブジェクトの向きまたは進行方向に追従するので、第1オブジェクトの向きや進行方向が画面の奥行方向となってこの意味においても操作性がよい。
【0012】
好ましい、第2の局面によれば、検出手段は、第1オブジェクトの位置と仮想カメラの位置との間に他のオブジェクトが存在するか否かを検出する。
【0013】
第2の局面によれば、第1オブジェクトの位置と仮想カメラの位置との間に他のオブジェクトが存在するか否かを検出するため仮想カメラか見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを容易に検出することが可能である。
【0014】
好ましい、第3の局面によれば、仮想カメラ制御手段は、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第2の追従変更手段をさらに含む。
【0015】
第3の局面によれば、第1オブジェクトがその前方に向かって移動するときに、第1オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させることにより、第1オブジェクトが壁を回り込んだ後、その壁に沿って進むような状況において、仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【0016】
特に、第4の局面によれば、第1オブジェクト制御手段は、ユーザの方向入力を受け付けて、現在の仮想カメラの撮影方向を基準として方向入力に応じた方向にオブジェクトの向きまたは移動方向を変更する。
【0017】
第4の局面によれば、方向入力に応じた方向にオブジェクトの向きまたは移動方向を変更することにより、前方に進むことを意図するユーザ操作の場合には、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に早期にあわせることによりプレイヤオブジェクトの向きまたは進行方向に沿う前方方向の画像を素早く確認することが可能となるためユーザの操作性をさらに向上させることが可能となる。
【0018】
好ましい、第5の局面によれば、仮想カメラ制御手段は、第1オブジェクト制御手段により移動した第1オブジェクトの位置および向きまたは進行方向と追従させる程度とに基づいて仮想カメラの位置を変更する変更手段をさらに含む。
【0019】
特に、第6の局面によれば、変更手段は、第1オブジェクト制御手段により移動した第1オブジェクトの位置との距離が一定となるように仮想カメラの位置を変更する。
【0020】
第5および第6の局面によれば、第1オブジェクトの位置と仮想カメラの位置とが一定となるように変更されるため仮想カメラにより撮影した三次元空間に存在するオブジェクトとの距離感が変更しない。それゆえ、第1オブジェクトの視界が一定であるように感じられ臨場感を増すことが可能である。
【0021】
好ましい、第7の局面によれば、仮想カメラ制御手段は、三次元空間での仮想カメラの撮影方向を、第1オブジェクトの向きまたは進行方向に徐々に追従するように角度を調整するために用いられる第1の係数に従って決定し、第1の追従変更手段は、検出手段での検出結果に基づいて、第1の係数を第1の係数よりも大きい第2の係数に変更する。
【0022】
特に、第8の局面によれば、第1の追従変更手段は、第1の係数と第2の係数との間の第3の係数へ変更する係数補間手段をさらに含む。
【0023】
第7および第8の局面によれば、第1オブジェクトの向きまたは進行方向に徐々に追従するように角度を調整する第1の係数と第2の係数との間の第3の係数へ変更する係数補間手段を設けることにより、仮想カメラの撮影方向を調整する角度の変化を滑らかにして違和感の少ない映像を表示して臨場感を増す調整することが可能である。
【0024】
好ましい、第9の局面によれば、仮想カメラ制御手段は、第1オブジェクト制御手段により移動した第1オブジェクトの向きまたは進行方向に基づいて第1オブジェクトが進む位置を予測する第1オブジェクト位置予測手段と、仮想カメラから見て第1オブジェクト位置予測手段により予測された位置の第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する予測検出手段とをさらに含み、第1の追従変更手段は、予測検出手段での検出結果に基づいて、第1オブジェクトの向きまたは進行方向に追従する程度を上昇させる。
【0025】
特に、第10の局面によれば、予測検出手段は、第1オブジェクトの位置から第1オブジェクトの向きまたは進行方向に所定距離だけ離れた位置と仮想カメラの位置との間に他のオブジェクトが存在するか否かを検出する。なお、この「所定距離」は、第1オブジェクトの移動速度に応じて変更するのが好ましい。より具体的には、第1オブジェクトの移動速度が速いときにはこの「所定距離」を大きくするのが好ましい。
【0026】
弟9および第10の局面によれば、第1オブジェクトが他のオブジェクトに遮蔽される前に追従度を変更することが可能となり、遮蔽される状況となる前に遮蔽を回避する位置に仮想カメラが位置することにより仮想カメラからの撮影方向の良好な視界を常に確保して臨場感を増すことが可能である。
【0027】
好ましい、第11の局面によれば、第1オブジェクト制御手段は、ユーザの入力に応じて、第1オブジェクトの向きまたは進行方向を変更するとともに、当該向きまたは進行方向に第1オブジェクトを移動させ、かつ、当該ユーザの入力が所定の入力であるときに、第1オブジェクトの向きまたは進行方向を変更せずに第1オブジェクトを移動させ、仮想カメラ制御手段は、ユーザの入力が所定の入力であるときに、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第2の追従変更手段をさらに含む。
【0028】
第11の局面によれば、ユーザの入力が所定の入力であるときに、第1オブジェクトの向きまたは進行方向を変更せずに、第1オブジェクトを移動させ、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させることにより、向きまたは進行方向を変更せずに進むことを意図するユーザ操作の場合には、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に早期にあわせることによりプレイヤオブジェクトの向きまたは進行方向に沿う画像を素早く確認することが可能となるためユーザの操作性をさらに向上させることが可能となる。
【0029】
この発明の第12の局面に従う画像処理装置は、三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは当該進行方向に当該第1オブジェクトを移動させる第1オブジェクト制御手段と、三次元空間での仮想カメラの撮影方向を、第1オブジェクト制御手段により決定された第1オブジェクトの向きまたは進行方向に追従するように決定し、かつ、当該撮影方向で第1オブジェクトを撮影する仮想カメラ制御手段と、仮想カメラ制御手段による仮想カメラに基づいて三次元空間の第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備え、仮想カメラ制御手段は、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させる追従変更手段を含む。
【0030】
第12の局面によれば、画像処理装置は、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させて仮想カメラの撮影方向を決定することが可能であり、前方に向かって移動するという第1オブジェクトの動きに沿い仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【0031】
この発明の第13の局面に従う画像処理方法は、三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは進行方向に当該第1オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第1オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、当該撮影方向で第1オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、仮想カメラから見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む。
【0032】
第13の局面によれば、画像処理方法は、仮想カメラから見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを設け、仮想カメラの撮影方向を決定することが可能であり、第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させることにより他のオブジェクトに遮蔽された状態を回避させるとともに操作するプレイヤオブジェクトの視線の変化に合わせてプレイヤオブジェクトをカメラで撮影した映像を表示することが可能であるため臨場感をさらに増すことが可能である。
【0033】
この発明の第14の局面に従う画像処理方法は、三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは当該進行方向に当該第1オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第1オブジェクトの向きまたは進行方向に追従するように決定するステップと、当該撮影方向で第1オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む。
【0034】
第14の局面によれば、画像処理方法は、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステツプを設け、仮想カメラの撮影方向を決定することが可能であり、前方に向かって移動するという第1オブジェクトの動きに沿い仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【0035】
この発明の第15の局面に従う画像処理装置の制御プログラムは、三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは進行方向に当該第1オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第1オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、当該撮影方向で第1オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、仮想カメラから見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む、処理を実行させる。
【0036】
第15の局面によれば、画像処理装置の制御プログラムは、仮想カメラから見て第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、検出結果に基づいて、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを設け、仮想カメラの撮影方向を決定することが可能であり、第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させることにより他のオブジェクトに遮蔽された状態を回避させるとともに操作するプレイヤオブジェクトの視線の変化に合わせてプレイヤオブジェクトをカメラで撮影した映像を表示することが可能であるため臨場感をさらに増すことが可能である。
【0037】
この発明の第16の局面に従う画像処理装置の制御プログラムは、三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、三次元空間での第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、当該向きまたは当該進行方向に当該第1オブジェクトを移動させるステップと、三次元空間での仮想カメラの撮影方向を、移動された第1オブジェクトの向きまたは進行方向に追従するように決定するステップと、当該撮影方向で第1オブジェクトを撮影するステップと、仮想カメラに基づいて三次元空間の第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、決定するステップは、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む、処理を実行させる。
【0038】
第16の局面によれば、画像処理装置の制御プログラムは、第1オブジェクトがその前方に向かって移動するとき、仮想カメラの撮影方向を第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステツプを設け、仮想カメラの撮影方向を決定することが可能であり、前方に向かって移動するという第1オブジェクトの動きに沿い仮想カメラの撮影方向がより早く追従することにより臨場感を増すことが可能である。
【0039】
上述の記載においては、本発明の理解を助けるために後述の実施形態との対応関係を示すための参照符号および補足説明等を付したが、これらは本発明を何ら限定するものではない。
【発明の効果】
【0040】
本発明に従えば、臨場感を増すことが可能な映像を表示することが可能である。
【図面の簡単な説明】
【0041】
【図1】本発明の実施の形態に従うビデオゲームシステム10の構成を説明する図である。
【図2】図1に示すビデオゲームシステム10の電気的な構成を示すブロック図である。
【図3】コントローラ22の電気的な構成を示すブロック図である。
【図4】本発明の実施の形態に従うゲーム装置12のCPU40およびGPU42bで実現される機能ブロックの詳細について説明する図である。
【図5】本発明の実施の形態に従うゲーム空間である3次元ワールド座標系およびカメラ座標系を説明する図である。
【図6】本発明の実施の形態に従うモニタ34に表示されるゲーム画像の一例を説明する図である。
【図7】本発明の実施の形態に従うゲーム画面を表示する処理を実行するフロー図である。
【図8】本発明の実施の形態に従うプレイヤオブジェクトの配置更新処理のサブルーチンを説明するフロー図である。
【図9】本発明の実施の形態に従う仮想カメラの配置更新処理のサブルーチンを説明するフロー図である。
【図10】本発明の実施の形態に従う衝突判定処理を説明する概念図である。
【図11】本発明の実施の形態に従う仮想カメラの位置座標の算出について説明する図である。
【図12】本発明の実施の形態に従う追従度の変化を説明する図である。
【図13】本発明の実施の形態に従う十字キーの操作入力と変位量データとの関係を説明する図である。
【図14】本発明の実施の形態に従う別の衝突判定処理を説明する概念図である。
【図15】本発明の実施の形態に従う別の衝突判定処理を説明する概念図である。
【発明を実施するための最良の形態】
【0042】
この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0043】
<ゲーム装置の構成>
図1は、本発明の実施の形態に従うビデオゲームシステム10の構成を説明する図である。
【0044】
図1を参照して、この発明の実施の形態に従うビデオゲームシステム10は、画像処理装置の一種であるゲーム装置12およびコントローラ22を含む。
【0045】
本実施の形態に従うゲーム装置12は、少なくとも1つ以上のコントローラ22と通信可能に設計されている。また、ゲーム装置12と各コントローラ22とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【0046】
ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラム等を記憶した記憶媒体の典型例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
【0047】
また、ゲーム装置12のハウジング14の前面において、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。
【0048】
この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」とも称す。)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このビデオゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行なうことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行なうようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。また、ゲームプログラム等は、ネットワーク接続されたサーバなどから、有線または無線の通信回線を通じて、ゲーム装置12に供給(ダウンロード)されてもよい。このようにダウンロードされたゲームプログラム等については、ゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)やメモリカードに記憶される。
【0049】
なお、メモリカードとしては、汎用のSD(Secured Digital)カードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。
【0050】
ゲーム装置12のハウジング14の後面には、AVコネクタ58(図2参照)が設けられる。そのAVコネクタ58には、AVケーブル32aを通してゲーム装置12にモニタ(ディスプレイ)34およびスピーカ34aが接続される。このモニタ34およびスピーカ34aは、典型的には、カラーテレビジョン受像機である。AVケーブル32aは、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、モニタ34の画面上には、たとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからは、ゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ34の周辺(図1に示す例では、モニタ34の上側)には、2つの赤外LED(マーカ)340m,340nを有するマーカ部34bが設けられる。このマーカ部34bは、電源ケーブル32bを通してゲーム装置12に接続される。したがって、マーカ部34bには、ゲーム装置12から電源が供給される。これによって、マーカ340m,340nは発光し、それぞれモニタ34の前方に向けて赤外光を出力する。
【0051】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって供給される。ACアダプタは、家庭用の標準的な壁ソケットに差し込まれ、家庭用電源(商用電源)を、ゲーム装置12の駆動に適した低いDC電圧信号に変換する。他の実現例では、電源としてバッテリが用いられてもよい。
【0052】
このビデオゲームシステム10において、ユーザがゲーム(または、ゲームに限らず、他のアプリケーション)をプレイする場合には、ユーザは、まずゲーム装置12の電源をオンし、次いで、ビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。すると、ゲーム装置12は、その光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。あるいは、ゲーム装置12は、予めサーバからダウンロードされフラッシュメモリ44(図2参照)などに格納されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めることもできる。
【0053】
ユーザは、コントローラ22を操作して、ゲーム装置12に入力を与える。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
【0054】
また、コントローラ22には、入力手段(複数のボタンないしスイッチ)26が設けられる。具体的には、十字キー26aや、Aボタン26d等が設けられる。十字キー26aは、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、ユーザによって操作可能なキャラクタまたはオブジェクト(プレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【0055】
Aボタン26dは、押しボタンスイッチであり、ユーザキャラクタまたはユーザオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【0056】
さらに、コントローラ22は、撮像情報演算部80(図3参照)を有しており、図示しないがコントローラ22の先端面には撮像情報演算部80の光入射口が設けられる。
【0057】
なお、コントローラ22の形状や、各入力手段26の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明の本質に包含される。
【0058】
図2は、図1に示すビデオゲームシステム10の電気的な構成を示すブロック図である。ハウジング14内の各コンポーネントは、プリント基板に実装される。
【0059】
図2を参照して、ゲーム装置12には、CPU40が設けられる。このCPU40は、ゲームプロセッサとして機能する。このCPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV_IC56が接続される。
【0060】
外部メインメモリ46は、各種アプリケーションのプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする計時回路が設けられる。すなわち、CPU40は、ROM/RTC48を参照することで、現在の日時(年月日および時刻)を取得する。ディスクドライブ54は、光ディスク18からプログラムデータやオブジェクトデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書込む。
【0061】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b、DSP(Digital Signal Processor)42c、VRAM42d、および内部メインメモリ42eが設けられ、これらは内部バスによって互いに接続される。
【0062】
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。
【0063】
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0064】
上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0065】
なお、この本実施の形態では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外のなんらかのアプリケーションを実行する場合には、GPU42bは当該アプリケーションについての画像データを生成する。
【0066】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ34aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0067】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV_IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。
【0068】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60および外部メモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0069】
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。
【0070】
また、入出力プロセッサ42aは、コントローラ22から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。
【0071】
なお、この本実施の形態では、上述したように、無線コントローラモジュール52は、Bluetooth(登録商標)規格にしたがってコントローラ22との間で通信を行なう。
【0072】
さらに、入出力プロセッサ42aには、拡張コネクタ60および外部メモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。外部メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60や外部メモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0073】
図1にも示したように、ゲーム装置12(ハウジング14)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42は、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(通常モードと呼ぶこととする)を設定する。一方、電源ボタン20aがオフされると、システムLSI42は、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」とも称す。)を設定する。この本実施の形態では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行なう。したがって、このスタンバイモードは、CPU40によってアプリケーションの実行が行なわれないモードである。
【0074】
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
【0075】
また、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【0076】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。
【0077】
図3は、コントローラ22の電気的な構成を示すブロック図である。
図3を参照して、コントローラ22はプロセッサ70を含み、このプロセッサ70には、内部バス(図示せず)によって、外部拡張コネクタ22b、入力手段26、メモリ72、加速度センサ74、無線モジュール76、撮像情報演算部80、LED82(インジケータ22c)、バイブレータ84、スピーカ86および電源回路88が接続される。また、無線モジュール76には、アンテナ78が接続される。
【0078】
プロセッサ70は、コントローラ22の全体制御を司り、入力手段26、加速度センサ74および撮像情報演算部80によって入力された情報(入力情報)を、入力データとして無線モジュール76およびアンテナ78を介してゲーム装置12に送信(入力)する。このとき、プロセッサ70は、メモリ72を作業領域ないしバッファ領域として用いる。
【0079】
上述した入力手段26(26a,26d等)からの操作信号(操作データ)は、プロセッサ70に入力され、プロセッサ70は操作データを一旦メモリ72に記憶する。
【0080】
また、加速度センサ74は、コントローラ22の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ74は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【0081】
たとえば、加速度センサ74は、第1所定時間毎に、x軸,y軸,z軸の各々についての加速度(ax,ay,az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ70に入力する。たとえば、加速度センサ74は、各軸方向の加速度を、−2.0G〜2.0G(Gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ70は、加速度センサ74から与えられる加速度データを、第2所定時間毎に検出し、一旦メモリ72に記憶する。プロセッサ70は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3所定時間(たとえば、5msec)毎にゲーム装置12に送信する。
【0082】
ここで、加速度センサ74から出力される加速度データに基づいて、ゲーム装置12のプロセッサ(たとえば、CPU40)またはコントローラ22のプロセッサ(たとえば、プロセッサ70)などのコンピュータが処理を行なうことによって、コントローラ22に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
【0083】
たとえば、1軸の加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合、すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合、コントローラ22が現実に静的な状態であれば、検出された加速度データに基づいてコントローラ22の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向である状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかを知ることができる。
【0084】
また、多軸の加速度センサの場合には、さらに各軸の加速度データに対して処理を施すことによって、重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサの出力に基づいて、プロセッサ70がコントローラ22の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータの算出処理を行なうことなく、加速度センサからの出力に基づいて、おおよその傾きを推定できるような処理としてもよい。このように、加速度センサをプロセッサと組み合わせることによって、コントローラ22の傾き、姿勢または位置を判定することができる。
【0085】
一方、加速度センサが動的な状態を前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動きの方向などを知ることができる。具体的には、加速度センサを有するコントローラ22がユーザの手で動的に加速されて動かされている場合に、加速度センサによって生成される加速度データを処理することによって、コントローラ22の様々な動きおよび/または位置を算出することができる。
【0086】
なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることができる。他の実施の形態では、加速度センサは、加速度データをプロセッサ70に出力する前に、内蔵の加速度検出手段から出力される加速度信号(加速度データ)に対して所望の処理を行なうための、組込み式の信号処理装置また他の種類の専用の処理装置を搭載してもよい。たとえば、組込み式または専用の処理装置は、加速度センサが静的な加速度(たとえば、重力加速度)を検出するためのものである場合、検知された加速度データをそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0087】
無線モジュール76は、たとえばBluetooth(登録商標)の技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ78から放射する。つまり、入力データは、無線モジュール76によって微弱電波信号に変調されてアンテナ78(コントローラ22)から送信される。この微弱電波信号が上述したゲーム装置12に設けられた無線コントローラモジュール52によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置12(CPU40)は、コントローラ22からの入力データを取得することができる。そして、CPU40は、取得した入力データとプログラム(ゲームプログラム)とに従ってゲーム処理を行なう。
【0088】
さらに、上述したように、コントローラ22には、撮像情報演算部80が設けられる。この撮像情報演算部80は、赤外線フィルタ80a、レンズ80b、撮像素子80cおよび画像処理回路80dによって構成される。赤外線フィルタ80aは、コントローラ22の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ34の表示画面近傍(周辺)に配置されるマーカ340mおよび340nは、モニタ34の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ80aを設けることによってマーカ340mおよび340nの画像をより正確に撮像することができる。レンズ80bは、赤外線フィルタ80aを透過した赤外線を集光して撮像素子80cへ出射する。撮像素子80cは、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ80bによって集光された赤外線を撮像する。したがって、撮像素子80cは、赤外線フィルタ80aを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子80cによって撮像された画像を撮像画像と呼ぶ。撮像素子80cによって生成された画像データは、画像処理回路80dで処理される。画像処理回路80dは、撮像画像内における撮像対象(マーカ340mおよび340n)の位置を算出し、第4所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ70に出力する。撮像対象を含む撮像画像の画像データを用いて、画像処理回路80dは、各マーカ340mおよび340nの撮像画像における位置を表す座標(マーカ座標)を算出する。そして、撮像画像における対象画像間の距離が、コントローラ22と、マーカ340mおよび340nとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12はコントローラ22とマーカ340mおよび340nとの間の距離を把握できる。
【0089】
図4は、本発明の実施の形態に従うゲーム装置12のCPU40およびGPU42bで実現される機能ブロックの詳細について説明する図である。
【0090】
図4を参照して、本例においては、一例として、ここでは、データロード処理部200、レイアウトデータ初期設定処理部202、コントローラ入力処理部204、プレイヤオブジェクト制御処理部210、仮想カメラ制御処理部220と、データ生成処理部230とが設けられた場合が示されている。
【0091】
具体的には、データロード処理部200、レイアウトデータ初期設定処理部202、コントローラ入力処理部204、プレイヤオブジェクト制御処理部210、仮想カメラ制御処理部220は、CPU40により実現される機能である。また、データ生成処理部230は、GPU42bにより実現される機能である。なお、各機能は、必要に応じてマルチタスク制御により実現されるものとする。
【0092】
以下、具体的に説明する。データロード処理部200は、光ディスク18から読み出されたプログラムデータ等を外部メインメモリ46あるいは内部メインメモリ42eに必要に応じてロードする。
【0093】
レイアウトデータ初期設定処理部202は、外部メインメモリ46あるいは内部メインメモリ42eから記憶されているロードされたオブジェクトデータを読出し、ワールド座標系の初期座標にそれぞれ配置する。
【0094】
コントローラ入力処理部204は、コントローラ22により操作されたコントローラ入力である入力データを受け付けて、それを解析した操作入力データをオブジェクトデータの初期座標に関するデータとともにプレイヤオブジェクト制御処理部210に出力する。なお、解析する必要が無ければ受け付けた入力データをそのままプレイヤオブジェクト制御処理部210に出力するようにしても良い。
【0095】
ここで、コントローラ入力処理部204には、入力方向判定処理部206が含まれており、入力方向判定処理部206は、操作入力データが所定方向の入力であるかどうかを判定する。後述するが所定方向の入力があったと判定した場合には、追従度調整処理部224に対して追従度を所定レベルに変更するように指示する。
【0096】
プレイヤオブジェクト制御処理部210は、プレイヤオブジェクト方向決定処理部212と、プレイヤオブジェクト移動量決定処理部214と、プレイヤオブジェクト配置変更処理部216とを含む。
【0097】
プレイヤオブジェクト方向決定処理部212は、操作入力データに従ってプレイヤオブジェクトの向きあるいは進行方向を決定する。
【0098】
プレイヤオブジェクト移動量決定処理部214は、操作入力データに従ってプレイヤオブジェクトの移動量を決定する。
【0099】
プレイヤオブジェクト配置変更処理部216は、プレイヤオブジェクト方向決定処理部212で決定されたプレイヤオブジェクトの向きあるいは進行方向およびプレイヤオブジェクト移動量決定処理部214で決定された移動量に基づいてプレイヤオブジェクトの位置を変更する。そして、変更処理したプレイヤオブジェクトの位置等のデータを仮想カメラ制御処理部220に出力する。
【0100】
ここで、プレイヤオブジェクト配置変更処理部216は、プレイヤオブジェクト予測処理部218が含まれており、プレイヤオブジェクト予測処理部218は、プレイヤオブジェクトの向きあるいは進行方向に従って次に進む位置を予測する。後述するがプレイヤオブジェクト予測処理部218は、プレイヤオブジェクトの向きあるいは進行方向に従って本来プレイヤオブジェクトが変更される位置から所定距離進んだ位置を予測する。
【0101】
仮想カメラ制御処理部220は、衝突判定処理部222と、追従度調整処理部224と、仮想カメラ配置変更処理部228とを含む。
【0102】
衝突判定処理部222は、仮想カメラから見て、プレイヤオブジェクト配置変更処理部216で変更された位置に配置されるプレイヤオブジェクトが他のオブジェクトにより遮蔽されるか否かを判定する。
【0103】
具体的には、プレイヤオブジェクト配置変更処理部216で変更されたプレイヤオブジェクトの位置と、現在の仮想カメラとの位置とに基づいてその間に他のオブジェクトが存在するか否かを判定する。衝突判定処理部222は、当該判定結果を追従度調整処理部224に出力する。
【0104】
追従度調整処理部224は、衝突判定処理部222での判定結果に基づいてプレイヤオブジェクトの動きに仮想カメラが追従する程度の度合いを示す追従度を調整する。
【0105】
具体的には、衝突判定処理部222における判定結果に基づいて、他のオブジェクトが存在すると判定した場合には、追従度を上げる。一方、衝突判定処理部222における判定結果に基づいて、他のオブジェクトは存在しないと判定した場合には、追従度は変更しない。すなわち、通常の値に設定する。当該追従度に従って仮想カメラが配置される向きおよび位置が変化する。仮想カメラが配置される位置の設定については後述する。
【0106】
ここで、追従度調整処理部224は、補間処理部226を含む。後述するが補間処理部226は、追従度の調整に伴う追従係数の値を最小値と最大値との間の値に補間する処理を実行する。
【0107】
仮想カメラ配置変更処理部228は、プレイヤオブジェクト配置変更処理部216で変更されたプレイヤオブジェクトの向きあるいは進行方向および位置等に関するデータと追従度とに基づいて仮想カメラの向き(撮影方向)および位置を変更する。当該仮想カメラの向き(撮影方向)および位置の変更については後述する。
【0108】
データ生成処理部230は、カメラ座標系変換処理部232と、投影平面座標系変換処理部234と、表示データ生成処理部236とを含む。
【0109】
カメラ座標系変換処理部232は、プレイヤオブジェクト制御処理部210から出力された変更されたプレイヤオブジェクトの位置等のデータと仮想カメラ制御処理部220から出力された変更された仮想カメラの位置等のデータとに基づいてカメラ座標系に変換した座標データを投影平面座標系変換処理部234に出力する。
【0110】
投影平面座標系変換処理部234は、投影平面に座標変換し、投影平面における座標データを表示データ生成処理部236に出力する。
【0111】
表示データ生成処理部236は、当該座標データに基づいてテクスチャデータ等を用いて表示データを生成して出力する。
【0112】
図5は、本発明の実施の形態に従うゲーム空間である3次元ワールド座標系およびカメラ座標系を説明する図である。
【0113】
図5を参照して、ここでは、3次元ワールド座標系において、地形オブジェクト160、プレイヤオブジェクト150が初期座標に配置された場合が示されている。
【0114】
仮想カメラ100は、プレイヤオブジェクト150と所定距離、離れた位置に配置され、プレイヤオブジェクト150を撮影する。
【0115】
プレイヤオブジェクト150の向きあるいは進行方向が変更されない場合、プレイヤオブジェクト150の向きあるいは進行方向と仮想カメラの撮影方向は一致した状態を維持する。すなわち、プレイヤオブジェクト150の視線と仮想カメラの撮影方向とが同じ向きであり、プレイヤオブジェクト150の視点でゲーム操作が可能となる。
【0116】
プレイヤオブジェクト150の向きあるいは進行方向が変更された場合、仮想カメラ100の撮影方向は、プレイヤオブジェクト150の向きあるいは進行方向に徐々に追従するように決定される。仮想カメラ100の撮影方向をプレイヤオブジェクトの向きあるいは進行方向に徐々に追従させることによりプレイヤオブジェクト150の向きあるいは進行方向が大きく変化した場合であっても急激な画面変化による映像酔い(3D酔い)を抑制しつつプレイヤオブジェクト150の視線でのゲーム操作を可能としている。
【0117】
本例においては、プレイヤオブジェクト150の向きまたは進行方向が前方であった場合に、左方向にプレイヤオブジェクト150の向きまたは進行方向を変更した場合が示されている。つまりプレイヤオブジェクト150が地形オブジェクト160である壁オブジェクトのコーナを左に曲がったような状況が想定されている。
【0118】
プレイヤオブジェクト150が壁オブジェクトのコーナを左に曲がって移動した場合、仮想カメラ100から見て、プレイヤオブジェクト150が地形オブジェクト160である壁オブジェクトにより遮蔽されてしまう。具体的には、後述するがプレイヤオブジェクト150が移動する位置と現在の仮想カメラとの位置とに基づいてその間に地形オブジェクト160が存在すると判定される状態である。
【0119】
この場合、仮想カメラ100とプレイヤオブジェクト150との間に地形オブジェクト160である壁オブジェクトが存在するためプレイヤオブジェクト150を撮影することができなくなる。したがって、仮想カメラ100の位置をプレイヤオブジェクト150を撮影することができる位置に変更する必要がある。
【0120】
本実施の形態においては、例えば地形オブジェクト160により、仮想カメラ100から見て、プレイヤオブジェクト150が遮蔽されてしまう場合には、仮想カメラ100の撮影方向をプレイヤオブジェクト150の向きまたは進行方向に追従させる程度(追従度)を上昇させて仮想カメラ100の位置および撮影方向を決定する。
【0121】
なお、モニタ34に表示される画像は、決定された仮想カメラの位置および撮影方向でプレイヤオブジェクト150等を撮影した画像が表示される。
【0122】
図6は、本発明の実施の形態に従うモニタ34に表示されるゲーム画像の一例を説明する図である。
【0123】
図6(A)〜(C)を参照して、ここでは、仮想カメラ100でプレイヤオブジェクト150を撮影した画像が示されている。
【0124】
図6(A)を参照して、ここでは、地形オブジェクト160によりプレイヤオブジェクト150が囲まれている状況が示されている。コントローラ22によりプレイヤオブジェクト150を操作することが可能であり、ここでは、プレイヤオブジェクトの向きあるいは進行方向の正面に通路があり、通路の前方および右方向は行き止まりであり左方向に続くように表示されている場合が示されている。
【0125】
図6(B)を参照して、図6(A)の状態からプレイヤオブジェクトの向きあるいは進行方向を変更せず、前方に向かって進んだ状態が示されている。ここで、プレイヤオブジェクト150の正面および右方向は行き止まりとなっており、左方向に通路が続く場合が示されている。図5のプレイヤオブジェクト150が移動する前の状況に対して、仮想カメラ100により撮影した画像である。
【0126】
図6(C)を参照して、ここでは、プレイヤオブジェクト150が左に曲がった場合の状態が示されている。図5のプレイヤオブジェクト150が移動した後の状況に対して、仮想カメラ100により撮影した画像である。本実施の形態においては、仮想カメラの撮影方向は、プレイヤオブジェクト150の向きまたは進行方向に徐々に追従するが、この状況の場合、仮想カメラ100から見て、プレイヤオブジェクト150が地形オブジェクト160である壁オブジェクトにより遮蔽されることになるため追従度を上げて追従させる。なお、ここでは、時間の経過に従って仮想カメラ100の撮影方向がプレイヤオブジェクト150の向きまたは進行方向と一致した場合の画像が示されている。
【0127】
図7は、本発明の実施の形態に従うゲーム画面を表示する処理を実行するフロー図である。当該処理は、主にCPU40およびGPU42bで実行される処理である。
【0128】
図7を参照して、まず、データロード処理部200により光ディスク18から読み出されたデータ等を外部メインメモリ46あるいは内部メインメモリ42eに必要に応じてロードする(ステップS1)。
【0129】
そして、次に、レイアウトデータ初期設定処理部202は、外部メインメモリ46あるいは内部メインメモリ42eからロードされた地形オブジェクト(地面オブジェクト,建物オブジェクト,壁オブジェクト等)等のデータを読み出し、その地形オブジェクトを、図5に示すような、ゲーム空間である3次元ワールド座標系の初期座標に配置する(ステップS4)。
【0130】
また、レイアウトデータ初期設定処理部202は、プレイヤオブジェクト150を同じワールド座標系の初期座標に配置する。また、仮想カメラ100をワールド座標系の初期座標に配置する。
【0131】
次に、コントローラ入力処理部204は、コントローラ22の入力手段26(図1および図3)が操作されたかどうか、すなわち、無線コントローラモジュール52を介してコントローラ22から入力があったかどうか判断する(ステップS6)。
【0132】
コントローラ入力処理部204は、コントローラ入力がある場合(ステップS6においてYES)には、操作入力データをプレイヤオブジェクト制御処理部210に出力する。
【0133】
そして、プレイヤオブジェクト制御処理部210は、プレイヤオブジェクトの配置を更新する(ステップS8)。当該プレイヤオブジェクトの配置の更新処理については後述する。
【0134】
次に、仮想カメラ制御処理部220は、ステップS8で更新されたプレイヤオブジェクトの更新された配置に従って、仮想カメラの配置を更新する(ステップS10)。仮想カメラの配置の更新処理については後述する。
【0135】
なお、コントローラ入力処理部204は、コントローラ22から入力が無かったと判断した場合(ステップS6においてNO)には、ステップS8およびステップS10をスキップして次の処理に進む。すなわち、この場合には、プレイヤオブジェクトは移動しない。
【0136】
次に、データ生成処理部230のカメラ座標系変換処理部232は、地形オブジェクト、プレイヤオブジェクト等の位置を配置された仮想カメラの位置を基準とする3次元のカメラ座標系に変換する(ステップS12)。
【0137】
そして、次に、データ生成処理部230の投影平面座標系変換処理部234は、変換された3次元のカメラ座標系を2次元の投陰平面座標系に変換する(ステップS14)。なお、その際、テクスチャの指定やクリッピング(clipping:不可視世界の切り取り)等も併せて実行する。これにより、仮想カメラでプレイヤオブジェクト等を撮影した2次元の画像データを取得することが可能となる。
【0138】
そして、データ生成処理部230の表示データ生成処理部236は、ゲーム画像となる表示データの生成処理を実行する(ステップS16)。
【0139】
そして、ゲーム装置12は、当該表示データをモニタ34に出力してゲーム画像を表示する(ステップS18)。
【0140】
次に、ゲームが終了したかどうかを判断する(ステップS20)。ゲームが終了でない場合には、再び、ステップS6に戻る。
【0141】
一方、ゲームが終了した場合には、処理を終了する(終了)。
図8は、本発明の実施の形態に従うプレイヤオブジェクトの配置更新処理のサブルーチンを説明するフロー図である。当該処理は、プレイヤオブジェクト制御処理部210で実行される処理である。
【0142】
図8を参照して、まず、コントローラ22からの操作入力データを取得する(ステップS30)。
【0143】
上述したように、コントローラ22には、十字キー26aが設けられており、本例では、プレイヤオブジェクトの移動方向および移動量、つまり移動位置を決定するためには、十字キー26aに応じてプレイヤオブジェクトを移動させる。操作入力データは、十字キー26aの2つの軸、横軸(X軸)および縦軸(Y軸)の変位量データとして与えられる。
【0144】
次に、プレイヤオブジェクト方向決定処理部212およびプレイヤオブジェクト移動量決定処理部214は、操作入力データの変位量データからプレイヤオブジェクトの移動方向および移動量を決定する(ステップS32)。
【0145】
次に、プレイヤオブジェクト配置変更処理部216は、決定されたプレイヤオブジェクトの移動方向および移動量に基づいてプレイヤオブジェクトの現在の位置座標から新たな位置座標を算出する(ステップS34)。
【0146】
そして、プレイヤオブジェクト配置変更処理部216は、算出された新たな位置座標に決定された向きでプレイヤオブジェクトを配置し、更新する(ステップS36)。
【0147】
そして、処理を終了する(リターン)。
このようにして、コントローラ22の入力に応答して、プレイヤオブジェクト制御処理部210はプレイヤオブジェクトの配置(位置および向き)を更新する。
【0148】
図9は、本発明の実施の形態に従う仮想カメラの配置更新処理のサブルーチンを説明するフロー図である。当該処理は、仮想カメラ制御処理部220で実行される処理である。
【0149】
図9を参照して、まず、衝突判定処理部222は、衝突判定処理を実行する(ステップS40)。
【0150】
図10は、本発明の実施の形態に従う衝突判定処理を説明する概念図である。
図10を参照して、プレイヤオブジェクト150について、プレイヤオブジェクト150が移動して新たな位置座標に配置された場合に、仮想カメラ100から見てプレイヤオブジェクト150が他のオブジェクトに遮蔽されるか否かを判定する。具体的には、プレイヤオブジェクト150の新たな位置座標と仮想カメラ100の位置座標との間に他のオブジェクト(地形オブジェクト)が存在するかどうかを判定する。
【0151】
本例においては、プレイヤオブジェクト150の新たな位置座標と仮想カメラ100の位置座標との間に地形オブジェクトの1つである壁オブジェクトが存在する場合が示されている。
【0152】
したがって、当該場合には、衝突有りと判定される。
再び、図9を参照して、ステップS40において、衝突判定処理部222は、衝突有りと判断した場合(ステップS40においてYES)には、その結果を追従度調整処理部224に出力する。追従度調整処理部224は、仮想カメラ100の撮影方向をプレイヤオブジェクト150の向きまたは進行方向に追従させる程度を上昇させる。具体的には、追従度を大に決定する(ステップS44)。
【0153】
一方、ステップS40において、衝突判定処理部222は、衝突無しと判断した場合(ステップS40においてNO)には、その結果を追従度調整処理部224に出力する。追従度調整処理部224は、仮想カメラ100の撮影方向をプレイヤオブジェクト150の向きまたは進行方向に追従させる程度を通常の状態として維持させる。具体的には、追従度を通常に決定する(ステップS46)。
【0154】
そして、次に、仮想カメラ配置変更処理部228は、プレイヤオブジェクトの位置座標と仮想カメラの追従度とに基づいて仮想カメラの新たな位置座標を算出する(ステップS48)。位置座標の算出については後述する。
【0155】
次に、仮想カメラ配置変更処理部228は、算出された新たな位置座標に決定された向きで仮想カメラを配置し、更新する(ステップS50)。
【0156】
そして、処理を終了する(リターン)。
このようにして、プレイヤオブジェクトの移動に応じて仮想カメラ制御処理部220は、仮想カメラの配置(位置および向き)を更新する。
【0157】
なお、仮想カメラの配置の更新処理は、プレイヤオブジェクト150の新たな位置座標と仮想カメラの位置座標との距離が一定距離L以上である場合に実行するようにしても良い。具体的には、プレイヤオブジェクト150が方向転換して後ろに下がるような場合、すなわちプレイヤオブジェクト150の新たな位置座標と仮想カメラの位置座標との距離が一定距離L未満となる場合には仮想カメラの配置を更新しないようにすることも可能である。そうすることによりプレイヤオブジェクト150の進行方向を容易にユーザが把握することができプレイヤオブジェクト150の操作性を向上させることが可能である。
【0158】
なお、プレイヤオブジェクト150の新たな位置座標と更新された仮想カメラの位置座標とに基づいて衝突判定処理を再度実行するようにしても良い。その場合、衝突が有ると判定された場合には、更新された仮想カメラの配置をさらに再更新するようにして衝突を回避させるようにすることが可能である。
【0159】
図11は、本発明の実施の形態に従う仮想カメラの位置座標の算出について説明する図である。
【0160】
図11を参照して、本例においては、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に徐々に追従するように決定する。
【0161】
ここで、一例としてプレイヤオブジェクトが位置座標OBから位置座標OB1に移動した場合が示されている。また、プレイヤオブジェクトの向きまたは進行方向がx軸方向を基準として角度φから角度θに変更され場合が示されている。なお、プレイヤオブジェクトが位置座標OBに配置されていた場合における仮想カメラの向きまたは進行方向は角度φであったものとする。
【0162】
本実施の形態においては、プレイヤオブジェクトの向きまたは進行方向に追従して仮想カメラの撮影方向が決定される。なお、プレイヤオブジェクトと仮想カメラとの距離は一定距離Lに設定される。一定距離とすることにより仮想カメラにより撮影した三次元空間に存在するオブジェクトとの距離感が変更しない。それゆえ、プレイヤオブジェクトの視界が一定であるように感じられ臨場感を増すことが可能である。
【0163】
具体的には、変更される仮想カメラの撮影方向である角度φ’は、目標とする角度(目標角)θと現在の角度(現在角)φと追従度とに従って決定される。本例においては、追従度は、一例として現在の角度(現在角)φから目標とする角度(目標角)θに角度を追従させるために用いる追従係数として示される。
【0164】
本例においては、一例として、角度φ’=(θ−φ)×追従係数+φに決定される。
追従係数は、本例においては、追従係数r0,r1(>r0)の2種類の追従係数が設けられている。
【0165】
追従係数r0は、追従度が通常時の場合に対応する。追従係数r1は、追従度が大の場合に対応する。
【0166】
これにより、プレイヤオブジェクトの移動後の位置座標OB1と、プレイヤオブジェクトと仮想カメラとの一定距離Lと、角度φ’とに基づいて仮想カメラの配置、すなわち位置および撮影方向が一意に決定される。
【0167】
本例においては、追従係数r0に従って仮想カメラを位置座標COB1に配置する場合と、追従係数r1に従って仮想カメラを位置座標COB2に配置する場合とが示されている。
【0168】
当該方式により仮想カメラの撮影方向は、プレイヤオブジェクトの向きまたは進行方向に徐々に追従するように決定される。
【0169】
また、追従係数r1は、当該追従係数に従って角度φ’を決定した場合に、更新されて配置された仮想カメラから見てプレイヤオブジェクトが他のオブジェクトに遮蔽されることがないような適切な値に設定されることが望ましい。
【0170】
本発明の実施の形態に従う処理は、仮想的なゲーム空間において、プレイヤオブジェクトが隠れないように仮想カメラを配置する。具体的には、操作するプレイヤオブジェクトの向きまたは進行方向に仮想カメラの撮影方向を徐々に追従させる際、プレイヤオブジェクトが隠れるような場合には追従度を調節(上昇)させて、プレイヤオブジェクトが常に表示されている状態を維持する。また、本例においては、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に徐々に追従させる。すなわち、操作するプレイヤオブジェクトの移動に伴ってプレイヤオブジェクトの視線が徐々に変化する方向に合わせて、仮想カメラでプレイヤオブジェクトを撮影する撮影方向を変化させることにより、プレイヤオブジェクトの視線の変化に沿う映像が表示される。したがって、プレイヤオブジェクトの視線でゲーム操作が可能となり臨場感が増し、ゲームの興趣性を高めることが可能となる。
【0171】
また、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に追従させる程度を上昇させて仮想カメラの撮影方向を決定するので、プレイヤオブジェクトが他のオブジェクト(たとえば壁オブジェクト)に遮蔽される状況になった際の仮想カメラの制御に唐突感がなく、操作性が良い。また、仮想カメラの撮影方向はプレイヤオブジェクトの向きまたは進行方向に追従するので、プレイヤオブジェクトの向きや進行方向が画面の奥行方向となってこの意味においても操作性がよい。
【0172】
図12は、本発明の実施の形態に従う追従度の変化を説明する図である。
図12(A)を参照して、プレイヤオブジェクトの向きまたは進行方向に追従する程度(追従度)に示される追従係数の変化が示されている。ここでは、r0,r1,r2(>r1)の3種類の追従係数が設定されている。
【0173】
追従度が通常の場合には、追従係数はr0に設定される。
また、衝突判定処理により衝突有りと判定された場合には、追従度を大に変更する。本例においては、追従係数をr1に設定する。そして、再び、追従係数をr0に設定する。そして、再び、衝突有りとなった場合には追従度を大に設定する。当該追従度の変更により仮想カメラの撮影方向がプレイヤオブジェクトの向きまたは進行方向に追従する程度を変更することにより、仮想カメラから見てプレイヤオブジェクトが他のオブジェクトに遮蔽される状況を回避することが可能となる。
【0174】
また、所定の条件の場合には、追従係数をr2に設定する場合が示されている。本例における所定の条件とは、コントローラ22の十字キー26aの上方向が入力された場合に相当する。具体的には、コントローラ入力処理部204の入力方向判定処理部206は、操作入力データの変位量データに従ってコントローラ22の十字キー26aの上方向が入力されたかどうかを判定する。
【0175】
図13は、本発明の実施の形態に従う十字キーの操作入力と変位量データとの関係を説明する図である。
【0176】
図13を参照して、十字キーを押下した方向が上方向と左方向との間であった場合における変位量データの算出について説明する。
【0177】
具体的には、縦軸(y軸)の変位量が1を基準とした場合に閾値である0.1を超えていると判断した場合には上方向の入力(変位量データy=1)がされたものと判断する。また、横軸(x軸)の変位量が−0.1よりも小さいと判断した場合には、左方向の入力(変位量データx=−1)がされたものと判断する。また、縦軸(y軸)の変位量が−0.1よりも小さいと判断した場合には下方向の入力(変位量データy=−1)がされたものと判断する。また、横軸(x軸)の変位量が0.1よりも大きいと判断した場合には、右方向の入力(変位量データx=1)がされたものと判断する。
【0178】
したがって、当該場合には、上方向と左方向の間の方向の入力がされたものと判断される。すなわち、操作入力データの変位量データ(x,y)は、(−1,1)として入力方向判定処理部206に入力されるものとする。
【0179】
なお、ここでは、x軸、y軸の変位量の閾値として0.1あるいは−0.1と比較する場合について説明したが当該閾値は一例であり、他の値とすることも当然に可能である。
【0180】
図14は、本発明の実施の形態に従う所定の条件の場合における仮想カメラの配置更新処理のサブルーチンを説明するフロー図である。当該処理は、仮想カメラ制御処理部220で実行される処理である。
【0181】
図14を参照して、追従度調整処理部224は、上方向の判定が有ったかどうかを判断する(ステップS43)。なお、上述したように入力方向判定処理部206は、変位量データのy軸の値に従って上方向が入力されたかどうかを判定することが可能である。そして、上方向の入力がされたと判定された場合には、その判定結果を追従度調整処理部224に出力する。ここでの上方向の判定は、入力方向判定処理部206からの上方向の判定があったかどうかを判断している。
【0182】
追従度調整処理部224は、入力方向判定処理部206から上方向の判定が有ったと判断した場合(ステップS43においてYES)には、仮想カメラ100の撮影方向をプレイヤオブジェクト150の向きまたは進行方向に追従させる程度を上昇させる。具体的には、追従度を最大に決定する(ステップS45)。具体的には、本例においては、追従度として追従係数をr2(>r1)に決定する。
【0183】
一方、ステップS43において、追従度調整処理部224は、入力方向判定処理部206からの上方向の判定が無かったと判断した場合(ステップS43においてNO)には、仮想カメラ100の撮影方向をプレイヤオブジェクト150の向きまたは進行方向に追従させる程度を通常の状態として維持させる。具体的には、追従度を通常に決定する(ステップS46)。
【0184】
なお、本例においては、入力方向判定処理部206から上方向の判定が有った場合に、追従度を上昇させる場合について説明したが、これに限られず、例えば、入力方向判定処理部206において下方向の入力を判定しても良い。そして、当該判定が有った場合に、追従度調整処理部224は、追従度を小さくするようにしても良い。より具体的には追従係数をr3(0<r3<r0)としても良い。
【0185】
そして、次に、仮想カメラ配置変更処理部228は、プレイヤオブジェクトの位置座標と仮想カメラの追従度とに基づいて仮想カメラの新たな位置座標を算出する(ステップS48)。以降の処理については、図9で説明したのと同様であるのでその詳細な説明は繰り返さない。
【0186】
すなわち、コントローラ22の十字キー26aの上方向が入力された場合には、当該追従係数r2に従って、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に追従させる。
【0187】
プレイヤオブジェクトの向きまたは進行方向と仮想カメラの撮影方向とが同じである場合にも追従係数はr2に設定される。なお、目標とする角度と現在の角度との間に差がない場合には当該追従係数の変化は反映されない。
【0188】
一方、例えば、図5で示されるようにプレイヤオブジェクト150が壁オブジェクトのコーナを左に曲がって、さらに進行方向である前方に移動するような場合、例えば、十字キー26aの左方向が入力された後、上方向が入力された場合に追従係数をr2に設定する。当該追従係数の変更に伴い追従度がさらに上昇し、仮想カメラの撮影方向は、早期にプレイヤオブジェクトの向きまたは進行方向と一致する向きとなる。
【0189】
また、図13の操作入力のように上方向と左方向の間の方向を入力するように向きまたは進行方向を切り替えつつ前方に移動するような場合にも追従係数をr2に設定することにより仮想カメラの撮影方向は早期にプレイヤオブジェクトの向きまたは進行方向と一致する向きとなる。
【0190】
すなわち、プレイヤオブジェクトの現在の向きまたは進行方向に対して前方(斜め前に進むことも含む)に進むことを意図するユーザ操作の場合には、仮想カメラの撮影方向をプレイヤオブジェクトの向きまたは進行方向に早期にあわせることによりプレイヤオブジェクトの向きまたは進行方向に沿う前方方向の画像を素早く確認することが可能となるためユーザの操作性をさらに向上させることが可能となる。また、前方に進むというプレイヤオブジェクトの意思に沿いプレイヤオブジェクトの向きまたは進行方向に仮想カメラの撮影方向が早期に追従するため、プレイヤオブジェクトの視線と仮想カメラの撮影方向とがより早く一致することになり臨場感を増すことが可能である。
【0191】
なお、本例においては、上記の入力方向判定処理部206において所定方向として十字キー26aの上方向が入力されたかどうかを判定してその判定結果に基づいて追従係数を調整する場合について説明したが、入力方向に限られず、所定のボタンの入力等があったかどうかを判定するようにしてもよい。
【0192】
また、衝突判定処理と組み合わせて、衝突有りの場合であっても入力方向判定処理部206において所定方向として十字キー26aの上方向の入力があったと判定された場合には、追従係数をr2に決定して仮想カメラの配置を更新するようにすることも可能である。
【0193】
図12(B)を参照して、ここでは、追従係数r0,r1,r2についてその変化を補間する場合が示されている。
【0194】
追従係数の変化の立ち上がりあるいは立ち下がりを補間により滑らかに追従係数を変化させて追従の度合いの変化を滑らかにする。当該処理により仮想カメラの撮影方向の変化をさらに滑らかにすることが可能となり、さらに違和感の少ない映像を表示して臨場感を増すことが可能となる。当該追従係数の補間処理は、追従度調整処理部224の補間処理部226で実行するものとする。
【0195】
なお、本例においては、3種類の追従係数が設定されている場合について説明したが、特に、これらの種類に限られずさらに複数の追従係数を設けるようにしても良い。例えば、ゲームの状況に合わせて追従係数を追従係数r0よりも低くあるいは追従係数r2よりも高く設定した追従係数を用いることにより、ユーザに状況の変化を認知させて期待感を高めさせてゲームの興趣性を高めることも可能である。
【0196】
図14は、本発明の実施の形態に従う別の衝突判定処理を説明する概念図である。
図14を参照して、ここでは、プレイヤオブジェクト150について、プレイヤオブジェクト150が移動して新たな位置座標に配置された場合に、プレイヤオブジェクト150の新たな位置座標と仮想カメラ100の位置座標との間に地形オブジェクトの1つである壁オブジェクトが存在しない場合が示されている。
【0197】
一方で、プレイヤオブジェクト150がさらに次の位置に移動する場合には、地形オブジェクトとの衝突判定処理において衝突有りと判定される場合が示されている。
【0198】
本例においては、プレイヤオブジェクト150が移動して新たな位置座標に配置される場合に、プレイヤオブジェクト150の向きまたは進行方向に従ってプレイヤオブジェクト150の移動を予測してプレイヤオブジェクト150の向きまたは進行方向に従って所定距離Ld進んだ位置の位置座標と仮想カメラ100の位置座標との間に他のオブジェクト(地形オブジェクト)が存在するかどうか、すなわち、仮想カメラから見て、予測される位置に移動するプレイヤオブジェクトが他のオブジェクトにより遮蔽されるか否かを判定する。
【0199】
プレイヤオブジェクト150の向きまたは進行方向に従ってプレイヤオブジェクト150の移動を予測して所定距離進んだ位置と仮想カメラ100との位置座標とに基づいて衝突判定処理を実行することにより衝突判定を前もって予測することが可能である。
【0200】
当該プレイヤオブジェクトの向きまたは進行方向に従って移動を予測する処理は、プレイヤオブジェクト配置変更処理部216のプレイヤオブジェクト予測処理部218において実行されるものとする。そして、その予測した位置座標を衝突判定処理部222に出力して上述した衝突判定処理を実行する。
【0201】
当該処理により、衝突判定を予測してその結果を反映させることにより、追従度を変更するタイミングが早くなりプレイヤオブジェクト150の移動に対応した仮想カメラによる撮影が可能となる。すなわち、遮蔽される状況となる前に遮蔽を回避する位置に仮想カメラの配置が更新されることにより仮想カメラからの撮影方向の良好な視界を常に確保して臨場感を増すことが可能である。
【0202】
上記の「所定距離」は、プレイヤオブジェクト150の移動速度に応じて変更するのが好ましい。より具体的には、プレイヤオブジェクト150の移動速度が速いときにはこの「所定距離」を大きくするのが好ましい。
【0203】
なお、上記で説明した補間処理と組み合わせることにより衝突判定を予測して追従係数を滑らかに変化させることにより、仮想カメラの撮影方向をプレイヤオブジェクト150の移動に合わせて滑らかに変化させることが可能となり、さらに違和感の少ない映像を表示することが可能となる。
【0204】
なお、本例においては、プレイヤオブジェクト制御処理部210は、コントローラ入力からの操作入力データに従ってプレイヤオブジェクトの配置を変更する処理について説明してきたが、当該コントローラ入力によるものではなく予めプレイヤオブジェクトの動き(向きまたは進行方向)がプログラミングされていて自動的にプレイヤオブジェクトが移動するようなゲームの場合であっても同様に適用することが可能である。また、コントローラ入力またはプログラミングにより自動的にプレイヤオブジェクトの向きを制御した後、プレイヤオブジェクトの進行方向を当該向きに追従させて、プレイヤオブジェクトを移動させるような場合であっても同様に適用可能である。また、強制スクロールのようにプレイヤオブジェクトの向きまたは進行方向に従って自動的にプレイヤオブジェクトが移動し、向きまたは進行方向を変更する場合にはコントローラ入力を受け付けるようなゲームの場合であっても同様に適用可能である。
【0205】
また、本例においては、コントローラ入力として入力手段26の十字キー26aを操作した場合を例に挙げて説明したが、特にこれに限られず他の手段、たとえば、コントローラ22自体を動かすことによって、プレイヤオブジェクトを異なる方向に移動させるようにすることも可能である。
【0206】
また、単一の入力手段26である例えば十字キー26aを操作してプレイヤオブジェクトを操作する場合のみならず、別の入力手段(例えば、Aボタン26d等)と組み合わせてプレイヤオブジェクトを操作するようにすることも可能である。たとえば、十字キー26aを操作してプレイヤオブジェクトの向きを変更し、Aボタン26dを押下することによりその向きまたはその向きに応じて変更される進行方向にプレイヤオブジェクトを移動させるようにしても良い。
【0207】
なお、本例においては、主にプレイヤオブジェクトの向きまたは進行方向に追従する程度(追従度)を調整する場合として、現在角を目標角に追従するために用いる追従係数を変更する場合について説明したが、追従する程度を調整可能であればどのようなものを用いるようにしても良い。例えば、現在角を目標角に追従させるために用いる追従係数ではなく、現在角を目標角に追従させるための角速度を変更するようにしても良い。
【0208】
<その他の形態>
上述の実施の形態においては、本発明に係る情報処理装置の代表例として、ゲーム装置12について例示したが、これに限定されることはない。すなわち、本発明に係るプログラムとして、パーソナルコンピュータで実行可能なアプリケーションを提供してもよい。このとき、本発明に係るプログラムは、パーソナルコンピュータ上で実行される各種アプリケーションの一部の機能として組み込まれてもよい。
【0209】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0210】
10 ビデオゲームシステム、12 ゲーム装置、14 ハウジング、16 ディスクスロット、18 光ディスク、20a 電源ボタン、20b リセットボタン、20c イジェクトボタン、22 コントローラ、22b 外部拡張コネクタ、22c インジケータ、26 入力手段、26a 十字キー、26d Aボタン、28 外部メモリカード用コネクタカバー、32a AVケーブル、32b 電源ケーブル、34 モニタ、34a,86 スピーカ、34b マーカ部、40 CPU、42a 入出力プロセッサ、42d RAM、42e 内部メインメモリ、44 フラッシュメモリ、46 外部メインメモリ、50 無線通信モジュール、50a,52a,78 アンテナ、、52 無線コントローラモジュール、54 ディスクドライブ、58 AVコネクタ、60 拡張コネクタ、62 外部メモリカード用コネクタ、70 プロセッサ、72 メモリ、74 加速度センサ、76 無線モジュール、80 撮像情報演算部、80a 赤外線フィルタ、80b レンズ、80c 撮像素子、80d 画像処理回路、84 バイブレータ、88 電源回路。

【特許請求の範囲】
【請求項1】
三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、
前記三次元空間での前記第1オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは進行方向に当該第1オブジェクトを移動させる第1オブジェクト制御手段と、
前記三次元空間での仮想カメラの撮影方向を、前記第1オブジェクト制御手段により決定された前記第1オブジェクトの向きまたは進行方向に徐々に追従するように決定し、かつ、当該撮影方向で前記第1オブジェクトを撮影する仮想カメラ制御手段と、
前記仮想カメラ制御手段による前記仮想カメラに基づいて前記三次元空間の前記第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備え、
前記仮想カメラ制御手段は、
前記仮想カメラから見て前記第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する検出手段と、
前記検出手段での検出結果に基づいて、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させる第1の追従変更手段とを含む、画像処理装置。
【請求項2】
前記検出手段は、前記第1オブジェクトの位置と前記仮想カメラの位置との間に前記他のオブジェクトが存在するか否かを検出する、請求項1に記載の画像処理装置。
【請求項3】
前記仮想カメラ制御手段は、前記第1オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第2の追従変更手段をさらに含む、請求項1または2に記載の画像処理装置。
【請求項4】
前記第1オブジェクト制御手段は、ユーザの方向入力を受け付けて、現在の前記仮想カメラの撮影方向を基準として前記方向入力に応じた方向に前記第1オブジェクトの向きまたは移動方向を変更する、請求項3に記載の画像処理装置。
【請求項5】
前記仮想カメラ制御手段は、前記第1オブジェクト制御手段により移動した前記第1オブジェクトの位置および向きまたは進行方向と前記追従させる程度とに基づいて前記仮想カメラの位置を変更する変更手段をさらに含む、請求項1に記載の画像処理装置。
【請求項6】
前記変更手段は、前記第1オブジェクト制御手段により移動した前記第1オブジェクトの位置との距離が一定となるように前記仮想カメラの位置を変更する、請求項5に記載の画像処理装置。
【請求項7】
前記仮想カメラ制御手段は、前記三次元空間での仮想カメラの撮影方向を、前記第1オブジェクトの向きまたは進行方向に徐々に追従するように角度を調整するために用いられる第1の係数に従って決定し、
前記第1の追従変更手段は、前記検出手段での検出結果に基づいて、前記第1の係数を前記第1の係数よりも大きい第2の係数に変更する、請求項1に記載の画像処理装置。
【請求項8】
前記第1の追従変更手段は、前記第1の係数と前記第2の係数との間の第3の係数へ変更する係数補間手段をさらに含む、請求項7に記載の画像処理装置。
【請求項9】
前記仮想カメラ制御手段は、
前記第1オブジェクト制御手段により移動した前記第1オブジェクトの向きまたは進行方向に基づいて前記第1オブジェクトが進む位置を予測する第1オブジェクト位置予測手段と、
前記仮想カメラから見て前記第1オブジェクト位置予測手段により予測された位置の前記第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出する予測検出手段とをさらに含み、
前記第1の追従変更手段は、前記予測検出手段での検出結果に基づいて、前記第1オブジェクトの向きまたは進行方向に追従する程度を上昇させる、請求項1に記載の画像処理装置。
【請求項10】
前記予測検出手段は、前記第1オブジェクトの位置から前記第1オブジェクトの向きまたは進行方向に所定距離だけ離れた位置と前記仮想カメラの位置との間に前記他のオブジェクトが存在するか否かを検出する、請求項9に記載の画像処理装置。
【請求項11】
前記第1オブジェクト制御手段は、ユーザの入力に応じて、前記第1オブジェクトの向きまたは進行方向を変更するとともに、当該向きまたは進行方向に前記第1オブジェクトを移動させ、かつ、当該ユーザの入力が所定の入力であるときに、前記第1オブジェクトの向きまたは進行方向を変更せずに前記第1オブジェクトを移動させ、
前記仮想カメラ制御手段は、ユーザの入力が前記所定の入力であるときに、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度をさらに上昇させる第2の追従変更手段をさらに含む、請求項1に記載の画像処理装置。
【請求項12】
三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置であって、
前記三次元空間での前記第1オブジェクトの向きまたは進行方向を所定の手順で変更し、当該向きまたは当該進行方向に当該第1オブジェクトを移動させる第1オブジェクト制御手段と、
前記三次元空間での仮想カメラの撮影方向を、前記第1オブジェクト制御手段により決定された前記第1オブジェクトの向きまたは進行方向に追従するように決定し、かつ、当該撮影方向で前記第1オブジェクトを撮影する仮想カメラ制御手段と、
前記仮想カメラ制御手段による前記仮想カメラに基づいて前記三次元空間の前記第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成する表示データ作成手段とを備え、
前記仮想カメラ制御手段は、前記第1オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させる追従変更手段を含む、画像処理装置。
【請求項13】
三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、
前記三次元空間での前記第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは進行方向に当該第1オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第1オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、
当該撮影方向で前記第1オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、
前記仮想カメラから見て前記第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、
検出結果に基づいて、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む、画像処理方法。
【請求項14】
三次元空間に存在する第1オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理方法であって、
前記三次元空間での前記第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは当該進行方向に当該第1オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第1オブジェクトの向きまたは進行方向に追従するように決定するステップと、
当該撮影方向で前記第1オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、前記第1オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む、画像処理方法。
【請求項15】
三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、
前記三次元空間での前記第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは進行方向に当該第1オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第1オブジェクトの向きまたは進行方向に徐々に追従するように決定するステップと、
当該撮影方向で前記第1オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、
前記仮想カメラから見て前記第1オブジェクトが他のオブジェクトに遮蔽されるか否かを検出するステップと、
検出結果に基づいて、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップとを含む、処理を実行させる、画像処理装置の制御プログラム。
【請求項16】
三次元空間に存在する操作オブジェクトおよび他のオブジェクトを撮影した映像をディスプレイに表示する画像処理装置の制御プログラムであって、コンピュータに、
前記三次元空間での前記第1オブジェクトの向きまたは進行方向を所定の手順で変更するステップと、
当該向きまたは当該進行方向に当該第1オブジェクトを移動させるステップと、
前記三次元空間での仮想カメラの撮影方向を、移動された前記第1オブジェクトの向きまたは進行方向に追従するように決定するステップと、
当該撮影方向で前記第1オブジェクトを撮影するステップと、
前記仮想カメラに基づいて前記三次元空間の前記第1オブジェクトを撮影した映像をディスプレイに表示するための表示データを作成するステップとを備え、
前記決定するステップは、前記第1オブジェクトがその前方に向かって移動するとき、前記仮想カメラの撮影方向を前記第1オブジェクトの向きまたは進行方向に追従させる程度を上昇させるステップを含む、処理を実行させる、画像処理装置の制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−249799(P2012−249799A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−124265(P2011−124265)
【出願日】平成23年6月2日(2011.6.2)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】