(57)【特許請求の範囲】
【請求項１】
プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を単位時間毎に画面に表示する情報処理装置のコンピュータに実行させる情報処理プログラムであって、
前記仮想空間内における所定領域の外にいる前記命令対象オブジェクトを前記単位時間毎に検出する領域外オブジェクト検出ステップと、
前記領域外オブジェクト検出ステップにおいて前記所定領域外にいる前記命令対象オブジェクトが検出されたとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを前記画面内に表示する代替アイコン表示ステップと、
前記単位時間毎に操作装置から操作データを取得し、当該操作データから当該操作装置によって指し示される前記画面上の指示位置を算出するポインティング位置算出ステップと、
前記代替アイコンに対して第１の操作が行われたことを前記操作データから検出する第１操作検出ステップと、
前記第１操作検出ステップにおいて第１の操作が検出された後、第２の操作が行われたことを前記操作データから検出する第２操作検出ステップと、
前記第２操作検出ステップにおいて前記第２の操作が検出されたときの前記指示位置に基づいて、前記第１の操作が行われた前記代替アイコンに対応づけられている命令対象オブジェクトに所定の動作を実行させる動作実行ステップとを前記コンピュータに実行させる、情報処理プログラム。
【請求項２】
前記領域外オブジェクト検出ステップは、前記画面に表示される領域を前記所定の領域として前記検出を行う、請求項１に記載の情報処理プログラム。
【請求項３】
前記動作実行ステップは、前記第１の操作が行われた前記代替アイコンに対応づけられている命令対象オブジェクトを前記指示位置に対応する前記仮想空間内の位置に移動させる、請求項１に記載の情報処理プログラム。
【請求項４】
前記動作実行ステップは、前記指示位置に対応する前記仮想空間内の位置に存在するオブジェクトに対する所定の動作を前記命令対象オブジェクトに実行させる、請求項１に記載の情報処理プログラム。
【請求項５】
前記代替アイコン表示ステップは、前記画面上において前記代替アイコンに対応づけられている命令対象オブジェクトに最も近い位置に当該代替アイコンを表示する、請求項１に記載の情報処理プログラム。
【請求項６】
前記代替アイコン表示ステップは、前記代替アイコンを複数表示するときは、各代替アイコン同士が交差して表示されないように表示位置を調整して表示する、請求項５に記載の情報処理プログラム。
【請求項７】
前記情報処理プログラムは、前記第１の操作が検出されてから前記第２の操作が検出されるまでの間、当該第１の操作が行われた前記代替アイコンに対応づけられている命令対象オブジェクトと前記指示位置に対応する仮想空間内の地点とを結ぶ線を生成して画面に表示する、線表示ステップを更に実行させる、請求項１に記載の情報処理プログラム。
【請求項８】
前記線表示ステップは、前記代替アイコンまたは当該代替アイコンに対応づけられている命令対象オブジェクトと前記指示位置に対応する仮想空間内の位置との間の距離に関する情報を表示する、請求項７に記載の情報処理プログラム。
【請求項９】
前記操作装置は、少なくとも一つのキーを備え、
前記第１操作検出ステップは、前記代替アイコンのいずれかと前記指示位置とが重なっている状態で前記キーのうち所定のキーが押下されたことを前記第１の操作として前記操作データに基づいて検出し、
前記第２操作検出ステップは、前記第１の操作として検出された所定のキーの押下状態が解放されたことを前記第２の操作として前記操作データに基づいて検出する、請求項１に記載の情報処理プログラム。
【請求項１０】
前記操作装置は、撮像対象を撮像するための撮像手段を備え、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータ、の少なくともいずれかが含まれ、
前記ポインティング位置算出ステップは、前記操作装置から取得された前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータのいずれかから指示位置を算出する、請求項１に記載の情報処理プログラム。
【請求項１１】
前記操作装置はアナログ方式の方向指示デバイスであるアナログスティックを備え、
前記情報処理プログラムは、前記アナログスティックの指示方向に応じて前記画面をスクロールさせるためのスティックスクロールステップを更に実行させる、請求項１に記載の情報処理プログラム。
【請求項１２】
前記プログラムは、前記指示位置が前記画面の上下左右の端を含む所定の領域内に重なったか否かを判定し、重なっているときは当該重なっている端の方向に応じて画面をスクロールさせる画面端スクロールステップを更に実行させる、請求項１に記載の情報処理プログラム。
【請求項１３】
前記代替アイコン表示ステップは、前記代替アイコンに対応する前記命令対象オブジェクトの状態を示すパラメータに基づいた情報を当該代替アイコンに付随して表示する、請求項１に記載の情報処理プログラム。
【請求項１４】
前記仮想空間には、前記命令対象オブジェクトに対応づけられている少なくとも一つの関連オブジェクトが存在し、
前記動作実行ステップは、前記命令対象オブジェクトと共に前記関連オブジェクトに対しても前記所定の動作を実行させる、請求項１に記載の情報処理プログラム。
【請求項１５】
前記代替アイコン表示ステップは、前記命令対象オブジェクトに対応づけられている前記関連オブジェクトの数に関する情報を前記代替アイコンに付随して表示する、請求項１４の情報処理プログラム。
【請求項１６】
前記情報処理プログラムは、前記第１の操作が検出されたとき、当該第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトが画面内に表示されている当該命令対象オブジェクト以外のオブジェクトに対して行うことができる行動を示す行動情報表示を当該命令対象オブジェクト以外のオブジェクトに重ねて表示する行動情報表示ステップを更に実行させる、請求項１に記載の情報処理プログラム。
【請求項１７】
プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を単位時間毎に画面に表示する情報処理装置であって、
前記単位時間毎に操作装置から操作データを取得し、当該操作データから当該操作装置によって指し示される前記画面上の指示位置を算出するポインティング位置算出手段と、
前記仮想空間内における所定領域の外にいる前記命令対象オブジェクトを前記単位時間毎に検出する領域外オブジェクト検出手段と、
前記領域外オブジェクト検出手段が前記所定領域外にいる前記命令対象オブジェクトを検出したとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを前記画面内に表示する代替アイコン表示手段と、
前記代替アイコンに対して第１の操作が行われたことを検出する第１操作検出手段と、
前記第１操作検出手段が第１の操作を検出した後、前記第１の操作とは異なる操作である第２の操作が行われたことを検出する第２操作検出手段と、
前記第２操作検出手段が前記第２の操作を検出したときの前記指示位置に基づいて、前記第１の操作が行われた前記代替アイコンに対応づけられている命令対象オブジェクトに所定の動作を実行させる動作実行手段とを備える、情報処理装置。
【請求項１８】
前記領域外オブジェクト検出手段は、前記画面に表示される領域を前記所定の領域として前記検出を行う、請求項１７に記載の情報処理装置。
【請求項１９】
前記動作実行手段は、前記第１の操作が行われた前記代替アイコンに対応づけられている命令対象オブジェクトを前記指示位置に対応する前記仮想空間内の位置に移動させる、請求項１７に記載の情報処理装置。
【請求項２０】
前記動作実行手段は、前記指示位置に対応する前記仮想空間内の位置に存在するオブジェクトに応じた動作を前記命令対象オブジェクトに実行させる、請求項１７に記載の情報処理装置。
【請求項２１】
前記代替アイコン表示手段は、前記代替アイコンを前記画面上において当該代替アイコンに対応づけられている命令対象オブジェクトに最も近い位置に表示する、請求項１７に記載の情報処理装置。
【請求項２２】
前記代替アイコン表示手段は、前記代替アイコンを複数表示するときは、各代替アイコン同士が交差して表示されないように表示位置を調整して表示する、請求項２１に記載の情報処理装置。
【請求項２３】
前記情報処理装置は、前記第１の操作が検出されてから前記第２の操作が検出されるまでの間、当該第１の操作が行われた前記代替アイコンに対応づけられている命令対象オブジェクトと前記指示位置に対応する仮想空間内の地点とを結ぶ線を生成して画面に表示する、線表示手段を更に備える、請求項１７に記載の情報処理装置。
【請求項２４】
前記線表示手段は、前記代替アイコンまたは当該代替アイコンに対応づけられている命令対象オブジェクトと前記指示位置に対応する仮想空間内の位置との間の距離に関する情報を表示する、請求項２３に記載の情報処理装置。
【請求項２５】
前記操作装置は、少なくとも一つのキーを備え、
前記第１操作検出手段は、前記代替アイコンのいずれかと前記指示位置とが重なっている状態で前記キーのうち所定のキーが押下されたことを前記第１の操作として前記操作データに基づいて検出し、
前記第２操作検出手段は、前記第１の操作として検出された所定のキーの押下状態が解放されたことを前記第２の操作として前記操作データに基づいて検出する、請求項１７に記載の情報処理装置。
【請求項２６】
前記操作装置は、撮像対象を撮像するための撮像手段を備え、
前記操作データには、前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータ、の少なくともいずれかが含まれ、
前記ポインティング位置算出手段は、前記操作装置から取得された前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータのいずれかから指示位置を算出する、請求項１７に記載の情報処理装置。
【請求項２７】
前記操作装置はアナログ方式の方向指示デバイスであるアナログスティックを備え、
前記情報処理装置は、前記アナログスティックの指示方向に応じて前記画面をスクロールさせるためのスティックスクロール手段を更に備える、請求項１７に記載の情報処理装置。
【請求項２８】
前記情報処理装置は、前記指示位置が前記画面の上下左右の端を含む所定の領域内に重なったか否かを判定し、重なっているときは当該重なっている端の方向に応じて画面をスクロールさせる画面端スクロール手段を更に備える、請求項１７に記載の情報処理装置。
【請求項２９】
前記代替アイコン表示手段は、前記代替アイコンに対応する前記命令対象オブジェクトの状態を示すパラメータに基づいた情報を当該代替アイコンに付随して表示する、請求項１７に記載の情報処理装置。
【請求項３０】
前記仮想空間には、前記命令対象オブジェクトに対応づけられている少なくとも一つの関連オブジェクトが存在し、
前記動作実行手段は、前記命令対象オブジェクトと共に前記関連オブジェクトに対しても前記所定の動作を実行させる、請求項１７に記載の情報処理装置。
【請求項３１】
前記代替アイコン表示手段は、前記命令対象オブジェクトに対応づけられている前記関連オブジェクトの数に関する情報を前記代替アイコンに付随して表示する、請求項３０の情報処理装置。
【請求項３２】
前記情報処理装置は、前記第１の操作が検出されたとき、当該第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトが画面内に表示されている当該命令対象オブジェクト以外のオブジェクトに対して行うことができる行動を示す行動情報表示を当該命令対象オブジェクト以外のオブジェクトに重ねて表示する行動情報表示手段を更に備える、請求項１７に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内の様子を単位時間毎に画面に表示する情報処理に関し、より特定的には、プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を表示する情報処理におけるプレイヤの操作処理に関する。
【背景技術】
【０００２】
従来、シミュレーションゲームなどに代表されるような、プレイヤが複数のキャラクタ（ユニット）を操作するゲームが知られている。このようなゲームにおいて、プレイヤが操作可能なキャラクタをアイコンとして画面上に表示し、プレイヤが当該アイコンを用いて操作対象とするキャラクタを変更する（切り替える）ことができるゲーム装置が開示されている（例えば、特許文献１）。
【０００３】
上記のゲーム装置では、プレイヤが操作可能な複数のキャラクタ（以下、味方キャラクタと呼ぶ）のうち、任意の一つを操作対象とする。そして、当該ゲーム装置では、画面内に表示されていない味方キャラクタを示すアイコンが画面右下に表示される。そして、プレイヤは、十字キー等で当該アイコンの選択操作を行い、所定のボタンを押下することで、選択したアイコンが表す味方キャラクタを操作対象として選択することができる。この操作対象の変更操作に伴って、仮想カメラの設定が、当該選択されたキャラクタを基準とする設定に変更され、選択されたキャラクタが表示されるゲーム画面へと切り替わる。
【特許文献１】特開２００６-３０５１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したようなゲーム装置においては、以下に示す問題点があった。例えば、ＲＴＳ（Real-time Strategy）のようなゲームにおいて上記の技術を適用すると、上記のようなアイコンの選択操作では、操作対象とする味方キャラクタの切替え、および、これに伴うゲーム画面の切替はできるが、その後、例えば敵キャラクタへの攻撃指示は、ゲーム画面が切り替わった後に、改めて行う必要がある。このとき、例えば、ゲーム空間内において遠く離れた所にいる敵ユニットへの攻撃指示操作を行う場合を考える。この場合、攻撃目標として、遠く離れた場所にいる敵キャラクタを指定する必要があるが、その攻撃目標指定のためには、一旦上述のようなアイコン選択によるゲーム画面の切替を行った後、更に、攻撃目標となる敵キャラクタが表示される場所まで画面をスクロール等させて敵キャラクタを表示させてから指定する必要が生じる。このような操作の流れは、上記ＲＴＳのようなリアルタイム性が高く、素早い操作を行うことがゲームを有利に進めることに繋がるようなゲームにおいては、煩雑な操作となり、快適にゲームを楽しむことが困難となる。
【０００５】
それ故に、本発明の目的は、複数のキャラクタを操作するゲーム等の情報処理において、より操作性が高くなる情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【０００７】
第１の発明は、プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を単位時間毎に画面（２）に表示する情報処理装置のコンピュータに実行させる情報処理プログラムであって、領域外オブジェクト検出ステップ（Ｓ１１）と、代替アイコン表示ステップ（Ｓ１２）と、ポインティング位置算出ステップ（Ｓ６３）と、第１操作検出ステップ（Ｓ６１）と、第２操作検出ステップ（Ｓ７１）と、動作実行ステップ（Ｓ７４，Ｓ７６）とをコンピュータに実行させる。領域外オブジェクト検出ステップは、仮想空間内における所定領域の外にいる命令対象オブジェクトを単位時間毎に検出する。代替アイコン表示ステップは、領域外オブジェクト検出ステップにおいて所定領域外にいる命令対象オブジェクトが検出されたとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを画面内に表示する。ポインティング位置算出ステップは、単位時間毎に操作装置（７）から操作データを取得し、当該操作データから当該操作装置によって指し示される画面上の指示位置を算出する。第１操作検出ステップは、代替アイコンに対して第１の操作が行われたことを操作データから検出する。第２操作検出ステップは、第１操作検出ステップにおいて第１の操作が検出された後、第２の操作が行われたことを検出する。動作実行ステップは、第２操作検出ステップにおいて第２の操作が検出されたときの指示位置に基づいて、第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトに所定の動作を実行させる。
【０００８】
第１の発明によれば、命令対象オブジェクトに対する命令操作について、操作性を高めることができる。
【０００９】
第２の発明は、第１の発明において、領域外オブジェクト検出ステップは、画面に表示される領域を所定の領域として検出を行う。
【００１０】
第２の発明によれば、画面内に命令対象オブジェクトが表示されていないときでも、プレイヤは代替アイコンを利用して素早い命令を命令対象オブジェクトに出すことが可能となり、操作性を向上させることができる。
【００１１】
第３の発明は、第１の発明において、動作実行ステップは、第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトを指示位置に対応する仮想空間内の位置に移動させる。
【００１２】
第３の発明によれば、プレイヤは、例えば画面内に命令対象オブジェクトが表示されていないときでも、簡便で素早い操作によって命令対象オブジェクトを画面に表示されている仮想空間内の地点に移動させることができる。
【００１３】
第４の発明は、第１の発明において、動作実行ステップは、指示位置に対応する仮想空間内の位置に存在するオブジェクトに対する所定の動作を命令対象オブジェクトに実行させる。
【００１４】
第４の発明によれば、プレイヤは、例えば画面内に命令対象オブジェクトが表示されていないときでも、簡便で素早い操作によって、画面に表示されている所定のオブジェクトに対して所定の動作（攻撃動作等）を命令対象オブジェクトに実行させることができる。
【００１５】
第５の発明は、第１の発明において、代替アイコン表示ステップは、画面上において代替アイコンに対応づけられている命令対象オブジェクトに最も近い位置に代替アイコンを表示する。
【００１６】
第５の発明によれば、命令対象オブジェクトのいる仮想空間内の位置についてプレイヤに直感的に把握させることができる。
【００１７】
第６の発明は、第５の発明において、代替アイコン表示ステップは、代替アイコンを複数表示するときは、各代替アイコン同士が交差して表示されないように表示位置を調整して表示する。
【００１８】
第６の発明によれば、代替アイコンが画面内に複数表示されていても、各代替アイコンを指示しやすくなり、操作性を向上することができる。
【００１９】
第７の発明は、第１の発明において、情報処理プログラムは、第１の操作が検出されてから第２の操作が検出されるまでの間、当該第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトと指示位置に対応する仮想空間内の地点とを結ぶ線を生成して画面に表示する、線表示ステップ（Ｓ６７）を更に実行させる。
【００２０】
第７の発明によれば、命令対象オブジェクトが複数あるときに、どの命令対象オブジェクトに対して命令しようとしているかをプレイヤに直感的に把握させやすくできる。
【００２１】
第８の発明は、第７の発明において、前記線表示ステップは、前記代替アイコンまたは当該代替アイコンに対応づけられている命令対象オブジェクトと前記指示位置に対応する仮想空間内の位置との間の距離に関する情報を表示する。
【００２２】
第８の発明によれば、仮想空間内において命令対象オブジェクトがどの程度遠くにいるか等の距離に関してプレイヤに直感的に把握させやすくすることができる。
【００２３】
第９の発明は、第１の発明において、操作装置は、少なくとも一つのキーを備え、第１操作検出ステップは、代替アイコンのいずれかと指示位置とが重なっている状態でキーのうち所定のキーが押下されたことを第１の操作として操作データに基づいて検出し、第２操作検出ステップは、第１の操作として検出された所定のキーの押下状態が解放されたことを第２の操作として操作データに基づいて検出する。
【００２４】
第９の発明によれば、プレイヤに簡便で直感的な操作方法を提供することができる。
【００２５】
第１０の発明は、第１の発明において、操作装置は、撮像対象を撮像するための撮像手段を備え、操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における撮像対象の位置を示すデータ、の少なくともいずれかが含まれ、ポインティング位置算出ステップは、操作装置から取得された前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータのいずれかから指示位置を算出する。
【００２６】
第１０の発明によれば、画面上の位置の指示操作について、直感的な操作方法をプレイヤに提供することができる。
【００２７】
第１１の発明は、第１の発明において、操作装置はアナログ方式の方向指示デバイスであるアナログスティックを備え、情報処理プログラムは、アナログスティックの指示方向に応じて画面をスクロールさせるためのスティックスクロールステップを更に実行させる。
【００２８】
第１２の発明は、第１の発明において、プログラムは、指示位置が画面の上下左右の端を含む所定の領域内に重なったか否かを判定し、重なっているときは当該重なっている端の方向に応じて画面をスクロールさせる画面端スクロールステップを更に実行させる。
【００２９】
第１１乃至第１２の発明によれば、画面のスクロール操作について、操作性を高めることができる。
【００３０】
第１３の発明は、第１の発明において、代替アイコン表示ステップは、代替アイコンに対応する命令対象オブジェクトの状態を示すパラメータに基づいた情報を当該代替アイコンに付随して表示する。
【００３１】
第１３の発明によれば、例えば画面に表示されていない命令対象オブジェクトについて、その状態を速やかに把握することができる。
【００３２】
第１４の発明は、第１の発明において、仮想空間には、命令対象オブジェクトに対応づけられている少なくとも一つの関連オブジェクトが存在し、動作実行ステップは、命令対象オブジェクトと共に関連オブジェクトに対しても所定の動作を実行させる。
【００３３】
第１４の発明によれば、複数のオブジェクトで構成されるオブジェクト群に対してまとめて命令を出すことができる。
【００３４】
第１５の発明は、第１４の発明において、代替アイコン表示ステップは、命令対象オブジェクトに対応づけられている関連オブジェクトの数に関する情報を代替アイコンに付随して表示する。
【００３５】
第１５の発明によれば、画面に表示されていない命令対象オブジェクトについて、その関連オブジェクトの数の増減を直感的に把握させることができる。
【００３６】
第１６の発明は、第１の発明において、情報処理プログラムは、第１の操作が検出されたとき、当該第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトが画面内に表示されている当該命令対象オブジェクト以外のオブジェクトに対して行うことができる行動を示す行動情報表示を当該命令対象オブジェクト以外のオブジェクトに重ねて表示する行動情報表示ステップ（Ｓ６５）を更に実行させる。
【００３７】
第１６の発明によれば、プレイヤが第１の操作を行ったときに、命令対象オブジェクトはどのオブジェクトに対してどのような行動を取ることができるかについて直感的に把握させることができる。
【００３８】
第１７の発明は、プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を単位時間毎に画面（２）に表示する情報処理装置であって、領域外オブジェクト検出手段（１０）と、代替アイコン表示手段（１０）と、ポインティング位置算出手段（１０）と、第１操作検出手段（１０）と、第２操作検出手段（１０）と、動作実行手段（１０）とを備える。領域外オブジェクト検出手段は、仮想空間内における所定領域の外にいる命令対象オブジェクトを単位時間毎に検出する。代替アイコン表示手段は、領域外オブジェクト検出手段において所定領域外にいる命令対象オブジェクトが検出されたとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを画面内に表示する。ポインティング位置算出手段は、単位時間毎に操作装置（７）から操作データを取得し、当該操作データから当該操作装置によって指し示される画面上の指示位置を算出する。領域外オブジェクト検出手段は、仮想空間内における所定領域の外にいる命令対象オブジェクトを単位時間毎に検出する。代替アイコン表示手段は、領域外オブジェクト検出手段が所定領域外にいる命令対象オブジェクトを検出したとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを画面内に表示する。第１操作検出手段は、代替アイコンに対して第１の操作が行われたことを操作データから検出する。第２操作検出ステップは、第１操作検出手段が第１の操作を検出した後、第１の操作とは異なる操作である第２の操作が行われたことを検出する。動作実行手段は、第２操作検出ス手段が第２の操作を検出したときの指示位置に基づいて、第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトに所定の動作を実行させる。
【００３９】
第１８の発明は、第１７の発明において、領域外オブジェクト検出手段は、画面に表示される領域を所定の領域として検出を行う。
【００４０】
第１９の発明は、第１７の発明において、動作実行手段は、第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトを指示位置に対応する仮想空間内の位置に移動させる。
【００４１】
第２０の発明は、第１７の発明において、動作実行手段は、指示位置に対応する仮想空間内の位置に存在するオブジェクトに対する所定の動作を命令対象オブジェクトに実行させる。
【００４２】
第２１の発明は、第１７の発明において、代替アイコン表示手段は、画面上において代替アイコンに対応づけられている命令対象オブジェクトに最も近い位置に代替アイコンを表示する。
【００４３】
第２２の発明は、第２１の発明において、代替アイコン表示手段は、代替アイコンを複数表示するときは、各代替アイコン同士が交差して表示されないように表示位置を調整して表示する。
【００４４】
第２３の発明は、第１７の発明において、情報処理プログラムは、第１の操作が検出されてから第２の操作が検出されるまでの間、当該第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトと指示位置に対応する仮想空間内の地点とを結ぶ線を生成して画面に表示する、線表示ステップを更に実行させる。
【００４５】
第２４の発明は、第２３の発明において、前記線表示ステップは、前記代替アイコンまたは当該代替アイコンに対応づけられている命令対象オブジェクトと前記指示位置に対応する仮想空間内の位置との間の距離に関する情報を表示する。
【００４６】
第２５の発明は、第１７の発明において、操作装置は、少なくとも一つのキーを備え、第１操作検出ステップは、代替アイコンのいずれかと指示位置とが重なっている状態でキーのうち所定のキーが押下されたことを第１の操作として操作データに基づいて検出し、第２操作検出ステップは、第１の操作として検出された所定のキーの押下状態が解放されたことを第２の操作として操作データに基づいて検出する。
【００４７】
第２６の発明は、第１７の発明において、操作装置は、撮像対象を撮像するための撮像手段を備え、操作データには、撮像手段によって撮像される撮像画像のデータ、当該撮像画像における撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における撮像対象の位置を示すデータ、の少なくともいずれかが含まれ、ポインティング位置算出手段は、操作装置から取得された前記撮像手段によって撮像される撮像画像のデータ、当該撮像画像における前記撮像対象の所定の２箇所の位置を示すデータ、および、当該撮像画像における前記撮像対象の位置を示すデータのいずれかから指示位置を算出する。
【００４８】
第２７の発明は、第１７の発明において、操作装置はアナログ方式の方向指示デバイスであるアナログスティックを備え、情報処理プログラムは、アナログスティックの指示方向に応じて画面をスクロールさせるためのスティックスクロールステップを更に実行させる。
【００４９】
第２８の発明は、第１７の発明において、プログラムは、指示位置が画面の上下左右の端を含む所定の領域内に重なったか否かを判定し、重なっているときは当該重なっている端の方向に応じて画面をスクロールさせる画面端スクロールステップを更に実行させる。
【００５０】
第２９の発明は、第１７の発明において、代替アイコン表示ステップは、代替アイコンに対応する命令対象オブジェクトの状態を示すパラメータに基づいた情報を当該代替アイコンに付随して表示する。
【００５１】
第３０の発明は、第１７の発明において、仮想空間には、命令対象オブジェクトに対応づけられている少なくとも一つの関連オブジェクトが存在し、動作実行ステップは、命令対象オブジェクトと共に関連オブジェクトに対しても所定の動作を実行させる。
【００５２】
第３１の発明は、第３０の発明において、代替アイコン表示ステップは、命令対象オブジェクトに対応づけられている関連オブジェクトの数に関する情報を代替アイコンに付随して表示する。
【００５３】
第３２の発明は、第１７の発明において、情報処理装置は、第１の操作が検出されたとき、当該第１の操作が行われた代替アイコンに対応づけられている命令対象オブジェクトが画面内に表示されている当該命令対象オブジェクト以外のオブジェクトに対して行うことができる行動を示す行動情報表示を当該命令対象オブジェクト以外のオブジェクトに重ねて表示する行動情報表示手段を更に備える。
【００５４】
第１７〜第３２の発明によれば、上述した本発明の情報処理プログラムと同様の効果を得ることができる。
【００５５】
第３３の発明は、プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を単位時間毎に画面に表示する情報処理装置のコンピュータに実行させる情報処理プログラムであって、領域外オブジェクト検出ステップ（Ｓ１１）と、代替アイコン表示ステップ（Ｓ１２）と、動作実行ステップ（Ｓ７４，Ｓ７６）とをコンピュータに実行させる。領域外オブジェクト検出ステップは、仮想空間内における所定領域の外にいる命令対象オブジェクトを単位時間毎に検出する。代替アイコン表示ステップは、領域外オブジェクト検出ステップにおいて所定領域外にいる命令対象オブジェクトが検出されたとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを画面内に表示し、かつ、代替アイコンを複数表示するときは、各代替アイコン同士が交差して表示されないように表示位置を調整して表示する。動作実行ステップは、所定の操作に基づいて代替アイコンに対応づけられている命令対象オブジェクトに所定の動作を実行させる。
【００５６】
第３４の発明は、プレイヤの操作に基づいて所定の動作を行う少なくとも１つの命令対象オブジェクトが存在する仮想空間内の様子を単位時間毎に画面に表示する情報処理装置であって、領域外オブジェクト検出手段（１０）と、代替アイコン表示手段（１０）と、動作実行手段（１０）とを備える。領域外オブジェクト検出手段は、仮想空間内における所定領域の外にいる命令対象オブジェクトを単位時間毎に検出する。代替アイコン表示手段は、領域外オブジェクト検出手段が所定領域外にいる命令対象オブジェクトを検出したとき、当該命令対象オブジェクトと対応づけたアイコンである代替アイコンを前記画面内に表示し、かつ、代替アイコンを複数表示するときは、各代替アイコン同士が交差して表示されないように表示位置を調整して表示する。動作実行手段は、所定の操作に基づいて代替アイコンに対応づけられている命令対象オブジェクトに所定の動作を実行させる。
【００５７】
第３３〜第３４の発明によれば、代替アイコンが画面内に複数表示されていても、各代替アイコンを指示しやすくなり、操作性を向上することができる。
【発明の効果】
【００５８】
本発明によれば、プレイヤの命令対象オブジェクトに対する命令操作について、より簡便で且つ速やかな命令操作を行うことができ、操作性を高めることができる。
【発明を実施するための最良の形態】
【００５９】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００６０】
（ゲームシステムの全体構成）
図１を参照して、本発明の実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置３、光ディスク４、コントローラ７、およびマーカ部８を含む。本システムは、コントローラ７を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００６１】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００６２】
ゲーム装置３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２には、ゲーム装置３において実行されるゲーム処理の結果得られるゲーム画像が表示される。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部８が設置される。マーカ部８は、その両端に２つのマーカ８Ｒおよび８Ｌを備えている。マーカ８Ｒ（マーカ８Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部８はゲーム装置３に接続されており、ゲーム装置３はマーカ部８が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００６３】
コントローラ７は、当該コントローラ７自身に対して行われた操作の内容を示す操作データをゲーム装置３に与える入力装置である。コントローラ７とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ７とゲーム装置３とは有線で接続されてもよい。
【００６４】
（ゲーム装置３の内部構成）
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００６５】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成について後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００６６】
また、システムＬＳＩ１１には、入出力プロセッサ１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００６７】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。より具体的には、ＧＰＵ１１ｂは、当該グラフィクスコマンドに従って３Ｄグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる３Ｄ座標から２Ｄ座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。ここで、ＣＰＵ１０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ１１ｂに与える。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００６８】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。また、内部メインメモリ１１ｅは、外部メインメモリ１２と同様に、プログラムや各種データを記憶したり、ＣＰＵ１０のワーク領域やバッファ領域としても用いられる。
【００６９】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００７０】
入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００７１】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００７２】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００７３】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００７４】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンにされると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン２４を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置３への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン２４を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００７５】
次に、図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００７６】
図３および図４において、コントローラ７は、ハウジング７１と、当該ハウジング７１の表面に設けられた複数個の操作ボタンで構成される操作部７２とを備える。本実施例のハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【００７７】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００７８】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００７９】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００８０】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００８１】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７からゲーム装置３へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００８２】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００８３】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００８４】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００８５】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するｘｙｚ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をｚ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をｚ軸正方向とする。また、コントローラ７の上下方向をｙ軸とし、ハウジング７１の上面（操作ボタン７２ａ等が設けられた面）方向をｙ軸正方向とする。さらに、コントローラ７の左右方向をｘ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をｘ軸正方向とする。
【００８６】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上ハウジング（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下ハウジング（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００８７】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。マイコン７５１は本願発明のボタンデータ発生手段の一例として、操作ボタン７２ａ等の種類に応じた操作ボタンデータを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触／切断をマイコン７５１が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン７５１が検出し、操作ボタンの種類に応じた信号を発生させている。
【００８８】
また、コントローラ７は、図示しない無線モジュール７５３（図７参照）およびアンテナ７５４によって、ワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置３等が判定することができる。
【００８９】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００９０】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００９１】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００９２】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００９３】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。ここで、テレビ２の表示画面近傍に配置されるマーカ８Ｌおよび８Ｒは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ７４１を設けることによってマーカ８Ｌおよび８Ｒの画像をより正確に撮像することができる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ入射させる。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子７４３によって撮像された画像を撮像画像と呼ぶ。撮像素子７４３によって生成された画像データは、画像処理回路７４４で処理される。画像処理回路７４４は、撮像画像内における撮像対象（マーカ８Ｌおよび８Ｒ）の位置を算出する。以下、図８を用いて撮像対象の位置の算出方法を説明する。
【００９４】
図８は、撮像画像の一例を示す図である。図８に示す撮像画像Ａ１においては、マーカ８Ｌの画像８Ｌ'およびマーカ８Ｒの画像８Ｒ'が左右に並んでいる。撮像画像が入力されると、まず、画像処理回路７４４は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像（対象画像）を特定するための条件であり、所定条件の具体的な内容は、輝度が所定値以上の領域（高輝度領域）であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
【００９５】
対象画像の位置を算出する際、まず、画像処理回路７４４は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路７４４は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である２つのマーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
【００９６】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路７４４は当該高輝度領域の位置を算出する。具体的には、当該高輝度領域の重心位置を算出する。なお、重心位置は撮像素子７４３の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子７４３によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、重心位置の座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。なお、撮像画像における位置は、図８に示すように、撮像画像の左上を原点とし、下向きをｙ軸正方向とし、右向きをｘ軸正方向とする座標系（ｘｙ座標系）で表現されるものとする。
【００９７】
以上のようにして、画像処理回路７４４は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。なお、以下では、画像処理回路７４４によって算出される座標をマーカ座標と呼ぶ。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系において撮像対象の位置を示す座標である。画像処理回路７４４は、マーカ座標を通信部７５のマイコン７５１へ出力する。マーカ座標のデータは、マイコン７５１によって操作データとしてゲーム装置３に送信される。マーカ座標はコントローラ７自体の向き（姿勢）や位置に対応して変化するので、ゲーム装置３は当該座標値を用いてコントローラ７の向きや位置を算出することができる。なお、本実施形態では、撮像画像からマーカ座標を算出する処理までをコントローラ７の画像処理回路７４４および／またはマイコン７５１で行ったが、例えば撮像画像をゲーム装置３に送り、以降の処理と同等の処理をゲーム装置３のＣＰＵ１０等で行わせることもできる。
【００９８】
コントローラ７は、３軸（ｘ、ｙ、ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【００９９】
当業者には公知であるように、加速度センサ７０１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【０１００】
しかしながら、加速度センサ７０１から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ（例えばＣＰＵ１０）またはコントローラのプロセッサ（例えばマイコン７５１）などのコンピュータが処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合）、コントローラが現実に静的な状態であれば、検出された加速度に基づいてコントローラの姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサの場合には、さらに各軸の加速度の信号に対して処理を施すことによって、各軸が重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ７０１からの出力に基づいて、プロセッサがコントローラ７の傾き角度のデータを算出する処理をおこなってもよいが、当該傾き角度のデータを算出する処理をおこなうことなく、加速度センサ７０１からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ７０１をプロセッサと組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を判定することができる。一方、加速度センサが動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ７０１を備えるコントローラ７がユーザの手で動的に加速されて動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７のさまざまな動きおよび／または位置を算出することができる。なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向対する傾きを知ることが可能である。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【０１０１】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置３から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【０１０２】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの加速度信号（ｘ、ｙ、およびｚ軸方向加速度データ；以下、単に加速度データと記載する）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部７５の送信間隔は例えば５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データが無線モジュール７５３で電波信号に変調されてコントローラ７から送信される。そして、ゲーム装置３の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【０１０３】
次に、図９〜図２９を用いて、本実施形態で想定するゲームの概要について説明する。本実施形態で想定するゲームは、いわゆるＲＴＳ（リアルタイムストラテジー；Real-time Strategy）と呼ばれるゲームである。すなわち、プレイヤはリアルタイムに進行する時間に対応しつつ、複数の自軍のユニットに指示を与えて敵を倒させるゲームである。本実施形態で想定するゲームでは、プレイヤ自身を表すプレイヤユニットと最大４つまでの味方ユニットとの最大５つのユニットがプレイヤの操作対象（指示対象）となる。また、本ゲームは、ステージクリア型の構成をとる。
【０１０４】
図９は、本実施形態で想定するゲームの画面の一例である。図９においては、仮想ゲーム空間（当該空間は３次元でも２次元でも良い。本実施形態では、３次元のゲーム空間として説明する。）を表した画像が表示されている。図９においては、プレイヤユニット１０１と、味方ユニット１０２、３体の敵ユニット１０４、およびカーソル１０５が表示されている。また、味方ユニット１０２の周辺には部下ユニット１０３が３体配置されている。本ゲームにおいては、当該１つの味方ユニット１０２と複数の部下ユニット１０３とを合わせて一つの「部隊」として扱う。以下、この部隊のことを「味方部隊」と呼ぶ。また、上記３体の敵ユニットについても、まとめて一つの「部隊」として扱う。以下、「敵部隊」と呼ぶ。本ゲームでは、各部隊は基本的に、部隊単位でまとまって行動する。そのため、味方部隊については、上記味方ユニット１０２に対して指示を行うことで、味方部隊全体への指示を出すことができる。換言すれば、味方部隊は、味方ユニット１０２をリーダーとする部隊である。
【０１０５】
次に、本ゲームにおける操作方法について説明する。基本的に、本ゲームでは、コントローラ７でゲーム画面内の所定の位置をポインティングし、各種操作を行う。具体的には、プレイヤは、図１０に示すように、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がマーカ８Ｌおよび８Ｒの方向を向く状態でコントローラ７を把持する。この状態で、プレイヤは、コントローラ７の傾きを変化させたり、コントローラ７が指し示す画面上の位置（指示位置）を変更したりすることによってゲーム操作を行う。
【０１０６】
次に、より具体的な操作方法、特に、ユニットへの指示操作方法について説明する。当該説明に際し、ここでは、図１１に示すような状況を基に説明する。図１１は、仮想ゲーム空間（ステージ）全体と画面の表示領域との関係を示した図である。なお、図１１では、説明の便宜上、３次元空間である仮想ゲーム空間を俯瞰したものである２次元座標系の図で表している。図１１では、仮想ゲーム空間１１０内の上方部分にプレイヤユニット１０１、味方ユニット１０２（味方部隊）、敵ユニット１０４（敵部隊）が１つづつ存在している。また、仮想ゲーム空間１１０内の下方部分に、宝箱１０６が１つ存在している状態である。また、画面表示領域１１１は、ゲーム画面として表示される範囲を示す。ここでは、ゲーム画面として上記図９のような画面が表示されているものとする。換言すれば、上記図９は、図１１の状態におけるゲーム画面を示す図となっている。
【０１０７】
図９のような画面において、プレイヤは、指示したいユニットにカーソル１０５を合わせ、Ａボタン７２ｄおよびＢボタン７２ｉの同時押しを行うことで、当該ユニットを「ドラッグ」できる（以下、Ａボタン７２ｄおよびＢボタン７２ｉの同時押しををドラッグ操作と呼ぶ）。そして、ドラッグした状態（Ａボタン７２ｄおよびＢボタン７２ｉを押し続けている状態）のまま所望の場所にカーソル１０５を移動させ、ドラッグ状態を解除する（押し続けていたＡボタン７２ｄおよびＢボタン７２ｉを離す）。すると。解除した地点にあるオブジェクト等に応じた所定の行動を上記指示したユニットが開始する。以下、当該行動のことを作戦行動と呼ぶ。当該作戦行動としては、例えば、敵部隊への攻撃、宝箱を開ける、スイッチを押す、砦を占領する、指定された地点へ移動する、等の行動がある。
【０１０８】
次に、図９のような状態において、味方部隊に敵部隊を攻撃させるための指示操作について説明する。まず、プレイヤは、カーソル１０５を動かし、味方ユニット１０２をポインティングする。続いて、プレイヤは、ドラッグ操作を行う。すると、図１２に示すように、カーソル１０５の図柄がドラッグ状態を示す表示に変わる。図１２では、カーソル１０５として、何かを掴んでいるような手の画像が表示されている。また、当該操作に合わせて、ポインティング位置に指示アイコン１０７が表示される。更に、図１２では、敵部隊に重なるようにして情報アイコン１０８が表示されている。情報アイコン１０８とは、ドラッグした味方ユニット（あるいはプレイヤユニット）がそのユニット等に対してどのような作戦行動を取れるかを示すアイコンである。図１２の例では、情報アイコン１０８は剣が交わるような図柄であり、味方ユニット１０２（味方部隊）は、敵部隊に対して武器による「直接攻撃」が可能であることを示している。
【０１０９】
なお、図１２では、敵部隊が一隊だけ表示されている場合を例としているが、敵部隊が複数表示されているときは、そのそれぞれに対して「直接攻撃」が可能であることを示す情報アイコンが表示されることになる。また、図１２には図示されていないが、「宝箱」のオブジェクトが画面内に表示されていれば、宝箱を開けることが可能であることを示す情報アイコンが表示される。また、「スイッチ」のオブジェクトが表示されていれば、そのスイッチを入れることが可能であることを示す情報アイコンが表示される。
【０１１０】
次に、プレイヤは、ドラッグ状態を維持したまま、カーソル１０５を敵部隊に向けて移動させる。すると、これにつれて、指示アイコン１０７も追従して移動する。更に、図１３に示すように、画面上には味方ユニット１０２を基点として指示アイコン１０７まで伸びていく破線軌跡１０９も表示される。
【０１１１】
カーソル１０５を敵部隊まで動かすと、その結果、図１３に示すように、指示アイコン１０７が情報アイコン１０８に重なることになる。このとき、情報アイコン１０８が少し大きなサイズと変化する。そして、この状態でプレイヤがドラッグ解除すると、味方部隊は作戦行動を開始する。すなわち、図１４に示すように、味方部隊の敵部隊への「直接攻撃」が開始される。つまり、ドラッグ解除によって、味方ユニット１０２（味方部隊）への攻撃命令が出されたことになる。
【０１１２】
次に、プレイヤユニット１０１の指示操作について説明する。本ゲームにおいては、プレイヤユニット１０１は、敵部隊に対しての「直接攻撃」はできないよう設定されている。そのため、プレイヤユニット１０１に対して上述のような操作をしても、「直接攻撃」の情報アイコンは表示されない。その代り、プレイヤユニットは「魔法攻撃」と呼ばれる方法で敵部隊への攻撃が可能となっている。
【０１１３】
以下、この「魔法攻撃」のための操作を説明する。プレイヤは、「魔法攻撃」を行うために、図１５に示すようにプレイヤユニット１０１が画面に表示されている状態で所定の操作、例えば、ボタン７２ｂを押す。すると、ポインティング位置に関わらず、図１６に示すような画面が表示される。プレイヤは、この画面でコントローラ７を動かすと、そのポインティング位置の軌跡が線１１５として画面に描画される。そして、プレイヤは、この線によって所定の図形（本ゲームでは「ルーン」と呼ばれる）を書く操作を行う。換言すれば、コントローラ７で所定の図形を描画する操作を行う。すると、その図形の形状に応じて予め定義されている「魔法攻撃」の処理が実行される。図１７は、図１６で描いた図形に応じて、「魔法攻撃」の一つである「火の玉」がプレイヤユニット１０１の向いている方向に飛ばされている状態を示している。このように、本ゲームでは、味方ユニット（味方部隊）は敵部隊に「直接攻撃」できるが、プレイヤユニット１０１は、「直接攻撃」はできず、代わりに「魔法攻撃」が可能となっている。
【０１１４】
次に、プレイヤユニット１０１や味方ユニット１０２が画面内に表示されていないときの操作に関して説明する。一例として、図１８に示すように、仮想ゲーム空間１１０内の下方にある宝箱１０６の場所までプレイヤが画面をスクロールし、そこで初めて宝箱１０６の存在に気付いて当該宝箱１０６をプレイヤユニット１０１に取得させようとする場合を例として説明する。
【０１１５】
まず、プレイヤは、画面スクロールのための操作を行う。本ゲームでは、十字キー７２ａを押すと、その方向に応じて画面がスクロールするものとする。上記図１１の状態から図１９に示すように画面を少し下方にスクロールさせると、図２０に示すような画面の状態となる。図２０では、プレイヤユニット１０１および味方ユニット１０２は表示されておらず、その代わりにユニットアイコン１３１および１３２が表示されている。ユニットアイコンとは、画面外にいるプレイヤユニット１０１および味方ユニット１０２に対応するアイコンである。図２０では、ユニットアイコン１３１はプレイヤユニット１０１に対応し、ユニットアイコン１３２は味方ユニット１０２に対応している。つまり、本ゲームでは、プレイヤユニット１０１や味方ユニット１０２が画面に表示されなくなると、その代わりに対応するユニットアイコンが表示される。なお、図２０では説明の簡略化のため、ユニットアイコンは２つだけで説明しているが、本ゲームでは、味方ユニットは４つまで操作可能であるため、ユニットアイコンは最大で５つまで同時表示される。また、本ゲームにおいては、ユニットアイコン同士が重なって表示されないように、ユニットアイコンの表示位置の調整も行われる（詳細は後述する）。
【０１１６】
ここで、ユニットアイコンについて補足説明する。図２１は、図２０のユニットアイコン１３１および１３２を拡大した図である。ユニットアイコン１３１および１３２は、円形を基調とした形状であり、顔を模した図柄が円の内部に描画されている。本ゲームでは、プレイヤあるいは味方ユニットのＨＰ（ＨｉｔＰｏｉｎｔ）状態を当該顔の表情で表現する。つまり、ＨＰが十分あるときは、図２１に示すような笑顔の状態で表示され、ＨＰが少なくなると、苦しんでいる表情が描画される。また、プレイヤユニット１０１に対応するユニットアイコン１３１には、味方ユニット１０２との区別をつけるために、識別用のマーク１３１１も描画されている。一方、味方ユニット１０２を示すユニットアイコン１３２には、部下ユニット１０３の数を示すバー１３２１が上部に表示されている。当該バー１３２１は、部下ユニット１０３の数に応じて増減する。更に、両アイコンとも、ユニットのいる方向を示す矢印表示１３３が示されている。
【０１１７】
次に、図１９の状態から、図２２に示すようにプレイヤが更に画面を下にスクロールさせていくと、図２３に示すように、宝箱１０６が画面に表示された状態となる。この状態で、プレイヤが、この宝箱１０６をプレイヤユニットに取得させるための指示操作を行う場合、まず、プレイヤは、プレイヤユニット１０１に対応しているユニットアイコン１３１をドラッグする。すると、図２４に示すように、指示アイコン１０７が表示される。また、宝箱１０６に重なって情報アイコン１０８（宝箱を開けることが可能であることを示す図柄である）も表示される。そして、図２５に示すように、プレイヤは宝箱１０６の位置まで指示アイコン１０７を移動させる。このときも、上記同様に破線軌跡１０９が表示される。また、指示アイコン１０７が情報アイコン１０８に重なると、当該情報アイコン１０８のサイズも少し大きくなる。そして、プレイヤがドラッグ状態を解除すると、プレイヤユニット１０１に宝箱１０６を取得する命令を出したことになり、プレイヤユニット１０１は、図２６に示すように宝箱１０６を取るという作戦行動を開始（宝箱に向かっての移動を開始）する。つまり、図２３の状態からプレイヤが宝箱１０６の取得を所望した場合、プレイヤユニット１０１にいる場所まで画面をスクロールさせなくとも、ユニットアイコン１３１をドラッグすることで、命令を出す対象としてプレイヤユニット１０１を選択した状態となる。そして、作戦行動の目標となる宝箱１０６に指示アイコン１０７を移動させてドラッグ状態を解除すれば、プレイヤユニット１０１に対して宝箱１０６を取得する命令を出したことになる。その結果、図２７に示すように、プレイヤユニット１０１が画面内に移動してきて（このときは、ユニットアイコン１３１は画面内に表示されていない）、宝箱１０６を取得する動作を行うことになる。
【０１１８】
また、上記図２３では、宝箱１０６の場合を例としているが、宝箱１０６の代わりに敵部隊が表示されている場合に、プレイヤが味方ユニット１０２に「直接攻撃」を行わせること所望した場合を考える。この場合は、プレイヤは、まず、味方ユニットに対応するユニットアイコン１３２をドラッグする。そして、ドラッグ操作に伴って表示される上記指示アイコン１０７を敵部隊に移動させてから、上記のようにドラッグ状態を解除すれば、味方ユニット１０２（味方部隊）に敵部隊への攻撃命令を出したことになる。この場合も、味方ユニット１０２のイル位置まで画面をスクロールさせることなく、その場で攻撃命令を出すことができる。
【０１１９】
また、プレイヤは、プレイヤユニット１０１、味方ユニット１０２、あるいはユニットアイコン１３１あるいは１３２に対して上記のようなドラッグ操作を行った後、図２８に示すように、敵部隊や宝箱等が無い場所でドラッグを解除すれば、その地点への移動命令を出すことができる。この場合、ドラッグを解除した場所が進入不可の場所として設定されている所でなければ、その地点に向けての「移動」命令が出されたことになり、図２９に示すように、命令を出されたユニットはドラッグ解除地点に向けての移動を開始する。また、進入不可の場所でドラッグを解除した場合は、何ら命令は出されていなかったものとして扱われる。
【０１２０】
このように、本実施形態では、プレイヤユニット１０１や味方ユニット１０２がゲーム画面内に表示されていないときであっても、ユニットアイコンをドラッグすることで、そのユニットアイコンに対応するユニットを命令対象として選択することができる。そして、指示アイコン１０７を移動させ、ドラッグ状態を解除することで、ドラッグを解除した位置にあるユニットやオブジェクトに応じた作戦行動の命令をプレイヤユニット１０１や味方ユニット１０２に出すことが可能となる。画面に表示されていないユニットに命令を出す場合でも、その都度画面スクロールあるいは画面切替を行って当該命令を出したいユニットを表示させる必要がなく、簡便な操作で、かつ速やかに命令を出すことができる。また、上記ユニットアイコンに対応するユニットの体力の状態や部下ユニットの数等を表示することで、画面に表示されていないプレイヤユニット１０１や味方ユニット１０２の状態をプレイヤに直感的に把握させることができる。
【０１２１】
次に、本実施形態で用いられる各種データについて説明する。図３０は、図３に示した外部メインメモリ１２（ただし、内部メインメモリ１１ｅでもよいし、両方を使用するようにしてもよい）のメモリマップを示す図である。図３０において、外部メインメモリ１２は、プログラム記憶領域１２１、データ記憶領域１２３を含む。プログラム記憶領域１２１およびデータ記憶領域１２３のデータは、ディスク４に予め記憶されたものが、ゲーム処理に際して外部メインメモリ１２にコピーされたものである。
【０１２２】
プログラム記憶領域１２１は、ＣＰＵ１０によって実行されるゲームプログラムを記憶し、このゲームプログラムは、ゲーム処理プログラム１２２などによって構成される。ゲーム処理プログラム１２２は、後述する図３１のフローチャートの処理に対応するプログラムである。
【０１２３】
データ記憶領域１２３には、プレイヤユニットデータ１２４、味方ユニットデータ１２５、ユニットアイコンデータ１２６、敵ユニットデータ１２７、その他オブジェクトデータ１２８などのデータが記憶されるとともに、ゲーム処理プログラム１２２で用いられる各種フラグも記憶される。
【０１２４】
プレイヤユニットデータ１２４は、プレイヤユニット１０１に関するデータであり、ステータスデータ１２４１、画像データ１２４２等で構成されている。ステータスデータ１２４１は、プレイヤユニット１０１のＨＰを示すパラメータ等、プレイヤユニット１０１の状態を示す各種パラメータが含まれている。画像データ１２４２は、ゲーム画面上に表示されるプレイヤユニット１０１の画像のデータである。
【０１２５】
味方ユニットデータ１２５は、味方ユニットに関するデータである。本実施形態では、味方ユニットは最大４ユニットであるため、４ユニット分の味方ユニットデータ１２５ａ〜ｄが記憶されている。各味方ユニット１２５には、ステータスデータ１２５１、画像データ１２５２、部下ユニットデータ１２５３等から構成されている。ステータスデータ１２５１は、味方ユニット１０２のＨＰを示すパラメータ等、味方ユニット１０２の状態を示す各種パラメータが含まれている。画像データ１２５２は、ゲーム画面上に表示される味方ユニット１０２の画像のデータである。部下ユニットデータ１２５３は、同じ部隊として味方ユニット１０２と関連づけられている部下ユニット１０３に関するデータである。部下ユニットデータ１２５３には、部下ユニット１０３の数、各部下ユニットのステータスデータや画像データ等が含まれている。
【０１２６】
ユニットアイコンデータ１２６は、図２１等で示したようなユニットアイコン１３１や１３２に関するデータである。本ゲームでは、プレイヤの操作対象のユニットはプレイヤユニットが１つと味方ユニット４つの計５ユニットであるため、これらにそれぞれ対応するユニットアイコンとして５つのユニットアイコンデータ１２６ａ〜ｅが記憶されている（ユニットアイコンＡ〜Ｅ）。
【０１２７】
各ユニットアイコンデータ１２６は、対応ユニット情報１２６１、表示フラグ１２６２、画像データ１２６３、半径値１２６４等から構成されている。対応ユニット情報１２６１は、そのユニットアイコンと対応づけられているプレイヤユニットあるいは味方ユニットを示す情報である。なお、本実施形態では、ユニットアイコンＡがプレイヤユニット１０１に予め対応づけられ、ユニットアイコンＢ〜Ｅが味方ユニットＡ〜Ｄと予め対応づけられているものとする（すなわち、ユニットアイコンＡは図２１のユニットアイコン１３１に対応し、ユニットアイコンＢ〜Ｅはユニットアイコン１３２に対応する）。
【０１２８】
表示フラグ１２６２は、ユニットアイコンを画面上に表示するか否かを示すためのフラグである。当該フラグがオンのユニットアイコンは画面に表示され、オフのときは画面上に表示されないことを示す。画像データ１２６３は、画面に表示するユニットアイコンの画像データである。図２１を用いて上述したような、顔を模した図柄の表情の画像等が含まれている。半径値１２６４は、ユニットアイコンのサイズを示すパラメータであり、後述するような、アイコンの整列処理において利用されるパラメータである。上述のように、本実施形態におけるユニットアイコンは円形を基調としており、この円の半径が当該半径値１２６４として格納されている。
【０１２９】
敵ユニットデータ１２７は、敵ユニット１０４に関するデータである。ＨＰ等のステータスデータや画像データ等が含まれる。
【０１３０】
その他オブジェクトデータ１２８は、上記各ユニット以外のオブジェクトに関するデータである。例えば、宝箱１０６に関するデータ等が含まれている。
【０１３１】
なお、外部メインメモリ１２には、図３０に示す情報に含まれるデータの他、仮想ゲーム空間に関するデータ（ステージデータ、地形データ等）や音声データ等、ゲーム処理に必要なデータが記憶される。
【０１３２】
次に、図３１〜図４１を参照して、ゲーム装置３によって実行されるゲーム処理について説明する。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ１０は、ＲＯＭ／ＲＴＣ１３に記憶されている起動プログラムを実行し、これによって外部メインメモリ１２等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムが外部メインメモリ１２に読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。図３１におけるフローチャートは、上述したような、ユニットを操作する際におけるゲーム処理を示す。なお、本実施形態においては、指示操作以外の状況におけるゲーム処理は本発明と直接関連しないので説明を省略する。また、図３１に示すフローチャートのステップＳ２〜Ｓ４の処理は、１フレーム毎に繰り返される。
【０１３３】
図３１において、まず、ＣＰＵ１０は、全てのユニットアイコンについて、その表示フラグ１２６２をオフに設定する（ステップＳ１）。
【０１３４】
次に、ＣＰＵ１０は、アイコン整列処理を実行する（ステップＳ２）。この処理では、画面に表示されていないユニットについて、対応するユニットアイコンを表示する位置を算出する処理、および、ユニットアイコン同士が重なって表示されないように表示位置を調整する（つまり、ユニットアイコンを整列させる）ための処理が行われる。図３２〜図３４を用いて、本処理の概要を示すと、まず、画面外のユニットＵに対して一番近い画面内の点をターゲット点Ｔとして算出する。次に、対応するユニットアイコンをＴ点に配置する。これを各ユニットについて行う。そして、Ｔ点に表示したユニットアイコン同士の衝突判定を行い（図３３）、衝突しているときは、画面中央に近い方のアイコンを、中央に向けて表示位置を調整する（図３４）。
【０１３５】
図３５は、上記ステップＳ２で示したアイコン整列処理の詳細を示すフローチャートである。図３５において、まず、ＣＰＵ１０は、プレイヤユニットおよび味方ユニットから処理対象となるユニットを１つ選択し（ここでは、まずプレイヤユニットを選択するものとする）、当該ユニットについてターゲット点算出処理を実行する（ステップＳ１１）。この処理では、上述したようなターゲット点Ｔを求める処理が実行される。図３６は、上記ステップＳ１１で示したターゲット点算出処理の詳細を示すフローチャートである。図３６において、まず、ＣＰＵ１０は、画面中心を原点として、処理対象となるプレイヤユニット１０１、または各味方ユニットの２次元ベクトル（Ｕｘ，Ｕｙ）をＵとして算出する（ステップＳ２１）。このステップＳ２１の処理をより具体的に説明すると、まず、ＣＰＵ１０は、仮想ゲーム空間内におけるプレイヤユニットまたは各味方ユニットの位置を取得し、３次元座標系から２次元座標系への座標変換を行う。ここで、当該２次元座標系への変換については、そのときの画面の中心を原点（０，０）とした座標系として変換される。以下、変換後の座標を（Ｕｘ、Ｕｙ）と表す。そして、ＣＰＵ１０は、画面の中心である原点（０，０）から（Ｕｘ、Ｕｙ）へのベクトルを二次元ベクトルＵとして算出する。
【０１３６】
次に、ＣＰＵ１０は、処理対象となるユニットに対応するユニットアイコンの表示フラグ１２６２をオフに設定する（ステップＳ２２）。
【０１３７】
次に、ＣＰＵ１０は、Ｘ軸方向に着目して、上記処理対象となるユニットが画面表示領域外にいるか否かを判定する（ステップＳ２３）。具体的には、Ｕｘが、画面の右端の境界を示す値であるＸｍａｘ（図３２参照）より大きいか否か、あるいは、画面の左端の境界を示す値である−Ｘｍａｘよりも小さいかを判定する（例えば、画面解像度がＶＧＡ（６４０×４８０）とすると、Ｘｍａｘは”３２０”、−Ｘｍａｘは”−３１９”となる）。当該判定の結果、Ｕｘの値が−Ｘｍａｘより大きく、かつＸｍａｘより小さいときは（ステップＳ２３でＮＯ）、変数Ｕｎｅｗの値として位置ベクトルＵを設定する（ステップＳ２４）。ここで、変数Ｕｎｅｗは（Ｕｎｘ、Ｕｎｙ）で表されるものとする。一方、Ｕｘの値がＸｍａｘより大きいとき、あるいは、−Ｘｍａｘよりも小さいときは（ステップＳ２３でＹＥＳ）、処理対象となるユニットは画面外にいることになるため、ＣＰＵ１０は、ユニットアイコンを画面に表示するために、処理対象ユニットに対応するユニットアイコンの表示フラグ１２６２をオンに設定する（ステップＳ２５）。続いて、ＣＰＵ１０は、変数Ｕｎｅｗの値を以下の式で算出する（ステップＳ２６）。
Ｕｎｅｗ＝Ｕ×｜Ｘｍａｘ／Ｕｘ｜
【０１３８】
次に、ＣＰＵ１０は、Ｙ軸方向に着目して、上記処理対象となるユニットが画面表示領域外にいるか否かを判定する（ステップＳ２７）。具体的には、Ｕｎｙが、画面の上端の境界を示す値であるＹｍａｘ（図３２参照）より大きいか否か、あるいは、画面の下端の境界を示す値である−Ｙｍａｘよりも小さいかを判定する（例えば、画面解像度がＶＧＡ（６４０×４８０）とすると、Ｙｍａｘは”２４０”、−Ｙｍａｘは”−２３９”となる）。当該判定の結果、Ｕｎｙの値が−Ｙｍａｘより大きく、かつＹｍａｘより小さいときは（ステップＳ２７でＮＯ）、そのままターゲット点算出処理を終了する。
【０１３９】
一方、ステップＳ２７の判定の結果、Ｕｎｙの値がＹｍａｘより大きいとき、あるいは、−Ｙｍａｘよりも小さいときは（ステップＳ２７でＹＥＳ）、上記処理対象となるユニットは画面表示領域外にいることになるため、上記ステップＳ２５と同様に、ＣＰＵ１０は、処理対象ユニットに対応するユニットアイコンの表示フラグ１２６２をオンに設定する（ステップＳ２８）。続いて、ユニットアイコンの表示位置を決定するために、ＣＰＵ１０は、ターゲット点Ｔの値を以下の式で算出する（ステップＳ２９）。
Ｔ＝Ｕｎｅｗ×｜Ｙｍａｘ／Ｕｙ｜
以上で、ターゲット点算出処理は終了する。
【０１４０】
図３５に戻り、次に、ＣＰＵ１０は、上記ステップＳ１１の処理の結果、処理対象となるユニットに対応するユニットアイコンの表示フラグ１２６２がオフに設定されているか否かを判定する（ステップＳ１２）。当該判定の結果、表示フラグ１２６２がオフに設定されているときは（ステップＳ１２でＹＥＳ）、ＣＰＵ１０は、当該対応するユニットアイコンが画面に表示されていれば当該ユニットアイコンを画面から消去して（ステップＳ１３）、後述のステップＳ１８に処理を進める。
【０１４１】
一方、表示フラグがオフではないとき、すなわち、表示フラグがオンのときは（ステップＳ１２でＮＯ）、ＣＰＵ１０は、直前のフレームにおいて上記処理対象となるユニットに対応するユニットアイコンが表示されていたか否かを判定する（ステップＳ１４）。その結果、表示されていなかったときは（ステップＳ１４でＮＯ）、例えば画面スクロールの結果、プレイヤユニットが画面に表示されなくなった直後のような場合であると考えられる。このときは、ＣＰＵ１０は、その時点での当該ユニットのステータスデータ１２４１または１２５１（ＨＰの残量等）に基づいたユニットアイコン画像を生成し、上記ターゲット点Ｔの位置に表示する（ステップＳ１５）。このとき、ＣＰＵ１０は、ユニットアイコン全体が画面内に収まって表示されるように、ユニットアイコンの中点を上記ターゲット点Ｔから所定距離だけずらして表示する。そして、ＣＰＵ１０は、後述のステップＳ１７へと処理を進める。
【０１４２】
一方、ステップＳ１４の判定の結果、直前のフレームでユニットアイコンが既に表示されていたと判定したときは（ステップＳ１４でＹＥＳ）、ＣＰＵ１０は、処理対象となるユニットに対応するユニットアイコンの表示位置を上記算出されたターゲット点Ｔに近づける処理を行う（ステップＳ１６）。すなわち、ＣＰＵ１０は、当該ユニットアイコンの中点を上記算出されたターゲット点Ｔに向けて所定の距離だけ移動させる処理を行う。このような処理が１フレーム毎に繰り返される結果、画面スクロールに伴って、ユニットアイコンが画面内においてその対応するユニットへの最寄りの位置へ随時移動するように表示されることになる。またこのとき、ユニットアイコンの画像内容が、対応するユニットのステータスデータや部下ユニットデータに応じて更新される。例えば、ＨＰの残量が所定値以下のときは、苦しい表情をしている画像に更新する。また、味方ユニットの場合は、部下ユニットの数に応じてバー１３２１（図２１参照）の数を増減させて画像を更新する。
【０１４３】
次に、ＣＰＵ１０は、上記ステップＳ１１〜Ｓ１６の処理を、プレイヤユニットおよび味方ユニット全てについて行ったか否かを判定する（ステップＳ１７）。当該判定の結果、まだ未処理のユニットが残っていれば（ステップＳ１７でＮＯ）、未処理のユニットを処理対象ユニットに設定して、上記ステップＳ１１に戻って処理を繰り返す（ここでは、プレイヤユニット→味方ユニットＡ〜Ｄの順に処理されるものとする）。
【０１４４】
一方、全てのユニットについて処理が済んでいれば（ステップＳ１７でＹＥＳ）、次に、ＣＰＵ１０は、アイコンリストを生成する処理を実行する（ステップＳ１８）。このステップＳ１８の処理を、図３７を用いてより具体的に説明すると、まず、ＣＰＵ１０は、現在表示されているユニットアイコンについて、図３７に示すようなアイコンリスト２０１を外部メインメモリ１２内に生成する（なお、図３７では、全てのユニットアイコンが表示されている場合を例としている）。当該アイコンリスト２０１は、ユニットアイコンＡ〜Ｅのそれぞれについて画面中心までの距離を示すためのリストである。次に、当該アイコンリスト２０１を、画面中心までの距離の降順でソートし、リスト２０２を生成する。当該ソート後のリスト２０２が、次に説明する衝突判定処理において用いられる。
【０１４５】
次に、ＣＰＵ１０は、衝突判定処理を実行する（ステップＳ１９）。この処理では、画面に表示されている複数のユニットアイコンが重なって表示されないように、表示位置を調整するための処理がおこなわれる。より具体的には、リスト２０２の先頭から順に各ユニットアイコンについて、リスト内において自身よりも上にあるユニットアイコン全てに対して、上から順に衝突判定（円の形状に見立てたアイコン同士が交差しているかどうか；上記図３３参照）を行い、交差している分だけ、自身を画面中心に向けて移動させる処理が行われる（上述の図３４参照）。これは、上記のように本ゲームではユニットアイコンをドラッグする操作が可能であるところ、ユニットアイコンが重なった状態で表示されていると当該ドラッグ操作の操作性が著しく低下する（プレイヤが所望するユニットアイコンをドラッグできなくなる）ために、ユニットアイコンが重ならないように調整して操作性をより高めるものである。
【０１４６】
図３８は、上記ステップＳ１９で示した衝突判定処理の詳細を示すフローチャートである。図３８において、まず、ＣＰＵ１０は、上記リスト２０２を参照し、当該リスト２０２に登録されているユニットアイコンの数（すなわち、表示されているユニットアイコンの数）が２以上であるか否かを判定する（ステップＳ４１）。
【０１４７】
当該判定の結果、ユニットアイコン数が２以上ではないと判定したときは（ステップＳ４１でＮＯ）、ＣＰＵ１０は、そのまま衝突判定処理を終了する。ユニットアイコンが一つだけしか表示されていないため、表示位置の調整は不要だからである。一方、ユニットアイコン数が２以上であると判定したときは（ステップＳ４１でＹＥＳ）、ＣＰＵ１０は、変数ｎに”１”を設定し（ステップＳ４２）、更に、変数ｍに”２”を設定する（ステップＳ４３）。この値は、上記リストの上から何番目に登録されているアイコンであるかを示すための値として用いられる。以下、リスト２０２の上からｎ番目のユニットアイコンを”アイコンｎ”と呼び、リスト２０２の上からｍ番目のユニットアイコンを”アイコンｍ”と呼ぶ。
【０１４８】
次に、ＣＰＵ１０は、アイコンｎおよびアイコンｍの中点の画面上の座標（２次元での座標）を取得する（ステップＳ４４）。
【０１４９】
続いて、ＣＰＵ１０は、ステップＳ４４で取得した座標に基づき、アイコンｎとアイコンｍの中点間の距離（直線距離での画素数）を算出する（ステップＳ４５）。次に、ＣＰＵ１０は、アイコンｎの半径値１２６４およびアイコンｍの半径値１２６４の合計値（以下、合計半径値と呼ぶ）を算出する。そして、ＣＰＵ１０は、上記算出した中点間の距離が当該合計半径値以下であるか否かを判定する（ステップＳ４６）。当該判定の結果、中点間の距離が当該合計半径値以下ではないときは（ステップＳ４６でＮＯ）、後述するステップＳ４９の処理に進む。
【０１５０】
一方、中点間の距離が当該合計半径値以下のときは（ステップＳ４６でＹＥＳ）、アイコンｎとアイコンｍの表示位置について少なくともその一部が重なることになる。そのため、画面中心に近いほうに位置するアイコンｍの表示位置を調整する処理が行われる。具体的には、まず、アイコンｍの目標座標が算出される（ステップＳ４７）。このステップＳ４７の処理をより具体的に説明すると、まず、ＣＰＵ１０は、アイコンｎからアイコンｍへのベクトルを算出する。続いて、ＣＰＵ１０は、当該算出したベクトルを正規化する（長さを１にする）。以下、当該正規化したベクトルをベクトルＶと呼ぶ。そして、ＣＰＵ１０は、アイコンｍの目標座標を以下の式を用いて算出する。
目標座標＝（ベクトルＶ  ×  合計半径値）＋アイコンｎの中心座標
【０１５１】
アイコンｍの目標座標を算出すれば、次に、ＣＰＵ１０は、当該目標座標に向けてアイコンｍの中点を所定距離だけ移動させる（ステップＳ４８）。
【０１５２】
次に、ＣＰＵ１０は、変数ｎに１を加算する（ステップＳ４９）。続いて、ＣＰＵ１０は、変数ｎが変数ｍと等しいか否かを判定する（ステップＳ５０）。その結果、等しくないときは（ステップＳ５０でＮＯ）、上記ステップＳ４４に戻って処理を繰り返す。一方、変数ｎが変数ｍと等しいときは（ステップＳ５０でＹＥＳ）、ＣＰＵ１０は、変数ｍに１を加算する（ステップＳ５１）。
【０１５３】
次に、ＣＰＵ１０は、リスト２０２内の全てのアイコンについて全て処理したか否かを判定する（ステップＳ５２）。その結果、まだ未処理のアイコンが残っていれば（ステップＳ５２でＮＯ）、変数ｎに”１”を設定して（ステップＳ５３）、ステップＳ４４に戻り処理を繰り返す。一方、全てのアイコンを処理したと判定されたときは（ステップＳ５２でＹＥＳ）、当該衝突判定概要を終了する。
【０１５４】
図３５に戻り、ステップＳ１９の衝突判定処理が終了すれば、アイコン整列処理は終了する。
【０１５５】
図３１に戻り、ステップＳ２のアイコン整列処理の次に、ＣＰＵ１０は、操作判定処理を実行する（ステップＳ３）。
【０１５６】
図３９は、上記ステップＳ３で示した操作判定処理の詳細を示すフローチャートである。図３９において、まず、ＣＰＵ１０は、プレイヤによるドラッグ操作が行われたか否かをコントローラ７から取得される操作データに基づいて判定する（ステップＳ６１）。当該判定の結果、ドラッグ操作が行われていないときは（ステップＳ６１でＮＯ）、ＣＰＵ１０は後述するドラッグオフ処理を実行する（ステップＳ６８）。
【０１５７】
一方、ドラッグ操作が行われたと判定したときは（ステップＳ６１でＹＥＳ）、ＣＰＵ１０は、直前のフレーム（直前の処理ループ）において、指示アイコン１０７が画面に表示されていたか否かを判定する（ステップＳ６２）。これは、１フレーム前の指示アイコンの表示状態を示すためのフラグ（図示は省略する）を用いる等して判定すればよい。
【０１５８】
当該判定の結果、直前のフレームにおいて指示アイコンが表示されていないときは（ステップＳ６２でＮＯ）、ドラッグ操作が行われた直後であると考えられる。そのため、ＣＰＵ１０は、プレイヤユニット１０１、各味方ユニット１０２、およびこれらに対応する各ユニットアイコン１３１、１３２と、カーソル１０５との衝突判定を行う（ステップＳ６３）。換言すれば、プレイヤユニット１０１、味方ユニット１０２、あるいはユニットアイコン１３１や１３２をコントローラ７でポインティングした状態でドラッグ操作を行ったか否かの判定が行われる。
【０１５９】
ここで、カーソル１０５はコントローラ７のポインティング座標に表示されるが、このポインティング座標の算出方法の一例を説明する。コントローラ７から取得される操作データには、上記マーカ座標を示すデータが含まれる。当該データは、マーカ８Ｌおよび８Ｒに対応する２つのマーカ座標（図８参照）を示すので、まずＣＰＵ１０は、２つのマーカ座標の中点を算出する。この中点の位置は、撮像画像に対応する平面上の位置を表すための上記ｘｙ座標系によって表現される。次に、ＣＰＵ１０は、当該中点の位置を示す座標を、テレビ２の画面上の位置を表すための座標系（ｘ'ｙ'座標系とする）の座標に変換する。この変換は、ある撮像画像から算出される中点の座標を、当該撮像画像が撮像される時のコントローラ７の実際の指示位置に対応する画面上の座標に変換する関数を用いて行うことができる。その際、コントローラ７の指示位置と、撮像画像内でのマーカ座標の位置とは逆方向に移動することになるので、上下左右が反転するような変換を行う。以上のようにして算出されたｘ'ｙ'座標値により示される値がコントローラ７のポインティング座標となり、カーソル１０５は、当該座標に合わせて表示される。
【０１６０】
ステップＳ６３の判定の結果、カーソル１０５がいずれかのユニットあるいはユニットアイコンと衝突していないときは（ステップＳ６４でＮＯ）、ＣＰＵ１０は、そのまま操作判定処理を終了する。一方、カーソル１０５がいずれかのユニットあるいはユニットアイコンと衝突していれば（ステップＳ６４でＹＥＳ）、ＣＰＵ１０は、衝突しているユニットまたはユニットアイコンに対応づけて指示アイコン１０７を生成し、衝突しているユニットまたはユニットアイコンに重ねて表示する（ステップＳ６５）。また、これに併せて、ＣＰＵ１０は、上述したような情報アイコン１０８を生成して表示する。具体的には、上記作戦行動の対象となり得るユニットやオブジェクト（敵ユニット１０４や宝箱１０６）が画面内に存在するか否かを判定し、存在するときは、各ユニットやオブジェクトに対して可能な作戦行動を示す情報アイコンを生成する。そして、ＣＰＵ１０は、当該情報アイコン１０８を当該情報アイコン１０８に対応するユニットやオブジェクトに重ねて表示する。そして、ＣＰＵ１０は、操作判定処理を終了する。
【０１６１】
一方、ステップＳ６２の判定の結果、直前のフレームにおいて指示アイコンが表示されていたときは（ステップＳ６２でＹＥＳ）、ドラッグ状態が継続している状態であるため、ＣＰＵ１０は、指示アイコン１０７をカーソル１０５の表示位置に移動する（ステップＳ６６）。このとき、指示アイコン１０７が、画面内に表示されているいずれかの情報アイコン１０８と衝突したときは、当該情報アイコン１０８のサイズを所定の倍率だけ大きくして表示する。
【０１６２】
次に、ＣＰＵ１０は、指示アイコン１０７とユニットとを結ぶ破線軌跡１０９（図１３参照）を生成して表示する（ステップＳ６７）。ここで、当該破線軌跡１０９は、図４０に示すように、対応するユニットからの距離に応じて、破線の間隔や破線を構成している一つ一つの線の長さが大きくなる。つまり、指示アイコン１０７と対応するユニットとの距離の長さに応じて表示内容が変わる。これにより、これから命令を出そうとするユニットが現在の表示位置から仮想空間内においてどの程度離れた所にいるかをプレイヤに直感的に把握させることができる。破線軌跡１０９を表示すれば、ＣＰＵ１０は操作判定処理を終了する。
【０１６３】
次に、上記ステップＳ６１の判定の結果、ドラッグ操作が行われていないときの処理（ステップＳ６１でＮＯ）について説明する。図４１は、上記ステップＳ６８で示したドラッグオフ処理の詳細を示すフローチャートである。図４１において、まず、ＣＰＵ１０は、直前のフレームにおいて、指示アイコン１０７が画面に表示されていたか否かを判定する（ステップＳ７１）。当該判定の結果、直前のフレームで指示アイコン１０７が画面に表示されていないときは（ステップＳ７１でＮＯ）、ＣＰＵ１０は、そのままドラッグオフ処理を終了する。
【０１６４】
一方、直前のフレームで指示アイコン１０７が画面に表示されていたとき（つまり、ドラッグ状態を解除した直後の状態に相当する；ステップＳ７１でＹＥＳ）は、次に、ＣＰＵ１０は、指示アイコン１０７と作戦行動の対象となり得るユニットやオブジェクト（敵部隊や宝箱１０６等）との衝突判定を行う（ステップＳ７２）。そして、ＣＰＵ１０は、ステップＳ７２の処理の結果、いずれかのユニットまたはオブジェクトと指示アイコン１０７とが衝突しているか否かを判定し（ステップＳ７３）、衝突していると判定したときは（ステップＳ７３でＹＥＳ）、ＣＰＵ１０は、当該衝突しているユニットまたはオブジェクトを作戦行動の対象として指定する。そして、当該衝突しているユニットまたはオブジェクトに応じた作戦行動を指示アイコン１０７に対応づけられているプレイヤユニット１０１または味方ユニット１０２（味方部隊）に開始させる（ステップＳ７４）。例えば、敵部隊と衝突している場合は、当該敵部隊を攻撃目標として設定して攻撃処理を開始させ、宝箱１０６と衝突している場合は、当該宝箱を取得するための処理を開始させる。
【０１６５】
次に、ＣＰＵ１０は、指示アイコン１０７を画面から消去する（ステップＳ７７）。そして、ＣＰＵ１０は、ドラッグオフ処理を終了する。
【０１６６】
一方、上記ステップＳ７３の判定の結果、いずれかのユニットまたはオブジェクトと指示アイコン１０７とは衝突していないと判定したときは（ステップＳ７３でＮＯ）、ＣＰＵ１０は、指示アイコン１０７の位置に対応する仮想ゲーム空間内の地点が、プレイヤユニット１０１または味方ユニット１０２が進入可能として設定されている地形や場所であるか否かを判定する（ステップＳ７５）。当該判定の結果、進入可能な場所であれば（ステップＳ７５でＹＥＳ）、ＣＰＵ１０は、当該地点を目標地点として設定し、指示アイコン１０７に対応づけられているプレイヤユニット１０１または味方ユニット１０２を移動させる（ステップＳ７６）。そして、上記ステップＳ７７の処理を実行する。一方、進入可能な場所でないときは（ステップＳ７５でＮＯ）、ＣＰＵ１０は、ステップＳ７６の処理は行わずにステップＳ７７に進み、指示アイコン１０７を消去する処理を実行する。以上で、ドラッグオフ処理は終了する。図３９に戻り、ドラッグオフ処理が終了すれば、操作判定処理も終了する。
【０１６７】
図３１に戻り、ステップＳ３の操作判定処理が終了すれば、ステップＳ４において、ＣＰＵ１０は、ゲーム終了か否かを判断し、ＹＥＳの場合、ゲーム処理を終了し、ＮＯの場合、ステップＳ２に戻って、ゲーム処理を繰り返す。以上で、本実施形態にかかるゲーム処理の説明を終了する。
【０１６８】
以上のように、本実施形態では、画面内に味方ユニット等が表示されていないときでも、プレイヤはユニットアイコンを利用して素早い指示・命令を味方ユニット１０２等に出すことが可能となる。これにより、リアルタイム性のあるゲーム等において、より操作性を高めることができ、ゲームの興趣性を高めることができる。
【０１６９】
また、本実施形態では、ユニットアイコンを画面に表示する際、対応するユニットの位置に応じて適宜表示位置を変更している。そのため、画面外のユニットの存在する方向をプレイヤに直感的に把握させることができる。更に、複数のユニットアイコンを画面に表示するときは、ユニットアイコン同士が重なって表示されないように表示位置を調整するため、操作性が低下することを防ぐこともできる。また、ユニットアイコンの画像として、対応するユニットのＨＰ等の状態や味方ユニットに関しては部下ユニットの数を示す画像を表示することにより、画面外のユニットの状態等について直感的にプレイヤに把握させることができる。
【０１７０】
なお、ユニットアイコン１３１や１３２の画像に関して、上記実施形態では、ＨＰの残量等のステータスデータに応じた画像を表示させるようにしていたが、この他、ユニットアイコンに対応しているユニットの顔画像を適宜表示するようにしても良い。例えば、図４２に示すようにユニットアイコン１３１が画面に表示されているとき、カーソル１０５がユニットアイコン１３１から所定距離内に近づいたときに、図４３に示すように、ユニットアイコン１３１に対応するユニット（ここでは、プレイヤユニット１０１）のキャラクタを表す顔画像をユニットアイコン１３１に表示するようにしてもよい。更にこのとき、ユニットアイコン１３１のサイズを少し大きく変化させてもよい。これにより、複数のユニットアイコンが表示されているとき、どのユニットアイコンがどのユニットに対応するかをプレイヤに直感的に把握させやすくすることができる。
【０１７１】
また、画面のスクロール操作に関しては、上述の実施形態では、十字キー７２ａを用いた例を挙げたが、これに限らず、例えば、アナログスティックを利用して画面スクロール操作を可能としても良い。例えば、コントローラ７のコネクタ７３に所定のアナログスティックを備えたデバイスを接続し、当該アナログスティックの操作データもゲーム装置３本体に送信するように構成して、アナログスティックの操作に応じて画面をスクロールするように制御しても良い。また、図４４に示すように、ゲーム画面の上下左右の端に画面スクロール用のアイコン３０１ａ〜ｄを表示し、図４５に示すように、当該アイコンをドラッグすれば、各アイコンの応じた方向に画面がスクロールするようにしてもよい。図４５の例では、上方向に画面がスクロールすることになる。また、アイコン３０１ａ〜ｄは表示せずに、カーソル１０５が画面端の所定の領域（例えば、図４４のアイコン３０１ａ〜ｄが表示されている領域とほぼ同じ大きさの領域を当該所定の領域とする）内に入った時点で、画面をスクロールさせるようにしてもよい。これにより、画面スクロールの操作性を向上することが可能となる。
【０１７２】
また、本実施例では、上記のようなマーカ８Ｒおよび８Ｌと、撮像情報演算部７４を有するコントローラ７とで実現されるポインティングデバイスを用いたゲーム装置を例に説明したが、これに限らず、例えば、１つまたは２つの表示装置を備え、当該表示装置の画面上にタッチパネルを備えた携帯端末や携帯型ゲーム装置であってもよい。つまり、操作領域に対するプレイヤの指示位置を検出する装置としてタッチパネルを用いる構成としても良い。その他、プレイヤが所定領域内の位置を指示できるポインティングデバイスであればよく、例えば、画面上の任意位置を指示可能なマウス、表示画面を持たない操作面上の任意位置を指示するタブレットなどを用いた構成でもよい。
【産業上の利用可能性】
【０１７３】
本発明にかかる情報処理プログラムおよび情報処理装置は、命令対象オブジェクトに対する命令操作についての操作性を向上することができ、複数の命令対象オブジェクトが登場するＲＴＳ等のゲームが実行されるゲーム装置等に有用である。
【図面の簡単な説明】
【０１７４】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体５の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上ハウジングを外した状態を示す斜視図
【図６】図３のコントローラ７の下ハウジングを外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】撮像画像の一例を示す図
【図９】本実施形態で想定するゲームの画面の一例
【図１０】操作方法について説明するための図
【図１１】仮想ゲーム空間全体と画面の表示領域との関係を示した図
【図１２】本実施形態で想定するゲームの画面の一例
【図１３】本実施形態で想定するゲームの画面の一例
【図１４】本実施形態で想定するゲームの画面の一例
【図１５】本実施形態で想定するゲームの画面の一例
【図１６】本実施形態で想定するゲームの画面の一例
【図１７】本実施形態で想定するゲームの画面の一例
【図１８】仮想ゲーム空間全体と画面の表示領域との関係を示した図
【図１９】仮想ゲーム空間全体と画面の表示領域との関係を示した図
【図２０】本実施形態で想定するゲームの画面の一例
【図２１】図２０のユニットアイコン１３１および１３２を拡大した図
【図２２】仮想ゲーム空間全体と画面の表示領域との関係を示した図
【図２３】本実施形態で想定するゲームの画面の一例
【図２４】本実施形態で想定するゲームの画面の一例
【図２５】本実施形態で想定するゲームの画面の一例
【図２６】仮想ゲーム空間全体と画面の表示領域との関係を示した図
【図２７】本実施形態で想定するゲームの画面の一例
【図２８】本実施形態で想定するゲームの画面の一例
【図２９】仮想ゲーム空間全体と画面の表示領域との関係を示した図
【図３０】図３に示した外部メインメモリ１２のメモリマップを示す図
【図３１】本発明の実施形態に係るゲーム処理を示すフローチャート
【図３２】アイコン整列処理の概要説明のための図
【図３３】アイコン整列処理の概要説明のための図
【図３４】アイコン整列処理の概要説明のための図
【図３５】図３１のステップＳ２で示したアイコン整列処理の詳細を示すフローチャート
【図３６】図３５のステップＳ１１で示したターゲット点算出処理の詳細を示すフローチャート
【図３７】アイコンリストの一例
【図３８】図３５のステップＳ１９で示した衝突判定処理の詳細を示すフローチャート
【図３９】図３１のステップＳ３で示した操作判定処理の詳細を示すフローチャート
【図４０】破線軌跡の一例
【図４１】図３９のステップＳ６８で示したドラッグオフ処理の詳細を示すフローチャート
【図４２】本実施形態で想定するゲームの画面の一例
【図４３】本実施形態で想定するゲームの画面の一例
【図４４】本実施形態で想定するゲームの画面の一例
【図４５】本実施形態で想定するゲームの画面の一例
【符号の説明】
【０１７５】
１…ゲームシステム
２…テレビ
２ａ…スピーカ
３…ゲーム装置
４…光ディスク
７…コントローラ
１０…ＣＰＵ
１１…システムＬＳＩ
１１ａ…入出力プロセッサ
１１ｂ…ＧＰＵ
１１ｃ…ＤＳＰ
１１ｄ…ＶＲＡＭ
１１ｅ…内部メインメモリ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２…アンテナ
２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
【図１】
0005522902.tif 000002
【図２】
0005522902.tif 000003
【図３】
0005522902.tif 000004
【図４】
0005522902.tif 000005
【図５】
0005522902.tif 000006
【図６】
0005522902.tif 000007
【図７】
0005522902.tif 000008
【図８】
0005522902.tif 000009
【図９】
0005522902.tif 000010
【図１０】
0005522902.tif 000011
【図１１】
0005522902.tif 000012
【図１２】
0005522902.tif 000013
【図１３】
0005522902.tif 000014
【図１４】
0005522902.tif 000015
【図１５】
0005522902.tif 000016
【図１６】
0005522902.tif 000017
【図１７】
0005522902.tif 000018
【図１８】
0005522902.tif 000019
【図１９】
0005522902.tif 000020
【図２０】
0005522902.tif 000021
【図２１】
0005522902.tif 000022
【図２２】
0005522902.tif 000023
【図２３】
0005522902.tif 000024
【図２４】
0005522902.tif 000025
【図２５】
0005522902.tif 000026
【図２６】
0005522902.tif 000027
【図２７】
0005522902.tif 000028
【図２８】
0005522902.tif 000029
【図２９】
0005522902.tif 000030
【図３０】
0005522902.tif 000031
【図３１】
0005522902.tif 000032
【図３２】
0005522902.tif 000033
【図３３】
0005522902.tif 000034
【図３４】
0005522902.tif 000035
【図３５】
0005522902.tif 000036
【図３６】
0005522902.tif 000037
【図３７】
0005522902.tif 000038
【図３８】
0005522902.tif 000039
【図３９】
0005522902.tif 000040
【図４０】
0005522902.tif 000041
【図４１】
0005522902.tif 000042
【図４２】
0005522902.tif 000043
【図４３】
0005522902.tif 000044
【図４４】
0005522902.tif 000045
【図４５】
0005522902.tif 000046