(57)【特許請求の範囲】
【請求項１】
コンピュータに、
入力デバイスの操作情報が、入力デバイスの操作条件とゲーム空間におけるオブジェクトの行動との対応を保持する保持部に含まれる操作条件を満たすか判定する判定機能と、
操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能と、を実現させるためのプログラムであって、
操作条件は、複数の条件を含んで構成されており、そのうちの１つの条件は、所定時間内に、入力デバイスが所定量移動することであって、
判定機能は、操作条件に含まれる各条件の成立の有無を判定して、全ての条件が現時点までに成立したことを判定する機能を含み、前記１つの条件については、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、前記１つの条件の成立を判定し、
オブジェクト制御機能は、複数の条件を含んで構成された操作条件に対応付けられた行動をオブジェクトに実行させる機能を含む、ことを特徴とするプログラム。
【請求項２】
前記１つの条件は、所定時間内に、入力デバイスが所定方向に所定量移動することを条件とするものであって、
判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定方向に所定量移動すると、その操作条件の成立を判定する機能を含む、ことを特徴とする請求項１にプログラム。
【請求項３】
判定機能は、入力デバイスの移動開始から入力デバイスが所定方向に所定量移動する前に、所定方向とは逆方向に移動すると、その時点で前記１つの条件の不成立を判定する機能を含む、ことを特徴とする請求項２にプログラム。
【請求項４】
判定機能は、ある条件が成立すると、その条件が成立した状態を、他の条件が成立するまで維持する機能を含むことを特徴とする請求項１から３のいずれかに記載のプログラム。
【請求項５】
判定機能は、ある条件が成立すると、その後、その条件が不成立になったとしても、その条件が成立した状態を、他の条件が成立するまで維持する機能を含むことを特徴とする請求項４に記載のプログラム。
【請求項６】
発光体を有する入力デバイスの発光色を設定する機能を有し、
判定機能が、操作条件または操作条件を構成する条件の成立を判定すると、色設定機能は、判定機能による判定前の発光色とは異なる色の発行指示を生成することを特徴とする請求項１から５のいずれかに記載のプログラム。
【請求項７】
コンピュータに、
入力デバイスの操作情報が、入力デバイスの操作条件とゲーム空間におけるオブジェクトの行動との対応を保持する保持部に含まれる操作条件を満たすか判定する判定機能と、
操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能と、を実現させるためのプログラムであって、
ゲーム空間内でオブジェクトをジャンプさせる操作条件が、入力デバイスを鉛直上方向に移動する第１条件と、入力デバイスを略鉛直方向に向ける第２条件を含むものであって、
判定機能は、第１条件と第２条件の成立の有無を監視し、第１条件または第２条件のいずれか一方の条件が成立すると、その後、その一方の条件が不成立になったとしても、その一方の条件が成立した状態を維持し、他方の条件が成立すると、オブジェクトをジャンプさせる操作条件の成立を判定して、オブジェクト制御機能が、ゲーム空間内でオブジェクトをジャンプさせる、ことを特徴とするプログラム。
【請求項８】
入力デバイスを鉛直上方向に移動する条件には、所定時間内に所定量移動する条件が含まれることを特徴とする請求項７に記載のプログラム。
【請求項９】
請求項１から８のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
入力デバイスの操作に応じてゲーム空間におけるオブジェクトを動作させるゲーム装置によるオブジェクト制御方法であって、
発光体を有する入力デバイスの撮像画像を取得するステップと、
前記撮像画像から導出される入力デバイスの位置情報、および／または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得するステップと、
オブジェクトの行動と、入力デバイスの操作条件との対応を保持するステップと、
操作情報が、操作条件を満たすか判定するステップと、
操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている行動を実行させるステップと、を備え、
保持ステップは、複数の条件を含んで構成される操作条件を保持しており、そのうちの１つの条件は、所定時間内に、入力デバイスが所定量移動することであって、
条件判定ステップは、操作条件に含まれる各条件の成立の有無を判定して、全ての条件が現時点までに成立したことを判定し、前記１つの条件については、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、前記１つの条件の成立を判定する、
ことを特徴とするオブジェクト制御方法。
【請求項１１】
入力デバイスの操作に応じてゲーム空間におけるオブジェクトを動作させるゲーム装置であって、
発光体を有する入力デバイスの撮像画像を取得する画像取得部と、
前記撮像画像から導出される入力デバイスの位置情報、および／または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得する操作情報取得部と、
オブジェクトの行動と、入力デバイスの操作条件との対応を保持する保持部と、
操作情報が、前記保持部に保持されている操作条件を満たすか判定する条件判定部と、
前記条件判定部により操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている行動を実行させるオブジェクト制御部と、を備え、
前記保持部は、複数の条件を含んで構成される操作条件を保持しており、そのうちの１つの条件は、所定時間内に、入力デバイスが所定量移動することであって、
前記条件判定部は、操作条件に含まれる各条件の成立の有無を判定して、全ての条件が現時点までに成立したことを判定する機能を含み、前記１つの条件については、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、前記１つの条件の成立を判定することを特徴とするゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム制御技術に関し、とくに、ユーザが入力デバイスを利用してゲームキャラクタなどのオブジェクトを動作させるゲーム装置に関する。
【背景技術】
【０００２】
ゲーム装置の処理能力の向上に伴い、３次元的にモデリングされたゲームフィールド内でゲームキャラクタを動作させるゲームが数多く登場している。また近年では、ボタン操作による入力だけでなく、ユーザが動かす実オブジェクトをカメラで撮像して、カメラ画像における実オブジェクトの動きをゲームの入力として利用する技術も提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許６７９５０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力デバイスとゲームは密接な関係をもち、新しい入力デバイスが登場すると、その入力デバイスの特徴を活かしたゲームアプリケーションが開発される。本発明者は、ユーザの多様化した要求を満足させるべく、ユーザが動かす入力デバイスに連動する新たなゲームアプリケーションを想到するに至った。
【０００５】
そこで本発明は、ユーザによる入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様のプログラムは、コンピュータに、入力デバイスの操作情報が所定の操作条件を満たすか判定する判定機能と、操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能とを実現させるためのプログラムである。所定の操作条件は、所定時間内に、入力デバイスが所定量移動することを条件とするものであって、判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する機能を含む。
【０００７】
本発明の別の態様のプログラムは、コンピュータに、入力デバイスの操作情報が所定の操作条件を満たすか判定する判定機能と、操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能とを実現させるためのプログラムである。ゲーム空間内でオブジェクトをジャンプさせる操作条件は、入力デバイスを略鉛直方向に向けることと、入力デバイスを鉛直上方向に移動することを条件とするものであって、判定機能が、オブジェクトをジャンプさせる操作条件の成立を判定すると、オブジェクト制御機能が、ゲーム空間内でオブジェクトをジャンプさせる。
【０００８】
本発明のさらに別の態様は、オブジェクト制御方法である。この方法は、入力デバイスの操作に応じてオブジェクトを動作させるオブジェクト制御方法であって、発光体を有する入力デバイスの撮像画像を取得するステップと、撮像画像から導出される入力デバイスの位置情報、および／または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得するステップと、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持するステップと、操作情報が、操作条件を満たすか判定するステップと、操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるステップとを備える。保持ステップは、所定時間内に入力デバイスが所定量移動することを操作条件として保持しており、条件判定ステップは、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。
【０００９】
本発明のさらに別の態様は、入力デバイスの操作に応じてオブジェクトを動作させるゲーム装置である。この装置は、発光体を有する入力デバイスの撮像画像を取得する画像取得部と、撮像画像から導出される入力デバイスの位置情報、および／または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得する操作情報取得部と、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する保持部と、操作情報が、保持部に保持されている操作条件を満たすか判定する条件判定部と、条件判定部により操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるオブジェクト制御部とを備える。保持部は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持しており、条件判定部は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。入力デバイスの操作情報は、入力デバイスの位置情報および／または姿勢情報そのものであってもよく、また位置情報や姿勢情報から演算などにより求められる情報であってもよい。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によると、ユーザによる入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例にかかるゲームシステムの使用環境を示す図である。
【図２】入力デバイスの外観構成を示す図である。
【図３】入力デバイスの内部構成を示す図である。
【図４】ゲーム装置の内部構成を示す図である。
【図５】デバイス情報処理部において入力デバイスの位置情報および姿勢情報を定義するための座標系を示す図である。
【図６】アプリケーション処理部の構成を示す図である。
【図７】本実施例で想定するゲームのシーン例を示す図である。
【図８】ゲームオブジェクトの所定の行動と、入力デバイスの操作条件との対応を記録したテーブルの一例を示す図である。
【図９】（ａ）は、ユーザが入力デバイスの発光体を左側に振った状態を示す図であり、（ｂ）は、ユーザが入力デバイスの発光体を右側に振った状態を示す図である。
【図１０】第１条件および第２条件により制限される入力デバイスのピッチ角β、ヨー角αの範囲を示す図である。
【図１１】（ａ）は、第２条件の成立状態を示す図であり、（ｂ）は、第１条件の成立状態を示す図である。
【図１２】複数の操作条件が設定されたときの条件判定フローの一例を示す図である。
【図１３】複数の操作条件が設定されたときの条件判定フローの別の例を示す図である。
【発明を実施するための形態】
【００１３】
本発明の実施例は、ゲームコントローラとして機能する入力デバイスの実空間における位置情報および／または姿勢情報をゲームの操作情報として取得し、その操作情報をもとにゲームソフトウェアを実行可能なゲーム装置を提供する。
【００１４】
図１は、本発明の実施例にかかるゲームシステム１の使用環境を示す。ゲームシステム１は、ゲームソフトウェアを実行するゲーム装置１０と、ゲーム装置１０による処理結果を出力する表示装置１２と、入力デバイス２０と、入力デバイス２０を撮像する撮像装置１４を備える。
【００１５】
入力デバイス２０は、ユーザが操作指示を行うための操作入力装置であり、ゲーム装置１０は、入力デバイス２０による操作指示をもとにゲームプログラムを実行して、ゲームの処理結果を示す画像信号を生成する処理装置である。
【００１６】
入力デバイス２０はバッテリにより駆動され、操作入力を行わせるための複数のボタンを有して構成される。ユーザが入力デバイス２０のボタンを操作すると、そのボタンの状態情報がゲーム装置１０に送信される。ゲーム装置１０は、入力デバイス２０からボタン状態情報を受信し、ボタン状態情報に対応付けられた指示に応じてゲーム進行を制御してゲーム画像信号を生成する。生成されたゲーム画像信号は、表示装置１２より出力される。
【００１７】
入力デバイス２０は、ユーザによるボタン状態情報をゲーム装置１０に伝送する機能をもち、本実施例ではゲーム装置１０との間で無線通信可能な無線コントローラとして構成される。入力デバイス２０とゲーム装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルを用いて無線接続を確立してもよい。なお入力デバイス２０は、無線コントローラに限らず、ゲーム装置１０とケーブルを介して接続される有線コントローラであってもよい。
【００１８】
撮像装置１４は、ＣＣＤ撮像素子またはＣＭＯＳ撮像素子などから構成されるビデオカメラであり、実空間を所定の周期で撮像して、フレーム画像を生成する。たとえば、撮像装置１４の撮像速度は６０枚／秒として、表示装置１２のフレームレートと一致させてもよい。撮像装置１４は、ＵＳＢ（Universal Serial Bus）あるいはその他のインタフェースを介してゲーム装置１０と接続する。
【００１９】
表示装置１２は画像を出力するディスプレイであって、ゲーム装置１０において生成された画像信号を受けて、ゲーム画面を表示する。表示装置１２は、ディスプレイおよびスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。表示装置１２は、ゲーム装置１０に有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。
【００２０】
本実施例のゲームシステム１において、入力デバイス２０は発光体を有する。入力デバイス２０の発光体は、複数色で発光可能に構成され、ゲーム装置１０からの発光指示により発光色を設定される。ゲーム中、発光体は所定色で発光し、撮像装置１４により撮像される。撮像装置１４は入力デバイス２０を撮像し、フレーム画像を生成してゲーム装置１０に供給する。ゲーム装置１０はフレーム画像を取得して、フレーム画像における発光体の画像の位置および大きさから、実空間における発光体の位置情報を導出する。ゲーム装置１０は、位置情報をゲームの操作指示として取り扱い、ゲームキャラクタの動作を制御するなど、ゲームの処理に反映させる。本実施例のゲーム装置１０は、入力デバイス２０のボタン状態情報だけでなく、取得した発光体画像の位置情報も用いてゲームプログラムを実行する機能をもつ。
【００２１】
また入力デバイス２０は加速度センサおよびジャイロセンサを有する。センサの検出値は、所定周期でゲーム装置１０に送信され、ゲーム装置１０は、センサの検出値を取得して、実空間における入力デバイス２０の姿勢情報を取得する。ゲーム装置１０は、姿勢情報をゲームの操作指示として取り扱い、ゲームの処理に反映させる。このように本実施例のゲーム装置１０は、取得した入力デバイス２０の姿勢情報も用いてゲームプログラムを実行する機能をもつ。なおゲーム装置１０は、入力デバイス２０の位置情報や姿勢情報を直接的に操作指示として取り扱うだけでなく、これらの情報を演算して導出した情報も操作指示として取り扱う。
【００２２】
図２は、入力デバイス２０の外観構成を示す。図２（ａ）は、入力デバイス２０の上面構成を示し、図２（ｂ）は、入力デバイス２０の下面構成を示す。入力デバイス２０は、発光体２２および略円筒状のハンドル２４を有する。発光体２２は、その外側を光透過性を有する樹脂で球体に形成され、内側に発光ダイオードや電球などの発光素子を有し、内側の発光素子が発光すると、外側の球体全体が光る。ハンドル２４の上面には、操作ボタン３０、３２、３４、３６、３８および起動ボタン４２が設けられ、下面には操作ボタン４０が設けられる。ユーザはハンドル２４の端部を手で把持した状態で、操作ボタン３０、３２、３４、３６、３８を親指で操作し、操作ボタン４０を人差し指で操作する。操作ボタン３０、３２、３４、３６、３８および起動ボタン４２は、押下式に構成され、操作ボタン４０は、回動式に構成される。
【００２３】
ユーザは表示装置１２に表示されるゲーム画面を見ながらゲームを行う。撮像装置１４は、ゲームの実行中に発光体２２を撮像する必要があるため、その撮像範囲が表示装置１２と同じ方向を向くように配置されることが好ましい。一般にユーザは表示装置１２の正面でゲームをプレイすることが多いため、撮像装置１４は、その光軸の方向が表示装置１２の正面方向と一致するように配置される。具体的に、撮像装置１４は、表示装置１２の近傍において、表示装置１２の表示画面をユーザが視認可能な位置を撮像範囲に含むように配置されることが好ましい。これにより、撮像装置１４は、ゲーム中のユーザが把持する入力デバイス２０を撮像できる。
【００２４】
図３は、入力デバイス２０の内部構成を示す。入力デバイス２０は、無線通信モジュール４８、処理部５０、発光部６２および操作ボタン３０、３２、３４、３６、３８、４０、起動ボタン４２を備える。無線通信モジュール４８は、ゲーム装置１０の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部５０は、入力デバイス２０における各種処理を実行する。
【００２５】
処理部５０は、メイン制御部５２、入力受付部５４、３軸加速度センサ５６、３軸ジャイロセンサ５８および発光制御部６０を有する。メイン制御部５２は、無線通信モジュール４８との間で必要なデータの送受を行う。
【００２６】
入力受付部５４は、操作ボタン３０、３２、３４、３６、３８、４０からの入力情報を受け付け、メイン制御部５２に送る。３軸加速度センサ５６は、ｘｙｚの３軸方向の加速度成分を検出する。３軸ジャイロセンサ５８は、ｘｚ平面、ｚｙ平面、ｙｘ平面における角速度を検出する。本実施例では、入力デバイス２０の幅方向をｘ軸、高さ方向をｙ軸、長手方向をｚ軸と設定する。３軸加速度センサ５６および３軸ジャイロセンサ５８は、入力デバイス２０のハンドル２４内に配置され、ハンドル２４内の中心近傍に配置されることが好ましい。無線通信モジュール４８は、操作ボタンからの入力情報とともに、３軸加速度センサ５６による検出値情報、および３軸ジャイロセンサ５８による検出値情報を、所定の周期でゲーム装置１０の無線通信モジュールに送信する。この送信周期は、たとえば１１．２５ｍ秒に設定される。
【００２７】
発光制御部６０は、発光部６２の発光を制御する。発光部６２は、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃを有し、複数色の発光を可能とする。発光制御部６０は、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃの発光を調整して、発光部６２を所望の色に発光させる。
【００２８】
無線通信モジュール４８はゲーム装置１０から発光指示を受信すると、メイン制御部５２に供給し、メイン制御部５２は、発光制御部６０に発光指示を供給する。発光制御部６０は、発光部６２が発光指示により指定された色で発光するように、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃの発光を制御する。たとえば発光制御部６０は、各ＬＥＤをＰＷＭ（パルス幅変調）制御で点灯制御してもよい。
【００２９】
図４は、ゲーム装置１０の内部構成を示す。ゲーム装置１０は、フレーム画像取得部８０、画像処理部８２、デバイス情報処理部９０、無線通信モジュール８６、入力受付部８８、出力部８４およびアプリケーション処理部１００を備える。デバイス情報処理部９０は、位置情報導出部９２、姿勢情報導出部９４および操作情報取得部９６を有する。
【００３０】
本実施例におけるゲーム装置１０の処理機能は、ＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、ゲーム装置１０に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。なおハードウェアの構成上、ゲーム装置１０は複数のＣＰＵを有してもよい。
【００３１】
本実施例のゲームシステム１では、入力デバイス２０の起動ボタン４２が押下されると、ゲーム装置１０に起動要求が送信され、ゲーム装置１０の電源がオンされる。無線通信モジュール４８は、ゲーム装置１０を特定する識別情報を用いて呼び出しを行い、ゲーム装置１０の無線通信モジュール８６が、それに応答して、無線通信モジュール４８と無線通信モジュール８６との間で接続が確立する。このとき、入力デバイス２０がマスタ、ゲーム装置１０がスレーブとして動作するが、接続確立後は、その役割を交替する。以上の通信処理により、入力デバイス２０は、操作ボタンの状態情報、３軸加速度センサ５６および３軸ジャイロセンサ５８の検出値情報を、ゲーム装置１０に所定の周期で送信できるようになる。
【００３２】
無線通信モジュール８６は、入力デバイス２０から送信される操作ボタンの状態情報、およびセンサ検出値情報を受信し、入力受付部８８に供給する。入力受付部８８は、ボタン状態情報およびセンサ検出値情報を分離し、ボタン状態情報をアプリケーション処理部１００に渡し、センサ検出値情報をデバイス情報処理部９０に渡す。アプリケーション処理部１００は、ボタン状態情報を、ゲームの操作指示として受け取る。
【００３３】
フレーム画像取得部８０はＵＳＢインタフェースとして構成され、撮像装置１４から所定の速度（たとえば６０フレーム／秒）でフレーム画像を取得する。画像処理部８２は、フレーム画像から発光体画像を抽出し、フレーム画像中の発光体画像の位置、および大きさを特定する。
【００３４】
画像処理部８２は、フレーム画像データを、発光部６２の発光色に応じたＲＧＢの閾値を用いて２値化処理し、２値化された画像を生成してもよい。発光部６２は、ゲーム装置１０から指示された色で発光し、したがって画像処理部８２は、発光部６２の発光色を特定できるため、フレーム画像から発光部６２の画像を抽出する２値化処理を施すことができる。この２値化処理により、所定の閾値より大きい輝度を保持する画素の画素値が“１”に符号化され、所定の閾値以下の輝度を保持する画素の画素値が“０”に符号化される。これにより画像処理部８２は、２値化された画像から、発光体画像の位置および大きさを特定できる。たとえば画像処理部８２は、フレーム画像における発光体画像の重心座標と、発光体画像の半径や面積を特定する。なお、複数のユーザが入力デバイス２０を操作し、フレーム画像中に複数の発光体２２が存在する場合には、画像処理部８２は、それぞれの発光体２２の発光色に応じた閾値を用いて、複数の２値化された画像を生成し、それぞれの発光体画像の位置および大きさを特定する。画像処理部８２は、特定された発光体画像の位置および大きさをデバイス情報処理部９０に渡す。
【００３５】
デバイス情報処理部９０は、画像処理部８２により特定された発光体画像の位置および大きさを取得すると、撮像装置１４からみた入力デバイス２０の位置情報を導出する。またデバイス情報処理部９０は、入力受付部８８からセンサ検出値情報を取得すると、実空間における入力デバイス２０の姿勢情報を導出する。
【００３６】
図５は、デバイス情報処理部９０において入力デバイス２０の位置情報および姿勢情報を定義するための座標系を示す。この空間座標では、撮像装置１４の光軸に沿ってＺ軸が設定され、撮像装置１４のフレーム画像の左右方向にＸ軸が、上下方向にＹ軸が設定される。したがって、Ｚ軸は、フレーム画像の奥行き方向に設定される。実空間において、Ｙ軸は正確に鉛直方向に設定され、またＸ軸、Ｚ軸は、正確に水平面に設定されることが好ましい。ゲーム開始前、ゲーム装置１０は、ユーザに入力デバイス２０の基準姿勢を登録させる。この登録処理では、発光体２２が撮像装置１４側に向くように、ユーザがハンドル２４をＺ軸に沿って保持し、姿勢情報導出部９４が、入力デバイス２０を静止させた状態のセンサ検出値情報を取得して、基準姿勢のセンサ検出値情報（以下、基準姿勢情報と呼ぶ）を登録する。なおユーザは、図２（ａ）に示す入力デバイス２０の上面を鉛直上方に、図２（ｂ）に示す入力デバイス２０の下面を鉛直下方に向けて入力デバイス２０を保持して、基準姿勢の登録処理を行うことが好ましい。
【００３７】
基準姿勢の登録処理後、姿勢情報導出部９４は、センサ検出値情報を取得すると、基準姿勢情報と対比することで、現在の姿勢情報を導出する。図５を参照して、姿勢情報導出部９４は、入力デバイス２０のピッチ角を、ＸＺ平面に対する角度として導出し、またヨー角を、ＺＹ平面に対する角度として導出する。図５において、Ｙ軸方向（上下方向）に平行にハンドル２４が保持されたとき、発光体２２が上側を向いていればピッチ角は９０度であり、下側を向いていればピッチ角は−９０度となる。また、Ｘ軸方向（左右方向）に平行にハンドル２４が保持されたとき、ユーザから撮像装置１４を見る向きにおいて発光体２２が右側を向いていればヨー角は９０度であり、左側を、向いていればヨー角は−９０度となる。ユーザが発光体２２を撮像装置１４に向けてＺ軸方向（前後方向）にハンドル２４を保持したとき、ピッチ角およびヨー角ともに０度となる。姿勢情報導出部９４は、入力デバイス２０のロール角を、基準姿勢からのねじりの角度として導出する。
【００３８】
位置情報導出部９２は、発光体画像の位置および大きさを取得する。位置情報導出部９２は、発光体画像の重心からフレーム画像における位置座標を導出し、また発光体画像の半径や面積から、撮像装置１４からの距離情報を導出する。位置情報導出部９２は、フレーム画像における重心位置座標と、発光体画像の半径（または面積）に、距離を対応付けたテーブルを有し、このテーブルから距離情報を導出してもよい。また、位置情報導出部９２は、フレーム画像における重心位置座標と、発光体画像の半径（または面積）から、演算式を用いて、距離情報を演算により導出してもよい。位置情報導出部９２は、フレーム画像における位置座標と、導出する距離情報から、発光体２２の実空間における位置情報を導出する。
【００３９】
以上のように、姿勢情報導出部９４が入力デバイス２０の姿勢情報を導出し、位置情報導出部９２が発光体２２の位置情報を導出すると、操作情報取得部９６が、それらの導出された情報を受け取って、入力デバイス２０の操作情報を取得する。入力デバイス２０の操作情報として、操作情報取得部９６は、たとえば以下の要素を取得する。
・入力デバイス２０の傾きの角度
・入力デバイス２０の傾きの変わる速度
・入力デバイス２０のねじり（ロール角）
・入力デバイス２０の上下の向き（ピッチ角）
・入力デバイス２０の左右の向き（ヨー角）
・発光体２２の位置
・発光体２２の移動速度
・発光体２２の加速度
・ハンドル２４の位置
・ハンドル２４の移動速度
・ハンドル２４の加速度
【００４０】
操作情報取得部９６は、入力デバイス２０の傾きの角度、傾きの変わる速度、ロール角、ピッチ角およびヨー角を、センサ検出値情報または姿勢情報導出部９４で導出される姿勢情報から求める。同様に操作情報取得部９６は、ハンドル２４の移動速度および加速度を、センサ検出値情報または姿勢情報から求める。また操作情報取得部９６は、発光体２２の位置、移動速度および加速度を、位置情報導出部９２で導出される発光体２２の位置情報から求める。さらに操作情報取得部９６は、入力デバイス２０を構成する発光体２２とハンドル２４の位置関係を把握している。たとえば操作情報取得部９６は、入力デバイス２０の姿勢情報を取得し、また発光体２２の位置情報を取得すると、発光体２２とハンドル２４の位置関係から、ハンドル２４の位置情報（たとえば重心の位置情報）を取得できる。なお、発光体２２の位置や、移動速度および加速度は、センサ検出値情報または姿勢情報導出部９４で導出される姿勢情報から求められてもよい。
【００４１】
なお本実施例において、発光体２２の位置情報およびハンドル２４の位置情報は、それぞれ入力デバイス２０の位置情報として扱われる。同様に、発光体２２の移動速度情報およびハンドル２４の移動速度情報は、それぞれ入力デバイス２０の移動速度情報として扱われ、発光体２２の加速度情報およびハンドル２４の加速度情報は、それぞれ入力デバイス２０の加速度情報として扱われる。
【００４２】
以上のように操作情報取得部９６は、入力デバイス２０の位置情報、センサ検出値情報、および／または、入力デバイス２０の姿勢情報などに基づいて、入力デバイス２０の操作情報を取得する。操作情報取得部９６は、取得した操作情報をアプリケーション処理部１００に渡す。アプリケーション処理部１００は、入力デバイス２０の操作情報を、ゲームの操作指示として受け取る。
【００４３】
アプリケーション処理部１００は、入力デバイス２０の操作情報と、ボタン状態情報とからゲームを進行させて、ゲームアプリケーションの処理結果を示す画像信号を生成する。画像信号は出力部８４から表示装置１２に送られ、表示画像として出力される。
【００４４】
図６は、アプリケーション処理部１００の構成を示す。アプリケーション処理部１００は、操作指示受付部１０２、制御部１１０、パラメータ保持部１５０、３次元データ保持部１５２、行動テーブル保持部１５４および画像生成部１５６を備える。制御部１１０は、条件判定部１１２、オブジェクト制御部１１４、表示制御部１１６および色設定部１１８を含む。アプリケーション処理部１００の各構成は、ゲームプログラムにより実現される様々な機能を表現する。パラメータ保持部１５０、３次元データ保持部１５２および行動テーブル保持部１５４は、ゲームソフトウェアから各種データを読み出して保持するＲＡＭであってよい。
【００４５】
操作指示受付部１０２は、デバイス情報処理部９０から入力デバイス２０の操作情報を、入力受付部８８からボタン状態情報を、それぞれ操作指示として受け付ける。制御部１１０は、操作指示受付部１０２が受け付けた操作指示にもとづいてゲームプログラムを実行し、ゲームを進行させる。パラメータ保持部１５０は、ゲームの進行に必要なパラメータを保持する。３次元データ保持部１５２は、ゲーム空間を構成する３次元データを保持する。表示制御部１１６は、ゲームオブジェクトの移動に応じて、３次元のゲーム空間をレンダリングするためのカメラを制御し、画像生成部１５６に表示画面を生成させる。画像生成部１５６は、ゲーム空間内のカメラの視点位置と視線方向を設定し、３次元データをレンダリングして、制御部１１０により制御されるゲーム空間を表現した表示画面、すなわちゲームオブジェクトの動作にしたがう表示画面を生成する。
【００４６】
行動テーブル保持部１５４は、ゲームオブジェクトの所定の行動と、入力デバイス２０の操作条件との対応を保持する。ここで操作条件は、対応付けられた行動をオブジェクトに実行させるための条件であり、複数の条件を含んで構成されてもよい。なお本実施例の行動テーブル保持部１５４は、ゲームオブジェクトの行動と操作条件とをテーブル形式で保持しているが、その他の形式で保持してもよい。行動テーブル保持部１５４は、いずれの形式を採用する場合であっても、ゲームオブジェクトの行動と操作条件とを対応付けるものであればよい。条件判定部１１２は、操作指示受付部１０２で受け付けた操作情報が、行動テーブル保持部１５４に保持されている条件を満たすか判定する。
【００４７】
図７は、本実施例で想定するゲームのシーン例を示す。このゲームでは、ゲームオブジェクト２００が車であり、車がたとえば障害物２０２を避けながら、下のゴールに到着するまでのタイムを競う。このゲームでは車は坂道を自動的に下るものとし、ユーザはアクセル操作を不要とする。
【００４８】
障害物２０２は静止したオブジェクトであり、３次元空間における位置は、３次元データ保持部１５２に保持されたデータにより定められている。表示制御部１１６は、ワールド座標で表現されるゲーム空間において、ユーザから入力される操作指示に応じたゲームオブジェクト２００の移動方向や実行される行動（アクション）に応じて、仮想カメラの視線方向と視点位置を決定する。画像生成部１５６は、決定された視点位置に仮想カメラを配置し、決定された視線方向に仮想カメラの光軸を向けて、３次元データ保持部１５２に保持されている３次元データをレンダリングし、ゲームオブジェクトの動作に応じた表示画面を生成する。
【００４９】
図８は、ゲームオブジェクトの所定の行動と、入力デバイス２０の操作条件との対応を記録したテーブルの一例を示す。このテーブルにおいて、「ＹＡＷ」はヨー角であり、「ＰＩＴＣＨ」はピッチ角であり、「ＨＡＮＤＬＥＰＯＳ（Ｚ）」はハンドル２４のＺ軸方向の移動量であり、「ＳＰＨＥＲＥＰＯＳ（Ｙ）」は発光体２２のＹ軸方向の移動量であり、「ＴＩＭＥ」は制限時間である。以下、それぞれの操作条件について説明する。
【００５０】
＜ターンアクション１＞
「左にターン」は、左にステアリングホイールを切るアクションであり、このとき、ヨー角が（−６０度＜ＹＡＷ（ヨー角）＜−２度）の範囲にあれば、条件判定部１１２は、「左にターン」の操作条件が成立したことを判定する。図９（ａ）は、ユーザが入力デバイス２０の発光体２２を左側に振った状態を示す。条件判定部１１２は、ヨー角αが、（−６０度＜α＜−２度）の範囲にあることを判定すると、「左にターン」のアクションに対応付けられた操作条件が満たされたことを判定する。条件判定部１１２は、操作条件の成立を判定すると、ヨー角αをオブジェクト制御部１１４に通知し、オブジェクト制御部１１４は、ゲームオブジェクト２００に、その操作条件に対応付けられている所定の行動、すなわち、この場合は「左にターン」を実行させる。このとき、オブジェクト制御部１１４は、ヨー角αの大きさに応じてタイヤの切れ角を設定し、画像生成部１５６は、車が左に曲がるように表示画面を生成する。
【００５１】
＜ターンアクション２＞
「右にターン」は、右にステアリングホイールを切るアクションであり、このとき、ヨー角が（２度＜ＹＡＷ（ヨー角）＜６０度）の範囲にあれば、条件判定部１１２は、「右にターン」の操作条件が成立したことを判定する。図９（ｂ）は、ユーザが入力デバイス２０の発光体２２を右側に振った状態を示す。条件判定部１１２は、ヨー角αが、（２度＜α＜６０度）の範囲にあることを判定すると、「右にターン」のアクションに対応付けられた操作条件が満たされたことを判定する。条件判定部１１２は、操作条件の成立を判定すると、ヨー角αをオブジェクト制御部１１４に通知し、オブジェクト制御部１１４は、ゲームオブジェクト２００に、その操作条件に対応付けられている所定の行動、すなわち、この場合は「右にターン」を実行させる。このとき、オブジェクト制御部１１４は、ヨー角αの大きさに応じてタイヤの切れ角を設定し、画像生成部１５６は、車が右に曲がるように表示画面を生成する。
【００５２】
＜ダッシュアクション＞
「ダッシュ」は、車速を瞬間的に大きくするアクションである。「ダッシュ」の操作条件は、複数の条件により構成され、各条件は、演算子「＆」で結合されている。この演算子「＆」は、各条件が同時に成立しなければならないことを意味する。複数の条件を含んで構成される操作条件を１つのアクションに設定することで、ユーザの習熟度を要求するゲームアプリケーションを実現できる。
【００５３】
第１条件（−３５度＜ＰＩＴＣＨ＜３５度）は、入力デバイス２０のピッチ角βが、（−３５度＜β＜３５度）の範囲にあるべきことを示す。第２条件（−４０度＜ＹＡＷ（ヨー角）＜４０度）は、入力デバイス２０のヨー角αが、（−４０度＜α＜４０度）の範囲にあるべきことを示す。第３条件（ＨＡＮＤＬＥＰＯＳ（Ｚ）＜−１５０ｍｍ：ＴＩＭＥ：１．０ｓ）は、（ＨＡＮＤＬＥＰＯＳ（Ｚ）＜−１５０ｍｍ）と（ＴＩＭＥ：１．０ｓ）に分解され、（ＨＡＮＤＬＥＰＯＳ（Ｚ）＜−１５０ｍｍ）は、Ｚ軸の負方向のハンドル２４の移動量が１５０ｍｍを超えること、（ＴＩＭＥ：１．０ｓ）は、その移動が１秒以内に実行されることを示す。つまり、第３条件は、１秒以内にハンドル２４がＺ軸の負方向に１５０ｍｍより長い距離を移動されるべきことを示している。本実施例のゲームシステム１では、ユーザが入力デバイス２０を使って操作指示を生成するため、入力デバイス２０の操作に時間制限を設けることで、スピーディな動きをユーザが行うようになり、ゲーム操作に躍動感をもたせることができる。
【００５４】
図１０は、第１条件および第２条件により制限される入力デバイス２０のピッチ角β、ヨー角αの範囲を示す。この範囲は、仮想的な四角錐で表現される。ユーザは、入力デバイス２０の軸線がこの四角錐の範囲に入るように保持し、その状態から１秒以内にＺ軸の負方向に１５０ｍｍより長い距離だけ入力デバイス２０を突き出すと、条件判定部１１２は、第１条件、第２条件、第３条件の全てが満たされたことを判定する。この第１〜第３条件をまとめると、「ダッシュ」発動の操作条件は、ユーザが発光体２２を撮像装置１４側に向け、Ｚ軸に近似した方向に入力デバイス２０を保持して、素早く撮像装置１４に向けて１５０ｍｍより長く突き出すことである。
【００５５】
条件判定部１１２は、各条件の成立の有無をそれぞれ独立に監視する。「ダッシュ」アクションに対して、所定時間内に入力デバイス２０が所定量移動したことが第３の条件に設定されており、具体的には、１秒以内にＺ軸の負方向のハンドル２４の移動量が１５０ｍｍを超えることが第３の条件とされている。ハンドル２４がＺ軸の正方向への移動から負方向への移動に変化したとき、またはＺ軸方向に静止した状態から負方向に移動したとき、条件判定部１１２は、Ｚ軸の負方向への移動開始を検出し、移動開始時点からの時間の計測を開始する。ハンドル２４のＺ軸方向への移動は、ハンドル２４の位置情報から検出される。具体的に条件判定部１１２は、操作情報として取得されるハンドル２４の位置情報を監視して、連続して取得される位置情報のうち、Ｚ座標値が負方向に変化したときに、移動開始を検出する。条件判定部１１２は、１秒以内にハンドル２４の移動量が１５０ｍｍを超えると、第３条件の成立を判定する。
【００５６】
なお、本実施例において、第３条件は、１秒以内にハンドル２４がＺ軸の負方向に連続して移動することを含んでもよい。連続して移動するとは、連続して取得される位置情報のＺ座標値が、変化せず、または負方向に変化し、正方向には変化しないことを意味する。したがって、移動量が１５０ｍｍを超える前に、ハンドル２４がＺ軸の正方向に移動した場合には、それまでの移動量はキャンセルされる。このように条件判定部１１２は、入力デバイス２０がＺ軸の負方向への移動開始から移動量が１５０ｍｍを超える前に正方向に移動した場合には、正方向に移動した時点で条件不成立を判定する。
【００５７】
したがって、ユーザがハンドル２４を後方に引くことなく、前方に突き出している最中に、条件判定部１１２が、所定時間（ここでは１秒）内に、入力デバイス２０が連続して１５０ｍｍよりも長く移動したことを検出すると、第３条件の成立を判定する。一方で、条件判定部１１２は、移動開始から入力デバイス２０がＺ軸の負方向に連続して１５０ｍｍ移動する前に、Ｚ軸の正方向に移動すると、その時点で第３条件の不成立を判定し、再度、負方向に移動したときに、時間の計測を開始して、第３条件の成立を監視する。
【００５８】
条件判定部１１２は、「ダッシュ」発動の各条件の成立の有無をそれぞれ独立に判定する。各条件は、演算子「＆」で結合されており、すなわち、各条件が同時に成立することで「ダッシュ」アクションが実行される。条件判定部１１２は、第１〜第３条件のそれぞれに対して、各条件が成立していればフラグ１を、成立していなければフラグ０を設定する。条件判定部１１２は、各条件のフラグが全て１になったタイミングで、全ての操作条件の成立を判定し、「ダッシュ」発動条件の成立をオブジェクト制御部１１４に通知する。オブジェクト制御部１１４は、ゲームオブジェクト２００に、「ダッシュ」を実行させ、画像生成部１５６は、車速が瞬間的に大きくなるように表示画面を生成する。
【００５９】
＜ジャンプアクション＞
「ジャンプ」は、車をジャンプさせるアクションである。たとえばジャンプすることで車が障害物２０２との衝突を回避できる。「ジャンプ」の操作条件は、複数の条件により構成され、各条件は、演算子「＄」で結合されている。この演算子「＄」は、各条件が現時点で成立していればよく、それぞれの成立タイミングは異なってよいことを意味する。すなわち、ある条件が成立すると、その条件は、残りの条件が成立するまで、成立状態を維持される。
【００６０】
第１条件（ＳＰＨＥＲＥＰＯＳ（Ｙ）＞１５０ｍｍ：ＴＩＭＥ：１．０ｓ）は、（ＳＰＨＥＲＥＰＯＳ（Ｙ）＞１５０ｍｍ）と（ＴＩＭＥ：１．０ｓ）に分解され、（ＳＰＨＥＲＥＰＯＳ（Ｙ）＞１５０ｍｍ）は、Ｙ軸の正方向の発光体２２の移動量が１５０ｍｍを超えること、（ＴＩＭＥ：１．０ｓ）は、その移動が１秒以内に実行されることを示す。つまり第１条件は、１秒以内に発光体２２がＹ軸の正方向に１５０ｍｍより高く移動されることを示している。第２条件（ＰＩＴＣＨ＞６５）は、入力デバイス２０のピッチ角が６５度よりも大きいことを示す。
【００６１】
図１１（ａ）は、第２条件の成立状態を示す。ユーザは、ピッチ角βが６５度よりも大きくなるようにＹ軸の正方向に入力デバイス２０を立てる。このようにユーザが入力デバイス２０を略鉛直方向に向けることで、第２条件が成立する。図１１（ｂ）は、第１条件の成立状態を示す。ユーザは、Ｙ軸の正方向に入力デバイス２０を移動する。１秒以内に発光体２２の移動量Ｄが１５０ｍｍより大きくなると、第１条件が成立する。なお、Ｙ軸の正方向への移動とは、入力デバイス２０の移動方向そのものを意味するのではなく、入力デバイス２０の移動方向のうちのＹ軸成分の移動を意味する。なお、第２条件の成立後に第１条件が成立してもよく、また第１条件の成立後に第２条件が成立してもよい。「ジャンプ」アクションの発動に際して、操作条件を構成する複数の条件の成立順序は問わない。条件の成立順序を問わないことで、違う手順の操作により同じアクションを実行できるようになり、ユーザの操作感に多様性をもたせることが可能となる。
【００６２】
条件判定部１１２は、各条件の成立の有無をそれぞれ独立に監視する。「ジャンプ」アクションに対して、所定時間内に入力デバイス２０が所定量移動したことが第１の条件に設定されており、具体的には、１秒以内にＹ軸の正方向の発光体２２の移動量が１５０ｍｍを超えることが第１の操作条件とされている。発光体２２がＹ軸の負方向への移動から正方向への移動に変化したとき、またはＹ軸方向に静止した状態から正方向に移動したとき、条件判定部１１２は、Ｙ軸の正方向への移動開始を検出し、移動開始時点からの時間の計測を開始する。発光体２２のＹ軸方向への移動は、発光体２２の位置情報から検出される。具体的に条件判定部１１２は、操作情報として取得される発光体２２の位置情報を監視して、連続して取得される位置情報のうち、Ｙ座標値が正方向に変化したときに、移動開始を検出する。条件判定部１１２は、１秒以内に発光体２２の移動量が１５０ｍｍを超えると、第１条件の成立を判定する。
【００６３】
既述したように、発光体２２の位置情報は、位置情報導出部９２により導出される。位置情報導出部９２は、発光体画像の位置および大きさから発光体２２の位置情報を導出することを説明したが、たとえば３軸加速度センサ５６の検出値を２回積分することで移動量を導出して、位置情報を導出してもよい。位置情報導出部９２は、発光体画像と加速度検出値の双方を用いて発光体２２の位置情報を導出してもよく、これにより導出精度を高めることが可能となる。なお、一方からの入力がない場合、たとえば発光体２２が隠されて、発光体画像を取得できないような場合には、加速度検出値のみから発光体２２の位置情報が導出されてもよい。
【００６４】
なお、本実施例において、第１条件は、１秒以内に発光体２２がＹ軸の正方向に連続して移動することを含んでもよい。連続して移動するとは、連続して取得される位置情報のＹ座標値が、変化せず、または正方向に変化し、負方向には変化しないことを意味する。したがって、移動量が１５０ｍｍを超える前に、発光体２２がＹ軸の負方向に移動した場合には、それまでの移動量はキャンセルされる。このように条件判定部１１２は、入力デバイス２０がＹ軸の正方向への移動開始から移動量が１５０ｍｍを超える前に負方向に移動した場合には、負方向に移動した時点で条件不成立を判定する。
【００６５】
したがって、ユーザが発光体２２を上方に１５０ｍｍよりも高く持ち上げ続け、条件判定部１１２は、所定時間（ここでは１秒）内に、発光体２２が連続して１５０ｍｍよりも長く移動したことを検出すると、第１条件の成立を判定する。一方で、条件判定部１１２は、移動開始から発光体２２がＹ軸の正方向に連続して１５０ｍｍ移動する前に、Ｙ軸の負方向に移動すると、その時点で第１条件の不成立を判定し、再度、正方向に移動したときに、時間の計測を開始して、第１条件の成立を監視する。
【００６６】
条件判定部１１２は、各条件の成立の有無をそれぞれ独立に判定する。各条件は、演算子「＄」で結合されており、一方の条件が成立すると、その条件の成立は、他方の条件が成立するまで維持される。条件判定部１１２は、第１〜第２条件のそれぞれに対して、各条件が成立するとフラグ１を、成立していなければフラグ０を設定する。各条件が演算子「＄」で結合されている場合、条件判定部１１２は、ある条件が成立してフラグ１を設定すると、別の条件が成立してフラグ１が設定されて「ジャンプ」アクションが実行されるまで、以前に設定された条件のフラグ値は維持される。たとえば図１１（ａ）で示すように、第２条件が成立して、第２条件のフラグが１に設定されると、その後、ピッチ角が６５度より小さくなっても、そのフラグ値１は維持される。第１条件についても同様である。条件判定部１１２は、全条件のフラグ値が１になったタイミングで、「ジャンプ」発動条件の成立を判定し、その成立をオブジェクト制御部１１４に通知する。オブジェクト制御部１１４は、ゲームオブジェクト２００に、「ジャンプ」を実行させ、画像生成部１５６は、車速が瞬間的に大きくなるように表示画面を生成する。「ジャンプ」は、車の移動中に実行されるため、ジャンプ中の車の挙動は、前進方向への速度を保ちつつ、路面から離れて孤を描いて着地するように表示画面が生成される。
【００６７】
このとき色設定部１１８は、「ジャンプ」発動条件が成立したことをユーザに知らせるべく、発光体２２の発光色を変更する。色設定部１１８は、現在の発光色とは異なる色の発光指示を生成し、無線通信モジュール８６から送信させる。入力デバイス２０において、無線通信モジュール４８が発光指示を受信すると、メイン制御部５２に供給し、メイン制御部５２は、発光制御部６０に発光指示を供給する。発光制御部６０は、発光部６２が発光指示により指定された色で発光するように、赤色ＬＥＤ６４ａ、緑色ＬＥＤ６４ｂ、青色ＬＥＤ６４ｃの発光を制御する。
【００６８】
「ジャンプ」アクションを実行するためには、ユーザは、操作条件を満たすように入力デバイス２０を操作する必要がある。従来のボタン操作によれば、ボタンを押下するだけでアクションを発動できたが、本実施例の入力デバイス２０の操作が、操作条件を満たすものであるかどうかは、ユーザは認識できない。そこで、色設定部１１８が発光部６２の発光色を変更することで、ユーザはジャンプするための操作条件が成立したことを認識できるようにすることが好ましい。このとき、色設定部１１８は、各アクションに対して、異なる色を設定してもよく、ユーザは、発光体２２の色をみて、自分の操作が正しいことを認識できるようにしてもよい。
【００６９】
なお、条件判定部１１２は、図７に示すアクションに対する操作条件を、それぞれ独立に判定する。したがって、条件判定部１１２が「ジャンプ」の操作条件の成立を判定し、オブジェクト制御部１１４がゲームオブジェクト２００をジャンプさせている最中に、条件判定部１１２が「左にターン」の操作条件の成立を判定することもある。このときオブジェクト制御部１１４は、ゲームオブジェクト２００のジャンプ中に、ゲームオブジェクト２００の姿勢を左に向けてもよい。このように、条件判定部１１２は、各アクションの操作条件をそれぞれ独立に判定して、成立結果に応じて、オブジェクト制御部１１４が、ゲームオブジェクト２００に複数のアクションを同時に実行させるようにしてもよい。
【００７０】
また、「ジャンプ」発動条件のように、演算子「＄」で複数の条件が結合されている場合には、他のアクションの実行中に、各条件が成立することも起こりうる。たとえば、「ダッシュ」アクションの実行中に、発光体２２が１秒以内にＹ軸方向に１５０ｍｍよりも高く持ち上げられると、操作条件のうちの第１条件が成立する。演算子「＄」で複数の条件が結合されている場合、第１条件は、第２条件が成立するまで成立状態を維持するため、ユーザは、ゲームオブジェクト２００をジャンプさせたいときには、第２条件のみを成立させればよくなる。同様に、他のアクション実行中に、入力デバイス２０のピッチ角βを６５度よりも大きくすれば、第２条件が成立し、ユーザは、ゲームオブジェクト２００をジャンプさせたいときには、第１条件のみを成立させればよい。なお、他のアクション実行中に限らず、ユーザは、一方の条件を成立させておき、ジャンプアクションを実行させたいときに、残りの条件を成立させるように入力デバイス２０を操作してもよい。このように、演算子「＄」で複数の条件を関連づけておくと、ユーザは、各条件を成立させるタイミングを自由に決めることができるので、ユーザの技量に応じた新たなゲームを創造することができる。
【００７１】
このとき色設定部１１８は、「ジャンプ」発動条件を構成する複数の条件のうち、どの条件が成立しているかをユーザに知らせるべく、発光体２２の発光色を変更してもよい。たとえば色設定部１１８は、第１条件が成立している場合には緑色、第２条件が成立している場合には青色と、各条件の成立に対して異なる色を割り当てる。これにより、ユーザは、成立している条件を確認できるとともに、どの条件を成立させれば、「ジャンプ」アクションが発動するかを知ることができる。
【００７２】
図１２は、複数の操作条件が設定されたときの条件判定フローの一例を示す。図１２に示すフローチャートにおいては、各部の処理手順を、ステップを意味するＳ（Ｓｔｅｐの頭文字）と数字との組み合わせによって表示する。また、Ｓと数字との組み合わせによって表示した処理で何らかの判断処理が実行され、その判断結果が肯定的であった場合は、Ｙ（Ｙｅｓの頭文字）を付加して、例えば、（Ｓ１０のＹ）と表示し、逆にその判断結果が否定的であった場合は、Ｎ（Ｎｏの頭文字）を付加して、（Ｓ１０のＮ）と表示する。なお、フローチャートにおける表示の意味は、他の図面に示すフローチャートでも同じである。
【００７３】
図１２の例では、複数の操作条件が演算子「＆」で結合されているときの条件判定部１１２の判定処理を説明する。演算子「＆」は、各条件が同時に成立しなければならないことを意味する。演算子「＆」については、「ダッシュ」アクションの例で説明したが、図１２では説明の便宜上、第１条件と第２条件の２つの条件が「＆」で結合されているものとする。なお、第１条件の成立の有無を示すフラグを第１フラグ、第２条件の成立の有無を示すフラグを第２フラグと呼ぶ。
【００７４】
条件判定部１１２が、操作情報から第１条件の成立の有無を判定する（Ｓ１０）。成立していれば（Ｓ１０のＹ）、条件判定部１１２は第１フラグを１に設定し（Ｓ１２）、成立していなければ（Ｓ１０のＮ）、第１フラグを０に設定する（Ｓ１４）。これと並行して、条件判定部１１２は、操作情報から第２条件の成立の有無を判定する（Ｓ１６）。成立していれば（Ｓ１６のＹ）、条件判定部１１２は第２フラグを１に設定し（Ｓ１８）、成立していなければ（Ｓ１６のＮ）、第２フラグを０に設定する（Ｓ２０）。
【００７５】
条件判定部１１２は、第１フラグ、第２フラグともに１に設定されているか判定する（Ｓ２２）。ともに１に設定されていれば（Ｓ２２のＹ）、オブジェクト制御部１１４が、対応するアクションを実行する（Ｓ２４）。一方、第１フラグ、第２フラグの少なくとも一方が０に設定されていれば（Ｓ２２のＮ）、Ｓ１０からのステップを再実行する。
【００７６】
以上のように、この条件判定フローによると、第１条件および第２条件が同時に成立していなければ、アクションが実行されないため、ユーザの技量が要求されるアクションが実現できる。
【００７７】
図１３は、複数の操作条件が設定されたときの条件判定フローの別の例を示す。図１３の例では、複数の操作条件が演算子「＄」で結合されているときの条件判定部１１２の判定処理を説明する。演算子「＄」は、各条件が同時に成立する必要がなく、全ての条件が現時点までに成立していればよいことを意味する。演算子「＄」については、「ジャンプ」アクションの例で説明した。図１３では、第１条件と第２条件の２つの条件が「＄」で結合されているものとする。なお、第１条件の成立の有無を示すフラグを第１フラグ、第２条件の成立の有無を示すフラグを第２フラグと呼ぶ。なお前提として、第１フラグ、第２フラグともに０に設定されている状態から、本条件判定フローが開始する。
【００７８】
条件判定部１１２が、操作情報から第１条件の成立の有無を判定する（Ｓ４０）。成立していれば（Ｓ４０のＹ）、条件判定部１１２は第１フラグを１に設定し（Ｓ４２）、成立していなければ（Ｓ４０のＮ）、第１フラグを変更しない。これと並行して、条件判定部１１２は、操作情報から第２条件の成立の有無を判定する（Ｓ４４）。成立していれば（Ｓ４４のＹ）、条件判定部１１２は第２フラグを１に設定し（Ｓ４６）、成立していなければ（Ｓ４４のＮ）、第２フラグを変更しない。
【００７９】
条件判定部１１２は、第１フラグ、第２フラグともに１に設定されているか判定する（Ｓ４８）。ともに１に設定されていれば（Ｓ４８のＹ）、オブジェクト制御部１１４が、対応するアクションを実行し（Ｓ５０）、第１フラグ、第２フラグをそれぞれ０に設定する（Ｓ５２）。一方、第１フラグ、第２フラグの少なくとも一方が０に設定されていれば（Ｓ４８のＮ）、Ｓ４０からのステップを再実行する。
【００８０】
以上のように、この条件判定フローによると、条件が一旦成立すると、その後、条件が不成立になっても、フラグは１に維持される。このように条件成立した状態を維持できることで、ユーザは、適当なタイミングで、最後の条件を成立させて、ゲームオブジェクト２００を自由にコントロールすることができる。
【００８１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００８２】
１・・・ゲームシステム、１０・・・ゲーム装置、１２・・・表示装置、１４・・・撮像装置、２０・・・入力デバイス、２２・・・発光体、２４・・・ハンドル、４８・・・無線通信モジュール、５０・・・処理部、５２・・・メイン制御部、５４・・・入力受付部、５６・・・３軸加速度センサ、５８・・・３軸ジャイロセンサ、６０・・・発光制御部、６２・・・発光部、８０・・・フレーム画像取得部、８２・・・画像処理部、８４・・・出力部、８６・・・無線通信モジュール、８８・・・入力受付部、９０・・・デバイス情報処理部、９２・・・位置情報導出部、９４・・・姿勢情報導出部、９６・・・操作情報取得部、１００・・・アプリケーション処理部、１０２・・・操作指示受付部、１１０・・・制御部、１１２・・・条件判定部、１１４・・・オブジェクト制御部、１１６・・・表示制御部、１１８・・・色設定部、１５０・・・パラメータ保持部、１５２・・・３次元データ保持部、１５４・・・行動テーブル保持部、１５６・・・画像生成部。
【図１】
0005241789.tif 000002
【図２】
0005241789.tif 000003
【図３】
0005241789.tif 000004
【図４】
0005241789.tif 000005
【図５】
0005241789.tif 000006
【図６】
0005241789.tif 000007
【図７】
0005241789.tif 000008
【図８】
0005241789.tif 000009
【図９】
0005241789.tif 000010
【図１０】
0005241789.tif 000011
【図１１】
0005241789.tif 000012
【図１２】
0005241789.tif 000013
【図１３】
0005241789.tif 000014