説明

ゲーム装置、変位量補正方法、および、プログラム

【課題】取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することのできるゲーム装置を提供する。
【解決手段】配置情報記憶部350は、コントロール対象となるオブジェクトの仮想空間における配置情報を記憶する。画像生成部360は、記憶される当該配置情報に基づいて、当該オブジェクトを含む表示用画像を生成して、表示装置に表示させる。一方、位置情報取得部310は、表示装置に対向するコントローラの位置情報を順次取得する。また、変位量算定部343は、取得された当該位置情報に基づいて、コントローラの変位量を算定する。変位量補正部344は、算定された当該変位量について、所定範囲内の変位量がよりゼロに近づくように補正する。そして、配置情報更新部345は、補正された当該変位量に基づいて、配置情報記憶部350に記憶される当該配置情報を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤが表示装置に向けたコントローラによって、仮想空間のオブジェクトの動きをコントロールするゲーム装置において、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することのできるゲーム装置、変位量補正方法、および、プログラムに関する。
【背景技術】
【0002】
従来より、プレイヤが模擬銃を操作し、画面上に表示された標的等に向けて、射撃を行うゲーム装置(ビデオゲーム装置等)が知られている。このようなゲーム装置は、ブラウン管型のディスプレイを使用する場合を一例として説明すると、模擬銃の銃口が画面に向けられてトリガがプレイヤに引かれると、画面を一瞬だけ光らせる(フラッシュ画面を表示する)。すると、その光を模擬銃の銃口等に設けられたセンサが検出し、その検出時の走査タイミングに基づいて、画面上の照準位置(プレイヤが狙いを定めた位置)を得ている。
【0003】
近年では、ディスプレイ等のメイン画面に標的等を表示するだけでなく、模擬銃に備えられた照準器(狙いを定めるスコープ)にもサブ画面を表示して、よりリアリティを高めた射撃が行えるようにしたゲーム装置の技術も開示されている(例えば、特許文献1参照)。
【特許文献1】特開2001−87544号公報 (第4−11頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0004】
最近では、このような専用の模擬銃等に依らず、新たな発想の入力デバイスを、ゲーム装置における標準のコントローラとし、このコントローラを用いて、種々のゲームを行えるようにする研究がなされている。
例えば、テレビ等のリモコン(リモートコントローラ)と類似した外観を有し、ゲーム装置とワイヤレスで(無線通信等によって)接続され、プレイヤが片手で持ってそのまま操作可能なコントローラが、新たな入力デバイスとして実現されつつある。つまり、プレイヤは、模擬銃の代わりに、リモコンのようなコントローラを画面に向け、所望の標的等に狙いを定めて、トリガ用のボタンを押下して、射撃等を行うことができる。なお、このコントローラは、ブラウン管型のディスプレイだけでなく、液晶やプラズマ等の薄型ディスプレイでも使用できるように、上記とは別の仕組みで画面上の照準位置等を適宜取得可能となっている。
【0005】
また、射撃に限らず、このようなコントローラを使用して、仮想空間のオブジェクトの動きをコントロールする研究もなされている。例えば、プレイヤが実空間でコントローラを動かすと、それに応じて、仮想空間におけるオブジェクトも同様に動かすことができるというものである。
具体的には、図10(a)に示すように、コントローラCntによって、画面Scrの奥に拡がる仮想空間におけるオブジェクトObjの動きをコントロールするというイメージである。この場合、例えば、ゲーム装置は、コントローラCntの3軸方向(X軸,Y軸,Z軸の各方向)についての位置情報をリアルタイムに取得しており、この位置情報に基づいて、オブジェクトObjの仮想空間内における位置(配置情報)を順次更新している。
これにより、プレイヤは、仮想空間のオブジェクトObjを上下左右に動かすだけでなく、コントローラCntを押し出し、または、引きつけることにより、オブジェクトObjを前後(奥行き方向)にも動かすことができる。
【0006】
しかしながら、コントローラCntの位置情報は、その計測の仕組みによっては、その精度が充分でない場合もある。例えば、コントローラCntの先端に配置されたカメラから画面Scrの近傍に配置された2つの発光素子(2つの発光点)を撮影することにより、
2つの発光点の位置関係等を解析して、コントローラの位置を求めるような仕組みの場合では、上下左右方向(X軸,Y軸方向)の精度はある程度高いものの、前後方向(Z軸方向)の精度は充分ではない場合が多い。
具体的には、Z軸方向の変化量は、撮影した2つの発光点の距離の変化量に基づいて算出するため、X,Y軸方向の変化量に比べてそもそも小さな値となっている。そのため、僅かな変化でも、ゲーム内(仮想空間内)では大きく変化することになり、所定の閾値をまたぐような値が検出された場合に、オブジェクトObjがZ軸方向に大きく移動してしまう。
なお、X,Y軸方向については、閾値をまたぐような値が検出された場合でも、オブジェクトObjがほとんど移動しないので余り目立たない。
このため、プレイヤがコントローラCntを静止させているつもりでも、特にZ軸方向の値が変化してしまうため、図10(b)に示すように、オブジェクトObjが手振れのように振動してしまうという問題があった。
【0007】
本発明は、このような課題を解決するためになされたもので、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することのできるゲーム装置、変位量補正方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の観点に係るゲーム装置は、表示装置に向けられたコントローラにより、仮想空間のオブジェクトの動きをコントロールするゲーム装置であって、配置情報記憶部、画像生成部、位置情報取得部、変位量算定部、変位量補正部、及び、配置情報更新部を含んで構成される。
【0009】
まず、配置情報記憶部は、コントロール対象となるオブジェクトの仮想空間における配置情報を記憶する。また、画像生成部は、記憶される当該配置情報に基づいて、当該オブジェクトを含む表示用画像を生成して、表示装置に表示させる。
一方、位置情報取得部は、表示装置に対向するコントローラの位置情報を順次取得する。また、変位量算定部は、取得された当該位置情報に基づいて、コントローラの変位量を算定する。変位量補正部は、算定された当該変位量について、所定範囲内の変位量がよりゼロに近づくように補正する。そして、配置情報更新部は、補正された当該変位量に基づいて、記憶される当該配置情報を更新する。
【0010】
この結果、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することができる。
【0011】
前記位置情報取得部は、コントローラの3軸方向についての位置を含む位置情報を取得し、前記変位量算定部は、当該位置情報に基づいて、3軸方向についての変位量をそれぞれ算定し、前記変位量補正部は、少なくとも奥行き方向の変位量について、所定の関数式により演算することにより、誤差により変動が生じ得る範囲内の変位量が絶対値でより小さな値となるように補正してもよい。
【0012】
上記ゲーム装置は、コントローラに生じた加速度を順次取得する加速度取得部を更に備え、前記変位量補正部は、取得された当該加速度と前記変位量算定部が算定した変位量との関係に基づいて、所定範囲内の変位量がよりゼロに近づくように補正してもよい。
【0013】
前記位置情報取得部は、コントローラの3軸方向についての位置を含む位置情報を取得し、前記変位量算定部は、当該位置情報に基づいて、3軸方向についての変位量をそれぞれ算定し、前記加速度取得部は、コントローラの3軸方向についての加速度をそれぞれ取得し、前記変位量補正部は、少なくとも奥行き方向の変位量について、取得された奥行き方向の加速度との関係に基づいて、誤差により変動が生じ得る範囲内の変位量がよりゼロに近づくように補正してもよい。
【0014】
上記ゲーム装置は、コントローラに配置された所定の操作部が押下された際に、コントローラから押下情報を取得する押下情報取得部と、前記位置情報取得部が取得した位置情報に基づいて、コントローラが指し示す照準位置の情報を算定する照準位置算定部と、当該押下情報が取得された際に、前記配置情報記憶部に記憶されるオブジェクトの配置情報と算定された当該照準位置の情報との関係に基づいて、コントロール対象となるオブジェクトを特定するオブジェクト特定部と、を更に備えてもよい。
【0015】
本発明の第2の観点に係る変位量補正方法は、コントロール対象となるオブジェクトの仮想空間における配置情報を記憶する配置情報記憶部を備え、表示装置に向けられたコントローラにより、仮想空間のオブジェクトの動きをコントロールするゲーム装置における変位量補正方法であって、画像生成ステップ、位置情報取得ステップ、変位量算定ステップ、変位量補正ステップ、及び、配置情報更新ステップを含んで構成される。
【0016】
まず、画像生成ステップでは配置情報記憶部に記憶される当該配置情報に基づいて、当該オブジェクトを含む表示用画像を生成して、表示装置に表示させる。一方、位置情報取得ステップでは、表示装置に対向するコントローラの位置情報を順次取得する。また、変位量算定ステップでは、取得された当該位置情報に基づいて、コントローラの変位量を算定する。変位量補正ステップでは、算定された当該変位量について、所定範囲内の変位量がよりゼロに近づくように補正する。そして、配置情報更新ステップでは、補正された当該変位量に基づいて、記憶される当該配置情報を更新する。
【0017】
この結果、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することができる。
【0018】
本発明の第3の観点に係るプログラムは、コンピュータ(電子機器を含む。)を、上記のゲーム装置として機能させるように構成する。
【0019】
このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【0020】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0021】
本発明によれば、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することができる。
【発明を実施するための最良の形態】
【0022】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0023】
(実施形態1)
図1は、本発明の実施の形態に係るゲーム装置が実現される典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0024】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラユニット105と、外部メモリ106と、DVD(Digital Versatile Disk)−ROMドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0025】
なお、ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【0026】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【0027】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0028】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【0029】
インターフェース104を介して接続された、コントローラユニット105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。より詳細には、後述するコントローラ210がプレイヤにより操作され、その操作情報等を無線通信により受け付ける。なお、コントローラユニット105の詳細については後述する。
【0030】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラユニット105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0031】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0032】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号(映像信号)に変換され画像処理部108に接続されるモニタ(後述するディスプレイ290)へ出力される。これにより、各種の画像表示が可能となる。
【0033】
なお、画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0034】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0035】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、外部のスピーカ(後述するディスプレイ290のスピーカ)に供給して音声を出力させる。例えば、音声処理部109は、CPU 101による制御の下、ゲームの進行中に発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0036】
NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格に従うものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0037】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。
【0038】
また、本実施形態の情報処理装置100にかえて、一般的なコンピュータ(汎用のパーソナルコンピュータ等)をゲーム装置として利用することもできる。たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能となる画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、ゲームプログラムをインストールした後に、そのプログラムを実行させると、ゲーム装置として機能する。
【0039】
(コントローラユニットの概要)
図2は、上述したコントローラユニット105の概要を説明するための外観図である。
コントローラユニット105は、図示するようなコントローラ210とセンサバー220とを含んで構成される。情報処理装置100は、所定のケーブルを介してセンサバー220及びディスプレイ290とそれぞれ接続されている。
【0040】
コントローラ210は、例えば、テレビ等のリモコンと類似した外観を有し、情報処理装置100とワイヤレスで(無線通信によって)接続され、プレイヤが片手で持ってそのまま操作可能なコントローラである。
また、センサバー220は、所定の長さの棒状に形成され、ディスプレイ290の上部に、画面の向きに沿って適宜固定される。このセンサバー220には、両端に1つずつ発光素子221が埋設されている。
センサバー220は、情報処理装置100から電源供給を受けて発光素子221を適宜発光させる。
【0041】
コントローラ210は、先端にCCDカメラ211が配置され、先端がディスプレイ290に向けられると、このCCDカメラ211がセンサバー220の2つの発光素子221(2つの発光点)を含む画像を撮影する。また、コントローラ210は、内部に無線通信部を備えており、撮影した画像の情報を、無線通信にてゲーム装置100に順次送信する。
そして、情報処理装置100は、コントローラ210から送られた画像中における2つの発光点の位置関係等に基づいて、コントローラ210の位置及び向き等を適宜取得する。例えば、CPU 101及び画像処理部108等は、コントローラ210から見える2つの発光点の位置関係等を解析して、コントローラ210の空間位置及び、その先端の向き(長手軸線の方向)を算定し、最終的に、プレイヤがコントローラ210を画面上のどこに向けて操作しているか等を取得する。
なお、このようなコントローラ210の位置等の計測は、例えば、垂直同期割り込み(1/60秒)毎に行われる。
【0042】
また、コントローラ210は、内部に、加速度センサ、角加速度センサ、傾きセンサ等を備えており、プレイヤによるひねりなどの動きも測定することが可能となっている。そして、これらの測定結果も、情報処理装置100に送信される。
【0043】
コントローラ210の上面には、十字形キー212が配置されており、プレイヤが手に持って操作する際に、各種の方向指示入力等を行うことができる。また、Aボタン213や、各種ボタン215も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【0044】
一方、Bボタン214は、コントローラ210の下面に配置され、その下面に窪みが構成されていることもあり、プレイヤが手に持って操作する際に、トリガを引くように押下することができるようになっている。
【0045】
コントローラ210の上面のインジケータ216は、コントローラ210が複数使用された場合でもプレイヤが識別できるように、適宜点灯する。
コントローラ210の上面に用意された電源ボタン217は、例えば、情報処理装置100のオン・オフを指示する。
【0046】
更に、コントローラ210の内部には、バイブレータ等の振動機構が配置され、情報処理装置100から送られる指示に応答して、振動を発生させることもできるようになっている。
以下では、このようなコントローラ210とセンサバー220との組合せによって、コントローラ210の位置等を測定することを前提に説明する。なお、コントローラ210の位置の測定は、センサバー220の発光点(発光素子221)をCCDカメラ211が撮影する手法に限られず、他の手法でも適宜適用可能である。例えば、センサバー220を介した2地点間の無線通信の時差等から、コントローラ210の位置等を求めてもよく、また、超音波や赤外線等を使用して、三角測量の原理にてコントローラ210の位置等を求めてもよい。
【0047】
(ゲーム装置の概要構成)
図3は、本実施形態に係るゲーム装置の概要構成を示す模式図である。このゲーム装置は、一例として、プレイヤがディスプレイ290(より詳細には、センサバー220)に向けたコントローラ210によって、仮想空間におけるオブジェクトの動きをコントロールする体感型ゲームを実装する装置である。以下、本図を参照して説明する。
【0048】
ゲーム装置300は、位置情報取得部310と、操作情報取得部320と、画像情報記憶部330と、処理制御部340と、配置情報記憶部350と、画像生成部360とを備える。
【0049】
まず、位置情報取得部310は、コントローラ210の位置及び向き(先端の方向)からなる位置情報を順次取得する。
例えば、位置情報取得部310は、ディスプレイ290に対応するコントローラ210の空間位置及び、その先端(CCDカメラ211)の向き(長軸線の方向)を求める。より詳細には、コントローラ210の3軸方向(X軸,Y軸,Z軸の各方向)位置と、コントローラ210の長軸線の方向を順次求める。
なお、位置情報取得部310は、3軸方向の位置を求める際に、X軸方向及び、Y軸方向の位置精度はある程度高いものの、Z軸方向の位置精度は充分とは言えない状況となっているものとする。
つまり、Z軸方向の変化量は、撮影した2つの発光点の距離の変化量に基づいて算出するため、X,Y軸方向の変化量に比べてそもそも小さな値となっている。そのため、僅かな変化でも、仮想空間内では大きく変化することになる。
このため、プレイヤがコントローラCntを静止させているつもりでも、特にZ軸方向の値が変化してしまうため手振れのような振動が生じてしまう状況となっている。
位置情報取得部310は、例えば、垂直同期割り込み(1/60秒)毎に、このような3軸方向の各位置と長軸線の方向からなる位置情報を生成し、処理制御部340に順次供給する。
そして、コントローラユニット105が、このような位置情報取得部310として機能しうる。
【0050】
操作情報取得部320は、コントローラ210から無線通信により送られる操作情報を取得し、プレイヤによるコントローラ210の操作内容を取得する。つまり、プレイヤがコントローラ210のどのボタンを押下したか等をリアルタイムに取得する。
なお、インタフェース104等が、このような操作情報取得部320として機能しうる。
【0051】
画像情報記憶部330は、種々のオブジェクトを含む画像情報を記憶する。例えば、体感型ゲーム中にディスプレイ290に表示するための背景画像や、プレイヤ(コントローラ210)からのコントロール対象となり得るオブジェクトを含む画像情報を記憶する。この画像情報には、仮想空間に配置される位置を示す配置情報(初期の配置位置等)も含まれている。
なお、DVD−ROMドライブ107に装着されるDVD−ROM及び、RAM 103が、このような画像情報記憶部330として機能しうる。
【0052】
処理制御部340は、ゲーム装置300全体を制御する。例えば、処理制御部340は、照準位置算定部341、オブジェクト特定部342、変位量算定部343、変位量補正部344、及び、配置情報更新部345を含んで構成される。
【0053】
照準位置算定部341は、位置情報取得部310にて取得された位置情報に基づいて、コントローラ210によって指し示されるディスプレイ290(画面)の奥に拡がる仮想空間の照準位置を順次算定する。
具体的に照準位置算定部341は、まず、取得した位置情報からコントローラ210の実空間位置(X軸,Y軸,Z軸方向の各位置)及び、その先端(発光素子211)の向き(長軸線の方向)を求める。そして、図4(a)に示すように、求めたコントローラ210の位置及び長軸線Lの方向に基づいて、画面Scrの奥に拡がる仮想空間における照準位置Spを算定する。なお、照準位置Spは、近傍にオブジェクトが存在しない状態で、長軸線Lの延長線上における所定の奥行き距離dの位置に算定される。この際、この距離dに至るまでにオブジェクトが存在する場合には、そのオブジェクトの前面(コントローラ210側)に照準位置Spとして算定される。なお、奥行き等が分かり易いように、照準位置Spまで湾曲したビーム曲線Bm(実線部分)が伸ばされるようになっている。
照準位置算定部341は、算定したこのような照準位置の情報をオブジェクト特定部342に供給する。また、照準位置算定部341は、照準位置Spに照準マークを表示させるため(照準マークを含んだ画像を生成させるため)に、算定した照準位置の情報を配置情報記憶部350に格納する。
【0054】
オブジェクト特定部342は、照準位置算定部341が算定した照準位置の情報と、配置情報記憶部350に記憶される各オブジェクトの配置情報との位置関係、及び、操作情報取得部320が取得した操作情報に基づいて、コントロール対象となるオブジェクトを特定する。
具体的にオブジェクト特定部342は、取得した操作情報によって、コントローラ210のBボタン214がプレイヤにより押下されたことを検出した際に、図4(b)に示すように、照準位置Spと重なるオブジェクトObjがあれば、それをコントロール対象のオブジェクトとして特待する。
なお、図4(a)に示すように、照準位置Spと重なるオブジェクトが存在しない場合には、オブジェクト特定部342は、何れのオブジェクトも特定しない。
そして、オブジェクト特定部342は、オブジェクトを特定した場合に限り、特定したオブジェクトの情報を変位量算定部343に供給する。
【0055】
変位量算定部343は、オブジェクト特定部342によりオブジェクトが特定されると(プレイヤから任意のオブジェクトが選択されると)、位置情報取得部310にて順次取得される位置情報から差を求め、変位量を算定する。
例えば、変位量算定部343は、オブジェクトを特定時点における位置情報の3軸方向の位置を基準として、今回取得された位置情報の3軸方向の位置との差を求めて、X軸,Y軸,Z軸方向についての変位量(移動量)をそれぞれ算定する。そして、算定した変位量を変位量補正部344に供給する。
【0056】
変位量補正部344は、変位量算定部343により算定された変位量について、所定範囲内の変位量がよりゼロに近づくように補正する。
具体的に変位量補正部344は、Z軸方向(奥行き方向)の変位量が適切に補正できる図5(a)や図5(b)のグラフに示すような関係を定めておき、このようなグラフに沿って変位量に対応する値を求め、この値を変位量に乗じることで、H1〜H2の範囲の変位量がよりゼロに近づくように補正する。このH1〜H2の範囲は、例えば、位置情報のZ軸方向において、手振れのような振動を生じさせ得る範囲として予め定められた範囲であり、この範囲にて変位量がよりゼロに近づくように補正することで、適切に補正できる。
変位量補正部344は、より詳細に、以下の数式1に示すように、補正後の変位量を算定する。
【0057】
(数1)
Zdis = (Z−Z0)×f(Zh)
Zdis:補正後の変位量
Z:今回のZ軸方向の位置
Z0:オブジェクト特定時点のZ軸方向の位置
f(Zh):関数式
Zh:変位量(Z−Z0に等しい)
【0058】
なお、上記の数式1における関数式f(Zh)は、図5(c)や図5(d)のような値を取る関数である。これらの関数は、上述した図5(a)や図5(b)に対応して、それぞれ規定されている。そして、変位量(Z−Z0)にこの関数を乗じることにより、Z軸方向の変位量が所定範囲内であれば、絶対値でより小さな値となるように補正する。
すなわち、変位量補正部344は、取得したZ方向の変位量が誤差による変動範囲内であれば、1未満(絶対値)の値を乗じてより0に近づくように補正し、誤差による変動範囲外であれば、そのまま1を乗じる。
つまり、以下の数式2に示すように、補正後のZ軸方向の位置(Z’)が求まる。
【0059】
(数2)
Z’=Z0 + Zdis
Z’:補正後のZ軸方向の位置
Z0:オブジェクト特定時点のZ軸方向の位置
Zdis:補正後の変位量
【0060】
また、変位量補正部344は、X軸方向及びY軸方向の変位量について、そのまま1を乗じる。つまり、X軸方向及びY軸方向についての変位量は、ある程度精度が高いため変更しない。
変位量補正部344は、このように補正した変位量の情報を配置情報更新部345に供給する。
【0061】
配置情報更新部345は、変位量補正部344により補正された変位量に従って、コントロール対象のオブジェクトの配置情報を更新する。つまり、適宜補正されたZ軸方向の変位量(所定の範囲内の場合)を含む3軸方向の変位量に基づいて、対象オブジェクトを仮想空間で移動させるために、そのオブジェクトの配置情報を更新する。
これにより、プレイヤがコントローラ210を静止させているつもりで、Z軸方法の値が変化してしまう状況であっても、Z軸方向の変位量をそのまま採用して、オブジェクトの配置情報を更新することがない(つまり、ゼロに近づけたZ軸方向の変位量を使用して、オブジェクトの配置情報を更新する)。逆に、プレイヤがコントローラ210を、奥行き方向に沿って普通に動かした場合(押し出したり、引きつけたりした場合)は、Z軸方向等の変位量をそのまま採用して、オブジェクトの配置情報を更新することになる。
そして、CPU 101が、このような構成からなる処理制御部340として機能しうる。
【0062】
配置情報記憶部350は、各オブジェクトの仮想空間における現在の配置位置を示す配置情報を記憶する。
例えば、配置情報記憶部350は、体感型ゲームの開始時に、画像情報記憶部330に記憶されている各オブジェクトの初期の配置位置となる配置情報が格納される。そして、プレイヤが任意のオブジェクトを選択し(コントローラ210にて特定し)、そのオブジェクトを動かす場合には、上述の配置情報更新部345により更新される。
なお、RAM 103がこのような配置情報記憶部350として機能しうる。
【0063】
画像生成部360は、画像情報記憶部330に記憶された画像情報及び、配置情報記憶部350に記憶された配置情報等に基づいて、ゲーム画像を生成する。
具体的に画像生成部360は、図6(a)に示すような表示画像を生成する。この図6(a)は、オブジェクトObjが、コントロール対象のオブジェクトとしてプレイヤに選択され、プレイヤがコントローラ210を静止させて保持している状態を示している。
この際、意図せずにZ軸方法の値が変化してしまっても、変位量補正部344がZ方向の変位量を補正するため、手振れのような振動が生じていない。つまり、誤差等によるZ軸方向の変位量が、変位量補正部344によって、より0に近づける補正を行うため、手振れのような振動を抑制することができる。
また、この状態からプレイヤが、例えば、コントローラ210を普通に引きつけると、Z軸方向の変位量が誤差等による変動範囲を超えて大きくなるため、変位量補正部344は、Z軸方向について変位量の補正を行わない。このため、画像生成部360は、図6(b)に示すような表示画像を生成する。この図6(b)は、コントローラ210が引きつけられたため、オブジェクトOBJが手前側に移動している様子を示している。
そして、画像処理部108が、このような画像生成部360として機能しうる。
【0064】
(ゲーム装置の動作の概要)
図7は、上述した構成のゲーム装置300において、体感型ゲームのプレイ中に実行される変位量補正処理の流れを示すフローチャートである。以下、この図を参照してゲーム装置300の動作について説明する。
この変位量補正処理は、例えば、体感型ゲームのプレイに伴い開始される。
【0065】
まず、ゲーム装置300は、コントローラ210の位置情報を取得して、照準位置を更新する(ステップS401)。
つまり、照準位置算定部341は、位置情報取得部310にて取得された位置情報に基づいて、コントローラ210によって指し示されるディスプレイ290(画面)の奥に拡がる仮想空間の照準位置を算定する。そして、照準位置算定部341は、算定した照準位置の情報を配置情報記憶部350に更新して格納する。
【0066】
ゲーム装置300は、配置情報等に基づいて、表示画像を生成する(ステップS402)。
つまり、画像生成部360は、画像情報記憶部330に記憶された画像情報及び、配置情報記憶部350に記憶された配置情報等に基づいて、ゲーム画像を生成する。
【0067】
ゲーム装置300は、プレイヤによりコントローラ210のBボタン214が押下されたか否かを判別する(ステップS403)。
すなわち、処理制御部340は、操作情報取得部320から取得した操作情報に基づいて、Bボタン214が押下されたかどうかを判別する。
ゲーム装置300は、Bボタン214が押下されていないと判別すると(ステップS403;No)、上述したステップS401に処理を戻す。
【0068】
一方、Bボタン214が押下されたと判別した場合に(ステップS403;Yes)、ゲーム装置300は、コントロール対象のオブジェクトを特定する(ステップSS404)。
つまり、オブジェクト特定部342は、照準位置算定部341が算定した照準位置の情報と、配置情報記憶部350に記憶される各オブジェクトの配置情報との位置関係に基づいて、照準位置と重なるオブジェクトを特定する。そして、その時点でのコントローラ210の位置情報を記憶する。
なお、照準位置と重なるオブジェクトが存在しない場合には、上述したステップS401に処理を戻すものとする。
【0069】
ゲーム装置300は、オブジェクトを特定すると、コントローラ210の位置情報を取得し、コントローラ210の変位量を算定する(ステップS405)。
つまり、変位量算定部343は、オブジェクト特定時に記憶した位置情報の3軸方向の位置と今回取得された位置情報の3軸方向の位置との差を求めて、X軸,Y軸,Z軸方向についての変位量をそれぞれ算定する。
【0070】
ゲーム装置300は、変位量を補正する(ステップS406)。
つまり、変位量補正部344は、変位量算定部343により算定されたZ軸方向の変位量について、所定範囲内の変位量がよりゼロに近づくように補正する。また、変位量補正部344は、X軸方向及びY軸方向の変位量については変更しない。
【0071】
ゲーム装置300は、補正後に変位量に基づいて、配置情報を更新する(ステップS407)。
つまり、配置情報更新部345は、適宜補正されたZ軸方向の変位量を含む3軸方向の変位量に基づいて、対象オブジェクトを仮想空間で移動させるために、そのオブジェクトの配置情報を更新する。
【0072】
ゲーム装置300は、配置情報等に基づいて、表示画像を生成する(ステップS408)。
つまり、画像生成部360は、配置情報更新部345により更新された配置情報記憶部350に記憶された配置情報等に基づいて、ゲーム画像を生成する。
例えば、画像生成部360は、上述した図6(a),(b)に示すようなゲーム画像を生成する。
まず、図6(a)は、オブジェクトObjが、コントロール対象のオブジェクトとしてプレイヤに選択され、プレイヤがコントローラ210を静止させて保持している状態を示している。この際、意図せずにZ軸方法の値が変化してしまっても、変位量補正部344がZ方向の変位量を補正するため、手振れのような振動が生じていない。つまり、誤差等によるZ軸方向の変位量が、変位量補正部344によって、よりゼロに近づける補正を行うため、手振れのような振動を抑制することができる。
次に、図6(b)は、プレイヤがコントローラ210を普通に引きつけた場合を示している。この際、Z軸方向の変位量が誤差等による変動範囲を超えて大きくなるため、変位量補正部344は、Z軸方向について変位量の変更を行わない。このため、画像生成部360は、コントローラ210が引きつけられたのに対応して、オブジェクトObjが手前側に移動している様子を示している。
【0073】
ゲーム装置300は、Bボタン214の押下が解除されたか否かを判別する(ステップS409)。
すなわち、処理制御部340は、操作情報取得部320から取得した操作情報に基づいて、Bボタン214の押下が解除されたかどうかを判別する。
ゲーム装置300は、Bボタン214の押下が解除されていないと判別すると(ステップS409;No)、上述したステップS404に処理を戻し、ステップS404〜S409の処理を繰り返し実行する。
一方、Bボタン214の押下が解除されたと判別した場合に(ステップS409;Yes)、ゲーム装置300は、上述したステップS401に処理を戻す。
【0074】
このような変位量補正処理により、プレイヤがオブジェクトを選択した状態で、コントローラ210を静止させているつもりで、Z軸方法の値が変化してしまう状況であっても、Z方向の変位量が適宜補正されるため、手振れのような振動が生じない。
また、プレイヤがコントローラ210を奥行き方向に沿って普通に移動させた場合には、Z軸方向の変位量が誤差等による変動範囲を超えて大きくなるため、変位量補正部344は、Z軸方向について変位量の変更を行わない。このため、配置情報更新部345により配置情報が更新され、オブジェクトをコントローラ210の動きに応じて移動させたゲーム画像を生成することができる。
【0075】
この結果、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することができる。
【0076】
(他の実施形態)
上記の実施形態では、変位量補正部344が、数式1に示すような演算を行って、所定の範囲の変位量がゼロに近づくように補正する場合について説明した。
しかしながら、変位量を補正する手法は、これに限られず、適宜変更可能である。例えば、別途コントローラ210から取得した加速度の情報と、算定した変位量との関係に従って、変位量がよりゼロに近づくように補正するようにしてもよい。つまり、同時期に取得した加速度と変位量との関係に従って、変位量を補正する。
【0077】
図8は、同時期に取得した加速度と変位量との関係に従って、変位量を補正することを特徴とした本発明の他の実施形態に係るゲーム装置の概要構成を示す模式図である。
このゲーム装置500は、位置情報取得部310と、操作情報取得部320と、画像情報記憶部330と、処理制御部340と、配置情報記憶部350と、画像生成部360と、加速度情報取得部510とを備える。
なお、この図8に示すゲーム装置は、上述した図3のゲーム装置300に加速度情報取得部510を加えたと構成となっている。
【0078】
加速度情報取得部510は、コントローラ210から無線通信により送られる加速度情報を取得し、コントローラ210の3軸方向の加速状況を取得する。つまり、プレイヤがコントローラ210を動かすことにより発生する加速度をリアルタイムに取得する。なお、この加速度も位置情報と同様に、例えば、垂直同期割り込み(1/60秒)毎に取得する。
加速度情報取得部510は、取得した加速度情報からZ軸方向の加速度の情報を抽出して変位量補正部344に供給する。
なお、インタフェース104等が、このような加速度情報取得部510として機能しうる。
【0079】
変位量補正部344は、変位量算定部343により算定された変位量を、加速度情報取得部510から得たZ軸方向の加速度が既定値よりも小さい場合に、変位量がよりゼロに近づくように補正する。
具体的に変位量補正部344は、Z軸方向(奥行き方向)の変位量が適切に補正できる図9(a)や図9(b)のグラフに示すような加速度に対応する係数の関係を定めておき、このようなグラフに沿って、Z軸方向の加速度の値に対応する係数の値を求める。そして、その係数の値を、変位量算定部343により算定された変位量に乗じて、変位量を補正する。
この場合、Z軸方向の加速度が既定値K1未満の値であれば、変位量がよりゼロに近づくように補正されることになる。なお、この既定値K1は、コントローラ210内に配置される加速度センサの精度等を勘案して適切に設定されている。
【0080】
この場合も、変位量補正部344は、コントローラ210を静止させた状態で、取得したZ方向の変位量が誤差により変動していても、Z軸方向の加速度が充分に小さい値として得られるようになり、その加速度に対応する係数も1未満の充分に小さい値となる。このため、Z軸方向の変位量を1未満の値を乗じてより0に近づくように補正することになる。
また、プレイヤがコントローラ210を、奥行き方向に沿って普通に動かした場合(押し出したり、引きつけたりした場合)に、Z軸方向の加速度が既定値K1を超えるようにすることで、Z軸方向等の変位量を補正しないことになる。
【0081】
この結果、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することができる。
【0082】
上記の実施形態では、Z軸方向の変位量を補正する場合を一例として説明したが、同様に、X軸方向及び、Y軸方向の変位量を補正するようにしてもよい。この場合、X軸方向及び、Y軸方向の位置精度がある程度高いため、よりゼロに近づくように補正する変位量の範囲を、Z軸方向の場合よりも適宜狭くしてもよい。
【0083】
上記の実施形態では、体感型ゲームを一例として説明したが、このような体感型ゲームに限られず、コントローラの位置等を測定して入力に使用するゲームであれば適宜適用可能である。
【0084】
以上説明したように、本発明によれば、取得されるコントローラの位置精度がある程度低い場合でも、オブジェクトに生じ得る手振れのような振動を適切に抑制することができる。
【図面の簡単な説明】
【0085】
【図1】本発明の実施形態に係る情報処理装置の概要構成を示す模式図である。
【図2】コントローラユニットの概要を説明するための外観図である。
【図3】本発明の実施形態に係るゲーム装置の概要構成を示す模式図である。
【図4】(a),(b)共に、コントローラと仮想空間のオブジェクトとの関係を分かり易く説明するための模式図である。
【図5】(a)〜(d)共に、変位量の補正について説明するための模式図である。
【図6】(a),(b)共に、表示画像の一例を示す模式図である。
【図7】本発明の実施形態に係る変位量補正処理の一例を示すフローチャートである。
【図8】本発明の他の実施形態に係るゲーム装置の概要構成を示す模式図である。
【図9】(a),(b)共に、加速度と係数との関係を説明するための模式図である。
【図10】(a),(b)共に、コントローラと仮想空間のオブジェクトとの関係を説明するための模式図である。
【符号の説明】
【0086】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラユニット
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
210 コントローラ
220 センサバー
300,500 ゲーム装置
310 位置情報取得部
320 操作情報取得部
330 画像情報記憶部
340 処理制御部
350 配置情報記憶部
360 画像生成部
510 加速度情報取得部

【特許請求の範囲】
【請求項1】
表示装置に向けられたコントローラにより、仮想空間のオブジェクトの動きをコントロールするゲーム装置であって、
コントロール対象となるオブジェクトの仮想空間における配置情報を記憶する配置情報記憶部と、
記憶される当該配置情報に基づいて、当該オブジェクトを含む表示用画像を生成して、表示装置に表示させる画像生成部と、
表示装置に対向するコントローラの位置情報を順次取得する位置情報取得部と、
取得された当該位置情報に基づいて、コントローラの変位量を算定する変位量算定部と、
算定された当該変位量について、所定範囲内の変位量がよりゼロに近づくように補正する変位量補正部と、
補正された当該変位量に基づいて、記憶される当該配置情報を更新する配置情報更新部と、を備える
ことを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
前記位置情報取得部は、コントローラの3軸方向についての位置を含む位置情報を取得し、
前記変位量算定部は、当該位置情報に基づいて、3軸方向についての変位量をそれぞれ算定し、
前記変位量補正部は、少なくとも奥行き方向の変位量について、所定の関数式により演算することにより、誤差により変動が生じ得る範囲内の変位量が、絶対値でより小さな値となるように補正する、
ことを特徴とするゲーム装置。
【請求項3】
請求項1に記載のゲーム装置であって、
コントローラに生じた加速度を順次取得する加速度取得部を更に備え、
前記変位量補正部は、取得された当該加速度と前記変位量算定部が算定した変位量との関係に基づいて、変位量がよりゼロに近づくように補正する、
ことを特徴とするゲーム装置。
【請求項4】
請求項3に記載のゲーム装置であって、
前記位置情報取得部は、コントローラの3軸方向についての位置を含む位置情報を取得し、
前記変位量算定部は、当該位置情報に基づいて、3軸方向についての変位量をそれぞれ算定し、
前記加速度取得部は、コントローラの3軸方向についての加速度をそれぞれ取得し、
前記変位量補正部は、少なくとも奥行き方向の変位量について、取得された奥行き方向の加速度との関係に基づいて、誤差により変動が生じ得る範囲内の変位量が、よりゼロに近づくように補正する、
ことを特徴とするゲーム装置。
【請求項5】
請求項1又は2に記載のゲーム装置であって、
コントローラに配置された所定の操作部が押下された際に、コントローラから押下情報を取得する押下情報取得部と、
前記位置情報取得部が取得した位置情報に基づいて、コントローラが指し示す照準位置の情報を算定する照準位置算定部と、
当該押下情報が取得された際に、前記配置情報記憶部に記憶されるオブジェクトの配置情報と算定された当該照準位置の情報との関係に基づいて、コントロール対象となるオブジェクトを特定するオブジェクト特定部と、を更に備える、
ことを特徴とするゲーム装置。
【請求項6】
コントロール対象となるオブジェクトの仮想空間における配置情報を記憶する配置情報記憶部を備え、表示装置に向けられたコントローラにより、仮想空間のオブジェクトの動きをコントロールするゲーム装置における変位量補正方法であって、
前記配置情報記憶部に記憶される当該配置情報に基づいて、当該オブジェクトを含む表示用画像を生成して、表示装置に表示させる画像生成ステップと、
表示装置に対向するコントローラの位置情報を順次取得する位置情報取得ステップと、
取得された当該位置情報に基づいて、コントローラの変位量を算定する変位量算定ステップと、
算定された当該変位量について、所定範囲内の変位量がよりゼロに近づくように補正する変位量補正ステップと、
補正された当該変位量に基づいて、記憶される当該配置情報を更新する配置情報更新ステップと、を備える
ことを特徴とする変位量補正方法。
【請求項7】
表示装置に向けられたコントローラにより、仮想空間のオブジェクトの動きをコントロールするコンピュータを、
コントロール対象となるオブジェクトの仮想空間における配置情報を記憶する配置情報記憶部、
記憶される当該配置情報に基づいて、当該オブジェクを含む表示用画像を生成して、表示装置に表示させる画像生成部、
表示装置に対向するコントローラの位置情報を順次取得する位置情報取得部、
取得された当該位置情報に基づいて、コントローラの変位量[or 移動量]を算定する変位量算定部、
算定された当該変位量について、所定範囲内の変位量がよりゼロに近づくように補正する変位量補正部、
補正された当該変位量に基づいて、記憶される当該配置情報を更新する配置情報更新部、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate