(57)【特許請求の範囲】
【請求項１】
仮想空間の画像を表示装置に表示させる画像処理装置のコンピュータに実行させる画像処理プログラムであって、
前記仮想空間を当該仮想空間内に設定される仮想カメラから見た画像を基準画像として生成する基準画像生成ステップと、
前記基準画像上において、前記仮想カメラの視線方向に存在する所定位置に対応する画素を含む所定領域を決定する領域決定ステップであって、前記基準画像における画素の奥行値と、前記所定位置に対応する画素における奥行値との差分が所定値以下となる画素からなる領域を前記所定領域として決定する、領域決定ステップと、
前記仮想カメラが前記所定位置を向いた状態で前記所定位置を中心に前記仮想カメラを回転させる回転ステップと
前記仮想カメラの移動量が所定量以上である場合には画像のぼかし度合いを示す第１ぼかし値を増大させ、かつ、前記仮想カメラの移動量が所定量よりも小さい場合には前記第１ぼかし値を減少させて、前記第１ぼかし値を更新する第１ぼかし値算出ステップと、
前記第１ぼかし値が大きいほどぼかし度合いが大きくなるように、前記基準画像の前記所定領域外の領域をぼかす処理を行うぼかし処理ステップと、
前記ぼかし処理ステップでぼかされた画像を前記表示装置に表示させる表示ステップとを前記コンピュータに、繰り返し実行させる画像処理プログラム。
【請求項２】
前記画像処理プログラムは、少なくとも前記所定領域外の各画素について、画像のぼかし度合いを示す第２ぼかし値を第１ぼかし値の算出方法とは異なる予め定められた方法で算出する第２ぼかし値算出ステップをさらに前記コンピュータに実行させ、
前記ぼかし処理ステップにおいて、前記コンピュータは、少なくとも前記所定領域外の各画素について、第１ぼかし値および第２ぼかし値に基づいてぼかし度合いを決定し、決定されたぼかし度合いに従って前記基準画像の前記所定領域外の各画素をぼかす処理を行う、請求項１に記載の画像処理プログラム。
【請求項３】
前記第２ぼかし値算出ステップにおいて、前記コンピュータは、前記所定領域外の各画素について、当該各画素の奥行値に基づいてそれぞれ第２ぼかし値を算出する、請求項２に記載の画像処理プログラム。
【請求項４】
前記第２ぼかし値算出ステップにおいて、前記コンピュータは、前記所定領域外の各画素について、画素の奥行値と前記仮想カメラの注視点における奥行値との差分が大きいほどぼかし度合いが大きくなるようにそれぞれ第２ぼかし値を算出する、請求項３に記載の画像処理プログラム。
【請求項５】
前記領域決定ステップにおいて、前記コンピュータは、前記仮想カメラの注視点の位置に基づいて前記所定領域を決定する、請求項１または請求項４に記載の画像処理プログラム。
【請求項６】
前記領域決定ステップにおいて、前記コンピュータは、前記仮想空間において前記所定位置を含む所定空間内に存在するオブジェクトに対応する画素からなる領域を前記所定領域として決定し、
前記第１ぼかし値算出ステップにおいて、前記コンピュータは、前記仮想カメラの量として前記仮想カメラの回転量を用いる、請求項１に記載の画像処理プログラム。
【請求項７】
前記基準画像生成ステップは、所定時間に１回の割合で繰り返し実行され、
前記第１ぼかし値算出ステップは、前記基準画像生成ステップにおいて基準画像が生成される度に実行される、請求項１または請求項２に記載の画像処理プログラム。
【請求項８】
前記画像処理プログラムは、前記基準画像を用いて当該基準画像のぼかし画像を生成するぼかし画像生成ステップを前記コンピュータにさらに実行させ、
前記ぼかし処理ステップにおいて、前記コンピュータは、画像をぼかす処理として、ぼかし度合いに応じた合成比率で前記基準画像と前記ぼかし画像とを合成する処理を行う、請求項１または請求項２に記載の画像処理プログラム。
【請求項９】
前記仮想カメラの移動量は、当該仮想カメラの回転角度である、請求項１または請求項２に記載の画像処理プログラム。
【請求項１０】
前記仮想カメラの移動量は、前記仮想空間における当該仮想カメラの位置の変化量である、請求項１または請求項２に記載の画像処理プログラム。
【請求項１１】
仮想空間内に配置された仮想カメラから見た画像を生成する処理をコンピュータに実行させる画像処理プログラムであって、
前記仮想カメラを回転させる回転ステップであって、当該仮想カメラは前記回転の中心が存在する方向を向いた状態で回転させられる、回転ステップと、
前記仮想カメラの単位時間当りの回転量が閾値を越える状態が続く間、前記仮想空間における当該仮想カメラの回転中心を含む前記仮想空間内の第１領域に含まれる第１描画対象オブジェクトを描画し、前記第１領域を前記仮想空間において囲む第２領域に含まれる第２描画対象オブジェクトを前記第１描画対象オブジェクトに比べて徐々にぼけた画像になるように、順次描画して、当該仮想カメラに基づいた一画面分の表示用の画像を生成する画像生成ステップとを前記コンピュータに実行させる画像処理プログラム。
【請求項１２】
前記画像生成ステップにおいて、前記コンピュータは、前記仮想カメラの単位時間当りの回転量が閾値を越えない状態が続く間、前記仮想カメラの単位時間当りの回転量が閾値を越える状態が続いた場合に描画される第２描画対象オブジェクトに比べて徐々にぼけない画像になるように前記第２描画対象オブジェクトを順次描画する、請求項１１に記載の画像処理プログラム。
【請求項１３】
仮想空間の画像を表示装置に表示させる画像処理装置であって、
前記仮想空間を当該仮想空間内に設定される仮想カメラから見た画像を基準画像として生成する基準画像生成手段と、
前記基準画像上において、前記仮想カメラの視線方向に存在する所定位置に対応する画素を含む所定領域を決定する領域決定手段であって、前記基準画像における画素の奥行値と、前記所定位置に対応する画素における奥行値との差分が所定値以下となる画素からなる領域を前記所定領域として決定する、領域決定手段と、
前記仮想カメラが前記所定位置を向いた状態で前記所定位置を中心に前記仮想カメラを回転させる回転手段と、
前記仮想カメラの移動量が所定量以上である場合には画像のぼかし度合いを示す第１ぼかし値を増大させ、かつ、前記仮想カメラの移動量が所定量よりも小さい場合には前記第１ぼかし値を減少させて、前記第１ぼかし値を更新する第１ぼかし値算出手段と、
前記第１ぼかし値が大きいほどぼかし度合いが大きくなるように、前記基準画像の前記所定領域外の領域をぼかす処理を行うぼかし処理手段と、
前記ぼかし処理手段によってぼかされた画像を前記表示装置に表示させる表示制御手段とを備える、画像処理装置。
【請求項１４】
仮想空間内に配置された仮想カメラから見た画像を生成する処理を実行するための画像処理装置であって、
前記仮想カメラを回転させる回転手段であって、当該仮想カメラを前記回転の中心が存在する方向を向いた状態で回転させる、回転手段と、
前記仮想カメラの単位時間当りの回転量が閾値を越える状態が続く間、前記仮想空間における当該仮想カメラの回転中心を含む前記仮想空間内の第１領域に含まれる第１描画対象オブジェクトを描画し、前記第１領域を前記仮想空間において囲む第２領域に含まれる第２描画対象オブジェクトを前記第１描画対象オブジェクトに比べて徐々にぼけた画像になるように順次描画して、当該仮想カメラに基づいた一画面分の表示用の画像を生成する画像生成手段とを備える、画像処理装置。
【請求項１５】
仮想空間の画像を表示装置に表示させる画像処理システムであって、
前記仮想空間を当該仮想空間内に設定される仮想カメラから見た画像を基準画像として生成する基準画像生成手段と、
前記基準画像上において、前記仮想カメラの視線方向に存在する所定位置に対応する画素を含む所定領域を決定する領域決定手段であって、前記基準画像における画素の奥行値と、前記所定位置に対応する画素における奥行値との差分が所定値以下となる画素からなる領域を前記所定領域として決定する、領域決定手段と、
前記仮想カメラが前記所定位置を向いた状態で前記所定位置を中心に前記仮想カメラを回転させる回転手段と、
前記仮想カメラの移動量が所定量以上である場合には画像のぼかし度合いを示す第１ぼかし値を増大させ、かつ、前記仮想カメラの移動量が所定量よりも小さい場合には前記第１ぼかし値を減少させて、前記第１ぼかし値を更新する第１ぼかし値算出手段と、
前記第１ぼかし値が大きいほどぼかし度合いが大きくなるように、前記基準画像の前記所定領域外の領域をぼかす処理を行うぼかし処理手段と、
前記ぼかし処理手段によってぼかされた画像を前記表示装置に表示させる表示制御手段とを備える、画像処理システム。
【請求項１６】
仮想空間内に配置された仮想カメラから見た画像を生成する処理を実行するための画像処理システムであって、
前記仮想カメラを回転させる回転手段であって、当該仮想カメラを前記回転の中心が存在する方向を向いた状態で回転させる、回転手段と、
前記仮想カメラの単位時間当りの回転量が閾値を越える状態が続く間、前記仮想空間における当該仮想カメラの回転中心を含む前記仮想空間内の第１領域に含まれる第１描画対象オブジェクトを描画し、前記第１領域を前記仮想空間において囲む第２領域に含まれる第２描画対象オブジェクトを前記第１描画対象オブジェクトに比べて徐々にぼけた画像になるように順次描画して、当該仮想カメラに基づいた一画面分の表示用の画像を生成する画像生成手段とを備える、画像処理システム。
【請求項１７】
仮想空間の画像を表示装置に表示させる画像処理装置のコンピュータに実行させる画像処理方法であって、当該コンピュータが、
前記仮想空間を当該仮想空間内に設定される仮想カメラから見た画像を基準画像として生成する基準画像生成ステップと、
前記基準画像上において、前記仮想カメラの視線方向に存在する所定位置に対応する画素を含む所定領域を決定する領域決定ステップであって、前記基準画像における画素の奥行値と、前記所定位置に対応する画素における奥行値との差分が所定値以下となる画素からなる領域を前記所定領域として決定する、領域決定ステップと、
前記仮想カメラが前記所定位置を向いた状態で前記所定位置を中心に前記仮想カメラを回転させる回転ステップと
前記仮想カメラの移動量が所定量以上である場合には画像のぼかし度合いを示す第１ぼかし値を増大させ、かつ、前記仮想カメラの移動量が所定量よりも小さい場合には前記第１ぼかし値を減少させて、前記第１ぼかし値を更新する第１ぼかし値算出ステップと、
前記第１ぼかし値が大きいほどぼかし度合いが大きくなるように、前記基準画像の前記所定領域外の領域をぼかす処理を行うぼかし処理ステップと、
前記ぼかし処理ステップでぼかされた画像を前記表示装置に表示させる表示ステップとを、繰り返し実行する、画像処理方法。
【請求項１８】
仮想空間内に配置された仮想カメラから見た画像を生成する処理をコンピュータに実行させる画像処理方法であって、
前記コンピュータが、
前記仮想カメラを回転させる回転ステップであって、当該仮想カメラを前記回転の中心が存在する方向を向いた状態で回転させる、回転ステップと、
前記仮想カメラの単位時間当りの回転量が閾値を越える状態が続く間、前記仮想空間における当該仮想カメラの回転中心を含む前記仮想空間内の第１領域に含まれる第１描画対象オブジェクトを描画し、前記第１領域を前記仮想空間において囲む第２領域に含まれる第２描画対象オブジェクトを前記第１描画対象オブジェクトに比べて徐々にぼけた画像になるように順次描画して、当該仮想カメラに基づいた一画面分の表示用の画像を生成する画像生成ステップとを実行する、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、仮想空間の画像を生成する画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
従来、仮想の３次元空間の画像を表示装置に表示する技術として、特許文献１のような技術がある。特許文献１に記載のゲーム装置は、３次元空間において視点（仮想カメラの位置）が移動する場合において、視点の移動に応じて３次元空間の地形の画像をリアルタイムで表示している。このゲーム装置では、視点の位置と視線の方向とから画面に表示する空間のアドレスを算出し、地形の標高データの座標変換が行われた後に画面に表示すべき色を決定している。これによって上記ゲーム装置は、高価なハードウェアを使用することなく、視点の移動に素早く対応し、３次元空間内に設定された地形の画像をリアルタイムに表示することを可能としている。
【特許文献１】特開平６−６８２３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
３次元空間において視点位置および／または視線方向が変化する場合には、視点から視線方向に３次元空間を見たときの画像、すなわち、表示装置に表示される画像の内容が全体として変化（移動）する。このように画像の内容全体が変化する場合には、画像の一部のみが変化する場合（例えば、地面は停止して表示され、プレイヤオブジェクトのみが移動している場合）に比べて、画像の変化によって画像の内容が判別しにくい。そのため、ユーザは、画像中において注目すべき対象（注目対象）を認識することができなくなるおそれがある。例えば、ユーザは、視点が移動したためにそれまで注目していたオブジェクトを見失ったり、視点の移動中には注目すべきオブジェクトを見つけられなかったりするおそれがある。特に、視点が高速で移動したり、視線方向が変化したりする場合には、画像の内容全体が急激に変化するので、注目対象をユーザが判別することができなくなるという問題が顕著になる。
【０００４】
それ故、本発明の目的は、３次元空間において視点の位置または視線方向が変化する場合であっても、注目対象をユーザに容易に認識させることができる画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００６】
第１の発明は、仮想空間の画像を表示装置（テレビ２）に表示させる画像処理装置（ゲーム装置３）のコンピュータ（ＣＰＵ１０等）に実行させる画像処理プログラム（ゲームプログラム６０）である。画像処理プログラムは、基準画像生成ステップ（Ｓ８）と、領域決定ステップ（Ｓ９）と、第１ぼかし値算出ステップ（Ｓ１０）と、ぼかし処理ステップ（Ｓ１３）と、表示ステップ（Ｓ１４）とをコンピュータに実行させる。基準画像生成ステップにおいて、コンピュータは、前記仮想空間を当該仮想空間内に設定される仮想カメラから見た画像を基準画像として生成する。領域決定ステップにおいて、コンピュータは、基準画像上において、仮想カメラの視線方向に存在する所定位置に対応する画素を含む所定領域（対象領域）を決定する。第１ぼかし値算出ステップにおいて、コンピュータは、画像のぼかし度合いを示す第１ぼかし値（補正値Ａ）を算出する。第１ぼかし値は、仮想カメラの移動量が所定量以上である場合には所定の基準値より大きくなるように、かつ、仮想カメラの移動量が所定量よりも小さい場合には当該基準値より小さくなるように算出される。ぼかし処理ステップにおいて、コンピュータは、第１ぼかし値が大きいほどぼかし度合いが大きくなるように、基準画像の所定領域外の領域をぼかす処理を行う。表示ステップにおいて、コンピュータは、ぼかし処理ステップでぼかされた画像を表示装置に表示させる。
【０００７】
第２の発明においては、画像処理プログラムは、第２ぼかし値算出ステップ（Ｓ９）をさらにコンピュータに実行させてもよい。第２ぼかし値算出ステップにおいて、コンピュータは、少なくとも所定領域外の各画素について、画像のぼかし度合いを示す第２ぼかし値（合成率α）を第１ぼかし値の算出方法とは異なる予め定められた方法で算出する。このとき、ぼかし処理ステップにおいて、コンピュータは、少なくとも所定領域外の各画素について、第１ぼかし値および第２ぼかし値に基づいてぼかし度合いを決定し、決定されたぼかし度合いに従って基準画像の所定領域外の各画素をぼかす処理を行う、請求項１に記載の画像処理プログラム。
【０００８】
第３の発明においては、第２ぼかし値算出ステップにおいて、コンピュータは、所定領域外の各画素について、当該各画素の奥行値（Ｚ値）に基づいてそれぞれ第２ぼかし値を算出してもよい。
【０００９】
第４の発明においては、第２ぼかし値算出ステップにおいて、コンピュータは、所定領域外の各画素について、画素の奥行値と仮想カメラの注視点における奥行値との差分が大きいほどぼかし度合いが大きくなるようにそれぞれ第２ぼかし値を算出してもよい。
【００１０】
第５の発明においては、領域決定ステップにおいて、コンピュータは、仮想カメラの注視点の位置に基づいて前記所定領域を決定してもよい。
【００１１】
第６の発明においては、領域決定ステップにおいて、コンピュータは、基準画像において、その画素の奥行値と注視点における奥行値との差分が所定値以下となる画素からなる領域を所定領域として決定してもよい。
【００１２】
第７の発明においては、画像処理プログラムは、仮想カメラが所定位置を向いた状態で所定位置を中心に仮想カメラを回転させる回転ステップ（Ｓ６）をコンピュータにさらに実行させてもよい。このとき、領域決定ステップにおいて、コンピュータは、仮想空間において所定位置を含む所定空間内に存在するオブジェクトに対応する画素からなる領域を所定領域として決定する。第１ぼかし値算出ステップにおいて、コンピュータは、仮想カメラの移動量として仮想カメラの回転量を用いる。
【００１３】
第８の発明においては、基準画像生成ステップは、所定時間（１フレーム時間）に１回の割合で繰り返し実行されてもよい。このとき、第１ぼかし値算出ステップは、基準画像生成ステップにおいて基準画像が生成される度に実行される。第１ぼかし値算出ステップにおいて、コンピュータは、前回の第１ぼかし値を基準値として第１ぼかし値を算出する。
【００１４】
第９の発明においては、第１ぼかし値算出ステップにおいて、コンピュータは、予め定められた所定値を基準値として、移動量の大きさに応じて第１ぼかし値が大きくなるように、第１ぼかし値を算出してもよい。
【００１５】
第１０の発明においては、画像処理プログラムは、基準画像を用いて当該基準画像のぼかし画像を生成するぼかし画像生成ステップ（Ｓ１２）をコンピュータにさらに実行させてもよい。このとき、ぼかし処理ステップにおいて、コンピュータは、画像をぼかす処理として、ぼかし度合いに応じた合成比率で基準画像とぼかし画像とを合成する処理を行う。
【００１６】
第１１の発明においては、仮想カメラの移動量は、当該仮想カメラの回転角度である。
【００１７】
第１２の発明においては、仮想カメラの移動量は、仮想空間における当該仮想カメラの位置の変化量である。
【００１８】
また、第１３の発明は、仮想空間内に配置された仮想カメラから見た画像を生成する処理をコンピュータ（ＣＰＵ１０等）に実行させる画像処理プログラム（ゲームプログラム６０）である。画像処理プログラムは、回転ステップ（Ｓ６）と、画像生成ステップ（Ｓ１３）とをコンピュータに実行させる。回転ステップにおいて、コンピュータは、仮想カメラを回転させる。画像生成ステップにおいて、コンピュータは、仮想カメラの単位時間当りの回転量（回転角度）が閾値を越えた場合、当該仮想カメラの回転中心を含む第１領域に含まれる第１描画対象オブジェクト（星オブジェクト５１、プレイヤオブジェクト５４、敵オブジェクト５５等）を描画し、第１領域を囲む第２領域に含まれる第２描画対象オブジェクト（星オブジェクト５２および５３）を第１描画対象オブジェクトに比べてぼけた画像になるように描画して、当該仮想カメラに基づいた一画面分の表示用の画像を生成する。
【００１９】
第１４の発明においては、画像生成ステップにおいて、コンピュータは、仮想カメラの単位時間当りの回転量が閾値を越えなかった場合、仮想カメラの単位時間当りの回転量が閾値を越えた場合に描画される第２描画対象オブジェクトに比べてぼけない画像になるように第２描画対象オブジェクトを描画するようにしてもよい。
【００２０】
第１５の発明においては、画像生成ステップは、回転量に応じて第２描画対象オブジェクトのぼかし度合い（補正値Ａ）を変化させるぼかし変化ステップ（Ｓ１０，Ｓ１１）を含んでいてもよい。
【００２１】
第１６の発明においては、ぼかし変化ステップにおいて、コンピュータは、回転量が大きくなるに従ってぼかし度合いが大きくなるように、かつ、回転量が小さくなるに従ってぼかし度合いが小さくなるように変化させてもよい。
【００２２】
また、本発明は、上記第１〜第１６の発明における各ステップを実行する画像処理装置と同等の機能を有する画像処理装置の形態で提供されてもよい。
【発明の効果】
【００２３】
第１の発明によれば、仮想カメラが所定量以上の移動量で移動する場合、所定領域外の画像はぼかされて表示される。つまり、仮想カメラが移動することによって画像全体が変化する場合には、所定領域内の画像が所定領域外の画像に比べて明瞭に表示されるので、ユーザの注目を所定領域内に向けることができる。したがって、画像全体が変化する場合であっても、ユーザは、所定領域内の注目対象を見つけやすくなり、注目対象を容易に認識することができる。
【００２４】
第２の発明によれば、画素毎に設定される第２ぼかし値を第１ぼかし値に加えてさらに用いることにより、画素に応じたぼかし度合いでぼかし処理を行うことができる。
【００２５】
第３および第４の発明によれば、画素の奥行値に基づいて画素毎に異なるぼかし度合いでぼかし処理を行うことができる。特に第４の発明によれば、奥行方向に関して注視点の位置付近ではぼかし度合いが小さく、奥行方向に関して注視点から離れた位置ではぼかし度合いが大きくなるので、注視点の位置でフォーカシングされたような画像を生成することができる。
【００２６】
第５の発明によれば、上記所定位置として仮想カメラの注視点の位置を用いることによって、所定領域を容易に決定することができる。
【００２７】
第６の発明によれば、仮想空間において注視点の位置付近のオブジェクトに対応する画素は、所定領域内となる。これによれば、ユーザの注目対象となりやすい、注視点の位置付近のオブジェクトはぼかさずに表示され、注視点から離れた位置のオブジェクトはぼかして表示される。したがって、ユーザの注目対象がより確実に所定領域内に含まれるように所定領域を決定することができ、注目対象をユーザにより確実に認識させることができる。
【００２８】
さらに、第６の発明において、上記差分に基づいて第２ぼかし値を算出する場合には、第２ぼかし値を算出する処理と所定領域を決定する処理との両方を、当該差分を用いて実行することができる。したがって、互いに異なる２つの変数を用いてこれら２つの処理を実行する場合に比べて処理を簡易化することができ、これら２つの処理を効率良く実行することができる。
【００２９】
第７の発明によれば、仮想カメラの回転中心を含む所定空間内に存在するオブジェクトより、当該所定空間外に存在するオブジェクトの方がぼかし度合いが大きくなるように表示される。これによって、仮想カメラが回転することによって画像全体が変化する場合であっても、ユーザは、所定空間内の注目対象を見つけやすくなり、注目対象を容易に認識することができる。
【００３０】
第８および第９の発明によれば、仮想カメラの移動量に応じた大きさとなるように第１のぼかし値を容易に算出することができる。
【００３１】
第１０の発明によれば、基準画像とぼかし画像とを合成することによって、ぼかし処理を容易に行うことできる。
【００３２】
第１１の発明によれば、仮想カメラの姿勢の変化に応じてぼかし度合いを変化させることができる。
【００３３】
第１２の発明によれば、仮想カメラの位置の変化に応じてぼかし度合いを変化させることができる。
【００３４】
第１３の発明によれば、仮想カメラが閾値以上の回転量で回転する場合には、第２描画対象オブジェクトは第１描画対象オブジェクトに比べてぼかされて表示される。つまり、仮想カメラが回転することによって画像全体が変化する場合には、第１領域（仮想空間における領域）内の第１描画対象オブジェクトが、第２領域（仮想空間における領域）内の第２描画対象オブジェクトに比べて明瞭に表示されるので、ユーザの注目を第１領域内に向けることができる。したがって、画像全体が変化する場合であっても、ユーザは、第１領域内の注目対象を見つけやすくなり、注目対象を容易に認識することができる。
【００３５】
第１４の発明によれば、仮想カメラの回転量が閾値を超えない場合には、第２描画対象オブジェクトは、当該回転量が閾値を超える場合に比べて明瞭に表示される。つまり、画像全体の変化が少なく、画像が見づらくならない場合には、第２描画対象も見やすく表示されるので、画像全体を見やすく表示することができる。
【００３６】
第１５の発明によれば、仮想カメラの回転量に応じてぼかし度合いを容易に算出することができる。また、第１６の発明によれば、仮想カメラの回転量が大きいほどぼかし度合いを大きくすることにより、回転量が大きい場合ほどユーザが第１描画対象オブジェクトに注目しやすくなるようにすることができる。
【発明を実施するための最良の形態】
【００３７】
（ゲームシステムの全体構成）
図１を参照して、本発明に係る画像処理装置の一例であるゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態に係るゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、コントローラ５、およびマーカ部６を含む。本システムは、コントローラ５を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００３８】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられ、データの読み取りが可能な情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラム（本発明に係る画像処理プログラムの一例）が記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されているゲームプログラムを読み出して実行することによってゲーム処理を実行する。なお、ゲームプログラムはゲーム装置３の内部メモリ（不揮発であることが好ましいが揮発性でもよい）に予め記憶されていてもよいし、ゲーム装置３は、ゲーム装置３とネットワークを介して接続される所定のサーバ（または他のゲーム装置）からゲームプログラムをダウンロードして内部メモリに記憶するようにしてもかまわない。
【００３９】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像を表示する。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００４０】
コントローラ５は、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与える入力装置である。コントローラ５とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは通信可能に構成されればよく、有線で接続されてもよい。
【００４１】
（ゲーム装置３の内部構成）
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００４２】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０はシステムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩ１１の内部構成については後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００４３】
システムＬＳＩ１１には、入出力プロセッサ１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００４４】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００４５】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。
【００４６】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００４７】
入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４８】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００４９】
また、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５０】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【００５１】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５２】
（コントローラ５の構成）
次に、図３〜図７を参照して、コントローラ５について説明する。図３および図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図であり、図４は、コントローラ５を下側前方から見た斜視図である。
【００５３】
図３および図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ５に設けられたボタンを押下すること、および、コントローラ５自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。
【００５４】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字ボタン３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、および電源ボタン３２ｈが設けられる。一方、図４に示すように、ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。ホームボタン３２ｆおよび電源ボタン３２ｈは、その上面がハウジング３１の上面に埋没している。これによって、プレイヤがホームボタン３２ｆまたは電源ボタン３２ｈを誤って押下することを防止することができる。
【００５５】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、他のコントローラ）を接続するために利用される。
【００５６】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のメインコントローラと区別するためにコントローラ種別（番号）が付与される。各ＬＥＤ３４ａ〜３４ｄは、コントローラ５に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ５の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ５を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のＬＥＤ３４ａ〜３４ｄのいずれか１つが点灯する。
【００５７】
また、コントローラ５は撮像情報演算部３５（図６）を有しており、図４に示すように、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒおよび６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００５８】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカ４９（図５）からの音を外部に放出するための音抜き孔３１ａが形成されている。
【００５９】
次に、図５および図６を参照して、コントローラ５の内部構造について説明する。図５および図６は、コントローラ５の内部構造を示す図である。なお、図５は、コントローラ５の上筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６は、コントローラ５の下筐体（ハウジング３１の一部）を外した状態を示す斜視図である。図６に示す斜視図は、図５に示す基板３０を裏面から見た斜視図となっている。
【００６０】
図５において、ハウジング３１の内部には基板３０が固設されており、当該基板３０の上主面上に各操作ボタン３２ａ〜３２ｈ、各ＬＥＤ３４ａ〜３４ｄ、加速度センサ３７、アンテナ４５、およびスピーカ４９等が設けられる。これらは、基板３０等に形成された配線（図示せず）によってマイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）４２（図６参照）に接続される。本実施形態では、加速度センサ３７は、Ｘ軸方向に関してコントローラ５の中心からずれた位置に配置されている。これによって、コントローラ５をＺ軸回りに回転させたときのコントローラ５の動きが算出しやすくなる。また、加速度センサ３７は、長手方向（Ｚ軸方向）に関してコントローラ５の中心よりも前方に配置されている。また、無線モジュール４４（図７）およびアンテナ４５によって、コントローラ５がワイヤレスコントローラとして機能する。
【００６１】
一方、図６において、基板３０の下主面上の前端縁に撮像情報演算部３５が設けられる。撮像情報演算部３５は、コントローラ５の前方から順に赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を備えている。これらの部材３８〜４１はそれぞれ基板３０の下主面に取り付けられる。
【００６２】
さらに、基板３０の下主面上には、上記マイコン４２およびバイブレータ４８が設けられている。バイブレータ４８は、例えば振動モータやソレノイドであり、基板３０等に形成された配線によってマイコン４２と接続される。マイコン４２の指示によりバイブレータ４８が作動することによってコントローラ５に振動が発生する。これによって、コントローラ５を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ４８は、ハウジング３１のやや前方寄りに配置される。つまり、バイブレータ４８がコントローラ５の中心よりも端側に配置することによって、バイブレータ４８の振動によりコントローラ５全体を大きく振動させることができる。また、コネクタ３３は、基板３０の下主面上の後端縁に取り付けられる。なお、図５および図６に示す他、コントローラ５は、マイコン４２の基本クロックを生成する水晶振動子、スピーカ４９に音声信号を出力するアンプ等を備えている。
【００６３】
なお、図３〜図６に示したコントローラ５の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はＺ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ５における撮像情報演算部３５の位置（撮像情報演算部３５の光入射面３５ａ）は、ハウジング３１の前面でなくてもよく、ハウジング３１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【００６４】
図７は、コントローラ５の構成を示すブロック図である。コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、コネクタ３３、撮像情報演算部３５、通信部３６、および加速度センサ３７を備えている。コントローラ５は、自機に対して行われた操作内容を示すデータを操作データとしてゲーム装置３へ送信するものである。
【００６５】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を示す操作ボタンデータを通信部３６のマイコン４２へ出力する。
【００６６】
撮像情報演算部３５は、撮像手段が撮像した画像データを解析し、画像内で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部３５は、例えば最大２００フレーム／秒程度のサンプリング周期を有するので、比較的高速なコントローラ５の動きでも追跡して解析することができる。
【００６７】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、テレビ２の表示画面近傍に配置されるマーカ部６のマーカ６Ｒおよび６Ｌは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、マーカ６Ｒおよび６Ｌの画像をより正確に撮像することができる。以下では、撮像素子４０によって撮像された画像を撮像画像と呼ぶ。撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象（マーカ６Ｒおよび６Ｌ）の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（姿勢）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００６８】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する、すなわち、コントローラ５に加わる力（重力を含む）を検出する。加速度センサ３７は、当該加速度センサ３７の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、３軸または２軸の加速度センサは、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能である種類のものでもよい。なお、加速度センサ３７は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００６９】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。加速度センサ３７は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ３７からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ５を基準に設定されるＸＹＺ座標系における３次元のベクトル（ＡＸ，ＡＹ，ＡＺ）として表される。以下では、加速度センサ３７によって検出される３軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。
【００７０】
加速度センサ３７が検出した加速度を示すデータ（加速度データ）は、通信部３６へ出力される。なお、加速度センサ３７が検出した加速度は、コントローラ５自体の向き（姿勢）や動きに対応して変化するので、ゲーム装置３は加速度データを用いてコントローラ５の向きや動きを算出することができる。
【００７１】
なお、加速度センサ３７から出力される加速度の信号に基づいて、ゲーム装置３のプロセッサ（例えばＣＰＵ１０）またはコントローラ５のプロセッサ（例えばマイコン４２）等のコンピュータが処理を行うことによって、コントローラ５に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ３７を搭載するコントローラ５が静止状態であることを前提としてコンピュータ側の処理が実行される場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合）、コントローラ５が現実に静止状態であれば、検出された加速度に基づいてコントローラ５の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ３７の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサ３７の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ３７からの出力に基づいてコントローラ５の傾き角度を算出してもよいし、当該傾き角度を算出せずに、コントローラ５の傾き方向を算出するようにしてもよい。このように、加速度センサ３７をプロセッサと組み合わせて用いることによって、コントローラ５の傾きまたは姿勢を判定することができる。
【００７２】
一方、コントローラ５が動的な状態（コントローラ５が動かされている状態）であることを前提とする場合には、加速度センサ３７は重力加速度に加えてコントローラ５の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ５の動き方向を知ることができる。また、コントローラ５が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ５の傾きを知ることが可能である。なお、他の実施例では、加速度センサ３７は、内蔵の加速度検出手段で検出された加速度信号をマイコン４２に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ３７が静的な加速度（例えば、重力加速度）を検出するために用いられる場合、加速度信号を傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００７３】
通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。
【００７４】
操作部３２、撮像情報演算部３５、および加速度センサ３７からマイコン４２へ出力された各データ（操作ボタンデータ、マーカ座標データ、および加速度データ）は、一時的にメモリ４３に格納される。これらの各データは、上記操作データとしてゲーム装置３へ送信される。すなわち、マイコン４２は、ゲーム装置３の無線コントローラモジュール１９への送信タイミングが到来すると、メモリ４３に格納されている操作データを無線モジュール４４へ出力する。無線モジュール４４は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ４５から放射する。つまり、操作データは、無線モジュール４４で微弱電波信号に変換されてコントローラ５から送信される。微弱電波信号はゲーム装置３側の無線コントローラモジュール１９で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置３は操作データを取得することができる。そして、ゲーム装置３のＣＰＵ１０は、取得した操作データとゲームプログラムとに基づいてゲーム処理を行う。なお、通信部３６から無線コントローラモジュール１９への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ５の通信部３６は、例えば１／２００秒に１回の割合で各操作データをゲーム装置３の無線コントローラモジュール１９へ出力する。
【００７５】
上記コントローラ５を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ５によって画面上の任意の位置を指示する操作、および、コントローラ５自体を動かす操作を行うことができる。例えば、プレイヤは、コントローラ５を動かすゲーム操作、および、コントローラ５によってテレビ２の画面上の位置を指し示すゲーム操作を行うことができる。
【００７６】
（ゲーム装置における処理の概要）
以下、図８〜図１０を参照して、ゲーム装置３で実行されるゲーム処理の概要について説明する。以下では、プレイヤが仮想の３次元空間においてプレイヤキャラクタを操作して遊ぶゲームのためのゲーム処理をゲーム装置３が実行する場合を例として説明する。
【００７７】
図８は、本実施形態におけるゲームのゲーム画像の一例を示す図である。図８に示すように、本実施形態においては、仮想の３次元空間であるゲーム空間には、複数の星オブジェクト（図８に示す第１星オブジェクト５１、第２星オブジェクト５２、および第３星オブジェクト５３を含む）、プレイヤキャラクタ５４、および、敵キャラクタ（図８に示す敵キャラクタ５５を含む）等が配置される。各星オブジェクト５１〜５３は、ゲーム空間に固定的に配置される地形オブジェクトである。星オブジェクトはどのような形状であってもよいが、図８では球形である。プレイヤの操作対象であるプレイヤキャラクタ５４や、ゲーム装置３によって動作が制御される敵キャラクタ等の各種オブジェクトは、各星オブジェクトのいずれかの上に配置される。本ゲームは、プレイヤキャラクタ５４が各星オブジェクトの間を移動しながら、敵キャラクタを倒す等の課題を達成することを目的としたゲームである。なお、プレイヤキャラクタ５４は、例えば、アイテムを取得したり星オブジェクト上に設けられるワープゾーンに入ったりすることによって、各星オブジェクトの間を移動することが可能である。
【００７８】
本実施形態では、図８に示されるように、ゲーム装置３は、プレイヤキャラクタ５４および所定の敵キャラクタ（例えば敵キャラクタ５５）が表示されるようにゲーム画像を生成する。なお、所定の敵キャラクタとは、例えばプレイヤキャラクタ５４と同じ星に存在する敵キャラクタであってもよいし、プレイヤキャラクタ５４から所定距離内に存在する敵キャラクタであってもよいし、予め定められたキャラクタでもよい。つまり、本実施形態では、仮想カメラの位置および姿勢は、ゲーム空間におけるプレイヤキャラクタ５４および所定の敵キャラクタの位置に基づいて決定される。詳細は後述するが、ゲーム装置３は、プレイヤキャラクタ５４および所定の敵キャラクタの位置に基づいて仮想カメラの注視点の位置を決定した後、注視点の位置に基づいて仮想カメラの位置および姿勢を決定する。
【００７９】
仮想カメラの位置および姿勢は、プレイヤキャラクタ５４等の位置に基づいて決定されるので、プレイヤキャラクタ５４等が移動すると、仮想カメラもそれに応じて移動する（位置および／または姿勢が変化する）。図９は、仮想カメラが移動する様子を示す図である。なお、図９においては、仮想カメラの注視点の位置が点Ｐ１から点Ｐ２へ変化したものとする。また、図９においては、移動前の仮想カメラ５７を点線で表している。第１星オブジェクト５１上をプレイヤキャラクタ５４および／または敵キャラクタ５５が移動すると、注視点の位置が変化する結果、仮想カメラ５７の位置および姿勢が変化する。詳細は後述するが、仮想カメラは、本実施形態では図９に示すように、第１星オブジェクト５１の方向が視線方向となるように視線方向を変えながら（回転しながら）、第１星オブジェクト５１の回りを移動する。このように仮想カメラの位置および／または姿勢が変化すると、仮想カメラ５７から見た３次元空間の画像は全体的に変化することになる。すなわち、ゲーム画像としては、第１星オブジェクト５１は回転しているように表示され、第１星オブジェクト５１の後方にある他の星オブジェクト（第２および第３星オブジェクト５２および５３）は移動しているように表示される。特に図９に示す場合には、ゲーム画像において第２および第３星オブジェクト５２および５３は大きく移動することになる。
【００８０】
ここで、上記のように仮想カメラが移動することによって表示される画像の内容全体が変化する場合、プレイヤは、画像中の注目対象を判別できないおそれがある。すなわち、仮想カメラが移動すると、注目対象がプレイヤにとって認識しづらくなるという問題がある。なぜなら、仮想カメラが移動した場合に画像の内容全体が変化すると、プレイヤは、画像のどこに注目すべきかわからなくなり、それまで注目していたオブジェクトを見失ったり、視点の移動中には注目すべきオブジェクトを見つけられなかったりするからである。例えば、図８の例では、第１星オブジェクト５１、より特定的には、第１星オブジェクト５１のプレイヤキャラクタ５４や敵キャラクタ５５が注目対象であると想定される。図８の例において仮想カメラが図９に示すように移動した場合、画像の内容全体が変化するので、プレイヤは、第１星オブジェクト５１上のプレイヤキャラクタ５４や敵キャラクタ５５を見失ってしまうおそれがある。なお、図８の例では、第１星オブジェクト５１と他の星オブジェクト５２および５３とが重なって表示されていないが、第１星オブジェクト５１と他の星オブジェクト５２および５３とが重なって表示される場合もある。この場合には、各星オブジェクト同士の見分けがつきづらく、第１星オブジェクト５１上のキャラクタがより認識しづらくなると考えられる。
【００８１】
そこで、本実施形態では、ゲーム装置３は、仮想カメラの移動中においては、ゲーム画像の領域のうちで、プレイヤの注目対象が含まれると考えられる領域（対象領域）を除く領域について、画像をぼかす処理（ぼかし処理）を行う。これによって、プレイヤにとっては対象領域内の画像が対象領域外の画像に比べて相対的に見やすくなるので、ゲーム装置３は、プレイヤの視点を対象領域内に自然に向けさせることができる。したがって、プレイヤは、仮想カメラの移動中に注目対象をより見つけやすくなり、注目対象を見失うこともなくなるので、注目対象を認識しやすくなる。
【００８２】
以下、対象領域以外の領域について画像をぼかす処理の概要を説明する。まず、ゲーム装置３は、仮想カメラの位置および姿勢に基づいて、ゲーム空間を仮想カメラから見た画像を生成する。この画像は、ぼかし処理が行われていない画像であり、オブジェクトの輪郭が明確に描かれた画像である。以下では、この画像を基準画像と呼ぶ。
【００８３】
次に、ゲーム装置は、基準画像の画像領域のうちから上記対象領域を決定する。本実施形態では、対象領域は、仮想カメラの注視点の位置が少なくとも対象領域に含まれるように、注視点の位置に基づいて決定される。通常、仮想カメラの注視点の位置はプレイヤキャラクタや敵キャラクタ等、プレイヤの注目対象となるオブジェクトの位置（またはその付近の位置）に設定されるので、注視点の位置を含むように対象領域を設定することにより、プレイヤの注目対象が対象領域から外れる可能性が低くなるからである。換言すれば、本実施形態においては、プレイヤの注目対象となるオブジェクトの位置またはその付近に注視点が設定されるように、仮想カメラを制御すればよい。
【００８４】
本実施形態では、対象領域は、ゲーム画像の各画素に設定される奥行値（Ｚ値）に基づいて決定される。具体的には、対象領域は、各画素のＺ値と注視点に対応する画素のＺ値との差分が所定値以下となる画素からなる領域に決定される。これによって、対象領域には、ゲーム空間において注視点付近に存在するオブジェクトに対応する画素（当該オブジェクトが表示される画素）が含まれることになる。図１０は、図８に示す状態から仮想カメラが移動した場合における基準画像を示す図である。なお、図１０においては、対象領域以外の領域を斜線で示している。図１０の例では、注視点は第１星オブジェクト５１上の位置であるので、第１星オブジェクト５１と、その上に配置される各オブジェクト（プレイヤキャラクタ５４および敵キャラクタ５５等）とのいずれかに対応する画素領域が対象領域となる。
【００８５】
対象領域が決定されると、ゲーム装置３は、仮想カメラの移動に応じて対象領域外の領域を対象としてぼかし処理を行う。本実施形態では、ゲーム装置３は、画像をぼかす度合いを、合成率および補正値という２つの変数を用いて算出する。これら合成率および補正値は、画像のぼかし度合いを示す変数である。具体的には、合成率（ブレンド率とも言う）は、基準画像と、基準画像をぼかした画像（ぼかし画像と呼ぶ）とを合成する比率である。本実施形態では、合成率は、基準画像の各画素に設定されるＺ値に基づいて画素毎に算出される。また、補正値は、合成率を補正するための値である。ぼかし処理においては、補正値が大きいほどぼかし度合いが大きくなる。本実施形態では、補正値は、仮想カメラの移動量が所定量以上である場合には所定の基準値より大きくなるように、かつ、仮想カメラの移動量が所定量よりも小さい場合には当該基準値より小さくなるように算出される。合成率および補正値を用いたぼかし処理の詳細については後述する。
【００８６】
本実施形態では、仮想カメラの移動中においては、上記ぼかし処理の結果、第１星オブジェクト５１、および、その上に配置されるオブジェクトが表示される画像領域以外の領域がぼやけて表示される。図１１は、仮想カメラの移動中において生成されるゲーム画像の一例を示す図である。なお、図１１では、オブジェクト５２および５３の輪郭を複数の点線によって表すことによって輪郭がぼけている様を表現している。図１１に示されるように、仮想カメラの移動中においては、対象領域内のオブジェクト、すなわち、第１星オブジェクト５１およびその上のオブジェクト（プレイヤキャラクタ５４および敵キャラクタ５５等）は、輪郭が明確に表示される。一方、対象領域外のオブジェクト（第２および第３星オブジェクト５２および５３）は、輪郭がぼけて表示される。これによって、プレイヤにとっては第１星オブジェクトおよびその上のオブジェクトが他のオブジェクトに比べて相対的に見やすくなるので、プレイヤを第１星オブジェクト５１等に自然に注目させることができる。したがって、プレイヤは、注目対象をより見つけやすくなり、仮想カメラの移動中に注目対象を見失うこともなくなるので、注目対象を認識しやすくなる。
【００８７】
（ゲーム処理の詳細）
以下、図１２〜図１５を参照して、本実施形態におけるゲーム処理の詳細について説明する。図１２は、ゲーム装置３のメインメモリ（外部メインメモリ１２または内部メインメモリ１１ｅ）に記憶される主なデータを示す図である。図１２に示すように、メインメモリには、ゲームプログラム６０、操作データ６１、およびゲーム処理用データ６２等が記憶される。
【００８８】
ゲームプログラム６０は、ゲーム装置３に電源が投入された後の適宜のタイミングで光ディスク４からその一部または全部が読み込まれてメインメモリに記憶される。
【００８９】
操作データ６１は、コントローラ５からゲーム装置３へ送信されてくる操作データである。操作データ６１には、各操作ボタン３２ａ〜３２ｉに対する入力状態を示す操作ボタンデータ、上記撮像情報演算部３５によって算出されるマーカ座標を示すマーカ座標データ、および、加速度センサ３７によって検出される加速度ベクトルを示す加速度データが含まれる。上述したように、操作データはコントローラ５からゲーム装置３へ１／２００秒に１回の割合で送信されるので、メインメモリに記憶される操作データはこの割合で更新される。メインメモリには、最新の（最後に取得された）操作データのみが記憶されればよい。
【００９０】
ゲーム処理用データ６２は、後述するゲーム処理（図１３）において用いられるデータである。ゲーム処理用データ６２は、基準画像データ６３、ぼかし画像データ６４、奥行値データ６５、カメラデータ６６、回転角度データ６７、合成率データ６８、補正値データ６９、および、表示画像データ７０を含む。なお、ゲーム処理用データ６２は、図１２に示すデータの他、ゲームに登場する各種オブジェクト（キャラクタ）の画像データや、オブジェクトの各種パラメータを示すデータ等、ゲーム処理に必要なデータを含む。
【００９１】
基準画像データ６３は、前述した基準画像の画像データである。基準画像は、例えば、３次元仮想空間に対して仮想カメラの位置を基準として透視変換を行うことによって得られる。基準画像データ６３は、基準画像の各画素の色値（ＲＧＢ値）を示す。
【００９２】
ぼかし画像データ６４は、前述したぼかし画像、すなわち、基準画像をぼかした画像の画像データを示す。詳細は後述するが、ぼかし画像は基準画像から生成される。ぼかし画像データ６４は、ぼかし画像の各画素の色値（ＲＧＢ値）を示す。なお、基準画像データ６３およびぼかし画像データ６４は、ＶＲＡＭ１１ｄに設けられるフレームバッファに記憶されてもよい。
【００９３】
奥行値データ６５は、上記基準画像の各画素における奥行値を示す。奥行値とは、ゲーム空間における仮想カメラの視点から視線方向への奥行きを表す。本実施形態では、各画素について算出されるＺ値を奥行値として用いる。なお、他の実施形態において、ゲーム装置３にＷバッファが設けられる場合には、Ｗバッファに格納される値を奥行値として用いてもよい。奥行値（Ｚ値）は、上記基準画像が生成される際に各画素の色値と共に算出される。
【００９４】
カメラデータ６６は、仮想カメラの状態を示すデータである。具体的には、カメラデータ６６は、仮想カメラの３次元空間における位置および姿勢を示す。なお、本実施形態では、カメラデータ６６は、周知の３次元画像生成処理において用いられるカメラ行列のデータである。カメラ行列とは、仮想カメラの位置を示す３次元の座標値と、仮想カメラの姿勢を示す、互いに直交する３つのベクトルとからなる４×３の行列である。つまり、仮想カメラの姿勢は３つのベクトルによって表される。
【００９５】
回転角度データ６７は、所定時間当たりにおける仮想カメラの回転角度（姿勢の変化量）を示すデータである。本実施形態では、上記所定時間を１フレーム時間（１／６０秒）とし、前回のフレームにおける仮想カメラの向きと今回のフレームにおける仮想カメラの向きとのなす角度として上記回転角度を算出する。
【００９６】
合成率データ６８は、前述した合成率を示すデータである。本実施形態では、合成率は、基準画像の各画素の奥行値に基づいて画素毎に算出される（後述するステップＳ９参照）。具体的には、合成率αは、０≦α≦１の範囲であり、α＝０の場合には合成後の画像はぼかし画像の割合が０％（基準画像の割合が１００％）となり、α＝１の場合には合成後の画像はぼかし画像の割合が１００％となる（後述する式（２）参照）。したがって、合成率αは、画像のぼかし度合いを示す値であり、ここでは、その値が大きいほど画像のぼかし度合いが大きいことを表している。
【００９７】
補正値データ６９は、上記補正値を示すデータである。詳細は後述するが、補正値は、仮想カメラの移動量（本実施形態では、仮想カメラの回転角度）に基づいて算出される。具体的には、補正値Ａは、０≦Ａ≦１の範囲であり、上記合成率は、合成率に補正値を乗算することによって補正される（後述する式（１）参照）。したがって、補正値Ａは、画像のぼかし度合いを示す値であり、ここでは、その値が大きいほど画像のぼかし度合いが大きいことを表している。
【００９８】
表示画像データ７０は、テレビ２に表示されるべき画像（表示画像）を示す画像データである。すなわち、表示画像は、上記基準画像および上記ぼかし画像を合成した結果得られる画像である。具体的には、表示画像データ７０は、表示画像の各画素の色値（ＲＧＢ値）を示す。詳細は後述するが、表示画像は、補正値によって補正された後の合成率に従って基準画像およびぼかし画像を合成することによって得られる。
【００９９】
次に、ゲーム装置３において行われる画像生成処理の詳細を、図１３〜図１５を用いて説明する。図１３は、ゲーム装置３において実行される処理の流れを示すメインフローチャートである。ゲーム装置３の電源が投入され、ゲームプログラムが記憶された光ディスク４がゲーム装置３に挿入されると、ゲーム装置３のＣＰＵ１０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。図１３に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、以下においては、図１３に示す処理がＣＰＵ１０によって実行されるものとして説明するが、当該処理の一部はＣＰＵ１０およびＧＰＵ１１ｂの協働動作として実行されてもよい。
【０１００】
ステップＳ１において、ＣＰＵ１０は、ゲーム処理に関する初期化処理を実行する。具体的には、ＣＰＵ１０は、プレイヤキャラクタ等のゲームキャラクタのデータ、および、地形オブジェクトのデータ等を光ディスク４から読み込む。そして、読み込んだデータを用いてゲーム空間を構築し、プレイヤキャラクタや他のキャラクタをゲーム空間の初期位置に配置する処理等を実行する。また、ステップＳ１においては、仮想カメラの初期位置および初期姿勢が予め定められた方向に決められる。つまり、当該初期位置および初期姿勢を示すデータがカメラデータ６６としてメインメモリに記憶される。
【０１０１】
ステップＳ１の次のステップＳ２において、ＣＰＵ１０は補正値Ａを初期化する。本実施形態では、補正値Ａは例えばＡ＝０に設定される。すなわち、ＣＰＵ１０は、Ａ＝０を示すデータを補正値データ６９としてメインメモリに記憶する。
【０１０２】
上記ステップＳ２の後、ステップＳ３〜Ｓ１５の処理ループが、ゲームが実行される間繰り返し実行される。なお、１回の上記処理ループは、１フレーム時間（例えば１／６０秒）に１回の割合で実行される。
【０１０３】
ステップＳ３において、ＣＰＵ１０は、前回のフレームにおける仮想カメラの位置および姿勢を保存する。すなわち、現時点でメインメモリに記憶されているカメラデータ６６を、前回カメラデータとしてカメラデータ６６とは別にメインメモリに記憶する。ステップＳ３の後、ステップＳ４の処理が実行される。
【０１０４】
ステップＳ４において、ＣＰＵ１０は操作データを取得する。すなわち、コントローラ５から送信されてくる操作データがゲーム装置３で受信され、メインメモリに記憶されるので、ＣＰＵ１０はメインメモリから操作データ６１を読み出す。ステップＳ４の後、ステップＳ５の処理が実行される。
【０１０５】
ステップＳ５において、ＣＰＵ１０は、ゲーム空間に配置されている各キャラクタの動作を制御する。つまり、プレイヤによるコントローラ５に対する操作に従ってプレイヤキャラクタを動作させたり、予め定められたアルゴリズムに従って敵キャラクタを動作させたりする。プレイヤキャラクタの動作は、具体的には、ステップＳ４で取得された操作データに基づいて決定される。また、このとき、ゲーム空間におけるプレイヤキャラクタおよび敵キャラクタの位置が算出され、算出された各位置を示すデータがメインメモリに記憶される。ステップＳ５の後、ステップＳ６の処理が実行される。
【０１０６】
ステップＳ６において、ＣＰＵ１０は、仮想カメラの位置および姿勢を算出する。前述したように、本実施形態では、仮想カメラの位置および姿勢は、ゲーム空間におけるプレイヤキャラクタおよび所定の敵キャラクタの位置に基づいて決定される。以下、仮想カメラの位置および姿勢の算出方法の詳細を説明する。
【０１０７】
ＣＰＵ１０は、まず、プレイヤキャラクタおよび敵キャラクタの位置に基づいて仮想カメラの注視点の位置を決定する。注視点の位置は、例えば、プレイヤキャラクタの位置と敵キャラクタの位置との中点の位置に決定される。また、注視点の位置は、注視点の急激な変化を避けるため、上記中点の位置に追従するように決められてもよい。具体的には、１フレーム前の注視点の位置を上記中点の位置に所定の割合で近づけた位置としてもよい。
【０１０８】
次に、ＣＰＵ１０は、注視点の位置に基づいて仮想カメラの位置を決定する。仮想カメラの位置は、注視点の位置から、所定の方向に所定の距離だけ離れた位置に決定される。所定の方向とは、例えば、球体である星オブジェクトの中心から注視点を通って延びる直線（半直線）の方向に決められる。所定の距離は、予め定められた長さに決められてもよいし、プレイヤキャラクタと上記所定の敵キャラクタとの位置関係に基づいて決められてもよい。例えば、所定の距離は、プレイヤキャラクタおよび所定の敵キャラクタが表示されるように決定されてもよい。なお、仮想カメラの位置が決定されることによって、仮想カメラの視線方向が決まる。つまり、視線方向は、仮想カメラの位置から注視点への方向に決まる。
【０１０９】
さらに、ＣＰＵ１０は仮想カメラの（３軸方向の）姿勢を算出する。ここで、仮想カメラの視線方向は決まっているので、視線方向を軸とした回転に関する傾きを決定すれば、仮想カメラの３軸方向の姿勢が決定されることになる。例えば、当該傾きは、表示画面上においてプレイヤキャラクタの頭が上になり足が下に表示されるように決定される。これによって、仮想カメラの姿勢が決定されたこととなる。以上のようにして仮想カメラの位置および姿勢が算出されることによって、仮想カメラは、図９に示すように、プレイヤキャラクタおよび敵キャラクタの移動に応じて、星オブジェクトの方向を向きながら当該星オブジェクトの回りを移動することになる。
【０１１０】
ステップＳ６において算出された仮想カメラの位置および姿勢を示すデータは、カメラデータ６６としてメインメモリに記憶される。なお、仮想カメラの位置および姿勢を算出する方法はどのようなものであってもよく、例えば、プレイヤキャラクタの位置のみに基づいて仮想カメラの位置および姿勢が算出されてもよいし、プレイヤの操作に従って仮想カメラの位置および姿勢が決められるようにしてもよい。
【０１１１】
ステップＳ６の次のステップＳ７において、ＣＰＵ１０は、仮想カメラの回転角度を算出する。回転角度は、メインメモリに記憶されているカメラデータ６６と、ステップＳ３で保存された前回カメラデータとを用いて算出される。具体的には、前回カメラデータにより示される姿勢から、カメラデータ６６により示される姿勢へ変化したときの回転角度が算出される。このように、本実施形態では、仮想カメラの姿勢（すなわち、カメラ行列に含まれる、仮想カメラの姿勢を表す３つのベクトル）を用いて回転角度を算出するので、仮想カメラが視線方向を軸として回転する場合でも回転角度を検出することができる。ステップＳ７で算出された回転角度を示すデータは、回転角度データ６７としてメインメモリに記憶される。
【０１１２】
ステップＳ８において、ＣＰＵ１０は基準画像を生成する。すなわち、ステップＳ６で設定された仮想カメラの位置および姿勢に基づいて例えば透視変換を行うことによって、仮想カメラの位置から仮想カメラの姿勢で仮想カメラの視線方向に見たゲーム空間の画像を生成する。生成された基準画像の画像データは基準画像データ６３としてメインメモリに記憶される。また、基準画像を生成する処理において、ＣＰＵ１０は、基準画像の各画素についてＺ値を算出し、算出した各Ｚ値を示すデータを奥行値データ６５としてメインメモリに記憶する。
【０１１３】
ステップＳ９において、ＣＰＵ１０は、基準画像の各画素について合成率を算出する。画素の合成率は、仮想カメラの位置から当該画素に対応するオブジェクトまでの奥行き、すなわち、当該画素に設定されるＺ値に基づいて算出される。以下、図１４を参照して、合成率の算出方法の詳細について説明する。
【０１１４】
図１４は、画素に設定されるＺ値と当該画素に設定されるべき合成率αとの関係を示す図である。図１４に示す横軸はＺ値を示し、縦軸は合成率αを示している。また、以下では、仮想カメラの位置から注視点の位置までの距離（奥行値）Ｚ１を「基準距離」と呼ぶ。図１４に示されるように、Ｚ値が基準距離Ｚ１を中心とした所定範囲（Ｚ１−ｚ≦Ｚ≦Ｚ１＋ｚ）内である画素については、合成率αはα＝０に設定される。そして、上記所定範囲外では、合成率αは、α＝１を上限として、Ｚ値と基準距離Ｚ１との差分（絶対値）が大きくなるほど値が大きくなるように設定される。なお、図１４では、上記所定範囲外における上記差分と合成率αとの関係は、比例関係である場合を示している。ただし、上記差分と合成率αとの関係は、上記差分が大きくなるにつれて合成率αが大きくなる関係であればよい。また、他の実施形態においては、上記所定範囲外となる画素に対しては一律に合成率αを“１”に設定してもよい。
【０１１５】
上記ステップＳ９において、ＣＰＵ１０は、Ｚ値から合成率αを算出する処理を基準画像の各画素について実行する。各画素について算出された各合成率を示すデータは、合成率データ６８としてメインメモリに記憶される。
【０１１６】
上記ステップＳ９の処理によって、基準画像の各画素には、Ｚ値と基準距離Ｚ１との差分が大きくなるほど値が大きくなるように合成率が設定される。このように設定された合成率αを用いて基準画像とぼかし画像とを合成することにより、Ｚ値が上記基準距離に近い画素領域については輪郭が明確に表示され、Ｚ値が基準距離から離れた画素領域については輪郭がぼけた画像が表示される。つまり、奥行きが焦点距離に近いオブジェクトについてピントが合ったような、フォーカシングされた画像を生成することができる。
【０１１７】
また、上記ステップＳ９においては、その画素のＺ値と注視点におけるＺ値との差分が所定値ｚ以下となる画素の合成率が“０”に設定される。ここで、詳細は後述するが、上記ステップＳ９において合成率αが“０”に設定された画素領域については、基準画像がそのまま表示され、画像がぼかされない（後述するステップＳ１２参照）。つまり、本実施形態では、ゲーム装置３は、ステップＳ９の処理において、基準画像の画像領域のうちで合成率αが“０”である領域を設定することによって、当該領域を上記対象領域として決定している。なお、注視点の位置に対応する画素に対しては合成率αが“０”に設定されるので、対象領域は、注視点の位置を含むように決められることになる。
【０１１８】
ステップＳ１０において、ＣＰＵ１０は、上記補正値を算出するための補正値算出処理を実行する。図１５は、図１３に示す補正値算出処理（ステップＳ１０）の流れを示すフローチャートである。補正値算出処理においては、まずステップＳ２１において、ＣＰＵ１０は、仮想カメラの回転角度が、予め定められた所定角度以上であるか否かを判定する。すなわち、ＣＰＵ１０は、メインメモリに記憶されている回転角度データ６７により示される回転角度が上記所定角度以上であるか否かを判定する。ステップＳ２１の判定結果が肯定である場合、ステップＳ２２の処理が実行される。一方、ステップＳ２１の判定結果が否定である場合、後述するステップＳ２６の処理が実行される。
【０１１９】
ステップＳ２２〜Ｓ２５においては、補正値を所定値だけ増加する処理が行われる。一方、ステップＳ２６〜Ｓ２９においては、補正値を所定値だけ減少する処理が行われる。つまり、本実施形態では、仮想カメラの回転角度が上記所定角度以上である場合、補正値は現在の値より増加され、仮想カメラの回転角度が上記所定角度よりも小さい場合、補正値は現在の値より減少される。以下、ステップＳ２２〜Ｓ２９の詳細を説明する。
【０１２０】
ステップＳ２２において、ＣＰＵ１０は、補正値Ａが上限値である“１”より小さいか否かを判定する。ステップＳ２２は、補正値がまだ上限値に達していないか否か（補正値を増加することが可能か否か）を判定するための処理である。ステップＳ２２の判定結果が肯定である場合、ステップＳ２３の処理が実行される。一方、ステップＳ２２の判定結果が否定である場合、ＣＰＵ１０は補正値算出処理を終了する。この場合、補正値はすでに上限値に達しているので、補正値を増加することができないからである。
【０１２１】
ステップＳ２３において、ＣＰＵ１０は、補正値を予め定められた所定値だけ増加する。この所定値は、０より大きく１以下の範囲でどのように定められてもよい。例えば、所定値を“１／６０（≒０．０１６７）”とした場合、仮想カメラの回転角度が上記所定角度以上である状態が６０フレーム時間（＝１秒）続くと、補正値Ａは上限値（Ａ＝１）となる。ステップＳ２３において補正値が増加されると、増加後の補正値を示すデータが新たな補正値データ６９としてメインメモリに記憶される。ステップＳ２３の後、ステップＳ２４の処理が実行される。
【０１２２】
ステップＳ２４において、ＣＰＵ１０は、補正値Ａが上限値である“１”より大きいか否かを判定する。ここで判定の対象となる補正値は、ステップＳ２３で値が増加された後の補正値である。ステップＳ２４の判定結果が肯定である場合、ステップＳ２５の処理が実行される。一方、ステップＳ２４の判定結果が否定である場合、ＣＰＵ１０は補正値算出処理を終了する。
【０１２３】
ステップＳ２５において、ＣＰＵ１０は、補正値を上限値である“１”に設定する。すなわち、“１”を示すデータが新たな補正値データ６９としてメインメモリに記憶される。ここで、上記ステップＳ２３で補正値が増加される場合、所定値の大きさによっては、増加後の補正値が“１”を超える場合がある。上記ステップＳ２４およびＳ２５の処理は、増加後の補正値が上限値である“１”を超えた場合に、当該補正値を上限値に修正するための処理である。ステップＳ２５の後、ＣＰＵ１０は補正値算出処理を終了する。
【０１２４】
一方、ステップＳ２６において、ＣＰＵ１０は、補正値Ａが下限値である“０”より大きいか否かを判定する。ステップＳ２６は、補正値がまだ下限値に達していないか否か（補正値を減少することが可能か否か）を判定するための処理である。ステップＳ２６の判定結果が肯定である場合、ステップＳ２７の処理が実行される。一方、ステップＳ２６の判定結果が否定である場合、ＣＰＵ１０は補正値算出処理を終了する。この場合、補正値はすでに下限値に達しているので、補正値を減少することができないからである。
【０１２５】
ステップＳ２７において、ＣＰＵ１０は、補正値を予め定められた所定値だけ減少する。この所定値は、補正値を増加するための所定値と等しくてもよいし、異なる大きさであってもよい。ステップＳ２７において補正値が減少されると、減少後の補正値を示すデータが新たな補正値データ６９としてメインメモリに記憶される。ステップＳ２７の後、ステップＳ２８の処理が実行される。
【０１２６】
ステップＳ２８において、ＣＰＵ１０は、補正値Ａが下限値である“０”より小さいか否かを判定する。ここで判定の対象となる補正値は、ステップＳ２７で値が減少された後の補正値である。ステップＳ２８の判定結果が肯定である場合、ステップＳ２９の処理が実行される。一方、ステップＳ２８の判定結果が否定である場合、ＣＰＵ１０は補正値算出処理を終了する。
【０１２７】
ステップＳ２９において、ＣＰＵ１０は、補正値を下限値である“０”に設定する。すなわち、“０”を示すデータが新たな補正値データ６９としてメインメモリに記憶される。ここで、上記ステップＳ２７で補正値が減少される場合、所定値の大きさによっては、減少後の補正値が“０”を下回る場合がある。上記ステップＳ２８およびＳ２９の処理は、減少後の補正値が下限値である“０”を下回った場合に、当該補正値を下限値に修正するための処理である。ステップＳ２９の後、ＣＰＵ１０は補正値算出処理を終了する。
【０１２８】
以上のように、上記補正値算出処理においては、仮想カメラの回転角度が所定角度以上である状態が続くと、補正値は“１”を上限として次第に増加していく。一方、仮想カメラの回転角度が所定角度よりも小さい状態が続くと、補正値は“０”を下限として次第に増加していく。したがって、上記補正値算出処理によれば、仮想カメラが停止した状態から急激に回転したとしても補正値が急激に増加することはなく、また、仮想カメラが回転している状態から急に停止したとしても、補正値が急に“０”になることはない。このように、本実施形態では、仮想カメラの回転に対する補正値の変化の応答性を低くすることによって、ゲーム画像が急にぼやけたり、逆に急に明確になったりすることを防止し、プレイヤに違和感を与えることを防止することができる。
【０１２９】
なお、他の実施形態においては、ゲーム装置３は、仮想カメラの回転角度の大きさに応じた大きさとなるように補正値を算出するようにしてもよい。すなわち、回転角度が所定角度以上である場合には、予め定められた基準値よりも大きくなるように補正値を算出し、回転角度が所定角度よりも小さい場合には、当該基準値よりも小さくなるように補正値を算出してもよい。このとき、補正値は、基準値よりも大きい第１値と基準値よりも小さい第１値との２値のみで表される必要はなく、例えば、補正値は、回転角度の大きさに比例する大きさとなるように算出されてもよい。
【０１３０】
図１３の説明に戻り、ステップＳ１０の次のステップＳ１１において、ＣＰＵ１０は、ステップＳ９で算出された合成率αを、ステップＳ１０で算出された補正値Ａで補正する。ステップＳ１１の処理は、メインメモリに記憶されている合成率データ６８および補正値データ６９を用いて行われる。具体的には、ＣＰＵ１０は、合成率データ６８により示される各画素の合成率αを、次式（１）に従って、補正値データ６９により示される補正値Ａによって補正する。
α＝α’×Ａ  …（１）
上式（１）において、変数α’は補正前の合成率であり、変数αは補正後の合成率である。ＣＰＵ１０は、各画素に設定される各合成率について同一の補正値を用いてそれぞれ補正を行い、補正後の各合成率を示すデータを新たな合成率データ６８としてメインメモリに記憶する。なお、詳細は後述するが、ステップＳ１１による補正後の合成率が、最終的に画面に表示される画像（表示画像）におけるぼかし度合いを示す。つまり、ステップＳ１１の処理は、合成率αおよび補正値Ａに基づいて表示画像のぼかし度合いを決定する処理である。
【０１３１】
なお、上述したように、基準画像の全領域のうち対象領域内の画素に設定される合成率は“０”である。そのため、当該画素については補正値の大きさによらず補正後の合成率は“０”となる。したがって、当該画素についてはステップＳ１１の補正処理によって合成率が変化しないので、ステップＳ１１においては、少なくとも対象領域外の画素について補正処理を行えばよく、対象領域内の画素について補正処理を省略するようにしてもよい。
【０１３２】
ステップＳ１１の次のステップＳ１２において、ＣＰＵ１０は、基準画像からぼかし画像を生成する。ぼかし画像を生成する方法はどのような方法であってもよいが、本実施形態では、ＣＰＵ１０は、例えば、基準画像を縮小した画像を、所定画素だけずらして複数回重ねて描画した後、描画された画像を拡大することによってぼかし画像を得る。また、他の実施形態においては、ぼかし画像は、基準画像の各画素の色値を例えばガウスフィルタ等を用いて平滑化することによって生成されてもよいし、基準画像を一端拡大した後で縮小することによって輪郭を粗くする方法によって生成されてもよいし、基準画像に対してバイリニアフィルタリングやトライリニアフィルタリングを行うことにより生成されてもよい。ステップＳ１２で生成されたぼかし画像の画像データは、ぼかし画像データ６４としてメインメモリに記憶される。
【０１３３】
ステップＳ１２の次のステップＳ１３において、ＣＰＵ１０は、基準画像をぼかすためのぼかし処理を実行することによって表示画像を生成する。このぼかし処理は、基準画像とぼかし画像とを補正後の合成率αに基づいて合成することによって行われる。具体的には、ＣＰＵ１０は、基準画像データ６３、ぼかし画像データ６４、および合成率データ６８を参照して、次の式（２）に従って表示画像の各画素の色値Ｃを算出する。
Ｃ＝Ｃ１×（１−α）＋Ｃ２×α  …（２）
上式（２）において、変数Ｃ１は基準画像の色値を示し、変数Ｃ２はぼかし画像の色値を示す。ＣＰＵ１０は、表示画像の各画素について上式（２）を用いて色値を算出する処理を行うことによって、表示画像の各画素の色値を算出する。ステップＳ１３の処理によって生成された表示画像の画像データは、表示画像データ７０としてメインメモリに記憶される。
【０１３４】
上記ステップＳ１３の処理において、上記対象領域については合成率αは“０”であるので、表示画像においては基準画像がそのまま反映され、画像はぼかされない。つまり、対象領域についてはぼかし処理は行われない。一方、対象領域以外の領域については、合成率αが“０”でないので、表示画像はぼかし画像が反映された画像になる。つまり、対象領域外の領域についてはぼかし処理は行われ、輪郭がぼやけた画像が表示される。
【０１３５】
なお、他の実施形態においては、ステップＳ１０の補正値算出処理において補正値ＡがＡ＝０と算出された場合、上記ステップＳ１１〜Ｓ１３の処理をスキップするようにしてもよい。さらにこの場合、ステップＳ１４において、ＣＰＵ１０は、基準画像をそのままテレビ２に表示するようにする。これによれば、補正値ＡがＡ＝０と算出された場合の処理を簡易化することができる。
【０１３６】
ステップＳ１３の次のステップＳ１４において、ＣＰＵ１０は、ステップＳ１３において生成された表示画像をテレビ２に表示する。すなわち、メインメモリに記憶されている表示画像データ７０を、ＶＲＡＭ１１ｄに設けられるフレームバッファに書き込む。これによって、表示画像がテレビ２に表示される。なお、表示画像に重ねて他の画像（例えば、得点やプレイヤキャラクタに関する情報を示す画像）が表示される場合があるが、このような画像をぼかして表示する必要はない。ステップＳ１４の後、ステップＳ１５の処理が実行される。
【０１３７】
ステップＳ１５において、ＣＰＵ１０は、ゲーム処理を終了するか否かを判定する。この判定処理は、例えば、ゲームがクリアされたか否か、ゲームオーバーとなったか否か、または、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップＳ１５の判定結果が否定である場合、ステップＳ３の処理が再度実行される。以降、ステップＳ１５の判定処理でゲームを終了すると判定されるまで、ステップＳ３〜Ｓ１５の処理が繰り返し実行される。一方、ステップＳ１５の判定結果が肯定である場合、ＣＰＵ１０は、図１３に示すゲーム処理を終了する。以上で、ゲーム処理の説明を終了する。
【０１３８】
以上のように、本実施形態によれば、仮想カメラが回転した場合、対象領域外の画素領域について画像をぼかす処理を行う。これによって、仮想カメラが回転したことによって画像全体が変化した場合でも、プレイヤに対象領域内を注目させることができるので、対象領域内の注目対象をプレイヤに容易に認識させることができる。
【０１３９】
なお、上記実施形態においては、仮想カメラの注視点の位置は、プレイヤキャラクタおよび所定の敵キャラクタの位置に基づいて決定された。ここで、他の実施形態においては、注視点の位置は、プレイヤの注目対象と想定される所定のオブジェクトの位置に基づいて決定されればよく、例えば、当該所定のオブジェクトの位置またはその近傍の位置に決定されればよい。
【０１４０】
また、上記実施形態においては、対象領域は、画素に設定される奥行値（Ｚ値）に基づいて決定された。ここで、対象領域の決定方法は上記に限らず、仮想カメラの視線方向に存在する所定位置に対応する画素を含むように決定されればよい。例えば、他の実施形態においては、ゲーム装置３は、上記所定位置を仮想カメラの注視点の位置とし、当該注視点の位置に対応する画素を含み、当該画素から所定距離内にある画素からなる画素領域を対象領域として決定してもよい。例えば、上述のゲーム処理におけるステップＳ９において、注視点の位置に対応する画素、および、当該画素から所定距離内にある画素について、合成率αをα＝０に設定してもよい。このとき、注視点の位置に対応する画素から所定距離外にある画素の合成率αは０でない値に設定される。また、他の実施形態においては、ゲーム装置３は、注視点が設定されるオブジェクトに対応する画素を少なくとも含む領域を対象領域として決定してもよい。
【０１４１】
また、他の実施形態においては、対象領域は、注視点の位置に基づいて決定される必要はない。例えば、仮想カメラが所定位置を向いた状態で当該所定位置を中心に回転するように移動する場合には、当該所定位置に基づいて対象領域を決定してもよい。具体的には、当該所定位置を含む所定空間内に存在するオブジェクトに対応する画素からなる領域を対象領域としてもよい。例えば、上記実施形態においては、仮想カメラの回転中心の位置は、星オブジェクトの中心位置であるので、上記所定空間（星オブジェクトの中心位置を含む所定空間）を、当該星オブジェクトおよび星オブジェクト上のオブジェクトが含まれる空間としてもよい。より具体的には、上記所定空間は、仮想カメラの回転中心の位置から所定距離内の空間に決定されてもよいし、仮想カメラの回転中心の奥行値との差分が所定値以下となる空間に決定されてもよい。これによって、上記実施形態と同様、星オブジェクトおよび星オブジェクト上のオブジェクトに対応する画素からなる領域が対象領域となるので、星オブジェクトおよび星オブジェクト上のオブジェクトはぼかされず、他のオブジェクトがぼかされた画像を生成することができる。
【０１４２】
また、上記実施形態においては、ゲーム装置３は、基準画像をぼかす度合いを示す変数として、合成率および補正値という２つの変数を用いた。ここで、他の実施形態においては、ゲーム装置３は、仮想カメラの移動量に応じて値が変化する変数（上記実施形態の補正値）のみを用いてぼかし処理を行うようにしてもよい。例えば、他の実施形態においては、ゲーム装置３は、上記補正値Ａを合成率として用い、基準画像とぼかし画像とを補正値Ａに従った比率で合成することによって表示画像を生成するようにしてもよい。なお、このとき、ゲーム装置３は、上記実施形態における合成率を算出する処理（ステップＳ９）を実行しなくてもよい。
【０１４３】
また、ゲーム装置３は、仮想カメラの移動に応じて基準画像のぼかし度合いを変化させるものであるが、仮想カメラが停止している場合にはぼかし処理を実行しないわけではなく、この場合にはぼかし処理を行ってもよいし、行わなくてもよい。例えば上記実施形態においては、仮想カメラの回転が停止した直後においては補正値Ａが“０”ではないので、ぼかし処理が実行される。また、他の実施形態においては、上記実施形態における補正値Ａの下限値を０以上の値としてもよく、このとき、仮想カメラが停止している状態であっても（画素のＺ値によっては）ぼかし処理が実行される。
【０１４４】
また、上記実施形態においては、ゲーム装置３は、仮想カメラの回転角度を仮想カメラの移動量として用い、移動量に応じて基準画像のぼかし度合いを変化させた。ここで、他の実施形態においては、仮想カメラの移動距離（位置の変化量）を仮想カメラの移動量として用いてもよいし、移動距離および回転角度の両方を仮想カメラの移動量として用いてもよい。仮想カメラが姿勢が変化する場合であっても位置が変化する場合であっても、画像全体が変化することにより、プレイヤが注目対象を見つけづらくなるという問題が生じるからである。
【０１４５】
以上においては、本発明がゲーム装置およびゲームプログラムに適用される場合を例として説明したが、本発明は、ゲーム用途に限らず、仮想空間を表示装置に表示させる画像処理装置、または、当該画像処理装置のコンピュータに実行させるための画像処理プログラムに適用することが可能である。
【産業上の利用可能性】
【０１４６】
以上のように、本発明は、３次元空間において視点の位置または視線方向が変化する場合であっても、注目すべき対象をユーザに容易に認識させること等を目的として、例えばゲームプログラムやゲーム装置として利用することが可能である。
【図面の簡単な説明】
【０１４７】
【図１】ゲームシステム１の外観図
【図２】ゲーム装置３の機能ブロック図
【図３】コントローラ５の外観構成を示す斜視図
【図４】コントローラ５の外観構成を示す斜視図
【図５】コントローラ５の内部構造を示す図
【図６】コントローラ５の内部構造を示す図
【図７】コントローラ５の構成を示すブロック図
【図８】本実施形態におけるゲームのゲーム画像の一例を示す図
【図９】仮想カメラが移動する様子を示す図
【図１０】図８に示す状態から仮想カメラが移動した場合における基準画像を示す図
【図１１】仮想カメラの移動中において生成されるゲーム画像の一例を示す図
【図１２】ゲーム装置３のメインメモリに記憶される主なデータを示す図
【図１３】ゲーム装置３において実行される処理の流れを示すメインフローチャート
【図１４】画素に設定されるＺ値と当該画素に設定されるべき合成率αとの関係を示す図
【図１５】図１３に示す補正値算出処理（ステップＳ１０）の流れを示すフローチャート
【符号の説明】
【０１４８】
１    ゲームシステム
２    テレビ
３    ゲーム装置
４    光ディスク
５    コントローラ
６    マーカ部
１０    ＣＰＵ
１１ｃ  ＧＰＵ
１１ｅ  内部メインメモリ
１２    外部メインメモリ
５１〜５３    星オブジェクト
５４    プレイヤキャラクタ
５５    敵キャラクタ
５７    仮想カメラ
【図１】
0005296337.tif 000002
【図２】
0005296337.tif 000003
【図３】
0005296337.tif 000004
【図４】
0005296337.tif 000005
【図５】
0005296337.tif 000006
【図６】
0005296337.tif 000007
【図７】
0005296337.tif 000008
【図８】
0005296337.tif 000009
【図９】
0005296337.tif 000010
【図１０】
0005296337.tif 000011
【図１１】
0005296337.tif 000012
【図１２】
0005296337.tif 000013
【図１３】
0005296337.tif 000014
【図１４】
0005296337.tif 000015
【図１５】
0005296337.tif 000016