以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係る情報処理システム10の全体構成の一例を示す図である。図1に示すように、本実施形態に係る情報処理システム10は、例えば、情報処理装置12(12−1、12−2、・・・、12−n)、サーバ14、を含んで構成される。情報処理装置12、サーバ14は、インターネットなどのコンピュータネットワーク16に接続されており、互いに通信可能となっている。
本実施形態に係るサーバ14は、例えば、情報処理装置12間のデータのやりとりを中継するサーバコンピュータである。
図2Aは、本実施形態に係る情報処理装置12の外観の一例を示す正面図である。図2Bは、図2Aに示す情報処理装置12の外観の一例を示す背面図である。図3は、図2A及び図2Bに示す情報処理装置12のハードウェア構成の一例を示す構成図である。本実施形態に係る情報処理装置12は、例えば携帯型ゲーム機等の可搬型のデバイスであるものとする。
本実施形態に係る情報処理装置12の筐体は、全体として平板状の形状をしている。以下では、筐体の横方向(幅方向)をX1軸方向、縦方向(高さ方向)をY1軸方向とし、厚さ方向(奥行き方向)をZ1軸方向とする。また、本実施形態では、筐体の正面から見て左から右へ向かう方向をX1軸正方向、筐体の正面から見て下から上へ向かう方向をY1軸正方向、筐体の正面から背面へ向かう方向をZ1軸正方向とする。図2A、図2B及び図3に示すように、本実施形態に係る情報処理装置12は、制御部20、記憶部22、通信部24、画像処理部26、表示部28、タッチセンサ30、操作キー32、撮像部34、測位部36、センサ部38、などを含んで構成される。これらの要素は、バスを介して接続される。
制御部20は、例えばCPU等であって、記憶部22に格納されているプログラムに従って、各種の情報処理を実行する。
記憶部22は、例えばRAMやROM等のメモリ素子などであって、制御部20によって実行されるプログラムや各種のデータを格納する。
通信部24は、制御部20から入力される指示に従って、他の情報処理装置12や、インターネット上のサーバ14などへ情報を送信する。また、通信部24は、受信する情報を制御部20に出力する。本実施形態に係る通信部24は、例えば、携帯電話網を利用したデータ通信を行うための携帯電話通信モジュール、無線LANを利用したデータ通信を行うための無線LANモジュール、を含む。
画像処理部26は、例えばGPUとフレームバッファメモリとを含んで構成され、制御部20が出力する指示に従って、表示部28に表示する画像を描画する。具体例として、画像処理部26は表示部28の表示領域に対応したフレームバッファメモリを備え、GPUは、制御部20からの指示に従って、所定時間おきにこのフレームバッファメモリに対して画像を書き込む。そして、このフレームバッファメモリに書き込まれた画像が、所定のタイミングでビデオ信号に変換されて、表示部28に表示される。
表示部28は、例えば、液晶表示パネルや有機EL表示パネル等、各種の画像表示デバイスである。
タッチセンサ30は、所定の時間間隔で、検出面上における物体(例えば、指等)の接触を順次検出するセンサである。本実施形態に係る情報処理装置12は、2つのタッチセンサ30(正面タッチセンサ30a、及び、背面タッチセンサ30b)を備えている。本実施形態に係る情報処理装置12の筐体の正面には、表示部28と正面タッチセンサ30aとが一体となったタッチパネル40が設けられている。本実施形態に係るタッチセンサ30は、例えば静電容量式や感圧式、光学式など、検出面上における物体の位置を検出可能なデバイスであれば、どのような方式のものであってもよい。
操作キー32は、ユーザが情報処理装置12に対して行う操作入力に用いる操作部の一種である。本実施形態に係る操作キー32には、例えば、方向キー32a、ボタン群32b、アナログスティック32c、Lボタン32d、Rボタン32eなどが含まれる。方向キー32aは筐体正面左側に配置されている。ボタン群32bは筐体正面右側に配置されている。アナログスティック32cは筐体正面の左右両側に2つ配置されている。Lボタン32dは、筐体の正面から見て筐体の上側面左側に配置されている。Rボタン32eは、筐体の正面から見て筐体の上側面右側に配置されている。
撮像部34は、被写体を撮像した画像を情報処理装置12に出力するカメラである。本実施形態に係る情報処理装置12には、2つの撮像部34が設けられている。以下、筐体の正面に設けられている撮像部34を正面撮像部34aと呼び、筐体の背面に設けられている撮像部34を背面撮像部34bと呼ぶこととする。
測位部36は、GPS(Global Positioning System)を利用して情報処理装置12の位置(緯度及び経度)を測定するためのデバイスである。
センサ部38は、情報処理装置12の姿勢を検出するデバイスである。本実施形態に係るセンサ部38は、例えば、3軸ジャイロセンサ、3軸モーションセンサ(3軸加速度センサ)、電子コンパス、を含んでいる。本実施形態に係るセンサ部38は、情報処理装置12の姿勢の変化はもちろん、情報処理装置12が向く方角も特定可能である。
本実施形態では、サーバ14を介して、情報処理装置12間で様々なデータの送受信が行われる。そして、本実施形態では、センサ部38の検出結果に基づいて特定される情報処理装置12の姿勢に基づいて、送信されるデータ、及び、当該データの送信先の情報処理装置12が決定される。
以下、本実施形態に係る情報処理装置12間で行われるデータの送受信の一例として、情報処理装置12のユーザがプレイヤとして参加するシューティングゲームにおける、情報処理装置12間のデータの送受信について説明する。当該シューティングゲームでは複数のプレイヤが互いに仮想的なミサイルを撃ち合って、受けたダメージが最も小さいプレイヤが勝者となる。
本実施形態では、3人以上のプレイヤがシューティングゲームに参加することとする。以下、これらのプレイヤのうちの第1のプレイヤが、他のプレイヤである第2のプレイヤに仮想的なミサイルを発射する場面について説明する。以下、第1のプレイヤは第1の情報処理装置12−1を利用しており、第2のプレイヤは第2の情報処理装置12−2を利用していることとする。
本実施形態では、シューティングゲームに参加しているプレイヤの情報処理装置12の表示部28には、図4に例示するプレイ画像50−1が表示される。図4は、第1の情報処理装置12−1の表示部28に表示されるプレイ画像50−1の一例を示す図である。そして、本実施形態では、表示部28に表示されるプレイ画像50−1は、所定時間間隔(例えば、1/60秒間隔)で更新される。
プレイ画像50−1には、背面撮像部34bにより撮像された図5に例示する撮像画像52が背景として含まれる。本実施形態では、背面撮像部34bは所定時間間隔(例えば、1/60秒間隔)で撮像画像52を生成する。本実施形態では、プレイ画像50−1の更新間隔と撮像画像52の生成間隔は一致しており、最新のプレイ画像50−1には生成日時が最も新しい撮像画像52が含まれることとなる。
また、プレイ画像50−1には、第1のプレイヤに対応付けられる3次元仮想空間内に配置された視点Vpから、視線方向Vdを見た様子を表す画像も含まれる(図6参照)。図6は、第1のプレイヤに対応付けられる仮想空間の一例を示す図である。本実施形態に係る仮想空間内におけるX2−Y2平面に平行な向きは、実空間内における方角と対応付けられる。図6に示す仮想空間では、X2軸正方向が実空間における北の方角に対応し、X2軸負方向が実空間における南の方角に対応する。また、図6に示す仮想空間では、Y2軸正方向が実空間における東の方角に対応し、Y2軸負方向が実空間における西の方角に対応する。また、図6に示す仮想空間では、Z2軸正方向が実空間における鉛直上向きに対応し、Z2軸負方向が実空間における鉛直下向きに対応する。
本実施形態では、仮想空間内に、シューティングゲームに参加するプレイヤのそれぞれに対応する、X2−Y2平面上の位置が設定される。図6には、第1のプレイヤに対応する位置P1と第2のプレイヤに対応する位置P2が示されている。本実施形態では、プレイヤに対応する仮想空間内の位置は、当該プレイヤが利用する情報処理装置12の実空間内における位置に対応付けられる。例えば本実施形態では、実空間内における第1の情報処理装置12−1の位置と第2の情報処理装置12−2の位置とを最短距離で結んだ際における、第1の情報処理装置12−1の位置から見た第2の情報処理装置12−2の位置に向かう向きの方角が特定される。そして、当該方角が、仮想空間内における位置P1から位置P2に向かう向きに対応付けられている方角と略一致するよう、位置P1及び位置P2が設定される。本実施形態では、情報処理装置12の実空間内における位置は、当該情報処理装置12が備える測位部36の測位結果に基づいて特定される。
そして、プレイヤに対応付けられる仮想空間においては、当該プレイヤに対応する位置に視点Vpが配置され、他のプレイヤに対応する位置にはターゲットプレイヤオブジェクトTPOが配置されることとなる。図6には第1のプレイヤに対応付けられる仮想空間が示されているので、第1のプレイヤに対応する位置P1に視点Vpが配置され、第2のプレイヤに対応する位置P2に第2のプレイヤに対応するターゲットプレイヤオブジェクトTPOが配置される。
ターゲットプレイヤオブジェクトTPOは、プレイヤのアイコン画像が貼り付けられた平板状のポリゴンモデルである。ターゲットプレイヤオブジェクトTPOは、その正面が視点Vpを向くよう配置される。また、本実施形態では、第2のプレイヤに対応する位置P2からZ2軸正方向に沿って所定の距離だけ離れた位置に、第2のプレイヤのターゲットプレイヤオブジェクトTPOが配置される。
本実施形態では、視線方向Vdは、実空間内における情報処理装置12の姿勢に基づいて決定される。当該姿勢は、情報処理装置12が備えるセンサ部38の検出結果に基づいて特定される。例えば、図6に示す視線方向Vdは、第1の情報処理装置の12−1の姿勢に基づいて決定される。本実施形態では、センサ部38は、所定時間間隔(例えば、1/60秒間隔)で第1の情報処理装置12−1の姿勢を検出する。そして、視線方向Vdは、第1の情報処理装置12−1の姿勢が検出される度に、検出された姿勢に応じたものに更新される。
図7に、本実施形態に係る情報処理装置12の姿勢と仮想空間内に配置された視点Vpの視線方向Vdとの関係の一例を示す。本実施形態では、視線方向Vdは、互いに直交する3つの向きのそれぞれから見た場合の、基準となる向きと視線方向Vdとのなす角の組合せで表現される。本実施形態では、視線方向Vdは、例えば、ヨー角θy、ピッチ角θp、ロール角θrの組合せで表現される。例えば、視線方向Vdのヨー角θyは、Z2軸負方向に沿って見た際の、X2軸正方向と視線方向Vdとのなす角に相当する。ここでは、Z2軸負方向に沿って見た場合のX2軸正方向を基準として反時計回りを正とする。また、視線方向Vdのピッチ角θpは、Y2軸負方向に沿って見た際の、X2軸正方向と視線方向Vdとのなす角に相当する。ここでは、Y2軸負方向に沿って見た場合のX2軸正方向を基準として反時計回りを正とする。また、視線方向Vdのロール角θrは、X2軸正方向に沿って見た際の、Z2軸正方向と視線方向Vdとのなす角に相当する。ここでは、X2軸正方向に沿って見た場合のZ2軸正方向を基準として反時計回りを正とする。
そして、本実施形態では、情報処理装置12の姿勢に基づいて、ヨー角θy、ピッチ角θp、ロール角θrの組合せが一意に決定されることとなる。本実施形態では、例えば、互いに直交する3つの向きのそれぞれから見た場合の、基準となる向きと背面撮像部34bの撮像方向である情報処理装置12のZ1軸正方向とのなす角が、それぞれ、上述のヨー角θy、ピッチ角θp、ロール角θrとして設定される。より具体的には、例えば、鉛直下向きに沿って見た際の水平方向北向きと情報処理装置12のZ1軸正方向とのなす角が、視線方向Vdのヨー角θyとして設定される。ここでは、鉛直下向きに沿って見た場合の水平方向北向きを基準として反時計回りを正とする。そして、例えば、東から西の方角を見た際の水平方向北向きと情報処理装置12のZ1軸正方向とのなす角が、視線方向Vdのピッチ角θpとして設定される。ここでは、東から西の方角を見た場合の水平方向北向きを基準として反時計回りを正とする。そして、例えば、南から北の方角を見た際の鉛直上向きと情報処理装置12のZ1軸正方向とのなす角が、視線方向Vdのロール角θrとして設定される。ここでは、南から北の方角を見た場合の鉛直上向きを基準として反時計回りを正とする。このようにして、本実施形態では、背面撮像部34bの撮像方向の方角が、仮想空間内における視線方向Vdに対応付けられている方角と略一致することとなる。例えば、情報処理装置12のZ1軸正方向が水平方向北向きである場合は、仮想空間内における視線方向VdがX2軸正方向となる。
そして、本実施形態では、視点Vpの位置及び視線方向Vdに基づいて、無底四角錐形状である視野範囲Vvが決定される。そして、視野範囲Vv内にターゲットプレイヤオブジェクトTPOが存在する場合は、図4に示すように、プレイ画像50−1にターゲットプレイヤオブジェクトTPOの像が含まれることとなる。この場合、当該ターゲットプレイヤオブジェクトTPOに対応するプレイヤの名称、当該ターゲットプレイヤオブジェクトTPOに対応するプレイヤが利用する情報処理装置12までの距離を示す情報も表示される。本実施形態では、プレイ画像50−1の更新間隔と視線方向Vdの更新間隔は一致している。そして、最新のプレイ画像50−1には、最新の視線方向Vdから仮想空間を見た様子を表す画像が含まれることとなる。
また、本実施形態では、上述のように、実空間内における第1の情報処理装置12−1の位置から第2の情報処理装置12−2の位置に向かう向きの方角が、仮想空間内における位置P1から位置P2に向かう向きに対応付けられている方角と略一致する。そして、上述のように、背面撮像部34bの撮像方向の方角が、仮想空間内における視線方向Vdに対応付けられている方角と略一致する。そのため、第1の情報処理装置12−1の位置から第2の情報処理装置12−2の位置に向かう向きに背面撮像部34bが撮像した撮像画像52を含むプレイ画像50−1には、第2のプレイヤのターゲットプレイヤオブジェクトTPOの像が含まれることとなる。
また、図4に示すように、プレイ画像50−1には、ミサイルの画像MP、スコープの画像SP、発射台の画像LPが含まれる。ミサイルの画像MPにはそれぞれ攻撃力を示す数字が含まれている。ここで、第1のプレイヤは、操作キー32やタッチセンサ30を操作することで発射の対象となるミサイルを選択することができる。図4に示すプレイ画像50−1には、攻撃力が3であるミサイルの画像が選択されている状態が示されている。また、プレイ画像50−1内における画像SPの位置は、情報処理装置12の姿勢が変化しても変化しない。以下、スコープの画像SPの内側である円形領域をロックオン領域と呼ぶこととする。
本実施形態では、第2のプレイヤに対応するターゲットプレイヤオブジェクトTPOの像の少なくとも一部がロックオン領域内に表示されている際に、第1のプレイヤが所定のロックオン操作を行うと、当該ターゲットプレイヤオブジェクトTPOがロックオンされる。本実施形態では、例えば、Lボタン32dが押下された状態が所定時間以上継続すると、ターゲットプレイヤオブジェクトTPOがロックオンされる。図8に、第2のプレイヤに対応するターゲットプレイヤオブジェクトTPOがロックオンされた際に表示されるプレイ画像50−1の一例を示す。また、図9に、第2のプレイヤに対応するターゲットプレイヤオブジェクトTPOがロックオンされた際の、第1のプレイヤに対応付けられる仮想空間の一例を示す。図9に示すように、ターゲットプレイヤオブジェクトTPOがロックオンされると、発射されることとなるミサイルの軌道が表現された半透明の軌道オブジェクトTOが仮想空間内に配置される。本実施形態では、位置P1が当該軌道の始点の位置として設定され、位置P2が当該軌道の終点の位置として設定される。
本実施形態では、Lボタン32dが押下されている間は、ターゲットプレイヤオブジェクトTPOがロックオンされた状態が継続される。そして、ターゲットプレイヤオブジェクトTPOがロックオンされた状態で、第1のプレイヤが第1の情報処理装置12−1の姿勢を変えると、始点の位置と終点の位置が維持された状態で、軌道オブジェクトTOにより表されるミサイルの軌道が変化する。図10は、ミサイルの軌道が変化した後のプレイ画像50−1の一例を示す図である。本実施形態では、情報処理装置12の姿勢に基づいて特定される視線方向Vdがミサイルの発射方向となる。また、本実施形態では、ミサイルの軌道は、情報処理装置12の姿勢に基づいて特定されるヨー角θyの値とピッチ角θpの値との組合せに基づいて一意に決定されるようになっている。
そして、第1のプレイヤがミサイルの発射操作(本実施形態では、例えば、Rボタン32eの押下)を行うと、第1の情報処理装置12−1は、当該ミサイルに対応付けられるミサイルデータを、第2の情報処理装置12−2に宛てて送信する(図11参照)。図11は、ミサイルデータのデータ構造の一例を示す図である。当該ミサイルデータは、サーバ14を経由して第2の情報処理装置12−2に送信されることとなる。図11に示すように、ミサイルデータには、発射プレイヤID、ターゲットプレイヤID、攻撃力データ、軌道データ、が含まれる。発射プレイヤIDは、ミサイルの発射操作を行ったプレイヤの識別情報である。ここでは、発射プレイヤIDとして第1のプレイヤの識別情報が設定される。ターゲットプレイヤIDは、ミサイルの到達目標であるターゲットプレイヤオブジェクトTPOに対応付けられるプレイヤの識別情報である。ここでは、ターゲットプレイヤIDとして第2のプレイヤの識別情報が設定される。攻撃力データは、当該ミサイルの攻撃力を示すデータである。例えば、攻撃力が3であるミサイルが発射された場合は、攻撃力データの値として3が設定される。軌道データは、当該発射操作の際の情報処理装置12の姿勢に基づいて決定される、当該ミサイルの軌道に対応付けられるデータである。本実施形態では、ミサイルデータに含まれる軌道データの値として、ミサイルの発射操作の際の情報処理装置12の姿勢に基づいて特定される視線方向Vdのヨー角θyの値とピッチ角θpの値の組合せが設定される。
そして、第1の情報処理装置12−1の表示部28には、発射台からミサイルが発射された様子が表示される。そして、仮想空間には、上述の軌道データの値として設定されるヨー角θyの値とピッチ角θpの値の組合せに基づいて決定される軌道に沿った位置に当該ミサイルに対応付けられるミサイルオブジェクトMOが配置される。図12は、ミサイルオブジェクトMOが配置された、第1のプレイヤに対応付けられる仮想空間の一例を示す図である。本実施形態では、発射操作の際のミサイルの決定された軌道に沿った、その始点から所定の長さだけ離れた位置にミサイルオブジェクトMOが配置される。図13は、ミサイルが発射された後に第1の情報処理装置12−1の表示部28に表示されるプレイ画像50−1の一例を示す図である。図13に示すプレイ画像50−1には、ミサイルオブジェクトMOの像が示されている。本実施形態では、仮想空間内に配置されたミサイルオブジェクトMOは、決定された軌道に沿って所定速度で位置P2に向かって仮想空間内を移動することとなる。
以上のようにして、本実施形態では、ロックオン操作の際の情報処理装置12の姿勢に基づいて、ミサイルデータの送信先の情報処理装置12が決定される。そして、その後に行われる発射操作の際の情報処理装置12の姿勢に基づいて、ミサイルデータに含まれる軌道データの値が決定される。そして、決定された送信先の情報処理装置12に宛てて、当該ミサイルデータが送信される。このようにして、本実施形態では、センサ部38の検出結果に基づいて、送信されるミサイルデータに含まれる軌道データの値及び当該ミサイルデータの送信先の情報処理装置12が決定できることとなる。
第2の情報処理装置12−2が上述のミサイルデータを受信すると、受信したミサイルデータに基づいて、当該ミサイルデータに対応付けられるミサイルオブジェクトMOの軌道が決定される。そして、図14に示す、第2のプレイヤに対応付けられる3次元仮想空間に、当該仮想空間内に配置された視点Vpに向かってくるミサイルオブジェクトMOが配置されることとなる。当該ミサイルオブジェクトMOを、以下、ターゲットミサイルオブジェクトTMOと呼ぶこととする。
本実施形態では、実空間内における第2の情報処理装置12−2の位置と第1の情報処理装置12−1の位置とを最短距離で結んだ際における、第2の情報処理装置12−2の位置から見た第1の情報処理装置12−1の位置に向かう向きの方角が特定される。そして、当該方角が、図14に示す仮想空間内における位置P2から位置P1に向かう向きに対応付けられている方角と略一致するよう、位置P2及び位置P1が設定される。なお、本実施形態では、図14に示す、第2のプレイヤに対応付けられる仮想空間に設定される位置P1、位置P2の座標値は、それぞれ、図6に示す、第1のプレイヤに対応付けられる仮想空間に設定される位置P1、位置P2の座標値と同一である。図14には第2のプレイヤに対応付けられる仮想空間が示されているので、第2のプレイヤに対応する位置P2に視点Vpが配置され、第1のプレイヤに対応する位置P1に第1のプレイヤに対応するターゲットプレイヤオブジェクトTPOが配置される。そして、受信したミサイルデータに含まれる発射プレイヤIDに対応する位置(ここでは位置P1)が、ターゲットミサイルオブジェクトTMOの始点の位置として設定される。また、当該ミサイルデータに含まれるターゲットプレイヤIDに対応する位置(ここでは位置P2)が、ターゲットミサイルオブジェクトTMOの終点の位置として設定される。そして、受信したミサイルデータに含まれる軌道データの値(ヨー角θyの値とピッチ角θpの値との組合せ)に基づいて、ターゲットミサイルオブジェクトTMOの軌道は決定される。ターゲットミサイルオブジェクトTMOは、決定された軌道に沿った、その始点から所定の長さだけ離れた位置に配置される。そして、ターゲットミサイルオブジェクトTMOは、決定された軌道に沿って所定速度で位置P2に向かって仮想空間内を移動することとなる。
本実施形態では、位置P1から位置P2を見た際のミサイルオブジェクトMOが発射する方向と、位置P2から位置P1を見た際の当該ミサイルオブジェクトMOが向かってくる方向とは、左右反転の関係にある。例えば、ミサイルオブジェクトMOが位置P1から左上に向かって発射された場合は、当該ミサイルオブジェクトMOは、第2のプレイヤに対応付けられる仮想空間内に配置された視点Vpの位置P2から見て右上から向かってくることとなる。
本実施形態では、上述のように、実空間内における第2の情報処理装置12−2の姿勢に基づいて、図14に示す仮想空間内に配置された視点Vpの視線方向Vdが決定される。そして、当該視点Vpの位置及び視線方向Vdに基づいて、視野範囲Vvが決定される。そして、視野範囲Vv内にターゲットミサイルオブジェクトTMOが存在する場合は、第2の情報処理装置12−2の表示部28に表示されるプレイ画像50−2にターゲットミサイルオブジェクトTMOの像が含まれることとなる。図15は、ターゲットミサイルオブジェクトTMOが仮想空間に配置された後に第2の情報処理装置12−2の表示部28に表示されるプレイ画像50−2の一例を示す図である。図15に示すプレイ画像50−2には、ターゲットミサイルオブジェクトTMOの像が含まれている。この場合、ターゲットミサイルオブジェクトTMOの攻撃力を示す情報も表示される。また、図15に示すプレイ画像50−2には、ミサイルの画像MP’、スコープの画像SP’、発射台の画像LP’が含まれる。
ここで、ターゲットミサイルオブジェクトTMOの像の少なくとも一部がロックオン領域内に表示されている際に、第2のプレイヤが所定のロックオン操作を行うと、当該ターゲットミサイルオブジェクトTMOがロックオンされる。図16は、ターゲットミサイルオブジェクトTMOがロックオンされた際のプレイ画像50−2の一例を示す図である。本実施形態では、第2のプレイヤは、ターゲットミサイルオブジェクトTMOをロックオンするためには、視線方向VdがターゲットミサイルオブジェクトTMOを向くよう、第2の情報処理装置12−2の姿勢をうまく調整する必要がある。
そして、第2のプレイヤがミサイルの発射操作を行うと、第2の情報処理装置12−2の表示部28に発射台からミサイルが発射された様子が表示される。そして、仮想空間には、発射されたミサイルに対応するミサイルオブジェクトMOが配置される。当該ミサイルオブジェクトMOを、以下、迎撃ミサイルオブジェクトIMOと呼ぶこととする。図17に、ターゲットミサイルオブジェクトTMO及び迎撃ミサイルオブジェクトIMOが配置された、第2のプレイヤに対応付けられる仮想空間の一例を示す。迎撃ミサイルオブジェクトIMOは、ターゲットミサイルオブジェクトTMOの軌道に沿った、その終点から所定の長さだけ離れた位置に配置される。また、迎撃ミサイルオブジェクトIMOは、ターゲットミサイルオブジェクトTMOとは逆の向きに配置される。そして、本実施形態では、迎撃ミサイルオブジェクトIMOは、ターゲットミサイルオブジェクトTMOの軌道に沿って、ターゲットミサイルオブジェクトTMOの進行方向とは逆方向に、所定速度で仮想空間内を移動することとなる。
ここで、ターゲットミサイルオブジェクトTMOと迎撃ミサイルオブジェクトIMOとが衝突したとする。この場合、ターゲットミサイルオブジェクトTMOの攻撃力よりも迎撃ミサイルオブジェクトIMOの攻撃力が大きい場合は、当該2つのミサイルオブジェクトMOは、両方とも仮想空間から消去される。すなわちこの場合は、第1のプレイヤから発射されたミサイルオブジェクトMOを第2のプレイヤは迎撃できたこととなる。ターゲットミサイルオブジェクトTMOの攻撃力よりも迎撃ミサイルオブジェクトIMOの攻撃力が小さい場合は、迎撃ミサイルオブジェクトIMOが仮想空間から消去される。そして、ターゲットミサイルオブジェクトTMOの攻撃力は迎撃ミサイルオブジェクトIMOの攻撃力だけ減少する。ターゲットミサイルオブジェクトTMOの攻撃力と迎撃ミサイルオブジェクトIMOの攻撃力とが同じである場合は、ターゲットミサイルオブジェクトTMOが仮想空間から消去される。そして、迎撃ミサイルオブジェクトIMOの攻撃力が、ターゲットミサイルオブジェクトTMOに1を足した値となる。
本実施形態では、ミサイルオブジェクトMOがターゲットプレイヤオブジェクトTPOに到達すると、当該ターゲットプレイヤオブジェクトTPOに対応するプレイヤのスコアが当該ミサイルオブジェクトMOの攻撃力を示す値に10倍を乗じた値だけ減点される。そして、ゲームが開始されてから所定時間が経過した際に最もスコアが高かったプレイヤが勝者となる。
本実施形態では、以上のようにして情報処理装置12が備える撮像部34、測位部36、センサ部38を活用することによって、プレイヤが、仮想空間内で繰り広げられているゲームがあたかも実空間内において行われているような感覚を体験できることとなる。
なお、以上の説明では、仮想空間内には位置P1及び位置P2だけが設定されたが、当該シューティングゲームに参加する他のプレイヤに対応する位置も同様にして設定される。ここで、他のプレイヤが利用する情報処理装置12を他の情報処理装置12と呼び、当該他のプレイヤに対応する位置を位置Pxと呼ぶこととする。以下、図6に示す仮想空間内に位置Pxが設定される場合について説明する。この場合、まずは、実空間内における第1の情報処理装置12−1の位置と他の情報処理装置12の位置とを最短距離で結んだ際における、第1の情報処理装置12−1の位置から見た他の情報処理装置12の位置に向かう向きの方角が特定される。そして、当該方角が、図6に示す仮想空間内における位置P1から位置Pxに向かう向きに対応付けられている方角と略一致するよう、図6に示す仮想空間内における位置Pxが設定される。次に、図14に示す仮想空間内に位置Pxが設定される場合について説明する。この場合、実空間内における第2の情報処理装置12−2の位置と他の情報処理装置12の位置とを最短距離で結んだ際における、第2の情報処理装置12−2の位置から見た他の情報処理装置12の位置に向かう向きの方角が特定される。そして、当該方角が、図14に示す仮想空間内における位置P2から位置Pxに向かう向きに対応付けられている方角と略一致するよう、図14に示す仮想空間内における位置Pxが設定される。
本実施形態では、上述したように、情報処理装置12の姿勢に基づいて、ミサイルデータに含まれる軌道データの値及び当該ミサイルデータの送信先となる情報処理装置12が決定される。以下、本実施形態に係る情報処理装置12で行われる、ミサイルデータの生成処理及び送受信処理を中心に説明する。
図18は、本実施形態に係る情報処理装置12で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係る情報処理装置12で、図18に示す機能のすべてが実装される必要はなく、また、図18に示す機能以外の機能が実装されていても構わない。
本実施形態に係る情報処理装置12は、図18に示すように、機能的には、例えば、測位結果取得部60、位置情報送信部62、ターゲット位置情報受信部64、撮像画像取得部66、姿勢特定部68、操作受付部70、ゲーム関連データ記憶部72、ゲーム処理実行部74、ミサイルデータ生成部76、ミサイルデータ送信部78、ミサイルデータ受信部80、を含んでいる。ゲーム関連データ記憶部72は、情報処理装置12の記憶部22を主として実装される。位置情報送信部62、ターゲット位置情報受信部64、ミサイルデータ送信部78、ミサイルデータ受信部80は、情報処理装置12の通信部24を主として実装される。その他の機能は、情報処理装置12の制御部20を主として実装される。
そして、以上の機能は、コンピュータである情報処理装置12にインストールされた、以上の機能に対応する指令を含むプログラムを、情報処理装置12の制御部20で実行することにより実装されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどのコンピュータネットワークを介して情報処理装置12に供給される。
測位結果取得部60は、測位部36の測位結果を取得する。測位結果取得部60は、例えば、測位部36が生成する位置座標データを取得する。本実施形態では、シューティングゲームのゲームプログラムの実行が開始されると、測位部36が、衛星信号(GPS信号)を受信し、当該衛星信号に基づいて位置座標(本実施形態では、緯度及び経度)を示す位置座標データを生成する。そして、測位結果取得部60は、当該位置座標データを取得する。
位置情報送信部62は、測位結果取得部60が取得した位置情報をサーバ14に送信する。本実施形態では、位置情報送信部62は、当該情報処理装置12を利用するプレイヤの識別情報が関連付けられた、当該情報処理装置12の位置座標を示す位置座標データをサーバ14に送信する。サーバ14は、シューティングゲームに参加するすべてのプレイヤについての、当該プレイヤの識別情報に関連付けられた位置座標データを受信して記憶する。
ターゲット位置情報受信部64は、シューティングゲームに参加する他のプレイヤが利用する情報処理装置12の識別情報に関連付けられた位置座標データをサーバ14から受信する。本実施形態では、ターゲット位置情報受信部64は、シューティングゲームのゲームプログラムの実行が開始されると、シューティングゲームに参加する他のプレイヤについての位置座標データの送信要求をサーバ14に送信する。サーバ14は、当該送信要求に応じて、位置座標データを情報処理装置12に送信する。そして、ターゲット位置情報受信部64は、当該位置座標データを受信する。
撮像画像取得部66は、撮像部34が生成する撮像画像52を取得する。撮像画像取得部66は、本実施形態では、所定の時間間隔(例えば1/60秒間隔)で撮像画像52を取得する。
姿勢特定部68は、センサ部38が検出する情報処理装置12の姿勢を特定する。姿勢特定部68は、本実施形態では、特定された姿勢に基づいて、ヨー角θy、ピッチ角θp、及び、ロール角θrを特定する。本実施形態では、所定の時間間隔(例えば1/60秒間隔)でヨー角θy、ピッチ角θp、及び、ロール角θrを特定する。
操作受付部70は、操作キー32から操作信号を受け付けて、入力されている操作キー32を特定する。本実施形態では、操作受付部70は、所定の時間間隔(例えば1/60秒間隔)で、入力されている操作キー32の特定を行う。
ゲーム関連データ記憶部72は、当該シューティングゲームに関連する各種データを記憶する。ゲーム関連データ記憶部72は、例えば、当該情報処理装置12を利用するプレイヤに対応付けられる仮想空間を表すデータ、仮想空間に配置される仮想オブジェクトのデータ、プレイ画像50に含まれる画像、選択中のミサイルの攻撃力の値、などを記憶する。
ゲーム処理実行部74は、上述したような、当該シューティングゲームのプレイに関連する種々の処理を実行する。以下、当該処理を、ゲーム処理と呼ぶ。ゲーム処理実行部74は、例えば、仮想空間の構築、視点Vpや仮想オブジェクトの仮想空間への配置などの処理を実行する。本実施形態では、測位結果取得部60が取得した位置座標データが示す位置座標に対応する位置に視点Vpが配置されることとなる。また、本実施形態では、ターゲット位置情報受信部64が受信する、他のプレイヤの識別情報に関連付けられた位置座標データが示す位置座標に対応する位置に当該プレイヤのターゲットプレイヤオブジェクトTPOが配置されることとなる。また、ゲーム処理実行部74は、ロックオン操作の際の情報処理装置12の姿勢に基づいて、ミサイルデータの送信先となる情報処理装置12に対応付けられるターゲットプレイヤオブジェクトTPOを特定する。また、ゲーム処理実行部74は、その他、仮想空間内のミサイルオブジェクトMOの移動や消去、スコアの減点、プレイ画像50の生成、当該プレイ画像50の表示部28への表示などの処理を実行する。
ミサイルデータ生成部76は、ターゲットプレイヤオブジェクトTPOがロックオンされている状態でミサイルの発射操作を操作受付部70が受け付けた際に、ミサイルデータを生成する。本実施形態では、ミサイルデータ生成部76は、ロックオンされたプレイヤが利用する情報処理装置12をミサイルデータの送信先の装置として決定する。また、ミサイルデータ生成部76は、Rボタン32eが押下されたタイミングに姿勢特定部68に特定された姿勢に基づいて、ミサイルデータに含まれる軌道データの値を決定する。すなわち、本実施形態では、ターゲットプレイヤオブジェクトTPOがロックオンされたタイミングよりも後のタイミングに特定された姿勢に基づいて、軌道データの値が決定されることとなる。
ミサイルデータ送信部78は、ミサイルデータ生成部76が生成したミサイルデータをサーバ14に送信する。サーバ14は、当該ミサイルデータを受信すると、当該ミサイルデータに含まれるターゲットプレイヤIDを特定する。そして、当該ターゲットプレイヤIDに対応するプレイヤの情報処理装置12に当該ミサイルデータを送信する。
ミサイルデータ受信部80は、サーバ14から送信されるミサイルデータを受信する。
ここで、本実施形態に係る情報処理装置12で、所定時間間隔(例えば1/60秒間隔)で行われる処理の流れの一例を、図19に例示するフロー図を参照しながら説明する。
まず、撮像画像取得部66が、撮像部34が取得した撮像画像52を取得する(S101)。そして、姿勢特定部68が、センサ部38の検出結果を取得して、当該検出結果に基づいて、ヨー角θy、ピッチ角θp、及び、ロール角θrを特定する(S102)。そして、操作受付部70が、入力されている操作キー32を特定する(S103)。
そして、ゲーム処理実行部74は、ミサイルデータ受信部80が受信した新たなミサイルデータが存在するか否かを確認する(S104)。存在する場合は(S104:Y)、ゲーム処理実行部74は、当該ミサイルデータに基づいて仮想空間内に軌道を設定する(S105)。そして、ゲーム処理実行部74は、当該軌道に沿った位置にターゲットミサイルオブジェクトTMOを配置する(S106)。
そして、ミサイルデータ生成部76は、ターゲットプレイヤオブジェクトTPOがロックオンされている状態で新たなミサイルの発射操作を操作受付部70が受け付けたか否かを確認する(S107)。S104に示す処理でミサイルデータ受信部80が受信したミサイルデータが存在しないことが確認された場合(S104:N)もS107に示す処理が実行される。そして、新たなミサイルの発射操作を受け付けたことが確認された場合は(S107:Y)、ミサイルデータ生成部76はミサイルデータを生成する(S108)。ここで、当該ミサイルデータに含まれる発射プレイヤIDの値としては、当該情報処理装置12を利用するプレイヤの識別情報が設定される。そして、当該ミサイルデータに含まれるターゲットプレイヤIDの値としては、ロックオンされたターゲットプレイヤオブジェクトTPOに対応するプレイヤの識別情報が設定される。そして、当該ミサイルデータに含まれる攻撃力データの値としては、ゲーム関連データ記憶部72に記憶されている、選択中のミサイルの攻撃力の値が設定される。そして、当該ミサイルデータに含まれる軌道データの値としては、姿勢特定部68が特定したS102に示す処理で特定されたヨー角θyの値とピッチ角θpの値の組合せが設定される。そして、ミサイルデータ送信部78は、S108に示す処理で生成されたミサイルデータをサーバ14に送信する(S109)。
そして、ゲーム処理実行部74は、S101〜S109に示す処理の結果に基づいて特定されるゲーム処理を実行する(S110)。S107に示す処理で新たなミサイルの発射操作を受け付けていないことが確認された場合も(S107:N)、S110に示す処理が実行される。S110に示す処理では、例えば、仮想オブジェクトの仮想空間への配置やプレイ画像50の生成、及び、当該プレイ画像50の表示部28への表示が行われる。
次に、S109に示す処理で第1の情報処理装置12−1からミサイルデータが送信された際に本実施形態に係る情報処理システム10で行われる処理の流れの一例を、図20に例示するフロー図を参照しながら説明する。
まず、サーバ14は、第1の情報処理装置12−1から送信されたミサイルデータを受信する(S201)。そして、サーバ14は、当該ミサイルデータに含まれるターゲットプレイヤIDに対応するプレイヤが利用する情報処理装置12を特定する(S202)。ここでは、第2の情報処理装置12−2が特定されたこととする。そして、サーバ14は、S202に示す処理で特定された情報処理装置12(ここでは第2の情報処理装置12−2)にS201に示す処理で受信したミサイルデータを送信する。S202に示す処理で特定された情報処理装置12(ここでは第2の情報処理装置12−2)は当該ミサイルデータを受信する(S203)。
S203に示す処理でミサイルデータを受信した情報処理装置12は、S105に示す軌道の設定処理及びS106に示すターゲットミサイルオブジェクトTMOの配置処理を実行する。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、本実施形態に係る情報処理装置12間で送受信されるデータはミサイルデータに限定されない。例えば、本実施形態を、情報処理装置12間のメッセージの送受信に応用しても構わない。例えば、Lボタン32dが押下された際の情報処理装置12の姿勢に基づいて、背面撮像部34bの撮像方向に存在する情報処理装置12をメッセージの送信先の情報処理装置12として特定してもよい。そして、その後Rボタン32eが押下されると、そのときの情報処理装置12の姿勢に応じたメッセージが当該送信先の情報処理装置12にメッセージが送信されるようにしてもよい。例えば、上を向いているときは、「久しぶり」というメッセージが送信され、下を向いているときは、「こんにちは」というメッセージが送信されるようにしてもよい。
また、情報処理装置12、サーバ14の役割分担は上述のものに限定されない。また、情報処理装置12やサーバ14が複数の筐体から構成されていてもよい。また、上記の具体的な文字列や図面中の具体的な文字列は例示であり、これらの文字列には限定されない。