(57)【特許請求の範囲】
【請求項１】
メモリおよび処理装置を有し、通信ネットワークを介して複数のクライアント端末が接続される仮想空間処理装置であって、
前記クライアント端末からの接続要求に対して接続資格を有するユーザからのものである場合に接続を確立し、仮想空間を表示するために必要なプログラムを送信するＨＴＴＰサーバモジュールと、
あらかじめ設定された仮想空間データファイルに基づいて初期段階の仮想空間定義データを生成するとともに、仮想空間に配置している擬似ユーザの位置情報を示したデータを生成する空間制御モジュールと、
前記仮想空間に配置される擬似ユーザを実行・制御する擬似ユーザ管理モジュールと、
前記クライアント端末に表示される前記擬似ユーザの動作指示を与えるボタンによって指示された要求を管理するモジュールであって、前記要求が仮想空間に対して物理的な行動を起こす場合に前記空間制御モジュールに処理を渡し、前記要求が擬似ユーザを実行する場合に前記擬似ユーザ管理モジュールが実行され、前記実行結果を前記空間制御モジュールに伝える機能を有するユーザ管理モジュールと、
前記クライアント端末とのデータの送受信の制御を行うコミュニケーションモジュールとを備え、
前記クライアント端末からの要求による処理により前記仮想空間の地形や前記擬似ユーザの状態が変化した場合にその結果が前記各クライアント端末に反映される機能を有するものであって、
前記ＨＴＴＰサーバモジュールと、前記空間制御モジュールと、前記擬似ユーザ管理モジュールと、前記ユーザ管理モジュールと、前記コミュニケーションモジュールとについて、各々単一のモジュールをあらかじめ起動して前記メモリ上に配置する機能を有し、
前記コミュニケーションモジュールは、前記各クライアント端末からの要求を複数備蓄することが可能なバッファを備え、前記バッファ内に時間的に早く備蓄された要求を取出す機能と、前記取出された要求の内容より判断して前記ＨＴＴＰサーバモジュールまたは前記ユーザ管理モジュールに要求内容を渡す機能と、前記要求内容を渡したモジュールによる処理が終了し、処理結果を前記各クライアント端末に送信するまで、次の要求の取出しを行わない機能とを有することを特徴とする、仮想空間情報処理装置。
【請求項２】
前記仮想空間データファイルには、仮想空間の各部分に対応した地形データと、前記地形データに対応する画像データと、前記仮想空間に配置されるオブジェクトの配置データと、前記オブジェクトに対応した画像データとを有する、請求項１に記載の仮想空間情報処理装置。
【発明の詳細な説明】
技術分野
この発明は、比較的小規模なハードウェア資源により、多数のクライアント端末を接続することができ、且つクライアント端末が多数接続された場合においても、リアルタイムに各クライアント端末の要求を処理することができる仮想空間情報処理装置を提供することを目的としている。
背景技術
近年、コンピュータ上に、コンピュータグラフィックスとデータベース等を用いて、仮想空間、例えば仮想の商店街等を構築して、クライアント端末に仮想空間に関するデータを送信することにより、クライアント端末の表示手段上に仮想空間の画像を表示させる仮想空間情報処理装置が頻繁に使用されるようになった。現在よく使用されている仮想空間情報処理装置としては、クライアント端末の要求に応じて、機能毎に構成されているプログラム（以下、モジュールと称する）をメモリ上に配置してから、プログラムの処理（以下、プロセスと称する）を実行させて、各要求に対して処理を行う仮想空間情報処理装置が知られている。
しかしながら、従来の仮想空間情報処理装置では、クライアント端末からデータ送信等の要求がある毎に、モジュールを記憶装置から読み出しメモリ上に配置させてから、各クライアント端末の要求に対応するプロセスを実行していたため、１つの要求を処理し応答するためには非常に多くの時間を要していた。そのため、クライアント端末の要求にリアルタイムに対応することができず、クライアント端末を操作する者を苛立たせる結果となっていた。特にこの問題は、多数のクライアント端末が接続された場合において顕著であった。
また、従来の仮想空間情報処理装置においては、各クライアント端末から要求される毎にモジュールをメモリ上に配置していたため、同一機能のモジュールをメモリ上に複数配置することとなり、モジュールがメモリの多くを浪費していた。そのため、多数のクライアント端末からの要求を処理するためには、容量の大きいメモリを用意する必要があった。
さらに、従来の仮想空間情報処理装置においては、各クライアント端末毎に仮想空間に関するデータが異ならないように送るためには、メモリ上の各プロセスの間でプロセス通信を行う必要があるため、処理に非常に多くの時間を要する結果となっていた。そのため、多くのクライアント端末の要求に処理応答することが困難であり、接続されるクライアント端末に数的制限が生じていた。
上述した処理時間やメモリ資源に関する問題は、物理的に仮想空間情報処理装置のメモリやＣＰＵ等を増設するか若しくは本体の台数自体を増設することにより処理能力を解消することは可能ではある。しかし、この問題に対する根本的な解決策とはなっておらず、また機器類を増設するにはコストが嵩むために、結果、経済的な事情によりこの問題を解決するには限界が生じることとなっていた。
したがって、この発明は、比較的小規模なハードウェア資源により、多数のクライアント端末が接続された場合においても、リアルタイムに各クライアント端末の要求を処理することができ、且つ多数のクライアント端末を接続することができる仮想空間情報処理装置を提供することを目的としている。
発明の開示
この発明にかかる仮想空間情報処理装置は、メモリおよび処理装置を有し、通信ネットワークを介して複数のクライアント端末が接続される仮想空間情報処理装置であって、クライアント端末から送られた仮想空間での行動に関する要求を処理するためのモジュールとして、少なくともクライアント端末からの要求を複数備蓄する要求備蓄モジュールと、クライアント端末からの要求に応じて仮想空間を定義するデータを更新する空間定義データ更新モジュールとを重複することなく前記メモリ上に全て配置し、空間定義データ更新モジュールは、一つの前記クライアント端末の要求の処理を終えるまで、その他の前記クライアント端末からの要求の処理を行わないことを特徴とする仮想空間情報処理装置である。
このことによって、クライアント端末の要求を処理する毎に、モジュールをメモリ内に配置する必要がなくなり、処理応答時間が短縮される。また、仮想空間のデータが各クライアント端末毎に異なることがない。さらに、モジュールによりメモリを浪費することがない。
また、この発明は、備蓄モジュールに備蓄された要求を処理するモジュールを判断してそのモジュールに処理を指示する要求処理制御モジュールを有している。このことにより、要求に対応したモジュールへ要求内容を伝達するのが円滑に行われ、処理応答時間が短縮される。
さらに、この発明は、要求処理制御モジュールの各モジュールへの処理動作の指示は、コネクションインターフェイスを介して行われている。このことにより、さらに、要求に対応したモジュールへの要求内容の伝達が円滑に行われ、処理応答時間が短縮される。
【図面の簡単な説明】
第１図は、この発明にかかる仮想空間情報処理装置の運用形態の一例を示す概略図である。
第２図は、仮想空間情報処理装置のハードウェア構成を示す構成図である。
第３図は、クライアント端末のハードウェア構成を示す構成図である。
第４図は、仮想空間情報処理装置のシステム構成を示す概略図である。
第５図は、仮想空間データファイルに設定された仮想空間を示す概念図である。
第６図は、クライアント端末の表示機能部に仮想空間が表示された状態を示す概略図である。
発明を実施するための最良の形態
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の発明の実施の形態の詳細な説明から一層明らかとなろう。
図１は、この発明にかかる仮想空間情報処理装置の運用形態の一例を示す概略図である。図１に示すように、この発明にかかる仮想空間情報処理装置１０は、通信回線網５０を介して、任意の数のクライアント端末１００が接続され、仮想空間情報処理装置１０内に構築された仮想空間に関する情報を各クライアント端末に提供できるように構成されている。なお、以下に説明していく仮想空間情報処理装置１０は、仮想空間を用いて行われるゲームを多数のユーザーが各クライアント端末１００において遊戯可能に構成しているものである。
なお、この実施形態においては、通信回線網５０として、インターネット回線網を用いたが、これに限られることはなく、一般電話回線網、ＩＳＤＮ回線網、ＬＡＮ等が用いられてもよい。また、通信の際に用いる通信プロトコルとしては、ＴＣＰ／ＩＰ（Ｔransmission ＣontrolＰrotocol/Ｉnternet Ｐrotocol）が用いたが、これに限られることはなく、その他の通信プロトコルが使用されてもよい。図２は、仮想空間情報処理装置１０のハードウェア構成を示す構成図である。仮想空間情報処理装置１０は、仮想空間を定義する定義データ等を処理する処理装置であるＣＰＵ１２を含む。そして、ＣＰＵ１２には、ＢＩＯＳ（Ｂasic Ｉnput/Ｏutput System）等のプログラム等を記憶しているＲＯＭ１４が接続されている。また、ＣＰＵ１２には、変化が加わっていない初期状態の仮想空間を定義する定義データや、仮想空間に対して各種の処理を行う各種モジュール等を記憶しておくためのハードディスク等の記憶装置１６が接続されている。さらに、ＣＰＵ１２には、仮想空間情報処理装置１０の稼動中において、種々の処理を実行するために必要な仮想空間を定義する定義データや各種モジュール等を配置するためのメモリであるＲＡＭ１８が接続される。
そしてさらに、ＣＰＵ１２には、通信制御部２０，表示機能部２２および入力機能部２４が接続されている。通信制御部２０は、通信回線網５０を介して複数のクライアント端末１００とのデータ通信を確立し、データの送受信を制御するものであり、例えばモデムやターミナルアダプタ等が用いられる。また、表示機能部２２は、仮想空間情報処理装置１０に構築された仮想空間を文字や画像により目視して確認できるように構成されたものであり、例えばＣＲＴやＬＣＤが用いられる。そして、入力機能部２４は、任意に文字や記号を入力したり、表示機能部２２の任意点を指示したりするためのものであり、例えばキーボードやマウス等が用いられる。
図３は、クライアント端末１００のハードウェア構成を示す構成図である。クライアント端末１００は、図３に示すように仮想空間情報処理装置１０と基本的には同様の構成であり、ＣＰＵ１０２，ＲＯＭ１０４，記憶装置１０６，ＲＡＭ１０８，通信制御部１１０，表示機能部１１２および入力機能部１１４を有する。しかし、記憶装置１０６には、仮想空間情報処理装置１０とは異なり、仮想空間を定義する定義データ等は記憶されていない。また、クライアント端末１００には仮想空間情報処理装置１０とは異なり、記憶装置１０６にはネットスケープナビゲーター（登録商標）等のＨＴＴＰブラウザが記憶されており、ＲＡＭ１０８にＷＷＷ（ＷorldＷide Ｗeb）ブラウザを配置することにより、ＨＴＭＬ（ＨyperＴext Ｍarkup Ｌanguage）形式により記述されたデータをタグの内容に基づいて表示機能部１１２に表示可能に構成されている。
続いて、図４を用いて、仮想空間情報処理装置１０の起動時に行われるシステム処理および仮想空間情報処置装置１０のシステム構成について説明する。なお、図４は、仮想空間情報処理装置１０のシステム構成を示す概略図である。仮想空間情報処理装置１０は、まず電源を入れた後、最初にＲＯＭ１４に記憶されているＢＩＯＳが自動的に実行され、仮想情報処理装置１０のハードウェアに異常箇所がないか検査を行い、また、どのような機器が接続されているか認識する。そして、記憶装置１６に記憶されているＯＳ（ＯperatingＳystem）を読み込み、ＯＳを起動する。なお、この実施形態では、ＯＳにＵＮＩＸ（登録商標）を使用したが、これに限られることなく、その他のＯＳが用いられてもよい。そして、記憶装置１６より、システム管理機能部２６，ＨＴＴＰサーバー機能部３４，擬似ユーザ管理機能部３６および応答機能部４２がＲＡＭ１８に配置される。またそれと同時に、上述したモジュールにより生成され適用されるデータを記録する擬似ユーザー設定部４０，キャラクター情報部５４．空間情報部５０，仮想空間情報部５２のファイル領域がＲＡＭ１８上に確保される。以下各モジュールおよび各ファイルについて詳述していく。
システム管理機能部２６は、仮想空間情報処理装置１０の初期動作の設定を行うものであり、記憶装置１６に記憶されている初期設定ファイル２８の記述内容に基づき、仮想空間情報処理装置１０の動作の初期設定が行われる。なお、初期設定ファイル２８には、仮想空間情報処理装置１０において使用するデータファイル等の記憶装置１６における格納場所、仮想空間情報処理装置１０へのクライアント端末１００の最大接続数，クライアント端末１００とのタイムアウト時間等を示したデータ等が記述されており、この設定値に基づいて仮想空間情報処理装置１０のクライアント端末１００とのデータ送受信時の動作設定等の初期設定が行われる。
また、システム管理機能部２６は、仮想空間情報処理装置１０の動作を監視・制御する機能も有しており、稼働中には、全体の監視・制御を行うとともに、バックアップファイル３０にバックアップの内容を記録する。なお、バックアップする内容は、仮想空間情報処理装置１０が稼働中の任意時間においてＲＡＭ１８上に配置されているモジュールと全てのデータである。なお、バックアップファイル３０を記録する時間間隔は、初期設定ファイル２８に記述されており、その設定値に基づいてバックアップファイル３０の更新が行われる。
さらに、システム管理機能部２６は、記憶装置１６にログファイル３２にログを記録する。なお、ログとは、仮想空間情報処理装置１０が最初に起動されてから仮想空間に対して更新された更新内容を全て時系列順に記録したものである。仮想空間情報処理装置１０は、上述したファイル構成としたことにより、異常停止した場合などにも、再起動するときに、バックアップファイル３０の内容をＲＡＭ１８に配置することにより、異常停止直前の状態に復旧することができる。またバックファイル３０にも障害が発生して使用不可能となった場合には、仮想空間情報処理装置１０の初期状態から、ログファイル３２の内容に基づいて、処理内容を再度実行することにより、異常停止直前の状態に復旧することができる。
ＨＴＴＰサーバ機能部３４は、仮想空間情報処理装置１０へ接続要求を行ってきたクライアント端末１００が接続資格を有するユーザからのものであるかの判断を行うものであり、記憶装置１６に記録されたユーザのＩＤ番号とパスワードとの情報に基づいて判断を行う。また、仮想空間情報処理装置１０への接続資格を有するものからの接続要求である場合には、そのクライアント端末とのＨＴＴＰ（ＨyperＴexr Ｔransfer Ｐrotocol）接続を確立し、クライアント端末１００の表示手段部１１２において仮想空間を表示するために必要なプログラムを送信し、接続を持続するために適宜クライアント端末１００とのデータ通信が行われる。擬似ユーザ管理機能部３６には、仮想空間情報処理装置１０に構築された仮想空間に配置される擬似ユーザを実行・制御するモジュールである。なお、擬似ユーザーとは、擬似ユーザ管理機能部３６により、生成されて仮想空間内での動作が自動的に制御されるキャラクタのことである。擬似ユーザーとして規定できるものとしては、例えば、仮想空間内を移動する人物等の会話や動きが伴うものや、動物，風，雨等の動きだけのものから、看板等の物理的な動作は伴わず、ある情報を提示するだけのものも規定することができる。そして、擬似ユーザ管理機能部３６は、記憶装置１６に記憶された擬似ユーザーデータファイル３８の記述内容に基づいて、ＲＡＭ１８上に領域が確保されている擬似ユーザ設定部４０内にデータを生成する。
なお、擬似ユーザーデータファイル３８には、仮想空間情報処理装置１０の仮想空間内において、実行される擬似ユーザーの種類毎に、それぞれの行動パターン等を定義したデータが収められている。この擬似ユーザーデータファイル３８には、擬似ユーザー管理機能部３６により、擬似ユーザ設定部４０にデータとして生成され、すぐに内容を実行することができる記述形式によりデータが収められている。なお、擬似ユーザー設定部４０には、擬似ユーザーデータファイル３８に収められていたデータに対して実行アドレスを付与されたものが記録されており、擬似ユーザー管理機能部３６に適用されるだけで定義された内容を実行することができるように構成されている。
応答機能部４２には、空間制御機能部４４とユーザ管理機能部４６とが含まれている。各機能部について説明すると、空間制御機能部４４は、仮想空間情報処理装置１０に構築される仮想空間を制御・処理するものである。空間制御機能部４４は、記憶装置１６に記録されている仮想空間データファイル４８に基づいて、空間情報部５０および仮想空間全体情報部５２のデータを生成する。
なお、仮想空間データファイル４８には、図５に示すように、Ｘ方向およびＹ方向をそれぞれｘ個とｙ個の座標に分割することにより各部分の位置を指示することができる仮想空間が定義されている。また、仮想空間データファイル４８には、仮想空間の各部分に対応した地形データおよびその地形データに対応した画像データが収められている。さらに、仮想空間データファイル４８には、オブジェクトを配置する部分に対してはどのようなオブジェクトを配置するの定義したオブジェクト配置データが収められている。なお、オブジェクトとは、仮想空間内に置かれている物や、他の部分と異なった地形のことをいい、各オブジェクト毎に対応した画像データが定義されている。
空間制御機能部４４は、上述したように、仮想空間データファイル４８に基づいて、仮想空間情報処理装置１０の初期段階における仮想空間の位置情報を示すデータを空間情報部５０内に、そして、仮想空間に配置しているユーザーおよび擬似ユーザの位置情報を示したデータを仮想空間全体情報部５２内に生成する。なお、この実施形態においては、仮想空間データファイル４８を、２次元データ形式により記述して、仮想空間を平面と定義しているが、複数の２次元データを位置的な関連性を持たせて記述することにより、３次元の仮想空間として定義されてもよい。なお、図５は、仮想空間データファイルに設定された仮想空間を示す概念図である。
ユーザー管理機能部４６は、クライアント端末１００の状態を把握し、クライアント端末１００により送信された要求を管理するモジュールである。クライアント端末１００により送信された要求を管理する際、クライアント端末１００の要求により生じた結果を、ＲＡＭ１８内に確保されたキャラクター情報部５４内にデータを記憶する。なお、この実施形態においては、仮想空間を用いたゲームにおいてユーザに割り当てられたキャラクタの特性，生命力や経験値等が記憶される。
そして、コミュニケーションルータ５６は、主として、クライアント端末１００とのデータの送受信の制御を行うモジュールである。そして、コミュニケーションルータ５６は、パケット通信により送信されたクライアント端末１００からの要求を複数備蓄することが可能なバッファを備え、バッファ内に時間的に早く備蓄された要求から取り出すネットワークバッファ５８を有する。またこのネットワークバッファ５８は、要求に対する処理結果を各クライアント端末１００へ送信する機能も有している。さらに、コミュニケーションルータ５６は、ネットワークバッファ５８より取り出された要求の内容より判断して、ＨＴＴＰサーバ機能部３４もしくは応答機能部４２に要求内容を渡すコネクションインターフェイス６０を有する。なお、ネットワークバッファ５８からの要求の取り出しは、一つの要求がネットワークバッファ５８から取り出され、ＨＴＴＰサーバ機能部３４や応答機能部４２等のモジュールにより処理が全て終了し、処理結果がネットワークバッファ５８よりクライアント端末１００に送信されるまで、次の要求の取り出しは行われないように制御されている。
これにより、仮想空間情報処理装置１０により提供される仮想空間に関するデータは、同一時間においては矛盾を生じることがない。また、同一時間において同一種類のモジュールがＲＡＭ１８に配置されることがないので、非常に多数のクライアント端末１００が仮想空間情報処理装置１０に接続された場合にも、ＲＡＭ１８等のハードウェアを増設する必要がない。さらに、一つの要求が処理される間、その他の要求の処理が行われることがないので、仮想空間情報処理装置１０が稼働中においても、管理者は適宜、保守や設定の変更を行うことが可能である。
次に仮想空間情報処理装置１０と複数のクライアント端末１００との間で行われるデータ通信手順について説明する。
まず、クライアント端末１００のユーザが仮想空間情報処理装置１０に構築された仮想空間に入ろうとする場合には、ユーザにより、仮想空間情報処理装置１０に割り当てられたＵＲＬ（ＵniformＲesource Ｌocator）をＷＷＷブラウザに入力する。これにより、クライアント端末１００より仮想空間情報処理装置１０に対して接続要求を記したパケットが送信される。そして、ネットワークバッファ５８に備蓄されたパケットは、コネクションインターフェイス６０によりモジュール選択が行われＨＴＴＰサーバ機能部３４に渡される。そして、ＨＴＴＰサーバ機能部３４により、ユーザＩＤおよびパスワードを入力する形式に設けられたＨＴＭＬ形式ファイルがネットワークバッファ５８を介してクライアント端末１００に送信される。
ユーザはＷＷＷブラウザに表示されたユーザＩＤおよびパスワードを入力する欄に適切な内容を入力する。これにより、ユーザＩＤおよびパスワードを示したパケットが、再度、仮想空間情報処理装置１０のＨＴＴＰサーバ機能部３４に渡される。ＨＴＴＰサーバ機能部３４は、ユーザが仮想空間情報処理装置１０に接続資格を有するものと認証した場合には、ＷＷＷブラウザ内に仮想空間を表示するために必要なプログラムと、仮想空間の一部分を示した地形データおよび画像データがクライアント端末１００に送信する。この結果、クライアント端末１００のＷＷＷブラウザ内には、図６に示すように、ユーザのキャラクター２００が仮想空間の一部分の中に配置された画像と、キャラクター２００に対して各種の動作指示を与えるために用いられる複数のボタン２０２が表示される。
これにより、ユーザはＷＷＷブラウザ内に表示されたボタン２０２を入力機能部１１４により指示することにより、仮想空間内を移動したり、仮想空間内に落ちている物を拾ったりすることが可能となる。キャラクター２００が仮想空間内で行うことができる行動については、ＨＴＴＰサーバ機能部３４により送信されたプログラムにより定義されている。なお、第６図は、クライアント端末１００の表示機能部１１２に仮想空間が表示された状態を示す概略図である。
ユーザにより発信されたキャラクター２００の動作に関する要求を記述したパケットは、コネクションインターフェイス６０によりモジュール選択が行われて、ユーザ管理機能部４６に渡され処理される。ユーザ管理機能部４６は、要求に応じて適宜、空間制御機能部４４およびキャラクター情報部５４に処理を渡す。処理が空間制御機能部４４に渡されるのは、ユーザのキャラクター２００が仮想空間内を移動する場合等、仮想空間に対して何か物理的な行動を起こす場合であるが、このときには、空間制御機能部４４は仮想空間全体情報部５２の内容により、キャラクター２００が仮想空間のどの箇所に位置しているのかを確認する。そして要求が仮想空間内での移動である場合に、空間制御機能部４４は仮想空間全体情報部５２のキャラクター２００の位置情報を変更することにより、キャラクター２００の仮想空間内での位置を変更する。そして、キャラクター２００が移動した箇所に擬似ユーザを実行するという設定がされている場合には、擬似ユーザー管理機能部４０に実行される擬似ユーザのデータが擬似ユーザー設定部４０より読み込まれ実行される。擬似ユーザーが実行された結果は、空間制御機能部４４に伝えられ、仮想空間全体情報部５２に記憶される。
また、キャラクター２００の位置している地形や、実行された擬似ユーザによりキャラクター２００に対して何か影響を及ぼす設定を有する場合には、その設定に基づいてキャラクター情報部５４にその結果を記録する。また、擬似ユーザについても、その状態が変化した場合にはキャラクター情報部５４にその結果が記録される。なお、各処理により変化した仮想空間に関するデータは、処理を要求したクライアント端末１００に限らず、この処理により仮想空間において影響が及ぼされるクライアント端末１００についてそれぞれデータが送信される。
この仮想空間情報処理装置１０においては、このようにして、仮想空間を用いたゲームが遊戯されるが、この仮想空間情報処理装置１０の使用用途は、ゲームに限られず、種々の用途に使用可能である。
産業上の利用可能性
以上のように、この発明にかかる仮想空間情報処理装置は、仮想空間を用いたゲームや仮想商店街を提供するサーバとして、そして、電子井戸端会議や通信学校の場所を提供するサーバとして、また、道案内を遠く離れた場所から行うためのサーバとして有用である。さらに、仮想空間内でのユーザの行動を記録・分析することで、現実世界における人間の行動パターンに適した建築物の構造を決定するためや、生活環境等を変更することにより人間の行動の変化を観察するためのシュミレーション装置としても有用である。特に接続されるクライアント端末が多数である場合に用いるのに適している。
【図１】
0003927246.tif 000002
【図２】
0003927246.tif 000003
【図３】
0003927246.tif 000004
【図４】
0003927246.tif 000005
【図５】
0003927246.tif 000006
【図６】
0003927246.tif 000007