プログラム、オブジェクト制御方法およびゲーム装置
【課題】入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供する。
【解決手段】行動テーブル保持部154は、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する。条件判定部112は、入力デバイスの操作情報が、行動テーブル保持部154に保持されている操作条件を満たすか判定する。オブジェクト制御部114は、操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させる。行動テーブル保持部154は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持し、条件判定部112は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。
【解決手段】行動テーブル保持部154は、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する。条件判定部112は、入力デバイスの操作情報が、行動テーブル保持部154に保持されている操作条件を満たすか判定する。オブジェクト制御部114は、操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させる。行動テーブル保持部154は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持し、条件判定部112は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、ユーザが入力デバイスを利用してゲームキャラクタなどのオブジェクトを動作させるゲーム装置に関する。
【背景技術】
【0002】
ゲーム装置の処理能力の向上に伴い、3次元的にモデリングされたゲームフィールド内でゲームキャラクタを動作させるゲームが数多く登場している。また近年では、ボタン操作による入力だけでなく、ユーザが動かす実オブジェクトをカメラで撮像して、カメラ画像における実オブジェクトの動きをゲームの入力として利用する技術も提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許6795068号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
入力デバイスとゲームは密接な関係をもち、新しい入力デバイスが登場すると、その入力デバイスの特徴を活かしたゲームアプリケーションが開発される。本発明者は、ユーザの多様化した要求を満足させるべく、ユーザが動かす入力デバイスに連動する新たなゲームアプリケーションを想到するに至った。
【0005】
そこで本発明は、ユーザによる入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のある態様のプログラムは、コンピュータに、入力デバイスの操作情報が所定の操作条件を満たすか判定する判定機能と、操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能とを実現させるためのプログラムである。所定の操作条件は、所定時間内に、入力デバイスが所定量移動することを条件とするものであって、判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する機能を含む。
【0007】
本発明の別の態様のプログラムは、コンピュータに、入力デバイスの操作情報が所定の操作条件を満たすか判定する判定機能と、操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能とを実現させるためのプログラムである。ゲーム空間内でオブジェクトをジャンプさせる操作条件は、入力デバイスを略鉛直方向に向けることと、入力デバイスを鉛直上方向に移動することを条件とするものであって、判定機能が、オブジェクトをジャンプさせる操作条件の成立を判定すると、オブジェクト制御機能が、ゲーム空間内でオブジェクトをジャンプさせる。
【0008】
本発明のさらに別の態様は、オブジェクト制御方法である。この方法は、入力デバイスの操作に応じてオブジェクトを動作させるオブジェクト制御方法であって、発光体を有する入力デバイスの撮像画像を取得するステップと、撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得するステップと、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持するステップと、操作情報が、操作条件を満たすか判定するステップと、操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるステップとを備える。保持ステップは、所定時間内に入力デバイスが所定量移動することを操作条件として保持しており、条件判定ステップは、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。
【0009】
本発明のさらに別の態様は、入力デバイスの操作に応じてオブジェクトを動作させるゲーム装置である。この装置は、発光体を有する入力デバイスの撮像画像を取得する画像取得部と、撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得する操作情報取得部と、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する保持部と、操作情報が、保持部に保持されている操作条件を満たすか判定する条件判定部と、条件判定部により操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるオブジェクト制御部とを備える。保持部は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持しており、条件判定部は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。入力デバイスの操作情報は、入力デバイスの位置情報および/または姿勢情報そのものであってもよく、また位置情報や姿勢情報から演算などにより求められる情報であってもよい。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によると、ユーザによる入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施例にかかるゲームシステムの使用環境を示す図である。
【図2】入力デバイスの外観構成を示す図である。
【図3】入力デバイスの内部構成を示す図である。
【図4】ゲーム装置の内部構成を示す図である。
【図5】デバイス情報処理部において入力デバイスの位置情報および姿勢情報を定義するための座標系を示す図である。
【図6】アプリケーション処理部の構成を示す図である。
【図7】本実施例で想定するゲームのシーン例を示す図である。
【図8】ゲームオブジェクトの所定の行動と、入力デバイスの操作条件との対応を記録したテーブルの一例を示す図である。
【図9】(a)は、ユーザが入力デバイスの発光体を左側に振った状態を示す図であり、(b)は、ユーザが入力デバイスの発光体を右側に振った状態を示す図である。
【図10】第1条件および第2条件により制限される入力デバイスのピッチ角β、ヨー角αの範囲を示す図である。
【図11】(a)は、第2条件の成立状態を示す図であり、(b)は、第1条件の成立状態を示す図である。
【図12】複数の操作条件が設定されたときの条件判定フローの一例を示す図である。
【図13】複数の操作条件が設定されたときの条件判定フローの別の例を示す図である。
【発明を実施するための形態】
【0013】
本発明の実施例は、ゲームコントローラとして機能する入力デバイスの実空間における位置情報および/または姿勢情報をゲームの操作情報として取得し、その操作情報をもとにゲームソフトウェアを実行可能なゲーム装置を提供する。
【0014】
図1は、本発明の実施例にかかるゲームシステム1の使用環境を示す。ゲームシステム1は、ゲームソフトウェアを実行するゲーム装置10と、ゲーム装置10による処理結果を出力する表示装置12と、入力デバイス20と、入力デバイス20を撮像する撮像装置14を備える。
【0015】
入力デバイス20は、ユーザが操作指示を行うための操作入力装置であり、ゲーム装置10は、入力デバイス20による操作指示をもとにゲームプログラムを実行して、ゲームの処理結果を示す画像信号を生成する処理装置である。
【0016】
入力デバイス20はバッテリにより駆動され、操作入力を行わせるための複数のボタンを有して構成される。ユーザが入力デバイス20のボタンを操作すると、そのボタンの状態情報がゲーム装置10に送信される。ゲーム装置10は、入力デバイス20からボタン状態情報を受信し、ボタン状態情報に対応付けられた指示に応じてゲーム進行を制御してゲーム画像信号を生成する。生成されたゲーム画像信号は、表示装置12より出力される。
【0017】
入力デバイス20は、ユーザによるボタン状態情報をゲーム装置10に伝送する機能をもち、本実施例ではゲーム装置10との間で無線通信可能な無線コントローラとして構成される。入力デバイス20とゲーム装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルを用いて無線接続を確立してもよい。なお入力デバイス20は、無線コントローラに限らず、ゲーム装置10とケーブルを介して接続される有線コントローラであってもよい。
【0018】
撮像装置14は、CCD撮像素子またはCMOS撮像素子などから構成されるビデオカメラであり、実空間を所定の周期で撮像して、フレーム画像を生成する。たとえば、撮像装置14の撮像速度は60枚/秒として、表示装置12のフレームレートと一致させてもよい。撮像装置14は、USB(Universal Serial Bus)あるいはその他のインタフェースを介してゲーム装置10と接続する。
【0019】
表示装置12は画像を出力するディスプレイであって、ゲーム装置10において生成された画像信号を受けて、ゲーム画面を表示する。表示装置12は、ディスプレイおよびスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。表示装置12は、ゲーム装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。
【0020】
本実施例のゲームシステム1において、入力デバイス20は発光体を有する。入力デバイス20の発光体は、複数色で発光可能に構成され、ゲーム装置10からの発光指示により発光色を設定される。ゲーム中、発光体は所定色で発光し、撮像装置14により撮像される。撮像装置14は入力デバイス20を撮像し、フレーム画像を生成してゲーム装置10に供給する。ゲーム装置10はフレーム画像を取得して、フレーム画像における発光体の画像の位置および大きさから、実空間における発光体の位置情報を導出する。ゲーム装置10は、位置情報をゲームの操作指示として取り扱い、ゲームキャラクタの動作を制御するなど、ゲームの処理に反映させる。本実施例のゲーム装置10は、入力デバイス20のボタン状態情報だけでなく、取得した発光体画像の位置情報も用いてゲームプログラムを実行する機能をもつ。
【0021】
また入力デバイス20は加速度センサおよびジャイロセンサを有する。センサの検出値は、所定周期でゲーム装置10に送信され、ゲーム装置10は、センサの検出値を取得して、実空間における入力デバイス20の姿勢情報を取得する。ゲーム装置10は、姿勢情報をゲームの操作指示として取り扱い、ゲームの処理に反映させる。このように本実施例のゲーム装置10は、取得した入力デバイス20の姿勢情報も用いてゲームプログラムを実行する機能をもつ。なおゲーム装置10は、入力デバイス20の位置情報や姿勢情報を直接的に操作指示として取り扱うだけでなく、これらの情報を演算して導出した情報も操作指示として取り扱う。
【0022】
図2は、入力デバイス20の外観構成を示す。図2(a)は、入力デバイス20の上面構成を示し、図2(b)は、入力デバイス20の下面構成を示す。入力デバイス20は、発光体22および略円筒状のハンドル24を有する。発光体22は、その外側を光透過性を有する樹脂で球体に形成され、内側に発光ダイオードや電球などの発光素子を有し、内側の発光素子が発光すると、外側の球体全体が光る。ハンドル24の上面には、操作ボタン30、32、34、36、38および起動ボタン42が設けられ、下面には操作ボタン40が設けられる。ユーザはハンドル24の端部を手で把持した状態で、操作ボタン30、32、34、36、38を親指で操作し、操作ボタン40を人差し指で操作する。操作ボタン30、32、34、36、38および起動ボタン42は、押下式に構成され、操作ボタン40は、回動式に構成される。
【0023】
ユーザは表示装置12に表示されるゲーム画面を見ながらゲームを行う。撮像装置14は、ゲームの実行中に発光体22を撮像する必要があるため、その撮像範囲が表示装置12と同じ方向を向くように配置されることが好ましい。一般にユーザは表示装置12の正面でゲームをプレイすることが多いため、撮像装置14は、その光軸の方向が表示装置12の正面方向と一致するように配置される。具体的に、撮像装置14は、表示装置12の近傍において、表示装置12の表示画面をユーザが視認可能な位置を撮像範囲に含むように配置されることが好ましい。これにより、撮像装置14は、ゲーム中のユーザが把持する入力デバイス20を撮像できる。
【0024】
図3は、入力デバイス20の内部構成を示す。入力デバイス20は、無線通信モジュール48、処理部50、発光部62および操作ボタン30、32、34、36、38、40、起動ボタン42を備える。無線通信モジュール48は、ゲーム装置10の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部50は、入力デバイス20における各種処理を実行する。
【0025】
処理部50は、メイン制御部52、入力受付部54、3軸加速度センサ56、3軸ジャイロセンサ58および発光制御部60を有する。メイン制御部52は、無線通信モジュール48との間で必要なデータの送受を行う。
【0026】
入力受付部54は、操作ボタン30、32、34、36、38、40からの入力情報を受け付け、メイン制御部52に送る。3軸加速度センサ56は、xyzの3軸方向の加速度成分を検出する。3軸ジャイロセンサ58は、xz平面、zy平面、yx平面における角速度を検出する。本実施例では、入力デバイス20の幅方向をx軸、高さ方向をy軸、長手方向をz軸と設定する。3軸加速度センサ56および3軸ジャイロセンサ58は、入力デバイス20のハンドル24内に配置され、ハンドル24内の中心近傍に配置されることが好ましい。無線通信モジュール48は、操作ボタンからの入力情報とともに、3軸加速度センサ56による検出値情報、および3軸ジャイロセンサ58による検出値情報を、所定の周期でゲーム装置10の無線通信モジュールに送信する。この送信周期は、たとえば11.25m秒に設定される。
【0027】
発光制御部60は、発光部62の発光を制御する。発光部62は、赤色LED64a、緑色LED64b、青色LED64cを有し、複数色の発光を可能とする。発光制御部60は、赤色LED64a、緑色LED64b、青色LED64cの発光を調整して、発光部62を所望の色に発光させる。
【0028】
無線通信モジュール48はゲーム装置10から発光指示を受信すると、メイン制御部52に供給し、メイン制御部52は、発光制御部60に発光指示を供給する。発光制御部60は、発光部62が発光指示により指定された色で発光するように、赤色LED64a、緑色LED64b、青色LED64cの発光を制御する。たとえば発光制御部60は、各LEDをPWM(パルス幅変調)制御で点灯制御してもよい。
【0029】
図4は、ゲーム装置10の内部構成を示す。ゲーム装置10は、フレーム画像取得部80、画像処理部82、デバイス情報処理部90、無線通信モジュール86、入力受付部88、出力部84およびアプリケーション処理部100を備える。デバイス情報処理部90は、位置情報導出部92、姿勢情報導出部94および操作情報取得部96を有する。
【0030】
本実施例におけるゲーム装置10の処理機能は、CPU、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、ゲーム装置10に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。なおハードウェアの構成上、ゲーム装置10は複数のCPUを有してもよい。
【0031】
本実施例のゲームシステム1では、入力デバイス20の起動ボタン42が押下されると、ゲーム装置10に起動要求が送信され、ゲーム装置10の電源がオンされる。無線通信モジュール48は、ゲーム装置10を特定する識別情報を用いて呼び出しを行い、ゲーム装置10の無線通信モジュール86が、それに応答して、無線通信モジュール48と無線通信モジュール86との間で接続が確立する。このとき、入力デバイス20がマスタ、ゲーム装置10がスレーブとして動作するが、接続確立後は、その役割を交替する。以上の通信処理により、入力デバイス20は、操作ボタンの状態情報、3軸加速度センサ56および3軸ジャイロセンサ58の検出値情報を、ゲーム装置10に所定の周期で送信できるようになる。
【0032】
無線通信モジュール86は、入力デバイス20から送信される操作ボタンの状態情報、およびセンサ検出値情報を受信し、入力受付部88に供給する。入力受付部88は、ボタン状態情報およびセンサ検出値情報を分離し、ボタン状態情報をアプリケーション処理部100に渡し、センサ検出値情報をデバイス情報処理部90に渡す。アプリケーション処理部100は、ボタン状態情報を、ゲームの操作指示として受け取る。
【0033】
フレーム画像取得部80はUSBインタフェースとして構成され、撮像装置14から所定の速度(たとえば60フレーム/秒)でフレーム画像を取得する。画像処理部82は、フレーム画像から発光体画像を抽出し、フレーム画像中の発光体画像の位置、および大きさを特定する。
【0034】
画像処理部82は、フレーム画像データを、発光部62の発光色に応じたRGBの閾値を用いて2値化処理し、2値化された画像を生成してもよい。発光部62は、ゲーム装置10から指示された色で発光し、したがって画像処理部82は、発光部62の発光色を特定できるため、フレーム画像から発光部62の画像を抽出する2値化処理を施すことができる。この2値化処理により、所定の閾値より大きい輝度を保持する画素の画素値が“1”に符号化され、所定の閾値以下の輝度を保持する画素の画素値が“0”に符号化される。これにより画像処理部82は、2値化された画像から、発光体画像の位置および大きさを特定できる。たとえば画像処理部82は、フレーム画像における発光体画像の重心座標と、発光体画像の半径や面積を特定する。なお、複数のユーザが入力デバイス20を操作し、フレーム画像中に複数の発光体22が存在する場合には、画像処理部82は、それぞれの発光体22の発光色に応じた閾値を用いて、複数の2値化された画像を生成し、それぞれの発光体画像の位置および大きさを特定する。画像処理部82は、特定された発光体画像の位置および大きさをデバイス情報処理部90に渡す。
【0035】
デバイス情報処理部90は、画像処理部82により特定された発光体画像の位置および大きさを取得すると、撮像装置14からみた入力デバイス20の位置情報を導出する。またデバイス情報処理部90は、入力受付部88からセンサ検出値情報を取得すると、実空間における入力デバイス20の姿勢情報を導出する。
【0036】
図5は、デバイス情報処理部90において入力デバイス20の位置情報および姿勢情報を定義するための座標系を示す。この空間座標では、撮像装置14の光軸に沿ってZ軸が設定され、撮像装置14のフレーム画像の左右方向にX軸が、上下方向にY軸が設定される。したがって、Z軸は、フレーム画像の奥行き方向に設定される。実空間において、Y軸は正確に鉛直方向に設定され、またX軸、Z軸は、正確に水平面に設定されることが好ましい。ゲーム開始前、ゲーム装置10は、ユーザに入力デバイス20の基準姿勢を登録させる。この登録処理では、発光体22が撮像装置14側に向くように、ユーザがハンドル24をZ軸に沿って保持し、姿勢情報導出部94が、入力デバイス20を静止させた状態のセンサ検出値情報を取得して、基準姿勢のセンサ検出値情報(以下、基準姿勢情報と呼ぶ)を登録する。なおユーザは、図2(a)に示す入力デバイス20の上面を鉛直上方に、図2(b)に示す入力デバイス20の下面を鉛直下方に向けて入力デバイス20を保持して、基準姿勢の登録処理を行うことが好ましい。
【0037】
基準姿勢の登録処理後、姿勢情報導出部94は、センサ検出値情報を取得すると、基準姿勢情報と対比することで、現在の姿勢情報を導出する。図5を参照して、姿勢情報導出部94は、入力デバイス20のピッチ角を、XZ平面に対する角度として導出し、またヨー角を、ZY平面に対する角度として導出する。図5において、Y軸方向(上下方向)に平行にハンドル24が保持されたとき、発光体22が上側を向いていればピッチ角は90度であり、下側を向いていればピッチ角は−90度となる。また、X軸方向(左右方向)に平行にハンドル24が保持されたとき、ユーザから撮像装置14を見る向きにおいて発光体22が右側を向いていればヨー角は90度であり、左側を、向いていればヨー角は−90度となる。ユーザが発光体22を撮像装置14に向けてZ軸方向(前後方向)にハンドル24を保持したとき、ピッチ角およびヨー角ともに0度となる。姿勢情報導出部94は、入力デバイス20のロール角を、基準姿勢からのねじりの角度として導出する。
【0038】
位置情報導出部92は、発光体画像の位置および大きさを取得する。位置情報導出部92は、発光体画像の重心からフレーム画像における位置座標を導出し、また発光体画像の半径や面積から、撮像装置14からの距離情報を導出する。位置情報導出部92は、フレーム画像における重心位置座標と、発光体画像の半径(または面積)に、距離を対応付けたテーブルを有し、このテーブルから距離情報を導出してもよい。また、位置情報導出部92は、フレーム画像における重心位置座標と、発光体画像の半径(または面積)から、演算式を用いて、距離情報を演算により導出してもよい。位置情報導出部92は、フレーム画像における位置座標と、導出する距離情報から、発光体22の実空間における位置情報を導出する。
【0039】
以上のように、姿勢情報導出部94が入力デバイス20の姿勢情報を導出し、位置情報導出部92が発光体22の位置情報を導出すると、操作情報取得部96が、それらの導出された情報を受け取って、入力デバイス20の操作情報を取得する。入力デバイス20の操作情報として、操作情報取得部96は、たとえば以下の要素を取得する。
・入力デバイス20の傾きの角度
・入力デバイス20の傾きの変わる速度
・入力デバイス20のねじり(ロール角)
・入力デバイス20の上下の向き(ピッチ角)
・入力デバイス20の左右の向き(ヨー角)
・発光体22の位置
・発光体22の移動速度
・発光体22の加速度
・ハンドル24の位置
・ハンドル24の移動速度
・ハンドル24の加速度
【0040】
操作情報取得部96は、入力デバイス20の傾きの角度、傾きの変わる速度、ロール角、ピッチ角およびヨー角を、センサ検出値情報または姿勢情報導出部94で導出される姿勢情報から求める。同様に操作情報取得部96は、ハンドル24の移動速度および加速度を、センサ検出値情報または姿勢情報から求める。また操作情報取得部96は、発光体22の位置、移動速度および加速度を、位置情報導出部92で導出される発光体22の位置情報から求める。さらに操作情報取得部96は、入力デバイス20を構成する発光体22とハンドル24の位置関係を把握している。たとえば操作情報取得部96は、入力デバイス20の姿勢情報を取得し、また発光体22の位置情報を取得すると、発光体22とハンドル24の位置関係から、ハンドル24の位置情報(たとえば重心の位置情報)を取得できる。なお、発光体22の位置や、移動速度および加速度は、センサ検出値情報または姿勢情報導出部94で導出される姿勢情報から求められてもよい。
【0041】
なお本実施例において、発光体22の位置情報およびハンドル24の位置情報は、それぞれ入力デバイス20の位置情報として扱われる。同様に、発光体22の移動速度情報およびハンドル24の移動速度情報は、それぞれ入力デバイス20の移動速度情報として扱われ、発光体22の加速度情報およびハンドル24の加速度情報は、それぞれ入力デバイス20の加速度情報として扱われる。
【0042】
以上のように操作情報取得部96は、入力デバイス20の位置情報、センサ検出値情報、および/または、入力デバイス20の姿勢情報などに基づいて、入力デバイス20の操作情報を取得する。操作情報取得部96は、取得した操作情報をアプリケーション処理部100に渡す。アプリケーション処理部100は、入力デバイス20の操作情報を、ゲームの操作指示として受け取る。
【0043】
アプリケーション処理部100は、入力デバイス20の操作情報と、ボタン状態情報とからゲームを進行させて、ゲームアプリケーションの処理結果を示す画像信号を生成する。画像信号は出力部84から表示装置12に送られ、表示画像として出力される。
【0044】
図6は、アプリケーション処理部100の構成を示す。アプリケーション処理部100は、操作指示受付部102、制御部110、パラメータ保持部150、3次元データ保持部152、行動テーブル保持部154および画像生成部156を備える。制御部110は、条件判定部112、オブジェクト制御部114、表示制御部116および色設定部118を含む。アプリケーション処理部100の各構成は、ゲームプログラムにより実現される様々な機能を表現する。パラメータ保持部150、3次元データ保持部152および行動テーブル保持部154は、ゲームソフトウェアから各種データを読み出して保持するRAMであってよい。
【0045】
操作指示受付部102は、デバイス情報処理部90から入力デバイス20の操作情報を、入力受付部88からボタン状態情報を、それぞれ操作指示として受け付ける。制御部110は、操作指示受付部102が受け付けた操作指示にもとづいてゲームプログラムを実行し、ゲームを進行させる。パラメータ保持部150は、ゲームの進行に必要なパラメータを保持する。3次元データ保持部152は、ゲーム空間を構成する3次元データを保持する。表示制御部116は、ゲームオブジェクトの移動に応じて、3次元のゲーム空間をレンダリングするためのカメラを制御し、画像生成部156に表示画面を生成させる。画像生成部156は、ゲーム空間内のカメラの視点位置と視線方向を設定し、3次元データをレンダリングして、制御部110により制御されるゲーム空間を表現した表示画面、すなわちゲームオブジェクトの動作にしたがう表示画面を生成する。
【0046】
行動テーブル保持部154は、ゲームオブジェクトの所定の行動と、入力デバイス20の操作条件との対応を保持する。ここで操作条件は、対応付けられた行動をオブジェクトに実行させるための条件であり、複数の条件を含んで構成されてもよい。なお本実施例の行動テーブル保持部154は、ゲームオブジェクトの行動と操作条件とをテーブル形式で保持しているが、その他の形式で保持してもよい。行動テーブル保持部154は、いずれの形式を採用する場合であっても、ゲームオブジェクトの行動と操作条件とを対応付けるものであればよい。条件判定部112は、操作指示受付部102で受け付けた操作情報が、行動テーブル保持部154に保持されている条件を満たすか判定する。
【0047】
図7は、本実施例で想定するゲームのシーン例を示す。このゲームでは、ゲームオブジェクト200が車であり、車がたとえば障害物202を避けながら、下のゴールに到着するまでのタイムを競う。このゲームでは車は坂道を自動的に下るものとし、ユーザはアクセル操作を不要とする。
【0048】
障害物202は静止したオブジェクトであり、3次元空間における位置は、3次元データ保持部152に保持されたデータにより定められている。表示制御部116は、ワールド座標で表現されるゲーム空間において、ユーザから入力される操作指示に応じたゲームオブジェクト200の移動方向や実行される行動(アクション)に応じて、仮想カメラの視線方向と視点位置を決定する。画像生成部156は、決定された視点位置に仮想カメラを配置し、決定された視線方向に仮想カメラの光軸を向けて、3次元データ保持部152に保持されている3次元データをレンダリングし、ゲームオブジェクトの動作に応じた表示画面を生成する。
【0049】
図8は、ゲームオブジェクトの所定の行動と、入力デバイス20の操作条件との対応を記録したテーブルの一例を示す。このテーブルにおいて、「YAW」はヨー角であり、「PITCH」はピッチ角であり、「HANDLEPOS(Z)」はハンドル24のZ軸方向の移動量であり、「SPHEREPOS(Y)」は発光体22のY軸方向の移動量であり、「TIME」は制限時間である。以下、それぞれの操作条件について説明する。
【0050】
<ターンアクション1>
「左にターン」は、左にステアリングホイールを切るアクションであり、このとき、ヨー角が(−60度<YAW(ヨー角)<−2度)の範囲にあれば、条件判定部112は、「左にターン」の操作条件が成立したことを判定する。図9(a)は、ユーザが入力デバイス20の発光体22を左側に振った状態を示す。条件判定部112は、ヨー角αが、(−60度<α<−2度)の範囲にあることを判定すると、「左にターン」のアクションに対応付けられた操作条件が満たされたことを判定する。条件判定部112は、操作条件の成立を判定すると、ヨー角αをオブジェクト制御部114に通知し、オブジェクト制御部114は、ゲームオブジェクト200に、その操作条件に対応付けられている所定の行動、すなわち、この場合は「左にターン」を実行させる。このとき、オブジェクト制御部114は、ヨー角αの大きさに応じてタイヤの切れ角を設定し、画像生成部156は、車が左に曲がるように表示画面を生成する。
【0051】
<ターンアクション2>
「右にターン」は、右にステアリングホイールを切るアクションであり、このとき、ヨー角が(2度<YAW(ヨー角)<60度)の範囲にあれば、条件判定部112は、「右にターン」の操作条件が成立したことを判定する。図9(b)は、ユーザが入力デバイス20の発光体22を右側に振った状態を示す。条件判定部112は、ヨー角αが、(2度<α<60度)の範囲にあることを判定すると、「右にターン」のアクションに対応付けられた操作条件が満たされたことを判定する。条件判定部112は、操作条件の成立を判定すると、ヨー角αをオブジェクト制御部114に通知し、オブジェクト制御部114は、ゲームオブジェクト200に、その操作条件に対応付けられている所定の行動、すなわち、この場合は「右にターン」を実行させる。このとき、オブジェクト制御部114は、ヨー角αの大きさに応じてタイヤの切れ角を設定し、画像生成部156は、車が右に曲がるように表示画面を生成する。
【0052】
<ダッシュアクション>
「ダッシュ」は、車速を瞬間的に大きくするアクションである。「ダッシュ」の操作条件は、複数の条件により構成され、各条件は、演算子「&」で結合されている。この演算子「&」は、各条件が同時に成立しなければならないことを意味する。複数の条件を含んで構成される操作条件を1つのアクションに設定することで、ユーザの習熟度を要求するゲームアプリケーションを実現できる。
【0053】
第1条件(−35度<PITCH<35度)は、入力デバイス20のピッチ角βが、(−35度<β<35度)の範囲にあるべきことを示す。第2条件(−40度<YAW(ヨー角)<40度)は、入力デバイス20のヨー角αが、(−40度<α<40度)の範囲にあるべきことを示す。第3条件(HANDLEPOS(Z)<−150mm:TIME:1.0s)は、(HANDLEPOS(Z)<−150mm)と(TIME:1.0s)に分解され、(HANDLEPOS(Z)<−150mm)は、Z軸の負方向のハンドル24の移動量が150mmを超えること、(TIME:1.0s)は、その移動が1秒以内に実行されることを示す。つまり、第3条件は、1秒以内にハンドル24がZ軸の負方向に150mmより長い距離を移動されるべきことを示している。本実施例のゲームシステム1では、ユーザが入力デバイス20を使って操作指示を生成するため、入力デバイス20の操作に時間制限を設けることで、スピーディな動きをユーザが行うようになり、ゲーム操作に躍動感をもたせることができる。
【0054】
図10は、第1条件および第2条件により制限される入力デバイス20のピッチ角β、ヨー角αの範囲を示す。この範囲は、仮想的な四角錐で表現される。ユーザは、入力デバイス20の軸線がこの四角錐の範囲に入るように保持し、その状態から1秒以内にZ軸の負方向に150mmより長い距離だけ入力デバイス20を突き出すと、条件判定部112は、第1条件、第2条件、第3条件の全てが満たされたことを判定する。この第1〜第3条件をまとめると、「ダッシュ」発動の操作条件は、ユーザが発光体22を撮像装置14側に向け、Z軸に近似した方向に入力デバイス20を保持して、素早く撮像装置14に向けて150mmより長く突き出すことである。
【0055】
条件判定部112は、各条件の成立の有無をそれぞれ独立に監視する。「ダッシュ」アクションに対して、所定時間内に入力デバイス20が所定量移動したことが第3の条件に設定されており、具体的には、1秒以内にZ軸の負方向のハンドル24の移動量が150mmを超えることが第3の条件とされている。ハンドル24がZ軸の正方向への移動から負方向への移動に変化したとき、またはZ軸方向に静止した状態から負方向に移動したとき、条件判定部112は、Z軸の負方向への移動開始を検出し、移動開始時点からの時間の計測を開始する。ハンドル24のZ軸方向への移動は、ハンドル24の位置情報から検出される。具体的に条件判定部112は、操作情報として取得されるハンドル24の位置情報を監視して、連続して取得される位置情報のうち、Z座標値が負方向に変化したときに、移動開始を検出する。条件判定部112は、1秒以内にハンドル24の移動量が150mmを超えると、第3条件の成立を判定する。
【0056】
なお、本実施例において、第3条件は、1秒以内にハンドル24がZ軸の負方向に連続して移動することを含んでもよい。連続して移動するとは、連続して取得される位置情報のZ座標値が、変化せず、または負方向に変化し、正方向には変化しないことを意味する。したがって、移動量が150mmを超える前に、ハンドル24がZ軸の正方向に移動した場合には、それまでの移動量はキャンセルされる。このように条件判定部112は、入力デバイス20がZ軸の負方向への移動開始から移動量が150mmを超える前に正方向に移動した場合には、正方向に移動した時点で条件不成立を判定する。
【0057】
したがって、ユーザがハンドル24を後方に引くことなく、前方に突き出している最中に、条件判定部112が、所定時間(ここでは1秒)内に、入力デバイス20が連続して150mmよりも長く移動したことを検出すると、第3条件の成立を判定する。一方で、条件判定部112は、移動開始から入力デバイス20がZ軸の負方向に連続して150mm移動する前に、Z軸の正方向に移動すると、その時点で第3条件の不成立を判定し、再度、負方向に移動したときに、時間の計測を開始して、第3条件の成立を監視する。
【0058】
条件判定部112は、「ダッシュ」発動の各条件の成立の有無をそれぞれ独立に判定する。各条件は、演算子「&」で結合されており、すなわち、各条件が同時に成立することで「ダッシュ」アクションが実行される。条件判定部112は、第1〜第3条件のそれぞれに対して、各条件が成立していればフラグ1を、成立していなければフラグ0を設定する。条件判定部112は、各条件のフラグが全て1になったタイミングで、全ての操作条件の成立を判定し、「ダッシュ」発動条件の成立をオブジェクト制御部114に通知する。オブジェクト制御部114は、ゲームオブジェクト200に、「ダッシュ」を実行させ、画像生成部156は、車速が瞬間的に大きくなるように表示画面を生成する。
【0059】
<ジャンプアクション>
「ジャンプ」は、車をジャンプさせるアクションである。たとえばジャンプすることで車が障害物202との衝突を回避できる。「ジャンプ」の操作条件は、複数の条件により構成され、各条件は、演算子「$」で結合されている。この演算子「$」は、各条件が現時点で成立していればよく、それぞれの成立タイミングは異なってよいことを意味する。すなわち、ある条件が成立すると、その条件は、残りの条件が成立するまで、成立状態を維持される。
【0060】
第1条件(SPHEREPOS(Y)>150mm:TIME:1.0s)は、(SPHEREPOS(Y)>150mm)と(TIME:1.0s)に分解され、(SPHEREPOS(Y)>150mm)は、Y軸の正方向の発光体22の移動量が150mmを超えること、(TIME:1.0s)は、その移動が1秒以内に実行されることを示す。つまり第1条件は、1秒以内に発光体22がY軸の正方向に150mmより高く移動されることを示している。第2条件(PITCH>65)は、入力デバイス20のピッチ角が65度よりも大きいことを示す。
【0061】
図11(a)は、第2条件の成立状態を示す。ユーザは、ピッチ角βが65度よりも大きくなるようにY軸の正方向に入力デバイス20を立てる。このようにユーザが入力デバイス20を略鉛直方向に向けることで、第2条件が成立する。図11(b)は、第1条件の成立状態を示す。ユーザは、Y軸の正方向に入力デバイス20を移動する。1秒以内に発光体22の移動量Dが150mmより大きくなると、第1条件が成立する。なお、Y軸の正方向への移動とは、入力デバイス20の移動方向そのものを意味するのではなく、入力デバイス20の移動方向のうちのY軸成分の移動を意味する。なお、第2条件の成立後に第1条件が成立してもよく、また第1条件の成立後に第2条件が成立してもよい。「ジャンプ」アクションの発動に際して、操作条件を構成する複数の条件の成立順序は問わない。条件の成立順序を問わないことで、違う手順の操作により同じアクションを実行できるようになり、ユーザの操作感に多様性をもたせることが可能となる。
【0062】
条件判定部112は、各条件の成立の有無をそれぞれ独立に監視する。「ジャンプ」アクションに対して、所定時間内に入力デバイス20が所定量移動したことが第1の条件に設定されており、具体的には、1秒以内にY軸の正方向の発光体22の移動量が150mmを超えることが第1の操作条件とされている。発光体22がY軸の負方向への移動から正方向への移動に変化したとき、またはY軸方向に静止した状態から正方向に移動したとき、条件判定部112は、Y軸の正方向への移動開始を検出し、移動開始時点からの時間の計測を開始する。発光体22のY軸方向への移動は、発光体22の位置情報から検出される。具体的に条件判定部112は、操作情報として取得される発光体22の位置情報を監視して、連続して取得される位置情報のうち、Y座標値が正方向に変化したときに、移動開始を検出する。条件判定部112は、1秒以内に発光体22の移動量が150mmを超えると、第1条件の成立を判定する。
【0063】
既述したように、発光体22の位置情報は、位置情報導出部92により導出される。位置情報導出部92は、発光体画像の位置および大きさから発光体22の位置情報を導出することを説明したが、たとえば3軸加速度センサ56の検出値を2回積分することで移動量を導出して、位置情報を導出してもよい。位置情報導出部92は、発光体画像と加速度検出値の双方を用いて発光体22の位置情報を導出してもよく、これにより導出精度を高めることが可能となる。なお、一方からの入力がない場合、たとえば発光体22が隠されて、発光体画像を取得できないような場合には、加速度検出値のみから発光体22の位置情報が導出されてもよい。
【0064】
なお、本実施例において、第1条件は、1秒以内に発光体22がY軸の正方向に連続して移動することを含んでもよい。連続して移動するとは、連続して取得される位置情報のY座標値が、変化せず、または正方向に変化し、負方向には変化しないことを意味する。したがって、移動量が150mmを超える前に、発光体22がY軸の負方向に移動した場合には、それまでの移動量はキャンセルされる。このように条件判定部112は、入力デバイス20がY軸の正方向への移動開始から移動量が150mmを超える前に負方向に移動した場合には、負方向に移動した時点で条件不成立を判定する。
【0065】
したがって、ユーザが発光体22を上方に150mmよりも高く持ち上げ続け、条件判定部112は、所定時間(ここでは1秒)内に、発光体22が連続して150mmよりも長く移動したことを検出すると、第1条件の成立を判定する。一方で、条件判定部112は、移動開始から発光体22がY軸の正方向に連続して150mm移動する前に、Y軸の負方向に移動すると、その時点で第1条件の不成立を判定し、再度、正方向に移動したときに、時間の計測を開始して、第1条件の成立を監視する。
【0066】
条件判定部112は、各条件の成立の有無をそれぞれ独立に判定する。各条件は、演算子「$」で結合されており、一方の条件が成立すると、その条件の成立は、他方の条件が成立するまで維持される。条件判定部112は、第1〜第2条件のそれぞれに対して、各条件が成立するとフラグ1を、成立していなければフラグ0を設定する。各条件が演算子「$」で結合されている場合、条件判定部112は、ある条件が成立してフラグ1を設定すると、別の条件が成立してフラグ1が設定されて「ジャンプ」アクションが実行されるまで、以前に設定された条件のフラグ値は維持される。たとえば図11(a)で示すように、第2条件が成立して、第2条件のフラグが1に設定されると、その後、ピッチ角が65度より小さくなっても、そのフラグ値1は維持される。第1条件についても同様である。条件判定部112は、全条件のフラグ値が1になったタイミングで、「ジャンプ」発動条件の成立を判定し、その成立をオブジェクト制御部114に通知する。オブジェクト制御部114は、ゲームオブジェクト200に、「ジャンプ」を実行させ、画像生成部156は、車速が瞬間的に大きくなるように表示画面を生成する。「ジャンプ」は、車の移動中に実行されるため、ジャンプ中の車の挙動は、前進方向への速度を保ちつつ、路面から離れて孤を描いて着地するように表示画面が生成される。
【0067】
このとき色設定部118は、「ジャンプ」発動条件が成立したことをユーザに知らせるべく、発光体22の発光色を変更する。色設定部118は、現在の発光色とは異なる色の発光指示を生成し、無線通信モジュール86から送信させる。入力デバイス20において、無線通信モジュール48が発光指示を受信すると、メイン制御部52に供給し、メイン制御部52は、発光制御部60に発光指示を供給する。発光制御部60は、発光部62が発光指示により指定された色で発光するように、赤色LED64a、緑色LED64b、青色LED64cの発光を制御する。
【0068】
「ジャンプ」アクションを実行するためには、ユーザは、操作条件を満たすように入力デバイス20を操作する必要がある。従来のボタン操作によれば、ボタンを押下するだけでアクションを発動できたが、本実施例の入力デバイス20の操作が、操作条件を満たすものであるかどうかは、ユーザは認識できない。そこで、色設定部118が発光部62の発光色を変更することで、ユーザはジャンプするための操作条件が成立したことを認識できるようにすることが好ましい。このとき、色設定部118は、各アクションに対して、異なる色を設定してもよく、ユーザは、発光体22の色をみて、自分の操作が正しいことを認識できるようにしてもよい。
【0069】
なお、条件判定部112は、図7に示すアクションに対する操作条件を、それぞれ独立に判定する。したがって、条件判定部112が「ジャンプ」の操作条件の成立を判定し、オブジェクト制御部114がゲームオブジェクト200をジャンプさせている最中に、条件判定部112が「左にターン」の操作条件の成立を判定することもある。このときオブジェクト制御部114は、ゲームオブジェクト200のジャンプ中に、ゲームオブジェクト200の姿勢を左に向けてもよい。このように、条件判定部112は、各アクションの操作条件をそれぞれ独立に判定して、成立結果に応じて、オブジェクト制御部114が、ゲームオブジェクト200に複数のアクションを同時に実行させるようにしてもよい。
【0070】
また、「ジャンプ」発動条件のように、演算子「$」で複数の条件が結合されている場合には、他のアクションの実行中に、各条件が成立することも起こりうる。たとえば、「ダッシュ」アクションの実行中に、発光体22が1秒以内にY軸方向に150mmよりも高く持ち上げられると、操作条件のうちの第1条件が成立する。演算子「$」で複数の条件が結合されている場合、第1条件は、第2条件が成立するまで成立状態を維持するため、ユーザは、ゲームオブジェクト200をジャンプさせたいときには、第2条件のみを成立させればよくなる。同様に、他のアクション実行中に、入力デバイス20のピッチ角βを65度よりも大きくすれば、第2条件が成立し、ユーザは、ゲームオブジェクト200をジャンプさせたいときには、第1条件のみを成立させればよい。なお、他のアクション実行中に限らず、ユーザは、一方の条件を成立させておき、ジャンプアクションを実行させたいときに、残りの条件を成立させるように入力デバイス20を操作してもよい。このように、演算子「$」で複数の条件を関連づけておくと、ユーザは、各条件を成立させるタイミングを自由に決めることができるので、ユーザの技量に応じた新たなゲームを創造することができる。
【0071】
このとき色設定部118は、「ジャンプ」発動条件を構成する複数の条件のうち、どの条件が成立しているかをユーザに知らせるべく、発光体22の発光色を変更してもよい。たとえば色設定部118は、第1条件が成立している場合には緑色、第2条件が成立している場合には青色と、各条件の成立に対して異なる色を割り当てる。これにより、ユーザは、成立している条件を確認できるとともに、どの条件を成立させれば、「ジャンプ」アクションが発動するかを知ることができる。
【0072】
図12は、複数の操作条件が設定されたときの条件判定フローの一例を示す。図12に示すフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。また、Sと数字との組み合わせによって表示した処理で何らかの判断処理が実行され、その判断結果が肯定的であった場合は、Y(Yesの頭文字)を付加して、例えば、(S10のY)と表示し、逆にその判断結果が否定的であった場合は、N(Noの頭文字)を付加して、(S10のN)と表示する。なお、フローチャートにおける表示の意味は、他の図面に示すフローチャートでも同じである。
【0073】
図12の例では、複数の操作条件が演算子「&」で結合されているときの条件判定部112の判定処理を説明する。演算子「&」は、各条件が同時に成立しなければならないことを意味する。演算子「&」については、「ダッシュ」アクションの例で説明したが、図12では説明の便宜上、第1条件と第2条件の2つの条件が「&」で結合されているものとする。なお、第1条件の成立の有無を示すフラグを第1フラグ、第2条件の成立の有無を示すフラグを第2フラグと呼ぶ。
【0074】
条件判定部112が、操作情報から第1条件の成立の有無を判定する(S10)。成立していれば(S10のY)、条件判定部112は第1フラグを1に設定し(S12)、成立していなければ(S10のN)、第1フラグを0に設定する(S14)。これと並行して、条件判定部112は、操作情報から第2条件の成立の有無を判定する(S16)。成立していれば(S16のY)、条件判定部112は第2フラグを1に設定し(S18)、成立していなければ(S16のN)、第2フラグを0に設定する(S20)。
【0075】
条件判定部112は、第1フラグ、第2フラグともに1に設定されているか判定する(S22)。ともに1に設定されていれば(S22のY)、オブジェクト制御部114が、対応するアクションを実行する(S24)。一方、第1フラグ、第2フラグの少なくとも一方が0に設定されていれば(S22のN)、S10からのステップを再実行する。
【0076】
以上のように、この条件判定フローによると、第1条件および第2条件が同時に成立していなければ、アクションが実行されないため、ユーザの技量が要求されるアクションが実現できる。
【0077】
図13は、複数の操作条件が設定されたときの条件判定フローの別の例を示す。図13の例では、複数の操作条件が演算子「$」で結合されているときの条件判定部112の判定処理を説明する。演算子「$」は、各条件が同時に成立する必要がなく、全ての条件が現時点までに成立していればよいことを意味する。演算子「$」については、「ジャンプ」アクションの例で説明した。図13では、第1条件と第2条件の2つの条件が「$」で結合されているものとする。なお、第1条件の成立の有無を示すフラグを第1フラグ、第2条件の成立の有無を示すフラグを第2フラグと呼ぶ。なお前提として、第1フラグ、第2フラグともに0に設定されている状態から、本条件判定フローが開始する。
【0078】
条件判定部112が、操作情報から第1条件の成立の有無を判定する(S40)。成立していれば(S40のY)、条件判定部112は第1フラグを1に設定し(S42)、成立していなければ(S40のN)、第1フラグを変更しない。これと並行して、条件判定部112は、操作情報から第2条件の成立の有無を判定する(S44)。成立していれば(S44のY)、条件判定部112は第2フラグを1に設定し(S46)、成立していなければ(S44のN)、第2フラグを変更しない。
【0079】
条件判定部112は、第1フラグ、第2フラグともに1に設定されているか判定する(S48)。ともに1に設定されていれば(S48のY)、オブジェクト制御部114が、対応するアクションを実行し(S50)、第1フラグ、第2フラグをそれぞれ0に設定する(S52)。一方、第1フラグ、第2フラグの少なくとも一方が0に設定されていれば(S48のN)、S40からのステップを再実行する。
【0080】
以上のように、この条件判定フローによると、条件が一旦成立すると、その後、条件が不成立になっても、フラグは1に維持される。このように条件成立した状態を維持できることで、ユーザは、適当なタイミングで、最後の条件を成立させて、ゲームオブジェクト200を自由にコントロールすることができる。
【0081】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0082】
1・・・ゲームシステム、10・・・ゲーム装置、12・・・表示装置、14・・・撮像装置、20・・・入力デバイス、22・・・発光体、24・・・ハンドル、48・・・無線通信モジュール、50・・・処理部、52・・・メイン制御部、54・・・入力受付部、56・・・3軸加速度センサ、58・・・3軸ジャイロセンサ、60・・・発光制御部、62・・・発光部、80・・・フレーム画像取得部、82・・・画像処理部、84・・・出力部、86・・・無線通信モジュール、88・・・入力受付部、90・・・デバイス情報処理部、92・・・位置情報導出部、94・・・姿勢情報導出部、96・・・操作情報取得部、100・・・アプリケーション処理部、102・・・操作指示受付部、110・・・制御部、112・・・条件判定部、114・・・オブジェクト制御部、116・・・表示制御部、118・・・色設定部、150・・・パラメータ保持部、152・・・3次元データ保持部、154・・・行動テーブル保持部、156・・・画像生成部。
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、ユーザが入力デバイスを利用してゲームキャラクタなどのオブジェクトを動作させるゲーム装置に関する。
【背景技術】
【0002】
ゲーム装置の処理能力の向上に伴い、3次元的にモデリングされたゲームフィールド内でゲームキャラクタを動作させるゲームが数多く登場している。また近年では、ボタン操作による入力だけでなく、ユーザが動かす実オブジェクトをカメラで撮像して、カメラ画像における実オブジェクトの動きをゲームの入力として利用する技術も提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許6795068号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
入力デバイスとゲームは密接な関係をもち、新しい入力デバイスが登場すると、その入力デバイスの特徴を活かしたゲームアプリケーションが開発される。本発明者は、ユーザの多様化した要求を満足させるべく、ユーザが動かす入力デバイスに連動する新たなゲームアプリケーションを想到するに至った。
【0005】
そこで本発明は、ユーザによる入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のある態様のプログラムは、コンピュータに、入力デバイスの操作情報が所定の操作条件を満たすか判定する判定機能と、操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能とを実現させるためのプログラムである。所定の操作条件は、所定時間内に、入力デバイスが所定量移動することを条件とするものであって、判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する機能を含む。
【0007】
本発明の別の態様のプログラムは、コンピュータに、入力デバイスの操作情報が所定の操作条件を満たすか判定する判定機能と、操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能とを実現させるためのプログラムである。ゲーム空間内でオブジェクトをジャンプさせる操作条件は、入力デバイスを略鉛直方向に向けることと、入力デバイスを鉛直上方向に移動することを条件とするものであって、判定機能が、オブジェクトをジャンプさせる操作条件の成立を判定すると、オブジェクト制御機能が、ゲーム空間内でオブジェクトをジャンプさせる。
【0008】
本発明のさらに別の態様は、オブジェクト制御方法である。この方法は、入力デバイスの操作に応じてオブジェクトを動作させるオブジェクト制御方法であって、発光体を有する入力デバイスの撮像画像を取得するステップと、撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得するステップと、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持するステップと、操作情報が、操作条件を満たすか判定するステップと、操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるステップとを備える。保持ステップは、所定時間内に入力デバイスが所定量移動することを操作条件として保持しており、条件判定ステップは、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。
【0009】
本発明のさらに別の態様は、入力デバイスの操作に応じてオブジェクトを動作させるゲーム装置である。この装置は、発光体を有する入力デバイスの撮像画像を取得する画像取得部と、撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得する操作情報取得部と、オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する保持部と、操作情報が、保持部に保持されている操作条件を満たすか判定する条件判定部と、条件判定部により操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるオブジェクト制御部とを備える。保持部は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持しており、条件判定部は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する。入力デバイスの操作情報は、入力デバイスの位置情報および/または姿勢情報そのものであってもよく、また位置情報や姿勢情報から演算などにより求められる情報であってもよい。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によると、ユーザによる入力デバイスの動きを、ゲームのオブジェクトの動作に反映させる技術を提供することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施例にかかるゲームシステムの使用環境を示す図である。
【図2】入力デバイスの外観構成を示す図である。
【図3】入力デバイスの内部構成を示す図である。
【図4】ゲーム装置の内部構成を示す図である。
【図5】デバイス情報処理部において入力デバイスの位置情報および姿勢情報を定義するための座標系を示す図である。
【図6】アプリケーション処理部の構成を示す図である。
【図7】本実施例で想定するゲームのシーン例を示す図である。
【図8】ゲームオブジェクトの所定の行動と、入力デバイスの操作条件との対応を記録したテーブルの一例を示す図である。
【図9】(a)は、ユーザが入力デバイスの発光体を左側に振った状態を示す図であり、(b)は、ユーザが入力デバイスの発光体を右側に振った状態を示す図である。
【図10】第1条件および第2条件により制限される入力デバイスのピッチ角β、ヨー角αの範囲を示す図である。
【図11】(a)は、第2条件の成立状態を示す図であり、(b)は、第1条件の成立状態を示す図である。
【図12】複数の操作条件が設定されたときの条件判定フローの一例を示す図である。
【図13】複数の操作条件が設定されたときの条件判定フローの別の例を示す図である。
【発明を実施するための形態】
【0013】
本発明の実施例は、ゲームコントローラとして機能する入力デバイスの実空間における位置情報および/または姿勢情報をゲームの操作情報として取得し、その操作情報をもとにゲームソフトウェアを実行可能なゲーム装置を提供する。
【0014】
図1は、本発明の実施例にかかるゲームシステム1の使用環境を示す。ゲームシステム1は、ゲームソフトウェアを実行するゲーム装置10と、ゲーム装置10による処理結果を出力する表示装置12と、入力デバイス20と、入力デバイス20を撮像する撮像装置14を備える。
【0015】
入力デバイス20は、ユーザが操作指示を行うための操作入力装置であり、ゲーム装置10は、入力デバイス20による操作指示をもとにゲームプログラムを実行して、ゲームの処理結果を示す画像信号を生成する処理装置である。
【0016】
入力デバイス20はバッテリにより駆動され、操作入力を行わせるための複数のボタンを有して構成される。ユーザが入力デバイス20のボタンを操作すると、そのボタンの状態情報がゲーム装置10に送信される。ゲーム装置10は、入力デバイス20からボタン状態情報を受信し、ボタン状態情報に対応付けられた指示に応じてゲーム進行を制御してゲーム画像信号を生成する。生成されたゲーム画像信号は、表示装置12より出力される。
【0017】
入力デバイス20は、ユーザによるボタン状態情報をゲーム装置10に伝送する機能をもち、本実施例ではゲーム装置10との間で無線通信可能な無線コントローラとして構成される。入力デバイス20とゲーム装置10は、Bluetooth(ブルートゥース)(登録商標)プロトコルを用いて無線接続を確立してもよい。なお入力デバイス20は、無線コントローラに限らず、ゲーム装置10とケーブルを介して接続される有線コントローラであってもよい。
【0018】
撮像装置14は、CCD撮像素子またはCMOS撮像素子などから構成されるビデオカメラであり、実空間を所定の周期で撮像して、フレーム画像を生成する。たとえば、撮像装置14の撮像速度は60枚/秒として、表示装置12のフレームレートと一致させてもよい。撮像装置14は、USB(Universal Serial Bus)あるいはその他のインタフェースを介してゲーム装置10と接続する。
【0019】
表示装置12は画像を出力するディスプレイであって、ゲーム装置10において生成された画像信号を受けて、ゲーム画面を表示する。表示装置12は、ディスプレイおよびスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。表示装置12は、ゲーム装置10に有線ケーブルで接続されてよく、また無線LAN(Local Area Network)などにより無線接続されてもよい。
【0020】
本実施例のゲームシステム1において、入力デバイス20は発光体を有する。入力デバイス20の発光体は、複数色で発光可能に構成され、ゲーム装置10からの発光指示により発光色を設定される。ゲーム中、発光体は所定色で発光し、撮像装置14により撮像される。撮像装置14は入力デバイス20を撮像し、フレーム画像を生成してゲーム装置10に供給する。ゲーム装置10はフレーム画像を取得して、フレーム画像における発光体の画像の位置および大きさから、実空間における発光体の位置情報を導出する。ゲーム装置10は、位置情報をゲームの操作指示として取り扱い、ゲームキャラクタの動作を制御するなど、ゲームの処理に反映させる。本実施例のゲーム装置10は、入力デバイス20のボタン状態情報だけでなく、取得した発光体画像の位置情報も用いてゲームプログラムを実行する機能をもつ。
【0021】
また入力デバイス20は加速度センサおよびジャイロセンサを有する。センサの検出値は、所定周期でゲーム装置10に送信され、ゲーム装置10は、センサの検出値を取得して、実空間における入力デバイス20の姿勢情報を取得する。ゲーム装置10は、姿勢情報をゲームの操作指示として取り扱い、ゲームの処理に反映させる。このように本実施例のゲーム装置10は、取得した入力デバイス20の姿勢情報も用いてゲームプログラムを実行する機能をもつ。なおゲーム装置10は、入力デバイス20の位置情報や姿勢情報を直接的に操作指示として取り扱うだけでなく、これらの情報を演算して導出した情報も操作指示として取り扱う。
【0022】
図2は、入力デバイス20の外観構成を示す。図2(a)は、入力デバイス20の上面構成を示し、図2(b)は、入力デバイス20の下面構成を示す。入力デバイス20は、発光体22および略円筒状のハンドル24を有する。発光体22は、その外側を光透過性を有する樹脂で球体に形成され、内側に発光ダイオードや電球などの発光素子を有し、内側の発光素子が発光すると、外側の球体全体が光る。ハンドル24の上面には、操作ボタン30、32、34、36、38および起動ボタン42が設けられ、下面には操作ボタン40が設けられる。ユーザはハンドル24の端部を手で把持した状態で、操作ボタン30、32、34、36、38を親指で操作し、操作ボタン40を人差し指で操作する。操作ボタン30、32、34、36、38および起動ボタン42は、押下式に構成され、操作ボタン40は、回動式に構成される。
【0023】
ユーザは表示装置12に表示されるゲーム画面を見ながらゲームを行う。撮像装置14は、ゲームの実行中に発光体22を撮像する必要があるため、その撮像範囲が表示装置12と同じ方向を向くように配置されることが好ましい。一般にユーザは表示装置12の正面でゲームをプレイすることが多いため、撮像装置14は、その光軸の方向が表示装置12の正面方向と一致するように配置される。具体的に、撮像装置14は、表示装置12の近傍において、表示装置12の表示画面をユーザが視認可能な位置を撮像範囲に含むように配置されることが好ましい。これにより、撮像装置14は、ゲーム中のユーザが把持する入力デバイス20を撮像できる。
【0024】
図3は、入力デバイス20の内部構成を示す。入力デバイス20は、無線通信モジュール48、処理部50、発光部62および操作ボタン30、32、34、36、38、40、起動ボタン42を備える。無線通信モジュール48は、ゲーム装置10の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部50は、入力デバイス20における各種処理を実行する。
【0025】
処理部50は、メイン制御部52、入力受付部54、3軸加速度センサ56、3軸ジャイロセンサ58および発光制御部60を有する。メイン制御部52は、無線通信モジュール48との間で必要なデータの送受を行う。
【0026】
入力受付部54は、操作ボタン30、32、34、36、38、40からの入力情報を受け付け、メイン制御部52に送る。3軸加速度センサ56は、xyzの3軸方向の加速度成分を検出する。3軸ジャイロセンサ58は、xz平面、zy平面、yx平面における角速度を検出する。本実施例では、入力デバイス20の幅方向をx軸、高さ方向をy軸、長手方向をz軸と設定する。3軸加速度センサ56および3軸ジャイロセンサ58は、入力デバイス20のハンドル24内に配置され、ハンドル24内の中心近傍に配置されることが好ましい。無線通信モジュール48は、操作ボタンからの入力情報とともに、3軸加速度センサ56による検出値情報、および3軸ジャイロセンサ58による検出値情報を、所定の周期でゲーム装置10の無線通信モジュールに送信する。この送信周期は、たとえば11.25m秒に設定される。
【0027】
発光制御部60は、発光部62の発光を制御する。発光部62は、赤色LED64a、緑色LED64b、青色LED64cを有し、複数色の発光を可能とする。発光制御部60は、赤色LED64a、緑色LED64b、青色LED64cの発光を調整して、発光部62を所望の色に発光させる。
【0028】
無線通信モジュール48はゲーム装置10から発光指示を受信すると、メイン制御部52に供給し、メイン制御部52は、発光制御部60に発光指示を供給する。発光制御部60は、発光部62が発光指示により指定された色で発光するように、赤色LED64a、緑色LED64b、青色LED64cの発光を制御する。たとえば発光制御部60は、各LEDをPWM(パルス幅変調)制御で点灯制御してもよい。
【0029】
図4は、ゲーム装置10の内部構成を示す。ゲーム装置10は、フレーム画像取得部80、画像処理部82、デバイス情報処理部90、無線通信モジュール86、入力受付部88、出力部84およびアプリケーション処理部100を備える。デバイス情報処理部90は、位置情報導出部92、姿勢情報導出部94および操作情報取得部96を有する。
【0030】
本実施例におけるゲーム装置10の処理機能は、CPU、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、ゲーム装置10に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。なおハードウェアの構成上、ゲーム装置10は複数のCPUを有してもよい。
【0031】
本実施例のゲームシステム1では、入力デバイス20の起動ボタン42が押下されると、ゲーム装置10に起動要求が送信され、ゲーム装置10の電源がオンされる。無線通信モジュール48は、ゲーム装置10を特定する識別情報を用いて呼び出しを行い、ゲーム装置10の無線通信モジュール86が、それに応答して、無線通信モジュール48と無線通信モジュール86との間で接続が確立する。このとき、入力デバイス20がマスタ、ゲーム装置10がスレーブとして動作するが、接続確立後は、その役割を交替する。以上の通信処理により、入力デバイス20は、操作ボタンの状態情報、3軸加速度センサ56および3軸ジャイロセンサ58の検出値情報を、ゲーム装置10に所定の周期で送信できるようになる。
【0032】
無線通信モジュール86は、入力デバイス20から送信される操作ボタンの状態情報、およびセンサ検出値情報を受信し、入力受付部88に供給する。入力受付部88は、ボタン状態情報およびセンサ検出値情報を分離し、ボタン状態情報をアプリケーション処理部100に渡し、センサ検出値情報をデバイス情報処理部90に渡す。アプリケーション処理部100は、ボタン状態情報を、ゲームの操作指示として受け取る。
【0033】
フレーム画像取得部80はUSBインタフェースとして構成され、撮像装置14から所定の速度(たとえば60フレーム/秒)でフレーム画像を取得する。画像処理部82は、フレーム画像から発光体画像を抽出し、フレーム画像中の発光体画像の位置、および大きさを特定する。
【0034】
画像処理部82は、フレーム画像データを、発光部62の発光色に応じたRGBの閾値を用いて2値化処理し、2値化された画像を生成してもよい。発光部62は、ゲーム装置10から指示された色で発光し、したがって画像処理部82は、発光部62の発光色を特定できるため、フレーム画像から発光部62の画像を抽出する2値化処理を施すことができる。この2値化処理により、所定の閾値より大きい輝度を保持する画素の画素値が“1”に符号化され、所定の閾値以下の輝度を保持する画素の画素値が“0”に符号化される。これにより画像処理部82は、2値化された画像から、発光体画像の位置および大きさを特定できる。たとえば画像処理部82は、フレーム画像における発光体画像の重心座標と、発光体画像の半径や面積を特定する。なお、複数のユーザが入力デバイス20を操作し、フレーム画像中に複数の発光体22が存在する場合には、画像処理部82は、それぞれの発光体22の発光色に応じた閾値を用いて、複数の2値化された画像を生成し、それぞれの発光体画像の位置および大きさを特定する。画像処理部82は、特定された発光体画像の位置および大きさをデバイス情報処理部90に渡す。
【0035】
デバイス情報処理部90は、画像処理部82により特定された発光体画像の位置および大きさを取得すると、撮像装置14からみた入力デバイス20の位置情報を導出する。またデバイス情報処理部90は、入力受付部88からセンサ検出値情報を取得すると、実空間における入力デバイス20の姿勢情報を導出する。
【0036】
図5は、デバイス情報処理部90において入力デバイス20の位置情報および姿勢情報を定義するための座標系を示す。この空間座標では、撮像装置14の光軸に沿ってZ軸が設定され、撮像装置14のフレーム画像の左右方向にX軸が、上下方向にY軸が設定される。したがって、Z軸は、フレーム画像の奥行き方向に設定される。実空間において、Y軸は正確に鉛直方向に設定され、またX軸、Z軸は、正確に水平面に設定されることが好ましい。ゲーム開始前、ゲーム装置10は、ユーザに入力デバイス20の基準姿勢を登録させる。この登録処理では、発光体22が撮像装置14側に向くように、ユーザがハンドル24をZ軸に沿って保持し、姿勢情報導出部94が、入力デバイス20を静止させた状態のセンサ検出値情報を取得して、基準姿勢のセンサ検出値情報(以下、基準姿勢情報と呼ぶ)を登録する。なおユーザは、図2(a)に示す入力デバイス20の上面を鉛直上方に、図2(b)に示す入力デバイス20の下面を鉛直下方に向けて入力デバイス20を保持して、基準姿勢の登録処理を行うことが好ましい。
【0037】
基準姿勢の登録処理後、姿勢情報導出部94は、センサ検出値情報を取得すると、基準姿勢情報と対比することで、現在の姿勢情報を導出する。図5を参照して、姿勢情報導出部94は、入力デバイス20のピッチ角を、XZ平面に対する角度として導出し、またヨー角を、ZY平面に対する角度として導出する。図5において、Y軸方向(上下方向)に平行にハンドル24が保持されたとき、発光体22が上側を向いていればピッチ角は90度であり、下側を向いていればピッチ角は−90度となる。また、X軸方向(左右方向)に平行にハンドル24が保持されたとき、ユーザから撮像装置14を見る向きにおいて発光体22が右側を向いていればヨー角は90度であり、左側を、向いていればヨー角は−90度となる。ユーザが発光体22を撮像装置14に向けてZ軸方向(前後方向)にハンドル24を保持したとき、ピッチ角およびヨー角ともに0度となる。姿勢情報導出部94は、入力デバイス20のロール角を、基準姿勢からのねじりの角度として導出する。
【0038】
位置情報導出部92は、発光体画像の位置および大きさを取得する。位置情報導出部92は、発光体画像の重心からフレーム画像における位置座標を導出し、また発光体画像の半径や面積から、撮像装置14からの距離情報を導出する。位置情報導出部92は、フレーム画像における重心位置座標と、発光体画像の半径(または面積)に、距離を対応付けたテーブルを有し、このテーブルから距離情報を導出してもよい。また、位置情報導出部92は、フレーム画像における重心位置座標と、発光体画像の半径(または面積)から、演算式を用いて、距離情報を演算により導出してもよい。位置情報導出部92は、フレーム画像における位置座標と、導出する距離情報から、発光体22の実空間における位置情報を導出する。
【0039】
以上のように、姿勢情報導出部94が入力デバイス20の姿勢情報を導出し、位置情報導出部92が発光体22の位置情報を導出すると、操作情報取得部96が、それらの導出された情報を受け取って、入力デバイス20の操作情報を取得する。入力デバイス20の操作情報として、操作情報取得部96は、たとえば以下の要素を取得する。
・入力デバイス20の傾きの角度
・入力デバイス20の傾きの変わる速度
・入力デバイス20のねじり(ロール角)
・入力デバイス20の上下の向き(ピッチ角)
・入力デバイス20の左右の向き(ヨー角)
・発光体22の位置
・発光体22の移動速度
・発光体22の加速度
・ハンドル24の位置
・ハンドル24の移動速度
・ハンドル24の加速度
【0040】
操作情報取得部96は、入力デバイス20の傾きの角度、傾きの変わる速度、ロール角、ピッチ角およびヨー角を、センサ検出値情報または姿勢情報導出部94で導出される姿勢情報から求める。同様に操作情報取得部96は、ハンドル24の移動速度および加速度を、センサ検出値情報または姿勢情報から求める。また操作情報取得部96は、発光体22の位置、移動速度および加速度を、位置情報導出部92で導出される発光体22の位置情報から求める。さらに操作情報取得部96は、入力デバイス20を構成する発光体22とハンドル24の位置関係を把握している。たとえば操作情報取得部96は、入力デバイス20の姿勢情報を取得し、また発光体22の位置情報を取得すると、発光体22とハンドル24の位置関係から、ハンドル24の位置情報(たとえば重心の位置情報)を取得できる。なお、発光体22の位置や、移動速度および加速度は、センサ検出値情報または姿勢情報導出部94で導出される姿勢情報から求められてもよい。
【0041】
なお本実施例において、発光体22の位置情報およびハンドル24の位置情報は、それぞれ入力デバイス20の位置情報として扱われる。同様に、発光体22の移動速度情報およびハンドル24の移動速度情報は、それぞれ入力デバイス20の移動速度情報として扱われ、発光体22の加速度情報およびハンドル24の加速度情報は、それぞれ入力デバイス20の加速度情報として扱われる。
【0042】
以上のように操作情報取得部96は、入力デバイス20の位置情報、センサ検出値情報、および/または、入力デバイス20の姿勢情報などに基づいて、入力デバイス20の操作情報を取得する。操作情報取得部96は、取得した操作情報をアプリケーション処理部100に渡す。アプリケーション処理部100は、入力デバイス20の操作情報を、ゲームの操作指示として受け取る。
【0043】
アプリケーション処理部100は、入力デバイス20の操作情報と、ボタン状態情報とからゲームを進行させて、ゲームアプリケーションの処理結果を示す画像信号を生成する。画像信号は出力部84から表示装置12に送られ、表示画像として出力される。
【0044】
図6は、アプリケーション処理部100の構成を示す。アプリケーション処理部100は、操作指示受付部102、制御部110、パラメータ保持部150、3次元データ保持部152、行動テーブル保持部154および画像生成部156を備える。制御部110は、条件判定部112、オブジェクト制御部114、表示制御部116および色設定部118を含む。アプリケーション処理部100の各構成は、ゲームプログラムにより実現される様々な機能を表現する。パラメータ保持部150、3次元データ保持部152および行動テーブル保持部154は、ゲームソフトウェアから各種データを読み出して保持するRAMであってよい。
【0045】
操作指示受付部102は、デバイス情報処理部90から入力デバイス20の操作情報を、入力受付部88からボタン状態情報を、それぞれ操作指示として受け付ける。制御部110は、操作指示受付部102が受け付けた操作指示にもとづいてゲームプログラムを実行し、ゲームを進行させる。パラメータ保持部150は、ゲームの進行に必要なパラメータを保持する。3次元データ保持部152は、ゲーム空間を構成する3次元データを保持する。表示制御部116は、ゲームオブジェクトの移動に応じて、3次元のゲーム空間をレンダリングするためのカメラを制御し、画像生成部156に表示画面を生成させる。画像生成部156は、ゲーム空間内のカメラの視点位置と視線方向を設定し、3次元データをレンダリングして、制御部110により制御されるゲーム空間を表現した表示画面、すなわちゲームオブジェクトの動作にしたがう表示画面を生成する。
【0046】
行動テーブル保持部154は、ゲームオブジェクトの所定の行動と、入力デバイス20の操作条件との対応を保持する。ここで操作条件は、対応付けられた行動をオブジェクトに実行させるための条件であり、複数の条件を含んで構成されてもよい。なお本実施例の行動テーブル保持部154は、ゲームオブジェクトの行動と操作条件とをテーブル形式で保持しているが、その他の形式で保持してもよい。行動テーブル保持部154は、いずれの形式を採用する場合であっても、ゲームオブジェクトの行動と操作条件とを対応付けるものであればよい。条件判定部112は、操作指示受付部102で受け付けた操作情報が、行動テーブル保持部154に保持されている条件を満たすか判定する。
【0047】
図7は、本実施例で想定するゲームのシーン例を示す。このゲームでは、ゲームオブジェクト200が車であり、車がたとえば障害物202を避けながら、下のゴールに到着するまでのタイムを競う。このゲームでは車は坂道を自動的に下るものとし、ユーザはアクセル操作を不要とする。
【0048】
障害物202は静止したオブジェクトであり、3次元空間における位置は、3次元データ保持部152に保持されたデータにより定められている。表示制御部116は、ワールド座標で表現されるゲーム空間において、ユーザから入力される操作指示に応じたゲームオブジェクト200の移動方向や実行される行動(アクション)に応じて、仮想カメラの視線方向と視点位置を決定する。画像生成部156は、決定された視点位置に仮想カメラを配置し、決定された視線方向に仮想カメラの光軸を向けて、3次元データ保持部152に保持されている3次元データをレンダリングし、ゲームオブジェクトの動作に応じた表示画面を生成する。
【0049】
図8は、ゲームオブジェクトの所定の行動と、入力デバイス20の操作条件との対応を記録したテーブルの一例を示す。このテーブルにおいて、「YAW」はヨー角であり、「PITCH」はピッチ角であり、「HANDLEPOS(Z)」はハンドル24のZ軸方向の移動量であり、「SPHEREPOS(Y)」は発光体22のY軸方向の移動量であり、「TIME」は制限時間である。以下、それぞれの操作条件について説明する。
【0050】
<ターンアクション1>
「左にターン」は、左にステアリングホイールを切るアクションであり、このとき、ヨー角が(−60度<YAW(ヨー角)<−2度)の範囲にあれば、条件判定部112は、「左にターン」の操作条件が成立したことを判定する。図9(a)は、ユーザが入力デバイス20の発光体22を左側に振った状態を示す。条件判定部112は、ヨー角αが、(−60度<α<−2度)の範囲にあることを判定すると、「左にターン」のアクションに対応付けられた操作条件が満たされたことを判定する。条件判定部112は、操作条件の成立を判定すると、ヨー角αをオブジェクト制御部114に通知し、オブジェクト制御部114は、ゲームオブジェクト200に、その操作条件に対応付けられている所定の行動、すなわち、この場合は「左にターン」を実行させる。このとき、オブジェクト制御部114は、ヨー角αの大きさに応じてタイヤの切れ角を設定し、画像生成部156は、車が左に曲がるように表示画面を生成する。
【0051】
<ターンアクション2>
「右にターン」は、右にステアリングホイールを切るアクションであり、このとき、ヨー角が(2度<YAW(ヨー角)<60度)の範囲にあれば、条件判定部112は、「右にターン」の操作条件が成立したことを判定する。図9(b)は、ユーザが入力デバイス20の発光体22を右側に振った状態を示す。条件判定部112は、ヨー角αが、(2度<α<60度)の範囲にあることを判定すると、「右にターン」のアクションに対応付けられた操作条件が満たされたことを判定する。条件判定部112は、操作条件の成立を判定すると、ヨー角αをオブジェクト制御部114に通知し、オブジェクト制御部114は、ゲームオブジェクト200に、その操作条件に対応付けられている所定の行動、すなわち、この場合は「右にターン」を実行させる。このとき、オブジェクト制御部114は、ヨー角αの大きさに応じてタイヤの切れ角を設定し、画像生成部156は、車が右に曲がるように表示画面を生成する。
【0052】
<ダッシュアクション>
「ダッシュ」は、車速を瞬間的に大きくするアクションである。「ダッシュ」の操作条件は、複数の条件により構成され、各条件は、演算子「&」で結合されている。この演算子「&」は、各条件が同時に成立しなければならないことを意味する。複数の条件を含んで構成される操作条件を1つのアクションに設定することで、ユーザの習熟度を要求するゲームアプリケーションを実現できる。
【0053】
第1条件(−35度<PITCH<35度)は、入力デバイス20のピッチ角βが、(−35度<β<35度)の範囲にあるべきことを示す。第2条件(−40度<YAW(ヨー角)<40度)は、入力デバイス20のヨー角αが、(−40度<α<40度)の範囲にあるべきことを示す。第3条件(HANDLEPOS(Z)<−150mm:TIME:1.0s)は、(HANDLEPOS(Z)<−150mm)と(TIME:1.0s)に分解され、(HANDLEPOS(Z)<−150mm)は、Z軸の負方向のハンドル24の移動量が150mmを超えること、(TIME:1.0s)は、その移動が1秒以内に実行されることを示す。つまり、第3条件は、1秒以内にハンドル24がZ軸の負方向に150mmより長い距離を移動されるべきことを示している。本実施例のゲームシステム1では、ユーザが入力デバイス20を使って操作指示を生成するため、入力デバイス20の操作に時間制限を設けることで、スピーディな動きをユーザが行うようになり、ゲーム操作に躍動感をもたせることができる。
【0054】
図10は、第1条件および第2条件により制限される入力デバイス20のピッチ角β、ヨー角αの範囲を示す。この範囲は、仮想的な四角錐で表現される。ユーザは、入力デバイス20の軸線がこの四角錐の範囲に入るように保持し、その状態から1秒以内にZ軸の負方向に150mmより長い距離だけ入力デバイス20を突き出すと、条件判定部112は、第1条件、第2条件、第3条件の全てが満たされたことを判定する。この第1〜第3条件をまとめると、「ダッシュ」発動の操作条件は、ユーザが発光体22を撮像装置14側に向け、Z軸に近似した方向に入力デバイス20を保持して、素早く撮像装置14に向けて150mmより長く突き出すことである。
【0055】
条件判定部112は、各条件の成立の有無をそれぞれ独立に監視する。「ダッシュ」アクションに対して、所定時間内に入力デバイス20が所定量移動したことが第3の条件に設定されており、具体的には、1秒以内にZ軸の負方向のハンドル24の移動量が150mmを超えることが第3の条件とされている。ハンドル24がZ軸の正方向への移動から負方向への移動に変化したとき、またはZ軸方向に静止した状態から負方向に移動したとき、条件判定部112は、Z軸の負方向への移動開始を検出し、移動開始時点からの時間の計測を開始する。ハンドル24のZ軸方向への移動は、ハンドル24の位置情報から検出される。具体的に条件判定部112は、操作情報として取得されるハンドル24の位置情報を監視して、連続して取得される位置情報のうち、Z座標値が負方向に変化したときに、移動開始を検出する。条件判定部112は、1秒以内にハンドル24の移動量が150mmを超えると、第3条件の成立を判定する。
【0056】
なお、本実施例において、第3条件は、1秒以内にハンドル24がZ軸の負方向に連続して移動することを含んでもよい。連続して移動するとは、連続して取得される位置情報のZ座標値が、変化せず、または負方向に変化し、正方向には変化しないことを意味する。したがって、移動量が150mmを超える前に、ハンドル24がZ軸の正方向に移動した場合には、それまでの移動量はキャンセルされる。このように条件判定部112は、入力デバイス20がZ軸の負方向への移動開始から移動量が150mmを超える前に正方向に移動した場合には、正方向に移動した時点で条件不成立を判定する。
【0057】
したがって、ユーザがハンドル24を後方に引くことなく、前方に突き出している最中に、条件判定部112が、所定時間(ここでは1秒)内に、入力デバイス20が連続して150mmよりも長く移動したことを検出すると、第3条件の成立を判定する。一方で、条件判定部112は、移動開始から入力デバイス20がZ軸の負方向に連続して150mm移動する前に、Z軸の正方向に移動すると、その時点で第3条件の不成立を判定し、再度、負方向に移動したときに、時間の計測を開始して、第3条件の成立を監視する。
【0058】
条件判定部112は、「ダッシュ」発動の各条件の成立の有無をそれぞれ独立に判定する。各条件は、演算子「&」で結合されており、すなわち、各条件が同時に成立することで「ダッシュ」アクションが実行される。条件判定部112は、第1〜第3条件のそれぞれに対して、各条件が成立していればフラグ1を、成立していなければフラグ0を設定する。条件判定部112は、各条件のフラグが全て1になったタイミングで、全ての操作条件の成立を判定し、「ダッシュ」発動条件の成立をオブジェクト制御部114に通知する。オブジェクト制御部114は、ゲームオブジェクト200に、「ダッシュ」を実行させ、画像生成部156は、車速が瞬間的に大きくなるように表示画面を生成する。
【0059】
<ジャンプアクション>
「ジャンプ」は、車をジャンプさせるアクションである。たとえばジャンプすることで車が障害物202との衝突を回避できる。「ジャンプ」の操作条件は、複数の条件により構成され、各条件は、演算子「$」で結合されている。この演算子「$」は、各条件が現時点で成立していればよく、それぞれの成立タイミングは異なってよいことを意味する。すなわち、ある条件が成立すると、その条件は、残りの条件が成立するまで、成立状態を維持される。
【0060】
第1条件(SPHEREPOS(Y)>150mm:TIME:1.0s)は、(SPHEREPOS(Y)>150mm)と(TIME:1.0s)に分解され、(SPHEREPOS(Y)>150mm)は、Y軸の正方向の発光体22の移動量が150mmを超えること、(TIME:1.0s)は、その移動が1秒以内に実行されることを示す。つまり第1条件は、1秒以内に発光体22がY軸の正方向に150mmより高く移動されることを示している。第2条件(PITCH>65)は、入力デバイス20のピッチ角が65度よりも大きいことを示す。
【0061】
図11(a)は、第2条件の成立状態を示す。ユーザは、ピッチ角βが65度よりも大きくなるようにY軸の正方向に入力デバイス20を立てる。このようにユーザが入力デバイス20を略鉛直方向に向けることで、第2条件が成立する。図11(b)は、第1条件の成立状態を示す。ユーザは、Y軸の正方向に入力デバイス20を移動する。1秒以内に発光体22の移動量Dが150mmより大きくなると、第1条件が成立する。なお、Y軸の正方向への移動とは、入力デバイス20の移動方向そのものを意味するのではなく、入力デバイス20の移動方向のうちのY軸成分の移動を意味する。なお、第2条件の成立後に第1条件が成立してもよく、また第1条件の成立後に第2条件が成立してもよい。「ジャンプ」アクションの発動に際して、操作条件を構成する複数の条件の成立順序は問わない。条件の成立順序を問わないことで、違う手順の操作により同じアクションを実行できるようになり、ユーザの操作感に多様性をもたせることが可能となる。
【0062】
条件判定部112は、各条件の成立の有無をそれぞれ独立に監視する。「ジャンプ」アクションに対して、所定時間内に入力デバイス20が所定量移動したことが第1の条件に設定されており、具体的には、1秒以内にY軸の正方向の発光体22の移動量が150mmを超えることが第1の操作条件とされている。発光体22がY軸の負方向への移動から正方向への移動に変化したとき、またはY軸方向に静止した状態から正方向に移動したとき、条件判定部112は、Y軸の正方向への移動開始を検出し、移動開始時点からの時間の計測を開始する。発光体22のY軸方向への移動は、発光体22の位置情報から検出される。具体的に条件判定部112は、操作情報として取得される発光体22の位置情報を監視して、連続して取得される位置情報のうち、Y座標値が正方向に変化したときに、移動開始を検出する。条件判定部112は、1秒以内に発光体22の移動量が150mmを超えると、第1条件の成立を判定する。
【0063】
既述したように、発光体22の位置情報は、位置情報導出部92により導出される。位置情報導出部92は、発光体画像の位置および大きさから発光体22の位置情報を導出することを説明したが、たとえば3軸加速度センサ56の検出値を2回積分することで移動量を導出して、位置情報を導出してもよい。位置情報導出部92は、発光体画像と加速度検出値の双方を用いて発光体22の位置情報を導出してもよく、これにより導出精度を高めることが可能となる。なお、一方からの入力がない場合、たとえば発光体22が隠されて、発光体画像を取得できないような場合には、加速度検出値のみから発光体22の位置情報が導出されてもよい。
【0064】
なお、本実施例において、第1条件は、1秒以内に発光体22がY軸の正方向に連続して移動することを含んでもよい。連続して移動するとは、連続して取得される位置情報のY座標値が、変化せず、または正方向に変化し、負方向には変化しないことを意味する。したがって、移動量が150mmを超える前に、発光体22がY軸の負方向に移動した場合には、それまでの移動量はキャンセルされる。このように条件判定部112は、入力デバイス20がY軸の正方向への移動開始から移動量が150mmを超える前に負方向に移動した場合には、負方向に移動した時点で条件不成立を判定する。
【0065】
したがって、ユーザが発光体22を上方に150mmよりも高く持ち上げ続け、条件判定部112は、所定時間(ここでは1秒)内に、発光体22が連続して150mmよりも長く移動したことを検出すると、第1条件の成立を判定する。一方で、条件判定部112は、移動開始から発光体22がY軸の正方向に連続して150mm移動する前に、Y軸の負方向に移動すると、その時点で第1条件の不成立を判定し、再度、正方向に移動したときに、時間の計測を開始して、第1条件の成立を監視する。
【0066】
条件判定部112は、各条件の成立の有無をそれぞれ独立に判定する。各条件は、演算子「$」で結合されており、一方の条件が成立すると、その条件の成立は、他方の条件が成立するまで維持される。条件判定部112は、第1〜第2条件のそれぞれに対して、各条件が成立するとフラグ1を、成立していなければフラグ0を設定する。各条件が演算子「$」で結合されている場合、条件判定部112は、ある条件が成立してフラグ1を設定すると、別の条件が成立してフラグ1が設定されて「ジャンプ」アクションが実行されるまで、以前に設定された条件のフラグ値は維持される。たとえば図11(a)で示すように、第2条件が成立して、第2条件のフラグが1に設定されると、その後、ピッチ角が65度より小さくなっても、そのフラグ値1は維持される。第1条件についても同様である。条件判定部112は、全条件のフラグ値が1になったタイミングで、「ジャンプ」発動条件の成立を判定し、その成立をオブジェクト制御部114に通知する。オブジェクト制御部114は、ゲームオブジェクト200に、「ジャンプ」を実行させ、画像生成部156は、車速が瞬間的に大きくなるように表示画面を生成する。「ジャンプ」は、車の移動中に実行されるため、ジャンプ中の車の挙動は、前進方向への速度を保ちつつ、路面から離れて孤を描いて着地するように表示画面が生成される。
【0067】
このとき色設定部118は、「ジャンプ」発動条件が成立したことをユーザに知らせるべく、発光体22の発光色を変更する。色設定部118は、現在の発光色とは異なる色の発光指示を生成し、無線通信モジュール86から送信させる。入力デバイス20において、無線通信モジュール48が発光指示を受信すると、メイン制御部52に供給し、メイン制御部52は、発光制御部60に発光指示を供給する。発光制御部60は、発光部62が発光指示により指定された色で発光するように、赤色LED64a、緑色LED64b、青色LED64cの発光を制御する。
【0068】
「ジャンプ」アクションを実行するためには、ユーザは、操作条件を満たすように入力デバイス20を操作する必要がある。従来のボタン操作によれば、ボタンを押下するだけでアクションを発動できたが、本実施例の入力デバイス20の操作が、操作条件を満たすものであるかどうかは、ユーザは認識できない。そこで、色設定部118が発光部62の発光色を変更することで、ユーザはジャンプするための操作条件が成立したことを認識できるようにすることが好ましい。このとき、色設定部118は、各アクションに対して、異なる色を設定してもよく、ユーザは、発光体22の色をみて、自分の操作が正しいことを認識できるようにしてもよい。
【0069】
なお、条件判定部112は、図7に示すアクションに対する操作条件を、それぞれ独立に判定する。したがって、条件判定部112が「ジャンプ」の操作条件の成立を判定し、オブジェクト制御部114がゲームオブジェクト200をジャンプさせている最中に、条件判定部112が「左にターン」の操作条件の成立を判定することもある。このときオブジェクト制御部114は、ゲームオブジェクト200のジャンプ中に、ゲームオブジェクト200の姿勢を左に向けてもよい。このように、条件判定部112は、各アクションの操作条件をそれぞれ独立に判定して、成立結果に応じて、オブジェクト制御部114が、ゲームオブジェクト200に複数のアクションを同時に実行させるようにしてもよい。
【0070】
また、「ジャンプ」発動条件のように、演算子「$」で複数の条件が結合されている場合には、他のアクションの実行中に、各条件が成立することも起こりうる。たとえば、「ダッシュ」アクションの実行中に、発光体22が1秒以内にY軸方向に150mmよりも高く持ち上げられると、操作条件のうちの第1条件が成立する。演算子「$」で複数の条件が結合されている場合、第1条件は、第2条件が成立するまで成立状態を維持するため、ユーザは、ゲームオブジェクト200をジャンプさせたいときには、第2条件のみを成立させればよくなる。同様に、他のアクション実行中に、入力デバイス20のピッチ角βを65度よりも大きくすれば、第2条件が成立し、ユーザは、ゲームオブジェクト200をジャンプさせたいときには、第1条件のみを成立させればよい。なお、他のアクション実行中に限らず、ユーザは、一方の条件を成立させておき、ジャンプアクションを実行させたいときに、残りの条件を成立させるように入力デバイス20を操作してもよい。このように、演算子「$」で複数の条件を関連づけておくと、ユーザは、各条件を成立させるタイミングを自由に決めることができるので、ユーザの技量に応じた新たなゲームを創造することができる。
【0071】
このとき色設定部118は、「ジャンプ」発動条件を構成する複数の条件のうち、どの条件が成立しているかをユーザに知らせるべく、発光体22の発光色を変更してもよい。たとえば色設定部118は、第1条件が成立している場合には緑色、第2条件が成立している場合には青色と、各条件の成立に対して異なる色を割り当てる。これにより、ユーザは、成立している条件を確認できるとともに、どの条件を成立させれば、「ジャンプ」アクションが発動するかを知ることができる。
【0072】
図12は、複数の操作条件が設定されたときの条件判定フローの一例を示す。図12に示すフローチャートにおいては、各部の処理手順を、ステップを意味するS(Stepの頭文字)と数字との組み合わせによって表示する。また、Sと数字との組み合わせによって表示した処理で何らかの判断処理が実行され、その判断結果が肯定的であった場合は、Y(Yesの頭文字)を付加して、例えば、(S10のY)と表示し、逆にその判断結果が否定的であった場合は、N(Noの頭文字)を付加して、(S10のN)と表示する。なお、フローチャートにおける表示の意味は、他の図面に示すフローチャートでも同じである。
【0073】
図12の例では、複数の操作条件が演算子「&」で結合されているときの条件判定部112の判定処理を説明する。演算子「&」は、各条件が同時に成立しなければならないことを意味する。演算子「&」については、「ダッシュ」アクションの例で説明したが、図12では説明の便宜上、第1条件と第2条件の2つの条件が「&」で結合されているものとする。なお、第1条件の成立の有無を示すフラグを第1フラグ、第2条件の成立の有無を示すフラグを第2フラグと呼ぶ。
【0074】
条件判定部112が、操作情報から第1条件の成立の有無を判定する(S10)。成立していれば(S10のY)、条件判定部112は第1フラグを1に設定し(S12)、成立していなければ(S10のN)、第1フラグを0に設定する(S14)。これと並行して、条件判定部112は、操作情報から第2条件の成立の有無を判定する(S16)。成立していれば(S16のY)、条件判定部112は第2フラグを1に設定し(S18)、成立していなければ(S16のN)、第2フラグを0に設定する(S20)。
【0075】
条件判定部112は、第1フラグ、第2フラグともに1に設定されているか判定する(S22)。ともに1に設定されていれば(S22のY)、オブジェクト制御部114が、対応するアクションを実行する(S24)。一方、第1フラグ、第2フラグの少なくとも一方が0に設定されていれば(S22のN)、S10からのステップを再実行する。
【0076】
以上のように、この条件判定フローによると、第1条件および第2条件が同時に成立していなければ、アクションが実行されないため、ユーザの技量が要求されるアクションが実現できる。
【0077】
図13は、複数の操作条件が設定されたときの条件判定フローの別の例を示す。図13の例では、複数の操作条件が演算子「$」で結合されているときの条件判定部112の判定処理を説明する。演算子「$」は、各条件が同時に成立する必要がなく、全ての条件が現時点までに成立していればよいことを意味する。演算子「$」については、「ジャンプ」アクションの例で説明した。図13では、第1条件と第2条件の2つの条件が「$」で結合されているものとする。なお、第1条件の成立の有無を示すフラグを第1フラグ、第2条件の成立の有無を示すフラグを第2フラグと呼ぶ。なお前提として、第1フラグ、第2フラグともに0に設定されている状態から、本条件判定フローが開始する。
【0078】
条件判定部112が、操作情報から第1条件の成立の有無を判定する(S40)。成立していれば(S40のY)、条件判定部112は第1フラグを1に設定し(S42)、成立していなければ(S40のN)、第1フラグを変更しない。これと並行して、条件判定部112は、操作情報から第2条件の成立の有無を判定する(S44)。成立していれば(S44のY)、条件判定部112は第2フラグを1に設定し(S46)、成立していなければ(S44のN)、第2フラグを変更しない。
【0079】
条件判定部112は、第1フラグ、第2フラグともに1に設定されているか判定する(S48)。ともに1に設定されていれば(S48のY)、オブジェクト制御部114が、対応するアクションを実行し(S50)、第1フラグ、第2フラグをそれぞれ0に設定する(S52)。一方、第1フラグ、第2フラグの少なくとも一方が0に設定されていれば(S48のN)、S40からのステップを再実行する。
【0080】
以上のように、この条件判定フローによると、条件が一旦成立すると、その後、条件が不成立になっても、フラグは1に維持される。このように条件成立した状態を維持できることで、ユーザは、適当なタイミングで、最後の条件を成立させて、ゲームオブジェクト200を自由にコントロールすることができる。
【0081】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0082】
1・・・ゲームシステム、10・・・ゲーム装置、12・・・表示装置、14・・・撮像装置、20・・・入力デバイス、22・・・発光体、24・・・ハンドル、48・・・無線通信モジュール、50・・・処理部、52・・・メイン制御部、54・・・入力受付部、56・・・3軸加速度センサ、58・・・3軸ジャイロセンサ、60・・・発光制御部、62・・・発光部、80・・・フレーム画像取得部、82・・・画像処理部、84・・・出力部、86・・・無線通信モジュール、88・・・入力受付部、90・・・デバイス情報処理部、92・・・位置情報導出部、94・・・姿勢情報導出部、96・・・操作情報取得部、100・・・アプリケーション処理部、102・・・操作指示受付部、110・・・制御部、112・・・条件判定部、114・・・オブジェクト制御部、116・・・表示制御部、118・・・色設定部、150・・・パラメータ保持部、152・・・3次元データ保持部、154・・・行動テーブル保持部、156・・・画像生成部。
【特許請求の範囲】
【請求項1】
コンピュータに、
入力デバイスの操作情報が、所定の操作条件を満たすか判定する判定機能と、
操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能と、を実現させるためのプログラムであって、
所定の操作条件は、所定時間内に、入力デバイスが所定量移動することを条件とするものであって、
判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する機能を含む、ことを特徴とするプログラム。
【請求項2】
所定の操作条件は、所定時間内に、入力デバイスが所定方向に所定量移動することを条件とするものであって、
判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定方向に所定量移動すると、その操作条件の成立を判定する機能を含む、ことを特徴とする請求項1にプログラム。
【請求項3】
判定機能は、入力デバイスの移動開始から入力デバイスが所定方向に所定量移動する前に、所定方向とは逆方向に移動すると、その時点で操作条件の不成立を判定する機能を含む、ことを特徴とする請求項2にプログラム。
【請求項4】
所定の操作条件は、複数の条件を含んで構成されており、
判定機能が、各条件の成立の有無を判定して、全ての条件の成立を判定する機能を含み、
オブジェクト制御機能は、複数の条件を含んで構成された操作条件に対応付けられた行動をオブジェクトに実行させる機能を含む、ことを特徴とする請求項1から3のいずれかにプログラム。
【請求項5】
判定機能が、全ての条件が同時に成立したことを判定する機能を含む、ことを特徴とする請求項4に記載のプログラム。
【請求項6】
判定機能が、全ての条件が現時点までに成立したことを判定する機能を含む、ことを特徴とする請求項4に記載のプログラム。
【請求項7】
コンピュータに、
入力デバイスの操作情報が、所定の操作条件を満たすか判定する判定機能と、
操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能と、を実現させるためのプログラムであって、
ゲーム空間内でオブジェクトをジャンプさせる操作条件が、入力デバイスを略鉛直方向に向けることと、入力デバイスを鉛直上方向に移動することを条件とするものであって、
判定機能が、オブジェクトをジャンプさせる操作条件の成立を判定すると、オブジェクト制御機能が、ゲーム空間内でオブジェクトをジャンプさせる、ことを特徴とするプログラム。
【請求項8】
入力デバイスを鉛直上方向に移動する条件には、所定時間内に所定量移動する条件が含まれることを特徴とする請求項7に記載のプログラム。
【請求項9】
請求項1から8のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項10】
入力デバイスの操作に応じてオブジェクトを動作させるオブジェクト制御方法であって、
発光体を有する入力デバイスの撮像画像を取得するステップと、
前記撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得するステップと、
オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持するステップと、
操作情報が、操作条件を満たすか判定するステップと、
操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるステップと、を備え、
保持ステップは、所定時間内に入力デバイスが所定量移動することを操作条件として保持しており、
条件判定ステップは、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する、
ことを特徴とするオブジェクト制御方法。
【請求項11】
入力デバイスの操作に応じてオブジェクトを動作させるゲーム装置であって、
発光体を有する入力デバイスの撮像画像を取得する画像取得部と、
前記撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得する操作情報取得部と、
オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する保持部と、
操作情報が、前記保持部に保持されている操作条件を満たすか判定する条件判定部と、
前記条件判定部により操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるオブジェクト制御部と、を備え、
前記保持部は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持しており、
前記条件判定部は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定することを特徴とするゲーム装置。
【請求項1】
コンピュータに、
入力デバイスの操作情報が、所定の操作条件を満たすか判定する判定機能と、
操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能と、を実現させるためのプログラムであって、
所定の操作条件は、所定時間内に、入力デバイスが所定量移動することを条件とするものであって、
判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する機能を含む、ことを特徴とするプログラム。
【請求項2】
所定の操作条件は、所定時間内に、入力デバイスが所定方向に所定量移動することを条件とするものであって、
判定機能は、入力デバイスの移動開始からの時間を計測して、所定時間内に入力デバイスが所定方向に所定量移動すると、その操作条件の成立を判定する機能を含む、ことを特徴とする請求項1にプログラム。
【請求項3】
判定機能は、入力デバイスの移動開始から入力デバイスが所定方向に所定量移動する前に、所定方向とは逆方向に移動すると、その時点で操作条件の不成立を判定する機能を含む、ことを特徴とする請求項2にプログラム。
【請求項4】
所定の操作条件は、複数の条件を含んで構成されており、
判定機能が、各条件の成立の有無を判定して、全ての条件の成立を判定する機能を含み、
オブジェクト制御機能は、複数の条件を含んで構成された操作条件に対応付けられた行動をオブジェクトに実行させる機能を含む、ことを特徴とする請求項1から3のいずれかにプログラム。
【請求項5】
判定機能が、全ての条件が同時に成立したことを判定する機能を含む、ことを特徴とする請求項4に記載のプログラム。
【請求項6】
判定機能が、全ての条件が現時点までに成立したことを判定する機能を含む、ことを特徴とする請求項4に記載のプログラム。
【請求項7】
コンピュータに、
入力デバイスの操作情報が、所定の操作条件を満たすか判定する判定機能と、
操作条件の成立が判定された場合に、その操作条件に対応付けられている行動をオブジェクトに実行させるオブジェクト制御機能と、を実現させるためのプログラムであって、
ゲーム空間内でオブジェクトをジャンプさせる操作条件が、入力デバイスを略鉛直方向に向けることと、入力デバイスを鉛直上方向に移動することを条件とするものであって、
判定機能が、オブジェクトをジャンプさせる操作条件の成立を判定すると、オブジェクト制御機能が、ゲーム空間内でオブジェクトをジャンプさせる、ことを特徴とするプログラム。
【請求項8】
入力デバイスを鉛直上方向に移動する条件には、所定時間内に所定量移動する条件が含まれることを特徴とする請求項7に記載のプログラム。
【請求項9】
請求項1から8のいずれかに記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項10】
入力デバイスの操作に応じてオブジェクトを動作させるオブジェクト制御方法であって、
発光体を有する入力デバイスの撮像画像を取得するステップと、
前記撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得するステップと、
オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持するステップと、
操作情報が、操作条件を満たすか判定するステップと、
操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるステップと、を備え、
保持ステップは、所定時間内に入力デバイスが所定量移動することを操作条件として保持しており、
条件判定ステップは、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定する、
ことを特徴とするオブジェクト制御方法。
【請求項11】
入力デバイスの操作に応じてオブジェクトを動作させるゲーム装置であって、
発光体を有する入力デバイスの撮像画像を取得する画像取得部と、
前記撮像画像から導出される入力デバイスの位置情報、および/または、入力デバイスの姿勢情報に基づいて、入力デバイスの操作情報を取得する操作情報取得部と、
オブジェクトの所定の行動と、入力デバイスの操作条件との対応を保持する保持部と、
操作情報が、前記保持部に保持されている操作条件を満たすか判定する条件判定部と、
前記条件判定部により操作条件の成立が判定された場合に、オブジェクトに、その操作条件に対応付けられている所定の行動を実行させるオブジェクト制御部と、を備え、
前記保持部は、所定時間内に、入力デバイスが所定量移動することを操作条件として保持しており、
前記条件判定部は、移動開始からの時間を計測して、所定時間内に入力デバイスが所定量移動すると、その操作条件の成立を判定することを特徴とするゲーム装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−50719(P2012−50719A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−196333(P2010−196333)
【出願日】平成22年9月2日(2010.9.2)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願日】平成22年9月2日(2010.9.2)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]