(57)【要約】【課題】  仮想空間における表示領域をユーザが自由に設定することができる画像処理プログラムおよび画像処理装置を提供する。【解決手段】  ゲーム装置は、予め決められた画面上の基準座標を始点とし、入力座標を終点とする差分ベクトルを算出する。さらに、操作対象オブジェクトの位置から一意に決められる仮想空間内の固定点を基点とし、差分ベクトルの方向に基づいた仮想空間内の方向と、差分ベクトルの大きさに基づいた仮想空間内の距離とによって決められる位置まで注視点を移動させるための移動指標データを算出する。注視点は、移動指標データに基づいて移動される。ゲーム装置は、注視点の移動に応じて移動された仮想カメラに基づいた画像を生成し、当該画像を表示装置の画面に表示させる。【選択図】  図３
2006331109.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが指示した表示装置の画面上の点に対応する入力座標を出力する入力装置を備え、ユーザによって操作可能な操作対象オブジェクトが配置された３次元の仮想空間に設定される注視点に応じてその位置が設定される仮想カメラを用いて、当該操作オブジェクトを含む仮想空間内の画像を前記画面に表示する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
前記入力装置によって出力された入力座標を取得する取得ステップと、
予め決められた前記画面上の基準座標を始点とし、前記入力座標を終点とする差分ベクトルを算出する第１算出ステップと、
前記操作対象オブジェクトの位置から一意に決められる前記仮想空間内の固定点を基点とし、前記差分ベクトルの方向に基づいた前記仮想空間内の方向と前記差分ベクトルの大きさに基づいた前記仮想空間内の距離とによって決められる位置まで前記注視点を移動させるための移動指標データを算出する第２算出ステップと、
前記移動指標データに基づいて前記注視点を移動させる移動制御ステップと、
前記注視点の移動に応じて移動された仮想カメラに基づいた画像を生成し、当該画像を前記表示装置の画面に表示させる表示制御ステップと、を前記コンピュータに実行させる画像処理プログラム。
【請求項２】
前記第２算出ステップにおいては、前記固定点を基点として、前記差分ベクトルの方向に基づいた前記仮想空間内の方向と前記差分ベクトルの大きさに基づいた前記仮想空間内の距離とによって決められる前記仮想空間内の目標点を示す座標データが前記移動指標データとして算出され、
前記移動制御ステップにおいては、前記注視点は前記目標点へ移動される、請求項１に記載の画像処理プログラム。
【請求項３】
前記移動制御ステップにおいては、前記目標点に徐々に近づくように当該注視点が移動される、請求項２に記載の画像処理プログラム。
【請求項４】
前記第２算出ステップにおいては、前記目標点に前記注視点を移動させた場合に前記画面から前記操作対象オブジェクトが外れないように前記移動指標データが算出される、請求項１または２に記載の画像処理プログラム。
【請求項５】
前記入力装置に対する入力が検出されなくなったことを検知する検知ステップを前記コンピュータにさらに実行させ、
前記第２算出ステップにおいては、前記検知ステップで入力が検出されなくなったことが検知されたとき、前記固定点に前記注視点を移動させる移動指標データが算出される、請求項１に記載の画像処理プログラム。
【請求項６】
ユーザが指示した表示装置の画面上における入力座標を出力する入力装置を備え、ユーザによって操作可能な操作対象オブジェクトが配置された仮想空間において当該操作対象オブジェクトを含むように設定される表示領域内の画像を前記画面に表示する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
前記入力装置によって出力された入力座標を取得する取得ステップと、
予め決められた前記画面上の基準座標を始点とし、前記入力座標を終点とする差分ベクトルを算出する第１算出ステップと、
前記操作対象オブジェクトの位置から一意に決められる前記仮想空間内の固定点を基点とし、前記差分ベクトルの方向に基づいた前記仮想空間内の方向と前記差分ベクトルの大きさに基づいた前記仮想空間内の距離とによって決められる位置に当該表示領域を移動させるための移動指標データを算出する第２算出ステップと、
前記移動指標データに基づいて前記表示領域を移動させる移動制御ステップと、
前記移動された表示領域内の前記仮想空間の画像を前記表示装置に表示させる表示制御ステップと、を前記コンピュータに実行させる、画像処理プログラム。
【請求項７】
前記第２算出ステップにおいては、前記固定点を基点として、前記差分ベクトルの方向に基づいた前記仮想空間内の方向と前記差分ベクトルの大きさに基づいた前記仮想空間内の距離とによって決められる前記仮想空間内の目標点を示す座標データが前記移動指標データとして算出され、
前記移動制御ステップにおいては、前記表示領域内の予め決められた所定点が前記目標点に一致するように前記表示領域が移動される、請求項６に記載の画像処理プログラム。
【請求項８】
前記移動制御ステップにおいては、前記表示領域内の前記所定点が前記目標点に徐々に近づくように前記表示領域が移動される、請求項７に記載の画像処理プログラム。
【請求項９】
前記第２算出ステップにおいては、前記目標点に前記表示領域を移動させた場合に前記画面から前記操作対象オブジェクトが外れないように前記移動指標データが算出される、請求項６または請求項７に記載の画像処理プログラム。
【請求項１０】
前記入力装置に対する入力が検出されなくなったことを検知する検知ステップを前記コンピュータにさらに実行させ、
前記第２算出ステップにおいては、前記検知ステップで入力が検出されなくなったことが検知されたとき、前記固定点が前記基準座標の位置に表示されるように前記表示領域を移動させる移動指標データが算出される、請求項６に記載の画像処理プログラム。
【請求項１１】
前記第２算出ステップは、
前記仮想空間におけるベクトルである空間ベクトルを前記差分ベクトルに基づいて算出する空間ベクトル算出ステップと、
前記固定点を基点として前記空間ベクトルの終点の位置に前記目標点を設定する目標点設定ステップとを含み、
前記空間ベクトル算出ステップは、前記空間ベクトルの大きさが所定の上限値以下となるように、前記差分ベクトルまたは前記空間ベクトルの少なくとも一方を補正する第１補正ステップをさらに含む、請求項２または請求項７に記載の画像処理プログラム。
【請求項１２】
前記第２算出ステップは、
前記仮想空間におけるベクトルである空間ベクトルを前記差分ベクトルに基づいて算出する空間ベクトル算出ステップと、
前記固定点を基点として前記空間ベクトルの終点の位置に前記目標点を設定する目標点設定ステップとを含み、
前記空間ベクトル算出ステップにおいては、前記仮想区間における第１方向に関する前記空間ベクトルの成分は、前記画面上における第３方向に関する前記差分ベクトルの成分に基づいて算出され、前記第１方向に垂直な第２方向に関する前記空間ベクトルの成分は、前記第３方向に垂直な第４方向に関する前記差分ベクトルの成分に基づいて算出される、請求項２または請求項７に記載の画像処理プログラム。
【請求項１３】
前記仮想空間は、前記操作対象オブジェクトがその上を移動することが可能な所定面を有しており、
前記仮想カメラは、前記第２方向に垂直で、かつ、前記所定面に対して９０°未満の俯角で視線方向が設定されており、
前記第３方向は、前記注視点を通って前記視線方向に延びる直線が画面に表示されるときの当該直線の画面上における方向に平行であり、
前記空間ベクトル算出ステップは、前記空間ベクトルの前記第１方向の成分に対する前記第２方向の成分の割合が、前記差分ベクトルの前記第３方向の成分に対する前記第４方向の成分の割合に比べて大きくなるように、前記差分ベクトルまたは前記空間ベクトルの少なくとも一方を補正する第２補正ステップを含む、請求項１２に記載の画像処理プログラム。
【請求項１４】
ユーザが指示した表示装置の画面上の点に対応する入力座標を出力する入力装置を備え、ユーザによって操作可能な操作対象オブジェクトが配置された３次元の仮想空間に設定される注視点に応じてその位置が設定される仮想カメラを用いて、当該操作オブジェクトを含む仮想空間内の画像を前記画面に表示する画像処理装置であって、
前記入力装置によって出力された入力座標を取得する取得手段と、
予め決められた前記画面上の基準座標を始点とし、前記入力座標を終点とする差分ベクトルを算出する第１算出手段と、
前記操作対象オブジェクトの位置から一意に決められる前記仮想空間内の固定点を基点とし、前記差分ベクトルの方向に基づいた前記仮想空間内の方向と前記差分ベクトルの大きさに基づいた前記仮想空間内の距離とによって決められる位置まで前記注視点を移動させるための移動指標データを算出する第２算出手段と、
前記移動指標データに基づいて前記注視点を移動させる移動制御手段と、
前記注視点の移動に応じて移動された仮想カメラに基づいた画像を生成し、当該画像を前記表示装置の画面に表示させる表示制御手段とを備える、画像処理装置。
【請求項１５】
ユーザが指示した表示装置の画面上における入力座標を出力する入力装置を備え、ユーザによって操作可能な操作対象オブジェクトが配置された仮想空間において当該操作対象オブジェクトを含むように設定される表示領域内の画像を前記画面に表示する画像処理装置であって、
前記入力装置によって出力された入力座標を取得する取得手段と、
予め決められた前記画面上の基準座標を始点とし、前記入力座標を終点とする差分ベクトルを算出する第１算出手段と、
前記操作対象オブジェクトの位置から一意に決められる前記仮想空間内の固定点を基点とし、前記差分ベクトルの方向に基づいた前記仮想空間内の方向と前記差分ベクトルの大きさに基づいた前記仮想空間内の距離とによって決められる位置に当該表示領域を移動させるための移動指標データを算出する第２算出手段と、
前記移動指標データに基づいて前記表示領域を移動させる移動制御手段と、
前記移動された表示領域内の前記仮想空間の画像を前記表示装置に表示させる表示制御ステップとを備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、より特定的には、仮想空間の領域のうちで画面に表示される領域（表示領域）を移動させるための画像処理プログラムおよび画像処理装置に関する。
【背景技術】
【０００２】
従来、ゲーム装置やゲームプログラム等において、仮想空間に登場するオブジェクトを画面に表示する技術がある。例えば、３次元の仮想のゲーム空間にオブジェクト（キャラクタ）が登場するゲームにおいて、主要な複数のオブジェクトが画面内に収まるように表示領域を決定するゲームがある（例えば、非特許文献１参照。）。このゲームは、複数のキャラクタが登場する格闘ゲームであり、プレイヤは複数のキャラクタのうちの１つを操作する。ゲーム装置は、各キャラクタが画面内に収まるように仮想カメラの位置および向きを自動的に調節する。そして、仮想カメラからゲーム空間を撮影した画像が画面に表示される。これによって、プレイヤは、自己の操作するキャラクタや対戦相手のキャラクタを見失うことなく、ゲームを楽しむことができる。
【非特許文献１】「任天堂公式ガイドブック  大乱闘スマッシュブラザーズＤＸ」、株式会社小学館、２００２年１月２０日、ｐ４
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ここで、ゲームの内容によっては、主要なオブジェクトが画面に表示されているだけでは、必ずしもプレイヤにとって見やすい画面とはならない場合がある。例えば、プレイヤキャラクタがゲーム空間の所定方向に向かって矢を放ったり銃を撃ったりする場合には、当該所定方向の領域を広く画面に表示するべきである。具体的には、プレイヤキャラクタが画面の右上方向に向かって矢を放つ場合、プレイヤキャラクタが画面の左下側に表示されるようにして、プレイヤキャラクタの右上方向の領域を広く画面に表示すべきである。また、プレイヤキャラクタを操作する場合に限らず、ゲーム空間内のある地点を起点として所定方向に向かって何らかの操作を行う場合には、当該所定方向の領域が画面に広く表示されることがプレイヤにとって好ましい。
【０００４】
しかし、上記非特許文献１に記載の方法では、ゲーム空間内の複数のオブジェクトに基づいて表示領域が決定される。したがって、特定のオブジェクトが存在しない領域については、たとえ当該領域がプレイヤが見たい領域であっても、当該領域を中心としたゲーム空間を表示することができなかった。そのため、上述したようなプレイヤキャラクタが矢を放つ場合には、プレイヤにとって見やすい画面を表示することができなかった。
【０００５】
それ故、本発明の目的は、仮想空間における表示領域をユーザが自由に設定することができる画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００７】
第１の発明は、ユーザによって操作可能な操作対象オブジェクト（プレイヤキャラクタ４１）が配置された３次元の仮想空間（ゲーム空間）に設定される注視点に応じてその位置が設定される仮想カメラを用いて、当該操作オブジェクトを含む仮想空間内の画像を画面に表示する画像処理装置（ゲーム装置１０）のコンピュータ（ＣＰＵコア２１等）に実行させる画像処理プログラム（ゲームプログラム）である。なお、画像処理装置は、ユーザが指示した表示装置（第２のＬＣＤ１２）の画面上の点に対応する入力座標を出力する入力装置（タッチパネル１５）を備える。画像処理プログラムは、取得ステップ（Ｓ１３）と、第１算出ステップ（Ｓ１５）と、第２算出ステップ（Ｓ１９およびＳ２０）と、移動制御ステップ（Ｓ２４）と、表示制御ステップ（Ｓ６）とをコンピュータに実行させる。取得ステップにおいては、コンピュータは、入力装置によって出力された入力座標（図９に示す点Ｐ３）を取得する。第１算出ステップにおいては、予め決められた画面上の基準座標（図９に示す点Ｐ２）を始点とし、入力座標を終点とする差分ベクトル（図９に示すベクトルＶ１）を算出する。第２算出ステップにおいては、操作対象オブジェクトの位置から一意に決められる仮想空間内の固定点（図１３に示す点ｐ１）を基点とし、差分ベクトルの方向に基づいた仮想空間内の方向と差分ベクトルの大きさに基づいた仮想空間内の距離とによって決められる位置まで注視点を移動させるための移動指標データ（５８）を算出する（図１３参照）。移動制御ステップにおいては、移動指標データに基づいて注視点を移動させる。表示制御ステップにおいては、注視点の移動に応じて移動された仮想カメラに基づいた画像を生成し、当該画像を表示装置の画面に表示させる。
【０００８】
第２の発明においては、第２算出ステップにおいて、固定点を基点として、差分ベクトルの方向に基づいた仮想空間内の方向と差分ベクトルの大きさに基づいた仮想空間内の距離とによって決められる仮想空間内の目標点（図１３に示す点ｐ２）を示す座標データが移動指標データとして算出されてもよい。このとき、移動制御ステップにおいては、注視点は目標点へ移動される。
【０００９】
第３の発明においては、移動制御ステップにおいて、目標点に徐々に近づくように当該注視点が移動されてもよい。
【００１０】
第４の発明においては、第２算出ステップにおいて、目標点に注視点を移動させた場合に画面から操作対象オブジェクトが外れないように移動指標データが算出されてもよい。
【００１１】
第５の発明においては、画像処理プログラムは、入力装置に対する入力が検出されなくなったことを検知する検知ステップ（Ｓ１２）をコンピュータにさらに実行させてもよい。このとき、第２算出ステップにおいては、検知ステップで入力が検出されなくなったことが検知されたとき、固定点に注視点を移動させる移動指標データが算出される。
【００１２】
第６の発明は、ユーザによって操作可能な操作対象オブジェクト（プレイヤキャラクタ４１）が配置された３次元の仮想空間（ゲーム空間）に設定される注視点に応じてその位置が設定される仮想カメラを用いて、当該操作オブジェクトを含む仮想空間内の画像を画面に表示する画像処理装置（ゲーム装置１０）のコンピュータ（ＣＰＵコア２１等）に実行させる画像処理プログラム（ゲームプログラム）である。なお、画像処理装置は、ユーザが指示した表示装置（第２のＬＣＤ１２）の画面上の点に対応する入力座標を出力する入力装置（タッチパネル１５）を備える。画像処理プログラムは、取得ステップ（Ｓ１３）と、第１算出ステップ（Ｓ１５）と、第２算出ステップ（Ｓ１９およびＳ２０）と、移動制御ステップ（Ｓ２４）と、表示制御ステップ（Ｓ６）とをコンピュータに実行させる。取得ステップにおいては、コンピュータは、入力装置によって出力された入力座標（図９に示す点Ｐ３）を取得する。第１算出ステップにおいては、予め決められた画面上の基準座標（図９に示す点Ｐ２）を始点とし、入力座標を終点とする差分ベクトル（図９に示すベクトルＶ１）を算出する。第２算出ステップにおいては、操作対象オブジェクトの位置から一意に決められる仮想空間内の固定点（図１３に示す点ｐ１）を基点とし、差分ベクトルの方向に基づいた仮想空間内の方向と差分ベクトルの大きさに基づいた仮想空間内の距離とによって決められる位置に当該表示領域を移動させるための移動指標データ（５８）を算出する。移動制御ステップにおいては、移動指標データに基づいて表示領域を移動させる。表示制御ステップにおいては、移動された表示領域内の仮想空間の画像を表示装置に表示させる。
【００１３】
第７の発明においては、第２算出ステップにおいて、固定点を基点として、差分ベクトルの方向に基づいた仮想空間内の方向と差分ベクトルの大きさに基づいた仮想空間内の距離とによって決められる仮想空間内の目標点（図１３に示す点ｐ２）を示す座標データが移動指標データとして算出されてもよい。このとき、移動制御ステップにおいては、表示領域内の予め決められた所定点が目標点に一致するように表示領域が移動される。
【００１４】
第８の発明においては、移動制御ステップにおいて、表示領域内の所定点が目標点に徐々に近づくように表示領域が移動されてもよい。
【００１５】
第９の発明においては、第２算出ステップにおいて、目標点に表示領域を移動させた場合に画面から操作対象オブジェクトが外れないように移動指標データが算出されてもよい。
【００１６】
第１０の発明においては、画像処理プログラムは、入力装置に対する入力が検出されなくなったことを検知する検知ステップ（Ｓ１２）をコンピュータにさらに実行させてもよい。このとき、第２算出ステップにおいては、検知ステップで入力が検出されなくなったことが検知されたとき、固定点が基準座標の位置に表示されるように表示領域を移動させる移動指標データが算出される。
【００１７】
第１１の発明においては、第２算出ステップは、空間ベクトル算出ステップ（Ｓ１９）と、目標点設定ステップ（Ｓ２０）とを含んでいてもよい。空間ベクトル算出ステップにおいては、コンピュータは、仮想空間におけるベクトルである空間ベクトル（図１３に示すベクトルｖ１）を差分ベクトルに基づいて算出する。目標点設定ステップにおいては、固定点を基点として空間ベクトルの終点の位置に目標点を設定する。空間ベクトル算出ステップは、空間ベクトルの大きさが所定の上限値以下となるように、差分ベクトルまたは空間ベクトルの少なくとも一方を補正する第１補正ステップ（Ｓ１６およびＳ１７）をさらに含む。
【００１８】
第１２の発明においては、第２算出ステップは、空間ベクトル算出ステップ（Ｓ１９）と、目標点設定ステップ（Ｓ２０）とを含んでいてもよい。空間ベクトル算出ステップにおいては、コンピュータは、仮想空間におけるベクトルである空間ベクトルを差分ベクトルに基づいて算出する。目標点設定ステップにおいては、固定点を基点として空間ベクトルの終点の位置に目標点を設定する。空間ベクトル算出ステップにおいては、仮想区間における第１方向（図１３に示すｚ軸方向）に関する空間ベクトルの成分は、画面上における第３方向（図１３に示すＹ軸方向）に関する差分ベクトルの成分に基づいて算出され、第１方向に垂直な第２方向（図１３に示すｘ軸方向）に関する空間ベクトルの成分は、第３方向に垂直な第４方向（図１３に示すＸ軸方向）に関する差分ベクトルの成分に基づいて算出される。
【００１９】
第１３の発明においては、仮想空間は、操作対象オブジェクトがその上を移動することが可能な所定面（地面４３）を有していてもよい。このとき、仮想カメラは、第２方向に垂直で、かつ、所定面に対して９０°未満の俯角で視線方向が設定されている。第３方向は、注視点を通って視線方向に延びる直線が画面に表示されるときの当該直線の画面上における方向に平行である。空間ベクトル算出ステップは、空間ベクトルの第１方向の成分に対する第２方向の成分の割合が、差分ベクトルの第３方向の成分に対する第４方向の成分の割合に比べて大きくなるように、差分ベクトルまたは空間ベクトルの少なくとも一方を補正する第２補正ステップを含む。
【００２０】
また、本発明は、上記画像処理プログラムを実行することによって実現される機能と同等の機能を有する画像処理装置の形態で提供されてもよい。
【発明の効果】
【００２１】
第１または第６の発明によれば、プレイヤが指示した入力座標に応じて表示領域が移動する。したがって、プレイヤは、画面上における入力位置を検出可能なポインティングデバイスを用いて表示領域を移動させることができる。また、表示領域の移動量を決定するための差分ベクトルは、画面上における基準座標と入力座標とに基づいて算出されるので、その大きさが制限される。したがって、表示領域の移動範囲を、固定点を中心とした所定の範囲に制限することができ、表示領域が固定点から大きく外れた位置になることはない。例えば、固定点を操作オブジェクトの位置またはその近傍に設定することによって、プレイヤは、操作オブジェクトを中心とした範囲で表示領域を自由に移動させることができる。
【００２２】
第２または第７の発明によれば、目標点を設定することによって、現在の表示領域がどの位置にあっても、プレイヤによる入力に従った位置に表示領域を容易に移動させることができる。
【００２３】
第３または第８の発明によれば、表示領域が急に移動する際に画面が見にくくなることを防止することができる。なお、表示領域が急に移動する場合には、仮想空間の画像が別の画像に切り替わったように見えることから、プレイヤにとっては画像が見づらくなるおそれがある。これに対して、第３または第７の発明によれば、表示領域を次第に移動させることができるので、別の画面に切り替わったような感覚をプレイヤに与えることがなく、プレイヤにとって見やすい画像を表示することができる。
【００２４】
第４または第９の発明によれば、操作対象オブジェクトを画面内に常に表示させることができる。
【００２５】
第５または第１０の発明によれば、プレイヤは、入力装置に対する入力を中止することによって、表示状態を、固定点が基準座標の位置に表示される状態に容易に戻すことができる。これによって、表示領域を移動させる操作の操作性を向上することができる。
【００２６】
第１１の発明によれば、目標点を設定するために用いられる空間ベクトルの大きさが上限値以下の値に制限される。したがって、上限値を適切に設定することによって、操作対象オブジェクトを画面内に常に表示させることができる。
【００２７】
第１２の発明によれば、空間ベクトルを差分ベクトルから簡易な方法で算出することができる。これによれば、２次元の画面の座標系を３次元の仮想空間の座標系に変換する等の複雑な計算が不要となるので、少ない処理量で目標点の位置を計算することができる。
【００２８】
第１３の発明によれば、仮想カメラが所定面に対して９０°未満の俯角を有するように設定される。このとき、空間ベクトルにおける第３方向の成分と第４方向の成分との割合を、差分ベクトルにおける第１方向の成分と第２方向の成分との割合と同じにすると、プレイヤは、表示領域が移動する際に違和感を抱くおそれがある。すなわち、画面における第１方向に関して表示領域の移動量が少ないようにプレイヤが感じるおそれがある。これに対して第１１の発明によれば、差分ベクトルまたは空間ベクトルの方向を補正することによって、プレイヤが抱く上記違和感を軽減することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の一実施形態に係る画像処理プログラムおよび画像処理装置について説明する。まず、画像処理プログラム（ゲームプログラム）を実行する画像処理装置の一例である、携帯型のゲーム装置の構成について説明する。図１は、ゲーム装置の外観図である。図１において、ゲーム装置１０は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１のＬＣＤ１１は上側ハウジング１３ａに収納され、第２のＬＣＤ１２は下側ハウジング１３ｂに収納される。第１のＬＣＤ１１および第２のＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、第１の実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００３０】
上側ハウジング１３ａには、後述する１対のスピーカ（図２の３０）からの音を外部に放出するための音抜き孔１８ａおよび１８ｂが形成されている。
【００３１】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４ＬおよびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２のＬＣＤ１２の画面上にタッチパネル１５（図１に示す２点鎖線）が装着されている。また、下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口（図１に示す一点鎖線）も設けられている。
【００３２】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有している。タッチパネル１５は、プレイヤによる入力位置（入力座標）を所定のサンプリング時間間隔で検出し、上記座標データを出力する。なお、以下ではプレイヤがタッチパネル１５をスティック１６で操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５を操作することももちろん可能である。第１の実施形態では、タッチパネル１５として、第２のＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２のＬＣＤ１２の解像度が一致している必要はない。
【００３３】
メモリカード１７はゲームプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００３４】
次に、図２を参照してゲーム装置１０の内部構成を説明する。図２において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４およびＬＣＤコントローラ３１が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７１と、バックアップデータを書き換え可能に記憶するＲＡＭ１７２を搭載する。メモリカード１７のＲＯＭ１７１に記憶されたゲームプログラムはＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５と、スピーカ３０と、図１の十字スイッチ１４ａやＡボタン１４ｄ等からなる操作スイッチ部１４とが接続される。スピーカ３０は、音抜き孔１８ａおよび１８ｂの内側に配置される。
【００３５】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００３６】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００３７】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎず、本発明は、少なくとも１つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード１７などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【００３８】
次に、ゲーム装置１０においてゲームプログラムを実行することによって行われるゲームの概要を説明する。本ゲームにおいては、プレイヤによって操作されるプレイヤキャラクタおよび敵キャラクタが３次元の仮想のゲーム空間に登場する。プレイヤは、プレイヤキャラクタを操作して敵キャラクタに対して攻撃を行い、敵キャラクタを倒すことを目的としてゲームを行う。以下、本ゲームの概要について図３および図４を用いて説明する。
【００３９】
図３は、本実施形態におけるゲーム画面の一例を示す図である。図３においては、プレイヤキャラクタ４１を含むゲーム空間の画像が第２のＬＣＤ１２に表示される。なお、本実施形態においては、第１のＬＣＤ１１は使用されなくてもよいし、プレイヤキャラクタの体力や能力を示す各種パラメータや、プレイヤキャラクタが所持するアイテム等の情報が第１のＬＣＤ１１に表示されてもよい。
【００４０】
図３において、プレイヤキャラクタ４１は第２のＬＣＤ１２の画面の中心に表示されている。本実施形態では、表示領域を移動する操作（詳細は後述する）が行われるとき以外は、プレイヤキャラクタ４１は画面の中心に表示される。プレイヤキャラクタ４１は、剣や弓矢等のアイテム（武器）を使用することができ、プレイヤキャラクタ４１の周りの敵キャラクタを剣で攻撃したり、プレイヤキャラクタ４１から離れた位置の敵キャラクタを弓矢で攻撃したりすることができる。ただし、本ゲームでは、プレイヤキャラクタ４１が同時に使用できるアイテムの数は１つとし、プレイヤは、プレイヤキャラクタ４１が使用するアイテムを適宜変更してゲームをプレイする。本実施形態では、プレイヤキャラクタ４１が弓矢を使用する場合、プレイヤはタッチパネルへの入力を行うことによって表示領域を移動させることができる。
【００４１】
図３においては、プレイヤキャラクタ４１が弓矢を使用することができる状態である。このとき、プレイヤは表示領域を移動させることができる。具体的には、プレイヤは、表示領域を移動させるために画面上（タッチパネル１５の入力面上）の任意の位置をスティック１６で指定する。例えば、画面右下方向に向かって弓矢を放とうとする場合、プレイヤは、図３に示すように、プレイヤキャラクタ４１の右下方向の位置（ゲーム空間における地点Ｐ１が表示される位置）をスティック１６で指定する。
【００４２】
図４は、図３のゲーム画面から表示領域が移動された後のゲーム画面を示す図である。プレイヤがタッチパネル１５への入力を行うと、ゲーム装置１０は、タッチパネル１５の入力面上においてプレイヤが入力を行った位置（入力位置）を表す座標（入力座標）を検出する。そして、画面上の予め決められた基準位置を表す座標（基準座標）を始点とし、入力座標を終点とする２次元のベクトル（後述する差分ベクトル）を算出する。なお、ここでは基準位置は画面の中心の位置である。詳細は後述するが、表示領域は、このベクトルに基づいて移動される。図４においては、図３においてベクトルの終点の位置に表示されていた地点Ｐ１が画面の中心に表示されるように表示領域が移動される。
【００４３】
図４においては、図３に示す状態から表示領域が右下方向に移動している。これによって、プレイヤキャラクタ４１の主として右下側のゲーム空間が画面に表示される。すなわち、プレイヤが矢を放とうとする右下方向の領域が広く表示される。矢を放つ方向が広く表示されることによって、プレイヤにとって見やすいゲーム画面となる。プレイヤは、例えば図４に示すように、図３の状態では発見できなかった敵キャラクタ４２を発見することができる。このように、プレイヤが自由に表示領域を移動させることによって、弓矢の攻撃をより効果的に行うことができ、ゲームの操作性を向上することができる。
【００４４】
次に、ゲームプログラムを実行することによってゲーム装置１０において行われるゲーム処理の詳細を説明する。まず、本ゲーム処理において構築される仮想のゲーム空間について図５を用いて説明する。図５は、仮想の３次元のゲーム空間を模式的に示す図である。図５に示すように、仮想の３次元のゲーム空間には、プレイヤキャラクタがその上を移動する地面４３が構築される。地面４３は、ゲーム空間の位置を表すためのワールド座標系のｘｚ平面と平行に構築される。また、ゲーム空間の画像を第２のＬＣＤ１２に表示するための仮想カメラは、視線方向（図５に示す矢印４５）が地面に対して所定の俯角を有するように設定される。俯角θの角度は９０°未満に設定される。また、仮想カメラの視線方向は、ｘｚ平面に投影したときの方向がｚ軸に平行な方向である。したがって、仮想空間において画面に表示される領域（換言すれば、仮想カメラによって撮影される領域。以下、表示領域と呼ぶ。）４６は、透視投影の場合は台形となり、平行投影の場合は長方形となる。仮想カメラによって撮影されたゲーム空間の画像が画面に表示される際、ゲーム空間のｘ軸方向が画面の横方向（画面の座標系のＸ軸方向）となり、ゲーム空間のｚ軸方向が画面の中心において画面の縦方向（画面の座標系のＹ軸方向）となるように当該画像が表示される。なお、画面の座標系は、画面の左上を原点とし、画面の下方向をＹ軸正方向とし、画面の右方向をＸ軸正方向とする座標系であるとする。
【００４５】
表示領域を移動させる操作が行われていない場合、仮想カメラの注視点は、プレイヤキャラクタ４１の位置に設定される。したがって、この場合、プレイヤキャラクタ４１は画面の中央に表示されることとなる。仮想カメラの位置４４は、注視点の位置に従って決定される。本実施形態では、仮想カメラのｙ軸方向の位置は予め定められており、注視点の位置が移動すること応じて仮想カメラは視線方向を変化させずにｘｚ平面に平行に移動する。具体的には、注視点のｘ軸方向に関する移動量と仮想カメラの位置４４のｘ軸方向に関する移動量とは同じであり、かつ、注視点のｚ軸方向に関する移動量と仮想カメラの位置４４のｚ軸方向に関する移動量とは同じである。
【００４６】
次に、ゲーム処理において用いられる主なデータについて図６を用いて説明する。図６は、ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図である。図６に示すように、ＲＡＭ２４には、キャラクタ空間座標データ５０、アイテムデータ５１、基準座標データ５２、入力座標データ５３、差分ベクトルデータ５４、上限値データ５５、補正データ５６、仮想カメラデータ５７、移動指標データ５８、および移動ベクトルデータ５９等が記憶される。なお、ＲＡＭ２４には、図６に示すデータの他、プレイヤキャラクタに関するデータ（プレイヤキャラクタの画像データや位置データ等）やゲーム空間に関するデータ（地形データ等）等、ゲーム処理に必要なデータが記憶される。
【００４７】
キャラクタ空間座標データ５０は、プレイヤキャラクタのゲーム空間における位置を表す座標（キャラクタ空間座標）を示すデータである。キャラクタ空間座標データ５０は、具体的には、上記ワールド座標系（３次元座標系）の座標データである。アイテムデータ５１は、プレイヤキャラクタが現在使用可能なアイテムを示すデータである。例えばプレイヤキャラクタが弓矢を使用可能である状態のとき、アイテムデータ５１は弓矢を示すデータに設定される。
【００４８】
基準座標データ５２は、予め決められた画面上の上記基準位置を表す座標（画面基準座標）を示すデータである。基準座標データ５２は、具体的には、画面の座標系（２次元座標系）の座標データである。基準位置は、ゲームプログラムにおいて予め決められている。本実施形態では、基準位置は画面の中心の位置である。基準座標データ５２は、上記差分ベクトルを算出するために用いられる。
【００４９】
入力座標データ５３は、タッチパネル１５がプレイヤによる入力を検出した画面上の位置を表す座標（入力座標）を示すデータである。具体的には、入力座標データ５３は、画面の座標系（２次元座標系）で表される座標データである。また、差分ベクトルデータ５４は、上記画面基準座標の位置を始点とし、上記入力座標の位置を終点とする２次元のベクトル（差分ベクトル）を示すデータである。
【００５０】
上限値データ５５は、差分ベクトルがとり得る大きさ（上限値）を示すデータである。本実施形態では、画面基準座標および入力座標から算出される差分ベクトルの大きさが上限値を超える場合、差分ベクトルの大きさが当該上限値に補正される。上限値は、ゲームプログラムにおいて予め決められている。また、補正データ５６は、差分ベクトルの各成分（Ｘ成分およびＹ成分）を補正する倍率を示すデータである。補正データ５６には、Ｘ成分を補正する倍率（第１倍率）を示すデータ、およびＹ成分を補正する倍率（第２倍率）を示すデータが含まれる。
【００５１】
仮想カメラデータ５７は、仮想カメラの各種パラメータを示すデータである。仮想カメラのパラメータには、仮想カメラの位置を表す座標データ、注視点の位置を表す座標データ、および視線方向を示すデータが含まれる。
【００５２】
移動指標データ５８は、表示領域を移動させる方向および移動量を示すデータである。具体的には、移動指標データ５８は、ゲーム空間における目標点の位置（目標位置）を表す座標（目標座標）を示すデータである。目標点とは、仮想カメラの注視点を移動させるべき目標となる点である。移動指標データ５８は、具体的には、ワールド座標系で表される座標データである。詳細は後述するが、移動指標データは、上記差分ベクトルに基づいて算出される。なお、他の実施形態においては、移動指標データ５８は、注視点を移動させる方向および移動量を示すベクトルのデータであってもよいし、仮想カメラの位置を移動させる方向および移動量を示すベクトルのデータであってもよい。
【００５３】
移動ベクトルデータ５９は、単位時間当たり（例えば１フレーム当たり）に注視点を移動させる移動方向および移動量を示すベクトル（移動ベクトル）を示すデータである。移動ベクトルは、現在の注視点の位置から目標位置までのベクトルに基づいて算出される。なお、移動ベクトルは３次元のベクトルであるが、ｘｚ平面に平行な地面上においてのみ注視点を移動させる場合には、ｘ成分およびｚ成分からなる２次元のベクトルとしてもよい。
【００５４】
次に、ゲームプログラムを実行することによってゲーム装置１０において行われるゲーム処理の詳細を、図７〜図１３を用いて説明する。図７は、ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵコア２１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、ＲＡＭ２４等の各ユニットが初期化される。そして、メモリカード１７に格納されたゲームプログラムがＲＡＭ２４に読み込まれ、ＣＰＵコア２１によって当該ゲームプログラムの実行が開始される。図７に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図７および図８に示すフローチャートにおいては、ゲーム処理のうち、表示領域を移動させる操作に関する処理について詳細に示し、本願発明と関連しない他のゲーム処理については詳細な説明を省略する。
【００５５】
図７のステップＳ１において、まず、ゲーム空間が構築され、プレイヤキャラクタや敵キャラクタが初期位置に配置される。そして、プレイヤキャラクタとその周囲のゲーム空間を撮影する位置に仮想カメラが設定され、仮想カメラから視線方向を見たときのゲーム空間の画像が第２のＬＣＤに表示される。このステップＳ１の次のステップＳ２以降の処理において、タッチパネル等を用いたゲーム操作が受け付けられ、ゲームが進行する。なお、ステップＳ２〜Ｓ７の処理ループは、１回の処理ループが１フレームの間に実行される。
【００５６】
ステップＳ２において、ＣＰＵコア２１は、各操作スイッチ１４ａ〜１４ｆ，１４Ｒ，および１４Ｌが押下されたか否かを示す操作データを操作スイッチ部１４から取得する。続くステップＳ３において、プレイヤキャラクタおよび敵キャラクタの動作が制御される。具体的には、ステップＳ２で取得された操作データに基づいてプレイヤキャラクタの動作（移動動作および攻撃動作を含む）が決定される。プレイヤキャラクタが移動動作を行う場合、ＲＡＭ２４に記憶されているキャラクタ空間座標データキャラクタ空間座標データ５０の内容が、移動後の位置を示す座標データに更新される。また、ゲームプログラムにおいて予め決められたアルゴリズムに従って敵キャラクタの動作が決定される。
【００５７】
続くステップＳ４において、プレイヤキャラクタが使用するアイテムが決定される。ここでは、プレイヤキャラクタは、Ｌボタン１４Ｌが押下されている間は弓矢を使用し、Ｌボタン１４Ｌが押下されていないときは剣を使用する。すなわち、ＣＰＵコア２１は、ステップＳ２で取得された操作データに基づいて、Ｌボタン１４Ｌが押下されているか否かを判断し、Ｌボタン１４の押下の有無に応じてアイテムを決定する。このとき、ＲＡＭ２４に記憶されているアイテムデータ５１の内容が、ステップＳ４で決定されたアイテムを示すデータに更新される。ステップＳ４の次にステップＳ５の処理が実行される。
【００５８】
ステップＳ５において、表示領域決定処理が実行される。表示領域決定処理は、プレイヤの操作に従って表示領域を決定する処理である。以下、表示領域決定処理の詳細を図８〜図１３を用いて説明する。
【００５９】
図８は、図７に示すステップＳ５の詳細な処理の流れを示すフローチャートである。表示領域決定処理においてはまずステップＳ１１において、プレイヤキャラクタの使用するアイテムが、予め定められている所定のアイテム（ここでは、弓矢）であるか否かが判定される。具体的には、ＣＰＵコア２１は、ＲＡＭ２４に記憶されているアイテムデータ５１が当該所定のアイテムを示すか否かを判定する。アイテムデータ５１が所定のアイテムを示す場合、ステップＳ１２の処理が実行される。一方、アイテムデータ５１が所定のアイテム以外のアイテムを示す場合、後述するステップＳ２１の処理が実行される。
【００６０】
ステップＳ１２において、プレイヤによるタッチパネル１５への入力（タッチ入力）があったか否かが判定される。具体的には、ＣＰＵコア２１は、タッチパネル１５から出力されるデータを読み込み、タッチパネル１５から座標データが出力されているか否かを判定する。タッチパネル１５から座標データが出力されている場合、タッチ入力があると判定されてステップＳ１３の処理が行われる。一方、入力がないことを示すデータがタッチパネル１５から出力されている場合、タッチ入力がないと判定されて後述するステップＳ２１の処理が行われる。
【００６１】
ステップＳ１３において、入力座標が取得される。すなわち、ＣＰＵコア２１は、ＲＡＭ２４に記憶される入力座標データ５３の内容を、ステップＳ１２でタッチパネル１５から読み込んだ座標データに更新する。なお、更新前の座標データは別途ＲＡＭ２４に記憶される。ステップＳ１３の次にステップＳ１４の処理が実行される。
【００６２】
ステップＳ１４において、ステップＳ１３で取得された入力座標は前回から変化したか否かが判定される。具体的には、ステップＳ１３で更新された入力座標データ５３により示される入力座標が、更新前と更新後とで変化しているか否かが判定される。ステップＳ１４の判定において、入力座標が変化していると判定される場合、ステップＳ１５の処理が実行される。一方、入力座標が変化していないと判定される場合、後述するステップＳ２４の処理が実行される。なお、他の実施形態においては、更新前の入力座標と更新後の入力座標との距離が所定距離以下である場合には、入力座標が変化していないとみなしてステップＳ２４の処理が実行されるようにしてもよい。
【００６３】
ステップＳ１５において、差分ベクトルが算出される。図９は、図８のステップＳ１５の処理を説明するための図である。ここでは、図９に示すように、画面の中央にプレイヤキャラクタ４１が表示されているとする。差分ベクトルは、上記画面基準座標（点Ｐ２の座標）を始点とし、入力座標（点Ｐ３の座標）を終点とするベクトルＶ１として算出される。ここで、入力座標は、ステップＳ１３でＲＡＭ２４に記憶された入力座標データ５３により示される。したがって、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている基準座標データ５２および入力座標データ５３を用いて差分ベクトルを算出する。算出された差分ベクトルのデータは、差分ベクトルデータ５４としてＲＡＭ２４に更新して記憶される。ステップＳ１５の次にステップＳ１６の処理が実行される。
【００６４】
ステップＳ１６において、ステップＳ１５で算出された差分ベクトルの大きさが所定の上限値以下であるか否かが判定される。なお、この上限値は、ＲＡＭ２４に記憶されている上限値データ５５により示される。ＣＰＵコア２１は、ＲＡＭ２４に記憶されている差分ベクトルデータ５４および上限値データ５５を参照することによってステップＳ１６の判定を行う。図１０は、図８のステップＳ１６の処理を説明するための図である。差分ベクトルの大きさが上限値以下である場合とは、図１０に示すベクトルＶ１の終点の位置Ｐ３が、図１０に示す領域６１内に存在する場合である。領域６１は、上記位置Ｐ２を中心とする、半径が上限値である円形の領域である。つまり、ステップＳ１６の判定は、プレイヤによる入力位置Ｐ３が、画面上の位置Ｐ２を中心とする円形領域６１内に含まれるか否かを判定する処理である。ステップＳ１６の判定において、差分ベクトルの大きさが所定の上限値よりも大きいと判定される場合、ステップＳ１７の処理が実行される。一方、差分ベクトルの大きさが所定の上限値以下であると判定される場合、ステップＳ１８の処理が行われる。
【００６５】
ステップＳ１７において、ステップＳ１５で算出された差分ベクトルの大きさが上記上限値に補正される。図１１は、図８のステップＳ１７の処理を説明するための図である。図１１に示すように、ベクトルＶ１の終点の位置Ｐ３が領域６１外に位置する場合、差分ベクトルはベクトルＶ２に補正される。ベクトルＶ２は、ベクトルＶ１と同じ向きであり、領域６１の外周を終点とするベクトルである。このとき、ＲＡＭ２４に記憶されている差分ベクトルデータ５４の内容は、ステップＳ１７における補正後の差分ベクトルのデータに更新される。ステップＳ１７の次にステップＳ１８の処理が実行される。
【００６６】
上記ステップＳ１６およびＳ１７の処理は、差分ベクトルの大きさを制限する処理である。ここで、差分ベクトルの大きさを制限しない場合には、差分ベクトルの大きさおよび向きに基づいて表示領域を移動させる結果、プレイヤキャラクタ４１の一部が画面から外れてしまうことがある。そこで、本実施形態では、上記ステップＳ１６およびＳ１７の処理によって、プレイヤキャラクタ４１の一部が画面から外れてしまわないように、差分ベクトルの大きさを制限している。なお、プレイヤキャラクタの全体を画面に常に表示させるためには、画面の中心から端までの最短の長さ（図１１では、画面の中心から上端または下端までの長さ）よりもやや小さく上限値を設定すればよい。具体的には、上限値は、当該長さからプレイヤキャラクタの表示幅を引いた長さとすればよい。
【００６７】
ステップＳ１８において、差分ベクトルの各成分（Ｘ成分およびＹ成分）の値が補正される。具体的には、ＣＰＵコア２１は、差分ベクトルのＸ成分の値に上記第１倍率を積算し、差分ベクトルのＹ成分の値に上記第２倍率を積算する。なお第１および第２倍率の値は、ＲＡＭ２４に記憶されている補正データ５６を参照することによって知ることができる。なお、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている差分ベクトルデータ５４の内容を、ステップＳ１８における補正後の差分ベクトルのデータに更新する。
【００６８】
図１２は、図８のステップＳ１８の処理を説明するための図である。ステップＳ１８においては、補正前の差分ベクトルＶ２がベクトルＶ３に補正される。補正前の差分ベクトルＶ２の各成分を（ＬＸ，ＬＹ）とし、補正後の差分ベクトルＶ３の各成分を（ｄＸ，ｄＹ）とすると、（ｄＸ，ｄＹ）は次の式（１）に従って算出される。
ｄＸ＝Ａ１×ＬＸ
ｄＹ＝Ａ２×ＬＹ  …（１）
式（１）において、Ａ１は上記第１倍率であり、Ａ２は上記第２倍率である。また、本実施形態では、０＜Ａ１＜１、かつ、０＜Ａ２＜１である。また、Ａ１＜Ａ２である。したがって、ベクトルＶ３は、Ｘ成分に対するＹ成分の割合がベクトルＶ２に比べて大きくなるように補正される。なお、上記ステップＳ１８においては、ベクトルＶ２のＸ成分についてのみ補正を行うようにしてもよい。すなわち、Ａ２＝１としてもよい。
【００６９】
上記ステップＳ１８において、Ｘ成分に対するＹ成分の割合が補正前の差分ベクトルに比べて大きくなるように補正される理由は、表示領域が移動する際にプレイヤが抱く違和感を軽減するためである。詳細は後述するが、ゲーム空間において表示領域を移動させる方向は差分ベクトルの方向に基づいて決められる（後述するステップＳ２１）。このとき、上記ステップＳ１８の処理を行わない場合、プレイヤは、画面の縦方向（Ｙ軸方向）に関して表示領域の移動量が少ないような違和感を抱くおそれがある。ステップＳ１８の処理は、このような違和感を軽減するための処理である。
【００７０】
上記ステップＳ１８の次に、ステップＳ１９およびステップＳ２０において、注視点を移動させるべき目標点の位置が差分ベクトルに基づいて決定される。具体的には、差分ベクトルの方向に基づいたゲーム空間内の方向と差分ベクトルの大きさに基づいたゲーム空間内の距離とによって、目標点の位置が決定される。
【００７１】
ステップＳ１９において、まず、ＣＰＵコア２１は、画面上の２次元ベクトルである差分ベクトルをゲーム空間内の３次元ベクトルに変換する。図１３は、図８のステップＳ１９の処理を説明するための図である。図１３において、面６２は、仮想カメラから見たゲーム空間を２次元平面に投影するための投影面であり、当該ゲーム空間が表示される画面に対応する。また、ベクトルＶ３は差分ベクトルであり、ベクトルＶ３Ｘは差分ベクトルＶ３のＸ成分を表し、ベクトルＶ３Ｙは差分ベクトルＶ３のＹ成分を表す。ベクトルｖ１は、差分ベクトルＶ３が変換された３次元ベクトルであり、ベクトルｖ１ｘはベクトルｖ１のｘ成分を表し、ベクトルｖ１ｙは差分ベクトルｖ１のｙ成分を表す。以下では、この３次元ベクトルを空間ベクトルと呼ぶ。
【００７２】
上記空間ベクトルｖ１の大きさは、差分ベクトルＶ３の大きさに基づいて決定され、空間ベクトルｖ１の方向は、差分ベクトルＶ３の方向に基づいて決定される。具体的には、空間ベクトルｖ１は、次の式（２）に従って算出される。
ｖ１ｘ＝Ｂ×Ｖ３Ｘ
ｖ１ｙ＝０
ｖ１ｚ＝Ｂ×Ｖ３Ｙ  …（２）
式（２）に示したように、差分ベクトルのＸ成分の値に所定の調整量Ｂが乗算された値が、空間ベクトルのｘ成分の値となる。また、差分ベクトルのＹ成分の値に当該調整量Ｂが乗算された値が、空間ベクトルのｚ成分の値となる。なお、空間ベクトルのｙ成分の値は、地面の高さと同じ値（すなわち、０）に設定される。以上によって、差分ベクトルＶ３は、ゲーム空間のｘｚ平面に平行な空間ベクトルｖ１に変換される。なお、画面上における横方向の成分は、ゲーム空間内におけるｘ軸方向（画面上で横方向に表示される方向）の成分に対応する。画面上における縦方向の成分は、ゲーム空間内におけるｚ軸方向（画面の中心において縦方向に表示される方向）の成分に対応する。このように、本実施形態によれば、差分ベクトルから空間ベクトルを少ない処理量で容易に算出することができる。
【００７３】
なお、図１３においては、ベクトルｖ１の始点が注視点の位置であるとしているが、ベクトルｖ１の始点はプレイヤキャラクタの位置によって決まる位置であり、（後述するステップＳ２０）、必ずしも注視点とはならない。プレイヤによるタッチ入力によって表示領域が移動された後は、注視点とプレイヤキャラクタの位置とは必ずしも一致しないからである。
【００７４】
次に、ステップＳ２０において、ステップＳ１９で変換された空間ベクトルに基づいて目標点の位置が決定される。具体的には、目標点の位置は、ゲーム空間における固定点を基点として、空間ベクトルの方向および大きさによって決められる位置である。ここで、固定点とは、プレイヤキャラクタの位置によって決められるゲーム空間内の点である。なお、固定点は、「プレイヤキャラクタの位置が固定されているという条件下で固定的に設定される」という意味であり、ゲーム空間における特定の１点の位置に常に固定される必要はない。プレイヤキャラクタの位置が変化すれば固定点の位置も変化する。ここでは、固定点は、プレイヤキャラクタの位置に設定される。したがって、プレイヤキャラクタの位置から、空間ベクトルの向きに空間ベクトルの大きさ（距離）だけ離れた位置が新たな目標点の位置となる。ＣＰＵコア２１は、ＲＡＭ２４に記憶されているキャラクタ空間座標データ５０とステップＳ１９で算出された空間ベクトルとを参照して目標点の位置座標を算出する。ステップＳ２０で算出された目標点の座標のデータは、ＲＡＭ２４に記憶されている移動指標データ５８として更新して記憶される。ステップＳ２０の次にステップＳ２３の処理が実行される。
【００７５】
一方、ステップＳ１１またはステップＳ１２における判定結果が否定であった場合、ステップＳ２１の処理が行われる。ステップＳ２１においては、現在設定されている目標点がゲーム空間におけるプレイヤキャラクタの位置に設定されているか否かが判定される。具体的には、ＣＰＵコア２１は、ＲＡＭ２４に記憶されているキャラクタ空間座標データ５０および移動指標データ５８を参照し、キャラクタ空間座標データ５０により示される座標と移動指標データ５８により示される座標とが同じであるか否かを判定する。そして、２つの座標が同じである場合、目標点がプレイヤキャラクタの位置に設定されていると判定し、逆に、２つの座標が同じでない場合、目標点がプレイヤキャラクタの位置に設定されていないと判定する。目標点がプレイヤキャラクタの位置に設定されていると判定される場合、ステップＳ２２およびＳ２３の処理がスキップされてステップＳ２４の処理が実行される。一方、目標位置がプレイヤキャラクタの位置に設定されていないと判定される場合、ステップＳ２２の処理が実行される。
【００７６】
ステップＳ２２においては、目標点がキャラクタの位置に設定される。具体的には、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている移動指標データ５８の内容を、キャラクタ空間座標データ５０により示される座標に更新する。以上のステップＳ２１およびＳ２２によって、プレイヤキャラクタが弓矢でないアイテムを使用する場合、または、タッチ入力がない場合には、プレイヤキャラクタの位置が目標点となるので、プレイヤキャラクタが画面中央に表示されることになる。ステップＳ２２の次にステップＳ２３の処理が実行される。
【００７７】
ステップＳ２３においては、現在の注視点の位置と目標点の位置とに基づいて移動ベクトルが算出される。上述したように、移動ベクトルは、単位時間当たり（例えば１フレーム当たり）に注視点（表示領域）を移動させる移動方向および移動量を示すベクトルである。図１４は、図８のステップＳ２３の処理を説明するための図である。図１４において、点ｐ１は現在の注視点の位置を示し、点ｐ２は目標点の位置を示す。また、ベクトルｖ１は、上記ステップＳ１９で算出された空間ベクトルである。ステップＳ２３において、ＣＰＵコア２１は、ベクトルｖ１の各成分を予め定められた所定数（図１４では所定数を３としている。）で割ったベクトルｖ２を算出する。このベクトルｖ２が移動ベクトルである。ＣＰＵコア２１は、算出された移動ベクトルのデータを移動ベクトルデータ５９としてＲＡＭ２４に記憶する。
【００７８】
ステップＳ２３に示したように、本実施形態においては、ベクトルｖ１を所定数で割ったベクトルＶ５を移動ベクトルとすることによって、表示領域の目標位置への移動が複数フレーム（当該所定数のフレーム）にわたって行われることになる。これによって、表示領域が急に移動することによってゲーム画面がプレイヤにとって見づらくなることを防止することができる。なお、他の実施形態においては、ベクトルｖ１の大きさが予め定められた所定値以下の場合にはベクトルｖ１を移動ベクトルとしてもよい。また、他の実施形態においては、上記所定数を１にしてもよい。ステップＳ２３の次にステップＳ２４の処理が実行される。
【００７９】
ステップＳ２４においては、ステップＳ２３で算出された移動ベクトルに従って注視点が移動される。具体的には、ＣＰＵコア２１は、ＲＡＭ２４に記憶されている仮想カメラデータ５７に含まれる注視点を示すデータの内容を、移動後の注視点の座標を示すデータに更新する。また、仮想カメラの位置を示すデータを、移動後の注視点の位置に応じて更新する。ステップＳ２４の後、ＣＰＵコア２１は表示領域決定処理を終了する。
【００８０】
図７の説明に戻り、ステップＳ６においては、ゲーム画像が表示される。具体的には、ＣＰＵコア２１は、仮想カメラの位置から視線方向に見たゲーム空間の画像を生成し、生成した画像を第２のＬＣＤ１２に表示させる。なお、上記ステップＳ２４で仮想カメラのパラメータ（注視点の位置および仮想カメラの位置）が更新されているので、表示領域が移動して表示されることとなる。ステップＳ６の次にステップＳ７の処理が実行される。
【００８１】
ステップＳ７において、ゲームを終了するか否かが判定される。ステップＳ７の判定は、例えば、プレイヤキャラクタの体力が０になったか否かや、プレイヤキャラクタが全ての敵キャラクタを倒したか否か等によって行われる。ステップＳ７の判定において、ゲームを終了すると判定された場合、ＣＰＵコア２１は、図７に示すゲーム処理を終了する。一方、ゲームを終了しないと判定された場合、ステップＳ２の処理が行われ、以降、ステップＳ７においてゲームを終了すると判定されるまでステップＳ２〜Ｓ７の一連の処理が繰り返される。以上で、ゲーム処理の詳細な説明を終了する。
【００８２】
なお、上記実施形態においては、ステップＳ１７で差分ベクトルについて上限値を設定し、差分ベクトルが上限値以内となるように補正する処理を行った。ここで、他の実施形態においては、差分ベクトルを変換して得られる空間ベクトル（図１３に示すベクトルｖ１）について上限値を設定するようにしてもよい。また、上記実施形態においては、ステップＳ１８で差分ベクトルについて各成分の大きさの割合を調整する補正を行ったが、他の実施形態においては、空間ベクトルについて各成分の大きさの割合を調整する補正を行うようにしてもよい。具体的には、空間ベクトルのｘ成分に対するｚ成分の割合が大きくなるように空間ベクトルのｘ成分およびｚ成分を補正するようにしてもよい。つまり、空間ベクトルは、空間ベクトルのｘ方向成分に対するｚ方向成分の割合が、差分ベクトルのＸ方向成分に対するＹ方向成分の割合に比べて大きくなるように算出されればよい。
【００８３】
以上に説明したゲーム処理においては、ステップＳ１８において、差分ベクトルのＸ成分に対するＹ成分の割合が大きくなるように差分ベクトルの各成分が補正される。ここで、本実施形態では、ステップＳ１９において差分ベクトルをゲーム空間における空間ベクトルに変換する際に、差分ベクトルのＸ成分を空間ベクトルのｘ成分に変換する際の調整量と、差分ベクトルのＹ成分を空間ベクトルのｚ成分に変換する際の調整量とが同じである。したがって、もしステップＳ１８の処理を行わない場合には、差分ベクトルにおける縦方向（Ｙ成分）と横方向（Ｘ成分）との比が、そのまま、空間ベクトルの縦方向（ｚ成分）と横方向（ｘ成分）との比になる。しかし、本実施形態では仮想カメラの視線方向は地面に垂直ではなく、画面のＹ軸方向に傾いている（視線方向は画面のＹ軸方向を向く）ので、ゲーム空間は画面のＹ軸方向に関して圧縮されて表示される。したがって、ｘ軸方向とｚ軸方向とにそれぞれ同じ距離（ゲーム空間内の距離）だけ表示領域を移動させても、画面上では、ｚ軸方向の方が表示領域の移動量が少なくなってしまう。そのため、差分ベクトルにおける縦方向と横方向との比を、そのまま、空間ベクトルの縦方向と横方向との比とすると、画面上では表示領域の縦方向の移動量が少なくなってしまう。そのため、プレイヤによって入力された方向（すなわち、差分ベクトルの方向）と、表示領域が実際に移動する方向とが一致しないので、プレイヤは違和感を抱くおそれがある。
【００８４】
そこで、本実施形態では、差分ベクトルのＹ軸方向（仮想カメラの視線方向に対応する画面上の方向）の成分をＸ軸方向に比べて増加させている。これによって、表示領域は、差分ベクトルにおける縦方向と横方向との比と同じ比で移動することとなるので、プレイヤの上記違和感を軽減または解消することができる。
【００８５】
図１５および図１６は、プレイヤが画面の右下位置をタッチした場合における表示領域の移動の様子を示す図である。なお、図１５および図１６においては、画面における位置を表す点に大文字の“Ｐ”のつく参照符号を付し、ゲーム空間における位置を表す点に小文字の“ｐ”のつく参照符号を付す。また、図１５および図１６においては、画面における２次元ベクトルに大文字の“Ｖ”のつく参照符号を付し、ゲーム空間におけるベクトルに小文字の“ｖ”のつく参照符号を付す。
【００８６】
図１５は、プレイヤがタッチ入力を行った直後のゲーム画面を示す図である。図１５においては、タッチ入力が行われた直後であるので、プレイヤキャラクタ４１が画面の中央に表示されている。すなわち、プレイヤキャラクタ４１の位置ｐ２１が画面上の基準位置Ｐ１１に対応する（表示される）。このとき、プレイヤが画面上の位置Ｐ１２をタッチすると、基準位置Ｐ１１から入力位置Ｐ１２までのベクトルＶ１１が差分ベクトルとして算出される（ステップＳ１５）。次に、上限値により示される領域６１に応じて差分ベクトルはベクトルＶ１２に補正される（ステップＳ１７）。さらに、Ｘ成分に対するＹ成分の割合が大きくなるようにベクトルＶ１２がベクトルＶ１３に補正される（ステップＳ１８）。次に、画面上の２次元ベクトルＶ１３が、ゲーム空間における空間ベクトルｖ２１に変換される（ステップＳ１９）。ゲーム空間における目標位置ｐ２２は、ゲーム空間におけるプレイヤキャラクタの位置ｐ２１を基点として空間ベクトルｖ２１に基づいて決定される（ステップＳ２０）。以上によって、表示領域は、目標位置ｐ２２が画面中央に表示されるように移動される。
【００８７】
図１６は、図１５に示す状態から入力位置が変わらずに所定数のフレームが経過した後のゲーム画面を示す図である。図１６においては、注視点が目標位置ｐ２２に位置しており、プレイヤキャラクタ４１が画面の左上に表示されている。このとき、画面上の入力位置は、図１５に示す状態から変化していないので、図１５に示す場合と同様の差分ベクトルＶ１３が算出される。さらに、図１５に示す場合と同様の空間ベクトルｖ２１が差分ベクトルＶ１３から算出される。したがって、目標位置ｐ２２も図１５に示す場合と（ゲーム空間においては）同様の位置となる。ここで、図１６においては、注視点はすでに目標位置ｐ２２に位置しているので、表示領域の移動は行われない。
【００８８】
このように、本実施形態では、画面上の基準位置と画面上の入力位置とに基づいて、ゲーム空間内において表示領域を移動させるための差分ベクトルを決定している。画面上の２つの位置に基づいて差分ベクトルを決定するので、差分ベクトルの大きさは必然的に制限される。また、差分ベクトルをゲーム空間のベクトルに変換し、変換したベクトルに基づいて、ゲーム空間内の固定点を基点として表示領域を移動させる。したがって、表示領域は固定点を中心とした所定距離内の範囲において移動することとなり、表示領域の移動範囲は制限される。そのため、プレイヤキャラクタの位置を上記固定点とすることによって、表示領域の移動範囲は、プレイヤキャラクタの位置を中心とした範囲に制限されることとなるので、プレイヤキャラクタを画面に常に表示させることができる。
【００８９】
以上のように、本実施形態によれば、プレイヤによる入力位置に応じて表示領域を移動させることができるので、その時の状況に応じた見やすい表示領域でゲーム画面を表示することができる。また、差分ベクトルの大きさを上記上限値に制限することによって、表示領域が一定の方向に移動し続けることを防止することができる。さらに、差分ベクトルのＸ成分とＹ成分との割合を変化させることによって、表示領域が移動する際にプレイヤが抱く違和感を軽減することができる。
【００９０】
なお、上記実施形態においては、差分ベクトルの大きさを上限値に制限することによって、プレイヤキャラクタが画面外に外れることを防止した。ここで、他の実施形態においては、表示領域を移動させる前に、プレイヤキャラクタが表示領域内に位置するか否かを判定し、表示領域内に位置する場合にのみ表示領域を移動させるようにしてもよい。具体的には、ステップＳ２３の後、移動後の表示領域内にプレイヤキャラクタが位置するか否かを判定する処理を行う。判定の結果、表示領域内にプレイヤキャラクタが位置する場合はステップＳ２４の処理を行い、表示領域内にプレイヤキャラクタが位置しない場合はステップＳ２４の処理をスキップする。なお、このとき、ステップＳ１６およびＳ１７の処理は不要である。また、他の実施形態では、差分ベクトルに基づいて目標位置を設定する処理（ステップＳ２０）において、プレイヤキャラクタの位置から所定の範囲内に位置するように目標位置を設定するようにしてもよい。なお、このときもステップＳ１６およびＳ１７の処理は不要である。
【００９１】
また、上記実施形態においては、表示領域を移動させる具体的な方法として、仮想カメラの位置を移動させることとした。ここで、表示領域を移動させる方法はどのような方法であってもよく、例えば、仮想カメラの位置および視線方向を変化させるようにしてもよいし、仮想カメラの視線方向のみを変化させるようにしてもよい。また、上記実施形態においては、仮想カメラの位置をｘ軸方向およびｚ軸方向にのみ移動させることとしたが、他の実施形態においては、ｙ軸方向にも移動させるようにしてもよい。
【００９２】
また、上記実施形態においては、３次元の仮想空間を画面に表示する場合を例として説明したが、仮想空間は２次元であってもよい。２次元の仮想空間の場合も上記実施形態と同様、差分ベクトルに基づいて仮想空間上に目標点を設定し、画面上における基準位置（例えば画面の中央の位置）に目標点が表示されるように表示領域を移動させる。
【００９３】
また、上記実施形態では、画像処理プログラムがゲームプログラムとして用いられる場合を例として説明したが、本発明は、ゲームに限らず、仮想空間を画面に表示する場合において表示領域を移動させる技術に適用することができる。
【００９４】
また、上記実施形態では、入力装置としてタッチパネルを用いる場合を例として説明したが、入力装置は、例えばマウス等のように、画面上において指定された位置を検出することが可能なポインティングデバイスであればどのようなものであってもよい。
【産業上の利用可能性】
【００９５】
以上のように、本発明は、仮想空間における表示領域をユーザが自由に設定すること等を目的とした画像処理プログラムおよび画像処理装置に利用することが可能である。
【図面の簡単な説明】
【００９６】
【図１】本発明の一実施形態に係るゲーム装置の外観図
【図２】ゲーム装置の内部構成図
【図３】本実施形態におけるゲーム画面の一例を示す図
【図４】図３のゲーム画面から表示領域が移動された後のゲーム画面を示す図
【図５】仮想の３次元のゲーム空間を模式的に示す図
【図６】ゲーム装置１０のＲＡＭ２４に記憶される主なデータを示す図
【図７】ゲーム装置１０において実行されるゲーム処理の流れを示すフローチャート
【図８】図７に示すステップＳ５の詳細な処理の流れを示すフローチャート
【図９】図８のステップＳ１５の処理を説明するための図
【図１０】図８のステップＳ１６の処理を説明するための図
【図１１】図８のステップＳ１７の処理を説明するための図
【図１２】図８のステップＳ１８の処理を説明するための図
【図１３】図８のステップＳ１９の処理を説明するための図
【図１４】図８のステップＳ２３の処理を説明するための図
【図１５】プレイヤがタッチ入力を行った直後のゲーム画面を示す図
【図１６】図１５に示す状態から入力位置が変わらずに所定数のフレームが経過した後のゲーム画面を示す図
【符号の説明】
【００９７】
１０  ゲーム装置
１１，１２  ＬＣＤ
２１  ＣＰＵコア
２４  ＲＡＭ
４１  プレイヤキャラクタ
４２  敵キャラクタ
Ｖ１，Ｖ２，Ｖ３  差分ベクトル
ｖ１  空間ベクトル
Ｐ２  基準位置
Ｐ３  入力位置
ｐ１  固定点の位置
ｐ２  目標位置
【図１】
2006331109.tif 000003
【図２】
2006331109.tif 000004
【図３】
2006331109.tif 000005
【図４】
2006331109.tif 000006
【図５】
2006331109.tif 000007
【図６】
2006331109.tif 000008
【図７】
2006331109.tif 000009
【図８】
2006331109.tif 000010
【図９】
2006331109.tif 000011
【図１０】
2006331109.tif 000012
【図１１】
2006331109.tif 000013
【図１２】
2006331109.tif 000014
【図１３】
2006331109.tif 000015
【図１４】
2006331109.tif 000016
【図１５】
2006331109.tif 000017
【図１６】
2006331109.tif 000018