以下、情報システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、カメラ(ビデオカメラを含む)で撮影しているオブジェクトに応じて、ゲームコンテンツを出力する情報システムについて説明する。
また、本実施の形態において、ゲーム端末装置における出力の変更は、サーバ装置からの制御による情報システムについて説明する。
また、本実施の形態において、同じ空間に居る他人の操作が、自分のゲーム端末装置上のコンテンツに影響を及ぼす情報システムについて説明する。
また、本実施の形態において、カメラで撮影しているオブジェクトを決定するアルゴリズムについて、当該決定のための処理の終了条件が種々あり得る。
図1は、本実施の形態における情報システム1の概念図である。情報システム1は、サーバ装置11、1以上のゲーム端末装置12を具備する。ゲーム端末装置12は、図1に示すように、2画面のディスプレイを有する端末でも良いし、1画面のディスプレイを有する端末でも良い。ゲーム端末装置12は、カメラ機能を有し、外部の風景、建物などを撮影している際に、撮影している映像内のオブジェクト(建物など)の領域や、オブジェクトに対応するゲームコンテンツなどを出力できる。また、サーバ装置11、およびゲーム端末装置12は、通常、通信可能である。また、情報システム1において、2以上のゲーム端末装置12を具備していても良い。
図2は、本実施の形態における情報システム1のブロック図である。図3は、ゲーム端末装置12のブロック図である。
サーバ装置11は、オブジェクト情報格納部1101、ゲームコンテンツ格納部1102、撮影オブジェクト識別子格納部1103、サーバ受信部1104、距離算出部1105、撮影オブジェクト決定部1106、ゲームコンテンツ取得部1107、不可視オブジェクト識別子取得部1108、ゲーム情報構成部1109、撮影オブジェクト識別子蓄積部1110、サーバ送信部1111、操作受信部1112、変化情報取得部1113、変化情報送信部1114、ユーザ空間情報格納部1115、ユーザ空間情報蓄積部1116、同一空間端末決定部1117、および同一空間端末情報送信部1118を具備する。
ゲーム端末装置12は、受付部121、カメラ部122、端末情報取得部123、送信部124、受信部125、出力部126、同一空間端末情報受信部127、およびゲーム制御出力部128を具備する。また、端末情報取得部123は、位置情報取得手段1231、方向情報取得手段1232を具備する。また、出力部126は、カメラ映像出力手段1261を具備する。さらに、ゲーム制御出力部128は、操作送信手段1281、変化情報受信手段1282、出力変更手段1283を具備する。
サーバ装置11を構成するオブジェクト情報格納部1101は、1以上のオブジェクト情報を格納し得る。オブジェクト情報は、オブジェクト識別子と、オブジェクトが存在する領域を示す領域情報とを有する情報である。オブジェクトとは、通常、地図上または地理上に現れるオブジェクトである地理オブジェクトである。オブジェクトは、例えば、店舗、建物、山、川、名勝、公園などである。オブジェクトは、例えば、ビルの中の店舗や会社などでも良い。オブジェクトは、地図上または地理上に現れるものであれば、内容は問わない。オブジェクト情報格納部1101は、地図情報を格納していても良い。かかる場合、地図情報は1以上のオブジェクト情報を含む。オブジェクト識別子とはオブジェクトを識別する情報であり、例えば、オブジェクトの名称、オブジェクトを識別するID、オブジェクトについての情報が格納されているウェブページのURL、URIなどである。領域情報とは、通常、二次元の領域の情報である。ただし、三次元の領域の情報でも、一次元の情報(点の情報)でも良い。つまり、領域情報はオブジェクトの位置(点)を特定する位置情報(X,Y)でも良い。この(X,Y)は、例えば、(緯度,経度)であり、例えば、オブジェクトの領域の重心点を示す情報である。領域が矩形であるとする場合、領域情報は、例えば、矩形の左上点、右下点の位置情報(経度,緯度)の情報である。さらに、領域情報は、例えば、三次元のオブジェクトの立体図形(例えば、6面体)の頂点を構成する点(8点)の集合や、立体図形(例えば、6面体)の高さを有する4点の集合などである。領域情報が三次元の領域の情報である場合、通常、領域情報は、地図上での二次元の領域を示す二次元領域情報とオブジェクトの高さを示す高さ情報を有する。
オブジェクト情報格納部1101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。オブジェクト情報格納部1101にオブジェクト情報が記憶される過程は問わない。例えば、記録媒体を介してオブジェクト情報がオブジェクト情報格納部1101で記憶されるようになってもよく、通信回線等を介して送信されたオブジェクト情報がオブジェクト情報格納部1101で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたオブジェクト情報がオブジェクト情報格納部1101で記憶されるようになってもよい。
ゲームコンテンツ格納部1102は、オブジェクト識別子に対応付けて、ゲームコンテンツを格納し得る。なお、ゲームコンテンツとは、ゲームのキャラクタ、ゲームで利用する武器、ポイント、カードなど、ゲームで利用する情報であれば何でも良い。なお、ゲームコンテンツ格納部1102は、オブジェクト識別子に対応付けられていないゲームコンテンツも格納していても良い。ゲームコンテンツ格納部1102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、ゲームコンテンツ格納部1102にゲームコンテンツ等が記憶される過程は問わない。
撮影オブジェクト識別子格納部1103は、1以上の撮影オブジェクト識別子を格納し得る。撮影オブジェクト識別子とは、撮影中のオブジェクトである撮影オブジェクトを識別する情報である。撮影オブジェクト識別子格納部1103は、ゲーム端末装置12ごとに、撮影オブジェクト識別子を格納していることは好適である。つまり、撮影オブジェクト識別子格納部1103は、ゲーム端末装置12の端末識別子と1以上の撮影オブジェクト識別子とを対にして、格納していることは好適である。なお、格納されている撮影オブジェクト識別子は、通常、現在、撮影中のオブジェクトの識別子である。撮影オブジェクト識別子格納部1103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
サーバ受信部1104は、ゲーム端末装置12から端末情報を受信する。端末情報は、ゲーム端末装置12の位置を示す位置情報とゲーム端末装置12が向いている方向を示す方向情報とを有する情報である。また、端末情報は、視野角を有することは好適である。位置情報とは、通常、(緯度,経度)の情報であるが、空間内の位置を示す情報でも良い。空間内の位置を示す情報は、例えば、(緯度,経度、高度)である。方向情報は、東西南北などの方位の情報を含んでも良い。また、方向情報は、端末の向き(上向き、下向きなど)を含んでも良い。方向情報は、例えば、56.2°(北を0°、東を90°とする方位)や、南南西などである。方向情報は、例えば、高さ方向の角度を含んでも良い。また、方向情報は、例えば、(Yaw,Pitch,Roll)などでも良い。(Yaw,Pitch,Roll)の「Yaw」は垂直軸に対する角度や先端の左右の揺れの度合い(長さなど)、「Pitch」は横軸に対する角度や先端の上下の揺れの度合い、「Roll」は縦軸に対する角度やゲーム端末装置12全体の左右の揺れの度合いである。なお、位置情報とは、例えば、GPS受信機により取得される。また、方向情報とは、例えば、コンパス、またはコンパスとジャイロにより取得される。方向情報や位置情報を取得する手段は問わない。さらに、端末情報は、ゲーム端末装置12を識別する端末識別子(例えば、情報の送受信に用いられるIPアドレスや、電話番号や、IDや、MACアドレスなど)も含むことは好適である。サーバ受信部1104は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
距離算出部1105は、オブジェクト情報格納部1101の1以上のオブジェクト情報に対応するオブジェクトとゲーム端末装置12との距離を、各オブジェクトのオブジェクト情報と端末情報が有する位置情報とから、オブジェクトごとに算出する。距離算出部1105は、例えば、サーバ受信部1104が受信した端末情報が有する位置情報と、各オブジェクトの領域情報から得られるオブジェクトの位置情報とから、オブジェクトとゲーム端末装置12との距離を算出する。ここで、距離とは、領域の重心の点と、端末情報が有する位置情報が示す位置との距離、領域のいずれかの点と端末情報が有する位置情報が示す位置との距離、端末情報が有する位置情報が示す位置に最も近い領域内の点との距離などでも良い。つまり、距離の算出方法は種々あり得る。また、オブジェクトの位置情報は、オブジェクトの領域情報から生成された情報でも良いし、領域情報とは別にオブジェクト情報に含まれる情報でも良い。位置情報は、例えば、領域情報から得られる領域の重心である。距離算出部1105は、通常、MPUやメモリ等から実現され得る。距離算出部1105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
撮影オブジェクト決定部1106は、端末情報が有する位置情報と、端末情報が有する方向情報と、予め格納されているまたは端末情報が有する視野角とを、オブジェクト情報格納部1101の各オブジェクト情報の領域情報に適用し、ゲーム端末装置12が撮影している1以上のオブジェクトを決定する。視野角とは、カメラ部122が撮影可能な角度であり、平面上の角度でも良いし、高さ方向を含めた立体的な角度でも良い。立体的な角度とは、例えば、平面上の角度(θ1)と高さ方向の角度(θ2)とにより得られる。また、視野角は、撮影オブジェクト決定部1106が予め格納していても良いし、端末情報に含まれていても良い。ここで、「オブジェクトを決定する」とは、オブジェクト識別子を取得することでも良いし、オブジェクト情報の全部または一部を取得することでも良いし、オブジェクト情報を管理しているテーブルのレコードIDを取得すること等でも良い。つまり、「オブジェクトを決定する」とは、オブジェクトを特定する情報を取得することであれば良い。
撮影オブジェクト決定部1106は、ゲーム端末装置12からの距離が近い順にオブジェクトを検査し、ゲーム端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトがゲーム端末装置12に撮影されているか否かの検査を終了することは好適である。
また、撮影オブジェクト決定部1106は、端末情報が有する位置情報および方向情報と、予め格納されているまたは端末情報が有する視野角とを用いて、三次元空間上での撮影領域を取得し、撮影領域を、オブジェクト情報格納部1101の各オブジェクト情報が有する領域情報に対して適用し、ゲーム端末装置12が撮影している1以上のオブジェクトを決定し、ゲーム端末装置12からの距離が近い順にオブジェクトを検査し、ゲーム端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合に、オブジェクトがゲーム端末装置12に撮影されているか否かの検査を終了することは好適である。
また、撮影オブジェクト決定部1106は、ゲーム端末装置12からの距離が近い順にオブジェクトに対応するオブジェクト情報をソートし、ゲーム端末装置12からの距離が近い順にオブジェクトを検査し、ゲーム端末装置12が撮影している1以上のオブジェクトを決定することは好適である。
また、撮影オブジェクト決定部1106は、ゲーム端末装置12からの距離が近い順にオブジェクトを検査し、ゲーム端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域のオブジェクトであり、かつ、ゲーム端末装置12からの距離が閾値以内のオブジェクトのみを検査し、ゲーム端末装置12が撮影している1以上のオブジェクトを決定することは好適である。
また、撮影オブジェクト決定部1106は、ゲーム端末装置12からの距離が近い順にオブジェクトを検査し、ゲーム端末装置12が撮影しているとして決定したオブジェクトの数が閾値になった場合に、検査を終了することは好適である。
さらに、撮影オブジェクト決定部1106は、例えば、カメラ部122が撮影した映像の中で、ゲーム端末装置12から最も距離が近い位置に存在するオブジェクトの撮影オブジェクト、またはカメラ部122が撮影した映像の中で最も中央寄りに位置するオブジェクトの撮影オブジェクト、またはカメラ部122が撮影した映像の中で最も大きい領域(平面上または立体上)を有するオブジェクトの撮影オブジェクトを決定しても良い。
なお、撮影オブジェクト決定部1106は、さらに具体的には、例えば、後述する図5のフローチャートに示すようなアルゴリズムで、ゲーム端末装置12が撮影している1以上のオブジェクトを決定することは好適である。
撮影オブジェクト決定部1106は、通常、MPUやメモリ等から実現され得る。撮影オブジェクト決定部1106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ゲームコンテンツ取得部1107は、撮影オブジェクト決定部1106が決定した1以上の各オブジェクトに対応する1以上のゲームコンテンツを、ゲームコンテンツ格納部1102から取得する。例えば、ゲームコンテンツ取得部1107は、撮影オブジェクト決定部1106が取得した1以上の撮影オブジェクト識別子と対になる1以上のゲームコンテンツを、ゲームコンテンツ格納部1102から読み出す。ゲームコンテンツ取得部1107は、通常、MPUやメモリ等から実現され得る。ゲームコンテンツ取得部1107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
不可視オブジェクト識別子取得部1108は、撮影オブジェクト決定部1106が1以上の撮影オブジェクトを決定した後、当該1以上の各撮影オブジェクトを識別する1以上の撮影オブジェクト識別子と、撮影オブジェクト識別子格納部1103に直前に蓄積された1以上の撮影オブジェクト識別子とを比較し、不可視となったオブジェクトのオブジェクト識別子を取得する。なお、ここで、「直前に」とは、時間的に直前という意味である。また、不可視となったオブジェクトとは、撮影オブジェクトでなくなったオブジェクトであり、不可視オブジェクトとも言うこととする。また、不可視オブジェクトのオブジェクト識別子とは、撮影オブジェクト識別子格納部1103に直前に蓄積された1以上の撮影オブジェクト識別子のうちで、撮影オブジェクト決定部1106が取得した1以上の撮影オブジェクト識別子の中に含まれないオブジェクト識別子である。
不可視オブジェクト識別子取得部1108は、通常、MPUやメモリ等から実現され得る。不可視オブジェクト識別子取得部1108の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ゲーム情報構成部1109は、不可視となったオブジェクトのオブジェクト識別子に対応するゲームコンテンツを、ゲーム端末装置12上で不可視とする命令である不可視命令を含むゲーム情報を構成する。不可視命令は、例えば、ゲームコンテンツを識別するゲームコンテンツ識別子を有する。ゲーム情報構成部1109は、可視命令を含むゲーム情報を構成しても良い。つまり、ゲーム情報構成部1109は、撮影オブジェクト識別子格納部1103に直前に蓄積された1以上の撮影オブジェクト識別子には含まれず、撮影オブジェクト決定部1106が取得した1以上の撮影オブジェクト識別子の中に含まれるオブジェクト識別子を、可視オブジェクト識別子として取得する。そして、ゲーム情報構成部1109は、取得した1以上の可視オブジェクト識別子に対応する1以上のゲームコンテンツを可視にする可視命令を含むゲーム情報を構成する。なお、可視命令は、例えば、可視オブジェクト識別子とゲームコンテンツとを含む。また、ゲーム情報構成部1109は、ゲームコンテンツに対する命令などを有するゲーム情報を構成しても良い。
ゲーム情報構成部1109は、通常、MPUやメモリ等から実現され得る。ゲーム情報構成部1109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
撮影オブジェクト識別子蓄積部1110は、撮影オブジェクト決定部1106が決定した1以上のオブジェクトの1以上の撮影オブジェクト識別子を取得し、撮影オブジェクト識別子格納部1103に蓄積する。ここでの蓄積とは、上書きが好適であるが、追記でも良い。つまり、撮影オブジェクト識別子格納部1103には、ゲーム端末装置12ごとに、現在、撮影中の撮影オブジェクト識別子のみが格納されている状況が好ましい。撮影オブジェクト識別子蓄積部1110は、通常、MPUやメモリ等から実現され得る。撮影オブジェクト識別子蓄積部1110の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
サーバ送信部1111は、ゲーム情報をゲーム端末装置12に送信する。ゲーム情報とは、1以上のゲームコンテンツまたは前記1以上のゲームコンテンツに関する情報である。ゲームコンテンツに関する情報とは、例えば、ゲームコンテンツを動作させるプログラム、ゲームコンテンツに対する命令などである。ゲームコンテンツに対する命令とは、例えば、ゲームコンテンツを削除する命令、ゲームコンテンツを変化される命令、ゲームコンテンツを移動させる命令などである。また、ゲーム情報は、ゲーム情報構成部1109が構成した情報であることが好適である。サーバ送信部1111は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
操作受信部1112は、ゲーム端末装置12の操作送信手段1281が送信した操作を受信する。操作とは、ユーザが入力した操作データや操作命令などである。操作は、ゲーム端末装置12のゲーム端末装置識別子を有することは好適である。操作受信部1112は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
変化情報取得部1113は、操作受信部1112が受信した操作に応じた変化情報を取得する。変化情報は、ゲームコンテンツを変化させる命令やデータ、変化したゲームコンテンツなどである。変化情報取得部1113は、通常、MPUやメモリ等から実現され得る。変化情報取得部1113の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変化情報送信部1114は、変化情報取得部1113が取得した変化情報を、ゲーム端末装置12に送信する。変化情報送信部1114は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
ユーザ空間情報格納部1115は、ユーザ空間情報を格納し得る。ユーザ空間情報とは、端末識別子と空間情報とを有する。空間情報とは、端末識別子で識別されるゲーム端末装置12が存在する空間に関する情報である。空間情報とは、例えば、位置情報、1以上の撮影オブジェクト識別子、または端末情報などである。ユーザ空間情報格納部1115は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。ユーザ空間情報格納部1115にユーザ空間情報が記憶される過程は問わない。
ユーザ空間情報蓄積部1116は、ユーザ空間情報をユーザ空間情報格納部1115に蓄積する。ユーザ空間情報は、サーバ受信部1104が受信した端末識別子と、ゲーム端末装置の位置を示す位置情報または撮影オブジェクト決定部1106が決定した1以上のオブジェクトの1以上の撮影オブジェクト識別子を有する情報である。ユーザ空間情報蓄積部1116は、通常、MPUやメモリ等から実現され得る。ユーザ空間情報蓄積部1116の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
同一空間端末決定部1117は、ユーザ空間情報格納部1115に格納されている空間情報を用いて、同じ空間に存在する2以上のゲーム端末装置12の端末識別子を取得する。同じ空間に存在する2以上のゲーム端末装置12とは、1以上の同じオブジェクトを撮影しているゲーム端末装置12でも良いし、お互いが見える位置に居るゲーム端末装置12でも良いし、所定以上の割合または所定以上の数の同じオブジェクトを撮影しているゲーム端末装置12でも良いし、位置情報が一定の条件を満たすほど近い距離に存在するゲーム端末装置12でも良い。同一空間端末決定部1117は、通常、MPUやメモリ等から実現され得る。同一空間端末決定部1117の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
同一空間端末情報送信部1118は、同一空間端末決定部1117が取得した2以上の端末識別子を用いて、2以上の各端末識別子で識別される各ゲーム端末装置12に、自分を除く他のゲーム端末装置12の空間情報(例えば、位置情報または操作または変化情報)を送信する。同一空間端末情報送信部1118は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
ゲーム端末装置12を構成する受付部121は、ユーザから、指示やデータ等の入力を受け付ける。各種の指示とは、例えば、ゲーム端末装置12の起動指示、出力中のゲームコンテンツに対する操作、カメラ部122に対する各種の指示などである。なお、ここで、操作とは、ゲームコンテンツを撃つ操作、ゲームコンテンツを使用する操作、ゲームコンテンツへの出力指示など、何でも良い。また、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。操作の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部121は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
カメラ部122は、映像を取得する。カメラ部122は、いわゆるカメラである。カメラ部122は、通常、現在、ファインダーに映っている映像を取得する。カメラ部122は、例えば、CCDカメラにより実現され得る。
端末情報取得部123は、ゲーム端末装置12の位置を示す位置情報と、ゲーム端末装置12が向いている方向を示す方向情報とを有する端末情報を取得する。端末情報取得部123は、位置情報と方向情報と視野角を含む端末情報を取得しても良い。かかる場合、端末情報取得部123は、視野角を予め格納している。なお、視野角とは、視野角の情報と同意義である。視野角は、二次元の角度でも三次元の角度でも良い。なお、ゲーム端末装置12(カメラ部122)の位置、方向、視野角が分かれば、撮影できる領域が分かる。つまり、端末情報は、カメラ部122が撮影する領域を特定する情報である。撮影する領域は、三次元の領域であることが好適であるが、二次元の領域でも良い。
端末情報取得部123を構成する位置情報取得手段1231は、ゲーム端末装置12の位置を示す位置情報を取得する。位置情報取得手段1231は、例えば、GPS受信機により構成される。また、位置情報取得手段1231は、例えば、無線電波の受信手段と、3つ以上の基地局から受信した3つ以上の電波の強度から位置情報を取得する処理手段(例えば、MPUやメモリ等で構成される手段)とから構成されても良い。位置情報取得手段1231が位置情報を取得する方法は問わない。また、位置情報は、二次元上の位置でも良いし、三次元空間における位置でも良い。
方向情報取得手段1232は、ゲーム端末装置12が向いている方向を示す方向情報を取得する。方向情報は、2次元上の向きを示す情報でも良いし、3次元上の方向(上下方向も含む)を示す情報でも良い。方向情報取得手段1232は、例えば、コンパスで実現される。また、方向情報取得手段1232は、例えば、コンパスとジャイロで実現される。
送信部124は、端末情報取得部123が取得した端末情報をサーバ装置11に送信する。送信部124は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
受信部125は、端末情報の送信に対応して、ゲーム情報をサーバ装置11から受信する。受信部125は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
出力部126は、カメラ部122が取得した映像を出力するカメラ映像出力手段1261を具備する。
同一空間端末情報受信部127は、自分を除く他のゲーム端末装置12の位置情報または操作または変化情報を受信する。同一空間端末情報受信部127は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
ゲーム制御出力部128は、受信部125が受信したゲーム情報が有する1以上のゲームコンテンツを出力する。また、ゲーム制御出力部128は、受信部125が受信したゲーム情報が有するゲームコンテンツに関する情報に応じて、ゲームコンテンツを制御しても良い。また、ゲーム制御出力部128は、受信部125が受信したゲーム情報が有する不可視命令に対応するゲームコンテンツを消去する。ここで、消去とは、ゲーム端末装置12の画面上から見えないようにする、という意味であり、ゲームコンテンツを記憶媒体から削除する必要はない。また、ゲーム制御出力部128は、受信部125が受信したゲーム情報が有する可視命令[0]に対応するゲームコンテンツを出力する。可視命令[0]とは、新たに撮影オブジェクトとなったオブジェクトに対するゲームコンテンツを出力する命令である。また、ゲーム制御出力部128は、受付部121が受け付けた操作に応じて、ゲームコンテンツを変化させても良い。ゲームコンテンツを変化させる処理は、撃たれた画面上のゲームコンテンツを消去する処理、消費されたゲームコンテンツを消去する処理、表示指示されたゲームコンテンツを表示する処理など、何でも良い。
ゲーム制御出力部128は、通常、MPUやメモリ等から実現され得る。ゲーム制御出力部128の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
操作送信手段1281は、受付部121が受け付けた操作をサーバ装置11に送信する。操作送信手段1281は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
変化情報受信手段1282は、操作の送信に対応して、ゲームコンテンツを変化させる情報である変化情報をサーバ装置11から受信する。なお、変化情報とは、例えば、ゲームコンテンツを変化させる命令、変化したゲームコンテンツなどである。変化情報受信手段1282は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
出力変更手段1283は、変化情報を用いて、ゲームコンテンツの出力を変化させる。
次に、情報システム1の動作について説明する。まず、サーバ装置11の動作について、図4のフローチャートを用いて説明する。
(ステップS401)サーバ受信部1104は、ゲーム端末装置12から、端末情報を受信したか否かを判断する。端末情報を受信すればステップS402に行き、端末情報を受信しなければステップS416に行く。
(ステップS402)撮影オブジェクト決定部1106は、ステップS401で受信された端末情報を用いて、当該端末情報が有する位置情報および/または方向情報を、オブジェクト情報格納部1101の各オブジェクト情報の領域情報に適用し、ゲーム端末装置12が撮影している(ゲーム端末装置12のディスプレイに映っている)1以上のオブジェクトを決定する。かかる処理を撮影オブジェクト決定処理という。なお、撮影オブジェクト決定部1106は、予め格納されている視野角をも用いて、ゲーム端末装置12が撮影している1以上のオブジェクトを決定することは好適である。なお、ゲーム端末装置12が撮影しているオブジェクトを撮影オブジェクトとも言う。撮影オブジェクト決定処理について、図5のフローチャートを用いて説明する。
(ステップS403)ゲーム情報構成部1109は、ステップS401で受信された端末情報が有する端末識別子に対応する1以上の撮影オブジェクト識別子を、撮影オブジェクト識別子格納部1103から取得する。なお、ここで、撮影オブジェクト識別子が取得できない場合もある。また、ここで取得する1以上の撮影オブジェクト識別子は、最も時間的に新しい(直前の)1以上の撮影オブジェクト識別子である。
(ステップS404)ゲーム情報構成部1109は、可視オブジェクト識別子を取得する。可視オブジェクト識別子とは、直前の撮影オブジェクトに含まれていなかったが、新しく撮影オブジェクトに含まれるようになったオブジェクトである可視オブジェクトを識別する情報である。なお、ゲーム情報構成部1109は、例えば、以下のように可視オブジェクト識別子を取得する。ゲーム情報構成部1109は、ステップS402で決定された撮影オブジェクトを識別する1以上の撮影オブジェクト識別子を取得する。そして、その1以上の撮影オブジェクト識別子の中で、ステップS403で取得された1以上の撮影オブジェクト識別子と重複する識別子を除く。
(ステップS405)不可視オブジェクト識別子取得部1108は、不可視オブジェクト識別子を取得する。不可視オブジェクト識別子とは、撮影オブジェクトの中に含まれていたが、含まれなくなった不可視オブジェクトを識別する情報である。不可視オブジェクト識別子取得部1108は、例えば、以下のように不可視オブジェクト識別子を取得する。不可視オブジェクト識別子取得部1108は、ステップS403で取得された1以上の撮影オブジェクト識別子を取得する。そして、不可視オブジェクト識別子取得部1108は、ステップS402で決定された撮影オブジェクトを識別する1以上の撮影オブジェクト識別子を取得する。次に、不可視オブジェクト識別子取得部1108は、ステップS403で取得された1以上の撮影オブジェクト識別子の中に存在するが、ステップS402で決定された1以上の撮影オブジェクト識別子の中には存在しない1以上の撮影オブジェクト識別子を取得する。
(ステップS406)ゲームコンテンツ取得部1107は、ステップS404で1以上の可視オブジェクト識別子を取得したか否かを判断する。可視オブジェクト識別子を取得すればステップS407に行き、可視オブジェクト識別子を取得しなければステップS410に行く。
(ステップS407)ゲームコンテンツ取得部1107は、1以上の各可視オブジェクト識別子に対応するゲームコンテンツを、ゲームコンテンツ格納部1102から取得する。
(ステップS408)ゲーム情報構成部1109は、ステップS407で、ゲームコンテンツを取得できたか否かを判断する。ゲームコンテンツを取得できればステップS409に行き、取得できなければステップS410に行く。
(ステップS409)ゲーム情報構成部1109は、ステップS407で取得したゲームコンテンツを用いて、第一のゲーム情報を構成する。第一のゲーム情報は、通常、可視オブジェクト識別子、ゲームコンテンツ、および可視オブジェクト識別子に対応するオブジェクトの属性値(例えば、位置情報、画面上での位置座標など)を、1以上の各可視オブジェクトに対応するゲームコンテンツの数だけ有する。
(ステップS410)不可視オブジェクト識別子取得部1108は、ステップS406で1以上の不可視オブジェクト識別子を取得したか否かを判断する。不可視オブジェクト識別子を取得すればステップS411に行き、不可視オブジェクト識別子を取得しなければステップS412に行く。
(ステップS411)ゲーム情報構成部1109は、ステップS406で取得した1以上の不可視オブジェクト識別子を用いて、第二のゲーム情報を構成する。第二のゲーム情報は、通常、1以上の不可視オブジェクト識別子を含む不可視命令を含む。
(ステップS412)サーバ送信部1111は、第一のゲーム情報、または/および第二のゲーム情報が構成されているか否かを判断する。ゲーム情報が構成されていればステップS413に行き、ゲーム情報が構成されていなければステップS401に戻る。
(ステップS413)サーバ送信部1111は、構成されている第一のゲーム情報、または/および第二のゲーム情報を、ゲーム端末装置12に送信する。
(ステップS414)ゲーム情報構成部1109は、構成されている第一のゲーム情報、または/および第二のゲーム情報を用いて、管理情報を構成する。管理情報とは、現在、各ゲーム端末装置12で表示されているゲームコンテンツを特定する情報を有する情報である。管理情報は、例えば、ゲーム情報構成部1109の識別子と、ゲームコンテンツを識別するゲームコンテンツ識別子(オブジェクト識別子でも良い)と、当該ゲームコンテンツの状態(各種の属性値や、生成/消滅などの状態を識別する情報)などを含む。
(ステップS415)ゲーム情報構成部1109は、図示しない記録媒体(管理情報格納部)に、ステップS414で構成した管理情報を記録する。ステップS401に戻る。
(ステップS416)サーバ受信部1104は、ゲーム端末装置12から操作を受信したか否かを判断する。操作を受信すればステップS417に行き、操作を受信しなければステップS420に行く。なお、ここで、サーバ受信部1104は、通常、ゲーム端末装置12を識別する端末識別子も受信する。
(ステップS417)変化情報取得部1113は、前記ステップS416で受信された操作に対応する変化情報を取得する。変化情報とは、例えば、ゲームコンテンツを消去する情報であり、ゲームコンテンツの識別子を含むゲームコンテンツ消去命令である。また、変化情報とは、例えば、ゲームコンテンツをパワーアップするための情報であり、ゲームコンテンツの識別子と、パワーアップの度合いを示すパワーアップ度と含むパワーアップ命令である。その他、変化情報は、例えば、ゲームの進行のための情報である。なお、どのような操作に対して、どのような変化情報を取得するかについては、ゲームのストーリーやルールに依存し、問わない。かかる変化情報の取得方法の実現は、変化情報取得部1113が行い、かかる技術は公知技術である。
(ステップS418)変化情報送信部1114は、ステップS417で取得した変化情報をゲーム端末装置12に送信する。
(ステップS419)変化情報取得部1113は、ステップS417で取得した変化情報を用いて、図示しない記録媒体(管理情報格納部)の管理情報を更新する。変化情報が、ゲームコンテンツ消去命令である場合、ゲームコンテンツ消去命令に含まれる識別子で特定されるゲームコンテンツを消去するように、管理情報を変更する。ステップS401に戻る。
(ステップS420)同一空間端末決定部1117等は、同一空間端末に関する処理である同一空間端末処理を行う。ステップS401に戻る。同一空間端末処理について、図9のフローチャートを用いて説明する。
なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS402の撮影オブジェクト決定処理について、図5のフローチャートを用いて説明する。
(ステップS501)撮影オブジェクト決定部1106は、ステップS401で受信された端末情報が有する位置情報を取得する。
(ステップS502)撮影オブジェクト決定部1106は、ステップS401で受信された端末情報が有する方向情報と、視野角とを用いて、撮影されない角度を取得する。そして、撮影オブジェクト決定部1106は、かかる角度(不可視領域の角度)を記録媒体に登録(記録)する。例えば、方向情報が90度(例えば、真東)であり、視野角が40度である場合、撮影される角度は「70度から110度」である。したがって、撮影オブジェクト決定部1106は、「0<=不可視領域の角度<70」および「110<不可視領域の角度<=360」を登録する。なお、ここで、撮影オブジェクト決定部1106は、撮影される角度(可視領域の角度)を取得し、登録しても良い。つまり、可視領域の角度の登録も、不可視領域の角度の登録と同意義である、とする。
(ステップS503)撮影オブジェクト決定部1106は、ステップS501で取得した位置情報を用いて、ゲーム端末装置12から近いオブジェクトの順に、オブジェクト情報格納部1101のオブジェクト情報をソートする。かかる処理をオブジェクトソート処理という。オブジェクトソート処理について、図6のフローチャートを用いて説明する。
(ステップS504)撮影オブジェクト決定部1106は、カウンタiに1を代入する。
(ステップS505)撮影オブジェクト決定部1106は、ステップS503でソートされたオブジェクト情報の中に、i番目のオブジェクトが存在するか否かを判断する。i番目のオブジェクトが存在すればステップS506に行き、i番目のオブジェクトが存在しなければ上位処理にリターンする。
(ステップS506)撮影オブジェクト決定部1106は、ソートされたオブジェクト情報の中から、i番目のオブジェクトのオブジェクト情報が有する領域情報を取得する。
(ステップS507)撮影オブジェクト決定部1106は、ステップS501で取得した位置情報と、ステップS505で取得した領域情報とを用いて、i番目のオブジェクトが、撮影オブジェクト(ゲーム端末装置12のディスプレイに映っている)か否かを判断する。かかる判断を、可視判断処理という。可視判断処理について、図7、図8のフローチャートを用いて説明する。
(ステップS508)撮影オブジェクト決定部1106は、ステップS506における判断の結果、i番目のオブジェクトが撮影オブジェクトであればステップS509に行き、撮影オブジェクトでなければステップS510に行く。
(ステップS509)撮影オブジェクト決定部1106は、少なくとも、i番目のオブジェクトのオブジェクト識別子を図示しない記憶媒体に格納する。なお、ここでは、撮影オブジェクトを決定することは、例えば、オブジェクト識別子を格納することである。
(ステップS510)撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在するか否かを判断する。可視領域が存在すればステップS511に行き、存在しなければ上位処理にリターンする。なお、かかる判断は、二次元平面において行われても良いし、三次元空間において行われても良い。
(ステップS511)撮影オブジェクト決定部1106は、カウンタiを1、インクリメントする。ステップS505に戻る。
なお、図5のフローチャートにおいて、不可視領域の角度を登録したが、可視領域の角度を登録し、以後、かかる角度に入いるオブジェクトのみを処理対象としても良い。
また、図5のフローチャートのステップS510において、撮影オブジェクト決定部1106は、ゲーム端末装置12からの距離が近い順(範囲や角度を区切った中のオブジェクトの集合の中での近い順でも良い)にオブジェクトを検査し、ゲーム端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報を不可視領域として登録していき、可視領域がなくなった場合(すべてが不可視領域になった場合と同意義)に、オブジェクトがゲーム端末装置12に撮影されているか否かの検査を終了することを説明した。
また、具体的には、ステップS510の処理は、以下である。つまり、撮影オブジェクト決定部1106は、ゲーム端末装置12から近い順にオブジェクトを検査し、ゲーム端末装置12が撮影しているとして先に決定したオブジェクトの撮影により不可視となる領域の情報(ここでは、通常、後述の最小角度(θ1)および最大角度(θ2))を不可視領域として登録し、次に検査するオブジェクトとゲーム端末装置12とにより不可視領域となる領域の情報を取得し、最小角度(θ3)および最大角度(θ4)により特定される領域のすべてが既に不可視領域として登録されているか否かを判断し、不可視領域として登録されていなければ次に検査するオブジェクトをゲーム端末装置12が撮影しているとして決定し、当該最小角度(θ3)および最大角度(θ4)により特定される領域を不可視領域として登録する処理を繰り返し、端末情報が有する視野角すべての領域が不可視領域となった場合に、オブジェクトの検査を終了することである。
さらに、図5のフローチャートにおいて、可視領域が存在しなくなった場合に、撮影されているオブジェクトの検知処理を終了した。しかし、閾値の数だけ、可視領域内のオブジェクトが見つかった場合、予め決められた条件(例えば、病院、レストランなどの特定のジャンルなど)に合致するオブジェクトが見つかった場合、ゲーム端末装置12の距離から所定以内の距離にあるオブジェクトのみを検査対象とするなど、他の条件により、オブジェクトの検知処理を終了しても良い。
次に、ステップS502のオブジェクトソート処理について、図6のフローチャートを用いて説明する。
(ステップS601)距離算出部1105は、カウンタiに1を代入する。
(ステップS602)距離算出部1105は、オブジェクト情報格納部1101に、i番目のオブジェクトが存在するか否かを判断する。i番目のオブジェクトが存在すればステップS603に行き、i番目のオブジェクトが存在しなければステップS607に行く。
(ステップS603)距離算出部1105は、i番目のオブジェクトの位置情報を、オブジェクト情報格納部1101から取得する。なお、i番目のオブジェクトの位置情報は、i番目のオブジェクトのオブジェクト情報に含まれる。
(ステップS604)距離算出部1105は、端末情報が有する位置情報が示す地点と、ステップS603で取得した位置情報が示す地点との距離を算出する。
(ステップS605)距離算出部1105は、ステップS604で取得した距離とi番目のオブジェクトのオブジェクト情報(またはそのうちの一部の情報)とを対にして、図示しない記録媒体に一時的に格納する。
(ステップS606)距離算出部1105は、カウンタiを1、インクリメントする。ステップS602に戻る。
(ステップS607)撮影オブジェクト決定部1106は、距離をキーとして、距離の近い(小さい)順に、オブジェクト情報をソートする。上位処理にリターンする。
次に、ステップS506の可視判断処理について、図7のフローチャートを用いて説明する。なお、ここでの可視判断処理は、第一の可視判断処理である。第一の可視判断処理は、オブジェクトの平面的な情報のみを用いて、オブジェクトがゲーム端末装置12のディスプレイに出力されているか否かを判断する処理である。
(ステップS701)撮影オブジェクト決定部1106は、カウンタiに1を代入する。
(ステップS702)撮影オブジェクト決定部1106は、判断対象となるオブジェクトの領域情報の中にi番目の点が存在するか否かを判断する。i番目の点が存在すればステップS703に行き、i番目の点が存在しなければステップS705に行く。なお、領域情報は、例えば、その外形を示す点から構成されるとする。外形を示す点とは、領域情報が示す領域が4角形であれば4点存在し、8角形であれば8点存在する。点とは、通常、(緯度,経度)または(x座標、y座標)などで示される。
(ステップS703)撮影オブジェクト決定部1106は、i番目の点と位置情報(端末情報が有する位置情報)との角度(θ)を算出し、当該角度(θ)をバッファに一時記憶する。角度(θ)の基準は、例えば、真北である。ただし、基準は一定であれば良く、真北であるとは限らない。なお、上記の位置情報とは、ゲーム端末装置12の位置を示す情報である。
(ステップS704)撮影オブジェクト決定部1106は、カウンタiを1、インクリメントする。ステップS702に戻る。
(ステップS705)撮影オブジェクト決定部1106は、ステップS703でバッファに一時格納された角度(θ)から、最小の角度(θ1)と最大角度(θ2)とを取得する。
(ステップS706)撮影オブジェクト決定部1106は、ステップS705で取得した最小の角度(θ1)と最大角度(θ2)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。既に登録されている角度の領域であればステップS710に行き、既に登録されている角度の領域を一部でも含まない場合はステップS707に行く。
(ステップS707)撮影オブジェクト決定部1106は、このオブジェクトを撮影オブジェクトであると判断する。リターン値として、撮影オブジェクトである旨の情報(例えば、「1」)を代入する。
(ステップS708)撮影オブジェクト決定部1106は、このオブジェクトを撮影オブジェクトであるとしたために、現在、不可視領域として登録されている角度に加え、最小の角度(θ1)と最大角度(θ2)の領域を不可視領域とする角度の幅(領域)を取得する。なお、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が35度であり、最大角度(θ2)が45度である場合、撮影オブジェクト決定部1106は、「30度から45度」を取得する。また、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が55度であり、最大角度(θ2)が60度である場合、「55度から60度」を取得する。
(ステップS709)撮影オブジェクト決定部1106は、ステップS708で取得した角度を登録する。なお、例えば、上記において、「30度から45度」は、「30度から40度」の情報に上書きされる。また、例えば、上記において、「55度から60度」が追記される。上位処理にリターンする。このとき、リターン値(撮影オブジェクトを示す値)も返される。
(ステップS710)撮影オブジェクト決定部1106は、撮影オブジェクト決定部1106は、このオブジェクトを非撮影オブジェクトであると判断する。リターン値として、非撮影オブジェクトである旨の情報(例えば、「0」)を代入する。上位処理にリターンする。このとき、リターン値(非撮影オブジェクトを示す値)も返される。
次に、ステップS506の可視判断処理について、図8のフローチャートを用いて説明する。なお、ここでの可視判断処理は、第二の可視判断処理である。第二の可視判断処理は、オブジェクトの立体的な情報を用いて、オブジェクトがゲーム端末装置12のディスプレイに出力されているか否かを判断する処理である。図8のフローチャートにおいて、図7のフローチャートと同様のステップについて、説明を省略する。
(ステップS801)撮影オブジェクト決定部1106は、i番目の点(x1,y1,z1)と位置情報(x0,y0,z0)との高さ方向の角度(θh)を算出し、バッファに格納する。
(ステップS802)撮影オブジェクト決定部1106は、視点(位置情報)からの高さ方向の角度(θ3)を取得する。θ3は、ステップS801で格納したθhのうち、最大の角度である。
(ステップS803)撮影オブジェクト決定部1106は、最小の角度(θ1)と最大角度(θ2)の領域において、高さ方向の角度(θ3)以上の角度が既に、登録されているか否かを判断する。登録されていればステップS710に行き、登録されていなければステップS707に行く。高さ方向の角度(θ3)以上の角度が既に登録されている場合は、対象となるオブジェクトは不可視領域にあり、撮影オブジェクトではないことを示す。
(ステップS804)撮影オブジェクト決定部1106は、このオブジェクトを撮影オブジェクトであるとしたために、現在、不可視領域として登録されている角度に加え、最小角度(θ1)と最大角度(θ2)の平面領域を不可視領域とする角度の幅(領域)を取得する。なお、例えば、現在、「30度から40度」が登録されており、最小の角度(θ1)が35度であり、最大角度(θ2)が45度である場合、撮影オブジェクト決定部1106は、「30度から45度」を取得する。
(ステップS805)撮影オブジェクト決定部1106は、このオブジェクトを撮影オブジェクトであるとしたために、高さ方向の角度(θ3)を取得する。なお、例えば、現在、最小の角度(θ1)と最大角度(θ2)の平面領域において、高さの角度「30度」が登録されている場合、取得した高さ方向の角度(θ3)が「35度」であれば、「35度」を取得する。
(ステップS806)撮影オブジェクト決定部1106は、ステップS804で取得した平面領域の角度(例えば、「30度から45度」)と、高さ方向の角度(例えば、「35度」)を対応付けて蓄積(登録)する。上位処理にリターンする。このとき、リターン値も返される。なお、撮影オブジェクト決定部1106は、最小角度(θ1)と最大角度(θ2)の平面領域において、現在、不可視領域として登録されている高さ方向の角度が、高さ方向の角度(θ3)以上であるか否かを判断し、高さ方向の角度(θ3)以上であれば、高さ方向の角度(θ3)を蓄積しない。
次に、ステップS420の同一空間端末処理について、図9のフローチャートを用いて説明する。
(ステップS901)同一空間端末決定部1117は、カウンタiに1を代入する。
(ステップS902)同一空間端末決定部1117は、ユーザ空間情報格納部1115の中にi番目のユーザ空間情報が存在するか否かを判断する。i番目のユーザ空間情報が存在すればステップS903に行き、存在しなければ上位処理にリターンする。
(ステップS903)同一空間端末決定部1117は、i番目のユーザ空間情報を、ユーザ空間情報格納部1115から読み出す。
(ステップS904)同一空間端末決定部1117は、カウンタjにi+1を代入する。
(ステップS905)同一空間端末決定部1117は、ユーザ空間情報格納部1115の中にj番目のユーザ空間情報が存在するか否かを判断する。j番目のユーザ空間情報が存在すればステップS906に行き、j番目のユーザ空間情報が存在しなければステップS907に行く。
(ステップS906)同一空間端末決定部1117は、j番目のユーザ空間情報を、ユーザ空間情報格納部1115から読み出す。
(ステップS907)同一空間端末決定部1117は、i番目のユーザ空間情報とj番目のユーザ空間情報とから、i番目のユーザ空間情報に対応するゲーム端末装置12とj番目のユーザ空間情報に対応するゲーム端末装置12とが、同一空間に存在するか否かを判断する。同一空間に存在すればステップS908に行き、同一空間に存在しなければステップS909に行く。
(ステップS908)同一空間端末決定部1117は、i番目のユーザ空間情報に対応するゲーム端末装置12の端末識別子を取得する。また、同一空間端末決定部1117は、j番目のユーザ空間情報に対応するゲーム端末装置12の端末識別子を取得する。そして、同一空間端末情報送信部1118は、i番目のユーザ空間情報に対応するゲーム端末装置12に送信する情報を取得し、バッファに一時蓄積する。また、同一空間端末決定部1117は、j番目のユーザ空間情報に対応するゲーム端末装置12に送信する情報を取得し、バッファに一時蓄積する。なお、送信する情報は、相手方のゲーム端末装置12の位置情報や、相手方のゲーム端末装置12の操作により、消去されたゲームコンテンツの識別子などである。
(ステップS909)同一空間端末決定部1117は、カウンタjを1、インクリメントする。ステップS905に戻る。
(ステップS910)同一空間端末情報送信部1118は、バッファに送信する情報が存在するか否かを判断する。送信する情報が存在すればステップS911に行き、送信する情報が存在しなければステップS912に行く。
(ステップS911)同一空間端末情報送信部1118は、対応するゲーム端末装置12に、バッファ内の情報を送信する。
(ステップS912)同一空間端末決定部1117は、送信した情報に対応して、図示しない記録媒体(管理情報格納部)の管理情報を更新する。なお、かかる更新は必要に応じて行う。
(ステップS913)同一空間端末決定部1117は、カウンタiを1、インクリメントする。ステップS905に戻る。
なお、図9のフローチャートにおいて、同一空間に存在する2以上の各ゲーム端末装置12に対して、同一空間に存在する他のゲーム端末装置12(自分以外のゲーム端末装置12)の情報を送信する。
次に、ゲーム端末装置12の動作について、図10のフローチャートを用いて説明する。
(ステップS1001)受付部121は、指示等を受け付けたか否かを判断する。指示等を受け付ければステップS1002に行き、指示等を受け付けなければステップS1001に戻る。
(ステップS1002)受付部121は、ステップS1001で受け付けた指示が起動指示であるか否かを判断する。起動指示であればステップS1003に行き、起動指示でなければステップS1011に行く。なお、起動指示とは、ゲーム端末装置12の起動の指示である。
(ステップS1003)カメラ部122は、カメラ映像を取得する。
(ステップS1004)出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。
(ステップS1005)端末情報取得部123の位置情報取得手段1231は、ゲーム端末装置12の位置を示す位置情報を取得する。
(ステップS1006)方向情報取得手段1232は、ゲーム端末装置12が向いている方向を示す方向情報を取得する。
(ステップS1007)端末情報取得部123は、ステップS1005で取得した位置情報と、ステップS1006で取得した方向情報とを有する端末情報を構成する。なお、端末情報取得部123は、予め格納している視野角を含む端末情報を構成することは好適である。
(ステップS1008)送信部124は、ステップS1007で構成した端末情報をサーバ装置11に送信する。
(ステップS1009)受信部125は、端末情報の送信に対応して、ゲーム情報を受信したか否かを判断する。ゲーム情報を受信すればステップS1010に行き、ゲーム情報を受信しなければステップS1015に行く。
(ステップS1010)ゲーム制御出力部128は、受信部125が受信したゲーム情報を用いて、ゲームに関する情報の出力制御を行う。具体的には、ゲーム制御出力部128は、ゲーム情報が有する1以上のゲームコンテンツを出力する、またはゲーム情報が有するゲームコンテンツに関する情報に応じて、出力されているゲームコンテンツを制御する等の処理を行う。なお、出力制御処理について、図11のフローチャートを用いて説明する。
(ステップS1011)受付部121は、ユーザから、ゲームに対する操作を受け付けたか否かを判断する。操作を受け付ければステップS1012に行き、操作を受け付けなければステップS1014に行く。
(ステップS1012)操作送信手段1281は、ステップS1012で受け付けた操作を送信する。なお、出力変更手段1283は、ステップS1011で受け付けられた操作に応じて、出力画面の表示を変更しても良い。また、操作送信手段1281は、操作に端末識別子を含ませて、当該操作をサーバ装置11に送信することは好適である。
(ステップS1013)変化情報受信手段1282は、ステップS1012で送信された操作に応じた変化情報を受信したか否かを判断する。変化情報を受信すればステップS1010に行き、変化情報を受信しなければステップS1013に戻る。
(ステップS1014)受付部121は、ユーザから、終了指示を受け付けたか否かを判断する。終了指示を受け付ければ処理を終了し、終了指示を受け付けなければステップS1003に戻る。
(ステップS1015)受信部125は、タイムアウトか否かを判断する。タイムアウトであればステップS1003に戻り、タイムアウトでなければステップS1009に戻る。
次に、ステップS1010の出力制御処理について、図11のフローチャートを用いて説明する。
(ステップS1101)ゲーム制御出力部128は、ゲーム情報の中に、可視命令が存在するか否かを判断する。可視命令が存在すればステップS1102に行き、可視命令が存在しなければステップS1107に行く。
(ステップS1102)ゲーム制御出力部128は、カウンタiに1を代入する。
(ステップS1103)ゲーム制御出力部128は、可視命令の中に、i番目のゲームコンテンツが存在するか否かを判断する。i番目のゲームコンテンツが存在すればステップS1104に行き、存在しなければステップS1107に行く。
(ステップS1104)ゲーム制御出力部128は、i番目のゲームコンテンツに対応する座標を取得する。なお、座標は、画面中の座標であり、ゲームコンテンツが出力される座標である。座標は、可視命令の中に含まれていることが好適である。
(ステップS1105)ゲーム制御出力部128は、i番目のゲームコンテンツを、ステップS1104で取得した座標が示す位置に出力する。なお、出力されたゲームコンテンツは、当該ゲームコンテンツに対応付けて送信されたプログラムに従って動作することは好適である。
(ステップS1106)ゲーム制御出力部128は、カウンタiを1、インクリメントする。ステップS1103に戻る。
(ステップS1107)ゲーム制御出力部128は、受信されたゲーム情報の中に、不可視命令が存在するか否かを判断する。不可視命令が存在すればステップS1108に行き、不可視命令が存在しなければステップS1109に行く。
(ステップS1108)ゲーム制御出力部128は、不可視命令に含まれるゲームコンテンツの識別子に対応するゲームコンテンツを、ゲーム端末装置12の画面上から消去する。
(ステップS1109)ゲーム制御出力部128は、受信されたゲーム情報の中に、変化情報が存在するか否かを判断する。変化情報が存在すればステップS1110に行き、変化情報が存在しなければ上位処理にリターンする。
(ステップS1110)ゲーム制御出力部128は、変化情報に応じて、ゲームコンテンツを変更する。上位処理にリターンする。
以下、本実施の形態における情報システム1の具体的な動作について説明する。情報システム1の概念図は図1である。情報システム1は、カメラで捉えている画像に含まれるオブジェクトに対応するゲームコンテンツを、当該オブジェクトに重ねて、または当該オブジェクトに対応する位置に表示できる。なお、ゲームコンテンツは、例えば、モンスターである。
また、複数人で、画面上に出現するモンスターを倒していき、すべてのモンスターが倒された場合に、ゲームが終了する。そして、ゲームの参加者には、倒したモンスターの数に応じたポイントが付与される、とする。なお、ポイントの付与は、図示しないポイント付与部が、端末識別子に対応付けてポイントを蓄積することにより行われる。
次に、2つの具体例を用いて、情報システム1について説明する。具体例1は、オブジェクトの高さまでは考慮せず、オブジェクトの平面的な情報のみを考慮して、撮影されている映像の中に含まれるオブジェクトを認識し、当該オブジェクトに対応付けられているゲームコンテンツを出力する態様である。具体例2は、オブジェクトの高さをも考慮して、撮影されている映像の中に含まれるオブジェクトを認識し、当該オブジェクトに対応付けられているゲームコンテンツを出力する態様である。
(具体例1)
今、サーバ装置11のオブジェクト情報格納部1101は、図12に示すオブジェクト情報管理表を保持している。オブジェクト情報管理表は、地図上のオブジェクト情報を管理している表である。オブジェクト情報管理表は、「オブジェクト識別子」「オブジェクト名」「URL」「位置情報」「領域情報」などの属性値を有するレコードを1以上、管理している。「オブジェクト識別子」は、ここでは、オブジェクトのIDである。「オブジェクト名」は、オブジェクトの名称を示す。URLは、オブジェクトに関して説明するウェブページ(ここでのオブジェクト関連情報)が存在する場所を示す情報である。「位置情報」は、オブジェクトの位置を特定する情報であり、ここでは、(緯度,経度)である。「領域情報」は、オブジェクトが配置されている二次元領域を示す情報であり、ここでは、多角形であるオブジェクトの3以上の頂点を示す。頂点も、ここでは、(緯度,経度)である。
また、サーバ装置11のゲームコンテンツ格納部1102は、図13に示すゲームコンテンツ管理表を保持している。ゲームコンテンツ管理表は、ゲームコンテンツを管理している表である。ゲームコンテンツ管理表は、「ID」「オブジェクト識別子」「ゲームコンテンツ」「プログラム」などの属性値を有するレコードを1以上、管理している。「プログラム」は、ゲームコンテンツを自立的に動作させるプログラムである、とする。
また、ゲーム端末装置12は、ここでは、2つのディスプレイを有する端末である、とする。なお、ゲーム端末装置12は、一つのディスプレイを有する端末であっても良いし、3つ以上のディスプレイを有する端末であっても良い。
かかる場合、ユーザは、ゲーム端末装置12を起動した、とする。すると、受付部121は、起動指示を受け付ける。そして、カメラ部122は、カメラ映像を取得する。そして、出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。すると、図14に示すように、ゲーム端末装置12の第一のディスプレイ(上部のディスプレイ)に、外界の映像が出力される。また、図14において、カーソルを移動させる4方向のボタンを有する。
次に、ゲーム端末装置12の端末情報取得部123の位置情報取得手段1231(ここでは、例えば、GPS受信機)は、ゲーム端末装置12の位置情報(X,Y)を取得する。
次に、方向情報取得手段1232は、ゲーム端末装置12が向いている方向を示す方向情報(θA)を取得する。方向情報(θA)は、例えば、真北から時計回りの角度(真東は90度)を示す。
また、端末情報取得部123は、カメラ部122が有する視野角の情報(単に「視野角」という)を読み出す。ここでは、視野角は「θa」である、とする。また、カメラ部122は、予め視野角「θa」を格納している。とする。
また、端末情報取得部123は、図示しないバッファ(端末識別子格納部)に格納されているゲーム端末装置12の端末識別子「090−1111−2222」を取得する。
次に、端末情報取得部123は、取得した位置情報(X,Y)と、取得した方向情報(θA)と、視野角(θa)と、端末識別子とを有する端末情報(X,Y,θA,θa,090−1111−2222)を構成する。
次に、送信部124は、構成した端末情報(X,Y,θA,θa,090−1111−2222)をサーバ装置11に送信する。
そして、サーバ装置11のサーバ受信部1104は、ゲーム端末装置12から、端末情報(X,Y,θA,θa,090−1111−2222)を受信する。
次に、撮影オブジェクト決定部1106は、以下のように、撮影オブジェクトを決定する。つまり、撮影オブジェクト決定部1106は、受信された端末情報が有する位置情報(X,Y)を取得する。
次に、撮影オブジェクト決定部1106は、端末情報が有する方向情報(θA)と視野角(θa)とを用いて、不可視領域となる角度を算出する。撮影オブジェクト決定部1106は、「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を可視領域となる角度として決定する。そして、可視領域を除く角度を不可視領域角度として算出し、蓄積する。かかる概念を図15に示す。なお、可視領域が真北のラインをまたがっていない場合、不可視領域角度は「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」である。また、可視領域が真北のラインをまたがっている場合、不可視領域角度は「(θA+(θa/2))<不可視領域角度<(θA−(θa/2))」である。
そして、距離算出部1105が、ゲーム端末装置12の位置情報(X,Y)を用いて、ゲーム端末装置12と各オブジェクトとの距離を算出する。そして、撮影オブジェクト決定部1106は、距離算出部1105が算出した距離を用いて、ゲーム端末装置12から近いオブジェクトの順に、オブジェクト情報格納部1101のオブジェクト情報をソートする。ソート処理については、図6で説明した処理により行う。ソート処理の結果、例えば、撮影オブジェクト決定部1106は、図16に示すようなオブジェクト一時管理表を取得する。オブジェクト一時管理表の各レコードは、オブジェクト識別子と距離とを有する。距離は、位置情報(X,Y)が示す点とオブジェクトの位置情報が示す点との距離である。
次に、撮影オブジェクト決定部1106は、オブジェクト一時管理表の上位のレコードから、撮影オブジェクトであるか否かを判断する。
つまり、撮影オブジェクト決定部1106は、オブジェクト一時管理表の1番目のレコードのオブジェクト識別子「1」を読み出す。そして、当該オブジェクト識別子「1」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「1」と対になる領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」を取得する。
次に、撮影オブジェクト決定部1106は、受信された端末情報(X,Y,θA,θa)と、取得した領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」とを用いて、1番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の1番目の点(x1,y1)を取得する。
次に、撮影オブジェクト決定部1106は、1番目の点(x1,y1)と位置情報(X,Y)との角度(θ1)を算出し、当該角度(θ1)をバッファに一時記憶する。同様に、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y)との角度(θ2,θ3,θ4)を算出し、当該角度(θ2,θ3,θ4)もバッファに一時記憶する。バッファには、(θ1,θ2,θ3,θ4)が格納されたことになる。
次に、撮影オブジェクト決定部1106は、バッファに一時格納された角度(θ1,θ2,θ3,θ4)から、最小角度(例えば、(θ1))と最大角度(例えば、(θ4))とを取得する。
次に、撮影オブジェクト決定部1106は、取得した最小角度(θ1)と最大角度(θ4)の領域すべてが、既に登録されている角度の領域(「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を除く角度)であるか否かを判断する。ここで、撮影オブジェクト決定部1106は、取得した最小角度(θ1)と最大角度(θ4)の領域は、可視領域であると判断した、とする。そして、撮影オブジェクト決定部1106は、オブジェクト識別子「1」のオブジェクトは、撮影オブジェクトであると判断する。
次に、撮影オブジェクト決定部1106は、「θ1<=不可視領域<=θ4」を新たな不可視領域とする。つまり、撮影オブジェクト決定部1106は、例えば、「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」と「θ1<=不可視領域<=θ4」とをマージした不可視領域角度を記録媒体に登録する。ここで、マージとは、今までの不可視領域に、「θ1<=不可視領域<=θ4」を加えることであり、今までの不可視領域が「θ1<=不可視領域<=θ4」を含む場合もあるし、含まない場合もある。
次に、撮影オブジェクト決定部1106は、1番目のオブジェクトのオブジェクト識別子「1」を図示しない記憶媒体に格納する。
次に、撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
次に、撮影オブジェクト決定部1106は、オブジェクト一時管理表の2番目のオブジェクト識別子「17」を取得し、当該識別子「17」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「17」と対になる領域情報(例えば、「(x101,y101)(x102,y102)(x103,y103)(x103,y103)」)を取得する。
次に、撮影オブジェクト決定部1106は、受信された端末情報(X,Y,θA,θa)と、取得した領域情報「(x101,y101)(x102,y102)(x103,y103)(x103,y103)」とを用いて、2番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「17」のオブジェクト)の領域情報の中の1番目の点(x101,y101)を取得する。
次に、撮影オブジェクト決定部1106は、1番目の点(x101,y101)と位置情報(X,Y)との角度(θ101)を算出し、当該角度(θ101)をバッファに一時記憶する。同様に、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「17」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y)との角度(θ102,θ103,θ104)を算出し、当該角度(θ102,θ103,θ104)もバッファに一時記憶する。バッファには、(θ101,θ102,θ103,θ104)が格納されたことになる。
次に、撮影オブジェクト決定部1106は、バッファに一時格納された角度(θ101,θ102,θ103,θ104)から、最小角度(例えば、(θ101))と最大角度(例えば、(θ103))とを取得する。
次に、撮影オブジェクト決定部1106は、取得した最小角度(θ101)と最大角度(θ103)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。そして、撮影オブジェクト決定部1106は、最小角度(θ101)と最大角度(θ103)の領域すべてが、既に登録されている角度の領域であると、判断したとする。したがって、撮影オブジェクト決定部1106は、オブジェクト識別子「17」のオブジェクトは撮影オブジェクトでない、と決定する。
次に、撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
次に、撮影オブジェクト決定部1106は、オブジェクト一時管理表の3番目のオブジェクト識別子「3」を取得し、当該識別子「3」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「3」と対になる領域情報「(x11,y11)(x12,y12)(x13,y13)(x14,y14)」を取得する。
次に、撮影オブジェクト決定部1106は、受信された端末情報(X,Y,θA,θa)と、取得した領域情報「(x11,y11)(x12,y12)(x13,y13)(x14,y14)」とを用いて、3番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「3」のオブジェクト)の領域情報の中の1番目の点(x11,y11)を取得する。
次に、撮影オブジェクト決定部1106は、1番目の点(x11,y11)と位置情報(X,Y)との角度(θ11)を算出し、当該角度(θ11)をバッファに一時記憶する。同様に、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「3」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y)との角度(θ12,θ13,θ14)を算出し、当該角度(θ12,θ13,θ14)もバッファに一時記憶する。バッファには、(θ11,θ12,θ13,θ14)が格納されたことになる。
次に、撮影オブジェクト決定部1106は、バッファに一時格納された角度(θ11,θ12,θ13,θ14)から、最小角度(例えば、(θ11))と最大角度(例えば、(θ14))とを取得する。
次に、撮影オブジェクト決定部1106は、取得した最小角度(θ11)と最大角度(θ14)の領域すべてが、既に登録されている角度の領域であるか否かを判断する。ここで、撮影オブジェクト決定部1106は、取得した最小角度(θ11)と最大角度(θ14)の領域と、既に登録されている不可視領域の角度とを比較する。そして、撮影オブジェクト決定部1106は、取得した最小角度(θ11)と最大角度(θ14)の領域は、可視領域であると判断した、とする。そして、撮影オブジェクト決定部1106は、オブジェクト識別子「3」のオブジェクトは、撮影オブジェクトであると判断する。
次に、撮影オブジェクト決定部1106は、「θ11<=不可視領域<=θ14」を新たな不可視領域とする。
次に、撮影オブジェクト決定部1106は、3番目のオブジェクトのオブジェクト識別子「3」を図示しない記憶媒体に格納する。
次に、撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断する。
以上の処理を、4番目以降のオブジェクトに対しても繰り返す。そして、オブジェクト識別子「25」で識別されるオブジェクトを撮影オブジェクトであると決定した後、撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在しない、と判断した、とする。そして、最終的に、撮影オブジェクトの識別子の集合「1,3,25」が得られた、とする。
次に、ゲーム情報構成部1109は、受信された端末情報が有する端末識別子「090−1111−2222」に対応する1以上の撮影オブジェクト識別子を、撮影オブジェクト識別子格納部1103から取得しようとするが、取得できない。
次に、ゲーム情報構成部1109は、可視オブジェクト識別子「1,3,25」を取得する。
次に、ゲームコンテンツ取得部1107は、1番目の撮影オブジェクトの識別子「1」に対応するゲームコンテンツを、ゲームコンテンツ管理表から検索し、取得した、とする。また、ゲームコンテンツ取得部1107は、2番目の撮影オブジェクトの識別子「3」に対応するゲームコンテンツを、ゲームコンテンツ管理表から検索し、取得した、とする。さらに、ゲームコンテンツ取得部1107は、3番目の撮影オブジェクトの識別子「25」に対応するゲームコンテンツを、ゲームコンテンツ管理表から検索したが、ゲームコンテンツは取得できなかった、とする。
そして、ゲームコンテンツ取得部1107は、識別子「1」に対応する領域情報「(x1,y1)(x2,y2)(x3,y3)(x4,y4)」を取得する。次に、ゲームコンテンツ取得部1107は、領域情報から、カメラ上の表示領域情報「(X1,Y1)(X2,Y2)(X3,Y3)(X4,Y4)」を算出する。つまり、ゲームコンテンツ取得部1107は、例えば、(緯度,経度)の情報を、カメラ上の座標情報(X,Y)に、カメラの端末情報を用いて変換する。また、ゲームコンテンツ取得部1107は、2番目の撮影オブジェクトの識別子「3」に対応する領域情報「(x11,y11)(x12,y12)(x13,y13)(x14,y14)」を取得する。次に、ゲームコンテンツ取得部1107は、領域情報から、カメラ上の表示領域情報「(X11,Y11)(X12,Y12)(X13,Y13)(X14,Y14)」を算出する。
次に、ゲーム情報構成部1109は、例えば、オブジェクト識別子「1」および「3」と、オブジェクト識別子「1」および「3」のそれぞれに対応する2つのゲームコンテンツと、各ゲームコンテンツを動作させるプログラムと、カメラ上の表示領域情報「(X1,Y1)(X2,Y2)(X3,Y3)(X4,Y4)」と「(X11,Y11)(X12,Y12)(X13,Y13)(X14,Y14)」とを有する第一のゲーム情報を構成し、記録媒体に一時蓄積する。
次に、不可視オブジェクト識別子取得部1108は、1以上の不可視オブジェクト識別子を取得できない。そして、ゲーム情報構成部1109は、1以上の不可視オブジェクト識別子を用いて、第二のゲーム情報を構成できない。
次に、サーバ送信部1111は、記録媒体に一時蓄積された第一のゲーム情報をゲーム端末装置12に送信する。
次に、ゲーム情報構成部1109は、第一のゲーム情報を用いて、管理情報(例えば、端末識別子「090−1111−2222」、可視オブジェクトの識別子「1」「3」「25」、ゲームコンテンツの識別子「1」「3」、位置情報(X,Y))を構成し、バッファに蓄積する。ここでは、オブジェクト識別子とゲームコンテンツ識別子とは同一である、とする。ここで、ゲーム情報構成部1109が構成して、バッファに蓄積した情報を図17に示す。図17は、管理情報管理表である。管理情報管理表は、「ID」「端末識別子」「可視オブジェクト」「ゲームコンテンツ」「位置情報」を有するレコードを格納する。ここで、ゲーム情報構成部1109が管理情報管理表に書き込んだレコードは「ID=38」のレコードである。なお、図17の「ID=1」のレコードにおいて、端末識別子「090−5631−1122」で識別されるゲーム端末装置12の画面には、ゲームコンテンツ「1」「3」「28」が表示されている。
次に、ゲーム端末装置12の受信部125は、端末情報の送信に対応して、第一のゲーム情報を受信する。この第一のゲーム情報は、オブジェクト識別子、ゲームコンテンツ、ゲームコンテンツを動作させるプログラムおよびカメラ上の表示領域情報を有する。なお、ゲーム情報は、プログラムやカメラ上の表示領域情報などを有さなくても良い。ゲーム情報は、例えば、オブジェクト識別子とゲームコンテンツだけでも良い。
次に、ゲーム制御出力部128は、受信部125が受信したゲーム情報を用いて、ゲームに関する情報の出力制御を行う。つまり、ゲーム制御出力部128は、オブジェクト識別子「1」に対応するゲームコンテンツを、表示領域情報「(X1,Y1)(X2,Y2)(X3,Y3)(X4,Y4)」の位置に出力する。また、ゲーム制御出力部128は、オブジェクト識別子「3」に対応するゲームコンテンツを、表示領域情報「(X11,Y11)(X12,Y12)(X13,Y13)(X14,Y14)」の位置に出力する。なお、ゲームコンテンツは、ゲームコンテンツを動作させるプログラムにより、画面上を動作する、とする。
そして、ユーザは、ゲーム端末装置12の下の十字カーソルを使い、出力されているゲームコンテンツ(例えば、オブジェクト識別子「3」のゲームコンテンツ)の上まで、カーソルを移動させた、とする。そして、出力されているゲームコンテンツの上で、ユーザがボタン1401を押下した、とする。なお、ボタン1401は、ゲームコンテンツを消去するKill命令を発生さえるボタンである、とする。
次に、受付部121は、当該ゲームコンテンツの識別子「3」を有するKill命令を受け付けた、とする。なお、ボタン1401を押下した場合、受付部121は、Kill命令を生成する、とする。つまり、受付部121は、カーソルの座標位置から、出力されているゲームコンテンツの識別子(ここでは、オブジェクト識別子と同一)を取得し、かつ、端末識別子「090−1111−2222」を取得し、当該ゲームコンテンツの識別子「3」と端末識別子「090−1111−2222」とを有するKill命令(例えば、「Kill 3,090−1111−2222」)を生成する。
次に、操作送信手段1281は、操作「Kill 3,090−1111−2222」を送信する。
そして、サーバ装置11のサーバ受信部1104は、ゲーム端末装置12から操作「Kill 3,090−1111−2222」を受信する。
次に、変化情報取得部1113は、操作「Kill 3,090−1111−2222」に応じて、コンテンツの消去命令(消去するためのプログラムなどでも良い)を構成する。構成したコンテンツの消去命令は「delete 3」である。そして、変化情報送信部1114は、変化情報「delete 3」を「090−1111−2222」で識別されるゲーム端末装置12に送信する。
次に、変化情報取得部1113は、取得した変化情報「delete 3」を用いて、管理情報管理表の「ID=38」の管理情報を更新する。つまり、変化情報取得部1113は、管理情報管理表の「ID=38」のゲームコンテンツを「1,3」から「3」を消去し、「1」のみとする。
次に、ゲーム端末装置12の変化情報受信手段1282は、送信された操作「Kill 3,090−1111−2222」に応じた変化情報「delete 3」を受信する。
そして、ゲーム制御出力部128は、変化情報「delete 3」に応じて、識別子「3」のゲームコンテンツを画面上から消去する。
次に、同一空間端末決定部1117等は、以下の同一空間端末処理を行う、とする。なお、ここでは、同一空間端末決定部1117は、一つでも一致するゲームコンテンツを出力しているゲーム端末装置12は、同一空間の端末である、と判断する、とする。そして、同一空間端末決定部1117は、図17の管理情報管理表の「ID=1」のレコードに対応するゲーム端末装置12と、「ID=38」のレコードに対応するゲーム端末装置12とは、同一空間に存在する、と判断する。
次に、同一空間端末決定部1117は、ゲーム端末装置12の端末識別子「090−5631−1122」を取得する。そして、同一空間端末決定部1117は、消去されたゲームコンテンツの識別子「3」を取得し、送信する情報「delete 3」を構成する。
次に、同一空間端末情報送信部1118は、端末識別子「090−5631−1122」で識別されるゲーム端末装置12に、「delete 3」を送信する。
次に、同一空間端末決定部1117は、送信した情報「delete 3」に対応して、図17の管理情報管理表の「ID=1」のレコードのゲームコンテンツの属性値から「3」を削除する。そして、図17の管理情報管理表の「ID=1」のレコードのゲームコンテンツの属性値は、「1」「28」となる。かかる状況を示した管理情報管理表を図18に示す。
以上より、端末識別子「090−1111−2222」のゲーム端末装置12で、ユーザの操作により消去された識別子「3」のゲームコンテンツは、他のゲーム端末装置12(ここでは、端末識別子「090−5631−1122」のゲーム端末装置12)においても消去される。つまり、本ゲームは、ゲーム参加者の全員で、オブジェクトに対応付けられたゲームコンテンツ(モンスター)を倒していくゲームである。
次に、端末識別子「090−1111−2222」のユーザが移動した、とする。そうすると、カメラの映像も変化する。そして、ゲーム端末装置12の位置情報取得手段1231は、ゲーム端末装置12の位置を示す位置情報(X',Y')を取得する。また、次に、方向情報取得手段1232は、ゲーム端末装置12が向いている方向を示す方向情報(θA')を取得する。また、端末情報取得部123は、カメラ部122が有する視野角「θa」を読み出す。また、端末情報取得部123は、図示しないバッファ(端末識別子格納部)に格納されているゲーム端末装置12の端末識別子「090−1111−2222」を取得する。
次に、端末情報取得部123は、取得した位置情報(X',Y')と、取得した方向情報(θA')と、視野角(θa)とを有する端末情報(X',Y',θA',θa,090−1111−2222)を構成する。
次に、送信部124は、構成した端末情報(X',Y',θA',θa,090−1111−2222)をサーバ装置11に送信する。
そして、サーバ装置11のサーバ受信部1104は、ゲーム端末装置12から、端末情報(X',Y',θA',θa,090−1111−2222)を受信する。
次に、撮影オブジェクト決定部1106は、上述したアルゴリズムにより、端末情報(X',Y',θA',θa,090−1111−2222)を用いて、撮影オブジェクトを決定する。ここで、撮影オブジェクト決定部1106は、撮影オブジェクト識別子「25」「28」を取得した、とする。
次に、ゲーム情報構成部1109は、受信された端末情報が有する端末識別子「090−1111−2222」に対応する1以上の撮影オブジェクト識別子「1」「3」「25」を、撮影オブジェクト識別子格納部1103(ここでは、図18の管理情報管理表)から取得する。
次に、ゲーム情報構成部1109は、今まで見えてなかったが、見えるようになったオブジェクトの識別子である可視オブジェクト識別子「28」を取得する。可視オブジェクト識別子は、撮影オブジェクト決定部1106が取得した撮影オブジェクト識別子に含まれ、撮影オブジェクト識別子格納部1103に格納されていないオブジェクト識別子である。
次に、不可視オブジェクト識別子取得部1108は、不可視オブジェクト識別子「1」を取得する。不可視オブジェクト識別子は、今まで見えていたが、見えなくなったオブジェクトの識別子であるである。また、不可視オブジェクト識別子は、撮影オブジェクト識別子格納部1103に格納されていないオブジェクト識別子であるが、撮影オブジェクト決定部1106が取得した撮影オブジェクト識別子に含まれないオブジェクト識別子である。
次に、ゲームコンテンツ取得部1107は、可視オブジェクト識別子「28」に対応するゲームコンテンツ(「28」のゲームコンテンツ)を、ゲームコンテンツ管理表から取得する。
そして、ゲームコンテンツ取得部1107は、識別子「28」に対応する領域情報「(x281,y281)(x282,y282)(x283,y283)(x284,y284)」を取得する、とする。次に、ゲームコンテンツ取得部1107は、領域情報から、カメラ上の表示領域情報「(X281,Y281)(X282,Y282)(X283,Y283)(X284,Y284)」を算出した、とする。つまり、ゲームコンテンツ取得部1107は、例えば、(緯度,経度)の情報を、カメラ上の座標情報に、カメラの端末情報を用いて変換する。
次に、ゲーム情報構成部1109は、オブジェクト識別子「28」と、オブジェクト識別子「28」に対応する2つのゲームコンテンツと、ゲームコンテンツを動作させるプログラムと、カメラ上の表示領域情報「(X281,Y281)(X282,Y282)(X283,Y283)(X284,Y284)」とを有する第一のゲーム情報を構成し、記録媒体に一時蓄積する。
次に、ゲーム情報構成部1109は、取得した不可視オブジェクト識別子「1」を用いて、第二のゲーム情報「delete 1」を構成する。第二のゲーム情報は、画面上から識別子「1」のゲームコンテンツを消去する命令である。
次に、サーバ送信部1111は、第一のゲーム情報、および第二のゲーム情報を、「090−1111−2222」で識別されるゲーム端末装置12に送信する。
次に、ゲーム情報構成部1109は、第一のゲーム情報、および第二のゲーム情報を用いて、管理情報を構成する。そして、ゲーム情報構成部1109は、管理情報管理表に、構成した管理情報を記録する。つまり、図18の管理情報管理表の可視オブジェクトの属性値は「25,28」となり、ゲームコンテンツの属性値は「28」となる。
次に、ゲーム端末装置12の受信部125は、端末情報の送信に対応して、第一のゲーム情報および第二のゲーム情報を受信する。
次に、ゲーム制御出力部128は、受信部125が受信したゲーム情報を用いて、ゲームに関する情報の出力制御を行う。つまり、ゲーム制御出力部128は、オブジェクト識別子「28」に対応するゲームコンテンツを、表示領域情報「(X281,Y281)(X282,Y282)(X283,Y283)(X284,Y284)」の位置に出力する。また、ゲーム制御出力部128は、「delete 1」を実行し、オブジェクト識別子「1」に対応するゲームコンテンツを消去する。
(具体例2)
今、サーバ装置11のオブジェクト情報格納部1101は、図19に示すオブジェクト情報管理表を保持している。オブジェクト情報管理表は、地図上のオブジェクト情報を管理している表である。オブジェクト情報管理表は、「オブジェクト識別子」「オブジェクト名」「URL」「位置情報」「領域情報」などの属性値を有するレコードを1以上、管理している。図19において、図12のオブジェクト情報管理表との差異は、領域情報を構成する各点が高さ情報(z)を有している点である。
また、サーバ装置11のゲームコンテンツ格納部1102は、図13に示すゲームコンテンツ管理表を保持している。
また、ゲーム端末装置12は、2つのディスプレイを有する端末である、とする。
かかる場合、ユーザは、ゲーム端末装置12を起動した、とする。すると、受付部121は、起動指示を受け付ける。そして、カメラ部122は、カメラ映像を取得する。そして、出力部126のカメラ映像出力手段1261は、カメラ部122が取得した映像を出力する。すると、図14に示すように、ゲーム端末装置12の第一のディスプレイ(上部のディスプレイ)に、外界の映像が出力される。
次に、ゲーム端末装置12の端末情報取得部123の位置情報取得手段1231(ここでは、例えば、GPS受信機)は、ゲーム端末装置12の位置情報(X,Y,Z)を取得する。なお、Zは、高さである。
次に、方向情報取得手段1232は、ゲーム端末装置12が向いている方向を示す方向情報(θA,θB)を取得する。θAは平面上の角度、θBは高さ方向の角度である。方向情報(θA)は、例えば、真北から時計回りの角度(真東は90度)を示す。
また、端末情報取得部123は、カメラ部122が有する視野角の情報(単に「視野角」という)を読み出す。ここでは、視野角は(θa,θb)である、とする。また、カメラ部122は、予め視野角(θa,θb)を格納している、とする。なお、θaは平面上の角度、θbは高さ方向の角度である。視野角(θa,θb)を図20に示す。
次に、端末情報取得部123は、取得した位置情報(X,Y,Z)と、取得した方向情報(θA,θB)と、視野角(θa,θb)とを有する端末情報(X,Y,Z,θA,θB,θa,θb)を構成する。
次に、送信部124は、構成した端末情報(X,Y,Z,θA,θB,θa,θb)をサーバ装置11に送信する。
そして、サーバ装置11のサーバ受信部1104は、ゲーム端末装置12から、端末情報(X,Y,Z,θA,θB,θa,θb)を受信する。
次に、撮影オブジェクト決定部1106は、以下のように、撮影オブジェクトを決定する。つまり、撮影オブジェクト決定部1106は、受信された端末情報が有する位置情報(X,Y,Z)を取得する。
次に、撮影オブジェクト決定部1106は、端末情報が有する方向情報(θA,θB)と視野角(θa,θb)とを用いて、不可視領域となる三次元の角度を算出する。撮影オブジェクト決定部1106は、可視領域となる二次元の角度「(θA−(θa/2))<=可視領域<=(θA+(θa/2))」を取得する。そして、可視領域となる高さ方向の角度「(θB−(θb/2))<=可視領域<=(θB+(θb/2))」を取得する。そして、上記の可視領域ではない領域を、不可視領域として蓄積する。
そして、撮影オブジェクト決定部1106は、取得した位置情報(X,Y,Z)を用いて、ゲーム端末装置12から近いオブジェクトの順に、オブジェクト情報格納部1101のオブジェクト情報をソートする。ソート処理については、図6で説明した処理により行う。なお、ここでは、位置情報(X,Y,Z)のうちの(X,Y)と、各オブジェクトの位置情報(例えば、(xa,ya))とを用いて、ゲーム端末装置12と各オブジェクトとの距離を算出し、距離をキーとしてソートする。そして、ソート処理の結果、撮影オブジェクト決定部1106は、図16に示すようなオブジェクト一時管理表を取得する。オブジェクト一時管理表の各レコードは、オブジェクト識別子と距離とを有する。距離は、位置情報(X,Y,Z)(ただし、Zは利用されなくても良い)が示す点とオブジェクトの位置情報が示す点との距離である。
次に、撮影オブジェクト決定部1106は、オブジェクト一時管理表の上位のレコードから、撮影オブジェクトであるか否かを判断する。
つまり、撮影オブジェクト決定部1106は、オブジェクト一時管理表の1番目のレコードのオブジェクト識別子「1」を読み出す。そして、当該オブジェクト識別子「1」をキーとして、オブジェクト情報管理表を検索し、オブジェクト識別子「1」と対になる領域情報「(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)」を取得する。
次に、撮影オブジェクト決定部1106は、受信された端末情報(X,Y,Z,θA,θB,θa,θb)と、取得した領域情報「(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)(x4,y4,z4)」とを用いて、1番目のオブジェクトが、撮影オブジェクトか否かを判断する。
まず、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の1番目の点(x1,y1,z1)を取得する。
次に、撮影オブジェクト決定部1106は、1番目の点(x1,y1,z1)と位置情報(X,Y,Z)との平面上の角度(θ11)を算出し、当該角度(θ11)をバッファに一時記憶する。また、撮影オブジェクト決定部1106は、1番目の点(x1,y1,z1)と位置情報(X,Y,Z)との高さ方向の角度(θ12)を算出し、当該角度(θ12)をバッファに一時記憶する。同様に、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y,Z)との平面上の角度(θ12,θ13,θ14)を算出し、当該角度(θ12,θ13,θ14)もバッファに一時記憶する。バッファには、(θ11,θ12,θ13,θ14)が格納されたことになる。さらに、同様に、撮影オブジェクト決定部1106は、判断対象となるオブジェクト(オブジェクト識別子「1」のオブジェクト)の領域情報の中の2番目の点から4番目の各点と位置情報(X,Y,Z)との高さ方向の角度(θ22,θ23,θ24)を算出し、当該角度(θ22,θ23,θ24)もバッファに一時記憶する。バッファには、(θ21,θ22,θ23,θ24)が格納されたことになる。
次に、撮影オブジェクト決定部1106は、バッファに一時格納された角度(θ11,θ12,θ13,θ14)から、平面上の最小角度(例えば、(θ11))と最大角度(例えば、(θ14))とを取得する。
また、撮影オブジェクト決定部1106は、バッファに一時格納された角度(θ21,θ22,θ23,θ24)から、高さ方向の最大角度(θ24)を取得する。
次に、撮影オブジェクト決定部1106は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域すべてが、既に登録されている領域であるか否かを判断する。ここで、撮影オブジェクト決定部1106は、取得した最小角度(θ11)と最大角度(θ14)の領域は、可視領域であると判断した、とする。そして、撮影オブジェクト決定部1106は、オブジェクト識別子「1」のオブジェクトは、撮影オブジェクトであると判断する。
なお、ここで、例えば、撮影オブジェクト決定部1106は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域の一部が、既に登録されている領域ではないと判断した場合も、可視領域であると判断する。つまり、撮影オブジェクト決定部1106は、オブジェクト識別子「1」のオブジェクトが、撮影オブジェクトであると判断する。また、例えば、撮影オブジェクト決定部1106は、取得した平面上の最小角度(θ11)と最大角度(θ14)の領域のすべてが、既に登録されている角度の領域であると判断した場合でも、高さ方向の最大角度(θ24)が、登録されている高さ方向の最大角度より大きい場合、平面上の最小角度(θ11)と最大角度(θ14)の領域において、可視領域であると判断する。つまり、撮影オブジェクト決定部1106は、オブジェクト識別子「1」のオブジェクトが、撮影オブジェクトであると判断するのである。
次に、撮影オブジェクト決定部1106は、「θ11<=不可視領域<=θ14」を新たな不可視領域とする。つまり、撮影オブジェクト決定部1106は、例えば、「0<=不可視領域角度<(θA−(θa/2))」および「(θA+(θa/2))<不可視領域角度<=360」と「θ11<=不可視領域<=θ14」とをマージした平面上の不可視領域角度を記録媒体に登録する。そして、登録されている高さ方向の最大角度が(θ24)より小さい場合、この平面上の領域に対応付けて、撮影オブジェクト決定部1106は、高さ方向の最大角度(θ24)を登録する。
次に、撮影オブジェクト決定部1106は、1番目のオブジェクトのオブジェクト識別子「1」を図示しない記憶媒体に格納する。
次に、撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在する、と判断した、とする。
以上の処理を、図16の2番目以降のオブジェクトに対しても行い、撮影オブジェクトを決定する。
そして、撮影オブジェクト決定部1106は、登録されている不可視領域、または可視領域から、可視領域が存在しない、と判断するまで、上記の検査(撮影オブジェクトの決定のための検査)を繰り返す。そして、撮影オブジェクト決定部1106は、撮影オブジェクトのオブジェクト識別子「1」、「3」、「25」を取得した、とする。
そして、ゲームコンテンツ取得部1107は、具体例1で述べたように、撮影オブジェクト識別子「1」「3」に対応するゲームコンテンツを取得する。そして、ゲーム情報構成部1109は、オブジェクト識別子「1」および「3」等を用いて、上述した処理により、第一のゲーム情報を構成し、記録媒体に一時蓄積する。
次に、サーバ送信部1111は、記録媒体に一時蓄積された第一のゲーム情報をゲーム端末装置12に送信する。
次に、ゲーム端末装置12の受信部125は、端末情報の送信に対応して、第一のゲーム情報を受信する。この第一のゲーム情報は、オブジェクト識別子、ゲームコンテンツ、ゲームコンテンツを動作させるプログラムおよびカメラ上の表示領域情報を有する。
次に、ゲーム制御出力部128は、受信部125が受信したゲーム情報を用いて、ゲームに関する情報の出力制御を行う。なお、撮影オブジェクトが決定された後の処理は、具体例1と同様であるので、詳細な説明を省略する。
以上、本実施の形態によれば、撮影映像内にゲームコンテンツを出力するゲーム端末装置12を提供できる。また、本実施の形態によれば、ユーザの居る場所に応じて、出力されるゲームコンテンツが異なり、リアリティーとバーチャルを融合させた非常に興味深いゲームが提供できる。また、本実施の形態によれば、ユーザのゲーム端末装置12の操作に応じて、出力中のゲームコンテンツを操作できる。また、本実施の形態によれば、同じ空間に居る複数人が一つのゲームに参加できる。また、本実施の形態によれば、撮影されているオブジェクトを三次元空間上で検知し、当該オブジェクトに対するゲームコンテンツを出力できる。また、本実施の形態によれば、撮影されているオブジェクトを短時間に決定し、当該オブジェクトに対するゲームコンテンツを出力できる。
なお、本実施の形態によれば、2以上のユーザにより、モンスターを倒すゲームの具体例について述べた。しかし、一人のユーザで楽しむゲームでも良い。また、ゲームの内容は問わないことは言うまでもない。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるサーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報と、オブジェクト識別子に対応付けられたゲームコンテンツとを格納しており、コンピュータを、ゲーム端末装置から、当該ゲーム端末装置の位置を示す位置情報と当該ゲーム端末装置が向いている方向を示す方向情報とを有する端末情報を受信するサーバ受信部と、前記端末情報が有する位置情報と、前記端末情報が有する方向情報と、予め格納されているまたは前記端末情報が有する視野角とを、前記記録媒体の各オブジェクト情報の領域情報に適用し、前記ゲーム端末装置が撮影している1以上のオブジェクトを決定する撮影オブジェクト決定部と、前記撮影オブジェクト決定部が決定した1以上の各オブジェクトに対応する1以上のゲームコンテンツを、前記記録媒体から取得するゲームコンテンツ取得部と、前記1以上のゲームコンテンツまたは前記1以上のゲームコンテンツに関する情報であるゲーム情報を、前記ゲーム端末装置に送信するサーバ送信部として機能させるためのプログラム、である。
上記プログラムにおいて、コンピュータを、前記撮影オブジェクト決定部が1以上の撮影オブジェクトを決定した後、当該1以上の撮影オブジェクト識別子と、記録媒体に直前に蓄積された1以上の撮影オブジェクト識別子とを比較し、不可視となったオブジェクトのオブジェクト識別子を取得する不可視オブジェクト識別子取得部と、前記不可視となったオブジェクトのオブジェクト識別子に対応するゲームコンテンツを、前記ゲーム端末装置上で不可視とする命令である不可視命令を含むゲーム情報を構成するゲーム情報構成部と、前記撮影オブジェクト決定部が決定した1以上のオブジェクトの1以上の撮影オブジェクト識別子を取得し、前記記録媒体に蓄積する撮影オブジェクト識別子蓄積部としてさらに機能させるプログラムであり、前記サーバ送信部は、前記ゲーム情報構成部が構成したゲーム情報を前記ゲーム端末装置に送信し、前記ゲーム端末装置のゲーム制御出力部は、前記受信部が受信したゲーム情報が有する不可視命令に対応するゲームコンテンツを消去するプログラムであることは好適である。
上記プログラムにおいて、コンピュータを、前記サーバ受信部が受信した端末識別子と、当該ゲーム端末装置の位置を示す位置情報または前記撮影オブジェクト決定部が決定した1以上のオブジェクトの1以上の撮影オブジェクト識別子を有するユーザ空間情報を、記憶媒体に蓄積するユーザ空間情報蓄積部と、前記記憶媒体に格納されている空間情報を用いて、同じ空間に存在する2以上のゲーム端末装置の端末識別子を取得する同一空間端末決定部と、前記同一空間端末決定部が取得した2以上の端末識別子を用いて、前記2以上の各端末識別子で識別される各ゲーム端末装置に、自分を除く他のゲーム端末装置の位置情報または操作または変化情報を送信する同一空間端末情報送信部としてさらに機能させるプログラムであることは好適である。
また、本実施の形態におけるゲーム端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、当該ゲーム端末装置の位置を示す位置情報と、当該ゲーム端末装置が向いている方向を示す方向情報とを取得する端末情報取得部と、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、前記端末情報取得部が取得した位置情報と、方向情報とを有する端末情報を前記サーバ装置に送信する送信部と、前記端末情報の送信に対応して、前記ゲーム情報を受信する受信部と、前記受信部が受信したゲーム情報が有する1以上のゲームコンテンツを出力する、または、前記受信部が受信したゲーム情報が有するゲームコンテンツに関する情報に応じて、ゲームコンテンツを制御するゲーム制御出力部として機能させるためのプログラム、である。
上記プログラムにおいて、コンピュータを、出力中のゲームコンテンツに対する操作を受け付ける受付部としてさらに機能させ、前記ゲーム制御出力部は、前記受付部が受け付けた操作に応じて、ゲームコンテンツを変化させるものとしてコンピュータを機能させることは好適である。
上記プログラムにおいて、コンピュータを、前記自分を除く他のゲーム端末装置の位置情報または操作または変化情報を受信する同一空間端末情報受信部としてさらに機能させ、前記ゲーム制御出力部は、前記同一空間端末情報受信部が受信した位置情報または操作または変化情報に応じて、ゲームコンテンツを変化させるものとしてコンピュータを機能させることは好適である。
(実施の形態2)
本実施の形態において、ユーザの操作によるゲームコンテンツの変化は、すべてゲーム端末装置で処理する点が、実施の形態1とは異なる。
本実施の形態における情報システム2の概念図は、図1と符号が異なるだけで、同様である。図21は、本実施の形態における情報システム2のブロック図である。また、図22は、ゲーム端末装置22のブロック図である。情報システム2は、サーバ装置21、1以上のゲーム端末装置22を具備する。
サーバ装置21は、オブジェクト情報格納部1101、ゲームコンテンツ格納部1102、撮影オブジェクト識別子格納部1103、サーバ受信部1104、距離算出部1105、撮影オブジェクト決定部1106、ゲームコンテンツ取得部1107、不可視オブジェクト識別子取得部1108、ゲーム情報構成部1109、撮影オブジェクト識別子蓄積部1110、およびサーバ送信部1111を具備する。
ゲーム端末装置22は、受付部121、カメラ部122、端末情報取得部123、送信部124、受信部125、出力部126、およびゲーム制御出力部228を具備する。
出力部126は、カメラ映像出力手段1261を具備する。また、ゲーム制御出力部228は、変化情報取得手段2281、変化情報出力手段2282を具備する。
ゲーム端末装置22を構成する受付部121は、ユーザから、指示やデータ等の入力を受け付ける。各種の指示とは、例えば、ゲーム端末装置22の起動指示、出力中のゲームコンテンツに対する操作、カメラ部122に対する各種の指示などである。また、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。操作の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部121は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
ゲーム制御出力部228は、受信部125が受信したゲーム情報が有する1以上のゲームコンテンツを出力する。また、ゲーム制御出力部228は、受付部121が受け付けた操作に応じて、ゲームコンテンツを変化させる。
ゲーム制御出力部228を構成する変化情報取得手段2281は、受付部121が受け付けた操作に応じた変化情報を取得する。変化情報取得手段2281は、通常、MPUやメモリ等から実現され得る。変化情報取得手段2281の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
変化情報出力手段2282は、変化情報取得手段2281が取得した変化情報を出力する。その結果、出力中のゲームコンテンツが変化する。変化情報出力手段2282は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。変化情報出力手段2282は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システム2の動作について説明する。まず、サーバ装置21の動作について、図23のフローチャートを用いて説明する。図23のフローチャートにおける各ステップは、図4のフローチャートにおけるいずれかのステップと同一であるので、説明を省略する。
次に、ゲーム端末装置22の動作について、図24のフローチャートを用いて説明する。図24のフローチャートにおいて、図10のフローチャートと同一のステップについて、説明を省略する。
(ステップS2401)変化情報取得手段2281は、受付部121が受け付けた操作に応じた変化情報を取得する。
(ステップS2402)変化情報出力手段2282は、ステップS2201で取得された変化情報を出力する。その結果、出力中のゲームコンテンツが変化する。
なお、図24のステップS1010の出力制御処理において、通常、受信されたゲーム情報の中に、変化情報は存在しない。
なお、本実施の形態において、ユーザの操作によるゲームコンテンツの変化は、すべてゲーム端末装置22で処理する点が、実施の形態1とは異なるだけであるので、本実施の形態における情報システム2の具体的な動作については、説明を省略する。
以上、本実施の形態によれば、撮影映像内にゲームコンテンツを出力するゲーム端末装置22を提供できる。また、本実施の形態によれば、ユーザの居る場所に応じて、出力されるゲームコンテンツが異なり、リアリティーとバーチャルを融合させた非常に興味深いゲームが提供できる。また、本実施の形態によれば、ユーザのゲーム端末装置22の操作に応じて、出力中のゲームコンテンツを高速に操作できる。
なお、本実施の形態におけるサーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、〜。
また、本実施の形態におけるゲーム端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報と、オブジェクト識別子に対応付けられたゲームコンテンツとを格納しており、コンピュータを、ゲーム端末装置から、当該ゲーム端末装置の位置を示す位置情報と当該ゲーム端末装置が向いている方向を示す方向情報とを有する端末情報を受信するサーバ受信部と、前記端末情報が有する位置情報と、前記端末情報が有する方向情報と、予め格納されているまたは前記端末情報が有する視野角とを、前記記録媒体の各オブジェクト情報の領域情報に適用し、前記ゲーム端末装置が撮影している1以上のオブジェクトを決定する撮影オブジェクト決定部と、前記撮影オブジェクト決定部が決定した1以上の各オブジェクトに対応する1以上のゲームコンテンツを、前記記録媒体から取得するゲームコンテンツ取得部と、前記1以上のゲームコンテンツまたは前記1以上のゲームコンテンツに関する情報であるゲーム情報を、前記ゲーム端末装置に送信するサーバ送信部として機能させるためのプログラム、である。
また、本実施の形態におけるゲーム端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、当該ゲーム端末装置の位置を示す位置情報と、当該ゲーム端末装置が向いている方向を示す方向情報とを取得する端末情報取得部と、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、前記端末情報取得部が取得した位置情報と、方向情報とを有する端末情報を前記サーバ装置に送信する送信部と、前記端末情報の送信に対応して、前記ゲーム情報を受信する受信部と、前記受信部が受信したゲーム情報が有する1以上のゲームコンテンツを出力する、または、前記受信部が受信したゲーム情報が有するゲームコンテンツに関する情報に応じて、ゲームコンテンツを制御するゲーム制御出力部として機能させるためのプログラム、である。
上記プログラムにおいて、前記ゲーム制御出力部は、前記受付部が受け付けた操作に応じた変化情報を取得する変化情報取得手段と、前記変化情報を出力する変化情報出力手段とを具備するものとしてコンピュータを機能させることは好適である。
(実施の形態3)
本実施の形態において、実施の形態1、2で説明した情報システムの処理をスタンドアロンで行うゲーム端末装置について説明する。
図25は、本実施の形態におけるゲーム端末装置3のブロック図である。
ゲーム端末装置3は、オブジェクト情報格納部1101、ゲームコンテンツ格納部1102、撮影オブジェクト識別子格納部1103、距離算出部1105、撮影オブジェクト決定部1106、受付部121、カメラ部122、端末情報取得部123、ゲームコンテンツ取得部1107、不可視オブジェクト識別子取得部1108、ゲーム情報構成部1109、撮影オブジェクト識別子蓄積部1110、出力部126、およびゲーム制御出力部228を具備する。また、出力部126は、カメラ映像出力手段1261を具備する。さらに、ゲーム制御出力部228は、変化情報取得手段2281、変化情報出力手段2282を具備する。
次に、ゲーム端末装置3の動作について図26のフローチャートを用いて説明する。図26のフローチャートの各ステップは、図4または図10のいずれかのステップであるので、図26のフローチャートについて説明を省略する。
なお、本実施の形態において、サーバ装置との通信は行わず、すべてゲーム端末装置3で処理する点が、実施の形態1、2とは異なるだけであるので、本実施の形態におけるゲーム端末装置3の具体的な動作については、説明を省略する。
以上、本実施の形態によれば、撮影映像内にゲームコンテンツを出力するゲーム端末装置12を提供できる。また、本実施の形態によれば、ユーザの居る場所に応じて、出力されるゲームコンテンツが異なり、リアリティーとバーチャルを融合させた非常に興味深いゲームが提供できる。また、本実施の形態によれば、撮影されているオブジェクトを短時間に決定し、オブジェクトに対するゲームコンテンツを出力できる。
なお、本実施の形態におけるゲーム端末装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、記録媒体に、オブジェクトを識別するオブジェクト識別子と、当該オブジェクトが存在する領域を示す領域情報とを有する1以上のオブジェクト情報と、オブジェクト識別子に対応付けられたゲームコンテンツとを格納しており、コンピュータを、ゲーム端末装置の位置を示す位置情報と、当該ゲーム端末装置が向いている方向を示す方向情報と、視野角とを有する端末情報を取得する端末情報取得部と、映像を取得するカメラ部と、前記カメラ部が取得した映像を出力するカメラ映像出力手段を具備する出力部と、前記端末情報が有する位置情報と方向情報と視野角とを、前記記録媒体の各オブジェクト情報の領域情報に適用し、前記ゲーム端末装置が撮影している1以上のオブジェクトを決定する撮影オブジェクト決定部と、前記撮影オブジェクト決定部が決定した1以上の各オブジェクトに対応する1以上のゲームコンテンツを、前記記録媒体から取得するゲームコンテンツ取得部と、前記1以上のゲームコンテンツを出力する、または前記1以上のゲームコンテンツに関する情報に応じて、ゲームコンテンツを制御するゲーム制御出力部として機能させるためのプログラム、である。
また、図27は、本明細書で述べたプログラムを実行して、上述した実施の形態のゲーム端末装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図27は、このコンピュータシステム340の概観図であり、図28は、コンピュータシステム340のブロック図である。
図27において、コンピュータシステム340は、FDドライブ、CD−ROMドライブを含むコンピュータ341と、キーボード342と、マウス343と、モニタ344と、マイク345とを含む。
図28において、コンピュータ341は、FDドライブ3411、CD−ROMドライブ3412に加えて、MPU3413と、CD−ROMドライブ3412及びFDドライブ3411に接続されたバス3414と、ブートアッププログラム等のプログラムを記憶するためのROM3415とに接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3416と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3417とを含む。ここでは、図示しないが、コンピュータ341は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム340に、上述した実施の形態の情報システム等の機能を実行させるプログラムは、CD−ROM3501、またはFD3502に記憶されて、CD−ROMドライブ3412またはFDドライブ3411に挿入され、さらにハードディスク3417に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ341に送信され、ハードディスク3417に記憶されても良い。プログラムは実行の際にRAM3416にロードされる。プログラムは、CD−ROM3501、FD3502またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ341に、上述した実施の形態の情報システム等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム340がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。