(57)【特許請求の範囲】
【請求項１】
画像処理装置のコンピュータを、
オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力手段、
所定の基準位置と前記オブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力手段、および
前記位置関係情報を前記基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化手段として機能させる、画像処理プログラム。
【請求項２】
前記コンピュータを、前記基準位置に関連して前記オブジェクトの存在を検知可能な範囲を設定しかつ当該範囲を少なくとも前記高さ情報に応じて変化させる範囲制御手段としてさらに機能させ、
前記位置関係情報は前記オブジェクトの配置位置が前記範囲内か否かを少なくとも示す情報である、請求項１記載の画像処理プログラム。
【請求項３】
前記範囲制御手段は前記高さ情報の示す値が大きいほど前記範囲を拡大する、請求項２記載の画像処理プログラム。
【請求項４】
前記範囲は、前記基準位置からの距離と方向に基づいて設定される、請求項２記載の画像処理プログラム。
【請求項５】
前記位置関係情報は前記オブジェクトの検知の強さを示す情報を含み、
前記範囲制御手段は前記範囲内で検知の強さが段階的に変化するように当該範囲を複数領域に分割する、請求項４記載の画像処理プログラム。
【請求項６】
前記コンピュータを、前記基準位置から前記オブジェクトの配置位置までの距離と方向に基づいて前記検知の強さを計算する計算手段としてさらに機能させ、
前記位置関係情報変化手段は、前記オブジェクトの配置位置が前記範囲内である場合には、前記計算手段の計算結果に基づいて前記位置関係情報を変化させる、請求項４記載の画像処理プログラム。
【請求項７】
前記計算手段は方向よりも距離を優先して計算を行う、請求項６記載の画像処理プログラム。
【請求項８】
前記コンピュータを、前記範囲内に複数のオブジェクトが存在する場合に前記基準位置から各オブジェクトまでの距離と方向に基づいて最優先オブジェクトを決定する最優先オブジェクト決定手段としてさらに機能させ、
前記オブジェクトは前記最優先オブジェクトである、請求項２記載の画像処理プログラム。
【請求項９】
前記最優先オブジェクト決定手段は方向よりも距離を優先して決定を行う、請求項８記載の画像処理プログラム。
【請求項１０】
前記高さ情報は、前記オブジェクトに設定されている属性である、請求項２記載の画像処理プログラム。
【請求項１１】
前記属性は、前記オブジェクトが可動オブジェクトか否かを示す情報を含み、
前記コンピュータを、前記基準位置に関連して前記オブジェクトの存在を検知可能な範囲を設定しかつ当該範囲を少なくとも前記属性に応じて変化させる範囲制御手段としてさらに機能させる、請求項１０記載の画像処理プログラム。
【請求項１２】
前記基準位置は前記仮想カメラの位置であり、
前記位置関係情報は、画像、音声、振動および発光の少なくとも１つで表現される、請求項１記載の画像処理プログラム。
【請求項１３】
前記位置関係情報出力手段は画像で表現された位置関係情報を前記仮想空間画像上に描画する、請求項１２記載の画像処理プログラム。
【請求項１４】
前記コンピュータを、前記仮想カメラの位置をポインティングデバイスからの入力に基づいて制御する仮想カメラ位置制御手段としてさらに機能させる、請求項１２記載の画像処理プログラム。
【請求項１５】
前記位置関係情報出力手段は前記画像で表現された位置関係情報が前記オブジェクトを指向するように制御する、請求項１３記載の画像処理プログラム。
【請求項１６】
オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力手段、
所定の基準位置と前記オブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力手段、および
前記位置関係情報を前記基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化手段を備える、画像処理装置。
【請求項１７】
画像処理装置によって実行される画像処理方法であって、
オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力ステップ、
所定の基準位置と前記オブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力ステップ、および
前記位置関係情報を前記基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化ステップを含む、画像処理方法。
【請求項１８】
オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力手段、
所定の基準位置と前記オブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力手段、および
前記位置関係情報を前記基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化手段を備える、画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関し、特にたとえば、オブジェクトが配置された仮想空間を仮想カメラから撮像した画像を表示する、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関する。
【背景技術】
【０００２】
従来、オブジェクトが配置された仮想空間を仮想カメラから撮像した画像を表示する技術において、所定の位置からオブジェクトまでの距離や方向を報知するものが知られている。
【０００３】
たとえば、特許文献１には、仮想空間においてユーザが操作するメインキャラクタの視点からの映像を含む主映像をディスプレイに表示し、主映像の視線方向を基準として、他のサブキャラクタが存在しているかを検出し、存在していることが検出された場合には、サブキャラクタの視点映像となる副映像を表示し、存在しないことが検出された場合には、ノイズ映像を副映像として表示することが開示されている。また、メインキャラクタとサブキャラクタの距離に応じて、副映像または音声に加工処理を施すことも開示されている。具体的には、距離が近いほど副映像の鮮明度を上げて、また音声を大きくし、距離が離れるほど副映像の鮮明度を下げて、また音声を小さくする。
【特許文献１】国際公開ＷＯ２００４／１１０５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、メインキャラクタとサブキャラクタとの間の距離や方向に基づいて副映像の表示態様や音声の大きさが一意的に決められているため、自由度が乏しいという問題があった。
【０００５】
それゆえに、この発明の主たる目的は、新規な、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムを提供することである。
【０００６】
この発明の他の目的は、自由度が高い、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムを提供することである。
【０００７】
この発明のその他の目的は、所定位置とオブジェクト位置との関係を示す関係情報の報知を動的に行うことができる、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムを提供することである。
【課題を解決するための手段】
【０００８】
この発明は、上記の課題を解決するために、以下の構成を採用した。
【０００９】
第１の発明は、画像処理プログラムであって、画像処理装置のコンピュータを、オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力手段、所定の基準位置とオブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力手段、および位置関係情報を基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化手段として機能させる。
【００１０】
第１の発明によれば、基準位置とオブジェクトの配置位置との位置関係を示す情報を基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させるので、位置関係情報の報知を基準位置の状況に応じて動的に行うことができる。したがって、自由度が高まる。
【００１５】
第２の発明は、第１の発明に従属する画像処理プログラムであって、コンピュータを、基準位置に関連してオブジェクトの存在を検知可能な範囲を設定しかつ当該範囲を少なくとも高さ情報に応じて変化させる範囲制御手段としてさらに機能させ、位置関係情報はオブジェクトの配置位置が範囲内か否かを少なくとも示す情報である。
【００１６】
第２の発明によれば、オブジェクトを検知可能な範囲を基準位置の高さ情報に応じて動的に変化させることができ、当該範囲内に位置するか否かを位置関係情報によってプレイヤに提示できる。
【００１７】
第３の発明は、第２の発明に従属する画像処理プログラムであって、範囲制御手段は高さ情報の示す値が大きいほど範囲を拡大する。
【００１８】
第３の発明によれば、基準位置の高さが高いほど検知可能な範囲が拡がるので、検知が容易になる。
【００１９】
第４の発明は、第２の発明に従属する画像処理プログラムであって、範囲は基準位置からの距離と方向に基づいて設定される。
【００２０】
第４の発明によれば、基準位置からの距離と方向に基づいて位置関係情報に関する範囲を設定できる。ある実施例では、範囲は、コーン型の領域として設定される。
【００２１】
第５の発明は、第４の発明に従属する画像処理プログラムであって、位置関係情報はオブジェクトの検知の強さを示す情報を含み、範囲制御手段は範囲内で検知の強さが段階的に変化するように当該範囲を複数領域に分割する。
【００２２】
第５の発明では、位置関係情報によって、範囲内か範囲外の区別に加えて、範囲内での検知の強さが段階的に表現される。したがって、位置関係を詳細に報知できる。
【００２３】
第６の発明は、第４の発明に従属する画像処理プログラムであって、コンピュータを、基準位置からオブジェクトの配置位置までの距離と方向に基づいて検知の強さを計算する計算手段としてさらに機能させ、位置関係情報変化手段は、オブジェクトの配置位置が範囲内である場合には、計算手段の計算結果に基づいて位置関係情報を変化させる。
【００２４】
第６の発明では、距離と方向に基づいて検知の強さが計算される。そして、位置関係情報によって、範囲内か範囲外の区別に加えて、範囲内での検知の強さが計算結果に基づいて表現されるので、位置関係をより詳細に報知できる。
【００２５】
第７の発明は、第６の発明に従属する画像処理プログラムであって、計算手段は方向よりも距離を優先して計算を行う。
【００２６】
ある実施例では、距離に基づいて計算を行い、距離が等しい場合に方向を考慮するが、他の実施例では、たとえば、方向よりも距離に重み付けをした計算式で計算を行ってもよい。
【００２７】
第７の発明によれば、オブジェクトまでの距離感を表現できる。
【００２８】
第８の発明は、第２の発明に従属する画像処理プログラムであって、コンピュータを、範囲内に複数のオブジェクトが存在する場合に基準位置から各オブジェクトまでの距離と方向に基づいて最優先オブジェクトを決定する最優先オブジェクト決定手段としてさらに機能させ、位置関係情報は最優先オブジェクトとの関係を示す。
【００２９】
第８の発明では、範囲内にオブジェクトが複数存在する場合、距離と方向に基づいて最優先オブジェクトが決定され、位置関係情報を通じて最優先オブジェクとの関係が提示されるので、基準位置に最も近いオブジェクトを（近いオブジェクトから順番に）検知できる。
【００３０】
第９の発明は、第８の発明に従属する画像処理プログラムであって、最優先オブジェクト決定手段は方向よりも距離を優先して決定を行う。
【００３１】
ある実施例では、距離に基づいて決定を行い、距離が等しい場合に方向を考慮するが、他の実施例では、たとえば、方向よりも距離に重み付けをしたアルゴリズムに従って決定を行ってもよい。
【００３２】
第９の発明によれば、直近のオブジェクトまでの距離感を表現できる。
【００３３】
第１０の発明は、第２の発明に従属する画像処理プログラムであって、高さ情報は、オブジェクトに設定されている属性である。
【００３４】
第１０の発明では、位置関係情報を、オブジェクトの属性に応じて動的に変化させることができるので、自由度が高まる。
【００３５】
第１１の発明は、第１０の発明に従属する画像処理プログラムであって、属性は、オブジェクトが可動オブジェクトか否かを示す情報を含み、コンピュータを、基準位置に関連してオブジェクトの存在を検知可能な範囲を設定しかつ当該範囲を少なくとも属性に応じて変化させる範囲制御手段としてさらに機能させる。好ましくは、動きが大きい（素早い）オブジェクトほど範囲を広くする。
【００３６】
第１１の発明によれば、動くオブジェクトについては、範囲を拡大することで、これを見つけ易くなる。
【００３７】
変形例では、属性にサイズに関する情報を含め、オブジェクトのサイズが大きい場合に範囲を拡大して見つけ易くしてもよい。好ましくは、サイズが大きいオブジェクトほど範囲を広くする。他の変形例では、属性に希少性に関する情報を含め、オブジェクトの希少性が高い場合に範囲を縮小して見つけ難くしてもよい。好ましくは、希少性が高いオブジェクトほど範囲を狭くする。
【００３８】
第１２の発明は、第１の発明に従属する画像処理プログラムであって、基準位置は仮想カメラの位置であり、位置関係情報は、画像、音声、振動および発光の少なくとも１つで表現される。
【００３９】
第１２の発明によれば、視覚，聴覚および触覚の少なくとも１つを通じて、ユーザに位置関係を認識させることができる。
【００４０】
第１３の発明は、第１２の発明に従属する画像処理プログラムであって、位置関係情報出力手段は画像で表現された位置関係情報を仮想空間画像上に描画する。
【００４１】
第１３の発明では、視覚による直感的な位置関係の認識が可能になる。
【００４２】
第１４の発明は、第１２の発明に従属する画像処理プログラムであって、コンピュータを、仮想カメラの位置をポインティングデバイスからの入力に基づいて制御する仮想カメラ位置制御手段としてさらに機能させる。
【００４３】
第１５の発明は、第１３の発明に従属する画像処理プログラムであって、位置関係情報出力手段は画像で表現された位置関係情報がオブジェクトを指向するように制御する。
【００４４】
第１４さらに第１５の発明によれば、あたかもポインティングデバイスで仮想空間内のオブジェクトを探索しているかのような感覚が得られる。
【００４５】
第１６の発明は、画像処理装置であって、オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力手段、所定の基準位置とオブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力手段、および位置関係情報を基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化手段を備える。
【００４６】
第１７の発明は、画像処理方法であって、画像処理装置によって実行される画像処理方法であって、オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力ステップ、所定の基準位置とオブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力ステップ、および位置関係情報を基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化ステップを含む。
【００４７】
第１８の発明は、画像処理システムであって、オブジェクトが配置された仮想空間を仮想カメラから撮影した仮想空間画像を出力する画像出力手段、所定の基準位置とオブジェクトの配置位置との位置関係を示す位置関係情報を出力する位置関係情報出力手段、および位置関係情報を基準位置に関連して設定されている当該基準位置の基準面からの高さを規定する高さ情報に応じて変化させる位置関係情報変化手段を備える。
【００４８】
第１６〜第１８の各発明によっても、第１の発明と同様に、位置関係情報の報知を基準位置の状況に応じて動的に行うことができて、自由度が高まる。
【発明の効果】
【００４９】
この発明によれば、位置関係情報の報知を行うことができて、自由度が高い、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムを実現できる。
【００５０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００５１】
【図１】この発明のゲームシステムの一実施例を示す図解図である。
【図２】ゲームシステムの電気的な構成を示すブロック図である。
【図３】第１コントローラの外観を説明するための図解図であり、（Ａ）は上面側を、（Ｂ）は下面側をそれぞれ示す。
【図４】第２コントローラの外観を説明するための図解図であり、（Ａ）は上面側を、（Ｂ）は下面側をそれぞれ示す。
【図５】コントローラ（第１コントローラおよび第２コントローラを互いに接続したもの）の電気的な構成を示すブロック図である。
【図６】コントローラを用いて仮想ゲーム（ダウジングゲーム）をプレイするときの状態を概説するための図解図である。
【図７】マーカおよびコントローラの視野角を説明するための図解図である。
【図８】コントローラによる撮像画像の一例を示す図解図である。
【図９】ゲーム画面の一例（対象選択時）を示す図解図である。
【図１０】ゲーム画面の他の一例（ダウジング時：検知範囲外）を示す図解図である。
【図１１】ゲーム画面のその他の一例（ダウジング時：検知範囲内で距離が大）を示す図解図である。
【図１２】ゲーム画面のさらにその他の一例（ダウジング時：検知範囲内で距離が小）を示す図解図である。
【図１３】メインメモリのメモリマップの一部を示す図解図である。
【図１４】ダウジング画像処理のためのパラメータおよび変数を示す図解図であり、（Ａ）は仮想空間の表面の高さを規定するパラメータを、（Ｂ）は仮想カメラの位置（基準位置）を記述する変数をそれぞれ示す。
【図１５】仮想カメラの高さに応じて変化する検知範囲を示す図解図である。
【図１６】最優先対象の決定方法を示す図解図であり、（Ａ）は検知の強さの計算方法を、（Ｂ）は計算結果に基づく最優先対象の決定方法をそれぞれ示す。
【図１７】仮想カメラと対象との間の位置関係をポインタ画像で表現した例を示す図解図である。
【図１８】検知範囲の分割例を示す図解図である。
【図１９】位置関係の他の表現例（振動および探査音で表現した場合）を示す図解図である。
【図２０】ＣＰＵ動作の一部（ゲーム画像処理）を示すフロー図である。
【図２１】ゲーム画像処理に含まれるダウジング画像処理を示すフロー図である。
【図２２】ダウジング画像処理に含まれる最優先対象決定処理を示すフロー図である。
【発明を実施するための形態】
【００５２】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ゲーム装置１２およびコントローラ１４を含む。図示は省略するが、この実施例のゲーム装置１２は、最大４つのコントローラ１４と通信可能に設計されている。また、ゲーム装置１２と各コントローラ１４とは、無線によって接続される。たとえば、無線通信は、ＭＰ(Multilink Protocol)またはＢｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【００５３】
ゲーム装置１２は、略直方体のハウジング１６を含み、ハウジング１６の前面にはディスクスロット１８が設けられる。ディスクスロット１８から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク２４が挿入されて、ハウジング１６内のディスクドライブ５４（図２参照）に装着される。図示は省略するが、ディスクスロット１８の周囲には、ＬＥＤと導光板とが配置され、様々な処理に応答させて、ディスクスロット１８を点灯または点滅させることが可能である。
【００５４】
また、ゲーム装置１２のハウジング１６の前面の上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１８の近傍には、外部メモリカード用コネクタカバー２２が設けられる。この外部メモリカード用コネクタカバー２２の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、外部メモリカード３８（以下、単に「メモリカード３８」という。）が挿入される。メモリカード３８は、光ディスク２４から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ、あるいは後述するリプレイデータ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード３８に対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカード３８は、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置１２では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカード３８には当該他のアプリケーションのデータを保存することができる。
【００５５】
なお、メモリカード３８としては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。メモリカード３８は、ゲーム装置１２と同様の構成を有する他のゲーム装置でも利用することができるので、ゲームデータをメモリカード３８を介して他のプレイヤに提供することもできる。
【００５６】
図１では省略するが、ゲーム装置１２のハウジング１６の後面には、ＡＶコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル２６を通してゲーム装置１２にモニタ２８およびスピーカ３０を接続する。このモニタ２８およびスピーカ３０は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル２６によって、ゲーム装置１２からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置１２からの音声信号が音声入力端子に入力される。したがって、カラーテレビ（モニタ）２８の画面上にたとえば３次元（３Ｄ）ビデオゲームの仮想３次元ゲーム画像が表示され、左右のスピーカ３０からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ２８の周辺（この実施例では、モニタ２８の上側）には、２つの赤外ＬＥＤ（マーカ）３２Ａおよび３２Ｂを備えるマーカ部３２が設けられる。このマーカ部３２は、電源線３２ｃを通してゲーム装置１２に接続される。したがって、マーカ部３２には、ゲーム装置１２から電源が供給される。これによって、マーカ３２Ａおよび３２Ｂは発光し、それぞれモニタ２８の前方に向けて赤外光を出力する。
【００５７】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００５８】
コントローラ１４は、詳細は後述されるが、第１の操作ユニットおよび第２の操作ユニットとして、それぞれが片手で把持可能な第１コントローラ３４および第２コントローラ３６を含む。第２コントローラ３６の後端から延びるケーブル３６ａの先端にはコネクタ３６ｂが設けられており、当該コネクタ３６ｂは、第１コントローラ３４の後端面に設けられるコネクタ３４ａ（図３、図５）に接続される。第２コントローラ３６において取得される入力データは、ケーブル３６ａを介して第１コントローラ３４に与えられる。第１コントローラ３４は、第１コントローラ３４自身の入力データと第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００５９】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザは電源スイッチ２０ａによってまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク２４を選択し、その光ディスク２４をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク２４に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置１２に入力を与えるためにコントローラ１４を操作する。たとえば操作部８２のどれかの操作ボタンを操作することによって、ゲームもしくは他のアプリケーションをスタートさせる。また、操作部８２に対する操作以外にも、コントローラ１４自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（仮想カメラの位置）を変化させることができる。
【００６０】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置１２の内部メモリ（フラッシュメモリ４４（図２参照））に記憶（インストール）しておき、当該内部メモリから実行するようにしてもよい。かかる場合には、光ディスク２４のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【００６１】
図２は図１実施例のゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１６内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００６２】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク２４からプログラムやテクスチャデータ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００６３】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ，ＤＳＰ(Digital Signal Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００６４】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画命令を実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。ただし、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００６５】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００６６】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３０から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００６７】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ２８およびスピーカ３０に出力される。したがって、ゲーム画面がモニタ２８に表示され、ゲームに必要な音（音楽）がスピーカ３０から出力される。
【００６８】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００６９】
入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続された他のゲーム装置やサーバ（いずれも図示せず）と通信することができる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、当該受信データをフラッシュメモリ４４に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ４２ａは、ネットワークに接続されたサーバからダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、そのダウンロードデータをフラッシュメモリ４４に記憶することもできる。
【００７０】
また、入出力プロセッサ４２ａは、コントローラ１４から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４０の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【００７１】
ただし、入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークを通すことなく直接的に、他のゲーム装置と通信することも可能である。
【００７２】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ１４とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカード３８のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００７３】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１６）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２には、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（「通常モード」と呼ぶこととする）が設定される。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２には、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）が設定される。
【００７４】
この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、ＣＰＵ４０がアプリケーションを実行することはない。
【００７５】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク２４が排出される。
【００７６】
図３には第１コントローラ３４の外観の一例が示される。図３（Ａ）は、第１コントローラ３４を上面後方から見た斜視図であり、図３（Ｂ）は、第１コントローラ３４を下面前方から見た斜視図である。第１コントローラ３４は、たとえばプラスチック成型によって形成されたハウジング８０を有している。ハウジング８０は、その前後方向（図３に示すＺ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング８０は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第１コントローラ３４を用いて、それに設けられたボタンを押下することと、第１コントローラ３４自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００７７】
ハウジング８０には、複数の操作ボタン（操作キー）が設けられる。すなわち、ハウジング８０の上面には、十字キー８２ａ、１ボタン８２ｂ、２ボタン８２ｃ、Ａボタン８２ｄ、−ボタン８２ｅ、メニューボタン８２ｆ、および＋ボタン８２ｇが設けられる。一方、ハウジング８０の下面には凹部が形成されており、当該凹部の後方側傾斜面にはＢボタン８２ｈが設けられる。これら各ボタン（スイッチ）８２ａ〜８２ｈには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング８０の上面には、遠隔からゲーム装置１２本体の電源をオン／オフするための電源スイッチ８２ｉが設けられる。第１コントローラ３４に設けられる各ボタン（スイッチ）は、包括的に参照符号８２を用いて示されることもある。
【００７８】
また、ハウジング８０の後面には、上述のコネクタ３４ａが設けられている。コネクタ３４ａは、たとえば３２ピンのエッジコネクタであり、第１コントローラ３４に他の機器を接続するために利用される。この実施例では、コネクタ３４ａには第２コントローラ３６のコネクタ３６ｂが接続される。また、ハウジング８０上面の後端側には複数のＬＥＤ８４が設けられ、この複数のＬＥＤ８４によって当該コントローラ１４のコントローラ番号（コントローラの識別番号）が示される。ゲーム装置１２には、たとえば最大４つのコントローラ１４が接続可能であり、ゲーム装置１２に複数のコントローラ１４が接続される場合には、各コントローラ１４には、たとえば接続順にコントローラ番号が付与される。各ＬＥＤ８４はコントローラ番号と対応付けられており、当該コントローラ番号に対応するＬＥＤ８４が点灯される。
【００７９】
また、第１コントローラ３４のハウジング８０内には加速度センサ８６（図５）が設けられている。加速度センサ８６としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ８６は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。具体的には、この実施例では、３軸加速度センサが適用され、第１コントローラ３４の上下方向（図３に示すＹ軸方向）、左右方向（図３に示すＸ軸方向）および前後方向（図３に示すＺ軸方向）の３軸方向のそれぞれで加速度を検知する。
【００８０】
なお、加速度センサ８６としては、ハウジング８０の形状または第１コントローラ３４の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか２方向の加速度を検出する２軸加速度センサが用いられてもよい。場合によっては１軸加速度センサが用いられてもよい。
【００８１】
さらに、コントローラ２２は、撮像情報演算部８８（図５参照）を有している。図３（Ｂ）に示すように、ハウジング８０の先端面には撮像情報演算部８８の光入射口９０が設けられ、光入射口９０からはセンサバー４４のマーカ４４ｍ、４４ｎの発する赤外線が取り込まれる。
【００８２】
図４には第２コントローラ３６の外観の一例が示される。図４（Ａ）は、第２コントローラ３６を上面後方から見た斜視図であり、図４（Ｂ）は、第２コントローラ３６を下面前方から見た斜視図である。なお、図４では、第２コントローラ３６のケーブル３６ａは省略されている。
【００８３】
第２コントローラ３６は、たとえばプラスチック成型によって形成されたハウジング９２を有している。ハウジング９２は、平面視では、前後方向（図４のＺ軸方向）に略細長い楕円形状を有し、後端側の左右方向（図４のＸ軸方向）の幅が先端側のそれよりも狭くされている。また、ハウジング９２は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング９２は、第１コントローラ３４と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向（Ｚ軸方向）の長さは、第１コントローラ３４のハウジング８０よりもやや短くされている。この第２コントローラ３６でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００８４】
ハウジング９２の上面の先端側には、アナログジョイスティック９４ａが設けられる。ハウジング９２の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向（図４に示すＹ軸方向）に並べて、Ｃボタン９４ｂおよびＺボタン９４ｃが設けられる。アナログジョイスティック９４ａおよび各ボタン９４ｂ，９４ｃには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第２コントローラ３６に設けられるアナログジョイスティック９４ａおよび各ボタン９４ｂ，９４ｃは、包括的に参照符号９４を用いて示されることもある。
【００８５】
また、第２コントローラ３６のハウジング９２内には加速度センサ９６（図５）が設けられている。この加速度センサ９６としては、第１コントローラ３４の加速度センサ８６と同様の加速度センサが適用される。具体的には、この実施例では３軸加速度センサが適用され、第２コントローラ３６の上下方向（図４に示すＹ軸方向）、左右方向（図４に示すＸ軸方向）および前後方向（図４に示すＺ軸方向）の３軸方向のそれぞれで加速度を検知する。
【００８６】
なお、図３に示した第１コントローラ３４および図４に示した第２コントローラ３６の形状や、ボタン（スイッチまたはスティック等）の形状、数および設置位置等は一例であり、他の形状、数および設置位置等に適宜変更され得る。
【００８７】
また、コントローラ１４の電源は、第１コントローラ３４内に取替可能に収容されるバッテリ（図示せず）によって与えられる。第２コントローラ３６には、コネクタ３４ａ、コネクタ３６ｂおよびケーブル３６ａを介してこの電源が供給される。
【００８８】
図５には、第１コントローラ３４と第２コントローラ３６とが接続されたときのコントローラ１４の電気的構成の一例が示される。第１コントローラ３４は、その内部に通信部９８を備え、通信部９８には、操作部８２、加速度センサ８６、撮像情報演算部８８およびコネクタ３４ａが接続される。操作部８２は、上述の操作ボタンないし操作スイッチ８２ａ‐８２ｉを示す。操作部８２が操作されると、その操作信号（キー情報）が通信部９８に与えられる。加速度センサ８６が検出した加速度を示すデータは、通信部９８へ出力される。加速度センサ８６は、たとえば最大２００フレーム／秒程度のサンプリング周期を有する。
【００８９】
撮像情報演算部８８が取得したデータもまた通信部９８に出力される。撮像情報演算部８８は、赤外線フィルタ１００、レンズ１０２、撮像素子１０４および画像処理回路１０６によって構成される。赤外線フィルタ１００は、第１コントローラ３４の前方の光入射口９０から入射する光から赤外線のみを通過させる。上述したように、モニタ３０の表示面近傍（周辺）に配置されるセンサバー４４のマーカ４４ｍおよび４４ｎは、モニタ３０の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ１００を設けることによってマーカ４４ｍおよび４４ｎの画像をより正確に撮像することができる。レンズ１０２は、赤外線フィルタ１００を透過した赤外線を集光して撮像素子１０４へ出射する。撮像素子１０４は、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ１０２によって集光された赤外線を撮像する。したがって、撮像素子１０４は、赤外線フィルタ１００を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子１０４によって撮像された画像を撮像画像と呼ぶ。撮像素子１０４によって生成された画像データは、画像処理回路１０６で処理される。画像処理回路１０６は、撮像画像内における撮像対象（マーカ４４ｍおよび４４ｎ）の位置を算出し、所定時間（たとえば１フレーム）毎に、当該位置を示す各座標値を含むマーカ座標データを通信部９８に出力する。なお、画像処理回路１０６における処理については後述する。
【００９０】
コネクタ３４ａには、第２コントローラ３６から延びるケーブル３６ａのコネクタ３６ｂが接続される。コネクタ３６ｂには、第２コントローラ３６の操作部９４および加速度センサ９６が接続される。操作部９４は、上述のアナログジョイスティック９４ａおよび操作ボタン９４ｂ、９４ｃを示す。操作部９４が操作されると、その操作信号がケーブル３６ａ、コネクタ３６ｂおよびコネクタ３４ａ等を介して通信部９８に与えられる。また、加速度センサ９６も、加速度センサ８６と同様のサンプリング周期を有しており、検出された加速度を示すデータを通信部９８に与える。
【００９１】
通信部９８は、マイクロコンピュータ（マイコン）１０８、メモリ１１０、無線モジュール７８およびアンテナ１１２を含む。マイコン１０８は、処理の際にメモリ１１０を記憶領域（作業領域やバッファ領域）として用いながら、無線モジュール７８を制御して、取得したデータをゲーム装置１２に送信したりゲーム装置１２からのデータを受信したりする。
【００９２】
第１コントローラ３４の操作部８２、加速度センサ８６および撮像情報演算部８８ならびに第２コントローラ３６の操作部９４および加速度センサ９６からマイコン１０８へ出力されたデータは、一時的にメモリ１１０に格納される。通信部９８からゲーム装置１２のＢｌｕｅｔｏｏｔｈ通信ユニット７６への無線送信は所定の周期毎に行われる。なお、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、第１コントローラ３４からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン１０８は、ゲーム装置１２への送信タイミングが到来すると、メモリ１１０に格納されている操作部８２および９４の操作データ、加速度センサ８６および９６の加速度データならびに撮像情報演算部８８のマーカ座標データを含むデータを、コントローラデータとして無線モジュール７８へ出力する。無線モジュール７８は、Ｂｌｕｅｔｏｏｔｈのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ１１２から放射する。つまり、コントローラデータは、無線モジュール７８で微弱電波信号に変調されて第１コントローラ３４から送信される。微弱電波信号はゲーム装置１２側のＢｌｕｅｔｏｏｔｈ通信ユニット７６で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置１２はコントローラデータを取得することができる。ゲーム装置１２のＣＰＵ４６は、コントローラ１４から取得したコントローラデータに基づいてゲーム処理を行う。
【００９３】
なお、加速度センサ８６および９６から出力される加速度の信号に基づいて、ゲーム装置１２のプロセッサ（例えばＣＰＵ４６）またはコントローラ１４のプロセッサ（例えばマイコン１０８）などのコンピュータが処理を行うことによって、コントローラ１４に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ８６および９６を搭載する第１コントローラ３４および第２コントローラ３６が静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサ８６および９６によって検出される加速度が重力加速度のみであるとして処理する場合）、第１コントローラ３４および第２コントローラ３６が現実に静的な状態であれば、検出された加速度に基づいて第１コントローラ３４および第２コントローラ３６の姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかをそれぞれ知ることができる。具体的には、加速度センサ８６および９６の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで、第１コントローラ３４および第２コントローラ３６がそれぞれ傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸加速度センサが適用される場合には、さらに各軸の加速度の信号に対して処理を施すことによって、第１コントローラ３４および第２コントローラ３６がそれぞれ重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ８６および９６からの出力に基づいて、コンピュータが第１コントローラ３４および第２コントローラ３６の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ８６および９６からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ８６および９６をコンピュータと組み合わせて用いることによって、第１コントローラ３４および第２コントローラ３６の傾き、姿勢または位置を判定することができる。
【００９４】
一方、加速度センサ８６および９６が動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサ８６および９６の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ８６および９６を備える第１コントローラ３４および第２コントローラ３６がユーザの手で動的に加速されて動かされる場合に、加速度センサ８６および９６によって生成される加速度信号を上記コンピュータによって処理することによって、第１コントローラ３４および第２コントローラ３６のさまざまな動きおよび／または位置を算出することができる。なお、加速度センサ８６および９６が動的な状態であることを前提とする場合であっても、加速度センサ８６および９６の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることが可能である。他の実施例では、加速度センサ８６および９６は、信号をマイコン１０８に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ８６および９６が静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００９５】
このゲームシステム１０では、ユーザがコントローラ１４を動かすことによってゲームに対する操作または入力を行うことができる。ゲームをプレイする際には、たとえば図６に示すように、ユーザは、その右手で第１コントローラ３４を持ち、その左手で第２コントローラ３６を持つ。上述のように、この実施例では、第１コントローラ３４には３軸方向の加速度を検出する加速度センサ８６が内蔵され、第２コントローラ３６にも同様の加速度センサ９６が内蔵されている。第１コントローラ３４および第２コントローラ３６がそれぞれユーザによって動かされると、加速度センサ８６および加速度センサ９６によって、それぞれのコントローラ自身の動きを示す加速度値が検出される。ゲーム装置１２では、当該検出された加速度値に応じてゲーム処理が実行され得る。
【００９６】
また、第１コントローラ３４には撮像情報演算部８８が設けられるので、ユーザは第１コントローラ３４をポインティングデバイスとして使用して操作を行うことができる。この場合、ユーザは、第１コントローラ３４の先端面（光入射口９０）がマーカ４４ｍおよび４４ｎの方を向く状態で第１コントローラ３４を把持する。ただし、図１から分かるように、マーカ４４ｍおよび４４ｎは、モニタ３０の画面の所定の１辺（上辺または下辺）の近傍に、当該所定の１辺に対して平行に配置されている。この状態で、ユーザは、第１コントローラ３４自体を動かして、第１コントローラ３４が指示する画面上の位置を変更したり、第１コントローラ３４と各マーカ４４ｍおよび４４ｎとの距離を変更したりすることによって、ゲーム操作を行うことができる。
【００９７】
図７は、マーカ４４ｍおよび４４ｎと第１コントローラ３４の視野角を説明するための図である。図７に示すように、マーカ４４ｍおよび４４ｎは、それぞれ、視野角αの範囲で赤外光を放射する。また、撮像情報演算部８８の撮像素子１０４は、第１コントローラ３４の視線方向（図３に示すＺ軸方向）を中心とした視野角βの範囲で入射する光を受光することができる。たとえば、マーカ４４ｍおよび４４ｎの視野角αは、共に３４°（半値角）であり、一方、撮像素子１０４の視野角βは４２°である。ユーザは、撮像素子１０４が２つのマーカ４４ｍおよび４４ｎからの赤外光を受光することが可能な位置および向きとなるように、第１コントローラ３４を把持する。具体的には、撮像素子１０４の視野角βの中に少なくとも一方のマーカ４４ｍまたは４４ｎが存在し、かつ、マーカ４４ｍおよび４４ｎの少なくとも一方の視野角αの中に第１コントローラ３４が存在する状態となるように、ユーザは第１コントローラ３４を把持する。この状態にあるとき、第１コントローラ３４は、マーカ４４ｍおよび４４ｎの少なくとも一方を検知することができる。ユーザは、この状態を満たす範囲で第１コントローラ３４の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ４４ｍおよび４４ｎのいずれか一方のみが検出される場合には、たとえば、直前の２つのマーカ４４ｍおよび４４ｎを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、第１コントローラ３４の指示位置を算出することができる。
【００９８】
なお、第１コントローラ３４の位置および向きがこの範囲外となった場合、第１コントローラ３４の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
【００９９】
操作可能範囲内で第１コントローラ３４が把持される場合、撮像情報演算部８８によってマーカ４４ｍおよび４４ｎの画像が撮像される。すなわち、撮像素子１０４によって得られる撮像画像には、撮像対象であるマーカ４４ｍおよび４４ｎの画像（対象画像）が含まれる。図８は、対象画像を含む撮像画像の一例を示す図である。対象画像４４ｍ’および４４ｎ’を含む撮像画像の画像データを用いて、画像処理回路１０６は、各マーカ４４ｍおよび４４ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【０１００】
撮像画像の画像データにおいて対象画像４４ｍ’および４４ｎ’は高輝度部分として現れるため、画像処理回路１０６は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路１０６は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、２つの対象画像（マーカ画像）４４ｍ’および４４ｎ’だけではなく、窓からの太陽光や部屋の蛍光灯の光等のような他の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ４４ｍおよび４４ｎの画像４４ｍ’および４４ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像４４ｍ’および４４ｎ’と他の画像との区別のために、撮像対象４４ｍおよび４４ｎは既知のものである必要があり、この実施例ではその大きさが予め決められるので、マーカ画像４４ｍ’および４４ｎ’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像４４ｍ’および４４ｎ’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【０１０１】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路１０６は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子１０４の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子１０４によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【０１０２】
なお、図８に示すように、撮像画像における位置は、撮像画像の左上を原点Ｏとし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（撮像画像のＸＹ座標系）で表現されるものとする。
【０１０３】
また、対象画像４４ｍ’および４４ｎ’が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路１０６は、算出された２箇所のマーカ座標を示すデータ、つまり、撮像対象の位置を示す撮像対象データを通信部９８に出力する。出力された撮像対象データ（マーカ座標データ）は、上述したように、マイコン１０８によってコントローラデータに含められて、ゲーム装置１２に送信される。
【０１０４】
ゲーム装置１２（ＣＰＵ４６）は、受信したコントローラデータからマーカ座標データを取得すると、このマーカ座標データに基づいて、モニタ３０の画面上における第１コントローラ３４の指示位置（指示座標）と、第１コントローラ３４からマーカ４４ｍおよび４４ｎまでの各距離とを算出することができる。なお、たとえば、第１コントローラ３４がモニタ３０の画面の左端を指示するとき、対象画像４４ｍ’および４４ｎ’は撮像画像の右側に検出され、第１コントローラ３４が画面の下端を指示するとき、対象画像４４ｍ’および４４ｎ’は撮像画像の上側に検出され、つまり、画面上の第１コントローラ３４の指示位置と逆側に撮像画像上のマーカ座標が検出される。したがって、第１コントローラ３４の指示位置の座標をマーカ座標から算出する際には、座標系が図８の撮像画像の座標系から画面上の位置を表すための座標系に適宜に変換される。
【０１０５】
なお、この実施例では、第１コントローラ３４で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをゲーム装置１２に送信するようにしている。しかし、他の実施例では、撮像データをコントローラデータとして第１コントローラ３４からゲーム装置１２に送信し、ゲーム装置１２のＣＰＵ４６が撮像データに所定の演算処理を行って、マーカ座標および指示位置の座標を検出するようにしてもよい。
【０１０６】
また、撮像画像における対象画像間の距離は、第１コントローラ３４と、マーカ４４ｍおよび４４ｎとの距離に応じて変化する。マーカ４４ｍおよび４４ｎ間の距離、撮像画像の幅、撮像素子１０４の視野角βが予め決まっているので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２は第１コントローラ３４とマーカ４４ｍおよび４４ｎとの間の現在の距離を算出することができる。
【０１０７】
なお、ゲームの操作の仕方は他の態様であってもよく、第１コントローラ３４のみを使ってゲームをするようにしてもよい。例えば、第１コントローラ３４を横向きに両手で持って操作するようなゲームであってもよい。
【０１０８】
以上のように構成されたゲームシステム１０で、この実施例の「ダウジングゲーム」をプレイするとき、モニタ２８には、たとえば図９〜図１２に示すようなゲーム画面が表示される。図９のゲーム画面は、仮想空間ＩＳに配置されたオブジェクト（Ｏｂ１，Ｏｂ２，…：１つ１つを区別する必要がない場合には単に“Ｏｂ”と記す場合もある）のうちダウジングによる探索の対象となるオブジェクト（以下“対象オブジェクト”または単に“対象”）Ｏｂｉを選択する画面であり、図１０〜図１２のゲーム画面は、対象オブジェクトＯｂｉをダウジングによって探索している画面である。
【０１０９】
最初、概要を説明する。図９〜図１２に共通して、ゲーム画面には、オブジェクトＯｂ１，Ｏｂ２，…が配置された仮想空間ＩＳを仮想カメラ（ＩＣ：図１４（Ａ）等を参照）から撮影した仮想空間画像が描画されている。仮想カメラＩＣは、ダウジングによる探索を行うプレイヤキャラクタの視点（主観視点）に相当する。このため、プレイヤキャラクタ自身の画像は、ゲーム画面には表示されない。
【０１１０】
一般に、ダウジングとは、地下水や鉱脈といった地下の埋蔵物を、簡単な器具たとえば棒や振り子などの動きによって見つける手法をいう。
【０１１１】
このダウジングゲームでは、プレイヤキャラクタが剣Ｓｗを用いてダウジングを行い、オブジェクトＯｂｉを探索する。ゲーム画面には、剣Ｓｗと、剣Ｓｗによるダウジングの結果（強さおよび方向）を示すポインタＰｎｔとが表示される。ダウジングの強さおよび方向は、剣Ｓｗを持つプレイヤキャラクタつまり仮想カメラＩＣとオブジェクトＯｂｉとの位置関係に応じて変化する。ポインタＰｎｔは、仮想カメラＩＣとオブジェクトＯｂｉとの間の位置関係を、たとえば図１７に示すような色および棘サイズの変化によって、視覚的に表現する。
【０１１２】
すなわち、この実施例の主要な特徴の１つは、仮想カメラＩＣとオブジェクトＯｂｉとの間の位置関係に応じて態様ここでは色および棘サイズが変化するようなポインタＰｎｔの画像を生成して、そのポインタ画像をゲーム画像上に描画する、ダウジング画像処理（図２１参照）にある。
【０１１３】
なお、オブジェクト（Ｏｂ１，Ｏｂ２，…）については、説明の便宜上、対象オブジェクトＯｂｉが図１１および図１２に点線で示されているが、地中に隠れたものを探すのがダウジングの目的なので、実際のゲーム画面では表示されない。
【０１１４】
ポインタＰｎｔは、剣Ｓｗを持つプレイヤキャラクタつまり仮想カメラＩＣと対象オブジェクトＯｂｉとの位置関係に応じて、図１０〜図１２のように変化する。図１０には、仮想カメラＩＣがオブジェクトＯｂｉから距離的／角度的に遠い場合が示されており、この状態でポインタＰｎｔは単なる白い円である。
【０１１５】
ここで、“距離的に遠い”オブジェクトとは、たとえばたとえば図１６（Ａ）に示されたオブジェクトＯｂ４のように、仮想カメラＩＣ（視点）からの距離（ｄ４）が閾値（ｄｍａｘ）よりも大きいオブジェクトをいい、“角度的に遠い”オブジェクトとは、オブジェクトＯｂ５のように、仮想カメラＩＣの光軸（視線）に対する角度（θ５）が閾値（θｍａｘ）よりも大きいオブジェクトをいう。
【０１１６】
その後、図１１，図１２に示されるように、仮想カメラＩＣと対象オブジェクトＯｂｉとの間の位置関係が所定範囲内（ｄｉ≦ｄｍａｘかつθｉ≦θｍａｘ）に入ると、ポインタＰｎｔには薄い青の着色および小さな棘が生じ、そして両者が距離的に接近して行くにつれて、青色の濃さが増しかつ棘のサイズが大きくなっていく。
【０１１７】
つまり、このダウジングゲームでは、剣Ｓｗは、仮想カメラＩＣと対象オブジェクトＯｂｉとの間の位置関係が所定範囲内に入ったとき、当該対象オブジェクトＯｂｉを検知して、ポインタＰｎｔの態様を単なる白い円から棘付きの青い円へと変化させ、さらに、所定範囲内では位置関係に応じて青色の濃さおよび棘のサイズを変化させる、ダウジング能力を備えている。
【０１１８】
したがって、プレイヤは、このようなポインタＰｎｔの変化を見ながら、プレイヤキャラクタつまり仮想カメラＩＣの位置を移動させたり、視線の向きつまり光軸方向を変えたりすることで、オブジェクトＯｂｉの凡その位置を推定することが可能になる。
【０１１９】
以下では、このような所定範囲、つまり剣Ｓｗによるダウジングで対象オブジェクトＯｂｉが検知される範囲（ｄｉ≦ｄｍａｘ，θｉ≦θｍａｘ）を、“検知範囲ＤＡ”と呼ぶ（図１６参照）。
【０１２０】
そして、この実施例の主要な特徴の他の１つは、検知範囲ＤＡを、図１４（Ａ）および図１５に示されるように、視点つまり仮想カメラＩＣの高さＨ（＝Ｈ１，Ｈ２，…）に応じて変化させる（設定する）点にある。
【０１２１】
次に、こうした特徴を中心に、詳細を説明する。仮想空間ＩＳの地面は、図１０に示されるように、平地ＬＧ、崖Ｃｌおよび谷Ｖｌなどで構成され、平地ＬＧの上には台Ｂｓが設置されている。仮想カメラＩＣつまりプレイヤキャラクタは、このような起伏のある地面さらには台Ｂｓの上（以下“表面”）を移動しながら、地面に埋められた金貨などのオブジェクト（Ｏｂ１，Ｏｂ２，…）を剣Ｓｗでダウジングする。このとき、視点つまり仮想カメラＩＣの高さは、たとえば図１４（Ａ）に示すように定義された表面Ｓｆに沿って変化する。
【０１２２】
図１４（Ａ）を参照して、この表面Ｓｆは、基準面ＲＬとその上に配置されるタグＴｇ１，Ｔｇ２，…によって、図１０に示した仮想空間ＩＳの表面を概略表現したものである。基準面ＲＬは、たとえば平原ＬＧに対応し、この高さを“０”とする。各タグＴｇ１，Ｔｇ２，…には、中心，半径および高さが記述される。したがって、各タグＴｇ１，Ｔｇ２，…は、崖Ｃｌ，谷Ｖｌにそれぞれ対応する円形の領域Ａ１，Ａ２，…とその高さＨ１，Ｈ２，…を表現している。なお、表面Ｓｆをこのように表現した情報が、図１３に表面高さ情報７８として示されている。
【０１２３】
一方、仮想カメラＩＣ（プレイヤキャラクタ）の位置および光軸方向（視線の向き）は、コントローラ１４（第１コントローラ３４および第２コントローラ３６）の操作に応じて制御される。ゲーム画面には、第１および第２コントローラのアイコン（３４および３６）ならびにそれぞれの機能を示すアイコンＩｃ１およびＩｃ２と、第２コントローラ３４の“−”ボタンに設定された機能を示すアイコンＳｈとが、仮想空間画像（ＩＳ）上に半透明表示される。
【０１２４】
アイコンＩｃ１は、第１コントローラ３４の向きに応じて仮想カメラＩＣの光軸方向が変化することを示す。アイコンＩｃ２は、第２コントローラ３４の操作によって仮想カメラＩＣの位置が変化することを示す。コントローラ３４の“−”ボタンに関連付けられたアイコンＳｈは、剣Ｓｗに特定種類のオブジェクトを検知するダウジング能力が与えられたことを示す。なお、このような第１コントローラ３４および第２コントローラ３６の間の機能分担は一例であり、適宜変更される。
【０１２５】
剣Ｓｗに与えるべきダウジング能力（検知可能なオブジェクトの種類）は、図９のゲーム画面を通じて任意に選択することができる。このゲーム画面では、金貨やアイテムといった各種のオブジェクトをそれぞれ示す８個のアイコンＳｈが提示されており、プレイヤがそのうち１つ（たとえば金貨を示すアイコンＳｈ）を選択すると、図１０〜図１２に示すように、その選択されたアイコンＳｈがコントローラ３４の“−”ボタンに関連付けられる。
【０１２６】
こうして、剣Ｓｗに金貨を検知するダウジング能力が与えられる。以降、プレイヤは、金貨を探したいとき“−”ボタンを押すことで、剣Ｓｗによるダウジングを行うことができる。なお、このようなボタン操作は一例であり、適宜変更される。
【０１２７】
ダウジング中、仮想カメラＩＣは、図１４（Ａ）に示した表面Ｓｆに沿って任意の方向に移動する。仮想カメラＩＣの高さＨ（図１４（Ｂ）参照）は、領域Ａ０〜Ａ２の間の境界を跨ぐタイミングで変化し、検知範囲ＤＡは、現時点での仮想カメラＩＣの高さＨに応じて、たとえば図１５に示すように変化する。
【０１２８】
すなわち、仮想カメラＩＣが領域Ａ０内に位置する（プレイヤキャラクタが平原ＬＧ上にいる）場合には、仮想カメラＩＣの高さＨは“０”であり、基準の検知範囲ＤＡとして“ｎｏｒｍａｌ”が用いられる。この後、仮想カメラＩＣが領域Ａ１内に入る（プレイヤキャラクタが崖Ｃｌに登る）と、仮想カメラＩＣの高さＨが“０”から“Ｈ１”に変化（増加）し、検知範囲ＤＡは“ｎｏｍａｌ”から“ｌｏｎｇ＆ｗｉｄｅ”に拡大する。一方、仮想カメラＩＣが領域Ａ２内に入る（プレイヤキャラクタが谷Ｖｌに降りる）と、仮想カメラＩＣの高さＨが“０”から“Ｈ２”に変化（減少）し、検知範囲ＤＡは“ｎｏｍａｌ”から“ｓｈｏｒｔ＆ｎａｒｒｏｗ”に縮小する。このように、仮想カメラの高さが高いときには、周囲をよく見通せるので、検知範囲を大きく設定し、仮想カメラの高さが低いときには、見通しが悪いので、検知範囲を小さく設定するといったことが可能になり、リアリティのある探索をプレイヤに提供することができる。
【０１２９】
なお、検知範囲ＤＡの初期値（これを“基本検知範囲”と呼ぶ）は、この実施例では“ｎｏｒｍａｌ”であるが、変形例では、検知対象の属性に応じて“ｌｏｎｇ＆ｗｉｄｅ”や“ｓｈｏｒｔ＆ｎａｒｒｏｗ”に設定してもよい。たとえば、検知対象が“動物”のように動くオブジェクトの場合、検知が難しいので、“ｌｏｎｇ＆ｗｉｄｅ”を初期値とすることで、対象を検知し易くしてゲームの難易度を適切に設定することができる。また、検知対象が“ダイヤモンド”のように希少なオブジェクトの場合、“ｓｈｏｒｔ＆ｎａｒｒｏｗ”を初期値とすることで、対象を検知し難くすることにより、探索できたときの達成感をプレイヤに与えることができる。代表的な属性としては、動き，希少性のほかに、大きさも挙げられる。例えば、大きい対象物ほど見つけやすいので、検知範囲を大きく設定する。このような属性に基づく検知範囲ＤＡの制御は、典型的には初期設定時に実行されるが、これ限らず、ダウジング中に適宜実行してもよい。
【０１３０】
また、検知範囲ＤＡの変化は、この実施例では距離ｄおよび角度θの両方に及ぶが、どちらか一方だけを変化させてもよい。さらには、距離ｄおよび角度θの両方を変化させるか、距離ｄだけを変化させるか、あるいは角度θだけを変化させるかを、検知対象の属性に基づいて決定してもよい。
【０１３１】
検知範囲ＤＡ内に検知対象が複数存在する場合には、そのうち１つが、たとえば図１６に示す手順に従って「最優先対象」に決定される。ここで最優先対象とは、ダウジングによる検知の強さが最大となる対象であり、剣Ｓｗは、最優先対象に反応する。したがって、ポインタＰｎｔは、仮想カメラＩＣと最優先対象との間の位置関係を視覚的に示す位置関係情報である。
【０１３２】
検知の強さは、仮想カメラＩＣと各対象との間の位置関係つまり距離ｄおよび角度θに基づいて計算される。計算にあたっては、角度θよりも距離ｄが優先される。検知範囲ＤＡ内の複数の対象のうち最優先対象がどれであるかは、当該対象間で、まず距離ｄについて大小を比較し、同一距離のものが存在する場合には、さらに角度θについて比較を行うことで、基本的には決定できる。ただし、２つの検知対象が光軸に対して線対称な位置にあるとき、例外的に同一距離かつ同一角度となるが、このような場合には、任意に一方を選択すればよい。
【０１３３】
たとえば、図１６（Ａ）に示されるように、仮想カメラＩＣの光軸（視線）の周辺に５個の検知対象（オブジェクトＯｂ１〜Ｏｂ５）が配置されている場合、まず、検知範囲ＤＡの外部に位置するオブジェクトＯｂ４，Ｏｂ５が候補から除外される（ｄ４＞ｄｍａｘ，θ５＞θｍａｘ）。検知範囲ＤＡ内のオブジェクトＯｂ１〜Ｏｂ３の間では、距離ｄの小さいオブジェクトＯｂ１，Ｏｂ２が優先され（ｄ１＝ｄ２＜ｄ３）、そして、同一距離であるオブジェクトＯｂ１，Ｏｂ２の間では、角度θの小さいオブジェクトＯｂ２が優先される（θ２＜θ１）。
【０１３４】
したがって、オブジェクトＯｂ２の検知の強さが最大なので、図１６（Ｂ）に示すように、最優先対象はオブジェクトＯｂ２に決定される。この決定結果は、ポインタＰｎｔを制御するための変数（対象Ｏｂｉ，距離ｄｉ，角度θｉ）に反映される（Ｏｂｉ←Ｏｂ２，ｄｉ←ｄ２，θｉ←θ２）。
【０１３５】
ポインタＰｎｔの態様は、仮想カメラＩＣと検知対象（Ｏｂｉ）との間の位置関係つまり距離ｄｉおよび／または角度θｉに基づいて制御される。この実施例では、ポインタＰｎｔの色および棘サイズが、主として距離ｄｉに基づいて、たとえば図１７に示すように制御される。色および棘サイズは、角度θｉには依存しない（ただしθｉ≦θｍａｘの場合）。
【０１３６】
ｄｉ＞ｄｍａｘつまり仮想カメラＩＣと対象オブジェクトＯｂｉが遠く離れている場合、ポインタＰｎｔは“白＆棘なし”の状態に固定される。なお、θｉ＞θｍａｘの場合にも、ポインタＰｎｔは“白＆棘なし”の状態に固定される。
【０１３７】
両者が接近してｄｉ＝ｄｍａｘとなると、それまで単なる白い円であったポインタＰｎｔは、薄い青色に変色し、小さな棘が生じる。ｄｉ＜ｄｍａｘの範囲では、距離ｄｉが小さくなるにつれて青色の濃さが増し、棘サイズも大きくなる。そして、このような変化は、連続的であっても、段階的であってもよい。
【０１３８】
ポインタＰｎｔの態様（色および棘サイズ）を段階的に変化させる場合、検知範囲ＤＡは、たとえば図１８に示すように、距離ｄｉに沿って複数の領域（ここでは３つの区間０＜ｄｉ≦２０，２０＜ｄｉ≦５０，５０＜ｄｉ≦１００にそれぞれ対応する３つの領域Ｂ１，Ｂ２，Ｂ３）に区切られる。
【０１３９】
なお、ここで示した区間数（３）や境界値（２０，５０，１００）は一例であり、ゲームの場面やオブジェクトＯｂｉの属性などに応じて適宜変更されてよい。また、境界値は、検知範囲ＤＡの広さが図１５に示したようにｓｈｏｒｔ＆ｎａｒｒｏｗ，ｎｏｒｍａｌおよびｌｏｎｇ＆ｗｉｄｅの間で変化するのに応じて、たとえば（１０，２５，５０），（２０，５０，１００）および（２００，５００，１０００）の間で変化する。この変化率０．５：１：１０もまた一例に過ぎず、適宜変更されてよい。また、検知範囲ＤＡの広さによって区間数を変えてもよい。さらには、検知範囲ＤＡを距離ｄｉおよび角度θｉの双方に沿って２次元的に（メッシュ状に）区分してもよい。
【０１４０】
こうして、まず、検知範囲ＤＡの内部（ｄｉ≦ｄｍａｘかつθｉ≦θｍａｘ）と外部（ｄｉ＞ｄｍａｘまたはθｉ＞θｍａｘ）とでポインタＰｎｔの色および棘の有無を異ならせ（“白＆棘なし”と“色付＆棘あり”）、さらに、検知範囲ＤＡの内部においては、距離ｄｉに応じて色の濃さおよび棘サイズを連続的または段階的に変化させることで、プレイヤキャラクタつまり仮想カメラＩＣと対象オブジェクトＯｂｉとの間の位置関係を視覚的に提示することができる。
【０１４１】
なお、位置関係は、ポインタＰｎｔを通じて視覚的に提示されるだけでなく、たとえば図１９に示すように、コントローラ１４本体の振動やスピーカ３０からの探査音を通じて、触覚的および／または聴覚的に提示されてもよい。具体的には、検知範囲ＤＡの外部では、振動は最弱に、探索音は遅い周期音「ピ・・・ピ・・・」に固定される。
【０１４２】
検知範囲ＤＡの外部から内部に入ったとき、振動は最弱から弱，中または強に、探索音は遅い周期音「ピ・・・ピ・・・」からゆっくりした周期音「ピ・ピ・ピ・」，中位の周期音「ピッピッピッ」または速い周期音「ピピピピピ」に変化する。振動および探索音がどの程度の強さおよび速さに変化するかは、検知範囲ＤＡ内に入った時点の距離ｄｉによる。たとえば、角度θｉがθｍａｘを跨いで減少したとき、ｄｉ＝５０であれば、振動は最弱から中に、探索音は遅い周期音「ピ・・・ピ・・・」から中位の周期音「ピッピッピッ」に変化する。なお、上では説明を省略したが、このときポインタＰｎｔに生じる変化は、“白＆棘なし”から“中位の青かつ中位の棘”への変化である。
【０１４３】
検知範囲ＤＡ内では、距離ｄｉが小さくなるにつれて、振動の強さ（振幅および／または周期）は弱→中→大のように増大し、探索音の周期は「ピ・ピ・ピ・」→「ピッピッピッ」→「ピピピピピ」のように速くなる。検知範囲ＤＡの内部から外部に出たときや、検知範囲ＤＡ内で距離ｄｉが大きくなる場合には、これらとは逆向きの変化が生じる。
【０１４４】
なお、探索音の周期を変化させるのに代えて、またはこれに加えて、ＬＥＤ８４の発光周期を変化させることも可能である。
【０１４５】
以上のような画像処理は、ＣＰＵ４０がシステムＬＳＩ４２と協働して、メインメモリ４２ｅおよび／または４６に記憶された図１３に示すようなプログラムおよび情報（各種のパラメータ，変数，入出力データ）に基づいて、図２０〜図２２に示すようなフローを実行することにより実現される。
【０１４６】
メインメモリ４２ｅおよび／または４６には、図１３に示すように、プログラム領域７０，パラメータ領域７６，変数領域８２，入力領域９２および出力領域９４が形成され、プログラム領域７０には、ゲームプログラム７２および入出力制御プログラム７４などが格納される。
【０１４７】
ゲームプログラム７２は、ＣＰＵ４０を介してゲーム装置１２のハードウェア全体（図２参照）を制御することによりダウジングゲームを実現するメインのソフトウェアである。ゲームプログラム７２には、図２０〜図２２のフローチャートに対応する画像処理プログラム７２ａがサブのソフトウェアとして含まれている。画像処理プログラム７２ａは、ゲームプログラム７２の制御下で入出力制御プログラム７４と協働して、上述したような画像処理を実現する。
【０１４８】
入出力制御プログラム７４は、主として入出力プロセッサ４２ａを介して、（後述する出力領域９４を経て）ＶＲＡＭ４２ｄに描画されたゲーム画像のモニタ２８への出力や、コントローラ１４から（後述する入力領域９２へ）のコントロールデータの入力を制御する。図示は省略するが、この入出力制御プログラム７４による処理は、図２０〜図２２の画像処理と同時並列に実行されている。
【０１４９】
パラメータ領域７６には、表面高さ情報７８およびオブジェクト情報８０が記憶される。表面高さ情報７８は、仮想空間ＩＳの表面（Ｓｆ：図１４（Ａ）参照）の高さを、基準面ＲＬ（高さ０）の上に配置されるタグＴｇ１，Ｔｇ２，…を用いて表現した情報である。タグＴｇ１には中心，半径および高さを示す情報が記述され、タグＴｇ２にも同様の情報が記述される。このようなタグＴｇ１，Ｔｇ２で定義される円形の領域Ａ１およびＡ２は、図１０の仮想空間ＩＳでは崖Ｃｌおよび谷Ｖｌに対応する。領域Ａ０は、基準面ＲＬから領域Ａ１，Ａ２，…を除いた残りの領域であり、図１０の仮想空間ＩＳでは平地ＬＧに対応する。
【０１５０】
なお、タグによって定義される領域は、楕円形，多角形といった円形以外の形状でもよいし、異なる形状を示す複数のタグを組み合わせれば、より複雑な凹凸を有する表面Ｓｆを表現することもできる。また、表面高さ情報７８は、タグによらず、ポリゴンやテクスチャなどの画像データに付加されてもよい。
【０１５１】
オブジェクト情報８０は、仮想空間ＩＳ内に配置される各オブジェクト（Ｏｂ１，Ｏｂ２，…）について、位置（Ｐ１，Ｐ２，…）および種類（金貨，アイテム，動物など）と、探索の対象であるか否かを示す対象フラグとを記述した情報である。対象フラグは、初期状態では全てＯＦＦであり、図９に示した選択画面による操作に応じて、種類毎にＯＮ／ＯＦＦが切り替えられる。たとえば、仮想空間ＩＳ内に３枚の金貨（Ｏｂ１〜Ｏｂ３）が隠されている場合、選択画面で金貨が選択されると、金貨に該当するオブジェクトＯｂ１〜Ｏｂ３それぞれの対象フラグがＯＦＦからＯＮに切り替わる。なお、検知対象の属性に応じて基本検知範囲を設定する場合には（図２１のステップＳ２０参照）、オブジェクトＯｂ１，Ｏｂ２，…それぞれの属性（たとえば動く／動かない）も記述される。
【０１５２】
変数領域８２には、基準位置情報８４、検知範囲情報８６、対象情報８８および位置関係情報９０が記憶される。基準位置情報８４は、図１４（Ｂ）に示したような、現時点での仮想カメラＩＣの位置（Ｐ）および高さ（Ｈ）を示す情報である。仮想カメラＩＣは、図１４（Ａ）に示したように、仮想空間ＩＳの表面Ｓｆ（図１４参照）に沿って移動するので、高さＨは、位置Ｐが領域Ａ０，Ａ１，Ａ２，…のどれに属するかに応じて、高さ０，Ｈ１，Ｈ２，…の間で変化する。
【０１５３】
検知範囲情報８６は、現時点でダウジングによる検知が可能な範囲を示す情報であり、具体的には、図１６（Ｂ）に示したような、仮想カメラＩＣを基点とするコーン型の検知範囲ＤＡを示す。検知範囲ＤＡは、距離ｄに関する閾値ｄｍａｘおよび角度θに関する閾値θｍａｘで定義される。閾値ｄｍａｘおよびθｍａｘには、図１５に示したように、仮想カメラＩＣの高さＨ（＝０，Ｈ１，Ｈ２）に応じた値がセットされる（ただし、Ｈ１は正の値、Ｈ２は負の値）。たとえば、Ｈ＝０のときｎｏｒｍａｌ用の値として１００ｍおよび１５度が、Ｈ＝Ｈ１のときｌｏｎｇ＆ｗｉｄｅ用の値として１０００ｍおよび２０度が、そしてＨ＝Ｈ２のときｓｈｏｒｔ＆ｎａｒｒｏｗ用の値として２０ｍおよび１０度がセットされる。なお、ここでは検知範囲ＤＡの広さを３段階に変化させているが、段階数は２でも４以上でもよい。また、閾値ｄｍａｘおよびθｍａｘの値も一例に過ぎず、適宜変更される。
【０１５４】
対象情報８８は、現時点でのダウジングの対象Ｏｂｉつまり剣Ｓｗが反応しているオブジェクトを示す情報であり、当該対象Ｏｂｉに関する距離（ｄｉ）および方向（θｉ）もこの中に記述される。ダウジング中、対象Ｏｂｉには、検知範囲ＤＡ内に検知対象がただ１つ存在する場合には当該単一の検知対象が、検知範囲ＤＡ内に検知対象が複数存在する場合には当該複数の検知対象の中から検知の強さに基づいて決定された最優先対象（図１６参照）が、それぞれセットされる。なお、検知範囲ＤＡ内に検知対象が１つも存在しなければ、“該当なし”が記述される。
【０１５５】
位置関係情報９０は、ポインタＰｎｔの態様、具体的には色および棘サイズを示す情報である。色および棘サイズは、図１７に示したように、主として距離ｄｉに応じて変化する（詳細は先述）。なお、位置関係情報９０には、ゲーム画面におけるポインタＰｎｔの位置および方向（図１１，図１２参照）を制御するための情報も付加される。
【０１５６】
入力領域９２には、コントローラ１４から入力されたコントローラデータが記憶される。出力領域９４には、ＶＲＡＭ４２ｄを経てモニタ２８に出力されるべきゲーム画像データが記憶される。
【０１５７】
なお、上述したようなパラメータ領域７６の記憶内容は、ダウジング開始時に設定される。変数領域８２，入力領域９２および出力領域９４の記憶内容は、ダウジング開始時に初期化され、ダウジング中は１フレーム毎に（たとえば１／６０秒周期で）更新される。
【０１５８】
ゲームプログラム７２が起動されると、ＣＰＵ４０は、最初、ステップＳ１で初期処理を実行する。初期処理では、ＶＲＡＭ４２ｄの初期化、初期ゲーム画像データの生成などが行われる。初期処理が完了すると、ＣＰＵ４０は、ステップＳ３からステップＳ５，Ｓ１１，Ｓ１５またはＳ１７を経てステップＳ３に戻る４通りのループ処理のいずれかを、１フレーム毎に実行する。
【０１５９】
ステップＳ３では、出力領域９４へのゲーム画像データの書き込みを行う。起動直後は、ステップＳ１で生成された初期ゲーム画像データが書き込まれる。出力領域９４に書き込まれたゲーム画像データは、入出力制御プログラム７４の制御下でＶＲＡＭ４２ｄに転送され、これに基づくゲーム画像がモニタ２８に表示される。
【０１６０】
ステップＳ５では、入力領域９２へのコントローラデータの入力があったか否かを判別し、ＮＯであればステップＳ３に戻って、次フレームのタイミングでゲーム画像データの書き込みを行う。ステップＳ５でＹＥＳであれば、ステップＳ７に進み、コントローラデータに終了指示が含まれているか否かを判別する。ステップＳ７でＹＥＳであれば、このダウジングゲームを終了する。
【０１６１】
ステップＳ７でＮＯであれば、ステップＳ９に進んで、現在の場面がダウジング場面か否かを判別する。なお、現在の場面に関する情報は、ゲームプログラム７２の管理下にあり、ステップＳ９の判別では、この情報が参照される。ステップＳ９でＮＯ、つまり現在の場面がダウジング以外の場面であれば、ステップＳ１１で他の画像処理を実行した後、ステップＳ３に戻って上記と同様の処理を繰り返す。今回のステップＳ３では、ステップＳ１１の画像処理を経た後のゲーム画像データが出力領域９４に書き込まれ、これに基づいて、ＶＲＡＭ４２ｄの記憶内容ひいてはモニタ２８の表示内容が更新される。
【０１６２】
ステップＳ９でＹＥＳつまり現在の場面がダウジング場面であれば、ステップＳ１３に進んで検知対象は選択済みか否かを判別し、ここでＮＯであればステップＳ１５に進む。ステップＳ１５では、対象選択用画像を生成してゲーム画像上に描画する。これにより、モニタ２８には、図９に示したような対象選択のためのゲーム画面が表示される。このゲーム画面には、金貨やアイテムといった各種のオブジェクトをそれぞれ示す８個のアイコンＳｈが描画されている。その後、ステップＳ３に戻って上記と同様の処理を繰り返す。このような、ステップＳ３〜Ｓ９，Ｓ１３およびＳ１５からなるループ処理は、コントローラ１４でいずれかのアイコンが選択されるまで繰り返し実行される。
【０１６３】
図９のゲーム画面でいずれかのアイコンＳｈを選択する操作が行われると、その選択結果が入力領域９２のコントローラデータに反映され、ステップＳ１３の判別結果がＮＯからＹＥＳに変化する。ステップＳ１３でＹＥＳであれば、現時点がダウジング場面の開始時点か否かの判別をステップＳ１６ａで行い、ここでＮＯであればステップＳ１７に進む。
【０１６４】
ステップＳ１６ａでＹＥＳであれば、ステップＳ１６ｂで、パラメータ設定および変数初期化を行い、結果を表面高さ情報７８およびオブジェクト情報８０としてパラメータ領域７６に書き込む。オブジェクト情報８０に含まれる対象フラグは、選択されたアイコンＳｈ（たとえば金貨）に該当するオブジェクト（１つまたは複数）についてＯＮされ、その他のオブジェクトについてはＯＦＦされる。その後、ステップＳ１７に進む。
【０１６５】
ステップＳ１７では、ダウジング画像処理（図２１および図２２参照）を実行する。詳細は後述するが、ダウジング画像処理では、パラメータ領域７６および変数領域８２の記憶内容に基づいて、ダウジングの結果を示すポインタＰｎｔの画像を生成し、生成したポインタ画像（Ｐｎｔ）をゲーム画像上に描画する、一連の処理が実行される。その後、ステップＳ３に戻って上記と同様の処理を繰り返す。
【０１６６】
これにより、図１０〜図１２に示したようなゲーム画面がモニタ２８に表示される。このゲーム画面では、対象オブジェクトＯｂｉが地中に隠されており、剣Ｓｗでダウジングを行うプレイヤキャラクタ（仮想カメラＩＣ）の位置Ｐは、コントローラ１４の操作に応じて移動する。ゲーム画面上のポインタ画像（Ｐｎｔ）は、このようなプレイヤキャラクタ（仮想カメラＩＣ）と対象オブジェクトＯｂｉとの位置関係（図１４（Ｂ）参照）を示している。
【０１６７】
このような、ステップＳ３〜Ｓ９，Ｓ１３，Ｓ１６ａ，Ｓ１６ｂおよびＳ１７からなるループ処理は、コントローラ１４で終了処理が行われるまで（もしくはゲームオーバーなど図示しない終了イベントが発生するまで）、繰り返し実行される。
【０１６８】
上記ステップＳ１７のダウジング画像処理は、詳しくは、図２１および図２２に示すフローに従って実行される。まず図２１を参照して、最初、ステップＳ２１で仮想カメラＩＣが移動したか否かを入力領域９２のコントローラデータに基づいて判別し、ＮＯであればステップＳ２９に進む。ステップＳ２１でＹＥＳであれば、ステップＳ２３で変数領域８２の基準位置情報８４を更新する。
【０１６９】
具体的には、まず位置Ｐ（図１４（Ｂ）参照）を最新の値に更新し、次に、表面高さ情報７８を参照して、更新後の位置Ｐが属する領域（Ａ０，Ａ１，Ａ２，…のいずれか）を特定し、特定結果に対応する高さ（たとえばＡ１に対応するＨ１）を取得し、そして高さＨを取得値により更新する。したがって、この実施例では、基準位置情報８４に記述された高さＨが変化するのは、仮想カメラＩＣが領域Ａ０，Ａ１，Ａ２，…の間の境界を跨いで移動した場合に限られる。その後、ステップＳ２５に進む。
【０１７０】
ステップＳ２５では、高さＨは変化したか否かを判別し、ＮＯであればステップＳ２９に進む。ステップＳ２５でＹＥＳであれば、ステップＳ２７で変数領域８２の検知範囲情報８６を更新する。具体的には、図１５に示したような３通りの組み合わせ（ｎｏｒｍａｌ，ｌｏｎｇ＆ｗｉｄｅ，ｓｈｏｒｔ＆ｎａｒｒｏｗ）の中から、高さＨに対応するｄｍａｘおよびθｍａｘ（たとえばＨ１に対応するｌｏｎｇ＆ｗｉｄｅ）を選択して、検知範囲情報８６に記述された前回の選択値を今回の選択値で更新する。その後、ステップＳ２９に進む。
【０１７１】
なお、ステップＳ２１の直前に、検知対象の属性に応じて基本検知範囲を設定するステップＳ２０を追加してもよい。ステップＳ２０は、ダウジング画像処理の開始直後に１回だけ実行される。その後に毎フレーム実行されるステップＳ２７での高さＨに応じた検知範囲ＤＡの拡大／縮小は、ステップＳ２０で設定した基本検知範囲を初期値として実行される。オブジェクト情報８０（図１３参照）には、オブジェクトＯｂ１，Ｏｂ２，…それぞれの属性がさらに記述されており、設定にあたっては、このオブジェクト情報８０に記述された属性が参照される。図１３の例では、対象フラグがＯＮであるオブジェクト（Ｏｂ１，Ｏｂ２）の属性は“動かない”なので、基本検知範囲はｎｏｍａｌに設定される。
【０１７２】
ステップＳ２９では、検知範囲ＤＡ内に検知対象（対象フラグがＯＮであるオブジェクト）が存在するか否かをオブジェクト情報８０，基準位置情報８４および検知範囲情報８６に基づいて判別する。ここでＮＯであれば、ステップＳ３１で位置関係情報９０に“白＆棘なし”を書き込んだ後、ステップＳ４３に進む。
【０１７３】
ステップＳ２９でＹＥＳであれば、ステップＳ３３に移って、検知範囲ＤＡ内に存在する検知対象は単一か否かをさらに判別し、ＹＥＳであればステップＳ３７に進む。ステップＳ３３でＮＯであれば、ステップＳ３５で最優先対象を決定した後、ステップＳ３７に進む。ステップＳ３５の最優先対象決定処理は、たとえば図２２のフローに従って実行される。
【０１７４】
ここで図２２を参照して、最初、ステップＳ５１で変数ｉに初期値“１”をセットし、複数の検知対象の中から一つの検知対象を選択する。次に、ステップＳ５３で選択した検知対象との間の距離ｄｉは各検知対象との間の距離の中で最小値か否かを判別する。そして、ステップＳ５３でＹＥＳであればステップＳ５５に、ＮＯであればステップＳ６１にそれぞれ進む。
【０１７５】
ステップＳ５５では、距離ｄｉと同じ値が他に存在するか否かをさらに判別する。ステップＳ５５でＹＥＳであればステップＳ５７に、ＮＯであればステップＳ５９にそれぞれ進む。
【０１７６】
ステップＳ５７では、選択した検知対象の角度θｉの方がステップＳ５５で判別された他の検知対象の角度より大きいか否かをさらに判別する。ステップＳ５７でＹＥＳであればステップＳ６１に、ＮＯであればステップＳ５９にそれぞれ進む。
【０１７７】
ステップＳ５９では、当該対象Ｏｂｉを最優先対象に決定し、その後、上位のフロー（図２１参照）に戻る。ステップＳ６１では、変数ｉをインクリメントした後、ステップＳ５３に戻って上記と同様の処理を繰り返す。すなわち、他の検知対象を選択して、最優先対象か否かを判別する処理を繰り返す。
【０１７８】
したがって、たとえば、図１６に示したように、検知範囲ＤＡ内に３つの検知対象（Ｏｂ１〜Ｏｂ３）が存在する場合、ステップＳ５１でｉ＝１とした後、ステップＳ５３で、距離ｄ１はｄ１〜ｄ３のうち最小値か否かが判別される。図１６の例では、ｄ１＝ｄ２＜ｄ３であり、距離ｄ１は最小値なので、ステップＳ５３の判別結果はＹＥＳとなる。よって、ステップＳ５５に進み、ｄ１と同じ値の有無が次に判別される。
【０１７９】
図１６の例では、ｄ１＝ｄ２なので、ステップＳ５５の判別結果はＹＥＳとなる。よって、ステップＳ５７に進み、θ１がθ２よりも大きいか否かがさらに判別される。図１６の例では、θ１＞θ２なので、ステップＳ５７の判別結果はＹＥＳとなる。よって、ステップＳ６１でｉ＝２とした後、再びステップＳ５３以下の処理が実行される。
【０１８０】
ｄ２＝ｄ１＜ｄ３なので、ステップＳ５３の判別結果は今回もＹＥＳとなり、ステップＳ５５の判別結果もまたＹＥＳとなる。しかし、θ２＜θ１なので、ステップＳ５７の判別結果はＮＯとなり、当該対象Ｏｂ２が最優先対象に決定される。
【０１８１】
なお、図１６の例において、仮にｄ１＝ｄ２＜ｄ３かつθ１＝θ２であったとすると、ｉ＝１の段階でステップＳ５７の判別結果がＮＯとなり、当該対象Ｏｂ１が最優先対象に決定される。つまり、先に検討された方が最優先対象となる。
【０１８２】
図２１に戻って、ステップＳ３７では、当該対象Ｏｂｉ（これは、検知範囲ＤＡ内にただ１つの検知対象しか存在しない場合にはその単一の対象であり、複数の検知対象が存在する場合にはステップＳ３５で決定された最優先対象である）と、その距離ｄｉおよび方向θｉとを対象情報８８に書き込む。次のステップＳ３９では、対象情報８８に基づいて当該対象Ｏｂｉに対する検知の強さを計算する。そしてステップＳ４１で、検知の強さに応じた色および棘サイズを計算し、計算結果を位置関係情報９０に書き込む。その後、ステップＳ４３に進む。なお、検知の強さおよび検知の強さに応じた色および棘サイズの計算方法については、先に説明したので省略する。
【０１８３】
ステップＳ４３では、位置関係情報９０に基づいて、ポインタ画像（Ｐｎｔ）をゲーム画像上に描画する。その際、ポインタ画像（Ｐｎｔ）の描画位置（さらには仮想カメラＩＣの位置）は、第１コントローラ３４の方向に基づいて制御される。また、ポインタＰｎｔの方向についても、棘が当該対象Ｏｂｉを指すように制御される。なお、これらの制御については、この実施例の主要な特徴ではないので、詳しい説明は省略する。その後、上位のフロー（図２０参照）に戻る。こうしてポインタ画像（Ｐｎｔ）の描画処理が施されたゲーム画像データは、次回のステップＳ３で出力領域９４に書き込まれ、これに基づくゲーム画面がモニタ２８に表示される。
【０１８４】
以上から明らかなように、この実施例のゲームシステム１０では、ゲーム装置１２のＣＰＵ４０は、オブジェクト（対象Ｏｂｉ）が配置された仮想空間ＩＳを仮想カメラＩＣから撮影したゲーム画像をメインメモリ４２ｅ，４６の出力領域９４に書き込み（Ｓ３）、所定の基準位置たとえば仮想カメラＩＣの位置（Ｐ）とオブジェクトの配置位置（Ｐｉ）との位置関係を示す位置関係情報（ポインタＰｎｔの画像）を、出力領域９０に記憶されたゲーム画像上に描画する（Ｓ４３）。そして、この位置関係情報（Ｐｎｔ）を、仮想カメラＩＣの基準面ＲＬからの高さＨや、オブジェクトに設定された属性（動く／動かない）といった条件に応じて変化させる（Ｓ２９，Ｓ３１，Ｓ４１）。こうして、位置関係情報を条件に応じて変化させることで、位置関係情報の報知を、基準位置の状況やオブジェクトの属性に応じて動的に行うことができる。したがって、ゲーム設計の自由度が高まる。
【０１８５】
また、ＣＰＵ４０は、オブジェクトの存在を検知可能な検知範囲ＤＡ（θｍａｘ，ｄｍａｘ）を設定し、この検知範囲ＤＡを少なくとも高さＨに応じて変化させる（Ｓ２０〜Ｓ２７）。位置関係情報は、オブジェクトの配置位置が基準位置に対して範囲内か否かを少なくとも示す。
【０１８６】
また、検知範囲ＤＡは、基準位置からの距離（ｄｍａｘ）と方向（θｍａｘ）に基づいて設定され、高さＨの示す値が大きいほど拡大される（図１５参照）。
【０１８７】
また、位置関係情報はオブジェクトの検知の強さを示し、検知範囲ＤＡは、当該範囲内で検知の強さが段階的に変化するように複数領域（Ｂ１〜Ｂ３）に分割される。
【０１８８】
また、ＣＰＵ４０は、基準位置からオブジェクトの配置位置までの距離（ｄｉ）と方向（θｉ）に基づいて検知の強さを計算し（Ｓ３９）、オブジェクトの配置位置が基準位置に対して範囲内である場合には、計算結果に基づいて位置関係情報を変化させる。そして、計算は、方向よりも距離を優先して行う。具体的には、距離に基づいて計算を行い、距離が等しい場合に方向を考慮するが、これに限らず、たとえば、方向よりも距離に重み付けをした計算式で計算を行ってもよい。
【０１８９】
また、範囲内に複数のオブジェクト（Ｏｂ１，Ｏｂ２，…）が存在する場合、ＣＰＵ４０は、基準位置から各オブジェクトまでの距離（ｄ１，ｄ２，…）と方向（θ１，θ２，…）に基づいて最優先オブジェクト（Ｏｂｉ）を決定する（Ｓ３５）。位置関係情報は、最優先オブジェクトとの関係を示す。この決定もまた、方向よりも距離を優先して行われる。具体的には、距離に基づいて決定を行い、距離が等しい場合に方向を考慮するが、これに限らず、たとえば、方向よりも距離に重み付けをしたアルゴリズムに従って決定を行ってもよい。
【０１９０】
また、検知範囲ＤＡは、オブジェクトが動く場合にも拡大される（Ｓ２０）。好ましくは、動きが大きい（素早い）オブジェクトほど広くする。属性にサイズに関する情報を含め、オブジェクトのサイズが大きい場合に検知範囲ＤＡを拡大して見つけ易くしてもよい。好ましくは、サイズが大きいオブジェクトほど広くする。属性に希少性に関する情報を含め、オブジェクトの希少性が高い場合に検知範囲ＤＡを縮小して見つけ難くしてもよい。好ましくは、希少性が高いオブジェクトほど狭くする。
【０１９１】
また、以下のような各変形例も可能である。
【０１９２】
検知範囲ＤＡは、この実施例では、仮想カメラＩＣの高さＨつまり表面Ｓｆの局所的な高さ（Ｈ１，Ｈ２，…）に応じて変化するが（図１４（Ａ）参照）、これに限らず、エリア（ステージ）全体で変化させてもよい。例えば、空や海のエリアでは、地上エリアよりも範囲が大きくなるように設定することによって、広大なエリアでもオブジェクトを探しやすくすることができる。
【０１９３】
検知範囲ＤＡは、仮想カメラＩＣを基準にしたが、剣Ｓｗを基準にしてもよい。
【０１９４】
仮想カメラＩＣからオブジェクトＯｂｉまでの距離ｄｉは、光軸方向に沿う距離成分で表現したが、両者を結ぶ線分の長さで表現してもよい。
【０１９５】
表面Ｓｆの局所的な高さＨ１，Ｈ２，…は、表面高さ情報７８の中に、地図（基準面ＲＬ）上に配置されるタグＴｇ１，Ｔｇ２，…（図１３，図１４（Ａ）参照）と関連付けて記述したが、ゲーム画像データ（たとえばポリゴンやテクスチャのデータ）に埋め込んでもよい。または、地図を複数の領域に分割して、各領域に高さを設定してもよい。
【０１９６】
以上では、画像処理を実行するゲーム装置１２およびこれを含むゲームシステム１０について説明したが、この発明は、他のゲーム装置ないしゲームシステム、さらには、画像処理装置ないし画像処理システムにも適用できる。ゲームシステムないし画像処理システムでは、画像処理は、複数のコンピュータ等によって分散して実行されてよい。
【符号の説明】
【０１９７】
１０  …ゲームシステム
１２  …ゲーム装置
１４  …コントローラ
２８  …モニタ
３４，３６  …第１，第２コントローラ
４０  …ＣＰＵ
４２ａ  …入出力プロセッサ
４２ｅ  …内部メインメモリ
４２ｄ  …ＶＲＡＭ
４６  …外部メインメモリ
【図１】
0005758202.tif 000002
【図２】
0005758202.tif 000003
【図３】
0005758202.tif 000004
【図４】
0005758202.tif 000005
【図５】
0005758202.tif 000006
【図６】
0005758202.tif 000007
【図７】
0005758202.tif 000008
【図８】
0005758202.tif 000009
【図９】
0005758202.tif 000010
【図１０】
0005758202.tif 000011
【図１１】
0005758202.tif 000012
【図１２】
0005758202.tif 000013
【図１３】
0005758202.tif 000014
【図１４】
0005758202.tif 000015
【図１５】
0005758202.tif 000016
【図１６】
0005758202.tif 000017
【図１７】
0005758202.tif 000018
【図１８】
0005758202.tif 000019
【図１９】
0005758202.tif 000020
【図２０】
0005758202.tif 000021
【図２１】
0005758202.tif 000022
【図２２】
0005758202.tif 000023