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