(57)【要約】【課題】  ユーザに負担を強いることなく携帯機器に搭載された磁気センサのキャリブレーションを行い、方位検出の精度を確保する。【解決手段】  携帯電話機１及び２は、それぞれのＧＰＳ受信部により検出されたお互いの緯度及び経度をサーバ６を介して受信し、表示部において地図上にその位置を表示する。携帯電話機１のユーザ及び携帯電話機２のユーザが相手の方向に筐体を向け撃つ操作を行うと、筐体の向きに関するデータがサーバ６へ送信され、サーバ６において命中の判定が行われる。このように筐体の向きを変える動作を含む操作によりシューティングゲームが進行する過程で、携帯電話機１及び２はそれぞれ一定時間間隔で磁気センサの検出値を蓄積し、この値から磁気センサの各軸方向の補正値を求め更新する。【選択図】  図１
2006271572.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続されたサーバと携帯機器から構成されるゲームシステムにおいて、
前記サーバは、
地図データと緯度及び経度に対して地図上の位置を対応付ける対応データとを含む地図関連データを記憶する記憶部と、
前記携帯機器へ前記地図関連データ及び標的の緯度及び経度を送信するとともに、前記携帯機器から送信される筐体の緯度及び経度と筐体の方位を含むデータ及び前記地図関連データを用いて前記標的への命中判定を行う制御部と、
を具備し、
前記携帯機器は、
筐体の緯度及び経度を検出するＧＰＳ受信部と、
地磁気の方向を検出する磁気センサと、
前記磁気センサの検出値及び補正値と前記サーバから受信した地図関連データとを記憶する記憶部と、
複数のボタンからなる操作部と、
前記磁気センサの検出値を前記記憶部に蓄積し前記蓄積した検出値から補正値を求めて前記記憶部に記憶させ、前記サーバから前記標的の緯度及び経度を受信したときに前記地図関連データを用いて地図上における前記標的の位置を求め、一定の時間間隔で前記ＧＰＳ受信部が検出した筐体の緯度及び経度を前記サーバへ送信するとともに、前記操作部の所定のボタンが押されたときに前記磁気センサの検出値を前記補正値により補正した値から求めた筐体の方位を含むデータを前記サーバへ送信する制御部と、
前記地図データと前記標的の位置とを表示する表示部と、
を具備することを特徴とするゲームシステム。
【請求項２】
ネットワークに接続されたサーバと携帯機器から構成されるゲームシステムにおける前記携帯機器であって、
筐体の緯度及び経度を検出するＧＰＳ受信部と、
地磁気の方向を検出する磁気センサと、
前記磁気センサの検出値及び補正値と前記サーバから受信した地図関連データとを記憶する記憶部と、
複数のボタンからなる操作部と、
前記磁気センサの検出値を前記記憶部に蓄積し前記蓄積した検出値から補正値を求めて前記記憶部に記憶させ、前記サーバから標的の緯度及び経度を受信したときに前記地図関連データを用いて地図上における前記標的の位置を求め、一定の時間間隔で前記ＧＰＳ受信部が検出した筐体の緯度及び経度を前記サーバへ送信するとともに、前記操作部の所定のボタンが押されたときに前記磁気センサの検出値を前記補正値により補正した値から求めた筐体の方位を含むデータを前記サーバへ送信する制御部と、
前記地図データと前記標的の位置とを表示する表示部と、
を具備することを特徴とする携帯機器。
【請求項３】
ネットワークに接続されたサーバと携帯機器から構成されるゲームシステムにおける前記サーバであって、
地図データと緯度及び経度に対して地図上の位置を対応付ける対応データとを含む地図関連データを記憶する記憶部と、
前記携帯機器へ前記地図関連データ及び標的の緯度及び経度を送信するとともに、前記携帯機器から送信される筐体の緯度及び経度と筐体の方位を含むデータ及び前記地図関連データを用いて前記標的への命中判定を行う制御部と、
を具備することを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シューティングゲーム等に用いて好適なゲームシステム、携帯機器及びサーバに関する。
【背景技術】
【０００２】
携帯電話機等の携帯機器に搭載される磁気センサは、共に搭載されるスピーカや着磁した電子部品の金属パッケージ等から漏れる磁場により方位誤差を生じる。このため、携帯機器の筐体の向きを変えて磁気センサの検出値を取り込み、この検出値から補正値を求めるキャリブレーションが必要となる。
【０００３】
このキャリブレーションは例えば次のように行う。ここで、図３に示すように携帯電話機１において互いに直交するＸ軸、Ｙ軸、及び、これらに垂直で携帯電話機１から手前に伸びる方向にＺ軸が設定され、Ｘ軸磁気センサ、Ｙ軸磁気センサ、Ｚ軸磁気センサがこれらの軸方向の磁界の強さを検出するものとする。
【０００４】
まず、Ｘ軸磁気センサ及びＹ軸磁気センサの補正値を求める。Ｘ軸磁気センサ、Ｙ軸磁気センサの検出値Ｖx、Ｖyは、携帯電話機１の内部に存在する磁場のために、式１及び式２に示すように、Ｘ軸方向またはＹ軸方向の着磁量に相当するｍ、ｎがそれぞれ加算された値となる。ただし、θはパラメータ、Ｒx、Ｒyは定数とする。
Ｖx＝Ｒx×ｃｏｓθ＋ｍ  ・・・式１
Ｖy＝Ｒy×ｓｉｎθ＋ｎ  ・・・式２
【０００５】
地磁気の変動がない場所で着磁していない磁気センサがＸ軸及びＹ軸を含む平面上において１回転すると、磁気センサの検出値は中心座標を（０，０）とする真円又は楕円を描く。以下、磁気センサの検出値によって描かれる円を方位円という。これに対し、着磁した磁気センサがＸ軸及びＹ軸を含む平面上において１回転すると、磁気センサの検出値は、中心座標を（ｍ，ｎ）とする真円又は楕円を描く。したがって、この方位円の中心座標を求め、この中心座標の値を補正値として磁気センサの検出値から減算すると、検出値を補正することができる。
【０００６】
そこで中心座標を求めることが必要となるが、これは次のように求めることができる。磁気センサをＸ軸及びＹ軸を含む平面上において一回転してＸ軸磁気センサ及びＹ軸磁気センサの検出値を取得し、これらの最大値をそれぞれＸmax、Ｙmax、これらの最小値をそれぞれＸmin、Ｙminとする。中心座標（ｍ，ｎ）は式３及び式４によって求めることができる。
ｍ＝（Ｘmax＋Ｘmin）／２  ・・・式３
ｎ＝（Ｙmax＋Ｙmin）／２  ・・・式４
【０００７】
また、Ｚ軸磁気センサの補正値も上記と同様に求めることができる。Ｘ軸磁気センサ、Ｚ軸磁気センサの検出値Ｖx、Ｖzは、上記と同様に式５及び式６に示す値をとる。ただし、φはパラメータ、Ｒx、Ｒzは定数とする。
Ｖx＝Ｒx×ｃｏｓφ＋ｍ  ・・・式５
Ｖz＝Ｒz×ｓｉｎφ＋ｐ  ・・・式６
上記と同様に、磁気センサをＸ軸及びＺ軸を含む平面上において１回転してＸ軸磁気センサ及びＺ軸磁気センサの検出値を取得し、これらの最大値をそれぞれＸmax、Ｚmax、これらの最小値をＸmin、Ｚminとする。中心座標（ｍ，ｐ）のうちｍは式３と同様であり、ｐは式７によって求めることができる。
ｐ＝（Ｚmax＋Ｚmin）／２  ・・・式７
以上で求めたｍ、ｎ、ｐを補正値として、磁気センサの各軸方向の検出値Ｖx、Ｖy、Ｖzからそれぞれ減算すると、携帯電話機１の内部に存在する磁場の影響を除去した値を得ることができる。
【０００８】
携帯機器にはＧＰＳ（Global Positioning System）受信機、磁気検出による方位センサ、加速度検出による傾斜センサ等の多くの電子部品が搭載され、これらを活用した各種機能を備えており、方位検出の精度を確保することが必要とされている。
なお、従来技術として特許文献１及び特許文献２が知られている。
【特許文献１】特開２０００−５４４３号公報
【特許文献２】特開２００１−２６９４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記のような手順をとることは携帯機器のユーザには負担であった。すなわち、磁気センサの着磁状態は常に変動するため、磁気センサが着磁したと思われる度にユーザがキャリブレーションを行う必要があり、例えば、上記のようにしてキャリブレーションを行う場合には、携帯電話機１を平面上において１回転させるという手順を度々行う必要があった。
本発明は、上記の事情を考慮してなされたものであり、その目的は、携帯機器の向きを変える動作を含む操作により進行するゲーム機能を携帯機器に付加することにより、ユーザに負担を強いることなく携帯機器に搭載された磁気センサのキャリブレーションを行い、方位検出の精度を確保し得るゲームシステム、携帯機器及びサーバを提供することである。
【課題を解決するための手段】
【００１０】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、ネットワークに接続されたサーバと携帯機器から構成されるゲームシステムにおいて、前記サーバは、地図データと緯度及び経度に対して地図上の位置を対応付ける対応データとを含む地図関連データを記憶する記憶部と、前記携帯機器へ前記地図関連データ及び標的の緯度及び経度を送信するとともに、前記携帯機器から送信される筐体の緯度及び経度と筐体の方位を含むデータ及び前記地図関連データを用いて前記標的への命中判定を行う制御部と、を具備し、前記携帯機器は、筐体の緯度及び経度を検出するＧＰＳ受信部と、地磁気の方向を検出する磁気センサと、前記磁気センサの検出値及び補正値と前記サーバから受信した地図関連データとを記憶する記憶部と、複数のボタンからなる操作部と、前記磁気センサの検出値を前記記憶部に蓄積し前記蓄積した検出値から補正値を求めて前記記憶部に記憶させ、前記サーバから前記標的の緯度及び経度を受信したときに前記地図関連データを用いて地図上における前記標的の位置を求め、一定の時間間隔で前記ＧＰＳ受信部が検出した筐体の緯度及び経度を前記サーバへ送信するとともに、前記操作部の所定のボタンが押されたときに前記磁気センサの検出値を前記補正値により補正した値から求めた筐体の方位を含むデータを前記サーバへ送信する制御部と、前記地図データと前記標的の位置とを表示する表示部と、を具備することを特徴とするゲームシステムである。
【００１１】
請求項２に記載の発明は、ネットワークに接続されたサーバと携帯機器から構成されるゲームシステムにおける前記携帯機器であって、筐体の緯度及び経度を検出するＧＰＳ受信部と、地磁気の方向を検出する磁気センサと、前記磁気センサの検出値及び補正値と前記サーバから受信した地図関連データとを記憶する記憶部と、複数のボタンからなる操作部と、前記磁気センサの検出値を前記記憶部に蓄積し前記蓄積した検出値から補正値を求めて前記記憶部に記憶させ、前記サーバから標的の緯度及び経度を受信したときに前記地図関連データを用いて地図上における前記標的の位置を求め、一定の時間間隔で前記ＧＰＳ受信部が検出した筐体の緯度及び経度を前記サーバへ送信するとともに、前記操作部の所定のボタンが押されたときに前記磁気センサの検出値を前記補正値により補正した値から求めた筐体の方位を含むデータを前記サーバへ送信する制御部と、前記地図データと前記標的の位置とを表示する表示部と、を具備することを特徴とする携帯機器である。
【００１２】
請求項３に記載の発明は、ネットワークに接続されたサーバと携帯機器から構成されるゲームシステムにおける前記サーバであって、地図データと緯度及び経度に対して地図上の位置を対応付ける対応データとを含む地図関連データを記憶する記憶部と、前記携帯機器へ前記地図関連データ及び標的の緯度及び経度を送信するとともに、前記携帯機器から送信される筐体の緯度及び経度と筐体の方位を含むデータ及び前記地図関連データを用いて前記標的への命中判定を行う制御部と、を具備することを特徴とするサーバである。
【発明の効果】
【００１３】
本発明によれば、ユーザに負担を強いることなくユーザに携帯機器の筐体の向きを変えさせることによってキャリブレーションに必要な磁気センサの検出値を取り込むことができ、この検出値から補正値を求めて更新することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照し、本発明の実施形態について説明する。図１はこの実施形態におけるゲームシステムの構成を示す図である。
図１の携帯電話機１は、図２を参照して後に説明するようにＧＰＳ受信部４０２、磁気センサ部５２０、傾斜センサ部５１０を備え、筐体の位置及向きに関するデータを図１のサーバ６へ送信する。また、サーバ６からゲームの進行に関するデータを受信する。このようなデータの送受信は、基地局３及びネットワーク５を介して行われる。
基地局３は、携帯電話機１と無線で接続し、携帯電話機１とサーバ６との間で送受信されるデータを中継する。
ネットワーク５は、例えば、携帯電話機１とサーバ６がデータ通信を行うことのできるＩＰ（インターネットプロトコル）網である。
【００１５】
サーバ６は、携帯電話機１との間でデータの送受信を行い、ゲームの進行に関する処理を行う。また、ゲームに用いられる地図関連データを記憶する。この地図関連データは、地図データ、緯度及び経度に対して地図上の座標を対応付ける対応データ、座標間の距離とこれに対応する実際の距離の比率を表す縮尺データからなる。この地図データは、ゲームを行うことができる範囲として予め定められた領域であるバトルエリアを含む所定の縮尺の地図のデータであり、実在する地域の地図であるリアルマップであってもよいし、架空の地域の地図であるバーチャルマップであってもよい。また、この地図データには地図上の北をＹ軸方向とし東をＸ座標方向とする座標軸が設けられており、上記の対応データにより、与えられた緯度及び経度に対してこの座標平面における座標が対応付けられる。この地図データには、ユーザの携帯電話機１と標的を結ぶ直線上に存在すると命中の妨げとなる建物その他の障害物も含まれる。
また、サーバ６は、ゲームに参加の登録をしたユーザ毎にそのユーザの携帯電話機１を識別する情報、シューティングゲームにおける得点、所属するグループを選択した場合はそのグループ名を管理する管理テーブルを記憶する。
なお、図１の携帯電話機２、基地局４は、それぞれ携帯電話機１、基地局３と同様である。
【００１６】
図２は、携帯電話機１の構成を表すブロック図である。携帯電話機１は携帯電話機ユニット１−１及び１−２の２つの構成部分からなる折り畳み式となっている。アンテナ２０１は基地局３（図１）との間で電波信号の送受信を行う。
【００１７】
ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）部２０２はアンテナ２０１が受信した受信信号を中間周波数の信号に変換して変復調部２０３へ出力する。また、ＲＦ部２０２は変復調部２０３から入力する送信信号を送信周波数の信号に変調し、アンテナ２０１へ出力する。
【００１８】
変復調部２０３は、ＲＦ部２０２から入力した受信信号の復調処理と、ＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ：符号分割多元接続）部２０４から入力した送信信号の変調処理とを行う。ＣＤＭＡ部２０４は、受信信号の復号化処理、及び、送信信号の符号化処理を行う。
【００１９】
音声処理部２０５は、マイクロホン３０１から入力される音声信号をデジタル信号に変換してＣＤＭＡ部２０４へ出力し、また、ＣＤＭＡ部２０４からデジタルの音声信号を入力してアナログの音声信号に変換し、スピーカ３０２へ出力して発音させる。
【００２０】
磁気センサ部５２０のＸ軸磁気センサ５２１、Ｙ軸磁気センサ５２２、Ｚ軸磁気センサ５２３は、互いに直交するＸ軸、Ｙ軸、Ｚ軸の各々の軸方向の磁界の強さを検出する。ここでＸ軸及びＹ軸は携帯電話機１に対して図３に示す方向に互いに直交して設定され、Ｚ軸はこれらに直交し携帯電話機１から手前に伸びる方向に設定されている。
【００２１】
傾斜センサ部５１０は、携帯電話機１の傾きを検出するセンサである。この傾斜センサ部５１０は、所定の１軸方向における傾き角、例えば、携帯電話機１に設定されたＹ軸が水平面に対してなす角度を検出するものであってもよいし、所定の２軸方向における傾き角、例えば、携帯電話機１に設定されたＸ軸及びＹ軸それぞれが水平面に対してなす角度を検出するものであってもよい。傾斜センサ部５１０が出力する信号は、磁気センサ部５２０の磁気センサ制御部５２５に入力される。温度センサ５２４は温度を検出する。磁気センサ制御部５２５は各センサによる検出結果を示すアナログ信号をデジタル信号に変換しバスライン７００へ出力する。
【００２２】
携帯電話機１に設定されたＸ軸が水平面に対し平行であるようにしてアンテナ２０１（図３）の方向、すなわちＹ軸の方向が目標物に向けられたときの方位は、上記の磁気センサ部５２０及び傾斜センサ部５１０の検出値を用いて、次のように求めることができる。ここで、地磁気の方向は水平面上にあり、北と一致しているものとする。
【００２３】
ここで、Ｘ軸磁気センサ５２１、Ｙ軸磁気センサ５２２の検出値をそれぞれＶx、Ｖyとし、この検出値から前述した補正値を減算した値をそれぞれＳｘ、Ｓｙとする。また、傾斜センサ部５１０は携帯電話機１に設定されたＹ軸が水平面に対してなす傾き角Ｓｄを検出するものとする。水平面上にＸ軸と直交するＹ’軸を設けると、図４に示すようにＳｙとＳｄを用いて式８により、Ｙ’軸方向の成分Ｓｙ’を求めることができる。
Ｓｙ’＝Ｓｙ／ｃｏｓ（Ｓｄ）  ・・・式８
そして、Ｘ軸とＹ’軸からなる座標平面において原点と（Ｓｘ，Ｓｙ’）を結ぶ直線の方向が地磁気の方向となる。この直線がＹ’軸と時計回りになす角度θ’は次のようにして求めることができる。Ｓｘ≧０、Ｓｙ’＞０のときは式９によりθ’を求め、Ｓｘ＞０、Ｓｙ’＝０のときはθ’＝９０°とし、Ｓｙ’＜０のときは式１０によりθ’を求め、Ｓｘ＜０、Ｓｙ’＝０のときはθ’＝２７０°とし、Ｓｘ＜０、Ｓｙ’＞０のときは式１１によりθ’を求める。なお、Ｓｘ＝０、Ｓｙ’＝０となるのは地磁気が存在しない場合であり、このような場合は存在しないものとする。
θ’＝ａｒｃｔａｎ（Ｓｘ／Ｓｙ’）  ・・・式９
θ’＝ａｒｃｔａｎ（Ｓｘ／Ｓｙ’）＋１８０°  ・・・式１０
θ’＝ａｒｃｔａｎ（Ｓｘ／Ｓｙ’）＋３６０°  ・・・式１１
ここでａｒｃｔａｎ（ｘ）はｔａｎ（ｘ）の逆関数を表す。
上記のθ’を用いると、地磁気の方向すなわち北の方向に対して携帯電話機１の筐体のアンテナ２０１の方向が時計回りになす角度を方位角θとすると、この値はθ＝３６０°−θ’により求めることができる。
【００２４】
なお、傾斜センサ部５１０の出力値を用いずに、Ｘ軸磁気センサ５２１、Ｙ軸磁気センサ５２２、Ｚ軸磁気センサ５２３の出力値Ｖx、Ｖy、Ｖzから前述した補正値を減算した値Ｓｘ、Ｓｙ、Ｓｚを用いて、次のようにして携帯電話機１の方位角θ及び傾き角Ｓｄを求めてもよい。まず、水平面上にＸ軸と直交するように設けたＹ’軸方向の磁界の成分Ｓｙ’ は式１２により求めることができる。
Ｓｙ’＝√（Ｓｙ＾２＋Ｓｚ＾２）  ・・・式１２
ここで「Ｓｙ＾２」はＳｙの２乗を表す。これを用いて上記と同様に北の方向に対する方位角θを求めることができる。また、傾き角Ｓｄは式１３により求めることができる。
Ｓｄ＝ａｒｃｃｏｓ（Ｓｙ／Ｓｙ’）  ・・・式１３
ここでａｒｃｃｏｓ（ｘ）はｃｏｓ（ｘ）の逆関数を表す。
【００２５】
図２に戻り、ＧＰＳ受信部４０２は、アンテナ４０１からＧＰＳの電波を受信して自己の現在位置の緯度及び経度を出力する。
主制御部６０１はＲＯＭ（リードオンリメモリ）６０２に格納されたプログラムに従い携帯電話機１の各部を制御する。ＲＯＭ６０２は、主制御部６０１が実行するプログラムを格納する。ＲＡＭ（ランダムアクセスメモリ）６０３は、主制御部６０１の処理に用いられる変数、各軸方向の磁気センサの検出値及び補正値、サーバ６から送信される地図関連データ等を記憶する。
【００２６】
報知手段３０３は、バイブレータ、発光ダイオードを備え、着信やメール受信等を、振動または光によってユーザに報知する。時計部３０４は主制御部６０１に時刻を供給し、また、予め設定された時間間隔で主制御部６０１に対してタイマ割込の信号を出力する。主操作部３０５は、テンキー、ファンクションキー等を備え、押下されたときにそのキーを表す信号を主制御部６０１へ出力する。
【００２７】
電子撮像部３０６は、被写体像をデジタル信号に変換して主制御部６０１へ出力する。  表示部３０７は、主制御部６０１から入力する表示用の信号に基づいて画像や文字等を表示する液晶ディスプレイである。タッチパネル３０８は、表示部３０７の液晶ディスプレイの表面に組み込まれ、ユーザの押下による操作内容を表す信号を主制御部６０１へ出力する。副操作部３０９は、表示切り替えに用いられるプッシュスイッチである。
【００２８】
次に、上述したゲームシステムの動作を説明する。ここでは、このゲームシステムにより第１のユーザと第２のユーザが、それぞれ所持する携帯電話機１、携帯電話機２を銃器にみたててお互いを標的として撃ち合い命中を競うシューティングゲームを行う場合を例に説明する。
【００２９】
まず、第１のユーザはシューティングゲームに参加するため、携帯電話機１の主操作部３０５をキー操作してネットワーク５（図１）に接続されたサーバ６（図１）にアクセスし、自己の携帯電話機１を識別する情報を登録する。登録したユーザ数は１人でも複数でもこのシューティングゲームを行うことができる。
第１のユーザは参加の登録に際して、他に登録したユーザと撃ち合いをするか、サーバ６により設けられた標的を撃つか選択して、選択結果をサーバ６へ送信する。ただし、他に登録したユーザがいない場合は、サーバ６により設けられた標的を撃つこととなる。また、他に登録したユーザと撃ち合いをする場合は、所属するグループを選択することができる。所属するグループを選択した場合は、選択したグループに所属するユーザを味方、他のグループに所属するユーザを敵として撃ち合いを行う。
ここで第１のユーザは、他に登録したユーザと撃ち合いをすると選択し、所属するグループは選択しなかったとする。サーバ６は、以上の情報から前述の管理テーブルにレコードを追加する。このとき、第１のユーザの得点は０に初期化される。そして、携帯電話機１へ登録完了の通知を送信する。第２のユーザも同様に参加の登録を行ったとする。以下、第１のユーザが所持する携帯電話機１の動作を説明するが、第２のユーザが所持する携帯電話機２の動作も同様である。
【００３０】
携帯電話機１が登録完了の通知を受信すると、主制御部６０１は、時計部３０４から予め設定された時間間隔でタイマ割込の信号を出力させる。主制御部６０１がこの信号を検出すると、ＧＰＳ受信部４０２が検出した緯度及び経度、磁気センサ部５２０の検出値から前述のようにして求めた方位角、傾斜センサ部５１０が検出した傾き角を、携帯電話機１を識別する情報とともにサーバ６へ送信する。
また、主制御部６０１はＸ軸磁気センサ５２１、Ｙ軸磁気センサ５２２、Ｚ軸磁気センサ５２３の検出値Ｖx、Ｖy、Ｖzであって前述の補正値により補正されていない値を、予め設定された時間間隔でＲＡＭ６０３に蓄積する。この検出値が一定量蓄積されたとき、例えば、それぞれの検出値について前述のように方位角を求めたときに０°〜３６０°の範囲において１０°毎に少なくとも１つづつの値が蓄積された場合に、式３、式４、式７により各軸方向の補正値を求めＲＡＭ６０３に記憶する。ＲＡＭ６０３に以前求めた補正値が記憶されている場合はこれを更新する。
【００３１】
サーバ６は、参加の登録をした携帯電話機１に対して、前述の地図関連データ、すなわち、地図データ、及び、緯度及び経度に対して地図上の座標を対応付ける対応データを送信する。第１のユーザが参加の登録をしたときに、他に登録したユーザと撃ち合いをすると選択したので、他に登録したユーザである第２のユーザの携帯電話機２からサーバ６へ送信された携帯電話機２の緯度及び経度が、サーバ６から第１のユーザの携帯電話機１へ送信される。
【００３２】
上記の地図関連データに含まれる地図データに示されているバトルエリアに基づいて、サーバ６において次のような処理が行われる。サーバ６は携帯電話機１から受信した緯度及び経度が地図データに示されたバトルエリアの外側である場合はその緯度及び経度を送信した携帯電話機１へ警告を送信する。これを受信した携帯電話機１の主制御部６０１は表示部３０７にこの警告を表示する。サーバ６が警告を送信してから所定の時間が経過しても携帯電話機１がバトルエリアの内側に戻らない場合は、サーバ６はその携帯電話機１のユーザは反則負けと判定し、その携帯電話機１又は２に通知し、シューティングゲームの参加の登録を消去する。
【００３３】
前述のように第１のユーザの携帯電話機１がサーバ６から地図関連データ及び第２のユーザの携帯電話機２の緯度及び経度を受信すると、主制御部６０１は携帯電話機２の緯度及び経度をもとに、地図関連データに含まれる対応データ、すなわち、緯度及び経度に対して地図上の座標を対応付ける対応データにより地図上の座標を求める。また、主制御部６０１はＧＰＳ受信部４０２から取得した筐体の緯度及び経度から上記と同様に地図上の座標を求める。そして、主制御部６０１は表示部３０７に、受信した地図データを表示し、さらに、この地図上において上記で求めた第２のユーザの座標に第２のユーザを示すマークを表示し、上記で求めた第１のユーザの携帯電話機１の座標に第１のユーザを示すマークを表示する。
なお、参加の登録をしたときに、他に登録したユーザと撃ち合いをすると選択し、かつ、所属するグループを選択した場合は、所属するグループ毎に表示されるユーザのマークが色分けされる。
なお、主制御部６０１が磁気センサ部５２０の検出値から携帯電話機１の筐体が向く方位を求め、地図データにおいて該当する方位が表示部３０７の上方に表示されるようにしてもよい。
【００３４】
表示部３０７に表示された第１及び第２のユーザを示すマークは、次のようにして更新される。サーバ６は、登録したユーザである第２のユーザの携帯電話機２からその緯度及び経度を一定の時間間隔で受信するごとに、他に登録したユーザである第１のユーザの携帯電話機１へ送信する。第１のユーザの携帯電話機１の主制御部６０１はサーバ６から第２のユーザの緯度及び経度を受信すると、現在表示している第２のユーザを示すマークを消去し、地図上において上記と同様に第２のユーザの緯度及び経度から求めた座標に第２のユーザを示すマークを表示する。
また、主制御部６０１は一定の時間間隔でＧＰＳ受信部４０２から現在の携帯電話機１の緯度及び経度を取得し、現在表示している第１のユーザを示すマークを消去し、地図上において上記と同様に第１のユーザの緯度及び経度から求めた座標に第１のユーザを示すマークを表示する。
【００３５】
一方、第１のユーザが参加の登録をしたときに、サーバ６により設けられた標的を撃つと選択した場合は、サーバ６において標的の緯度及び経度をバトルエリア内にランダムに１つ生成し、第１のユーザの携帯電話機１へ送信する。第１のユーザの携帯電話機１の表示部３０７には、地図データと、上記と同様にして求めた標的を示すマークと第１のユーザを示すマークが表示される。この標的の緯度及び経度は、サーバ６において時間の経過とともに移動させてもよいし、静止させておいてもよい。表示部３０７における標的を示すマーク及び第１のユーザを示すマークは、上記と同様にして更新する。
【００３６】
他のユーザ又は標的を撃つ操作は、図３に示す携帯電話機１のアンテナ２０１を他のユーザ又は標的の方向に向け、主操作部３０５において予め定められたキー、例えば「０」のキーを押すことにより行う。他のユーザを撃つ場合は、目の前にいる他のユーザを狙ってもよいし、他のユーザが直接見えるところにいなくても表示部３０７に表示された地図上の他のユーザを示すマークにより他のユーザのいる方向を把握して狙ってもよい。また、標的を撃つ場合は、この標的はサーバ６により地図上に架空に設けられており実在しないので、表示部３０７に表示された地図上の標的を示すマークにより方向を把握して狙う。
主制御部６０１は「０」のキーが押されたことを検出すると、磁気センサ部５２０の出力値から前述のようにして求めた方位角、傾斜センサ部５１０が検出した傾き角を、携帯電話機１を識別する情報とともにサーバ６へ送信する。
【００３７】
ここで、第１のユーザの携帯電話機１からサーバ６へ一定の時間間隔で送信された緯度及び経度のうち最新のものをｐ１、ｑ１とし、第２のユーザの携帯電話機２からサーバ６へ一定の時間間隔で送信された緯度及び経度のうち最新のものをｐ２、ｑ２する。主制御部６０１は、緯度及び経度に対して地図上の座標を対応付ける対応データから、ｐ１、ｑ１に対応する地図上の座標（ｘ１、ｙ１）、ｐ２、ｑ２に対応する地図上の座標（ｘ２、ｙ２）を求める。
【００３８】
そして、地図上に設けられたＹ軸すなわち北の方向に対して（ｘ１、ｙ１）と（ｘ２、ｙ２）を結ぶ直線が時計回りになす角度をφとする。主制御部６０１は、ｘ２−ｘ１≧０、ｙ２−ｙ１＞０のときは式１４によりφを求め、ｘ２−ｘ１＞０、ｙ２−ｙ１＝０のときはφ＝９０°とし、ｙ２−ｙ１＜０のときは式１５によりφを求め、ｘ２−ｘ１＜０、ｙ２−ｙ１＝０のときはφ＝２７０°とし、ｘ２−ｘ１＜０、ｙ２−ｙ１＞０のときは式１６によりφを求める。なお、ここでは、ｘ２−ｘ１＝０、ｙ２−ｙ１＝０となる場合はないものとする。
φ＝ａｒｃｔａｎ{（ｘ２−ｘ１）／（ｙ２−ｙ１）}  ・・・式１４
φ＝ａｒｃｔａｎ{（ｘ２−ｘ１）／（ｙ２−ｙ１）}＋１８０°  ・・・式１５
φ＝ａｒｃｔａｎ{（ｘ２−ｘ１）／（ｙ２−ｙ１）}＋３６０°  ・・・式１６
【００３９】
サーバ６は、地図データにおける座標（ｘ１、ｙ１）と（ｘ２、ｙ２）を結ぶ直線上に建物その他の障害物が存在せず、第１のユーザの携帯電話機１から送信された方位角θと上記で求めたφのずれが予め設定された値の範囲内であれば、第２のユーザに命中したと判定する。
なお、第１のユーザの他に参加の登録をしたユーザは、ここでは第２のユーザのみであるが、他に参加の登録をしたユーザが存在する場合は、上記と同様に、各ユーザについて命中したかどうか判定を行う。
【００４０】
命中すると、サーバ６は第１のユーザの携帯電話機１における撃つ操作により発射された架空の弾が第２のユーザに命中したことを通知し、それぞれの主制御部３０１は表示部３０７にそれを表示する。そしてサーバ６において第１のユーザの得点を加点し、第２のユーザの得点を減点し、携帯電話機１及び２に通知する。なお、上記のθとφのずれが少ないほど多く加点する。また、参加の登録をしたときに、他に登録したユーザと撃ち合いをすると選択し、かつ、所属するグループを選択した場合であって、同じグループに所属するユーザに命中した場合は撃つ操作を行ったユーザの得点を減点する。
【００４１】
各ユーザの携帯電話機１及び２からサーバ６へ一定の時間間隔で送信される緯度及び経度から、サーバ６においてユーザの携帯電話機１及び２の地図上の座標を地図関連データに含まれる対応データを用いて求め、この座標間の距離に対応する実際の距離を地図関連データに含まれる縮尺データを用いて求め、この距離が所定の値以下である場合に携帯電話機１及び２へ警報を送信し、これを受信した携帯電話機１及び２の主制御部６０１は表示部３０７に警報を表示するか、又は、スピーカ３０２からの警報音を出力する。
【００４２】
また、第１のユーザの携帯電話機１からサーバ６へ一定の時間間隔で送信される緯度及び経度と方位角θ、及び、第２のユーザの携帯電話機２からサーバ６へ一定の時間間隔で送信される緯度及び経度を用いて、サーバ６において上記と同様に角度φを求め、第１のユーザが撃つ操作を行っていなくてもθとφのずれが予め設定された値の範囲内であれば、第２のユーザの携帯電話機２へ他のユーザから狙われているという警報を送信し、これを受信した第２のユーザの携帯電話機１の主制御部６０１は表示部３０７に警報を表示するか、又は、スピーカ３０２からの警報音を出力する。第１のユーザの携帯電話機１への警報の送信等も同様である。
【００４３】
なお、上記においては第１のユーザが携帯電話機１において撃つ操作を行ったときに送信されるデータをサーバ６が受信したときに、携帯電話機１及び２の最新の緯度及び経度を用いて命中したか否かを判定したが、第１のユーザが携帯電話機１において撃つ操作を行ってから時間差を設けて命中したか否かを判定してもよい。例えば、第１のユーザが携帯電話機１において撃つ操作を行ったときに送信されるデータをサーバ６が受信して３秒後における第２のユーザの携帯電話機２の最新の緯度及び経度を用いて命中したか否かを判定する。この場合、第１のユーザが携帯電話機１において撃つ操作を行った直後に第２のユーザが位置を変えれば命中を避けることができる。
【００４４】
なお、携帯電話機１における撃つ操作により発射された架空の弾に予め一定の速度を設定し、その弾道を計算して命中を判定してもよい。この場合、サーバ６は、携帯電話機１において撃つ操作を行ったときに送信されるデータを受信してから一定の時間が経過するまでの間、一定の時間間隔で地図上におけるその時点の弾の座標を下記のようにして求め、参加の登録をした各々のユーザの携帯電話機へその座標を送信するとともに、その座標から予め設定された範囲内に存在するユーザについては弾が命中したと判定する。各々のユーザの携帯電話機の主制御部６０１は、表示部３０７に表示した地図上においてサーバ６から受信した座標に弾の位置を示すマークを表示し、再度弾の座標を受信したときにはその時点で表示している弾の位置を示すマークを消去し、再度受信した座標に弾の位置を示すマークを表示する。
【００４５】
上記の弾の座標は、携帯電話機１において撃つ操作を行ったときに送信される方位角と、サーバ６がそれを受信した時点で、携帯電話機１からサーバ６へ一定の時間間隔で送信された緯度及び経度のうち最新のものを用いて、次のように求める。まず、この緯度及び経度から、地図上において弾が発射された座標を地図関連データに含まれる対応データを用いて求め、予め設定された弾の速度すなわち単位時間あたりに弾が進む実際の距離から地図関連データに含まれる縮尺データを用いて単位時間あたりに弾が進む座標平面上の距離を求める。そして、弾が単位時間あたりに進む座標平面上の距離に経過時間を掛けた距離を求め、弾が発射された座標を起点として、上記の方位角の方向にこの距離の位置の座標を求める。
【００４６】
なお、上記のように、携帯電話機１における撃つ操作により発射された架空の弾に予め一定の速度を設定した場合には、サーバ６において次のような処理を行ってもよい。サーバ６が携帯電話機１において撃つ操作を行ったときに送信されるデータを受信したときに、各々のユーザの携帯電話機について、そのまま位置を移動しない場合に弾が命中するかどうか判定する。そして、弾が命中する場合には、弾が発射された座標と弾が命中するユーザの座標との間の座標平面上の距離から地図関連データに含まれる縮尺データを用いて実際の距離を求め、その距離を予め設定された弾の速度で割って弾が命中するまでの時間を求め、その時間を弾が命中すると判定したユーザの携帯電話機へ送信する。これを受信した携帯電話機の主制御部６０１は表示部３０７に弾が飛んでくるという警報と弾が命中するまでの時間を表示する。
【００４７】
上記のシューティングゲームにおいては、さらに、特殊コマンドを設ける。この特殊コマンドは、防御系コマンドとしてバリア、分身の術があり、攻撃系コマンドとして爆裂弾がある。
バリアとは、例えば、第１のユーザが携帯電話機１においてバリアを張る操作を行うと、第２のユーザが携帯電話機２において撃つ操作をして第１のユーザの携帯電話機１が命中と判定される位置に存在したとしても、サーバ６は第１のユーザの周囲に防御壁があるものとして命中と判定しないというものである。分身の術とは、例えば、第１のユーザが携帯電話機１において分身の術を使う操作を行うと、サーバ６から他のユーザへ送信される第１のユーザの緯度及び経度を第１のユーザが指定した位置のままとするものである。したがって、第１のユーザが他の位置へ移動すれば第１のユーザに命中することがなくなる。爆裂弾とは、命中する範囲が広い弾を発射するものであり、命中の判定において、予め設定された値による範囲より広い範囲により命中の判定を行う。命中と判定される範囲は、爆裂弾に複数の種類を設けて発射のときに選択可能とし、その種類により範囲を変えてもよい。
【００４８】
これらの特殊コマンドは、携帯電話機１の筐体の向きが予め設定されたパターン通りに変化させたことを携帯電話機１が検出した場合にその旨がサーバに通知されて実行される。これらの特殊コマンドは、実行できる回数の制限を設け、バリアや分身の術は実行してから有効である時間に制限を設ける。また、携帯電話機１を動かす手間が大きいほど威力を大きくしてもよい。
【００４９】
携帯電話機１の向きを変化させるパターンは、磁気センサの各軸方向の補正値を求めるために必要な検出値、例えば、それぞれの検出値について前述のように方位角を求めたときに０°〜３６０°の範囲において１０°毎に少なくとも１つづつの値が効率よく得られるような動作とする。例えば、主操作部３０５において「９」のキーを押してから、携帯電話機１の筐体を携帯電話機１に設定されたＺ軸のまわりに少なくとも１回転、携帯電話機１に設定されたＹ軸のまわりに少なくとも１回転させた後、「８」のキーを押す動作とする。このとき、携帯電話機１の主制御部６０１は、「９」のキーが押されたことを検出したのち、一定の時間間隔で磁気センサ部５２０による各軸方向の検出値を取得しＲＡＭ６０３に記憶させ、「８」のキーが押されたことを検出すると磁気センサ部５２０からの検出値の取得及びＲＡＭ６０３に記憶させる処理を終了する。そして、ＲＡＭ６０３に記憶された検出値について、各々の検出値から前述のように方位角を求め、０°〜３６０°の範囲において１０°毎に少なくとも１つづつの値が記憶されていることを確認してパターン通りの動作が行われたと判定し、サーバ６へその旨を通知すると、サーバ６において特殊コマンドが実行される。このとき携帯電話機１においては前述の通り補正値を求め更新する処理が行われる。
【００５０】
なお、上記のような携帯電話機１の筐体の方位及び向きの検出はシューティングゲームだけでなく、他のゲームにおいても応用することができる。例えば、トランプを用いて行うばば抜き、神経衰弱、相性占い等を携帯電話機１の表示部３０７に表示して行う場合に、ユーザが表示部３０７に表示されたトランプのカードのうち１枚を指定するときに、ユーザは目の前に机があってその上にトランプが並べられていると想定して、そのうち１枚の方向に携帯電話機１を向けて特定のキーを押すことにより、表示部３０７に表示されたうちの１枚のカードを指定することができる。
【産業上の利用可能性】
【００５１】
本発明は、磁気センサを備えた携帯機器を用いたゲームシステムに用いられる。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態におけるゲームシステムの構成を示す図である。
【図２】携帯電話機１の構成を示すブロック図である。
【図３】携帯電話機１に設定されたＸ軸及びＹ軸の方向を示す図である。
【図４】水平面上における磁界の成分の求め方を説明するための図である。
【符号の説明】
【００５３】
１、２…携帯電話機、１−１、１−２…携帯電話機ユニット、３、４…基地局、５…ネットワーク、６…サーバ、２０１…アンテナ、２０２…ＲＦ部、２０３…変復調部、２０４…ＣＤＭＡ部、２０５…音声処理部、３０１…マイクロホン、３０２…スピーカ、３０３…報知手段、３０４…時計部、３０５…主操作部、３０６…電子撮像部、３０７…表示部、３０８…タッチパネル、３０９…副操作部、４０１…アンテナ、４０２…ＧＰＳ受信部、５１０…傾斜センサ部、５２０…磁気センサ部、５２１…Ｘ軸磁気センサ、５２２…Ｙ軸磁気センサ、５２３…Ｚ軸磁気センサ、５２４…温度センサ、５２５…磁気センサ制御部、６０１…主制御部、６０２…ＲＯＭ、６０３…ＲＡＭ、７００…バスライン
【図１】
2006271572.tif 000003
【図２】
2006271572.tif 000004
【図３】
2006271572.tif 000005
【図４】
2006271572.tif 000006