ネットワークシステム
【課題】
本発明の課題は、ネットワークを構築する端末の台数が多くなっても、ピアツーピア通信が可能となるようなネットワークシステムを提供することを目的とする。
【解決手段】
本発明は、スレーブ端末が他のグループの端末と通信する場合、マスタ端末を介して通信することで、ネットワークを構築する全ての端末が直接接続されていなくても、各端末間で通信することができ、情報の送受信が可能となる。これにより、1台の端末に直接接続される端末の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末を接続し、端末間での通信が可能となる。多くの台数の端末からなるネットワークを構築することができる。
本発明の課題は、ネットワークを構築する端末の台数が多くなっても、ピアツーピア通信が可能となるようなネットワークシステムを提供することを目的とする。
【解決手段】
本発明は、スレーブ端末が他のグループの端末と通信する場合、マスタ端末を介して通信することで、ネットワークを構築する全ての端末が直接接続されていなくても、各端末間で通信することができ、情報の送受信が可能となる。これにより、1台の端末に直接接続される端末の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末を接続し、端末間での通信が可能となる。多くの台数の端末からなるネットワークを構築することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の端末をピアツーピア通信によって情報の送受信を可能に接続することで構築されたネットワークシステムに関するものである。
【背景技術】
【0002】
従来、複数の端末で情報の送受信を可能とするネットワークシステムの1つとして、1台のサーバに対して複数台のクライアント端末が接続することで構築されたネットワークシステムがある。このようなネットワークシステムは、構造が単純である反面、クライアント端末の台数が多くなるとサーバや回線に多大な負荷が発生するという構造的な弱点を有している。
【0003】
別のネットワークシステムとしては、ピアツーピア通信によるネットワークシステムがある(例えば特許文献1参照)。このピアツーピア通信によるネットワークは、サーバを介さずに複数の端末間で直接通信できるように接続されたネットワークシステムである。このようなピアツーピア通信によって構築されたネットワークシステムは、例えば音声データを送受信して行うボイスチャットなどに利用されている。
【0004】
【特許文献1】特開2004−312331号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、ピアツーピア通信によって構築されたネットワークの場合、端末やネットワーク回線の性能等の物理的な要因により、ピアツーピア通信可能な端末数には制限がある。例えば、音声データのように比較的容量の大きいデータの送受信を行うボイスチャットの場合、接続できる端末数としては、80台程度が限界である。すなわち、多くの台数の端末によるネットワークを構成することができない。
【0006】
そこで、本発明は上記実情に鑑み、ネットワークを構築する端末の台数が多くなっても、ピアツーピア通信が可能となるようなネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決するために、本発明のネットワークシステムは、複数の端末をピアツーピア通信によって情報の送受信を可能に接続することで構築されたネットワークシステムであって、互いにピアツーピア通信する複数の端末からなるグループを複数備え、前記端末は、マスタとして前記グループ内の他の端末と接続する1台のマスタ端末と、前記マスタに対するスレーブとして前記マスタ端末に接続する複数のスレーブ端末とを有し、前記スレーブ端末は、自己の所属するグループ内のマスタ端末及び他のスレーブ端末と通信し、前記マスタ端末は、他のグループのマスタ端末と通信し、前記スレーブ端末は、他のグループの端末と通信する場合、自己の所属するグループ内のマスタ端末を介して通信することを特徴とする。
【0008】
本発明のネットワークシステムによれば、スレーブ端末は自己のグループのマスタ端末と接続し、マスタ端末は自己のグループのスレーブ端末、及び、他のグループのマスタ端末と接続する。スレーブ端末が他のグループの端末と通信する場合、マスタ端末を介して通信することで、ネットワークを構築する全ての端末が直接接続されていなくても、各端末間で通信することができ、情報の送受信が可能となる。これにより、1台の端末に直接接続される端末の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末を接続し、端末間での通信が可能となる。
【発明の効果】
【0009】
本発明のネットワークシステムは、スレーブ端末が他のグループの端末と通信する場合、マスタ端末を介して通信することで、ネットワークを構築する全ての端末が直接接続されていなくても、各端末間で通信することができ、情報の送受信が可能となる。これにより、1台の端末に直接接続される端末の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末を接続し、端末間での通信が可能となる。
【発明を実施するための最良の形態】
【0010】
以下、本発明のネットワークシステムについて図面を参照しながら説明する。
【0011】
[実施の形態1]
まず、実施の形態1で説明する本発明のネットワークシステムの構成図を図1に示す。ネットワークシステムは、複数の端末1が互いにピアツーピア通信可能に接続されている。
【0012】
この複数の端末1は、CPU(Central Processing Unit)と、RAM(Randam Access Memory)と、ROM(Read Only Memory)と、HDD(Hard Disk Drive)等の記憶部と、インターフェース等により構成されている。
【0013】
端末1のCPUは、マイクロプロセッサによって構成され、ROMに格納されたピアツーピア通信を行うための所定のプログラムを実行することで、インターフェースを介して他の端末1とピアツーピア通信可能に接続する。そして、端末1のRAMは、DRAM(Dynamic RAM)、SDRAM(Synchronous DRAM)等で構成され、プログラム実行のための一次記憶領域として使用される。
【0014】
この端末1は、ピアツーピア通信を行うための所定のプログラムを実行することで、インターフェースを介して他の端末1との接続が確立され、互いにピアツーピア通信が可能となる。この確立された接続は、各端末1間を直接ケーブルで接続するようなものに限られるものではなく、無線を利用して接続されたものであってもよい。また、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)を介して接続されていてもよい。そして、この端末1間で確立された接続は、ネットワークの状態や端末1を操作するユーザの意思により適宜切断することも可能で、さらに別の端末1との間で再び接続を確立することもできる。
【0015】
このネットワークシステムは、互いにピアツーピア通信する複数の端末1からなるグループ2を複数備えている。図1において、直線又は点線は端末1間でのピアツーピア通信可能な状態を示している。この複数の端末1からなるグループ2は、1台のマスタ端末1−Mと、複数のスレーブ端末1−Sとにより構成される。
【0016】
マスタ端末1−Mは、自己の所属するグループ2内の端末1でマスタとして動作する。このマスタ端末1−Mは、複数のスレーブ端末1−Sとピアツーピア通信可能に接続されている。そして、このマスタ端末1−Mは、他のグループ2のマスタ端末1−Mとピアツーピア通信可能に接続されている。このマスタ端末1−Mは、他のグループのマスタ端末1−Mとマスタグループ3を形成する。このマスタグループ3が複数ある場合、マスタグループ3内のマスタ端末1−Mのうち1台のマスタ端末1−Mを他のマスタ端末1−Mのマスタとする。
【0017】
複数のスレーブ端末1−Sは、自己の所属するグループ2内の端末1でマスタ端末1−Mのスレーブとして動作する。このスレーブ端末1−Sは、自己の所属するグループ2内の他のスレーブ端末1−Sとピアツーピア通信可能に接続されている。そして、このスレーブ端末1−Sは、自己の所属するグループ2のマスタ端末1−Mを介して他のグループ2のマスタ端末1−Mやスレーブ端末1−Sとピアツーピア通信可能に接続されている。すなわち、このネットワークシステムは、グループ2間においては、間接的にスレーブ端末1−S同士を接続している。
【0018】
このマスタ端末1−Mは、他のグループのマスタ端末1−Mと通信することができる以外は、スレーブ端末1−Sと略同じである。言い換えると、マスタ端末1−Mは、グループ2に所属するスレーブ端末1−Sと同等で、グループ2内の端末の代表として他のグループ2の端末1と通信することができる。
【0019】
このマスタ端末1−Mとスレーブ端末1−Sは、ネットワークの状態等により、マスタ/スレーブの関係が変更されることがある。すなわち、ネットワークの状態によっては、マスタ端末1−Mが他の端末のスレーブとしてスレーブ端末1−Sとなったり、スレーブ端末1−Sが他の端末のマスタとしてマスタ端末1−Mとなったりする。
【0020】
さらには、1台のマスタ端末1−Mと複数のスレーブ端末1−Sが所属するグループ2も流動的なものであり、端末1は、ネットワークの状態等によって所属するグループ2が変更されることもある。また、新たなグループ2が形成されることもある。このように、端末のマスタ/スレーブの関係及び所属するグループは、常に流動的なものであり、ネットワークの状態やネットワークに接続されている端末1の性能等により適宜変更される。
【0021】
図1においては、1つのグループ2に3台の端末1が所属する形で、そのグループ2を3組備えたネットワークシステムである。この場合、1つのグループ2に所属する端末1の台数とグループ2の組数との積により表される9台の端末1によるネットワークシステムが構築される。これを拡張して、1つのグループ2に所属する端末1を10台とし、そのグループ2が10組あるとすると、100台の端末1により構成されるネットワークシステムとなる。
【0022】
このネットワークシステムは、従来のピアツーピア通信を可能とするネットワークシステムのように各端末が他の端末全てと接続されているのではない。このネットワークシステムは、スレーブ端末1−Sが自己のグループのマスタ端末1−Mと接続し、他のグループ2のスレーブ端末1−Sには直接接続されていない。また、マスタ端末1−Mが自己のグループのスレーブ端末1−S、及び、他のグループ2のマスタ端末1−Mと接続し、他のグループ2のスレーブ端末1−Sには直接接続されていない。すなわち、1つの端末1に直接接続されている端末1の台数は、ネットワークシステムを構築する端末1の台数に比べて少なくなる。
【0023】
このネットワークシステムは、端末1を上述のような構成となるように接続することで、スレーブ端末1−Sが他のグループ2の端末1と通信する場合、マスタ端末1−Mを介して通信することで、ネットワークを構築する全ての端末1が直接接続されていなくても、各端末1間で通信することができ、情報の送受信が可能となる。これにより、1台の端末1に直接接続される端末1の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末1を接続し、端末1間での通信を可能とする。したがって、従来のネットワークシステムよりも多くの台数の端末1からなるネットワークシステムを構築することができる。
【0024】
このように、図1で示されるネットワークシステムは、スレーブ端末1−S同士の接続によるピアツーピア通信、スレーブ端末1−Sとマスタ端末1−Mとの接続によるピアツーピア通信、マスタ端末1−M同士の接続によるピアツーピア通信の3つのピアツーピア通信が存在することになる。ここで、スレーブ端末1−Sとマスタ端末1−M間のピアツーピア通信は、同じグループ2内で行われる通信であるため、スレーブ端末1−S同士間の通信と略同じである。
【0025】
この図1のような端末1間の通信について、スレーブ端末1−S同士の通信をマスタ端末1−M同士間の通信よりも下位の階層と捉えるような階層を用いて説明すると、スレーブ端末1−S同士の通信及びスレーブ端末1−Sとマスタ端末1−M間の通信も下位階層の通信である。この通信よりも上位階層に所属する通信に、マスタ端末1−M同士間の通信がある。すなわち、マスタ端末1−Mは、下位階層の通信のほかに上位階層の通信を行うこともできる。
【0026】
これを拡張すると、さらに多くの台数の端末1間でピアツーピア通信をすることができるネットワークシステムを構築することができる。以下、その一例として図2に示された4つの階層を有するネットワークシステムについて説明する。
【0027】
ここで説明するネットワークシステムは、図2のようにLv1からLv4の4つの階層からなる。そしてこのネットワークの構成としては、複数のグループ(Lv1)が形成され、グループ(Lv1)の数と同数のマスタ端末が接続されている。そして、この複数のマスタ端末は、複数のマスタグループ(Lv2)に分けられている。すなわち、マスタ端末からなるマスタグループ(Lv2)が複数形成されている。このマスタグループ(Lv2)に所属する複数のマスタ端末のうち、1台のマスタ端末をマスタグループ(Lv2)のマスタとして動作させ、マスタグループ(Lv2)内の他のマスタ端末をこのマスタグループ(Lv2)のスレーブとして動作させる。
【0028】
さらに、このマスタグループ(Lv2)のマスタとしてのマスタ端末は、第2のマスタグループ(Lv3)が複数形成され、マスタグループ(Lv2)の数と同数のマスタグループ(Lv2)のマスタとしてのマスタ端末が接続されている。そして、この複数のマスタグループ(Lv2)のマスタとしてのマスタ端末は、複数の第2のマスタグループ(Lv3)に分けられている。すなわち、マスタグループ(Lv2)のマスタとしてのマスタ端末からなる第2のマスタグループ(Lv3)が複数形成されている。この第2のマスタグループ(Lv3)に所属する複数のマスタ端末のうち、1台のマスタ端末を第2のマスタグループ(Lv3)のマスタとして動作させ、第2のマスタグループ(Lv3)内の他のマスタ端末を第2のマスタグループ(Lv3)のスレーブとして動作させる。このとき、第2のマスタグループ(Lv3)のマスタとしての複数のマスタ端末からなる第3のマスタグループ(Lv4)が形成される。
【0029】
例えば、図2のように、1組のグループに所属する端末の数を10台とし、10000台の端末1間で通信を行う場合、Lv1の階層のように、10台の端末を1組としたグループ(Lv1)が1000組の存在することになる。マスタ端末は、グループ(Lv1)に1台であるため、この1000組のグループ(Lv1)から1000台のマスタ端末が存在する。
【0030】
この1000台のマスタ端末は、Lv2の階層のように、10台のマスタ端末を1組としたマスタグループ(Lv2)が100組形成される。すなわち、100組のマスタグループ(Lv2)が存在することになる。このマスタグループ(Lv2)のマスタ端末も、マスタグループ(Lv2)に1台であるため、この100組のマスタグループ(Lv2)から100台のマスタ端末が存在する。
【0031】
この100台のマスタ端末は、Lv3の階層のように、10台のマスタ端末を1組とした第2のマスタグループ(Lv3)が10組形成される。すなわち、10組の第2のマスタグループ(Lv3)が存在することになる。この第2のマスタグループ(Lv3)のマスタ端末も第2のマスタグループ(Lv3)に1台であるため、この10組の第2のマスタグループ(Lv3)から10台のマスタ端末が存在する。そして、この10台のマスタ端末により、1組の第3のマスタグループ(Lv4)が形成される。
【0032】
このように構築されたネットワークシステムでは、Lv1の階層で所属するグループ(Lv1)内でのピアツーピア通信が行われる。また、Lv2の階層では、グループ(Lv1)のマスタ端末からなるマスタグループ(Lv2)内でのピアツーピア通信が行われる。さらに、Lv3の階層では、マスタグループ(Lv2)のマスタ端末からなる第2のマスタグループ(Lv3)内でのピアツーピア通信が行われる。そして、Lv4の階層では、第2のマスタグループ(Lv3)のマスタ端末からなる第3のマスタグループ(Lv4)内でのピアツーピア通信が行われる。すなわち、マスタ端末を介することで、他のグループの端末と通信することができる。したがって、多くの台数の端末からなるネットワークシステムを構築することができる。
【0033】
このように、階層を増加させることでより多くの台数の端末を接続し、端末間でのピアツーピア通信を行うことができ、より多くの台数の端末と情報の送受信が可能となる。
【0034】
以下、本発明のネットワークシステムにおける端末間の接続数と従来のピアツーピアネットワークにおける端末間の接続数とを具体例を示して比較する。従来のピアツーピアネットワークにおける端末間の接続数を求めるにあたり、まず、n台の端末を接続する際の接続数の一般式を求める。まず、1台の端末が他のn−1台の端末に接続するため、1台の端末の接続数はn−1となる。この接続数がn台の端末分あるため、接続数はn×(n−1)となる。この場合、各端末間で接続数が2あることになるが、通常、各端末間での接続は1でよいため、実際に必要となる接続数Jは下記式(1)となる。
【0035】
【数1】
【0036】
次に、本発明のネットワークシステムにおける端末間の接続数を求めるにあたり、n台の端末を接続する際の接続数の一般式を求める。本発明のネットワークシステムは、端末が複数のグループに分けられている。ここでは、n台の端末が均等にグループに分けられているものとし、階層の数をgとして接続数を求める。
【0037】
本発明のネットワークシステムでは、最上層の階層に所属するマスタ端末であっても、最下層のグループに所属する。そのため、端末の総数nは、1グループの端末の台数をCとすると、1つのグループの台数Cと最下層であるLv1の階層のグループ数との積によって求められる。このグループには1台のマスタ端末があるため、このLv1の階層のグループ数は、マスタ端末の台数に等しい。このマスタ端末も台数C毎にマスタグループ(Lv2)を形成しているため、マスタグループ(Lv2)の台数CとLv2の階層のマスタグループ数との積によって求められる。同様に、Lv2の階層のグループ数も第2のマスタグループ(Lv3)の台数CとLv3の階層の第2のマスタグループ数との積によって求められる。すなわち、本発明のネットワークシステムが、2つの階層(g=2)からなる場合、グループ内の端末数C台がグループ数Cあることで総数C×C台の端末が存在し、3つの階層(g=3)からなる場合、グループ内の端末数C台がグループ数C×Cあることで総数C×C×C台の端末が存在することになる。したがって、階層数がgである場合、グループ内の端末数C台がグループ数Cg−1あることで、C×Cg−1=Cg台の端末が存在することになる。上述のように、n台の端末が均等にグループ分けされているため、これに基づいて1グループにおける端末の台数Cを求めると、下記式(2)となる。
【0038】
【数2】
【0039】
次に接続数を求める。グループ内での接続数をkとすると、接続数kは、上述の式(1)と同様に、下記式(3)で算出できる。
【0040】
【数3】
【0041】
本発明のネットワークシステムは、最上層の階層に所属するマスタ端末であっても、最下層のグループに所属している。したがって、本発明のネットワークシステムにおける接続数Kは、グループ内の接続数kとマスタグループを含む全グループ数Mによって算出できる。上述のように、各階層におけるグループ数が1つ上層のマスタ端末の台数である。2つの階層(g=2)である場合、Lv2の階層のマスタグループの数が1で、Lv1の階層のグループの数がCとなるため、全グループ数Mは、1+Cとなる。また、3つの階層(g=3)である場合、Lv3の階層の第2のマスタグループの数が1で、Lv2の階層のマスタグループの数がCで、Lv1の階層のグループ数がC×Cであるため、全グループ数Mは、1+C+C×Cとなる。したがって、階層数がgである場合、全グループ数Mは、下記式(4)で求められる。
【0042】
【数4】
【0043】
すなわち、n台の端末に対して本発明のネットワークシステムを使い、均等にグループに分けられている場合、上述の式(2)乃至(4)を使って接続数を求めることができる。
【0044】
具体的に、100台の端末を使ってピアツーピア通信可能なネットワークシステムを構築すると、従来のシステムでは、式(1)から接続数jは4950である。一方、本発明のシステムでは、2つの階層(g=2)の場合、式(2)から1つのグループ内の端末数Cが10となり、式(3)から1つのグループ内の接続数kが45となり、式(4)から全グループ数Mが11となる。したがって接続数Kは495となり、従来に比べて10%となっている。すなわち、ネットワークにかかる負担が10分の1となり、10倍効率的に通信が行える。また、2000台の端末の場合、従来では、接続数kが1999000である。これに対し、本発明では、3つの階層がある場合、接続数Kが14274であり、従来に比べて0.7%である。このように、より効率的に通信を行うことができる。
【0045】
上述のネットワークシステムを構成する複数の端末1は、図3のように、音声入力部10と、音声出力部11と、音声制御部12と、表示部13と、音声データ合成部14と、仮想空間記憶部15と、位置情報特定部16と、表示画面制御部17と、通信経路確立部18と、インターフェース部19とを有している。
【0046】
仮想空間記憶部15は、仮想空間の情報を記憶する。この仮想空間記憶部15に記憶された仮想空間の情報は、後述する表示画面制御部17の制御に基づいて表示部13に表示される。仮想空間記憶部15は、複数の仮想空間の情報を記憶していてもよく、端末1の利用者に選択させるようにしてもよい。
【0047】
この仮想空間は、図4のように、表示部13で表示される例えば街や建物などの空間内を示す2次元の画像と、その画像に対応するように2次元の直交座標とにより構成されている。この仮想空間は、3次元の画像と3次元の直交座標であってもよい。すなわち、仮想空間における位置はこの座標により示され、この座標が仮想空間の位置を示す位置情報となる。この仮想空間には、位置情報を有する例えば木や河川、壁や橋などの画像が含まれ、これら画像はその位置情報に基づいて仮想空間の中に表示される。
【0048】
また、この仮想空間には、自己の端末1がピアツーピア通信によって他の端末1と音声データを送受信することができる状態になると、自己の端末1に関係するアバターとして、例えば人や動物といった画像が表示される。そして、自己の端末1とピアツーピア通信によって音声データを送受信することができる状態となった他の端末1も同様に、他の端末1に関係するアバターとして画像が表示される。
【0049】
位置情報特定部16は、仮想空間上に表示される端末1に関係するアバターの位置情報を特定する。位置情報特定部16は、仮想空間記憶部15に記憶された仮想空間の情報から直行座標を取得し、位置情報である直交座標中の座標を特定する。この座標に基づいて仮想空間上にアバターが表示される。
【0050】
また、位置情報特定部16は、通信経路確立部18によって他の端末1との接続が確立されると、自己の端末1が所属したグループの情報を受け取り、自己の端末1に関連するアバターが、所属したグループ内の端末1に関連するアバターに比較的近い位置に表示されるように位置情報を特定する。
【0051】
位置情報特定部16は、特定された位置情報を表示画面制御部17及びに渡す。また、位置情報特定部16は、インターフェース部19を介して、特定された位置情報を他の端末1に送信する。
【0052】
表示画面制御部17は、仮想空間記憶部15から仮想空間の情報を取得する。また、表示画面制御部17は、位置情報特定部16から自己の端末1に関係するアバターの位置情報を取得する。さらに、表示画面制御部17は、自己の端末1と接続された他の端末1に関係するアバターの位置情報を取得する。この表示画面制御部17は、仮想空間の情報に基づいて表示部13に仮想空間を表示させ、さらに、取得した位置情報に基づいて端末1に関係するアバターを仮想空間内に表示させる。
【0053】
表示部13は、表示画面制御部17により制御され、仮想空間や端末1に関係するアバターを表示する。
【0054】
音声入力部10は、例えばマイクなどで、音声データを入力し、入力された音声データは、他の端末1とピアツーピア通信で送受信される。音声入力部10は、入力した音声データを音声データ合成部14に渡し、端末1がインターフェース部19を介して他の端末1に送信する。
【0055】
音声出力部11は、例えばスピーカーなどで、音声データを出力する。この音声出力部11は、端末1が受信した音声データを出力する。音声出力部11は、他の端末1から受信し、後述する音声データ合成部14で合成された音声データを出力する。
【0056】
音声データ制御部12は、音声入力部10で入力された音声データ及び他の端末1から受信した音声データを制御する。音声データ制御部12は、他の端末1から受信した音声データを自己の端末1に関係するアバターの位置情報と、受信した音声データを送信した他の端末1に関係するアバターの位置情報とから、仮想空間上におけるアバター間の直線距離を算出する。音声データ制御部12は、この直線距離に基づいて受信した音声データの出力によって発する音声の大きさを調整するように音声データ合成部14を制御する。
【0057】
さらに、音声データ制御部12は、自己の端末1がスレーブ端末1−Sである場合、音声データに自己の端末1に関係するアバターの位置情報を音声データとともに接続している他の端末1に送信する。また、音声データ制御部12は、自己の端末1がマスタ端末である場合、所属するグループ2内の他の端末1から受信した音声データと自己の端末1の音声入力部10で入力した音声データとを後述する音声データ合成部14に合成させる。
【0058】
音声データ合成部14は、他の端末1から受信した音声データや自己の端末1で入力された音声データを音声データ制御部12の制御に基づいて合成する。自己の端末1が所属するグループにおけるマスタ端末1−Mである場合、音声データ合成部14は、所属するグループ内の端末1から入力された音声をミキシングして1つの音声データとなるように合成し、他のグループに送信する音声データとする。
【0059】
また、音声データ合成部14は、音声データ制御部12で算出されたアバター間の直線距離に応じて、音声データの出力により発する音声の大きさを調整する。調整された音声は、他の音声データと合成されて音声出力部11から出力される。
【0060】
通信経路確立部18は、他の端末1とのピアツーピア通信を行うために、インターフェース部19を介して、他の端末1との接続を確立する。本発明のネットワークシステムは、上述のように複数のグループによって構成されており、通信経路確立部18は、他の端末1との接続を確立する場合、所望の条件に基づいて所属させるグループを決める。この条件としては、特に限定するものではないが、例えば通信状態を良好に保つために所属する端末1の台数が比較的少ないグループを優先させたり、利用者に選択させたりするといった条件が挙げられる。通信経路確立部18は、他の端末1との接続が確立すると、所属したグループに応じて自己の端末1に関係するアバターの仮想空間上の座標を特定させるように位置情報特定部16に通知する。また、通信経路確立部18は、他の端末1との接続が確立すると、所属したグループを音声データ合成部14に通知する。
【0061】
インターフェース部19は、複数の端末1同士を接続する。このインターフェース部19を介して、端末1の音声入力部10で入力された音声データの送信と、他の端末1からの音声データの受信とを行い、複数の端末10間で音声データを即時交換することで音声によるチャットを実現することができる。
【0062】
この複数の端末1は、それぞれ、CPUの制御のもとに、所定のプログラムを実行することにより、音声制御部12、音声データ合成部14、仮想空間記憶部15、位置情報特定部16、表示画面制御部17、通信経路確立部18をはじめとする各部材の機能を実現する。
【0063】
以下、音声データの送受信について説明する。まず、音声データの送受信は、図5のような流れで各処理が行われる。まず、利用者が利用する自己の端末1の表示画面制御部17は、ステップS10において、表示部13に表示させたい仮想空間を仮想空間記憶部15から仮想空間の情報として取得する。
【0064】
表示画面制御部17は、ステップS11において、取得した仮想空間の情報に基づいて表示部13に仮想空間を表示させる。
【0065】
仮想空間が表示された後、表示画面制御部17は、その旨を通信経路確立部18に通知する。通知を受けた通信経路確立部18は、ステップS12において、同じ仮想空間を表示部13に表示させている端末を探索する。
【0066】
そして、通信経路確立部18は、ステップS13において、後述する探索された端末1との接続処理を行う。
【0067】
接続処理が行われた後、通信経路確立部18は、接続処理が終了した旨を音声データ制御部12に通知する。通知を受けた音声データ制御部12は、ステップS14において、後述する音声データの処理を行う。この音声データの処理は、利用者が自己の端末1と他の端末1との接続を切断するまで続けられる。
【0068】
利用者が自己の端末1と他の端末1との接続を切断する場合、通信経路確立部18は、ステップS15において、他の端末1との接続を切断し、この音声データの送受信を終了させる。
【0069】
以下、他の端末1との接続処理及び音声データの処理について詳細に説明する。
【0070】
端末1は、上述のようなネットワークシステムにおいて、通信経路確立部18によってピアツーピア通信によって情報の送受信が可能なように他の端末1と接続することにより、マスタ端末1−Mまたはスレーブ端末1−Sとなる。以下、他の端末1への接続処理について図6を参照しながら説明する。
【0071】
自己の端末1の通信経路確立部18は、ステップS301において、接続しようとしているネットワーク内のグループ2のうち、端末1間での通信状況を確認しながら、所属させるグループ2を探索する。
【0072】
グループ2に所属させる条件は、特に限定されるものではなく適宜変更可能である。例えば、通信状態を良好に保つために所属する端末1の台数が比較的少ないグループを優先させたり、利用者に選択させたりするといった条件が挙げられる。
【0073】
探索後、通信経路確立部18は、ステップS302において、探索したグループ2内に所属する他の端末1のIP(Internet Protocol)アドレスを取得する。
【0074】
そして、通信経路確立部18は、ステップS303において、取得したIPアドレスを使って他の端末1とピアツーピア通信可能に接続する。
【0075】
ピアツーピア通信可能に接続された複数の端末1の通信経路確立部18は、ステップS304において、所属するグループ2内のマスタ端末1−Mを選び出す。例えば、所属するグループ2の中で例えば通信速度が最も速い端末1をマスタ端末1−Mとする。グループ2内のマスタ端末1−M以外の端末1は、スレーブ端末1−Sとなる。
【0076】
マスタ端末1−Mの選択後、通信経路確立部18は、ステップS305において、自己の端末1がマスタ端末1−Mであるか否かを確認する。ステップS305において、通信経路確立部18が自己の端末1がマスタ端末1−Mでない、すなわちスレーブ端末1−Sであると判断した場合、ステップS312に移行する。
【0077】
一方、ステップS305において、通信経路確立部18が自己の端末1がマスタ端末1−Mであると判断した場合、ステップS306に移行する。
【0078】
自己の端末1がマスタ端末1−Mであると判断した通信経路確立部18は、ステップS306において、自己の端末1を所属させるマスタグループ3を探索する。この場合も上述と同様にマスタ端末1−M間の通信状況を確認しながら、マスタグループ3を探索する。
【0079】
探索後、通信経路確立部18は、ステップS307において、探索したマスタグループ3内に所属する他のマスタ端末1−MのIPアドレスを取得する。
【0080】
そして、通信経路確立部18は、ステップS308において、取得したIPアドレスを使って他のマスタ端末1−Mとピアツーピア通信可能に接続する。
【0081】
ピアツーピア通信可能に接続された複数のマスタ端末1−Mの通信経路確立部18は、ステップS309において、上述と同様に、所属するマスタグループ3内のマスタ端末1−Mを選び出す。
【0082】
マスタ端末1−Mの選択後、通信経路確立部18は、ステップS310において、自己の端末1がマスタ端末1−Mであるか否かを確認する。ステップS310において、通信経路確立部18が自己の端末1がマスタグループ3におけるマスタ端末1−Mでないと判断した場合、ステップS312に移行する。
【0083】
一方、ステップS310において、通信経路確立部18が自己の端末1がマスタグループ3におけるマスタ端末1−Mであると判断した場合、ステップS311に移行する。
【0084】
自己の端末1がマスタ端末1−Mであると判断した通信経路確立部18は、ステップS311において、自己の所属するマスタグループ3以外のマスタグループ3が存在するか否かを判断する。その結果、通信経路確立部18が自己の所属するマスタグループ3以外のマスタグループ3が存在すると判断した場合、ステップS306に移行し、ステップS306乃至ステップS311を繰り返す。これにより、図1及び図2のような階層を有するネットワークを構築することができる。
【0085】
一方、通信経路確立部18が自己の所属するマスタグループ3以外のマスタグループ3が存在しないと判断した場合、ステップS312に移行する。
【0086】
その後、通信経路確立部18は、他の端末1との接続が確立したことを位置情報特定部16及び表示画面制御部17に通知する。その通知を受けた位置情報特定部16は、ステップS312において、表示部13に表示されている仮想空間上の自己の端末1に関係するアバターの座標を特定する。このとき、位置情報特定部16は、自己の端末1に関係するアバターが、所属するグループ2の他の端末1に関係するアバターの座標に比較的近い座標に表示されるように座標を決める。
【0087】
その後、位置情報特定部16は、ステップS313インターフェース部19を介して、他の端末1に関係するアバターの位置情報を取得する。位置情報特定部16は、取得した位置情報を自己の端末1に関係するアバターの位置情報とともに表示画面制御部17に渡す。
【0088】
自己の端末1及び他の端末1に関係するアバターの位置情報を受け取ると、表示画面制御部17は、ステップS314において、受け取った位置情報に基づいて自己の端末1及び他の端末1に関係するアバターを表示させる。
【0089】
このように、他の端末1との接続が確立した自己の端末1は、ピアツーピア通信によって音声データを送受信することができる。以下、音声データの処理について説明するが、音声データの処理は、音声データの入力時の処理と音声データの受信時の処理とに分けて説明する。この音声データの入力時の処理と音声データの受信時の処理は、同時に行われてもよい。
【0090】
以下、音声データの入力時の処理について図7を用いて説明する。まず、ステップS101において、音声データが音声入力部10から入力される。そして、音声入力部10は、ステップS102において、入力された音声データを音声データ制御部12に渡す。
【0091】
音声データ制御部12は、音声データを受け取ると、位置情報特定部16に仮想空間上に表示された自己の端末1に関係するアバターの位置情報を特定するように要求する。要求を受けた位置情報特定部16は、ステップS103において、仮想空間上に表示されたアバターの位置情報を特定する。
【0092】
位置情報を特定した後、位置情報特定部16は、ステップS104において、特定された位置情報を音声データ制御部12に渡す。音声データ制御部12は、位置情報を受け取とると、音声データと位置情報とを送信するために、自己の端末1と他の端末1との接続環境を確認するように通信経路確立部18に要求する。
【0093】
要求を受けた通信経路確立部18は、ステップS105において、自己の端末1と他の端末1との接続環境を確認する。このとき、通信経路確立部18は、自己の端末1と接続する他の端末1を全て検出し、自己の端末1が所属するグループ2内の他の端末1を特定する。そして、自己の端末1が所属するグループ2の全ての端末1の中で、他のグループ2のマスタ端末1−Mと接続する端末1を探し出す。
【0094】
そして、通信経路確立部18は、ステップS106において、自己の端末1がスレーブ端末1−Sであるか否かを確認する。自己の端末1がスレーブ端末1−Sである場合、通信経路確立部18は、その旨を音声データ制御部12に通知する。ステップS111に移行する。
【0095】
ステップS107において、自己の端末1がスレーブ端末1−Sでない場合、すなわちマスタ端末1−Mである場合、通信経路確立部18は、その旨を音声データ制御部12に通知する。通知を受けた音声データ制御部12は、ステップS107において、後述するように自己の端末1の所属するグループ2内の他の端末1から受信した音声データと、入力された音声データとを音声データ合成部14に渡す。
【0096】
音声データを受け取った音声データ合成部14は、ステップS108において、入力された音声データと、自己の端末1の所属するグループ2内の他の端末1から受信した音声データとを合成し、1つの音声データとする。そして、音声データ合成部14は、ステップS109において、合成された音声データを音声データ制御部12に渡す。
【0097】
音声データ制御部12は、合成された音声データを受け取ると、ステップS110において、インターフェース部19を介して、位置情報と合成された音声データとを他のグループ2のマスタ端末1−Mに送信する。このとき、マスタグループ3が複数ある場合、音声データ制御部12は、所属するマスタグループ3内の他のマスタ端末1−Mに合成された音声データを送信し、ステップS111に移行する。
【0098】
音声データ制御部12は、ステップS111において、インターフェース部19を介して、位置情報と入力された音声データとを自己の端末1が所属するグループ2内の全ての他の端末1に送信する。送信された音声データは他の端末1で受信される。
【0099】
このように、自己の端末1がマスタ端末1−Mである場合、他のグループ2に所属するマスタ端末1−Mには、自己の端末1が所属するグループ内の音声データが合成された1つの音声データが送信される。これにより、他のグループのマスタ端末1−Mは、1台の自己の端末1と接続し、1つの音声データを受信することで、自己の端末1が所属するグループ2内で送受信される全ての音声データと同等の音声データを受信することになる。したがって、ネットワーク及び端末1にかかる負担が軽減され、接続可能な台数制限を超えて接続された多くの台数の端末1から入力された音声データを受信することができる。すなわち、端末1及び本発明のネットワークシステムを介して、大人数の利用者と会話することができる。
【0100】
送信された音声データと位置情報は、他の端末1に受信され、他の端末1の音声出力部11から出力される。以下、音声データの受信及び出力について図8を用いて説明する。
【0101】
ネットワークに接続された端末1は、ステップS201において、インターフェース部19で他の端末1から送信されてきた音声データを受信する。そして、ステップS202において、受信した音声データを音声データ制御部12に渡す。
【0102】
音声データ制御部12は、音声データを受け取ると、位置情報特定部16に仮想空間上に表示された自己の端末1に関係するアバターの位置情報を特定するように要求する。要求を受けた位置情報特定部16は、ステップS203において、仮想空間上に表示されたアバターの位置情報を特定する。
【0103】
位置情報を特定した後、位置情報特定部16は、ステップS204において、特定された位置情報を音声データ制御部12に渡す。音声データ制御部12は、ステップS205において、位置情報を受け取ると、音声データを送信した他の端末1の位置情報と位置情報特定部16で特定した位置情報とから、自己の端末1に関係するアバターと音声データを送信した他の端末1に関係するアバターとの仮想空間上での直線距離を算出する。
【0104】
仮想空間上に表示されるアバターの位置情報は、図4のように、仮想空間上の位置を示す座標によって示される。したがって、この2つの座標から距離を算出することで直線距離が求めることができる。
【0105】
例えば、図4のように、2次元の仮想空間(X軸Y軸による2次元座標)で、自己の端末1に関係するアバター81が位置A(座標(a,b))に表示され、音声データを送信した端末1に関係するアバター82が位置D(座標(d,e))に表示されるている場合、位置情報特定部16は、自己の端末1に関係するアバター81の位置Aの座標(a,b)を位置情報として特定する。そして、音声データを送信した端末1に関係するアバター82の位置情報(位置Dの座標(d,e))は、音声データとともに送信される。この2つのアバターの直線Lの距離は、この位置A(a,b)、位置D(d,e)との2点間の距離であるため、{(a−d)2+(b−e)2}1/2によって算出される。
【0106】
同様に、3次元の仮想空間(X軸Y軸Z軸による3次元座標)で、2つのアバターがそれぞれ座標(a,b,c)、(d,e,f)で示される位置に表示される場合、この2つのアバターの直線距離は、{(a−d)2+(b−e)2+(c−f)2}1/2によって算出される。
【0107】
このように、直線距離が算出されると、音声データ制御部12は、ステップS206において、受信した音声データと算出した直線距離の情報を音声データ合成部14に渡す。
【0108】
音声データと直線距離の情報とを受け取った音声データ合成部14は、ステップS207において、算出された直線距離に応じて音声データの出力により発する音声の大きさを調整する。このとき、直線距離が長くなるほど音声データの出力により発する音声の大きさを小さくするように調整する。例えば、図9のような直線距離がL1からL2のように長くなると、音声の大きさがV1からV2のように連続的に変化する式を予め音声データ合成部14が備えるておくことで、音声データ合成部14は、受け取った直線距離に応じて音声データの出力により発する音声の大きさを調整することができる。これにより、現実の世界のように遠くの人からの声が聞き取り難いと同様に、この直線距離が長くなるほど音声データの出力により発する音声の大きさが小さくなる。したがって、現実の世界の会話に近い状況で、チャットを行うことができる。
【0109】
音声データの出力により発する音声の大きさを調整した音声データ合成部14は、ステップS208において、そのほかに出力する音声データがあるか否かを確認する。すなわち、受信した音声データと一緒に音声出力部11で出力する音声データがあるか否かを確認する。
【0110】
この一緒に出力する音声データとは、調整した音声データを送信した端末1以外の端末1からの音声データや、仮想空間上の特定の位置から出される例えば川の流れる音や鳥のさえずりや風によってなびく木々の音、ラジオから流れる音楽や車が走り去る音など、現実の世界において実際に耳にする音が挙げられる。
【0111】
ステップS208において、音声データ合成部14が調整された音声データの他に出力する音声データがないと判断した場合、ステップS211に移行する。音声データ合成部14は、ステップS211において、大きさを調整した音声データを音声出力部11に渡し、ステップS212に移行する。
【0112】
ステップS208において、音声データ合成部14が調整された音声データの他に出力する音声デーがあると判断した場合、ステップS209に移行する。音声データ合成部14は、ステップS209において、大きさを調整した音声データと他の音声データを合成する。このとき、他の音声データも、上述のように、直線距離に応じて出力により発する音声の大きさが調整されている。
【0113】
音声データが合成された後、音声データ合成部14は、合成された音声データを音声出力部11し、ステップS212に移行する。
【0114】
音声出力部11は、ステップS212において、受け取った音声データを出力する。
【0115】
このように、接続された端末1間で音声データを送受信できる。音声データの送信の際の上述のような処理は、音声入力部10で音声が入力されるたびに即時に行われる。また、音声データの受信の際の上述のような処理は、音声データを受信するたびに行われる。したがって、音声データの送受信は、即時に交換されるため、仮想空間上に表示される各端末1に関係するアバターを介して、端末1を利用する利用者同士のチャットを行うことができる。
【0116】
また、マスタ端末1−Mは、マスタ端末1−Mがグループ2内の他の端末1から受信した音声データを合成して、1つの音声データを形成し、この音声データを他のグループ2のマスタ端末1−Mに送信することで、他のグループ2の音声データも受信することができる。したがって、本発明のネットーワークシステムで、音声データを送受信しても端末1及びネットワークにかかる負担が小さくなり、大人数での音声データの送受信を可能とする。すなわち、従来物理的な要因で行うことができなかった例えば80台以上の端末1を接続し、その端末1によって構築されたネットワークシステムを利用して大人数でのチャットを行うことができる。
【0117】
さらに、本発明のネットワークシステムは、仮想空間記憶部15で記憶した仮想空間の情報と、位置情報特定部16で特定した自己の端末1に関係するアバターの位置情報と特定し、表示画面制御部17で仮想空間の情報とアバターの位置情報とに基づいて表示部13に表示させるように制御する。またさらに、自己の端末1に関係するアバターだけでなく、他の端末1に関係するアバターの位置情報を他の端末1から受信し、その位置情報に基づいて他の端末1に関係するアバターのを表示することができる。これにより、端末間の接続関係を視覚的にとらえることができるだけでなく、端末間での音声データの送受信してチャットを行うことで、仮想空間上のアバターを介しての会話が可能となる。また、上述のネットワークシステムによって大人数での会話も可能となり、仮想空間上での会議なども行うことができる。
【0118】
現実の世界において、人の声等は壁など音声の伝達を妨げる障害物があることで遮断されることがある。上述したピアツーピア通信を利用した音声データの送受信においても、そのような障害物を仮想空間上に表示させてもよい。
【0119】
この仮想空間上に表示される障害物は、障害物情報として仮想空間の情報とともに仮想空間記憶部15に記憶される。この障害物情報は、障害物の画像情報と障害物の情報と仮想空間上に表示される位置情報とにより構成されている。障害物の情報とは、例えば自己の端末1に関係するアバターの位置情報と、自己の端末1が所属するグループ2内の他の端末1の関係するアバターの位置情報とからアバター間を結ぶ直線上にこの障害物が存在する場合、音声データを受信した端末1は、その音声データの出力により発する音声の大きさを制限する。例えば、受信した音声データを出力する際に、音声データに基づく音声の大きさを障害物がない場合に比べて50%の大きさにするといった制限や、音声データを出力しないといった制限などが挙げられる。このような障害物の他の例としては、音声を所定の吸収率で吸収する壁やいりくんだ地形等が挙げられる。
【0120】
具体的に、図10を参照して説明する。自己の端末1が上述のように他の端末1とピアツーピア通信可能に接続されることで、図10のように、自己の端末1に関係するアバター81が位置Aの座標(a,b)という位置情報を有して仮想空間上に表示される。また、他の端末1に関係するアバター82も位置Dの座標(d,e)という位置情報を有して仮想空間上に表示される。このとき、仮想空間上には、アバター81が表示される位置A(a,b)とアバター82が表示される位置D(d,e)とを結ぶ直線L上の位置Z(座標(x,y))に障害物5が表示されている。
【0121】
表示画面制御部17は、自己の端末1がグループ2内の他の端末1から音声データと位置情報とを受信すると、自己の端末1の関係するアバター81の位置情報と他の端末1から受信した位置情報とに基づいて仮想空間上の直線Lを導き出す。そして、表示画面制御部17は、この直線Lが通る座標を取得し、確認した座標の中に障害物5が表示される位置Xの座標が含まれているか否かを確認し、アバター81とアバター82とを結ぶ直線L上に障害物があるか否かを確認する。そして、表示画面制御部17は、直線L上の障害物の有無を音声データ制御部12に通知する。
【0122】
音声データ制御部12は、表示画面制御部17から障害物が直線L上に無いことを通知されると、上述と同様に直線Lの直線距離を算出する。音声データ合成部14は、算出した直線距離に基づいて音声データの出力により発する音声の大きさを調整する。一方、音声データ制御部12は、表示画面制御部17から障害物が直線L上に有ることを通知されると、障害物5の情報を音声データ制御部12に渡す。音声データ制御部12は、直線Lの直線距離を算出する。そして、算出した直線距離と、障害物5の情報を音声データ合成部14に渡す。音声データ合成部14は、算出した直線距離に基づいて音声データの出力により発する音声の大きさを調整する。また、音声データ合成部14は、障害物5の情報を解析し、その障害物5の情報に応じて音声データの出力により発する音声の大きさを制限し、他の音声データと合成する。その他の例として、音声を吸収する壁が障害物である場合、この壁が直線L上にあることを通知されると、直線距離に基づいて音声データの出力により発する音声の大きさを調節した後、所定の吸収率をかけるようにして音声を制限する。また、直線Lがいりくんだ地形を通過することを通知すると、そのいりくんだ地形を避けるような曲線がアバター間で形成され、その曲線の道のりが算出される。この道のりに基づいて音声データの出力により発する音声の大きさを調整する。
【0123】
これにより、音声データを送受信することで、より現実の世界での会話に近い状態で音声によるチャットを行うことができる。上述において障害物の位置情報は、1つの位置の座標によって示されたものについて説明したが、本発明はこれに限定されるものではない。例えば、障害物の位置情報として、例えば任意の位置から別の任意の位置までを結ぶような直線や曲線の情報としてもよく、複数の位置の座標を位置情報としてもよい。
【0124】
本発明では、例えば障害物としての壁や扉を有するような仮想空間においても、上述と同様に音声データを送受信することができる。この仮想空間には、壁に囲まれた部屋が複数あり、この部屋の出入り口に扉を有している。
【0125】
部屋の内側及び外側に端末1に関係するアバターが表示されているものとして説明すると、壁と扉を上述した障害物として機能させることで、例えば部屋の外に表示されたアバターに関係する端末1が受信した音声データに基づく音声の出力を禁止させるようにしてもよい。これにより、音声データは部屋の中に表示されたアバターに関係する端末1のみで出力されるように制限することができ、例えば会議などのように他人に聞かせたくない内容の会話も本発明のネットワークシステムを介して行うことができる。
【0126】
また、上述のような部屋を有する仮想空間を表示して、音声データの送受信を行う場合、グループ2と仮想空間上の部屋とを対応させてもよい。この場合、自己の端末1は、他の端末1と接続する際に所属するグループ2に対応する部屋内に表示される。
【0127】
仮想空間上に表示されるアバターは、そのアバターに関係する端末1の操作によって移動させることもできる。この場合、端末1には、図11のように、操作部20がさらに備えられる。この操作部20は、例えばマウスやキーボードやコントローラなどが挙げられ、特に限定するものではない。この操作部20は、アバターを移動させることができる。この操作部20は、例えばアバターの移動させるために動かしたマウスの動作量、マウスを動かした方向といった操作部20の動作情報を位置情報特定部16に渡す。
【0128】
動作情報のを受け取った位置情報特定部16は、その動作量に基づいて、現在のアバターの座標からのアバターの移動量を求め、新たな座標を特定する。例えば、図12のように、現在のアバター85の位置B(座標(m,n))から、操作部20であるマウスを動かすことで、位置C(座標(p,q))にアバター85を移送させる場合について説明する。まず、アバター85が表示された仮想空間で、マウスを位置B(m,n)から位置C(p,q)に向かって動かし、その動作量と動作させた方向を動作情報として位置情報特定部16に渡す。位置情報特定部16は、動作情報受け取ることで、操作部20の動作量と動作させた方向を解析し、所定の処理によってアバター85の移動量を求め、アバター85の新たな座標となる位置C(p,q)を位置情報として特定する。特定した位置情報を表示画面制御部17に渡し、その位置情報に基づいてアバター85を仮想空間上の位置B(m,n)から位置C(p,q)に移動させる。
【0129】
これにより、例えば上述のように、アバター間の直線距離が遠かったり、障害物があったりすることで音声データの出力により発する音声の大きさが十分で無い場合などに、音声の大きさが十分となるようにアバターを移動させ、円滑なチャットを行うことができる。
【0130】
この操作部20によって、仮想空間上で、自己の端末1に関係するアバターが自己の端末1が所属しない他のグループ2に所属する端末1に近付いた場合、通信経路確立部18は、通信状況を鑑みながら、アバターが近づいた他の端末1の所属するグループ2に自己の端末1を所属させるように、接続する端末1を変更することも可能である。このように、仮想空間を利用することで、グループ形成の手がかりとすることができる。本発明では、同一グループにおける端末間の通信と、他のグループにおける端末間の通信と比べると、同一グループにいる方がよりよい。特定の端末1と音声データを効率的に送受信したい場合、この仮想空間を利用して、自己の端末1に関係するアバターを移動させ、特定の端末1に関係するアバターに近づけることで、グループが再編成される。したがって、ネットワーク構造を簡単に変更することができる。
【0131】
さらにまた、この仮想空間には、一方的に音声を発する例えばラジオ等の音源のような端末があってもよく、この音源は、他の端末1から音声データを受信しない。そして、音源からは常に音声データが各端末1に送信され、音源からの音声データを受信した端末1は、端末1と音源との直線距離を算出し、音源から受信した音声データの出力によって発する音声の大きさを調整して、音声データ合成部14で他の音声データと合成して出力する。これにより、音声データを送受信することでチャットだけではなく、大人数でラジオを聞くこともできる。この音源は、ラジオに限定されるものではなく、現実の世界にある動物園の檻の前にマイクを備え、そのマイクを介して動物の鳴き声などを音声データとして送信したり、コンサートの会場に備えられているマイクを通じて、会場内の音声を音声データとして送信したりすることもできる。すなわち、本発明のネットワークシステムを利用することで、現実の世界で行われるものをその場にいなくても体験することができる。
【0132】
仮想空間上にアバターとして表示される画像は、仮想空間記憶部15に記憶されていてもよいが、他の端末1と接続する際に他の端末1から受信してもよい。そしてこのアバターとして表示される画像は、利用者によって変更するようにしてもよい。
【図面の簡単な説明】
【0133】
【図1】本発明のネットワークシステムの一例を示す図である。
【図2】4つの階層を有するように構成された本発明のネットワークシステムの概略図である。
【図3】本発明のネットワークシステムを構築する端末の構成を示すブロック図である。
【図4】本発明のネットワークシステムを構築する端末の表示部に表示される仮想空間を説明する図である。
【図5】本発明のネットワークシステムを構築する端末で音声データを送受信する際の処理に関するフロー図である。
【図6】本発明のネットワークシステムを構築する端末同士の接続処理に関するフロー図である。
【図7】本発明のネットワークシステムを構築する端末で音声データ入力時の音声データの処理に関するフロー図である。
【図8】本発明のネットワークシステムを構築する端末で音声データ受信時の音声データの処理に関するフロー図である。
【図9】仮想空間上に表示されたアバター間の直線距離と音声の大きさの関係を示す図である。
【図10】障害物が表示された仮想空間における本発明のネットワークシステムを構築する端末での音声データの送受信を説明する図である。
【図11】本発明のネットワークシステムを構築する端末の別の構成を示すブロック図である。
【図12】本発明のネットワークシステムを構築する端末において、アバターの移動について説明する図である。
【符号の説明】
【0134】
1 端末
1−M マスタ端末
1−S スレーブ端末
2 グループ
3 マスタグループ
【技術分野】
【0001】
本発明は、複数の端末をピアツーピア通信によって情報の送受信を可能に接続することで構築されたネットワークシステムに関するものである。
【背景技術】
【0002】
従来、複数の端末で情報の送受信を可能とするネットワークシステムの1つとして、1台のサーバに対して複数台のクライアント端末が接続することで構築されたネットワークシステムがある。このようなネットワークシステムは、構造が単純である反面、クライアント端末の台数が多くなるとサーバや回線に多大な負荷が発生するという構造的な弱点を有している。
【0003】
別のネットワークシステムとしては、ピアツーピア通信によるネットワークシステムがある(例えば特許文献1参照)。このピアツーピア通信によるネットワークは、サーバを介さずに複数の端末間で直接通信できるように接続されたネットワークシステムである。このようなピアツーピア通信によって構築されたネットワークシステムは、例えば音声データを送受信して行うボイスチャットなどに利用されている。
【0004】
【特許文献1】特開2004−312331号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、ピアツーピア通信によって構築されたネットワークの場合、端末やネットワーク回線の性能等の物理的な要因により、ピアツーピア通信可能な端末数には制限がある。例えば、音声データのように比較的容量の大きいデータの送受信を行うボイスチャットの場合、接続できる端末数としては、80台程度が限界である。すなわち、多くの台数の端末によるネットワークを構成することができない。
【0006】
そこで、本発明は上記実情に鑑み、ネットワークを構築する端末の台数が多くなっても、ピアツーピア通信が可能となるようなネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決するために、本発明のネットワークシステムは、複数の端末をピアツーピア通信によって情報の送受信を可能に接続することで構築されたネットワークシステムであって、互いにピアツーピア通信する複数の端末からなるグループを複数備え、前記端末は、マスタとして前記グループ内の他の端末と接続する1台のマスタ端末と、前記マスタに対するスレーブとして前記マスタ端末に接続する複数のスレーブ端末とを有し、前記スレーブ端末は、自己の所属するグループ内のマスタ端末及び他のスレーブ端末と通信し、前記マスタ端末は、他のグループのマスタ端末と通信し、前記スレーブ端末は、他のグループの端末と通信する場合、自己の所属するグループ内のマスタ端末を介して通信することを特徴とする。
【0008】
本発明のネットワークシステムによれば、スレーブ端末は自己のグループのマスタ端末と接続し、マスタ端末は自己のグループのスレーブ端末、及び、他のグループのマスタ端末と接続する。スレーブ端末が他のグループの端末と通信する場合、マスタ端末を介して通信することで、ネットワークを構築する全ての端末が直接接続されていなくても、各端末間で通信することができ、情報の送受信が可能となる。これにより、1台の端末に直接接続される端末の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末を接続し、端末間での通信が可能となる。
【発明の効果】
【0009】
本発明のネットワークシステムは、スレーブ端末が他のグループの端末と通信する場合、マスタ端末を介して通信することで、ネットワークを構築する全ての端末が直接接続されていなくても、各端末間で通信することができ、情報の送受信が可能となる。これにより、1台の端末に直接接続される端末の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末を接続し、端末間での通信が可能となる。
【発明を実施するための最良の形態】
【0010】
以下、本発明のネットワークシステムについて図面を参照しながら説明する。
【0011】
[実施の形態1]
まず、実施の形態1で説明する本発明のネットワークシステムの構成図を図1に示す。ネットワークシステムは、複数の端末1が互いにピアツーピア通信可能に接続されている。
【0012】
この複数の端末1は、CPU(Central Processing Unit)と、RAM(Randam Access Memory)と、ROM(Read Only Memory)と、HDD(Hard Disk Drive)等の記憶部と、インターフェース等により構成されている。
【0013】
端末1のCPUは、マイクロプロセッサによって構成され、ROMに格納されたピアツーピア通信を行うための所定のプログラムを実行することで、インターフェースを介して他の端末1とピアツーピア通信可能に接続する。そして、端末1のRAMは、DRAM(Dynamic RAM)、SDRAM(Synchronous DRAM)等で構成され、プログラム実行のための一次記憶領域として使用される。
【0014】
この端末1は、ピアツーピア通信を行うための所定のプログラムを実行することで、インターフェースを介して他の端末1との接続が確立され、互いにピアツーピア通信が可能となる。この確立された接続は、各端末1間を直接ケーブルで接続するようなものに限られるものではなく、無線を利用して接続されたものであってもよい。また、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)を介して接続されていてもよい。そして、この端末1間で確立された接続は、ネットワークの状態や端末1を操作するユーザの意思により適宜切断することも可能で、さらに別の端末1との間で再び接続を確立することもできる。
【0015】
このネットワークシステムは、互いにピアツーピア通信する複数の端末1からなるグループ2を複数備えている。図1において、直線又は点線は端末1間でのピアツーピア通信可能な状態を示している。この複数の端末1からなるグループ2は、1台のマスタ端末1−Mと、複数のスレーブ端末1−Sとにより構成される。
【0016】
マスタ端末1−Mは、自己の所属するグループ2内の端末1でマスタとして動作する。このマスタ端末1−Mは、複数のスレーブ端末1−Sとピアツーピア通信可能に接続されている。そして、このマスタ端末1−Mは、他のグループ2のマスタ端末1−Mとピアツーピア通信可能に接続されている。このマスタ端末1−Mは、他のグループのマスタ端末1−Mとマスタグループ3を形成する。このマスタグループ3が複数ある場合、マスタグループ3内のマスタ端末1−Mのうち1台のマスタ端末1−Mを他のマスタ端末1−Mのマスタとする。
【0017】
複数のスレーブ端末1−Sは、自己の所属するグループ2内の端末1でマスタ端末1−Mのスレーブとして動作する。このスレーブ端末1−Sは、自己の所属するグループ2内の他のスレーブ端末1−Sとピアツーピア通信可能に接続されている。そして、このスレーブ端末1−Sは、自己の所属するグループ2のマスタ端末1−Mを介して他のグループ2のマスタ端末1−Mやスレーブ端末1−Sとピアツーピア通信可能に接続されている。すなわち、このネットワークシステムは、グループ2間においては、間接的にスレーブ端末1−S同士を接続している。
【0018】
このマスタ端末1−Mは、他のグループのマスタ端末1−Mと通信することができる以外は、スレーブ端末1−Sと略同じである。言い換えると、マスタ端末1−Mは、グループ2に所属するスレーブ端末1−Sと同等で、グループ2内の端末の代表として他のグループ2の端末1と通信することができる。
【0019】
このマスタ端末1−Mとスレーブ端末1−Sは、ネットワークの状態等により、マスタ/スレーブの関係が変更されることがある。すなわち、ネットワークの状態によっては、マスタ端末1−Mが他の端末のスレーブとしてスレーブ端末1−Sとなったり、スレーブ端末1−Sが他の端末のマスタとしてマスタ端末1−Mとなったりする。
【0020】
さらには、1台のマスタ端末1−Mと複数のスレーブ端末1−Sが所属するグループ2も流動的なものであり、端末1は、ネットワークの状態等によって所属するグループ2が変更されることもある。また、新たなグループ2が形成されることもある。このように、端末のマスタ/スレーブの関係及び所属するグループは、常に流動的なものであり、ネットワークの状態やネットワークに接続されている端末1の性能等により適宜変更される。
【0021】
図1においては、1つのグループ2に3台の端末1が所属する形で、そのグループ2を3組備えたネットワークシステムである。この場合、1つのグループ2に所属する端末1の台数とグループ2の組数との積により表される9台の端末1によるネットワークシステムが構築される。これを拡張して、1つのグループ2に所属する端末1を10台とし、そのグループ2が10組あるとすると、100台の端末1により構成されるネットワークシステムとなる。
【0022】
このネットワークシステムは、従来のピアツーピア通信を可能とするネットワークシステムのように各端末が他の端末全てと接続されているのではない。このネットワークシステムは、スレーブ端末1−Sが自己のグループのマスタ端末1−Mと接続し、他のグループ2のスレーブ端末1−Sには直接接続されていない。また、マスタ端末1−Mが自己のグループのスレーブ端末1−S、及び、他のグループ2のマスタ端末1−Mと接続し、他のグループ2のスレーブ端末1−Sには直接接続されていない。すなわち、1つの端末1に直接接続されている端末1の台数は、ネットワークシステムを構築する端末1の台数に比べて少なくなる。
【0023】
このネットワークシステムは、端末1を上述のような構成となるように接続することで、スレーブ端末1−Sが他のグループ2の端末1と通信する場合、マスタ端末1−Mを介して通信することで、ネットワークを構築する全ての端末1が直接接続されていなくても、各端末1間で通信することができ、情報の送受信が可能となる。これにより、1台の端末1に直接接続される端末1の台数が少なくなり、物理的な要因等による端末の台数制限を越えて多くの台数の端末1を接続し、端末1間での通信を可能とする。したがって、従来のネットワークシステムよりも多くの台数の端末1からなるネットワークシステムを構築することができる。
【0024】
このように、図1で示されるネットワークシステムは、スレーブ端末1−S同士の接続によるピアツーピア通信、スレーブ端末1−Sとマスタ端末1−Mとの接続によるピアツーピア通信、マスタ端末1−M同士の接続によるピアツーピア通信の3つのピアツーピア通信が存在することになる。ここで、スレーブ端末1−Sとマスタ端末1−M間のピアツーピア通信は、同じグループ2内で行われる通信であるため、スレーブ端末1−S同士間の通信と略同じである。
【0025】
この図1のような端末1間の通信について、スレーブ端末1−S同士の通信をマスタ端末1−M同士間の通信よりも下位の階層と捉えるような階層を用いて説明すると、スレーブ端末1−S同士の通信及びスレーブ端末1−Sとマスタ端末1−M間の通信も下位階層の通信である。この通信よりも上位階層に所属する通信に、マスタ端末1−M同士間の通信がある。すなわち、マスタ端末1−Mは、下位階層の通信のほかに上位階層の通信を行うこともできる。
【0026】
これを拡張すると、さらに多くの台数の端末1間でピアツーピア通信をすることができるネットワークシステムを構築することができる。以下、その一例として図2に示された4つの階層を有するネットワークシステムについて説明する。
【0027】
ここで説明するネットワークシステムは、図2のようにLv1からLv4の4つの階層からなる。そしてこのネットワークの構成としては、複数のグループ(Lv1)が形成され、グループ(Lv1)の数と同数のマスタ端末が接続されている。そして、この複数のマスタ端末は、複数のマスタグループ(Lv2)に分けられている。すなわち、マスタ端末からなるマスタグループ(Lv2)が複数形成されている。このマスタグループ(Lv2)に所属する複数のマスタ端末のうち、1台のマスタ端末をマスタグループ(Lv2)のマスタとして動作させ、マスタグループ(Lv2)内の他のマスタ端末をこのマスタグループ(Lv2)のスレーブとして動作させる。
【0028】
さらに、このマスタグループ(Lv2)のマスタとしてのマスタ端末は、第2のマスタグループ(Lv3)が複数形成され、マスタグループ(Lv2)の数と同数のマスタグループ(Lv2)のマスタとしてのマスタ端末が接続されている。そして、この複数のマスタグループ(Lv2)のマスタとしてのマスタ端末は、複数の第2のマスタグループ(Lv3)に分けられている。すなわち、マスタグループ(Lv2)のマスタとしてのマスタ端末からなる第2のマスタグループ(Lv3)が複数形成されている。この第2のマスタグループ(Lv3)に所属する複数のマスタ端末のうち、1台のマスタ端末を第2のマスタグループ(Lv3)のマスタとして動作させ、第2のマスタグループ(Lv3)内の他のマスタ端末を第2のマスタグループ(Lv3)のスレーブとして動作させる。このとき、第2のマスタグループ(Lv3)のマスタとしての複数のマスタ端末からなる第3のマスタグループ(Lv4)が形成される。
【0029】
例えば、図2のように、1組のグループに所属する端末の数を10台とし、10000台の端末1間で通信を行う場合、Lv1の階層のように、10台の端末を1組としたグループ(Lv1)が1000組の存在することになる。マスタ端末は、グループ(Lv1)に1台であるため、この1000組のグループ(Lv1)から1000台のマスタ端末が存在する。
【0030】
この1000台のマスタ端末は、Lv2の階層のように、10台のマスタ端末を1組としたマスタグループ(Lv2)が100組形成される。すなわち、100組のマスタグループ(Lv2)が存在することになる。このマスタグループ(Lv2)のマスタ端末も、マスタグループ(Lv2)に1台であるため、この100組のマスタグループ(Lv2)から100台のマスタ端末が存在する。
【0031】
この100台のマスタ端末は、Lv3の階層のように、10台のマスタ端末を1組とした第2のマスタグループ(Lv3)が10組形成される。すなわち、10組の第2のマスタグループ(Lv3)が存在することになる。この第2のマスタグループ(Lv3)のマスタ端末も第2のマスタグループ(Lv3)に1台であるため、この10組の第2のマスタグループ(Lv3)から10台のマスタ端末が存在する。そして、この10台のマスタ端末により、1組の第3のマスタグループ(Lv4)が形成される。
【0032】
このように構築されたネットワークシステムでは、Lv1の階層で所属するグループ(Lv1)内でのピアツーピア通信が行われる。また、Lv2の階層では、グループ(Lv1)のマスタ端末からなるマスタグループ(Lv2)内でのピアツーピア通信が行われる。さらに、Lv3の階層では、マスタグループ(Lv2)のマスタ端末からなる第2のマスタグループ(Lv3)内でのピアツーピア通信が行われる。そして、Lv4の階層では、第2のマスタグループ(Lv3)のマスタ端末からなる第3のマスタグループ(Lv4)内でのピアツーピア通信が行われる。すなわち、マスタ端末を介することで、他のグループの端末と通信することができる。したがって、多くの台数の端末からなるネットワークシステムを構築することができる。
【0033】
このように、階層を増加させることでより多くの台数の端末を接続し、端末間でのピアツーピア通信を行うことができ、より多くの台数の端末と情報の送受信が可能となる。
【0034】
以下、本発明のネットワークシステムにおける端末間の接続数と従来のピアツーピアネットワークにおける端末間の接続数とを具体例を示して比較する。従来のピアツーピアネットワークにおける端末間の接続数を求めるにあたり、まず、n台の端末を接続する際の接続数の一般式を求める。まず、1台の端末が他のn−1台の端末に接続するため、1台の端末の接続数はn−1となる。この接続数がn台の端末分あるため、接続数はn×(n−1)となる。この場合、各端末間で接続数が2あることになるが、通常、各端末間での接続は1でよいため、実際に必要となる接続数Jは下記式(1)となる。
【0035】
【数1】
【0036】
次に、本発明のネットワークシステムにおける端末間の接続数を求めるにあたり、n台の端末を接続する際の接続数の一般式を求める。本発明のネットワークシステムは、端末が複数のグループに分けられている。ここでは、n台の端末が均等にグループに分けられているものとし、階層の数をgとして接続数を求める。
【0037】
本発明のネットワークシステムでは、最上層の階層に所属するマスタ端末であっても、最下層のグループに所属する。そのため、端末の総数nは、1グループの端末の台数をCとすると、1つのグループの台数Cと最下層であるLv1の階層のグループ数との積によって求められる。このグループには1台のマスタ端末があるため、このLv1の階層のグループ数は、マスタ端末の台数に等しい。このマスタ端末も台数C毎にマスタグループ(Lv2)を形成しているため、マスタグループ(Lv2)の台数CとLv2の階層のマスタグループ数との積によって求められる。同様に、Lv2の階層のグループ数も第2のマスタグループ(Lv3)の台数CとLv3の階層の第2のマスタグループ数との積によって求められる。すなわち、本発明のネットワークシステムが、2つの階層(g=2)からなる場合、グループ内の端末数C台がグループ数Cあることで総数C×C台の端末が存在し、3つの階層(g=3)からなる場合、グループ内の端末数C台がグループ数C×Cあることで総数C×C×C台の端末が存在することになる。したがって、階層数がgである場合、グループ内の端末数C台がグループ数Cg−1あることで、C×Cg−1=Cg台の端末が存在することになる。上述のように、n台の端末が均等にグループ分けされているため、これに基づいて1グループにおける端末の台数Cを求めると、下記式(2)となる。
【0038】
【数2】
【0039】
次に接続数を求める。グループ内での接続数をkとすると、接続数kは、上述の式(1)と同様に、下記式(3)で算出できる。
【0040】
【数3】
【0041】
本発明のネットワークシステムは、最上層の階層に所属するマスタ端末であっても、最下層のグループに所属している。したがって、本発明のネットワークシステムにおける接続数Kは、グループ内の接続数kとマスタグループを含む全グループ数Mによって算出できる。上述のように、各階層におけるグループ数が1つ上層のマスタ端末の台数である。2つの階層(g=2)である場合、Lv2の階層のマスタグループの数が1で、Lv1の階層のグループの数がCとなるため、全グループ数Mは、1+Cとなる。また、3つの階層(g=3)である場合、Lv3の階層の第2のマスタグループの数が1で、Lv2の階層のマスタグループの数がCで、Lv1の階層のグループ数がC×Cであるため、全グループ数Mは、1+C+C×Cとなる。したがって、階層数がgである場合、全グループ数Mは、下記式(4)で求められる。
【0042】
【数4】
【0043】
すなわち、n台の端末に対して本発明のネットワークシステムを使い、均等にグループに分けられている場合、上述の式(2)乃至(4)を使って接続数を求めることができる。
【0044】
具体的に、100台の端末を使ってピアツーピア通信可能なネットワークシステムを構築すると、従来のシステムでは、式(1)から接続数jは4950である。一方、本発明のシステムでは、2つの階層(g=2)の場合、式(2)から1つのグループ内の端末数Cが10となり、式(3)から1つのグループ内の接続数kが45となり、式(4)から全グループ数Mが11となる。したがって接続数Kは495となり、従来に比べて10%となっている。すなわち、ネットワークにかかる負担が10分の1となり、10倍効率的に通信が行える。また、2000台の端末の場合、従来では、接続数kが1999000である。これに対し、本発明では、3つの階層がある場合、接続数Kが14274であり、従来に比べて0.7%である。このように、より効率的に通信を行うことができる。
【0045】
上述のネットワークシステムを構成する複数の端末1は、図3のように、音声入力部10と、音声出力部11と、音声制御部12と、表示部13と、音声データ合成部14と、仮想空間記憶部15と、位置情報特定部16と、表示画面制御部17と、通信経路確立部18と、インターフェース部19とを有している。
【0046】
仮想空間記憶部15は、仮想空間の情報を記憶する。この仮想空間記憶部15に記憶された仮想空間の情報は、後述する表示画面制御部17の制御に基づいて表示部13に表示される。仮想空間記憶部15は、複数の仮想空間の情報を記憶していてもよく、端末1の利用者に選択させるようにしてもよい。
【0047】
この仮想空間は、図4のように、表示部13で表示される例えば街や建物などの空間内を示す2次元の画像と、その画像に対応するように2次元の直交座標とにより構成されている。この仮想空間は、3次元の画像と3次元の直交座標であってもよい。すなわち、仮想空間における位置はこの座標により示され、この座標が仮想空間の位置を示す位置情報となる。この仮想空間には、位置情報を有する例えば木や河川、壁や橋などの画像が含まれ、これら画像はその位置情報に基づいて仮想空間の中に表示される。
【0048】
また、この仮想空間には、自己の端末1がピアツーピア通信によって他の端末1と音声データを送受信することができる状態になると、自己の端末1に関係するアバターとして、例えば人や動物といった画像が表示される。そして、自己の端末1とピアツーピア通信によって音声データを送受信することができる状態となった他の端末1も同様に、他の端末1に関係するアバターとして画像が表示される。
【0049】
位置情報特定部16は、仮想空間上に表示される端末1に関係するアバターの位置情報を特定する。位置情報特定部16は、仮想空間記憶部15に記憶された仮想空間の情報から直行座標を取得し、位置情報である直交座標中の座標を特定する。この座標に基づいて仮想空間上にアバターが表示される。
【0050】
また、位置情報特定部16は、通信経路確立部18によって他の端末1との接続が確立されると、自己の端末1が所属したグループの情報を受け取り、自己の端末1に関連するアバターが、所属したグループ内の端末1に関連するアバターに比較的近い位置に表示されるように位置情報を特定する。
【0051】
位置情報特定部16は、特定された位置情報を表示画面制御部17及びに渡す。また、位置情報特定部16は、インターフェース部19を介して、特定された位置情報を他の端末1に送信する。
【0052】
表示画面制御部17は、仮想空間記憶部15から仮想空間の情報を取得する。また、表示画面制御部17は、位置情報特定部16から自己の端末1に関係するアバターの位置情報を取得する。さらに、表示画面制御部17は、自己の端末1と接続された他の端末1に関係するアバターの位置情報を取得する。この表示画面制御部17は、仮想空間の情報に基づいて表示部13に仮想空間を表示させ、さらに、取得した位置情報に基づいて端末1に関係するアバターを仮想空間内に表示させる。
【0053】
表示部13は、表示画面制御部17により制御され、仮想空間や端末1に関係するアバターを表示する。
【0054】
音声入力部10は、例えばマイクなどで、音声データを入力し、入力された音声データは、他の端末1とピアツーピア通信で送受信される。音声入力部10は、入力した音声データを音声データ合成部14に渡し、端末1がインターフェース部19を介して他の端末1に送信する。
【0055】
音声出力部11は、例えばスピーカーなどで、音声データを出力する。この音声出力部11は、端末1が受信した音声データを出力する。音声出力部11は、他の端末1から受信し、後述する音声データ合成部14で合成された音声データを出力する。
【0056】
音声データ制御部12は、音声入力部10で入力された音声データ及び他の端末1から受信した音声データを制御する。音声データ制御部12は、他の端末1から受信した音声データを自己の端末1に関係するアバターの位置情報と、受信した音声データを送信した他の端末1に関係するアバターの位置情報とから、仮想空間上におけるアバター間の直線距離を算出する。音声データ制御部12は、この直線距離に基づいて受信した音声データの出力によって発する音声の大きさを調整するように音声データ合成部14を制御する。
【0057】
さらに、音声データ制御部12は、自己の端末1がスレーブ端末1−Sである場合、音声データに自己の端末1に関係するアバターの位置情報を音声データとともに接続している他の端末1に送信する。また、音声データ制御部12は、自己の端末1がマスタ端末である場合、所属するグループ2内の他の端末1から受信した音声データと自己の端末1の音声入力部10で入力した音声データとを後述する音声データ合成部14に合成させる。
【0058】
音声データ合成部14は、他の端末1から受信した音声データや自己の端末1で入力された音声データを音声データ制御部12の制御に基づいて合成する。自己の端末1が所属するグループにおけるマスタ端末1−Mである場合、音声データ合成部14は、所属するグループ内の端末1から入力された音声をミキシングして1つの音声データとなるように合成し、他のグループに送信する音声データとする。
【0059】
また、音声データ合成部14は、音声データ制御部12で算出されたアバター間の直線距離に応じて、音声データの出力により発する音声の大きさを調整する。調整された音声は、他の音声データと合成されて音声出力部11から出力される。
【0060】
通信経路確立部18は、他の端末1とのピアツーピア通信を行うために、インターフェース部19を介して、他の端末1との接続を確立する。本発明のネットワークシステムは、上述のように複数のグループによって構成されており、通信経路確立部18は、他の端末1との接続を確立する場合、所望の条件に基づいて所属させるグループを決める。この条件としては、特に限定するものではないが、例えば通信状態を良好に保つために所属する端末1の台数が比較的少ないグループを優先させたり、利用者に選択させたりするといった条件が挙げられる。通信経路確立部18は、他の端末1との接続が確立すると、所属したグループに応じて自己の端末1に関係するアバターの仮想空間上の座標を特定させるように位置情報特定部16に通知する。また、通信経路確立部18は、他の端末1との接続が確立すると、所属したグループを音声データ合成部14に通知する。
【0061】
インターフェース部19は、複数の端末1同士を接続する。このインターフェース部19を介して、端末1の音声入力部10で入力された音声データの送信と、他の端末1からの音声データの受信とを行い、複数の端末10間で音声データを即時交換することで音声によるチャットを実現することができる。
【0062】
この複数の端末1は、それぞれ、CPUの制御のもとに、所定のプログラムを実行することにより、音声制御部12、音声データ合成部14、仮想空間記憶部15、位置情報特定部16、表示画面制御部17、通信経路確立部18をはじめとする各部材の機能を実現する。
【0063】
以下、音声データの送受信について説明する。まず、音声データの送受信は、図5のような流れで各処理が行われる。まず、利用者が利用する自己の端末1の表示画面制御部17は、ステップS10において、表示部13に表示させたい仮想空間を仮想空間記憶部15から仮想空間の情報として取得する。
【0064】
表示画面制御部17は、ステップS11において、取得した仮想空間の情報に基づいて表示部13に仮想空間を表示させる。
【0065】
仮想空間が表示された後、表示画面制御部17は、その旨を通信経路確立部18に通知する。通知を受けた通信経路確立部18は、ステップS12において、同じ仮想空間を表示部13に表示させている端末を探索する。
【0066】
そして、通信経路確立部18は、ステップS13において、後述する探索された端末1との接続処理を行う。
【0067】
接続処理が行われた後、通信経路確立部18は、接続処理が終了した旨を音声データ制御部12に通知する。通知を受けた音声データ制御部12は、ステップS14において、後述する音声データの処理を行う。この音声データの処理は、利用者が自己の端末1と他の端末1との接続を切断するまで続けられる。
【0068】
利用者が自己の端末1と他の端末1との接続を切断する場合、通信経路確立部18は、ステップS15において、他の端末1との接続を切断し、この音声データの送受信を終了させる。
【0069】
以下、他の端末1との接続処理及び音声データの処理について詳細に説明する。
【0070】
端末1は、上述のようなネットワークシステムにおいて、通信経路確立部18によってピアツーピア通信によって情報の送受信が可能なように他の端末1と接続することにより、マスタ端末1−Mまたはスレーブ端末1−Sとなる。以下、他の端末1への接続処理について図6を参照しながら説明する。
【0071】
自己の端末1の通信経路確立部18は、ステップS301において、接続しようとしているネットワーク内のグループ2のうち、端末1間での通信状況を確認しながら、所属させるグループ2を探索する。
【0072】
グループ2に所属させる条件は、特に限定されるものではなく適宜変更可能である。例えば、通信状態を良好に保つために所属する端末1の台数が比較的少ないグループを優先させたり、利用者に選択させたりするといった条件が挙げられる。
【0073】
探索後、通信経路確立部18は、ステップS302において、探索したグループ2内に所属する他の端末1のIP(Internet Protocol)アドレスを取得する。
【0074】
そして、通信経路確立部18は、ステップS303において、取得したIPアドレスを使って他の端末1とピアツーピア通信可能に接続する。
【0075】
ピアツーピア通信可能に接続された複数の端末1の通信経路確立部18は、ステップS304において、所属するグループ2内のマスタ端末1−Mを選び出す。例えば、所属するグループ2の中で例えば通信速度が最も速い端末1をマスタ端末1−Mとする。グループ2内のマスタ端末1−M以外の端末1は、スレーブ端末1−Sとなる。
【0076】
マスタ端末1−Mの選択後、通信経路確立部18は、ステップS305において、自己の端末1がマスタ端末1−Mであるか否かを確認する。ステップS305において、通信経路確立部18が自己の端末1がマスタ端末1−Mでない、すなわちスレーブ端末1−Sであると判断した場合、ステップS312に移行する。
【0077】
一方、ステップS305において、通信経路確立部18が自己の端末1がマスタ端末1−Mであると判断した場合、ステップS306に移行する。
【0078】
自己の端末1がマスタ端末1−Mであると判断した通信経路確立部18は、ステップS306において、自己の端末1を所属させるマスタグループ3を探索する。この場合も上述と同様にマスタ端末1−M間の通信状況を確認しながら、マスタグループ3を探索する。
【0079】
探索後、通信経路確立部18は、ステップS307において、探索したマスタグループ3内に所属する他のマスタ端末1−MのIPアドレスを取得する。
【0080】
そして、通信経路確立部18は、ステップS308において、取得したIPアドレスを使って他のマスタ端末1−Mとピアツーピア通信可能に接続する。
【0081】
ピアツーピア通信可能に接続された複数のマスタ端末1−Mの通信経路確立部18は、ステップS309において、上述と同様に、所属するマスタグループ3内のマスタ端末1−Mを選び出す。
【0082】
マスタ端末1−Mの選択後、通信経路確立部18は、ステップS310において、自己の端末1がマスタ端末1−Mであるか否かを確認する。ステップS310において、通信経路確立部18が自己の端末1がマスタグループ3におけるマスタ端末1−Mでないと判断した場合、ステップS312に移行する。
【0083】
一方、ステップS310において、通信経路確立部18が自己の端末1がマスタグループ3におけるマスタ端末1−Mであると判断した場合、ステップS311に移行する。
【0084】
自己の端末1がマスタ端末1−Mであると判断した通信経路確立部18は、ステップS311において、自己の所属するマスタグループ3以外のマスタグループ3が存在するか否かを判断する。その結果、通信経路確立部18が自己の所属するマスタグループ3以外のマスタグループ3が存在すると判断した場合、ステップS306に移行し、ステップS306乃至ステップS311を繰り返す。これにより、図1及び図2のような階層を有するネットワークを構築することができる。
【0085】
一方、通信経路確立部18が自己の所属するマスタグループ3以外のマスタグループ3が存在しないと判断した場合、ステップS312に移行する。
【0086】
その後、通信経路確立部18は、他の端末1との接続が確立したことを位置情報特定部16及び表示画面制御部17に通知する。その通知を受けた位置情報特定部16は、ステップS312において、表示部13に表示されている仮想空間上の自己の端末1に関係するアバターの座標を特定する。このとき、位置情報特定部16は、自己の端末1に関係するアバターが、所属するグループ2の他の端末1に関係するアバターの座標に比較的近い座標に表示されるように座標を決める。
【0087】
その後、位置情報特定部16は、ステップS313インターフェース部19を介して、他の端末1に関係するアバターの位置情報を取得する。位置情報特定部16は、取得した位置情報を自己の端末1に関係するアバターの位置情報とともに表示画面制御部17に渡す。
【0088】
自己の端末1及び他の端末1に関係するアバターの位置情報を受け取ると、表示画面制御部17は、ステップS314において、受け取った位置情報に基づいて自己の端末1及び他の端末1に関係するアバターを表示させる。
【0089】
このように、他の端末1との接続が確立した自己の端末1は、ピアツーピア通信によって音声データを送受信することができる。以下、音声データの処理について説明するが、音声データの処理は、音声データの入力時の処理と音声データの受信時の処理とに分けて説明する。この音声データの入力時の処理と音声データの受信時の処理は、同時に行われてもよい。
【0090】
以下、音声データの入力時の処理について図7を用いて説明する。まず、ステップS101において、音声データが音声入力部10から入力される。そして、音声入力部10は、ステップS102において、入力された音声データを音声データ制御部12に渡す。
【0091】
音声データ制御部12は、音声データを受け取ると、位置情報特定部16に仮想空間上に表示された自己の端末1に関係するアバターの位置情報を特定するように要求する。要求を受けた位置情報特定部16は、ステップS103において、仮想空間上に表示されたアバターの位置情報を特定する。
【0092】
位置情報を特定した後、位置情報特定部16は、ステップS104において、特定された位置情報を音声データ制御部12に渡す。音声データ制御部12は、位置情報を受け取とると、音声データと位置情報とを送信するために、自己の端末1と他の端末1との接続環境を確認するように通信経路確立部18に要求する。
【0093】
要求を受けた通信経路確立部18は、ステップS105において、自己の端末1と他の端末1との接続環境を確認する。このとき、通信経路確立部18は、自己の端末1と接続する他の端末1を全て検出し、自己の端末1が所属するグループ2内の他の端末1を特定する。そして、自己の端末1が所属するグループ2の全ての端末1の中で、他のグループ2のマスタ端末1−Mと接続する端末1を探し出す。
【0094】
そして、通信経路確立部18は、ステップS106において、自己の端末1がスレーブ端末1−Sであるか否かを確認する。自己の端末1がスレーブ端末1−Sである場合、通信経路確立部18は、その旨を音声データ制御部12に通知する。ステップS111に移行する。
【0095】
ステップS107において、自己の端末1がスレーブ端末1−Sでない場合、すなわちマスタ端末1−Mである場合、通信経路確立部18は、その旨を音声データ制御部12に通知する。通知を受けた音声データ制御部12は、ステップS107において、後述するように自己の端末1の所属するグループ2内の他の端末1から受信した音声データと、入力された音声データとを音声データ合成部14に渡す。
【0096】
音声データを受け取った音声データ合成部14は、ステップS108において、入力された音声データと、自己の端末1の所属するグループ2内の他の端末1から受信した音声データとを合成し、1つの音声データとする。そして、音声データ合成部14は、ステップS109において、合成された音声データを音声データ制御部12に渡す。
【0097】
音声データ制御部12は、合成された音声データを受け取ると、ステップS110において、インターフェース部19を介して、位置情報と合成された音声データとを他のグループ2のマスタ端末1−Mに送信する。このとき、マスタグループ3が複数ある場合、音声データ制御部12は、所属するマスタグループ3内の他のマスタ端末1−Mに合成された音声データを送信し、ステップS111に移行する。
【0098】
音声データ制御部12は、ステップS111において、インターフェース部19を介して、位置情報と入力された音声データとを自己の端末1が所属するグループ2内の全ての他の端末1に送信する。送信された音声データは他の端末1で受信される。
【0099】
このように、自己の端末1がマスタ端末1−Mである場合、他のグループ2に所属するマスタ端末1−Mには、自己の端末1が所属するグループ内の音声データが合成された1つの音声データが送信される。これにより、他のグループのマスタ端末1−Mは、1台の自己の端末1と接続し、1つの音声データを受信することで、自己の端末1が所属するグループ2内で送受信される全ての音声データと同等の音声データを受信することになる。したがって、ネットワーク及び端末1にかかる負担が軽減され、接続可能な台数制限を超えて接続された多くの台数の端末1から入力された音声データを受信することができる。すなわち、端末1及び本発明のネットワークシステムを介して、大人数の利用者と会話することができる。
【0100】
送信された音声データと位置情報は、他の端末1に受信され、他の端末1の音声出力部11から出力される。以下、音声データの受信及び出力について図8を用いて説明する。
【0101】
ネットワークに接続された端末1は、ステップS201において、インターフェース部19で他の端末1から送信されてきた音声データを受信する。そして、ステップS202において、受信した音声データを音声データ制御部12に渡す。
【0102】
音声データ制御部12は、音声データを受け取ると、位置情報特定部16に仮想空間上に表示された自己の端末1に関係するアバターの位置情報を特定するように要求する。要求を受けた位置情報特定部16は、ステップS203において、仮想空間上に表示されたアバターの位置情報を特定する。
【0103】
位置情報を特定した後、位置情報特定部16は、ステップS204において、特定された位置情報を音声データ制御部12に渡す。音声データ制御部12は、ステップS205において、位置情報を受け取ると、音声データを送信した他の端末1の位置情報と位置情報特定部16で特定した位置情報とから、自己の端末1に関係するアバターと音声データを送信した他の端末1に関係するアバターとの仮想空間上での直線距離を算出する。
【0104】
仮想空間上に表示されるアバターの位置情報は、図4のように、仮想空間上の位置を示す座標によって示される。したがって、この2つの座標から距離を算出することで直線距離が求めることができる。
【0105】
例えば、図4のように、2次元の仮想空間(X軸Y軸による2次元座標)で、自己の端末1に関係するアバター81が位置A(座標(a,b))に表示され、音声データを送信した端末1に関係するアバター82が位置D(座標(d,e))に表示されるている場合、位置情報特定部16は、自己の端末1に関係するアバター81の位置Aの座標(a,b)を位置情報として特定する。そして、音声データを送信した端末1に関係するアバター82の位置情報(位置Dの座標(d,e))は、音声データとともに送信される。この2つのアバターの直線Lの距離は、この位置A(a,b)、位置D(d,e)との2点間の距離であるため、{(a−d)2+(b−e)2}1/2によって算出される。
【0106】
同様に、3次元の仮想空間(X軸Y軸Z軸による3次元座標)で、2つのアバターがそれぞれ座標(a,b,c)、(d,e,f)で示される位置に表示される場合、この2つのアバターの直線距離は、{(a−d)2+(b−e)2+(c−f)2}1/2によって算出される。
【0107】
このように、直線距離が算出されると、音声データ制御部12は、ステップS206において、受信した音声データと算出した直線距離の情報を音声データ合成部14に渡す。
【0108】
音声データと直線距離の情報とを受け取った音声データ合成部14は、ステップS207において、算出された直線距離に応じて音声データの出力により発する音声の大きさを調整する。このとき、直線距離が長くなるほど音声データの出力により発する音声の大きさを小さくするように調整する。例えば、図9のような直線距離がL1からL2のように長くなると、音声の大きさがV1からV2のように連続的に変化する式を予め音声データ合成部14が備えるておくことで、音声データ合成部14は、受け取った直線距離に応じて音声データの出力により発する音声の大きさを調整することができる。これにより、現実の世界のように遠くの人からの声が聞き取り難いと同様に、この直線距離が長くなるほど音声データの出力により発する音声の大きさが小さくなる。したがって、現実の世界の会話に近い状況で、チャットを行うことができる。
【0109】
音声データの出力により発する音声の大きさを調整した音声データ合成部14は、ステップS208において、そのほかに出力する音声データがあるか否かを確認する。すなわち、受信した音声データと一緒に音声出力部11で出力する音声データがあるか否かを確認する。
【0110】
この一緒に出力する音声データとは、調整した音声データを送信した端末1以外の端末1からの音声データや、仮想空間上の特定の位置から出される例えば川の流れる音や鳥のさえずりや風によってなびく木々の音、ラジオから流れる音楽や車が走り去る音など、現実の世界において実際に耳にする音が挙げられる。
【0111】
ステップS208において、音声データ合成部14が調整された音声データの他に出力する音声データがないと判断した場合、ステップS211に移行する。音声データ合成部14は、ステップS211において、大きさを調整した音声データを音声出力部11に渡し、ステップS212に移行する。
【0112】
ステップS208において、音声データ合成部14が調整された音声データの他に出力する音声デーがあると判断した場合、ステップS209に移行する。音声データ合成部14は、ステップS209において、大きさを調整した音声データと他の音声データを合成する。このとき、他の音声データも、上述のように、直線距離に応じて出力により発する音声の大きさが調整されている。
【0113】
音声データが合成された後、音声データ合成部14は、合成された音声データを音声出力部11し、ステップS212に移行する。
【0114】
音声出力部11は、ステップS212において、受け取った音声データを出力する。
【0115】
このように、接続された端末1間で音声データを送受信できる。音声データの送信の際の上述のような処理は、音声入力部10で音声が入力されるたびに即時に行われる。また、音声データの受信の際の上述のような処理は、音声データを受信するたびに行われる。したがって、音声データの送受信は、即時に交換されるため、仮想空間上に表示される各端末1に関係するアバターを介して、端末1を利用する利用者同士のチャットを行うことができる。
【0116】
また、マスタ端末1−Mは、マスタ端末1−Mがグループ2内の他の端末1から受信した音声データを合成して、1つの音声データを形成し、この音声データを他のグループ2のマスタ端末1−Mに送信することで、他のグループ2の音声データも受信することができる。したがって、本発明のネットーワークシステムで、音声データを送受信しても端末1及びネットワークにかかる負担が小さくなり、大人数での音声データの送受信を可能とする。すなわち、従来物理的な要因で行うことができなかった例えば80台以上の端末1を接続し、その端末1によって構築されたネットワークシステムを利用して大人数でのチャットを行うことができる。
【0117】
さらに、本発明のネットワークシステムは、仮想空間記憶部15で記憶した仮想空間の情報と、位置情報特定部16で特定した自己の端末1に関係するアバターの位置情報と特定し、表示画面制御部17で仮想空間の情報とアバターの位置情報とに基づいて表示部13に表示させるように制御する。またさらに、自己の端末1に関係するアバターだけでなく、他の端末1に関係するアバターの位置情報を他の端末1から受信し、その位置情報に基づいて他の端末1に関係するアバターのを表示することができる。これにより、端末間の接続関係を視覚的にとらえることができるだけでなく、端末間での音声データの送受信してチャットを行うことで、仮想空間上のアバターを介しての会話が可能となる。また、上述のネットワークシステムによって大人数での会話も可能となり、仮想空間上での会議なども行うことができる。
【0118】
現実の世界において、人の声等は壁など音声の伝達を妨げる障害物があることで遮断されることがある。上述したピアツーピア通信を利用した音声データの送受信においても、そのような障害物を仮想空間上に表示させてもよい。
【0119】
この仮想空間上に表示される障害物は、障害物情報として仮想空間の情報とともに仮想空間記憶部15に記憶される。この障害物情報は、障害物の画像情報と障害物の情報と仮想空間上に表示される位置情報とにより構成されている。障害物の情報とは、例えば自己の端末1に関係するアバターの位置情報と、自己の端末1が所属するグループ2内の他の端末1の関係するアバターの位置情報とからアバター間を結ぶ直線上にこの障害物が存在する場合、音声データを受信した端末1は、その音声データの出力により発する音声の大きさを制限する。例えば、受信した音声データを出力する際に、音声データに基づく音声の大きさを障害物がない場合に比べて50%の大きさにするといった制限や、音声データを出力しないといった制限などが挙げられる。このような障害物の他の例としては、音声を所定の吸収率で吸収する壁やいりくんだ地形等が挙げられる。
【0120】
具体的に、図10を参照して説明する。自己の端末1が上述のように他の端末1とピアツーピア通信可能に接続されることで、図10のように、自己の端末1に関係するアバター81が位置Aの座標(a,b)という位置情報を有して仮想空間上に表示される。また、他の端末1に関係するアバター82も位置Dの座標(d,e)という位置情報を有して仮想空間上に表示される。このとき、仮想空間上には、アバター81が表示される位置A(a,b)とアバター82が表示される位置D(d,e)とを結ぶ直線L上の位置Z(座標(x,y))に障害物5が表示されている。
【0121】
表示画面制御部17は、自己の端末1がグループ2内の他の端末1から音声データと位置情報とを受信すると、自己の端末1の関係するアバター81の位置情報と他の端末1から受信した位置情報とに基づいて仮想空間上の直線Lを導き出す。そして、表示画面制御部17は、この直線Lが通る座標を取得し、確認した座標の中に障害物5が表示される位置Xの座標が含まれているか否かを確認し、アバター81とアバター82とを結ぶ直線L上に障害物があるか否かを確認する。そして、表示画面制御部17は、直線L上の障害物の有無を音声データ制御部12に通知する。
【0122】
音声データ制御部12は、表示画面制御部17から障害物が直線L上に無いことを通知されると、上述と同様に直線Lの直線距離を算出する。音声データ合成部14は、算出した直線距離に基づいて音声データの出力により発する音声の大きさを調整する。一方、音声データ制御部12は、表示画面制御部17から障害物が直線L上に有ることを通知されると、障害物5の情報を音声データ制御部12に渡す。音声データ制御部12は、直線Lの直線距離を算出する。そして、算出した直線距離と、障害物5の情報を音声データ合成部14に渡す。音声データ合成部14は、算出した直線距離に基づいて音声データの出力により発する音声の大きさを調整する。また、音声データ合成部14は、障害物5の情報を解析し、その障害物5の情報に応じて音声データの出力により発する音声の大きさを制限し、他の音声データと合成する。その他の例として、音声を吸収する壁が障害物である場合、この壁が直線L上にあることを通知されると、直線距離に基づいて音声データの出力により発する音声の大きさを調節した後、所定の吸収率をかけるようにして音声を制限する。また、直線Lがいりくんだ地形を通過することを通知すると、そのいりくんだ地形を避けるような曲線がアバター間で形成され、その曲線の道のりが算出される。この道のりに基づいて音声データの出力により発する音声の大きさを調整する。
【0123】
これにより、音声データを送受信することで、より現実の世界での会話に近い状態で音声によるチャットを行うことができる。上述において障害物の位置情報は、1つの位置の座標によって示されたものについて説明したが、本発明はこれに限定されるものではない。例えば、障害物の位置情報として、例えば任意の位置から別の任意の位置までを結ぶような直線や曲線の情報としてもよく、複数の位置の座標を位置情報としてもよい。
【0124】
本発明では、例えば障害物としての壁や扉を有するような仮想空間においても、上述と同様に音声データを送受信することができる。この仮想空間には、壁に囲まれた部屋が複数あり、この部屋の出入り口に扉を有している。
【0125】
部屋の内側及び外側に端末1に関係するアバターが表示されているものとして説明すると、壁と扉を上述した障害物として機能させることで、例えば部屋の外に表示されたアバターに関係する端末1が受信した音声データに基づく音声の出力を禁止させるようにしてもよい。これにより、音声データは部屋の中に表示されたアバターに関係する端末1のみで出力されるように制限することができ、例えば会議などのように他人に聞かせたくない内容の会話も本発明のネットワークシステムを介して行うことができる。
【0126】
また、上述のような部屋を有する仮想空間を表示して、音声データの送受信を行う場合、グループ2と仮想空間上の部屋とを対応させてもよい。この場合、自己の端末1は、他の端末1と接続する際に所属するグループ2に対応する部屋内に表示される。
【0127】
仮想空間上に表示されるアバターは、そのアバターに関係する端末1の操作によって移動させることもできる。この場合、端末1には、図11のように、操作部20がさらに備えられる。この操作部20は、例えばマウスやキーボードやコントローラなどが挙げられ、特に限定するものではない。この操作部20は、アバターを移動させることができる。この操作部20は、例えばアバターの移動させるために動かしたマウスの動作量、マウスを動かした方向といった操作部20の動作情報を位置情報特定部16に渡す。
【0128】
動作情報のを受け取った位置情報特定部16は、その動作量に基づいて、現在のアバターの座標からのアバターの移動量を求め、新たな座標を特定する。例えば、図12のように、現在のアバター85の位置B(座標(m,n))から、操作部20であるマウスを動かすことで、位置C(座標(p,q))にアバター85を移送させる場合について説明する。まず、アバター85が表示された仮想空間で、マウスを位置B(m,n)から位置C(p,q)に向かって動かし、その動作量と動作させた方向を動作情報として位置情報特定部16に渡す。位置情報特定部16は、動作情報受け取ることで、操作部20の動作量と動作させた方向を解析し、所定の処理によってアバター85の移動量を求め、アバター85の新たな座標となる位置C(p,q)を位置情報として特定する。特定した位置情報を表示画面制御部17に渡し、その位置情報に基づいてアバター85を仮想空間上の位置B(m,n)から位置C(p,q)に移動させる。
【0129】
これにより、例えば上述のように、アバター間の直線距離が遠かったり、障害物があったりすることで音声データの出力により発する音声の大きさが十分で無い場合などに、音声の大きさが十分となるようにアバターを移動させ、円滑なチャットを行うことができる。
【0130】
この操作部20によって、仮想空間上で、自己の端末1に関係するアバターが自己の端末1が所属しない他のグループ2に所属する端末1に近付いた場合、通信経路確立部18は、通信状況を鑑みながら、アバターが近づいた他の端末1の所属するグループ2に自己の端末1を所属させるように、接続する端末1を変更することも可能である。このように、仮想空間を利用することで、グループ形成の手がかりとすることができる。本発明では、同一グループにおける端末間の通信と、他のグループにおける端末間の通信と比べると、同一グループにいる方がよりよい。特定の端末1と音声データを効率的に送受信したい場合、この仮想空間を利用して、自己の端末1に関係するアバターを移動させ、特定の端末1に関係するアバターに近づけることで、グループが再編成される。したがって、ネットワーク構造を簡単に変更することができる。
【0131】
さらにまた、この仮想空間には、一方的に音声を発する例えばラジオ等の音源のような端末があってもよく、この音源は、他の端末1から音声データを受信しない。そして、音源からは常に音声データが各端末1に送信され、音源からの音声データを受信した端末1は、端末1と音源との直線距離を算出し、音源から受信した音声データの出力によって発する音声の大きさを調整して、音声データ合成部14で他の音声データと合成して出力する。これにより、音声データを送受信することでチャットだけではなく、大人数でラジオを聞くこともできる。この音源は、ラジオに限定されるものではなく、現実の世界にある動物園の檻の前にマイクを備え、そのマイクを介して動物の鳴き声などを音声データとして送信したり、コンサートの会場に備えられているマイクを通じて、会場内の音声を音声データとして送信したりすることもできる。すなわち、本発明のネットワークシステムを利用することで、現実の世界で行われるものをその場にいなくても体験することができる。
【0132】
仮想空間上にアバターとして表示される画像は、仮想空間記憶部15に記憶されていてもよいが、他の端末1と接続する際に他の端末1から受信してもよい。そしてこのアバターとして表示される画像は、利用者によって変更するようにしてもよい。
【図面の簡単な説明】
【0133】
【図1】本発明のネットワークシステムの一例を示す図である。
【図2】4つの階層を有するように構成された本発明のネットワークシステムの概略図である。
【図3】本発明のネットワークシステムを構築する端末の構成を示すブロック図である。
【図4】本発明のネットワークシステムを構築する端末の表示部に表示される仮想空間を説明する図である。
【図5】本発明のネットワークシステムを構築する端末で音声データを送受信する際の処理に関するフロー図である。
【図6】本発明のネットワークシステムを構築する端末同士の接続処理に関するフロー図である。
【図7】本発明のネットワークシステムを構築する端末で音声データ入力時の音声データの処理に関するフロー図である。
【図8】本発明のネットワークシステムを構築する端末で音声データ受信時の音声データの処理に関するフロー図である。
【図9】仮想空間上に表示されたアバター間の直線距離と音声の大きさの関係を示す図である。
【図10】障害物が表示された仮想空間における本発明のネットワークシステムを構築する端末での音声データの送受信を説明する図である。
【図11】本発明のネットワークシステムを構築する端末の別の構成を示すブロック図である。
【図12】本発明のネットワークシステムを構築する端末において、アバターの移動について説明する図である。
【符号の説明】
【0134】
1 端末
1−M マスタ端末
1−S スレーブ端末
2 グループ
3 マスタグループ
【特許請求の範囲】
【請求項1】
複数の端末をピアツーピア通信によって情報の送受信を可能に接続することで構築されたネットワークシステムであって、
互いにピアツーピア通信する複数の端末からなるグループを複数備え、
前記端末は、
マスタとして前記グループ内の他の端末と接続する1台のマスタ端末と、
前記マスタに対するスレーブとして前記マスタ端末に接続する複数のスレーブ端末とを有し、
前記スレーブ端末は、自己の所属するグループ内のマスタ端末及び他のスレーブ端末と通信し、
前記マスタ端末は、他のグループのマスタ端末と通信し、
前記スレーブ端末は、他のグループの端末と通信する場合、自己の所属するグループ内のマスタ端末を介して通信することを特徴とするネットワークシステム。
【請求項2】
複数の前記グループの前記マスタ端末によりマスタグループが形成され、
前記マスタグループ内の複数の前記マスタ端末のうち、1台のマスタ端末を該マスタグループにおけるマスタとして動作させ、
前記マスタグループ内の他の前記マスタ端末を該マスタグループにおけるスレーブとして動作させることを特徴とする請求項1記載のネットワークシステム。
【請求項3】
前記端末は、
ピアツーピア通信で送受信する音声データを入力する音声入力部と、
他の端末から受信した前記音声データを合成する音声データ合成部と、
音声データ合成部で合成された前記音声データを出力する音声出力部とを有することを特徴とする請求項1記載のネットワークシステム。
【請求項4】
前記マスタ端末は、
自己の所属するグループ内の端末から受信した音声データ及び該マスタ端末の前記音声入力部で入力された音声データを前記音声データ合成部で合成し、
前記音声データ合成部で合成した前記音声データを他のグループのマスタ端末に送信することを特徴とする請求項3記載のネットワークシステム。
【請求項5】
前記端末は、
仮想空間の情報を記憶する仮想空間記憶部と、
前記仮想空間記憶部に記憶された前記仮想空間上における該端末に関係するアバターの位置情報を特定する位置情報特定部と、
前記仮想空間記憶部に記憶された前記仮想空間と、前記位置特定管理部によって特定された位置情報に基づいて、前記仮想空間、該端末のアバター及び他の端末のアバターを表示部に表示する表示画面制御部とを備えることを特徴とする請求項3記載のネットワークシステム。
【請求項6】
前記端末は、
自己の所属するグループの他の端末の前記位置情報特定部で特定された他の端末に関係するアバターの位置情報を受信し、
該端末の前記位置特定管理部で自己の所属するグループの他の端末に関係するアバターの位置情報から前記仮想空間上における自己の所属するグループの他の端末に関係するアバターの位置情報を特定し、
該端末の前記表示画面制御部で自己の所属するグループの他の端末に関係するアバターを表示部に表示させることを特徴とする請求項5記載のネットワークシステム。
【請求項7】
前記端末は、
該端末の前記音声データ合成部で、前記仮想空間上における該端末に関係するアバターの位置情報に基づく位置と、
前記仮想空間上における自己の所属するグループの他の端末に関係するアバターの位置情報に基づく位置との直線距離が長くなるのに応じて該当する他の端末から受信した前記音声データの出力により発する音声の大きさを小さくするように調整して、前記音声データを合成することを特徴とする請求項6記載のネットワークシステム。
【請求項8】
前記端末は、
該端末の前記音声データ合成部で、前記仮想空間上における該端末に関係するアバターの位置情報に基づく位置と、
前記仮想空間上における自己の所属するグループの他の端末に関係するアバターの位置情報に基づく位置とを結ぶ直線上に障害物が存在する場合、
該当する他の端末から受信した前記音声データに基づく音声を制限するように前記音声データを合成することを特徴とする請求項6記載のネットワークシステム。
【請求項1】
複数の端末をピアツーピア通信によって情報の送受信を可能に接続することで構築されたネットワークシステムであって、
互いにピアツーピア通信する複数の端末からなるグループを複数備え、
前記端末は、
マスタとして前記グループ内の他の端末と接続する1台のマスタ端末と、
前記マスタに対するスレーブとして前記マスタ端末に接続する複数のスレーブ端末とを有し、
前記スレーブ端末は、自己の所属するグループ内のマスタ端末及び他のスレーブ端末と通信し、
前記マスタ端末は、他のグループのマスタ端末と通信し、
前記スレーブ端末は、他のグループの端末と通信する場合、自己の所属するグループ内のマスタ端末を介して通信することを特徴とするネットワークシステム。
【請求項2】
複数の前記グループの前記マスタ端末によりマスタグループが形成され、
前記マスタグループ内の複数の前記マスタ端末のうち、1台のマスタ端末を該マスタグループにおけるマスタとして動作させ、
前記マスタグループ内の他の前記マスタ端末を該マスタグループにおけるスレーブとして動作させることを特徴とする請求項1記載のネットワークシステム。
【請求項3】
前記端末は、
ピアツーピア通信で送受信する音声データを入力する音声入力部と、
他の端末から受信した前記音声データを合成する音声データ合成部と、
音声データ合成部で合成された前記音声データを出力する音声出力部とを有することを特徴とする請求項1記載のネットワークシステム。
【請求項4】
前記マスタ端末は、
自己の所属するグループ内の端末から受信した音声データ及び該マスタ端末の前記音声入力部で入力された音声データを前記音声データ合成部で合成し、
前記音声データ合成部で合成した前記音声データを他のグループのマスタ端末に送信することを特徴とする請求項3記載のネットワークシステム。
【請求項5】
前記端末は、
仮想空間の情報を記憶する仮想空間記憶部と、
前記仮想空間記憶部に記憶された前記仮想空間上における該端末に関係するアバターの位置情報を特定する位置情報特定部と、
前記仮想空間記憶部に記憶された前記仮想空間と、前記位置特定管理部によって特定された位置情報に基づいて、前記仮想空間、該端末のアバター及び他の端末のアバターを表示部に表示する表示画面制御部とを備えることを特徴とする請求項3記載のネットワークシステム。
【請求項6】
前記端末は、
自己の所属するグループの他の端末の前記位置情報特定部で特定された他の端末に関係するアバターの位置情報を受信し、
該端末の前記位置特定管理部で自己の所属するグループの他の端末に関係するアバターの位置情報から前記仮想空間上における自己の所属するグループの他の端末に関係するアバターの位置情報を特定し、
該端末の前記表示画面制御部で自己の所属するグループの他の端末に関係するアバターを表示部に表示させることを特徴とする請求項5記載のネットワークシステム。
【請求項7】
前記端末は、
該端末の前記音声データ合成部で、前記仮想空間上における該端末に関係するアバターの位置情報に基づく位置と、
前記仮想空間上における自己の所属するグループの他の端末に関係するアバターの位置情報に基づく位置との直線距離が長くなるのに応じて該当する他の端末から受信した前記音声データの出力により発する音声の大きさを小さくするように調整して、前記音声データを合成することを特徴とする請求項6記載のネットワークシステム。
【請求項8】
前記端末は、
該端末の前記音声データ合成部で、前記仮想空間上における該端末に関係するアバターの位置情報に基づく位置と、
前記仮想空間上における自己の所属するグループの他の端末に関係するアバターの位置情報に基づく位置とを結ぶ直線上に障害物が存在する場合、
該当する他の端末から受信した前記音声データに基づく音声を制限するように前記音声データを合成することを特徴とする請求項6記載のネットワークシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2007−336481(P2007−336481A)
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2006−169351(P2006−169351)
【出願日】平成18年6月19日(2006.6.19)
【出願人】(592044813)株式会社スクウェア・エニックス (115)
【Fターム(参考)】
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願日】平成18年6月19日(2006.6.19)
【出願人】(592044813)株式会社スクウェア・エニックス (115)
【Fターム(参考)】
[ Back to top ]