JP4863761B2 - ゲーム装置およびゲームプログラム - Google Patents

ゲーム装置およびゲームプログラム Download PDF

Info

Publication number
JP4863761B2
JP4863761B2 JP2006130832A JP2006130832A JP4863761B2 JP 4863761 B2 JP4863761 B2 JP 4863761B2 JP 2006130832 A JP2006130832 A JP 2006130832A JP 2006130832 A JP2006130832 A JP 2006130832A JP 4863761 B2 JP4863761 B2 JP 4863761B2
Authority
JP
Japan
Prior art keywords
game
imaging
controller
inclination
acceleration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006130832A
Other languages
English (en)
Other versions
JP2007301048A (ja
Inventor
敬三 太田
賢太 佐藤
祐輝 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2006130832A priority Critical patent/JP4863761B2/ja
Publication of JP2007301048A publication Critical patent/JP2007301048A/ja
Application granted granted Critical
Publication of JP4863761B2 publication Critical patent/JP4863761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ゲーム装置およびゲームプログラムに関し、より特定的には、加速度センサと撮像装置を備える入力装置の動きに応じたゲーム処理を行うためのゲーム装置およびゲームプログラムに関する。
従来、光学式のポインティングシステムを用いて表示画面上の特定の位置を指定する技術が考えられている。例えば、特許文献1に記載の光学式ポインティングシステムは、複数の視聴者を対象とした会議等において用いられるシステムである。このシステムでは、表示画面の近傍に発光素子が設けられ、指示器には光電変換素子を用いた撮像装置が内蔵される。指示者が指示器を用いて表示画面の任意の位置を指定する場合、指示器は、撮像装置によって上記発光素子を撮像し、撮像された画像に基づいて指示器が指定する位置を算出する。算出された位置にマークが表示されることによって、指示者が指示したい位置がマークによって示されることとなる。
また、上記と同様の光学式のポインティングシステムを用いたゲーム用コントローラが考えられている(例えば、特許文献2参照。)。このコントローラは、ガン(拳銃)型の形状を有しており、射撃ゲームに用いられる。この射撃ゲームは、画面に表示されている標的に向かってガンを用いて射撃させるゲームである。ガンは、画面上の任意の位置(弾が飛んでいく位置)を指定するために用いられる。ガン型のコントローラにはCCDカメラが内蔵されており、画面の周囲の4箇所に配置された発光体をCCDカメラが撮像する。コントローラは、撮像された画像を用いてガンの向きや回転や傾きを算出する。算出結果を用いて、画面に表示されている標的の向きをガンが正しく向いているか否かを検出することによって、標的に命中したか否かを判断する。以上の構成によって、プレイヤが手に持ったコントローラ(ガン)自体を動かしてゲーム操作を行うゲームシステムを実現することができる。
特開平6−308879号公報 特開平8−71252号公報
上記の技術では、ユーザが手に持って使用する入力装置(上記指示器やガン型のコントローラ)は、表示画面上の位置を指定するために用いられるのみである。つまり、上記の指示器やガン型のコントローラでは、表示画面上の位置を指定するという単一の操作のみが可能であり、他の操作を行うことができなかった。例えば、上記入力装置をゲーム装置に用いる場合、表示画面上の位置を指定するという1種類の単純なゲーム操作しか行うことができない。そのため、ゲーム操作が単純であることからゲーム自体も単純な内容となってしまい、興趣性に欠けるものとなる。
それ故、本発明の目的は、ユーザが手に持って使用する入力装置を用いて従来にはない新たな操作が可能となるようなゲーム装置おおびゲームプログラムを提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
本発明のゲームプログラムは、少なくとも1軸に関する加速度を検出可能な加速度センサ(37)と、所定の撮像対象(8a,8b)を撮像するための撮像装置(40)とを備えた入力装置(7)の動きに応じたゲーム処理を行うゲーム装置(3)のコンピュータ(10)で実行されるゲームプログラムである。当該ゲームプログラムは、前記コンピュータに、データ取得ステップ(S10)、指示位置算出ステップ(S12)、傾き算出ステップ(S16)、ゲーム処理ステップ(S14,S18)、および表示制御ステップ(S20)を実行させるためのゲームプログラムである。データ取得ステップは、前記撮像装置の撮像画像における前記撮像対象の位置および前記加速度センサが検出する加速度を取得または算出するステップである。指示位置算出ステップは、前記撮像画像における撮像対象の位置から、前記入力装置の動きに伴って変化する指示位置を算出するステップである。傾き算出ステップは、前記加速度センサが検出する加速度から前記入力装置の傾きを算出するステップである。ゲーム処理ステップは、前記指示位置および前記入力装置の傾きに基づいて所定のゲーム処理を行うステップである。表示制御ステップは、前記ゲーム処理の結果を反映したゲーム空間を表示装置に表示させるステップである。なお、加速度センサと撮像装置は、共通のハウジングに設けられていてもよいし、フレキシブルなケーブルで結合される2つのハウジングに別個に設けられていてもよい。
なお、前記ゲーム処理ステップは、前記指示位置からゲーム空間内の操作対象オブジェクトを決定または操作対象オブジェクトの位置を決定し、かつ前記入力装置の傾きから当該操作対象オブジェクトの姿勢を決定するオブジェクト処理ステップを含んでもよい。
また、前記加速度センサは、前記撮像装置の撮像方向(光軸方向,Z軸方向)に対して垂直な2軸(X軸,Y軸)に関する加速度を少なくとも検出可能であり、前記傾き算出ステップは、前記加速度センサが検出する前記撮像装置の撮像方向に対して垂直な2軸に関する加速度から、前記撮像装置の撮像方向を軸とした前記入力装置の傾き(θ1,θ2,θ3)を算出する撮像方向軸周り傾き算出ステップを含み、前記ゲーム処理ステップは、前記指示位置からゲーム空間内の操作対象オブジェクトを決定または操作対象オブジェクトの位置を決定し、前記撮像装置の撮像方向を軸とした前記入力装置の傾きから当該操作対象オブジェクトの姿勢を決定するオブジェクト処理ステップを含んでもよい。これにより、プレイヤは、入力装置を撮像方向軸周りにひねる動作によって、指示位置を変えることなくオブジェクトの姿勢だけを容易に変化させることができるので、オブジェクトの位置と姿勢を容易に個別に制御することができる。
また、前記ゲーム処理ステップは、ゲーム空間内の仮想カメラ(VC)の向きを前記入力装置の傾きから決定し、決定された当該仮想カメラの向きに応じた前記指示位置のゲーム空間内での位置を決定するカメラ処理ステップ(S34,S36)を含んでもよい。
また、前記撮像対象が、互いに離れて配置された一対の撮像対象(8a,8b)であり、前記ゲームプログラムは、前記撮像画像における前記一対の撮像対象間の距離から、前記入力装置と前記一対の撮像対象との間の距離を算出する距離算出ステップを前記コンピュータにさらに実行させ、前記ゲーム処理ステップは、前記指示位置および前記入力装置の傾きに加えて、さらに前記入力装置と前記1対の撮像対象との間の距離に基づいて前記ゲーム処理を行ってもよい。
本発明のゲーム装置は、少なくとも1軸に関する加速度を検出可能な加速度センサ(37)と、所定の撮像対象(8a,8b)を撮像するための撮像装置(40)と、指示位置算出手段(10,S12)と、傾き算出手段(10,S16)と、ゲーム処理手段(10,S14,S18)と、表示制御手段(10,S20)とを備える。指示位置算出手段は、前記撮像装置の撮像画像における前記撮像対象の位置から前記撮像装置の動きに伴って変化する指示位置を算出する手段である。傾き算出手段は、前記加速度センサが検出する加速度から前記加速度センサの傾きを算出する手段である。ゲーム処理手段は、前記指示位置および前記加速度センサの傾きに基づいて所定のゲーム処理を行う手段である。表示制御手段は、前記ゲーム処理の結果を反映したゲーム空間を表示装置に表示させる手段である。
なお、前記ゲーム処理手段は、前記指示位置からゲーム空間内の操作対象オブジェクトを決定または操作対象オブジェクトの位置を決定し、かつ前記加速度センサの傾きから当該操作対象オブジェクトの姿勢を決定するオブジェクト処理手段を含んでもよい。
また、前記加速度センサは、前記撮像装置の撮像方向(光軸方向,Z軸方向)に対して垂直な2軸(X軸,Y軸)に関する加速度を少なくとも検出可能であり、前記傾き算出手段は、前記加速度センサが検出する前記撮像装置の撮像方向に対して垂直な2軸に関する加速度から、前記撮像装置の撮像方向を軸とした前記加速度センサの傾き(θ1,θ2,θ3)を算出する撮像方向軸周り傾き算出手段を含み、前記ゲーム処理手段は、前記指示位置からゲーム空間内の操作対象オブジェクトを決定または操作対象オブジェクトの位置を決定し、前記撮像装置の撮像方向を軸とした前記加速度センサの傾きから当該操作対象オブジェクトの姿勢を決定するオブジェクト処理手段を含んでもよい。
また、前記ゲーム処理手段は、ゲーム空間内の仮想カメラ(VC)の向きを前記加速度センサの傾きから決定し、決定された当該仮想カメラの向きに応じた前記指示位置のゲーム空間内での位置を決定するカメラ処理手段(10,S34,S36)を含んでもよい。
また、前記加速度センサは3軸(X軸,Y軸,Z軸)に関する加速度を検出可能な3軸加速度センサであって、前記傾き算出手段は、3次元での傾きを算出してもよい。
また、前記撮像対象が、互いに離れて配置された一対の撮像対象(8a,8b)であり、前記ゲーム装置は、前記撮像画像における前記一対の撮像対象間の距離から、前記撮像装置と前記一対の撮像対象との間の距離を算出する距離算出手段をさらに備え、前記ゲーム処理手段は、前記指示位置および前記加速度センサの傾きに加えて、さらに前記撮像装置と前記1対の撮像対象との間の距離に基づいて前記ゲーム処理を行ってもよい。
本発明によれば、撮像装置の撮像画像における撮像対象の位置から算出される指示位置と、加速度センサが検出する加速度から算出される入力装置(または加速度センサ)の傾きとに基づいてゲーム処理が実行されるので、今までにないゲーム操作が可能となる。
図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、当該ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。
図1において、ゲームシステム1は、ゲーム装置3およびコントローラ7によって構成される。コントローラ7は、コントローラ7に対する操作内容を示す操作データをゲーム装置3に与える入力装置である。ゲーム装置3は、操作データに応じて、後述するゲーム処理を実行する。本実施形態ではゲーム装置3は据置型の装置であるが、他の実施形態では携帯型の装置であってもよいし、アーケードゲーム装置であってもよい。また、ゲーム装置3には、スピーカを備える家庭用テレビジョン受像機等の表示装置(以下、モニタと記載する)2が接続コードを介して接続される。モニタ2は、ゲーム処理の結果得られるゲーム画像を表示する。また、モニタ2の周辺(図では画面の上側)には、2つのマーカ8aおよび8bが設置される。マーカ8aおよび8bは、具体的には赤外LEDであり、それぞれモニタ2の前方に向かって赤外光を出力する。
ゲーム装置3には、接続端子を介して通信ユニット6が接続される。通信ユニット6は、コントローラ7から無線送信される操作データを受信するとともに、ゲーム装置3の指示によりコントローラ7へデータを送信する。このように、コントローラ7とゲーム装置3とは無線通信によって接続される。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されてもよい。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着される。ゲーム装置3の上部主面には、当該ゲーム装置3の電源ON/OFFスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置3上部の蓋を開くためのOPENスイッチが設けられている。ここで、プレイヤがOPENスイッチを押下することによって上記蓋が開き、光ディスク4の脱着が可能となる。
ゲーム装置3には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ2に表示する。さらに、ゲーム装置3は、外部メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のプレイヤは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
コントローラ7は、通信ユニット6が接続されたゲーム装置3へ、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて操作データを無線送信する。コントローラ7には、複数の操作ボタン(操作キー)からなる操作部が設けられている。また、後述により明らかとなるが、コントローラ7は、当該コントローラ7から見た画像を撮像するための撮像情報演算部35(後述)を備えている。撮像情報演算部35は、モニタ2の周辺に配置された各マーカ8aおよび8bを撮像対象として各マーカ8aおよび8bの画像を撮像する。撮像された画像に関するデータは上記操作データの一部としてゲーム装置3へ送信される。ゲーム装置3は、当該画像に関するデータに基づいた演算処理によってコントローラ7の位置および姿勢に応じた処理を実行することができる。また、コントローラ7は、直線方向の加速度を検出する加速度センサ37(後述)を備えている。加速度センサ37によって検出された加速度を示すデータは上記操作データの一部としてゲーム装置3へ送信される。ゲーム装置3は、当該加速度を示すデータに基づいてコントローラ7の動きおよび/または姿勢を算出し、動きおよび/または姿勢に応じた処理を適宜実行することができる。
また、コントローラ7は、ゲーム装置3から通信ユニット6を介して種々のデータを受信する。そして、受信したデータに応じた種々の動作を行う。例えばゲーム装置3からサウンドデータを受信した場合、コントローラ7は、内蔵するスピーカ49(図6)からサウンドデータに応じた音を出力する。
次に、図2を参照して、ゲーム装置3の構成について説明する。なお、図2は、ゲーム装置3の機能ブロック図である。
図2において、ゲーム装置3は、各種プログラムを実行する例えばリスク(RISC)CPU(セントラルプロセッシングユニット)10を備える。CPU10は、図示しないブートROMに記憶された起動プログラムを実行し、メインメモリ13等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。CPU10には、メモリコントローラ11を介して、GPU(Graphics Processing Unit)12、メインメモリ13、DSP(Digital Signal Processor)14、およびARAM(Audio RAM)15が接続される。また、メモリコントローラ11には、所定のバスを介して、コントローラI/F(インターフェース)16、ビデオI/F17、外部メモリI/F18、オーディオI/F19、およびディスクI/F20が接続され、それぞれ通信ユニット6、モニタ2、外部メモリカード5、スピーカ22、およびディスクドライブ21が接続されている。
GPU12は、CPU10の命令に基づいて画像処理を行うものあり、例えば、3Dグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。GPU12は、図示しない画像処理専用のメモリやメインメモリ13の一部の記憶領域を用いて画像処理を行う。GPU12は、これらを用いてモニタ2に表示すべきゲーム画像データやムービー映像を生成し、適宜メモリコントローラ11およびビデオI/F17を介してモニタ2に出力する。
メインメモリ13は、CPU10で使用される記憶領域であって、CPU10の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ13は、CPU10によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ13に記憶されたゲームプログラムや各種データ等がCPU10によって実行される。
DSP14は、ゲームプログラム実行時にCPU10において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのARAM15が接続される。ARAM15は、DSP14が所定の処理(例えば、先読みしておいたゲームプログラムやサウンドデータの記憶)を行う際に用いられる。DSP14は、ARAM15に記憶されたサウンドデータを読み出し、メモリコントローラ11およびオーディオI/F19を介してスピーカ22に出力させる。
メモリコントローラ11は、データ転送を統括的に制御するものであり、上述した各種I/F16〜20が接続される。コントローラI/F16は、例えば4つのコントローラI/Fで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置3とを通信可能に接続する。例えば、通信ユニット6は、上記コネクタと嵌合し、コントローラI/F16を介してゲーム装置3と接続される。上述したように通信ユニット6は、コントローラ7からの操作データを受信し、コントローラI/F16を介して当該操作データをCPU10へ出力する。また、CPU10において生成されるサウンドデータ等のデータがコントローラ7へ送信される場合、当該データは、コントローラI/F16を介して通信ユニット6へ出力される。通信ユニット6は、コントローラI/F16から入力されたデータをコントローラ7へ送信する。なお、他の実施形態においては、ゲーム装置3は、通信ユニット6に代えて、コントローラ7と通信可能な通信モジュールをその内部に設ける構成としてもよい。この場合、通信モジュールが受信した操作データは所定のバスを介してCPU10に出力され、コントローラ7へ送信すべきデータは、所定のバスを介して通信モジュールからコントローラ7へ送信される。また、ビデオI/F17には、モニタ2が接続される。外部メモリI/F18には、外部メモリカード5が接続され、その外部メモリカード5に設けられたバックアップメモリ等とアクセス可能となる。オーディオI/F19にはモニタ2に内蔵されるスピーカ22が接続され、DSP14がARAM15から読み出したサウンドデータや、ディスクドライブ21から直接出力されるサウンドデータがスピーカ22から出力される。ディスクI/F20には、ディスクドライブ21が接続される。ディスクドライブ21は、所定の読み出し位置に配置された光ディスク4に記憶されたデータを読み出し、ゲーム装置3のバスやオーディオI/F19に出力する。
次に、図3〜図6を参照して、コントローラ7について説明する。図3および図4は、コントローラ7の外観構成を示す斜視図である。図3は、コントローラ7の上側後方から見た斜視図であり、図4は、コントローラ7を下側前方から見た斜視図である。
図3および図4において、コントローラ7は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すz軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ7を用いることによって、それに設けられたボタンを押下すること、および、コントローラ7自体を動かしてその位置や姿勢を変えることによってゲーム操作を行うことができる。例えば、プレイヤは、長手方向を軸としてコントローラ7を回転させたり、コントローラ7によって指し示される画面上の位置を変えたりする操作によって、操作対象に対する操作を行うことができる。ここで、「コントローラ7によって指し示される画面上の位置」とは、理想的には、コントローラ7の前端部から上記長手方向に延ばした直線とモニタ2の画面とが交わる位置であるが、厳密に当該位置である必要はなく、その周辺の位置をゲーム装置3によって算出することができればよい。以下では、コントローラ7によって指し示される画面上の位置を「(コントローラ7の)指示位置」と呼ぶ。また、コントローラ7(ハウジング31)の長手方向を、「(コントローラ7の)指示方向」と呼ぶことがある。
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字キー32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、およびプラスボタン32gが設けられる。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、ハウジング31の上面には、遠隔からゲーム装置3本体の電源をオン/オフするための電源ボタン32hが設けられる。ホームボタン32fおよび電源32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源32hを誤って押下することを防止することができる。
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ7に他の機器を接続するために利用される。例えば、360°に傾倒可能なスティックを備えたサブコントロールユニットをケーブルを介して接続し、当該サブコントロールユニットに対する操作にそって方向入力を行い、同時にコントローラ7に対する操作によって、後述する画面上の所定位置を指示する操作を行うようにしてもよい。そのようなサブコントロールユニットをケーブルを介して接続して利用するとこにより、方向入力を行いながらコントローラ7自体を動かす操作を自由に行うことができる。
ハウジング31上面の後面側には複数(図3では4つ)のLED34が設けられる。ここで、コントローラ7には、他のコントローラ7と区別するためにコントローラ種別(番号)が付与される。LED34は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7からゲーム装置3へ操作データを送信する際、上記コントローラ種別に応じて複数のLED34のいずれか1つが点灯する。
また、コントローラ7は撮像情報演算部35(図5B)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ8aおよび8bからの赤外光を少なくとも透過する材質で構成される。
ハウジング71上面における1番ボタン32bとホームボタン32fとの間には、コントローラ7に内蔵されるスピーカ49(図5A)からの音を外部に放出するための音抜き孔が形成されている。
次に、図5Aおよび図5Bを参照して、コントローラ7の内部構造について説明する。図5Aおよび図5Bは、コントローラ7の内部構造を示す図である。なお、図5Aは、コントローラ7の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bは、コントローラ7の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図5Bに示す斜視図は、図5Aに示す基板30を裏面から見た斜視図となっている。
図5Aにおいて、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に操作ボタン32a〜32h、LED34、加速度センサ37、アンテナ45、アンプ48、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、x軸方向に関してコントローラ7の中心からずれた位置に配置されている。これによって、コントローラ7をz軸回りに回転させたときのコントローラ7の動きを算出しやすくなる。また、無線モジュール44およびアンテナ45によって、コントローラ7がワイヤレスコントローラとして機能する。
一方、図5Bにおいて、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ7の前方から順に赤外線フィルタ38、レンズ39、撮像素子40(例えばCMOSイメージセンサやCCDイメージセンサ)、および画像処理回路41によって構成されおり、それぞれ基板30の下主面に取り付けられる。
さらに、基板30の下主面上には、上記マイコン42、サウンドIC47、およびバイブレータ50が設けられている。サウンドIC47は、基板30等に形成された配線によってマイコン42およびアンプ48と接続される。バイブレータ50は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ50が作動することによってコントローラ7に振動が発生するので、コントローラ7を把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ50は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ50がコントローラ7の中心よりも端側に配置することによって、バイブレータ50の振動によりコントローラ7全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5Aおよび図5Bに示す他、コントローラ7は、マイコン42の基本クロックを生成する水晶振動子等を備えている。
なお、図3〜図5Bに示したコントローラ7の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができることは言うまでもない。また、コントローラ7における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。このとき、上記「コントローラ7の指示方向」は、撮像素子40の撮像方向、具体的には、光入射面に垂直な方向となる。
図6は、コントローラ7の構成を示すブロック図である。コントローラ7は、操作部32(各操作ボタン)、撮像情報演算部35、通信部36、加速度センサ37、および音声出力部46を備えている。なお、本実施形態では加速度センサ37の出力はゲーム処理に用いられないので、コントローラ7は加速度センサ37を備えていない構成であってもよい。
操作部32は、上述した各操作ボタン32a〜32iに相当し、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を示すデータを通信部36のマイコン42へ出力する。
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ7の動きでも追跡して解析することができる。
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、モニタ2の表示画面近傍に配置されるマーカ8aおよび8bは、モニタ2の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ8aおよび8bの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ8aおよび8b)の位置を算出する。以下、図7を用いて撮像対象の位置の算出方法を説明する。
図7は、撮像画像の一例を示す図である。図7に示す撮像画像A1においては、マーカ8aの画像8a’およびマーカ8bの画像8b’が左右に並んでいる。撮像画像が入力されると、画像処理回路41は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像(対象画像)を特定するための条件である。所定条件の具体的な内容は、輝度が所定値以上の領域(高輝度領域)であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
対象画像の位置を算出する際、まず、画像処理回路41は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路41は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である2つのマーカ8aおよび8bの画像8a’および8b’の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカの画像8a’および8b’以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカの画像8a’および8b’とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路41は当該高輝度領域の位置(具体的には、当該高輝度領域の重心位置)を算出する。なお、高輝度領域の位置は撮像素子40の解像度よりも詳細なスケールで算出することが可能である。例えば、撮像素子40によって撮像された撮像画像の解像度が126×96である場合でも、高輝度領域の位置を1024×768のスケールで算出することが可能である。このとき、高輝度領域の位置の座標は、(0,0)から(1024,768)までの整数値で表現される。なお、撮像画像における位置は、図7に示すように、撮像画像の左上を原点とし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(XY座標系)で表現されるものとする。
以上のようにして、画像処理回路41は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。画像処理回路41は、算出された座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ7自体の向き(姿勢)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ7の向きや位置を算出することができる。
図6の説明に戻り、加速度センサ37は、コントローラ7の加速度(重力加速度を含む)を検出する、すなわち、コントローラ7に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度(直線加速度)をそれぞれ検出する。例えば、3軸または2軸の加速度センサ37は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。
本実施形態では、加速度センサ37は、コントローラ7を基準とした上下方向(図3に示すy軸方向)、左右方向(図3に示すx軸方向)および前後方向(図3に示すz軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ7を基準に設定されるxyz座標系における3次元のベクトルとして表される。加速度センサ37が検出した加速度を示すデータ(加速度データ)は、通信部36へ出力される。なお、本実施形態では、コントローラ7の通信部36は、逐次(例えば0.5msに1回)に加速度データをゲーム装置3へ出力する。ゲーム装置3は、この加速度データに基づいてコントローラ7の移動方向や傾き(姿勢)を算出することができる。なお、加速度センサ37は、各軸に沿った直線成分の加速度を検出するものであるので、ゲーム装置3は、コントローラ7の移動方向や傾きを直接検出することはできない。このため、加速度センサ37を搭載したデバイスの移動方向や傾きは、加速度センサの各軸毎に検出される加速度に所定の演算処理を施すことによって算出される。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータを無線送信する無線モジュール44を制御する。
操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。ここで、通信部36から通信ユニット6への無線送信は所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。マイコン42は、通信ユニット6への送信タイミングが到来すると、メモリ43に格納されているデータを操作データとして無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ7から送信される。微弱電波信号はゲーム装置3側の通信ユニット6で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、取得した操作データとゲームプログラムとに基づいて、ゲーム処理を行う。
また、ゲーム装置3は、ゲーム状況に応じた適宜のタイミングでサウンドデータをコントローラ7に対して送信する。ゲーム装置3から送信されてきたサウンドデータはアンテナ45によって受信される。マイコン42は、アンテナ45によって受信されたサウンドデータを無線モジュール44を介して取得する。さらに、取得したサウンドデータを音声出力部46へ出力する。
音声出力部46は、サウンドIC47、アンプ48、スピーカ49を備えている。サウンドIC47は、マイコン42からサウンドデータが入力されると、サウンドデータに所定の処理を行ってアンプを介してスピーカ49に音声信号を出力する。これによって、ゲーム装置3は、コントローラ7側のスピーカ49からゲームの効果音等の音声を出力することができる。
上記コントローラ7を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ7の姿勢を変化させたり、コントローラ7自身の位置を動かしたり、コントローラ7を回転させたりするというゲーム操作を行うことができる。
図8は、コントローラ7を用いてゲーム操作するときの状態を概説する図解図である。ゲームシステム1においてコントローラ7を用いてゲームをプレイする際、プレイヤは、図8に示すように一方の手でコントローラ7を把持する。本実施形態では、プレイヤは、把持したコントローラ7でモニタ2の画面上の任意の位置を指定する(コントローラ7の指示位置を所望の位置に向ける)ことによってゲーム操作を行う。
以下、ゲーム装置3におけるコントローラ7の指示位置とコントローラ7の傾きの検出方法の詳細を説明する。
(指示位置の算出方法)
ゲーム装置3は、受信した操作データに含まれるマーカ座標のデータを用いて、上記指示位置と、コントローラ7から各マーカ8aおよび8bまでの距離を算出することができる。図9は、コントローラ7の位置および/または向きを変化させた場合における撮像画像の変化を示す図である。図9は、コントローラの状態と、その状態にあるときに得られる撮像画像との対応を示している。図9において、コントローラ7が状態Aにあるときの撮像画像を撮像画像I1とする。撮像画像I1では、対象画像である各マーカ8aおよび8bの画像8a’および8b’は、撮像画像I1の中央付近に位置している。状態Aは、コントローラ7がマーカ8aとマーカ8bとの中間の位置を指し示している状態である。
図9に示す状態Bは、状態Aを基準としてコントローラ7を右方向(X軸正方向)に平行移動させた状態である。この状態Bにおいては、撮像情報演算部35によって撮像画像I3が得られる。撮像画像I3においては、対象画像8a’および8b’は、撮像画像I1を基準として左方向(x軸負方向)に平行移動している。なお、状態Bは、コントローラ7の指示方向を状態Aから右方向に向けた状態である。ここで、コントローラ7を右方向に平行移動させる場合だけでなく、コントローラ7をY軸周りに回転させることによっても、コントローラ7の指示方向を右方向に向けることができる。したがって、コントローラ7をY軸周りに回転させる場合にも撮像画像I3と同様の撮像画像が得られる。以上より、コントローラ7の指示方向を右方向に向けるようにコントローラ7を移動(回転)させた場合、撮像画像I3と同様の撮像画像が得られる、すなわち、対象画像8a’および8b’が平行移動した画像が得られる。したがって、撮像画像内における対象画像の位置(後述する例では、画像8a’と画像8b’の中点の位置)を検出することによって、コントローラ7が指し示す方向を知ることができる。
図9に示す状態Cは、状態Aを基準としてコントローラ7を各マーカ8aおよび8bから遠ざけた(すなわち、後方向に平行移動させた)状態である。この状態Cにおいては、撮像情報演算部35によって撮像画像I4が得られる。撮像画像I4においては、画像8a’と画像8b’との距離が、撮像画像I1よりも短くなっている。したがって、撮像画像内における2つのマーカ画像の間の長さ(画像8a’と画像8b’との間の長さ。2つの対象画像を一体と見れば、対象画像の大きさ)を検出することによって、コントローラ7と各マーカ8aおよび8bとの距離を知ることができる。なお、他の実施形態において、コントローラとマーカとの距離を知る必要の無い場合や、対象画像の大きさによって距離を算出可能な場合においては、配置されるマーカは1つであってもよい。
(傾きの算出方法)
ゲーム装置3は、受信した操作データに含まれる加速度データを用いて、コントローラ7(加速度センサ37)の傾きを算出することができる。図10は、コントローラ7の傾き(Z軸周りの傾き)を変化させた場合における加速度データの変化を示す図である。図10は、コントローラの状態と、その状態にあるときに得られる加速度データのX軸値,Y軸値との対応を示している。図10において、コントローラ7が状態Aにあるときは、重力の影響により、加速度データのX軸値は0、Y軸値は−1となる。状態Aは、コントローラ7のY軸の正方向が鉛直上方向となるように、プレイヤがコントローラ7を把持しているときの状態である。
図10に示す状態Bは、状態Aを基準としてプレイヤがコントローラ7をZ軸周りに角度θaだけ右回転(Z軸正方向を向いて時計回りに回転)させた状態である。この状態Bにおいては、加速度データのX軸値およびY軸値が示すベクトルは、状態Aのときと比較してXY座標平面上で角度θaだけ反時計回りに回転している。したがって、加速度データのX軸値およびY軸値が示すベクトルの向きを検出することによって、コントローラ7のZ軸周りの傾きを知ることができる。
図10に示す状態Cは、状態Aを基準としてプレイヤがコントローラ7をZ軸周りに角度θbだけ左回転(Z軸正方向を向いて反時計回りに回転)させた状態である。この状態Cにおいては、加速度データのX軸値およびY軸値が示すベクトルは、状態Aのときと比較してXY座標平面上で角度θbだけ時計回りに回転している。したがって、加速度データのX軸値およびY軸値が示すベクトルの向きを検出することによって、コントローラ7のZ軸周りの傾きを知ることができる。
なお、図示は省略するが、状態Aを基準としてプレイヤがコントローラ7をZ軸周りに90°以上左回転(または右回転)させた場合にも、加速度データのX軸値およびY軸値に基づいて、その回転角度を知ることができる。したがって、加速度データのX軸値およびY軸値を参照することにより、状態Aを基準としたときのコントローラ7のZ軸周りの回転角度を−180°〜180°の範囲、すなわち全周にわたって検出することができる。
なお、図10において、加速度データのX軸値の大きさだけを参照することによっても、状態Aを基準としたコントローラ7のZ軸周りの回転角度を検出することが可能である。ただしこの場合には、状態Aを基準としてプレイヤがコントローラ7をZ軸周りに(90−a)°回転させたときと(90+a)°回転させたときとで加速度データのX軸値が同じ値になるため、加速度データのX軸値の大きさだけを参照することによって検出可能なコントローラ7のZ軸周りの回転角度は−90°〜90°の範囲に限られる。
なお、ここでは、コントローラ7のZ軸周りの傾きの検出方法を説明したが、コントローラ7のX軸周りの傾きやY軸周りの傾きについても同様にして検出することができる。例えば、コントローラ7のX軸周りの傾きは、加速度データのY軸値およびZ軸値(もしくはY軸値とZ軸値のいずれか一方)を参照して検出することができる。このようにしてコントローラ7の少なくとも2軸周りの傾きを検出することによって、コントローラ7の三次元的な傾きを検出することができる。
以下、上記ゲームシステム1によって実現される種々のゲームを説明する。
(実施例1)
図11は、仮想ゲーム空間において棒状のオブジェクトを壁や障害物にぶつけることなくゴールまで導くゲームをプレイ中のゲーム画面例およびプレイヤによるコントローラ7の操作例を示している。
オブジェクトOb1は、コントローラ7による画面上の指示位置(Pa,Pb,Pc)に表示される。コントローラ7による画面上の指示位置は、コントローラ7に設けられた撮像情報演算部35において算出された、撮像画像内における撮像対象(マーカ8aおよび8b)の位置に基づいて決定される。
また、オブジェクトOb1の傾き(基準姿勢からの回転角度θ1,θ2,θ3)は、コントローラ7のZ軸周りの傾き(基準姿勢からの回転角度)と同じ傾きとなる。コントローラ7のZ軸周りの傾きは、コントローラ7に設けられた加速度センサ37のX軸出力値およびY軸出力値に基づいて判定される。
このように、プレイヤは、コントローラ7を動かす(移動させたり傾けたりする)だけでオブジェクトOb1の位置と姿勢の両方を同時に制御することができる。
以下、図11のフローチャートを参照して、本実施例におけるゲームプログラムに基づくゲーム装置3のCPU10の処理の流れを説明する。
まずステップS10で、CPU10は、操作データを取得する。この操作データには少なくとも、撮像画像内における撮像対象(マーカ8aおよび8b)の位置と、加速度センサ37のX軸出力値およびY軸出力値が含まれている。
ステップS12では、撮像画像内における撮像対象(マーカ8aおよび8b)の位置に基づいて指示位置(プレイヤによって指示された画面上の位置)を算出する。指示位置の算出方法は前述の通りである(図9)。
ステップS14では、ステップS12で算出された指示位置に基づいて、仮想ゲーム空間におけるオブジェクトの位置を決定する。このとき、画面上でのオブジェクトの表示位置と、プレイヤが指示した画面上の位置とが一致するように、オブジェクトの位置を決定するのが好ましい。
ステップS16では、加速度センサ37のX軸出力値およびY軸出力値に基づいて、コントローラ7の姿勢(傾き)を算出する。コントローラ7の傾きの算出方法は前述の通りである(図10)。
ステップS18では、ステップS16で算出されたコントローラ7の姿勢に基づいて、仮想ゲーム空間におけるオブジェクトの姿勢を決定する。このとき、コントローラ7の基準位置からの回転角度と、オブジェクトの基準位置からの回転角度とが一致するように、オブジェクトの姿勢を決定するのが好ましい。なお、他の実施形態においては、コントローラ7の基準位置からの回転角度の算出を行わず、加速度センサ37のX軸出力値およびY軸出力値で定義されるベクトルをコントローラ7の姿勢として扱い、当該ベクトル方向に対して直接所定の変換処理を行うことによって、オブジェクトの姿勢を示す方向を決定するようにしてもよい。
ステップS20では、ステップS14で決定された位置とステップS18で決定された姿勢に基づいて、オブジェクトを含むゲーム画像を生成し、モニタ2へ出力する。
ステップS22では、ゲームが終了したかどうかを判断し、ゲームが続行している場合には処理はステップS10に戻り、ゲームが終了するまでステップS10〜ステップS20の処理を繰り返す。ゲームが終了すると、CPU30はゲーム処理を終了する。
(実施例2)
図13は、仮想ゲーム空間において飛行機のオブジェクトを操縦して敵の飛行機を撃墜するゲームをプレイ中のゲーム画面例およびプレイヤによるコントローラ7の操作例を示している。
実施例1と同様に、オブジェクトOb2は、コントローラ7による画面上の指示位置に表示され、その指示位置は、コントローラ7に設けられた撮像情報演算部35において算出された、撮像画像内における撮像対象(マーカ8aおよび8b)の位置に基づいて決定される。
また、オブジェクトOb2の傾き(機体の中心軸周りの傾き)は、コントローラ7のZ軸周りの傾き(基準姿勢からの回転角度)と同じ傾きとなる。コントローラ7のZ軸周りの傾きは、実施例1と同様に、コントローラ7に設けられた加速度センサ37のX軸出力値およびY軸出力値に基づいて判定される。
また、本実施例では、図14に示すように、コントローラ7のX軸周りの傾きに応じて、機首が上下動する方向にオブジェクトOb2の傾きが変化する。コントローラ7のX軸周りの傾き(基準姿勢からの回転角度)は、コントローラ7に設けられた加速度センサ37のY軸出力値およびZ軸出力値に基づいて判定される。
さらに、本実施例では、図15に示すように、プレイヤは、コントローラ7を画面に近付けたり遠ざけたりすることによって、仮想ゲーム空間におけるオブジェクトOb2の画面奥行方向の位置を変化させることができる。コントローラ7と画面の間の距離の変化は、図9に示した通り、撮像画像内における2つの撮像対象(マーカ8aおよび8b)の間の距離の変化から検出することができる。
以上のように、本実施例のゲームでは、プレイヤはコントローラ7を動かすことによって、仮想ゲーム空間におけるオブジェクトOb2の位置を3次元的に自由に変化させることができると同時に、オブジェクトOb2の姿勢も3次元的に自由に変化させることができる。よって、例えば、自機の右前方にいる敵からのミサイルを画面右手前方向に移動してかわしながら、同時に自機の上前方の敵を射撃するというような、非常に複雑な移動制御も容易に可能となる。
(実施例3)
図16は、仮想ゲーム空間において一人称視点で射撃を行うゲームをプレイ中のゲーム画面例およびプレイヤによるコントローラ7の操作例を示している。
本実施例では、図16に示すように、コントローラ7のX軸周りの傾きに応じて、仮想ゲーム空間に設置された仮想カメラVCの向きが変化する。コントローラ7のX軸周りの傾き(基準姿勢からの回転角度)は、実施例2と同様に、コントローラ7に設けられた加速度センサ37のY軸出力値およびZ軸出力値に基づいて判定される。
また、本実施例では、コントローラ7による仮想ゲーム空間内の指示位置に、照準マークACが配置される。この「仮想ゲーム空間内の指示位置」は、「画面上の指示位置」に対応する仮想ゲーム空間内の位置のことである。具体的には、「画面上の指示位置」に表示されている仮想ゲーム空間内のオブジェクト(木や風船)の表面位置となる。したがって、仮に「画面上の指示位置」が同一であったとしても、仮想カメラVCの向きが変化すると、それに応じて「仮想ゲーム空間内の指示位置」は変化する。
プレイヤは、コントローラ7を動かすことによって仮想ゲーム空間内の所望のオブジェクトに照準マークを合わせ、コントローラ7に設けられた操作ボタンを押すことによって当該オブジェクトに向かって銃を発砲することができる。
図17Aは、プレイヤが照準マークACを木のオブジェクトに合わせているときのゲーム画面例であり、図17Bは、プレイヤが照準マークACを風船のオブジェクトに合わせているときのゲーム画面例である。なお、照準マークACの大きさが異なるのは、仮想ゲーム空間における仮想カメラVCから照準マークACまでの距離が変化しているからである。
以下、図18のフローチャートを参照して、本実施例におけるゲームプログラムに基づくゲーム装置3のCPU10の処理の流れを説明する。なお、図18のフローチャートでは、プレイヤの指示に基づく銃の発砲処理については省略している。
まずステップS30で、CPU10は、操作データを取得する。この操作データには少なくとも、撮像画像内における撮像対象(マーカ8aおよび8b)の位置と、加速度センサ37のY軸出力値およびZ軸出力値が含まれている。
ステップS32では、加速度センサ37のY軸出力値およびZ軸出力値に基づいて、コントローラ7の姿勢(傾き)を算出する。コントローラ7の傾きの算出方法は前述の通りである。
ステップS34では、ステップS32で算出されたコントローラ7の姿勢に基づいて、仮想ゲーム空間における仮想カメラVCの姿勢を決定する。
ステップS36では、撮像画像内における撮像対象(マーカ8aおよび8b)の位置と、ステップS34で決定された仮想カメラVCの姿勢とに基づいて、仮想ゲーム空間における指示位置(コントローラ7により指示された画面上の位置に対応する仮想ゲーム空間内の位置)を算出する。仮想ゲーム空間における指示位置の算出方法は前述の通りである(図16)。
ステップS38では、ステップS36で算出された仮想ゲーム空間における指示位置に基づいて、仮想ゲーム空間における照準マークACの位置を決定する。
ステップS40では、ステップS34で決定された仮想カメラVCの姿勢と、ステップS38で決定された照準マークACの位置とに基づいて、照準マークACを含むゲーム画像を生成し、モニタ2へ出力する。
ステップS42では、ゲームが終了したかどうかを判断し、ゲームが続行している場合には処理はステップS30に戻り、ゲームが終了するまでステップS30〜ステップS40の処理を繰り返す。ゲームが終了すると、CPU30はゲーム処理を終了する。
以上のように、本実施例によれば、プレイヤは、コントローラ7を動かすことによって、画面に表示されている仮想ゲーム空間内の任意のオブジェクトに照準マークを合わせられ、しかも、仮想カメVCの向きも同時に制御できるので、最初は画面に表示されていなかったオブジェクト(例えば図16の風船)を画面に表示させた上で、そのオブジェクトに照準マークを合わせることができる。よって、画面に表示されている範囲に限らず、コントローラ7によって仮想ゲーム空間内の広い範囲の中から所望の位置を指示することができる。
なお、実施例2と同様に、コントローラ7と画面の間の距離の変化に応じて仮想カメラVCの位置や画角(ズーム倍率)を変化させてもよい。
(実施例4)
図19Aおよび図19Bは、仮想ゲーム空間に設置された2つのドアのドアノブうち、プレイヤが所望のドアノブを回して、そのドアを開けるゲームのゲーム画面例およびプレイヤによるコントローラ7の操作例を示している。
上述の実施例1〜3では、コントローラ7の指示位置を変化させることで、仮想ゲーム空間におけるオブジェクトの位置や照準マークの位置を変化させている。一方、本実施例4では、2つのオブジェクトOb3,Ob4のうち、いずれのオブジェクトを操作対象とするかをコントローラ7によって指示する。
図19Aは、プレイヤがまだいずれのドアノブも指示していない状態(つまりコントローラ7の指示位置がいずれのドアノブの表示位置にも一致していない状態)のゲーム画面を示している。この状態では、たとえプレイヤがコントローラ7をZ軸周りに回転させたとしても、いずれのドアノブも回転せず、当然ながらドアは開かない。
図19Bは、プレイヤが右側のドアノブを指示しつつ(すなわちコントローラ7の指示位置を右側のドアノブの表示位置に一致させつつ)、コントローラ7をZ軸周りに回転させたときのゲーム画面を示している。この場合には、コントローラ7のZ軸周りの回転に伴って右側のドアノブが回転し、右側のドアが開く。
以上のように、本実施例によれば、プレイヤは、コントローラ7を動かすことによって、仮想ゲーム空間内の複数のオブジェクトの中から所望のオブジェクトを操作対象オブジェクトとして選択する操作と、この操作対象オブジェクトの制御とを、容易に行うことができる。
本発明の一実施形態に係るゲーム装置を含むゲームシステムの外観図 ゲーム装置3の機能ブロック図 コントローラ7の上側後方から見た斜視図 コントローラ7を下側前方から見た斜視図 コントローラ7の内部構造を示す図 コントローラ7の内部構造を示す図 コントローラ7の構成を示すブロック図 対象画像を含む撮像画像の一例を示す図 コントローラ7を用いてゲーム操作を行うときの状態を概説する図解図 コントローラ7の位置および/または向きを変化させた場合における撮像画像の変化を示す図 コントローラ7のZ軸周りの傾きを変化させた場合における加速度データのX軸値およびY軸値の変化を示す図 実施例1におけるプレイヤの操作とオブジェクトの位置および姿勢との対応関係を示す図 実施例1におけるゲーム処理の流れを示すフローチャート 実施例2におけるプレイヤの操作とオブジェクトの位置および姿勢との対応関係を示す図 実施例2におけるプレイヤの操作とオブジェクトの姿勢との対応関係を示す図 実施例2におけるプレイヤの操作とオブジェクトの位置との対応関係を示す図 実施例3におけるプレイヤの操作と仮想カメラの向きとの対応関係を示す図 実施例3におけるゲーム画像例 実施例3における他のゲーム画像例 実施例3におけるゲーム処理の流れを示すフローチャート 実施例4における操作対象オブジェクトが選択されていない状態のゲーム画像例 実施例4における操作対象オブジェクトが選択されている状態のゲーム画像例
符号の説明
1 ゲームシステム
2 モニタ
3 ゲーム装置
4 光ディスク
5 外部メモリカード
6 通信ユニット
7 コントローラ
8a,8b マーカ
35 撮像情報演算部
35a 光入射面
37 加速度センサ
38 赤外線フィルタ
39 レンズ
40 撮像素子
41 画像処理回路

Claims (5)

  1. 加速度を検出可能な加速度センサと、所定の撮像対象を撮像するための撮像装置とを備えた入力装置の動きに応じたゲーム処理を行うゲーム装置のコンピュータで実行されるゲームプログラムであって、
    前記撮像装置の撮像画像における前記撮像対象の位置および前記加速度センサが検出する加速度を取得または算出するデータ取得ステップ、
    前記撮像画像における撮像対象の位置から、前記入力装置の動きに伴って変化する指示位置を算出する指示位置算出ステップ、
    前記加速度センサが検出する加速度から前記入力装置の傾きを算出する傾き算出ステップ、
    前記指示位置および前記入力装置の傾きに基づいて所定のゲーム処理を行うゲーム処理ステップ、および
    前記ゲーム処理の結果を反映したゲーム空間を表示装置に表示させる表示制御ステップ、を前記コンピュータに実行させ、
    前記加速度センサは、前記撮像装置の撮像方向に対して垂直な2軸に関する加速度を少なくとも検出可能であり、
    前記傾き算出ステップは、前記加速度センサが検出する前記撮像装置の撮像方向に対して垂直な2軸に関する加速度から、前記撮像装置の撮像方向を軸とした前記入力装置の傾きを算出する撮像方向軸周り傾き算出ステップを含み、
    前記ゲーム処理ステップは、前記指示位置からゲーム空間内の操作対象オブジェクトを決定または操作対象オブジェクトの位置を決定し、前記撮像装置の撮像方向を軸とした前記入力装置の傾きから当該操作対象オブジェクトの姿勢を決定するオブジェクト処理ステップを含む、ゲームプログラム。
  2. 前記撮像対象が、互いに離れて配置された一対の撮像対象であり、
    前記ゲームプログラムは、前記撮像画像における前記一対の撮像対象間の距離から、前記入力装置と前記一対の撮像対象との間の距離を算出する距離算出ステップを前記コンピュータにさらに実行させ、
    前記ゲーム処理ステップでは、前記指示位置および前記入力装置の傾きに加えて、さらに前記入力装置と前記1対の撮像対象との間の距離に基づいて前記ゲーム処理を行う、請求項1に記載のゲームプログラム。
  3. 加速度を検出可能な加速度センサおよび所定の撮像対象を撮像するための撮像装置を備えた入力装置と、
    前記撮像装置の撮像画像における前記撮像対象の位置から前記入力装置の動きに伴って変化する指示位置を算出する指示位置算出手段と、
    前記加速度センサが検出する加速度から前記入力装置の傾きを算出する傾き算出手段と、
    前記指示位置および前記入力装置の傾きに基づいて所定のゲーム処理を行うゲーム処理手段と、
    前記ゲーム処理の結果を反映したゲーム空間を表示装置に表示させる表示制御手段と、を備え、
    前記加速度センサは、前記撮像装置の撮像方向に対して垂直な2軸に関する加速度を少なくとも検出可能であり、
    前記傾き算出手段は、前記加速度センサが検出する前記撮像装置の撮像方向に対して垂直な2軸に関する加速度から、前記撮像装置の撮像方向を軸とした前記入力装置の傾きを算出する撮像方向軸周り傾き算出手段を含み、
    前記ゲーム処理手段は、前記指示位置からゲーム空間内の操作対象オブジェクトを決定または操作対象オブジェクトの位置を決定し、前記撮像装置の撮像方向を軸とした前記入力装置の傾きから当該操作対象オブジェクトの姿勢を決定するオブジェクト処理手段を含む、ゲーム装置。
  4. 前記加速度センサは3軸に関する加速度を検出可能な3軸加速度センサであって、
    前記傾き算出手段は、3次元での傾きを算出する、請求項3に記載のゲーム装置。
  5. 前記撮像対象が、互いに離れて配置された一対の撮像対象であり、
    前記ゲーム装置は、前記撮像画像における前記一対の撮像対象間の距離から、前記入力装置と前記一対の撮像対象との間の距離を算出する距離算出手段をさらに備え、
    前記ゲーム処理手段は、前記指示位置および前記入力装置の傾きに加えて、さらに前記入力装置と前記1対の撮像対象との間の距離に基づいて前記ゲーム処理を行う、請求項3に記載のゲーム装置。
JP2006130832A 2006-05-09 2006-05-09 ゲーム装置およびゲームプログラム Active JP4863761B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006130832A JP4863761B2 (ja) 2006-05-09 2006-05-09 ゲーム装置およびゲームプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006130832A JP4863761B2 (ja) 2006-05-09 2006-05-09 ゲーム装置およびゲームプログラム

Publications (2)

Publication Number Publication Date
JP2007301048A JP2007301048A (ja) 2007-11-22
JP4863761B2 true JP4863761B2 (ja) 2012-01-25

Family

ID=38835518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006130832A Active JP4863761B2 (ja) 2006-05-09 2006-05-09 ゲーム装置およびゲームプログラム

Country Status (1)

Country Link
JP (1) JP4863761B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4918376B2 (ja) * 2007-02-23 2012-04-18 任天堂株式会社 情報処理プログラムおよび情報処理装置
CN101314078B (zh) * 2008-06-06 2012-05-23 晶翔微系统股份有限公司 模拟操作装置与应用于其上的操作方法
JP5376874B2 (ja) 2008-09-05 2013-12-25 任天堂株式会社 画像処理プログラムおよび画像処理装置
JP4936479B2 (ja) 2009-03-26 2012-05-23 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP5627973B2 (ja) * 2010-09-24 2014-11-19 任天堂株式会社 ゲーム処理をするためのプログラム、装置、システムおよび方法
EP2497547B1 (en) 2011-03-08 2018-06-27 Nintendo Co., Ltd. Information processing program, information processing apparatus, information processing system, and information processing method
JP6246991B2 (ja) * 2011-06-01 2017-12-13 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
EP2497543A3 (en) 2011-03-08 2012-10-03 Nintendo Co., Ltd. Information processing program, information processing system, and information processing method
US9561443B2 (en) 2011-03-08 2017-02-07 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method
US9539511B2 (en) 2011-03-08 2017-01-10 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for operating objects in a virtual world based on orientation data related to an orientation of a device
US9925464B2 (en) 2011-03-08 2018-03-27 Nintendo Co., Ltd. Computer-readable storage medium, information processing system, and information processing method for displaying an image on a display device using attitude data of a display device
JP5792971B2 (ja) 2011-03-08 2015-10-14 任天堂株式会社 情報処理システム、情報処理プログラム、および情報処理方法
CN102279647A (zh) * 2011-06-20 2011-12-14 中兴通讯股份有限公司 一种移动终端及其实现光标移动的方法
JP6875261B2 (ja) 2017-11-30 2021-05-19 株式会社スクウェア・エニックス ビデオゲーム処理プログラム、ビデオゲーム処理方法、及びビデオゲーム処理システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3086827B2 (ja) * 1992-12-28 2000-09-11 株式会社セガ・エンタープライゼス コントロールキー装置
JP3262677B2 (ja) * 1994-05-02 2002-03-04 株式会社ワコム 情報入力装置
JP4120017B2 (ja) * 1997-01-30 2008-07-16 株式会社セガ 入力装置およびゲーム処理装置、その方法
JP2000148380A (ja) * 1998-11-17 2000-05-26 Mitsumi Electric Co Ltd コントローラー
JP2002298160A (ja) * 2001-03-29 2002-10-11 Namco Ltd 携帯型画像生成装置、プログラム及び情報記憶媒体
JP3841658B2 (ja) * 2001-09-14 2006-11-01 株式会社タイトー 対戦ゲーム機
JP3910487B2 (ja) * 2002-05-17 2007-04-25 任天堂株式会社 ゲームシステムおよびゲームプログラム

Also Published As

Publication number Publication date
JP2007301048A (ja) 2007-11-22

Similar Documents

Publication Publication Date Title
JP4863761B2 (ja) ゲーム装置およびゲームプログラム
US9199166B2 (en) Game system with virtual camera controlled by pointing device
JP4907129B2 (ja) 情報処理システムおよびプログラム
JP4260814B2 (ja) ゲーム装置およびゲームプログラム
JP5075330B2 (ja) 情報処理プログラム
JP4989105B2 (ja) ゲームコントローラ
JP5643549B2 (ja) 画像処理システム、画像処理プログラム、画像処理装置および画像処理方法
JP4773170B2 (ja) ゲームプログラムおよびゲームシステム
US8858336B2 (en) Game apparatus having general-purpose remote control function
US7815508B2 (en) Game device and storage medium storing game program
JP2009064449A (ja) コントローラおよびコンピュータシステム
JP2007256100A (ja) 位置算出装置、位置算出プログラム、ゲーム装置、およびゲームプログラム
JP2007236697A (ja) 画像処理装置および画像処理プログラム
JP5037842B2 (ja) 情報処理装置およびプログラム
JP2007300985A (ja) ゲームプログラムおよびゲーム装置
JP4917347B2 (ja) ゲーム装置およびゲームプログラム
JP2010142404A (ja) ゲームプログラムおよびゲーム装置
JP5013511B2 (ja) ゲームプログラムおよびゲーム装置
JP2008253561A (ja) プログラムおよびコンピュータ
JP5945297B2 (ja) ゲームプログラムおよびゲーム装置
JP5350612B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム処理方法
JP5735866B2 (ja) 情報処理システムおよびプログラム
JP2008307409A (ja) 情報処理装置および情報処理プログラム
JP5331259B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP5357998B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110727

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4863761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250