本発明は、仮想空間提供装置、仮想空間提供システム、仮想空間提供方法及びコンピュータプログラムに関する。
サーバの提供する仮想的な空間内で、ユーザを象徴するキャラクタ(アバター)を操作するシステムは、知られている(特許文献1)。
また、ユーザの習熟レベルに応じて段階的にゲーム内のコンテンツを変化させるシステムも知られている(特許文献2)。
なお、仮想空間に関する技術ではないが、ユーザ属性に応じて、ユーザに見せるWebコンテンツを動的に生成するシステムも知られている(特許文献3)。
特開2005−100053号公報
特開2006−175004号公報
特開2007−72703号公報
仮想空間には、複数のユーザがそれぞれのアバターを介して参加する。仮想空間は、コンピュータ上に構築される仮想的な空間であるが、現実世界と同様の限界があり、同一の場所は複数存在しない。例えば、仮想空間の仮想的建築物が存在する場所に、別の仮想的建築物を建設することはできない。また、例えば、仮想空間の仮想的商品陳列棚に、仮想的商品が陳列されている場合、同じ棚に別の仮想的商品を陳列することはできない。
複数の仮想的物体(以下、オブジェクトとも呼ぶ)が同一場所に設けられる場合、いずれか一方または両方の仮想的物体を半透明で表示させることも可能であろう。しかし、この場合には、複数の仮想的物体が同時に表示されるため、ユーザの視認性が低下し、ユーザの使い勝手が低下する。このように、従来の仮想空間は、仮想的存在であるにも拘わらず、利用可能な面積に限界があり、有効に利用されていないという問題がある。
本発明は上記従来技術の課題に鑑みてなされたもので、その目的は、仮想空間を有効利用できるようにした仮想空間提供装置、仮想空間提供システム、仮想空間提供方法及びコンピュータプログラムを提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明の第1観点に従う仮想空間提供装置は、通信ネットワークを介して接続されるクライアントコンピュータに仮想空間を提供する仮想空間提供装置であって、前記クライアントコンピュータを利用するユーザを管理するユーザ管理部と、前記仮想空間に配置される複数のオブジェクトのオブジェクトデータをそれぞれ管理するオブジェクト管理部と、前記ユーザに視認させる前記オブジェクトの種類を示す表示属性を、前記ユーザに対応付けて管理する表示属性管理部と、前記各オブジェクトのうち前記ユーザに視認させる所定のオブジェクトを、前記表示属性に応じて選択する可視管理部と、少なくとも前記所定のオブジェクトのオブジェクトデータを前記クライアントコンピュータに送信することにより、前記所定のオブジェクトを前記クライアントコンピュータに描画させ、前記仮想空間に前記所定のオブジェクトを表示させる、データ送信部と、を備える。
第2観点では、第1観点において、前記可視管理部は、前記仮想空間において所定範囲内に位置する前記所定のオブジェクトが複数存在する場合には、予め設定された選択基準に基づいて、前記各所定のオブジェクトのうちいずれか一つの所定のオブジェクトを選択する。
第3観点では、第2観点において、前記ユーザ管理部は、前記ユーザにユーザ属性を対応付けて管理しており、かつ、前記オブジェクト管理部は、前記各オブジェクトにそれぞれオブジェクト属性を対応付けて管理しており、前記選択基準は、前記ユーザ属性と前記オブジェクト属性との一致する度合が最も大きい所定オブジェクトを選択するようになっている。
第4観点では、第3観点において、前記ユーザの現実世界における行動履歴に基づいてユーザ属性を決定し、決定されたユーザ属性を前記ユーザに設定するためのユーザ属性設定部を備える。
第5観点では、第3観点において、前記ユーザの前記仮想空間における行動履歴に基づいてユーザ属性を決定し、決定されたユーザ属性を前記ユーザに設定するためのユーザ属性設定部を備える。
第6観点では、第1〜第5観点のいずれかにおいて、前記データ送信部は、前記所定のオブジェクトのオブジェクトデータのみを前記クライアントコンピュータに送信するようになっている。
第7観点では、第1〜第5観点のいずれかにおいて、前記データ転送部は、前記所定のオブジェクトのオブジェクトデータと、前記ユーザの視認可能範囲内に位置する他のオブジェクトのオブジェクトデータとを、前記クライアントコンピュータにそれぞれ送信するようになっている。
第8観点では、第7観点において、前記所定のオブジェクトのオブジェクトデータには、前記クライアントコンピュータで描画させるための制御情報が対応付けられており、前記他のオブジェクトのオブジェクトデータには、前記クライアントコンピュータで描画させないための他の制御情報が対応付けられている。
第9観点では、第1〜第8観点のいずれかにおいて、前記オブジェクト管理部は、前記クライアントコンピュータによって作成されるオブジェクトのオブジェクトデータを管理することができる。
第10観点では、第1〜第9観点のいずれかにおいて、前記表示属性管理部の管理内容を変更させるための変更部であって、前記表示属性を変更可能なオブジェクトとして予め定義されている属性変更オブジェクトを前記ユーザが保持した場合に、その属性変更オブジェクトに予め設定されている表示属性と前記ユーザとを対応付けて前記表示属性管理部により管理させる変更部を、更に備える。
第11観点では、第1〜第9観点のいずれかにおいて、前記表示属性管理部は、前記ユーザの保持するオブジェクトに設定されている表示属性を検出し、この検出された表示属性と前記ユーザとを対応付けて管理する。
第12観点に従う仮想空間提供システムは、記憶装置と制御装置とを備え、通信ネットワークを介して接続されるクライアントコンピュータに仮想空間を提供する仮想空間提供システムであって、前記記憶装置に記憶されるユーザ管理テーブルであって、少なくともユーザを識別するためのユーザ識別情報を管理するユーザ管理テーブルと、前記記憶装置に記憶されるオブジェクト管理テーブルであって、少なくとも前記仮想空間に配置され得る複数のオブジェクトのオブジェクトデータをそれぞれ識別するためのオブジェクト識別情報と、前記各オブジェクトの前記仮想空間における位置を示すオブジェクト位置情報と、前記各オブジェクトが属するグループを識別するためのグループ識別情報とを、それぞれ管理するオブジェクト管理テーブルと、前記記憶装置に記憶されるグループ管理テーブルであって、少なくとも前記グループを識別するためのグループ識別情報と、前記グループに対応付けられる前記ユーザ識別情報とをそれぞれ管理するグループ管理テーブルと、前記記憶装置に記憶される可視管理テーブルであって、少なくとも前記オブジェクト識別情報と前記グループ識別情報とを対応付けて管理する可視管理テーブルと、を備え、前記制御装置は、(1)前記ユーザ管理テーブルで特定されるユーザ識別情報を用いて前記グループ管理テーブルを検索することにより、前記ユーザの属するグループのグループ識別情報を特定し、(2)さらに、この特定されたグループ識別情報に基づいて前記可視管理テーブルを検索することにより、前記ユーザの属するグループに対応付けられている所定のオブジェクトのオブジェクト識別情報を特定し、(3)さらに、この特定された所定のオブジェクト識別情報に基づいて前記オブジェクト管理テーブルを検索することにより、前記所定のオブジェクトのオブジェクト位置情報を検出し、(4)さらに、前記クライアントコンピュータから取得される、前記ユーザの前記仮想空間における位置情報と、前記所定のオブジェクトのオブジェクト位置情報とを比較することにより、前記所定のオブジェクトが前記クライアントコンピュータの画面上に表示可能な視認可能範囲内に存在すると判定した場合には、少なくとも前記所定のオブジェクトのオブジェクトデータを、前記通信ネットワークを介して前記クライアントコンピュータに送信させ、前記所定のオブジェクトを前記クライアントコンピュータの画面に表示させる。
第13観点では、第12観点において、前記制御装置は、前記仮想空間において所定範囲内に位置する前記所定のオブジェクトが複数存在する場合には、予め設定された選択基準に基づいて、前記各所定のオブジェクトのうちいずれか一つの所定のオブジェクトを選択する。
第14観点では、第12または第13観点のいずれかにおいて、前記制御装置は、前記視認可能範囲内に存在する前記所定のオブジェクトのオブジェクトデータに第1制御情報を対応付けて前記クライアントコンピュータに送信させ、かつ、前記視認可能範囲内に存在する他のオブジェクトのオブジェクトデータに第1制御情報を対応付けて、前記クライアントコンピュータに送信させ、前記第1制御情報は前記所定のオブジェクトデータの表示を許可するものであり、前記第2制御情報は前記他のオブジェクトのオブジェクトデータの表示を禁止するものである。
第15観点に従う仮想空間提供方法は、クライアントコンピュータに仮想空間を提供する方法であって、前記クライアントコンピュータからユーザを識別するためのユーザ識別情報と前記仮想空間におけるユーザの位置を示すユーザ位置情報とをそれぞれ取得するステップと、前記ユーザ識別情報に基づいて、前記ユーザに予め対応付けられている表示属性を検出するステップと、前記検出された表示属性に予め対応付けられている所定のオブジェクトのオブジェクトデータを検出するステップと、前記仮想空間において所定範囲内に位置する前記所定のオブジェクトが複数存在する場合には、予め設定された選択基準に基づいて、前記各所定のオブジェクトのうちいずれか一つの所定のオブジェクトを選択するステップと、少なくとも前記選択された所定のオブジェクトのオブジェクトデータを前記クライアントコンピュータに送信させ、前記所定のオブジェクトを前記クライアントコンピュータの画面に表示させるステップと、をそれぞれ実行する。
第16観点に従うコンピュータプログラムは、通信ネットワークを介してクライアントコンピュータに接続されるコンピュータに、前記クライアントコンピュータに仮想空間を提供する仮想空間提供部と、前記クライアントコンピュータを利用するユーザを管理するユーザ管理部と、前記仮想空間に配置される複数のオブジェクトのオブジェクトデータをそれぞれ管理するオブジェクト管理部と、前記ユーザに視認させる前記オブジェクトの種類を示す表示属性を、前記ユーザに対応付けて管理する表示属性管理部と、前記各オブジェクトのうち前記ユーザに視認させる所定のオブジェクトを、前記表示属性に応じて選択する可視管理部と、少なくとも前記所定のオブジェクトのオブジェクトデータを前記クライアントコンピュータに送信することにより、前記所定のオブジェクトを前記クライアントコンピュータに描画させ、前記仮想空間に前記所定のオブジェクトを表示させる、データ送信部と、をそれぞれ実現させる。
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、以下に述べるように、仮想空間を利用するユーザの属性に応じて、ユーザに視認させるオブジェクトを制御する。
図1は、本実施形態を示す説明図である。なお、本実施形態は、本発明の理解及び実施に必要な程度で本発明の概要を示しており、本発明の範囲は、図1に示す構成に限定されない。なお、本実施形態の詳細な構成は、後述の実施例で明らかにされる。
仮想空間提供システムは、仮想空間提供装置1と、「クライアントコンピュータ」としてのクライアント装置2とを含んで構成することができる。仮想空間提供装置1は、仮想空間7を通信ネットワークCN1を介してクライアント装置2に提供する。通信ネットワークCN1は、例えば、インターネットのような通信網として構築される。
仮想空間7には、例えば、仮想店舗8や仮想商品棚9のような種々のオブジェクトと、アバターU1,U2とをそれぞれ配置することができる。オブジェクトとは、仮想空間に存在する仮想的物体であり、例えば、仮想建築物、仮想家具、アバターU1,U2の所持するアクセサリや服、仮想空間内の道路や乗り物、彫刻、芝生、樹木や花等である。
仮想空間7に配置される各種オブジェクトは、種々の方法で作成される。例えば、仮想空間7の管理者のみがオブジェクトを作成可能なシステムでもよいし、あるいは、ユーザがオブジェクトを作成可能なシステムでもよい。ユーザによって作成されたオブジェクトは、クライアント装置2から仮想空間提供装置1に送信され、仮想空間提供装置1内に保存される。
仮想空間提供装置1の構成を説明する。仮想空間提供装置1は、例えば、仮想空間提供部3と、仮想空間管理部4と、管理用データベース5とを備える。仮想空間提供部3は、例えば、WWW(World Wide Web)サーバとして構成され、主に、クライアント装置2との間の通信を担当する。
仮想空間管理部4は、仮想空間7の構成を管理する。仮想空間管理部4は、ユーザの登録処理やログイン処理(4A)、ユーザ属性に応じたオブジェクトの抽出処理(4B)、クライアント装置2の画面に表示させるオブジェクトの決定処理(4C)、決定されたオブジェクトのデータ(オブジェクトデータ)をクライアント装置2に送信させる処理(4D)を実行する。
登録及びログイン処理4Aは、新規ユーザの登録や既存ユーザのログイン処理を行うものである。新規ユーザの登録処理では、例えば、ユーザID、ユーザ氏名(アバター名)、電子メールアドレス等を管理用データベース5に記憶させる。パスワードや生体情報等の認証情報を使用する場合には、パスワードも管理用データベース5に記憶させる。ログイン処理では、ユーザから入力されるユーザIDまたはユーザ氏名と電子メールアドレスとに基づいて、ユーザ認証を行い、許可されたユーザのみをログインさせる。パスワードや生体情報等の認証情報を用いる場合は、その認証情報を用いてユーザ認証を行う。
ユーザ属性に応じたオブジェクトの抽出処理4Bでは、仮想空間7に配置される多数のオブジェクトの中から、仮想空間7にログインしたユーザの属性に適したオブジェクトを抽出する。
オブジェクト決定処理4Cでは、ユーザ属性に応じて抽出されたオブジェクトの中から、クライアント装置2に表示させるオブジェクト(つまり、ユーザが仮想空間7で見ることのできるオブジェクト)を決定する。
オブジェクト送信処理4Dでは、決定されたオブジェクトのデータをクライアント装置2に送信する。
管理用データベース5の前にクライアント装置2の構成を説明する。クライアント装置2は、例えば、パーソナルコンピュータ、携帯情報端末、携帯電話等のような、コンピュータ装置として構成される。
クライアント装置2は、仮想空間用ビューワ6を備えている。このビューワ6は、仮想空間7を表示するためのコンピュータプログラムである。ビューワ6は、例えば、通信部6Aと、描画部6Bと、操作部6Cと、コミュニケーション部6Dとを備える。
通信部6Aは、仮想空間提供装置1と通信するものである。描画部6Bは、仮想空間提供装置1から受信したオブジェクトデータやアバターのデータを描画し、クライアント装置2の画面に表示させるものである。なお、クライアント装置2が、オブジェクトデータ等を解釈して描画するための描画エンジンを備えている場合、描画部6Bは、その描画エンジンを利用できる。また、後述の実施例で明らかとなるように、描画すべきか否かの制御情報を含むオブジェクトデータが仮想空間提供装置1からクライアント装置2に送信される場合、描画部6Bは、その制御情報に従ってオブジェクトデータを描画する。
操作部6Cは、例えば、ユーザのアバターを仮想空間7内で移動させたり、アバターの表情を変化させたり、アバターの姿勢を変化させるものである。操作部6Cは、例えば、クライアント装置2の備えるキーボードスイッチやポインティングデバイス等の入力機器からの指示に基づいて、アバターの位置や姿勢等を操作する。操作内容は、ビューワ6から仮想空間提供装置1に送信され、仮想空間7内に反映される。
コミュニケーション部6Dは、アバター同士の交流を行うものである。例えば、コミュニケーション部6Dは、アバター同士の会話(チャット)、アバター同士の仮想空間内でのメール交換等を実現する。
管理用データベース5の構成を説明する。管理用データベース5は、仮想空間7の管理に使用される各種データを記憶する。例えば、管理用データベース5には、ユーザを管理するためのテーブルと、オブジェクトを管理するためのテーブルと、ユーザの属するグループを管理するためのテーブルと、ユーザに視認させるオブジェクトを決定するための可視管理テーブルとが含まれる。
ユーザは、少なくとも一つ以上のグループに対応付けられる。グループには、少なくとも一つ以上のオブジェクトが対応付けられる。ユーザには、自分の属するグループに対応付けられているオブジェクトのみが提供される。つまり、クライアント装置2の画面には、ユーザの属するグループに応じたオブジェクトのみが表示される。
従って、例えば、ユーザの取り得る各種の属性、性質等に応じて複数のグループを用意し、各グループのカテゴリに対応するオブジェクトを対応付けることにより、ユーザに適したオブジェクトのみを仮想空間7に配置することができる。グループは「表示属性」に該当する。
例えば、30代独身男性、音楽が趣味のユーザを例に挙げると、このユーザは、「30代」、「独身」、「男性」、「趣味は音楽」という各種の属性を備えている。このユーザは、「30代ユーザのグループ、独身ユーザのグループ、男性ユーザのグループ、音楽好きユーザのグループにそれぞれ属する。さらに、このユーザは、全ユーザに共通する「共通グループ」に属する。
各グループには、そのグループに応じたオブジェクトが対応付けられる。例えば、男性ユーザのグループには、男性用の各種商品等に関するオブジェクトが対応付けられる。なお、共通グループには、例えば、仮想空間7内の社会基盤(道路や建築物等)等のような、ユーザの属性にあまり影響されないオブジェクトが対応付けられる。
仮想店舗8を例に挙げて説明する。仮想店舗8それ自体は、共通グループに属するオブジェクトであるため、男性ユーザU1の使用するクライアント装置2及び女性ユーザU2の使用するクライアント装置2のいずれにも表示される。また、仮想店舗8に設置された商品棚9も共通グループに属するオブジェクトであるため、各ユーザU1,U2のいずれも視認することができる。仮想店舗8や仮想商品棚9のデータは、各ユーザU1,U2のクライアント装置2にそれぞれ送信され、描画される。
商品棚9に陳列される各種商品のオブジェクトは、ユーザU1,U2の属性に応じて、変化する。図1に示す例では、一方のユーザU1は「男性」という属性を有し、他方のユーザU2は「女性」という属性を有する。
男性ユーザのグループ9Aには、例えば、男性用化粧品、男性誌、スナック菓子のような男性ユーザ向けの商品に関するオブジェクトが対応付けられている。同様に、女性ユーザのグループ9Cには、例えば、女性用化粧品、女性誌、デザートのような女性ユーザ向けの商品に関するオブジェクトが対応付けられている。なお、中立グループ9Bには、商品棚9に関して、文庫本やつまみのような中立的商品が対応付けられている。
仮想空間提供装置1は、男性ユーザU1のクライアント装置2に向けて、男性ユーザのグループ9Aに属するオブジェクトのデータと中立グループ9Bに属するオブジェクトのデータとを送信する。同様に、仮想空間提供装置1は、女性ユーザU2のクライアント装置2に向けて、女性ユーザのグループ9Cに属するオブジェクトのデータと中立グループ9Bに属するオブジェクトのデータとを送信する。
従って、男性ユーザU1の使用するクライアント装置2は、男性ユーザのグループ9Aに属するオブジェクトデータと中立グループ9Bに属するオブジェクトデータのみを描画して、画面に表示させる。女性ユーザU2の使用するクライアント装置2は、女性ユーザのグループ9Cに属するオブジェクトデータと中立グループ9Bに属するオブジェクトデータのみを描画して、画面に表示させる。
この結果、男性ユーザU1からは、商品棚9の第1段R1に男性用化粧品のみが、第2段R2に男性誌及び文庫本が、第3段R3にスナック菓子及びつまみが、それぞれ陳列されているように見える。女性ユーザU2からは、第1段R1に女性用化粧品のみが、第2弾R2に女性誌及び文庫本が、第3段R3にデザート及びつまみが、それぞれ陳列されているように見える。
なお、本実施形態では、便宜上、男性ユーザU1及び女性ユーザU2の両方が、中立グループ9Bにも属する場合を説明したが、これに限らず、各ユーザU1,U2の属するグループが全く異なっていてもよい。
本実施形態によれば、同一の仮想的商品棚9を用いて、各ユーザU1,U2毎に、それぞれ異なる商品オブジェクトを陳列することができ、商品棚9の限られた陳列空間を有効に利用することができる。また、上述の例から容易に理解できるように、ユーザの属性に応じて異なる仮想建築物を見せることもできる。従って、本実施形態によれば、仮想空間7を有効に利用することができる。
さらに、本実施形態によれば、ユーザの属性に対応するオブジェクトを仮想空間7に配置させるため、各ユーザ毎に最適化された仮想空間7を個別に構築することができ、ユーザの使い勝手が高まる。また、ユーザの属性に応じた商品オブジェクトや広告オブジェクト等を配置することにより、効率的なマーケティング活動を行うこともできる。
また、本実施形態では、ユーザに適したオブジェクトデータのみを仮想空間提供装置1からクライアント装置2に送信して描画させる。従って、仮想空間提供装置1から送信されるデータを必要最低限のデータに限定することができ、通信ネットワークCN1のトラフィックを増加させずに、個別にカスタマイズされた仮想空間7を各ユーザにそれぞれ提供することができる。
特に、仮想空間7は、三次元空間(疑似三次元空間の場合もある)として定義されており、各オブジェクトデータは、三次元データとして生成されるため、そのデータサイズが比較的大きい。さらに、各ユーザがそれぞれオブジェクトを生成可能である場合、多種多様なオブジェクトが日々生産され、仮想空間7に配置される可能性がある。この場合、そのオブジェクトに興味の無い他のユーザのクライアント装置2にも、そのオブジェクトのデータが転送されるため、通信ネットワークCN1のトラフィックが増大し、クライアント装置2のメモリ資源やCPU資源を消費する。これに対し、本実施形態では、ユーザに適したオブジェクトのデータのみをクライアント装置2に転送するため、通信ネットワークCN1やクライアント装置2の負荷が増大することはない。
即ち、本実施形態の仮想空間7は、複数のユーザが参加する共有空間であるが、各ユーザに応じたオブジェクトのみを表示させることができる。従って、クライアント装置2の負担を増大させずに、ユーザに適した仮想空間7を構築できる。
なお、ユーザが属するグループは、仮想空間提供装置1が自動的に決定してもよいし、ユーザが手動で選択してもよい。あるいは、仮想空間提供装置1が自動的に決定したグループをユーザが手動で修正する構成でもよい。
ユーザの属するグループの数が増加するほど、仮想空間7には多くのオブジェクトが表示される。同一場所に表示されるオブジェクトが競合した場合、後述する実施例で明らかになるように、所定の選択基準に従って、いずれか一つのオブジェクトが選択され、表示される。以下、本実施形態をより詳細に説明する。
図2は、本実施例による仮想空間提供システムの全体構成を示す説明図である。仮想空間提供システムは、仮想空間提供装置10と、仮想空間提供装置10に通信ネットワークCN10を介して接続される複数のクライアントコンピュータ20とを備える。
仮想空間提供装置10は、例えば、一つ以上の仮想空間提供サーバ30と、仮想空間提供サーバ30に通信ネットワークCN20を介して接続される一つ以上の管理サーバ40と、管理サーバ40によって使用される一つ以上のデータベース50とを備える。通信ネットワークCN10,CN20は、例えば、LAN(Local Area Network)やインターネットのような通信網として構成される。
図1との対応関係を説明すると、仮想空間提供装置10は図1中の仮想空間提供装置1に、クライアントコンピュータ20は図1中のクライアント装置2に、仮想空間提供サーバ30は図1中の仮想空間提供部3に、管理サーバ40は図1中の仮想空間管理部4に、データベース50は図1中の管理用データベース5に、通信ネットワークCN10は図1中の通信ネットワークCN1に、それぞれ対応する。また、図4に示す仮想空間70は図1中の仮想空間7に、図4に示す仮想店舗80は図1中の仮想店舗8に、図4に示す商品棚90は図1中の商品棚9に、それぞれ対応する。
仮想空間70を複数のエリアに分割し、各エリア毎に仮想空間提供サーバ30を設けることができる。あるいは、全ての仮想空間提供サーバ30が全てのエリアを担当し、各仮想空間提供サーバ間で負荷を分散させる構成でもよい。管理サーバ40は、例えば、ユーザ管理機能、オブジェクト管理機能、グループ管理機能、可視管理機能、ユーザ操作への対応機能等のように、各機能毎にそれぞれ設けることができる。あるいは、管理サーバ40を各エリア毎に設けることもできる。
さらに、仮想空間70の各エリア毎にそれぞれ仮想空間提供サーバ30を設け、バックグラウンドの処理(ユーザ管理機能やオブジェクト管理機能等)は、複数の管理サーバ40が分担して行う構成でもよい。即ち、フロントエンドはエリア単位で分割し、バックエンドは共通させる構成でもよい。
各管理サーバ40は、例えば、演算処理装置40Aと、メモリ40B及び補助記憶装置40C等を備えるコンピュータ装置である。同様に、各仮想空間提供サーバ30も同様のコンピュータ資源を有するコンピュータ装置である。
図3は、クライアントコンピュータ20と仮想空間提供サーバ30及び管理サーバ40の機能の概要を示すブロック図である。クライアントコンピュータ20は、仮想空間用ビューワ60を備える。このビューワ60は、例えば、描画部61と、操作部62と、通信部63と、コミュニケーション部64とを備える。
描画部61は、仮想空間提供装置10から受信したオブジェクトデータやアバターデータを描画し、クライアントコンピュータの画面に表示させるものである。操作部62は、アバターの移動や姿勢等を操作するものである。通信部63は、仮想空間提供装置10と通信を行うものである。コミュニケーション部64は、アバター間でチャットやメール交換を行うためのものである。
仮想空間提供サーバ30は、通信処理部31を備える。通信処理部31は、クライアントコンピュータ20と管理サーバ40との間の通信を担当する。これ以外に、仮想空間提供サーバ30は、例えば、新規ユーザが登録するための登録画面、既存ユーザが仮想空間70にログインするためのログイン画面、仮想空間70に関する注意事項や操作説明等を表示するための画面等をクライアントコンピュータ20に提供する。これらの画面は、クライアントコンピュータ20に設けられたウェブブラウザに表示される。
管理サーバ40は、仮想空間70を管理するものである。管理サーバ40は、例えば、登録処理及びログイン処理部(以下、ログイン等処理)41と、可視管理部42と、表示オブジェクト送信処理部43と、ユーザ操作への対応処理部44と、ログ管理部45とを備える。管理サーバ40は、各アバターや各オブジェクトのデータも管理する。
ログイン等処理部41は、新規ユーザの登録処理及びログイン処理を行う。ユーザから入力されたユーザ氏名等のデータは、データベース50内のユーザ管理テーブルT10(図5参照)に登録される。ログイン等処理部41は、ユーザから入力される電子メールアドレス等のデータとユーザ管理テーブルT10に登録されたデータとを照合し、ログインの可否を決定する。なお、ユーザ登録時に、そのユーザの属する一つ以上のグループを、自動的にまたは手動操作で設定することができる。その後、ユーザの属するグループは、自動的にまたは手動操作で修正することができる。
可視管理部42は、ユーザに適したオブジェクトを選択するものである。可視管理部42は、例えば、表示オブジェクト抽出処理部42Aと、表示オブジェクト決定処理42Bとを備える。表示オブジェクト抽出処理42Aは、ユーザの属するグループに対応するオブジェクト、即ち、そのユーザの使用するクライアントコンピュータ20の画面に表示可能なオブジェクトを抽出する。表示オブジェクト決定処理42Bは、抽出されたオブジェクトのうち、実際に表示させるオブジェクトを決定する。
表示オブジェクト送信処理部43は、決定されたオブジェクトのデータをクライアントコンピュータ20に送信させるものである。これにより、クライアントコンピュータ20の描画部61は、受信したオブジェクトデータを描画し、クライアントコンピュータ20の画面に表示させる。
ユーザ操作への対応処理部44は、ユーザによるアバター操作の指示に対応するものである。対応処理部44は、例えば、ユーザから指示された位置にアバターを移動させたり、ユーザから指示された通りにアバターの姿勢を変化させる。
ログ管理部45は、仮想空間70を利用するユーザの履歴を管理する。例えば、ログイン時刻、ログアウト時刻、アバターの位置、アバターの操作内容等が、ログとして保存される。
図4は、仮想空間70の一例を示す。仮想空間70には、仮想店舗80のような各種建築物や道路、川、公園等のオブジェクトが配置される。仮想店舗80内には、商品棚90のような別のオブジェクトも配置することができる。商品棚90内には、さらに、商品のような別のオブジェクト101〜108(以下、全体として商品オブジェクト100と呼ぶ場合がある)を配置することができる。
商品棚90の第1段R1には、予め男性用化粧品101と、女性用化粧品102とが対応付けられている。商品のオブジェクトが商品棚のオブジェクトに対応付けられているとは、商品のオブジェクトの位置が商品棚のオブジェクト内の座標に設定されていることを意味する。
男性用化粧品101は男性ユーザグループに属し、女性用化粧品102は女性ユーザグループに属する。従って、男性ユーザU1には、第1段R1に男性用化粧品101のみが陳列されているように見え、女性ユーザU2には、第1段R1に女性用化粧品102のみが陳列されているように見える。
第2段R2には、男性誌103と、文庫本104と、女性誌105とが予め対応付けられている。男性誌103は男性ユーザグループに、女性誌105は女性ユーザグループに、文庫本104は中立グループに、それぞれ属する。中立グループとは、男性ユーザU1及び女性ユーザU2の両方が属するグループである。従って、男性ユーザU1には、第2段R2に男性誌103及び文庫本104が陳列されているように見え、女性ユーザU2には、第2段R2に女性誌105及び文庫本104が陳列されているように見える。なお、表示位置が競合しないように、文庫本104の位置と、男性誌103の位置及び女性誌105の位置とは離れている。男性誌103の位置と女性誌105の位置とは同一であってもよい。この例では、いずれか一方のみが表示されるためである。なお、ユーザに適したオブジェクトが同一場所で競合する場合の処理については、後述する。
第3段R3には、男性ユーザグループに属するスナック菓子106と、中立グループに属するつまみ107と、女性ユーザグループに属するデザート108とが、それぞれ予め対応付けられている。
図5は、管理サーバ40によって使用される各管理テーブルT10〜T40の構成を示す説明図である。これら管理テーブルT10〜T40は、データベース50に記憶されている。
ユーザ管理テーブルT10は、仮想空間70を利用する各ユーザを管理するためのテーブルである。図6に示すように、ユーザ管理テーブルT10は、例えば、ユーザID欄C10と、ユーザ氏名欄C11と、電子メールアドレス欄C12と、ログイン制御フラグ欄C13とを備える。
ユーザID欄C10には、各ユーザを識別するための識別情報であるユーザIDが記憶される。ユーザ氏名欄C11には、ユーザの本名、または、各ユーザが仮想空間70内で使用するアバター名が記憶される。電子メールアドレス欄C12には、ユーザの電子メールアドレスが記憶される。ログイン制御フラグ欄C13には、そのユーザのログインの可否を決定するためのフラグがセットされる。「1」にセットされたユーザは、ログインが許可され、「0」にセットされたユーザは、ログインが禁止される。これ以外に、所定時間だけログインを許可させるためのフラグ等を追加してもよい。また、ユーザ管理テーブルT10には、例えば、パスワードや指紋情報等の生体情報、ユーザの趣味、ユーザの住所等も管理することができる。
グループ管理テーブルT20は、各ユーザの属するグループを管理するためのテーブルである。グループは、例えば、「男性ユーザ」、「女性ユーザ」、「独身ユーザ」、「既婚ユーザ」、「日本人ユーザ」、「欧米人ユーザ」、「中国人ユーザ」、「音楽好きユーザ」、「読書家ユーザ」、「グルメユーザ」、「10代ユーザ」、「20代ユーザ」、「30代ユーザ」、「40代ユーザ」、「50代ユーザ」等のように、ユーザの備えうる各種の属性に応じてそれぞれ用意される。従って、各ユーザは、少なくとも一つ以上の、いずれかのグループに属する。どのグループに属するかは、最初のログイン時に仮想空間提供装置10が自動的に決定してもよいし、ユーザが手動で選択または修正できるようにしてもよい。また、ユーザがグループを追加できる構成としてもよい。
グループ管理テーブルT20は、図6に示すように、グループID欄C20と、ユーザID欄C21とを備える。グループID欄C20には、各グループを識別するための識別情報であるグループIDが記憶される。ユーザID欄C21には、各グループに属するユーザのユーザIDが記憶される。さらに、例えば、そのグループの属性を示す名称を示す欄、そのグループが作成された日を示す欄、そのグループの作成者を示す欄等を追加してもよい。
可視管理テーブルT30は、ユーザに適したオブジェクトを選択するためのテーブルである。図7に示すように、可視管理テーブルT30は、例えば、オブジェクトID欄C30と、グループID欄C31とを備える。オブジェクトID欄C30には、オブジェクトIDが記憶される。グループID欄C31には、そのオブジェクトが属するグループIDが記憶される。オブジェクトは、複数のグループに属することができる。
オブジェクト管理テーブルT40は、仮想空間70内の各オブジェクトを管理するためのテーブルである。図7に示すように、オブジェクト管理テーブルT40は、例えば、オブジェクトID欄C40と、グループID欄C41と、保有者ID欄C42と、位置情報欄C43と、作成日欄C44とを備える。
オブジェクトID欄C40には、オブジェクトIDが記憶される。グループID欄C41には、そのオブジェクトの属するグループのIDが記憶される。保有者ID欄C42には、そのオブジェクトを保有しているユーザのIDが記憶される。
位置情報欄C43には、そのオブジェクトが表示される位置が記憶される。位置情報は、仮想空間70内の座標として設定される。オブジェクトの位置は、仮想空間70内の絶対座標として設定してもよいし、相対座標として設定してもよい。
作成日欄C44には、そのオブジェクトが作成された日付が記憶される。日付情報は、西暦年月日及び時分秒の形式で設定することができる。なお、仮想空間70内で時間を管理できればよいので、例えば、一定時間毎にカウントアップするカウンタの値を日付情報として用いてもよい。
図8は、本実施例による動作を示すフローチャートである。なお、以下に示す各フローチャートは、本発明の理解及び実施に必要な程度で、各処理の概要を示しており、実際のコンピュータプログラムとは相違する場合がある。また、いわゆる当業者であれば、図示されたステップを入れ替えたり、削除したり、変更したり、あるいは新たなステップを追加したりすることができるであろう。
クライアントコンピュータ20は、仮想空間提供装置10にアクセスして、ログイン情報を送信する(S10)。ログイン情報とは、仮想空間70にログインするために必要な認証情報である。
管理サーバ40は、クライアントコンピュータ20からログイン情報を受信すると(S11)、ユーザ管理テーブルT10を参照して、そのユーザのログインを許可するか否かを判定する(S12)。ログイン情報がユーザ管理テーブルT10に記憶されているデータと異なる場合、そのユーザのログインは拒否される(S12:NO)。この場合、管理サーバ40は、クライアントコンピュータ20に、ログイン情報に誤りがある旨を警告することができる(S13)。
ログイン情報がユーザ管理テーブルT10に記憶されているデータと一致しても、ログイン制御フラグに「0」が設定されている場合、管理サーバ40は、そのユーザのログインを拒否する(S12:NO)。管理サーバ40は、ログインが禁止されていることをクライアントコンピュータ20に警告することができる(S13)。
ログイン情報がユーザ管理テーブルT10に記憶されたデータと一致しており、かつ、ログイン制御フラグに「1」の設定されているユーザについては、ログインが許可される(S12:YES)。管理サーバ40は、クライアントコンピュータ20にログインが許可された旨を通知する(S14)。このログイン許可通知には、ユーザの選択可能なアバターの位置を含めることができる。例えば、予め用意されている一つまたは複数のログイン地点やユーザが前回ログアウトした地点等を、ユーザが選択可能なログイン地点として提供することができる。
クライアントコンピュータ20は、ログイン許可通知を受領すると(S15)、アバターのログイン位置を選択する(S16)。なお、クライアントコンピュータ20側で、ログを管理しており、前回のログアウト地点を把握している場合等には、ログイン許可通知にログイン可能地点の情報を含ませる必要はない。
クライアントコンピュータ20は、アバターの位置情報とデータ送信要求とを、仮想空間提供装置10に送信する(S17)。管理サーバ40は、クライアントコンピュータ20からアバターの位置情報及びデータ送信要求を受領すると(S18)、S11で受信したログイン情報に基づいて、グループIDを特定する(S19)。即ち、ユーザIDを検索キーとしてグループ管理テーブルT20を検索することにより、ユーザの属するグループを検出する。
管理サーバ40は、検出されたグループIDを検索キーとして、可視管理テーブルT30を検索することにより、そのユーザのクライアントコンピュータ20に表示可能なオブジェクトのIDを検出する(S20)。即ち、管理サーバ40は、ログインしたユーザの属性に適したオブジェクトのIDを全て抽出する。
さらに、管理サーバ40は、抽出されたオブジェクトIDの中から、実際にクライアントコンピュータ20の画面に表示させるオブジェクトを決定し(S21)、決定されたオブジェクトのデータをクライアントコンピュータ20に送信させる(S22)。
ユーザの属するグループに含まれる全てのオブジェクトデータを、クライアントコンピュータ20に送信しない理由は、複数のオブジェクトの表示位置が重なっていたり、アバター位置の視認範囲外(つまり、クライアントコンピュータ20の画面の外部)に存在するオブジェクトも含まれているためである。S21の詳細は、図9で後述する。なお、複数のオブジェクトの表示位置が重なる場合の処理は、別の実施例で説明する。
クライアントコンピュータ20は、仮想空間提供装置10からオブジェクトデータを受領すると(S23)、そのオブジェクトデータを描画して、クライアントコンピュータ20の画面に表示させる(S24)。
ユーザがアバターを操作してアバター位置が変化した場合(S25:YES)、クライアントコンピュータ20は、S17に戻る。新たなアバター位置及びデータ送信要求が、クライアントコンピュータ20から仮想空間提供装置10に送信され、アバターの最新位置に対応する仮想空間70が画面に表示される。
アバター位置が変化しない場合(S25:NO)、クライアントコンピュータ20は、ユーザによる操作内容を仮想空間提供装置10に送信する(S26)。管理サーバ40は、ユーザの操作を仮想空間70に反映させ、その操作内容をログに保存する(S27)。なお、ユーザは、アバターを仮想空間70内で移動させながら、チャット等の別の操作を行うこともできる。
図9は、図8中のS21の詳細を示すフローチャートである。管理サーバ40は、ユーザの属性に応じて抽出されたオブジェクトID(以下、表示可能なオブジェクトIDとも呼ぶ)の位置情報を、オブジェクト管理テーブルT40から取得する(S30)。管理サーバ40は、オブジェクトの位置とアバターの位置とを比較し(S31)、アバターの位置とオブジェクトの位置とが所定の視認範囲内にあるか否かを判定する(S32)。即ち、管理サーバ40は、例えば、アバター位置を中心とする所定の範囲内に、そのオブジェクトが存在するか否かを判定する。より具体的には、管理サーバ40は、そのオブジェクトがクライアントコンピュータ20の画面内に位置するか否かを判定する。
そのオブジェクトが所定の視認範囲内に存在する場合(S32:YES)、管理サーバ40は、そのオブジェクトを表示させるオブジェクトとして選択する(S33)。表示されるオブジェクトとは、クライアントコンピュータ20に送信して描画させるオブジェクトを意味する。
なお、アバターが所定の区画に入った場合に、その所定の区画に対応付けられている全部または一部のオブジェクトを、表示させるオブジェクト(S33)として、選択する構成でもよい。例えば、アバターが仮想建築物内に入場した場合、その仮想建築物内に配置されている各オブジェクトを、入場したアバターの属性に応じてカスタマイズし、表示させることもできる。
管理サーバ40は、表示可能なオブジェクトのうち全てのオブジェクトについて判定したか否かを判定する(S34)。未判定のオブジェクトが残っている場合(S34:NO)、管理サーバ40は、判定対象のオブジェクトを次のオブジェクトに変更し(S35)、S30に戻る。
図10は、ユーザの属性によって(ユーザの属するグループによって)、ユーザに視認される仮想空間70の構成が異なる様子を示す説明図である。図10の上側に示すように、あるユーザU1には、そのユーザの属するグループに含まれるオブジェクトのみが表示される。図10の下側に示すように、別のユーザU2には、そのユーザの属するグループに含まれるオブジェクトのみが表示される。従って、ユーザU1とユーザU2とが一緒に仮想店舗80に入店し、同一の商品棚90を眺めた場合でも、各ユーザに見える商品オブジェクトはそれぞれ異なる。
図11は、ユーザの属性に応じて仮想空間70がカスタマイズされる別の例を示す説明図である。ユーザU1とユーザU2とが同一の公園に出かけた場合を示す。図11の上側に示すように、あるユーザU1には、樹木オブジェクト109及び芝生オブジェクト110が見えるが、図11下側に示すように、別のユーザU2には、花オブジェクト111とモニュメントオブジェクト112及び芝生オブジェクト110とが見える。
本実施例は上述の構成を備えるため、以下の効果を奏する。本実施例では、各ユーザの属性に応じて、仮想空間70の構成を個別に変化させるため、同一場所に種類の異なるオブジェクトを重ねて配置することができ、仮想空間を有効に使用できる。
本実施例では、クライアントコンピュータ20に表示させるオブジェクトデータのみを送信するため、通信ネットワークCN10のトラフィックを増大させたり、クライアントコンピュータ20のコンピュータ資源を浪費せずに、そのユーザに適した仮想空間を提供することができる。
図12〜図16に基づいて第2実施例を説明する。本実施例では、ユーザに設定されるキーワード(ユーザプロパティ)とオブジェクトに設定されるキーワード(オブジェクトプロパティ)との一致度に基づいて、表示位置の競合する複数のオブジェクトから一つのオブジェクトを選択する。なお、本実施例を含む以下の各実施例は、第1実施例の変形例に該当する。従って、以下の説明では、重複した説明を省略し、各実施例の特徴部分を中心に説明する。
図12は、本実施例による仮想空間提供装置10で使用される各管理テーブルを示す説明図である。ユーザ管理テーブルT10Aには、ユーザプロパティが追加されており、オブジェクト管理テーブルT40Aには、オブジェクトプロパティが追加されている。
図13は、ユーザ管理テーブルT10A及びオブジェクト管理テーブルT40Aの一例を示す説明図である。ユーザ管理テーブルT10Aには、新たにユーザプロパティ欄C14が追加されている。ユーザプロパティ欄C14には、そのユーザに応じた一つまたは複数のキーワードが設定される。キーワードは、ユーザが手動で設定してもよいし、後述の実施例に示すように、仮想空間提供装置10が自動的に設定する構成でもよい。
オブジェクト管理テーブルT40Aには、新たにオブジェクトプロパティ欄C45が追加されている。オブジェクトプロパティ欄C45には、そのオブジェクトに応じた一つまたは複数のキーワードが設定されている。キーワードは、オブジェクトの作成者が手動で設定してもよいし、仮想空間提供装置10が自動的に設定する構成でもよい。
図14は、本実施例による動作を示すフローチャートである。図14に示すフローチャートは、図8に示すフローチャートのステップS30〜S35を全て備えている。さらに、本実施例では、表示可能な全てのオブジェクトについて判定した後(S34:YES)、管理サーバ40は、所定範囲内に、表示が決定されたオブジェクトが複数存在するか否かを判定する(S35)。つまり、管理サーバ40は、ユーザに対応するオブジェクトが仮想空間70内で重なり合っているか否かを判定する。
表示が決定されたオブジェクトが所定範囲内に複数存在する場合(S40:YES)、管理サーバ40は、重なり合う各オブジェクトのうち、いずれか一つのオブジェクトを選択して(S41)、処理を終了する。
図15は、図14中のS41の詳細を示すフローチャートである。管理サーバ40は、重なり合う各オブジェクトの作成日及びオブジェクトプロパティを、オブジェクト管理テーブルT40Aからそれぞれ取得する(S50)。さらに、管理サーバ40は、ユーザ管理テーブルT10Aから、ユーザプロパティを取得する(S51)。
管理サーバ40は、例えば、キーワードマッチング用データベース51を用いることにより、ユーザプロパティと各オブジェクトプロパティとの一致度をそれぞれ検出する(S52)。
ここで、図16を参照する。図16は、キーワードマッチング用データベース51の一例を示す。このデータベース51は、各キーワード間の一致度(または関連度)を記憶している。同一のキーワード同士の場合、一致度は「1」となっている。比較される各キーワードの関連性が深くなるほど、一致度の値は1に近づく。従って、このようなデータベース51を用いることにより、管理サーバ40は、ユーザプロパティとオブジェクトプロパティとの一致度を求めることができる。なお、一致度の判定に関する記載は、例示であって、本発明は、上記記載に限定されない。以下、一致度が所定範囲内にあるオブジェクトを所定オブジェクトと呼ぶ。
図15に戻る。管理サーバ40は、所定オブジェクトが存在するか否かを判定する(S53)。ユーザプロパティとオブジェクトプロパティの一致度が所定範囲内に無い場合(S53:NO)、つまり、所定オブジェクトを発見できない場合、管理サーバ40は、重なり合う各オブジェクトのうち作成日が新しい方を一つ選択する(S54)。なお、作成日が時分秒まで一致する場合、管理サーバ40は、オブジェクト名称またはオブジェクトIDの順番に基づいて、いずれか一つのオブジェクトを選択する。
ユーザプロパティとオブジェクトプロパティの一致度が所定範囲内にある場合(S53:YES)、即ち、所定オブジェクトが発見された場合、管理サーバ40は、所定オブジェクトが複数存在するか否かを判定する(S55)。所定オブジェクトが一つだけ存在する場合(S55:NO)、管理サーバ40は、その所定オブジェクトを選択する(S56)。
所定オブジェクトが複数存在する場合(S55:YES)、管理サーバ40は、重なり合う各所定オブジェクトのうち、最も作成日の新しい方を一つ選択する(S57)。なお、S54で述べたと同様に、作成日が時分秒まで一致する場合、管理サーバ40は、オブジェクト名称またはオブジェクトIDの順番に基づいて、いずれか一つの所定オブジェクトを選択する。
このように構成される本実施例も第1実施例と同様の効果を奏する。これに加えて、本実施例では、ユーザ属性に対応するオブジェクトが重なった場合に、いずれか一つのオブジェクトを選択してクライアントコンピュータ20に送信する。従って、同一場所に複数のオブジェクトが重ねて表示されず、ユーザの視認性や使い勝手が向上する。しかし、これに代えて、例えば、選択された方のオブジェクトを通常通りに表示し、選択されなかった方のオブジェクトを半透明で表示させる場合も、ユーザの視認性やアバターの操作性に特に支障が無い場合は、本発明の範囲に含まれる。
本実施例では、ユーザに設定されるユーザプロパティ(キーワード)とオブジェクトに設定されるオブジェクトプロパティ(キーワード)との一致度を求め、一致度の高い方のオブジェクトを優先して表示させる。従って、ユーザにより適したオブジェクトを仮想空間70に配置することができ、ユーザの使い勝手が向上する。
図17に基づいて第3実施例を説明する。図17は、本実施例による、重なり合うオブジェクトからいずれか一つを選択するための処理を示す。本実施例では、重なり合う各オブジェクトの作成日をオブジェクト管理テーブルT40からそれぞれ取得し(S60)、作成日が最も新しい方のオブジェクトを一つ選択する(S61)。作成日が一致する場合は、上述のように、オブジェクトIDやオブジェクト名称に基づいて選択する。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、ユーザに適したオブジェクトが重なっている場合に、作成日の新しい方のオブジェクトを選択して表示させる。従って、ユーザの視認性及びアバターの操作性を低下させずに、ユーザに適した仮想空間70を生成することができる。
また、本実施例では、作成日の新しい方を選択するため、重なり合う複数のオブジェクトから一つのオブジェクトを容易に選択することができ、構成を簡素化できる。従って、管理サーバ40の負担を軽減でき、多数のユーザに対応することができる。
さらに、作成日の新しいオブジェクトを優先して表示するため、ユーザに最新のオブジェクトを見せることができ、ユーザの使い勝手が向上する。
図18,図19に基づいて第4実施例を説明する。本実施例では、オブジェクトが重なっている場合に、各オブジェクトに設定された優先度に基づいて、いずれか一つのオブジェクトを選択する。
図18は、本実施例の仮想空間提供装置10により使用される各管理テーブルを示す説明図である。本実施例のオブジェクト管理テーブルT40Bには、優先度の欄が新たに追加されている。
優先度は、仮想空間提供装置10が自動的に設定する構成でもよいし、オブジェクトの作成者(保有者)が手動で設定する構成でもよい。あるいは、オブジェクトの作成者が手動で設定した優先度を、仮想空間提供装置10が自動的に修正する構成でもよい。例えば、オブジェクトの作成者の評価を管理するための作成者評価管理テーブルを用意し、評価の高い作成者により作成されたオブジェクトには、その作成者が手動で設定した優先度をそのまま採用する。評価の低い作成者により作成されたオブジェクトは、その作成者が手動で設定した優先度よりも低い優先度を設定する。
図19は、重なり合う複数のオブジェクトからいずれか一つのオブジェクトを選択するための処理を示す。管理サーバ40は、重なり合う各オブジェクトの作成日及び優先度を、オブジェクト管理テーブルT40Bからそれぞれ取得する(S70)。
管理サーバ40は、最も優先度の高いオブジェクトが複数存在するか否かを判定する(S71)。優先度の最も高いオブジェクトが一つだけ存在する場合(S71)、つまり、同じ値の優先度を有するオブジェクトが複数存在しない場合(S71:NO)、管理サーバ40は、優先度が最も高いオブジェクトを選択する(S72)。
優先度の高いオブジェクトが複数存在する場合(S71:YES)、管理サーバ40は、いずれか作成日の新しい方のオブジェクトを一つ選択する(S73)。なお、作成日も一致する場合、オブジェクトIDやオブジェクト名称に基づいて選択する。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、オブジェクトが重なり合う場合に、優先度の高いオブジェクトを一つ選択するため、ユーザの視認性やアバターの操作性を高めることができる。
図20,図21に基づいて第5実施例を説明する。本実施例では、仮想空間提供装置10からクライアントコンピュータ20に、ユーザの視認範囲内の全オブジェクトのデータを送信し、クライアントコンピュータ20側で表示するオブジェクトを選別する。
図20は、本実施例の仮想空間提供装置10の動作を示す。管理サーバ40は、表示させるオブジェクトを決定した後(S21)、視認範囲内の全てのオブジェクトデータを、クライアントコンピュータ20に送信させる(S22A)。
仮想空間提供装置10は、図21(d)に示すように、オブジェクトデータD1に描画制御情報D2を対応付けて、クライアントコンピュータ20に送信する。描画制御情報D2は、そのオブジェクトの表示の可否を制御するための情報である。描画制御情報D2に「1」がセットされているオブジェクトは、クライアントコンピュータ20によって描画される。描画制御情報D2に「0」がセットされているオブジェクトは、クライアントコンピュータ20により描画されない。
クライアントコンピュータ20は、仮想空間提供装置10から受信したオブジェクトデータD1及び描画制御情報D2を、クライアントコンピュータ20内のメモリ装置に保存する。クライアントコンピュータ20は、描画の許可されたオブジェクトデータのみを描画し、画面に表示させる(S24A)。
図21は、仮想空間提供装置10からクライアントコンピュータ20に送信されるオブジェクトデータの範囲を説明するための図である。図21(a)は、仮想空間70の有する全てのオブジェクトデータ(OID001−OID010)を示す。
図21(b)は、アバターを中心とする視認可能な範囲内(視認範囲内)に存在するオブジェクトデータ(OID001,OID003,OID007,OID010)を示す。図21(c)は、視認範囲内に位置する各オブジェクトデータのうち、ユーザ属性に対応するオブジェクトデータ(OID001,OID010)を示す。
図21(d)は、仮想空間提供装置10からクライアントコンピュータ20に送信されるデータの構成を示す。仮想空間提供装置10は、ユーザ属性に対応するか否かを問わずに、視認範囲内に存在する全てのオブジェクトデータを、クライアントコンピュータ20に送信する。
但し、オブジェクトデータD1には、上述した描画制御情報D2がそれぞれ設定されている。視認範囲内に存在するオブジェクトであっても、ユーザ属性に適合しないオブジェクトの描画制御情報D2には「0」がセットされる。視認範囲内に存在し、かつ、ユーザ属性に適合するオブジェクトの描画制御情報D2には「1」がセットされる。
図21(e)は、クライアントコンピュータ20によって描画されるオブジェクトデータを示す。クライアントコンピュータ20は、仮想空間提供装置10から受信した各オブジェクトデータのうち、描画制御情報に「1」がセットされているオブジェクトデータのみを描画する。
このように構成される本実施例も第1実施例とほぼ同様の効果を奏する。本実施例では、視認範囲内の全オブジェクトデータをクライアントコンピュータ20に送信し、クライアントコンピュータ20側で描画するオブジェクトデータを選別する。従って、通信ネットワークCN10を流れるデータ量は第1実施例よりも増大するが、描画制御情報を書き換えるだけで、表示させるか否かを制御することができる。
図22に基づいて第6実施例を説明する。本実施例は、ユーザの現実世界での行動履歴に基づいて、ユーザプロパティを自動的に設定する。本実施例は、第2実施例の変形例に該当する。図22は、本実施例に係る仮想空間提供装置10により実行される、ユーザプロパティ設定処理を示す。
管理サーバ40は、例えば、POS(Point Of Sale)明細データ52A、電子マネー利用データ52B、ポイント利用データ52C等から、ユーザの購買履歴データを取得する(S80)。POS明細データ52Aには、例えば、コンビニエンスストアやスーパーマーケット等でのユーザの購買履歴が含まれている。電子マネー利用データ52Bには、ウェブサイトでの決済に使用される電子マネーのユーザの利用状況が含まれている。ポイント利用データ52Cには、商品やサービスの購入に際して所定割合で付与される、商品やサービスと交換可能なポイントのユーザの利用状況が含まれている。
管理サーバ40は、ユーザの購買履歴データに基づいて、ユーザの購入した商品を抽出する(S81)。各商品には、例えば、JAN(Japanese Article Number)コードのような商品識別コードが、バーコード、二次元バーコード、ICタグのような形態で予め設定されている。従って、商品識別コードからユーザの購入した商品を特定できる。
管理サーバ40は、商品管理データベース53を用いることにより、ユーザの購入した商品にキーワードを設定し(S82)、この商品に設定されたキーワードをユーザプロパティとしてユーザ管理テーブルT10Aに設定する(S83)。
商品管理データベース53は、例えば、商品ID(商品識別コード)と、商品名と、商品の提供者名と、キーワードとを対応付けて管理する。なお、これら以外の管理項目を備えてもよいし、上述した管理項目のうち商品ID及びキーワード以外の管理項目を除外してもよい。
キーワードは、例えば、その商品の特徴や性質、販売顧客層等に基づいて、設定することができる。体脂肪率の低減を特徴とする商品には、例えば、「健康」、「ダイエット」等のキーワードが設定される。
商品提供者のサイトに掲載されている商品の広告宣伝文から、テキストマイニング手法等を用いることにより、一つまたは複数のキーワードを抽出することができる。または、WWWサイトで公開されている日記や掲示板のテキストから、商品に関するキーワードを抽出することもできる。さらには、仮想空間70内で行われた、商品に関するチャットのログデータに基づいて、その商品のキーワードを自動的に抽出することもできる。
なお、有体物の商品に限らず、現実世界でのサービス利用履歴に基づいて、ユーザプロパティを自動的に設定することもできる。例えば、エステサロンを利用したユーザには、「美容」、「ファッション」のようなユーザプロパティを設定できる。
さらに、このようにして自動的にユーザに対応付けられるキーワードの順位を、ユーザの最新の購買履歴(行動履歴)に応じて変動させることもできる。例えば、あるユーザに第1キーワード「音楽」、第2キーワード「教養」、第3キーワード「健康」の3つが設定されている場合、そのユーザが最近「健康」のキーワードを有する商品を購入した場合、第3キーワードであった「健康」を第1キーワードに変更する。「音楽」及び「教養」の各キーワードは、それぞれ順位を1つずつ繰り下げる。
このように構成される本実施例も第1実施例及び第2実施例と同様の効果を奏する。これに加えて、本実施例では、ユーザの現実世界における商品の購買履歴に基づいて、そのユーザのプロパティを自動的に設定する。従って、本実施例では、ユーザの比較的最近の興味や関心等に応じて、仮想空間70に表示させるオブジェクトを選択でき、使い勝手が向上する。さらに、ユーザの最近の嗜好や関心等に応じて仮想空間70の構成を変更することができるため、ユーザ単位のマーケティング活動を第1実施例よりも効果的に行うことができる。なお、第1実施例も、個々のユーザ単位でのマーケティング活動に利用することができる。
図23,図24に基づいて第7実施例を説明する。本実施例では、ユーザの仮想空間70での行動履歴に基づいて、ユーザプロパティを自動的に設定する。本実施例も第2実施例の変形例に該当する。図23は、本実施例に係る仮想空間提供装置10により実行される、ユーザプロパティ設定処理のフローチャートである。
管理サーバ40は、ユーザに対応するアバターに関するログデータを、ログデータ45Aから取得する(S80)。管理サーバ40は、S80で取得したログデータから、アバターの保有する各種オブジェクトにそれぞれ設定されているオブジェクトプロパティを取得する(S81)。
アバターは、例えば、上着、ズボン、靴、鞄、眼鏡、腕時計、帽子等の種々のオブジェクトを保持している。これらの各オブジェクトには、予めキーワード(オブジェクトプロパティ)がそれぞれ設定されている。
続いて、管理サーバ40は、アバターの行動履歴に対応するキーワードを取得する(S82)。この方法については、図24で後述する。最後に、管理サーバ40は、オブジェクトプロパティ内のキーワードと、行動履歴に基づくキーワードとを、ユーザプロパティとして設定する(S83)。
なお、S81及びS82で取得されたキーワードの合計が予め設定される上限値を超える場合、予め設定される基準に従って、上限値以内のキーワードに絞り込む。例えば、仮想空間70での行動履歴から得られるキーワードを優先的に使用する。逆に、アバターの保有するオブジェクトから得られるキーワードを優先的に使用してもよい。
図24は、保有オブジェクトや行動履歴に基づいてキーワードを取得する方法(S81,S82)を模式的に示す説明図である。ログデータ45Aは、例えば、ユーザIDと、保有オブジェクトIDと、行動履歴等を対応付けて管理する。
保有オブジェクトIDとは、そのユーザ(アバター)が保持しているオブジェクトのIDである。従って、保有オブジェクトIDに基づいてオブジェクト管理テーブルT40Aを検索することにより、アバターの保有するオブジェクトに関するキーワードを取得することができる。
ログデータ45A内の行動履歴は、仮想空間70におけるアバターの行動や会話等を記録している。行動パターン判別テーブル54は、例えば、指標と、その指標に対応して予め設定されるキーワードとを備える。例えば、仮想空間70に新しい建築物オブジェクトが配置された場合、直ちにその建築物を訪問したユーザには「新しもの好き」等のキーワードが設定される。また、例えば、仮想空間70へのログイン時間に占めるチャット時間の割合が所定値以上多いユーザには、「活動的」等のキーワードが設定される。さらに、例えば、所定期間内のチャット内容に否定的な言葉が所定値以上出現する場合、そのユーザには、「悲観的」等のキーワードが設定される。なお、以上の説明は、本発明の理解のための例示であり、本発明は上述の記載によって限定されない。
このように構成される本実施例も前記第1実施例、第2実施例及び第6実施例と同様の効果を奏する。さらに、本実施例では、仮想空間70におけるユーザの行動履歴に基づいて、そのユーザに提供される仮想空間70の構成を変更することができる。従って、仮想空間70内におけるユーザの興味や関心等に応じて、そのユーザ用に仮想空間70をカスタマイズすることができ、ユーザの使い勝手が向上する。
図25に基づいて第8実施例を説明する。本実施例では、アバター(ユーザ)が所定のオブジェクトを保持することにより、所定オブジェクトに対応付けられているグループIDにユーザIDを設定する。これにより、例えば、音楽グループに属するオブジェクトをユーザが保持することで、そのユーザは自動的に音楽グループに属し、音楽グループに対応付けられているオブジェクトが仮想空間70に表示される。
図25は、本実施例に係る仮想空間提供装置10で実行されるグループ変更処理を示すフローチャートである。管理サーバ40は、例えばログデータ45Aに基づいて、アバターの保持するオブジェクトを検査し、アバターが所定のオブジェクトを保持しているか否かを判定する(S90)。
所定のオブジェクトとは、ユーザの属するグループを変化させることのできるオブジェクトである。このような所定オブジェクトには、オブジェクト管理テーブルT40において、所定オブジェクトである旨を示すフラグが設定される。
アバターが所定オブジェクトを保持している場合(S90:YES)、管理サーバ40は、オブジェクト管理テーブルT40を参照することにより、所定オブジェクトに対応付けられているグループIDを検出し、このグループIDにアバターのユーザIDを対応付けて、グループ管理テーブルT20を更新する(S91)。
アバターが所定オブジェクトを保持していない場合(S90:NO)、管理サーバ40は、例えば、ログデータ45Aを用いることにより、所定オブジェクトがアバターから取り外されたか否かを判定する(S92)。所定オブジェクトがアバターから取り外された場合としては、例えば、所定オブジェクトが捨てられた場合、所定オブジェクトが倉庫やトランクのようなオブジェクト保管場所に保管された場合等を挙げることができる。
所定オブジェクトがアバターから取り外された場合(S92:YES)、管理サーバ40は、オブジェクト管理テーブルT40を参照して所定オブジェクトに対応付けられているグループIDを検出する。そして、管理サーバ40は、グループ管理テーブルT20において、所定オブジェクトに関するグループIDに対応付けられているユーザIDを削除し、グループ管理テーブルT20を更新する(S93)。
ユーザの操作するアバターが身につけるオブジェクトについて、図25に示す処理を定期的または不定期に行うことにより、ユーザは、所望のグループに関する所定のオブジェクトを保持するだけで(あるいは、装着するだけで)、そのグループに属する他のオブジェクトをクライアントコンピュータ20に表示させることができる。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例では、ユーザ(アバター)の保持する所定オブジェクトに対応するグループIDと、そのユーザのユーザIDとを対応付けるようにグループ管理テーブルT20を更新する。従って、ユーザは、所望のグループに対応する所定オブジェクトを保持するだけで、そのグループに属するオブジェクトを表示させることができ、かつ、所定オブジェクトを取り外すだけで、そのグループに属するオブジェクトを消去させることができる。従って、ユーザの使い勝手が向上する。
図26に基づいて第9実施例を説明する。本実施例では、ユーザの保持するオブジェクトに応じて、グループ管理テーブルT20を動的に生成または変更する。管理サーバ40は、例えば、ログデータ45Aを用いることにより、ユーザの保持するオブジェクトを検出する(S100)。
管理サーバ40は、検出されたオブジェクトのオブジェクトIDを検索キーとして、オブジェクト管理テーブルT40を検索し(S101)、そのオブジェクトに対応付けられているグループIDを検出する(S102)。
管理サーバ40は、検出されたグループIDを検索キーとしてグループ管理テーブルT20を検索し(S103)、その検出されたグループIDにユーザIDが対応付けられているか否かを判定する(S104)。S102で検出されたグループIDにユーザIDが対応付けられていない場合(S104:NO)、管理サーバ40は、そのグループIDにユーザIDを対応付けて、グループ管理テーブルT20を更新させる(S105)。検出されたグループIDにユーザIDが既に対応付けられている場合(S104:YES)、S105はスキップされる。
管理サーバ40は、ユーザが保持していないオブジェクトに関するグループIDに、そのユーザのIDが対応付けられているか否かを検査し、既に保持していないオブジェクトに関するグループIDからユーザIDを削除して、グループ管理テーブルT20を更新させる(S106)。
このように構成される本実施例は、第1実施例と同様の効果を奏する。さらに、本実施例では、ユーザの保持するオブジェクトに応じて、そのユーザの属するグループを動的に変更する。従って、仮想空間70のアバターが装着しているオブジェクトの種類に応じて、ユーザに提供される仮想空間70をカスタマイズすることができ、ユーザの使い勝手が向上する。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、上述の各実施例を適宜組み合わせて使用することができる。
また、例えば、ユーザ管理テーブル、グループ管理テーブル、可視管理テーブル及びオブジェクト管理テーブルの構成は一例であって、他の構成のテーブルを用いて本発明を実現することもできる。
さらに、前記第1実施例では、ユーザ属性に対応する各オブジェクトのうち、クライアントコンピュータの画面に表示される範囲内のオブジェクトのデータを送信する場合を例に挙げて説明した。これに代えて、画面の表示範囲よりも所定サイズだけ大きい範囲内に存在するオブジェクトのデータをクライアントコンピュータ20に送信してもよい。これにより、アバターが移動した場合でも、移動直後の仮想空間を速やかに表示させることができる。
本発明の実施形態の概念を示す説明図である。
仮想空間提供システムの全体構成を示す説明図である。
クライアントコンピュータ及び仮想空間提供装置の構成を示すブロック図である。
仮想店舗の構成を模式的に示す説明図である。
各管理テーブルの概略及び関係を示す説明図である。
ユーザ管理テーブル及びグループ管理テーブルの構成を示す説明図である。
可視管理テーブル及びオブジェクト管理テーブルの構成を示す説明図である。
ユーザに仮想空間を提供する処理を示すフローチャートである。
図8中のS21の詳細を示すフローチャートである。
ユーザ属性に応じて仮想空間に表示されるオブジェクトの構成が変化する様子を示す説明図である。
ユーザ属性に応じて仮想空間に表示されるオブジェクトの構成が変化する別の様子を示す説明図である。
第2実施例に係る仮想空間提供装置で使用される各管理テーブルの概要及び関係を示す説明図である。
ユーザ管理テーブル及びオブジェクト管理テーブルの一例を示す説明図である。
クライアントコンピュータの画面に表示させるオブジェクトを決定するための処理を示すフローチャートである。
図14中のS41の詳細を示すフローチャートである。
図15中のS52で使用されるキーワードマッチング用データベースの例を示す説明図である。
第3実施例に係る仮想空間提供装置が実行する、重なり合う複数オブジェクトからいずれか一つのオブジェクトを選択するための処理を示すフローチャートである。
第4実施例に係る仮想空間提供装置で使用される各管理テーブルの概要及び関係を示す説明図である。
重なり合う複数オブジェクトからいずれか一つを選択するための処理を示すフローチャートである。
第5実施例に係る仮想空間提供装置がユーザに仮想空間を提供する処理を示すフローチャートである。
仮想空間提供装置からクライアントコンピュータに送信されるオブジェクトの範囲とデータ構造とを示す説明図である。
第6実施例に係る仮想空間提供装置が実行する、ユーザプロパティを自動的に設定する処理を示すフローチャートである。
第7実施例に係る仮想空間提供装置が実行する、ユーザプロパティを自動的に設定する処理を示すフローチャートである。
ログデータに基づいて、ユーザプロパティ用のキーワードを取得する様子を示す説明図である。
第8実施例に係る仮想空間提供装置が実行する、グループ変更処理を示すフローチャートである。
第9実施例に係る仮想空間提供装置が実行する、グループ管理テーブル作成処理を示すフローチャートである。
符号の説明
1:仮想空間提供装置、2:クライアント装置、3:仮想空間提供部、4:仮想空間管理部、4A:ログイン処理、4B:ユーザ属性に応じたオブジェクト抽出処理、4C:オブジェクト決定処理、4D:オブジェクト送信処理、5:管理用データベース、6:仮想空間用ビューワ、6A:通信部、6B:描画部、6C:操作部、6D:コミュニケーション部、7:仮想空間、8:仮想店舗、9:仮想商品棚、9A:男性ユーザグループ、9B:中立グループ、9C:女性ユーザグループ、U1:男性ユーザ、U2:女性ユーザ、10:仮想空間提供装置、20:クライアントコンピュータ、30:仮想空間提供サーバ、31:通信処理部、40:管理サーバ、40A:演算処理装置、40B:メモリ、40C:補助記憶装置、41:ログイン等処理部、42:可視管理部、42A:表示オブジェクト抽出処理部、42B:表示オブジェクト送信処理部、44:ユーザ操作への対応処理部、45:ログ管理部、45A:ログデータ、50:データベース、51:キーワードマッチング用データベース、52A:POS明細データ、52B:電子マネー利用データ、52C:ポイント利用データ、53:商品管理データベース、54:行動パターン判別テーブル、60:仮想空間用ビューワ、61:描画部、62:操作部、63:通信部、64:コミュニケーション部、70:仮想空間、80:仮想店舗、90:仮想商品棚、100:商品オブジェクト、T10,T10A:ユーザ管理テーブル、T20:グループ管理テーブル、T30:可視管理テーブル、T40,T40A,T40B:オブジェクト管理テーブル。