IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社AiSpaceの特許一覧

特開2024-110800仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム
<>
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図1
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図2
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図3
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図4
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図5
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図6
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図7
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図8
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図9
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図10
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図11
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図12
  • 特開-仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110800
(43)【公開日】2024-08-16
(54)【発明の名称】仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20240808BHJP
   G06F 15/00 20060101ALI20240808BHJP
   H04L 67/131 20220101ALI20240808BHJP
【FI】
G06T19/00 300A
G06F15/00 420Z
H04L67/131
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023015619
(22)【出願日】2023-02-03
(71)【出願人】
【識別番号】521565349
【氏名又は名称】株式会社AiSpace
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】辻脇 隆
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA09
5B050BA12
5B050BA13
5B050CA07
5B050CA08
5B050DA10
5B050EA07
5B050EA12
5B050EA18
5B050EA19
5B050EA27
5B050FA02
5B050FA09
5B050GA08
(57)【要約】
【課題】より多くの利用者に仮想空間を提供する。
【解決手段】仮想空間提供装置とユーザ端末とを有して構成される仮想空間提供システムであって、ユーザ端末は、アバターの位置情報を記憶するアバター位置情報記憶部と、仮想空間を複数に分割してなる仮想区域毎に、各仮想区域の範囲情報と、各仮想区域に割り当てられるセッションを示すセッション情報と、を対応付けて記憶するセッション情報記憶部と、仮想空間提供装置にアバターの位置情報と、アバターがいる仮想区域のセッション情報と、を送信するセッション情報送信部と、仮想空間提供装置からセッションに接続中のアバターの位置情報を取得してセッションに接続中のアバターを仮想空間内に表示するアバター表示部と、を備え、仮想空間提供装置は、ユーザ端末をセッションに接続し、ユーザ端末にセッションに接続中のアバターの位置情報を送信するアバター情報送信部と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
仮想空間を提供する仮想空間提供装置と、前記仮想空間提供装置と通信可能に接続されるユーザ端末と、を有して構成される仮想空間提供システムであって、
前記ユーザ端末は、
前記仮想空間に表示させる前記ユーザ端末の利用者のアバターの位置情報を記憶するアバター位置情報記憶部と、
前記仮想空間を複数に分割してなる仮想区域毎に、各仮想区域の範囲を示す範囲情報と、各仮想区域に割り当てられるセッションを示すセッション情報と、を対応付けて記憶するセッション情報記憶部と、
前記仮想空間提供装置に、前記アバターの位置情報と、前記アバターの位置情報が含まれる仮想区域に対応するセッション情報と、を送信するセッション情報送信部と、
前記仮想空間提供装置から、前記セッション情報により特定されるセッションに接続中の各ユーザ端末の利用者のアバターの位置情報を取得し、当該位置情報を元に、前記セッションに接続中の各ユーザ端末のアバターを前記仮想空間内に表示するアバター表示部と、
を備え、
前記仮想空間提供装置は、
前記セッション情報を送信してきたユーザ端末を、前記セッション情報により特定されるセッションに接続し、当該ユーザ端末に対して、前記セッションに接続中の各ユーザ端末の利用者のアバターの位置情報を送信するアバター情報送信部と、
を備える、仮想空間提供システム。
【請求項2】
請求項1に記載の仮想空間提供システムであって、
前記セッション情報送信部は、
前記アバターの位置情報を含む仮想区域に対応するセッション情報に加え、前記仮想区域に隣接する仮想区域に対応するセッション情報を、前記仮想空間提供装置に送信する、仮想空間提供システム。
【請求項3】
請求項2に記載の仮想空間提供システムであって、
前記セッション情報送信部は、
前記アバターの位置情報を含む仮想区域に対応するセッション情報に加え、前記仮想区域に隣接する全ての仮想区域に対応するセッション情報を、前記仮想空間提供装置に送信する、仮想空間提供システム。
【請求項4】
請求項2に記載の仮想空間提供システムであって、
前記セッション情報送信部は、
前記アバターが第1仮想区域から、前記第1仮想区域に隣接する第2仮想区域に移動する際に、前記第1仮想区域には隣接しないが前記第2仮想区域には隣接する仮想区域のセッション情報を含むセッション接続要求と、前記第1仮想区域には隣接するが前記第2仮想区域には隣接しない仮想区域のセッション情報を含むセッション停止要求と、を前記仮想空間提供装置に送信する、仮想空間提供システム。
【請求項5】
請求項1に記載の仮想空間提供システムであって、
前記セッション情報には、
前記ユーザ端末が前記セッションに接続するための接続先情報が含まれる、仮想空間提供システム。
【請求項6】
請求項1に記載の仮想空間提供システムであって、
前記アバター情報送信部は、
前記ユーザ端末が送信してきたセッション情報により特定されるセッションに接続中のユーザ端末の合計が所定値を超えない範囲で、前記セッション情報を送信してきたユーザ端末を前記セッションに接続する、
仮想空間提供システム。
【請求項7】
仮想空間を提供する仮想空間提供装置と通信可能に接続されるユーザ端末であって、
前記仮想空間に表示させる前記ユーザ端末の利用者のアバターの位置情報を記憶するアバター位置情報記憶部と、
前記仮想空間を複数に分割してなる仮想区域毎に、各仮想区域の範囲を示す範囲情報と、各仮想区域に割り当てられるセッションを示すセッション情報と、を対応付けて記憶するセッション情報記憶部と、
前記仮想空間提供装置に、前記アバターの位置情報と、前記アバターの位置情報が含まれる仮想区域に対応するセッション情報と、を送信するセッション情報送信部と、
前記仮想空間提供装置から、前記セッション情報により特定されるセッションに接続中の各ユーザ端末の利用者のアバターの位置情報を取得し、当該位置情報を元に、前記セッションに接続中の各ユーザ端末のアバターを前記仮想空間内に表示するアバター表示部と、
を備える、ユーザ端末。
【請求項8】
請求項7に記載のユーザ端末であって、
前記セッション情報送信部は、
前記アバターの位置情報を含む仮想区域に対応するセッション情報に加え、前記仮想区域に隣接する仮想区域に対応するセッション情報を、前記仮想空間提供装置に送信する、ユーザ端末。
【請求項9】
請求項8に記載のユーザ端末であって、
前記セッション情報送信部は、
前記アバターの位置情報を含む仮想区域に対応するセッション情報に加え、前記仮想区域に隣接する全ての仮想区域に対応するセッション情報を、前記仮想空間提供装置に送信する、ユーザ端末。
【請求項10】
請求項8に記載のユーザ端末であって、
前記セッション情報送信部は、
前記アバターが第1仮想区域から、前記第1仮想区域に隣接する第2仮想区域に移動する際に、前記第1仮想区域には隣接しないが前記第2仮想区域には隣接する仮想区域のセッション情報を含むセッション接続要求と、前記第1仮想区域には隣接するが前記第2仮想区域には隣接しない仮想区域のセッション情報を含むセッション停止要求と、を前記仮想空間提供装置に送信する、ユーザ端末。
【請求項11】
仮想空間を提供する仮想空間提供装置と通信可能に接続されるユーザ端末の制御方法であって、
前記ユーザ端末が、
前記仮想空間に表示させる前記ユーザ端末の利用者のアバターの位置情報を記憶し、
前記仮想空間を複数に分割してなる仮想区域毎に、各仮想区域の範囲を示す範囲情報と、各仮想区域に割り当てられるセッションを示すセッション情報と、を対応付けて記憶し、
前記仮想空間提供装置に、前記アバターの位置情報と、前記アバターの位置情報が含まれる仮想区域に対応するセッション情報と、を送信し、
前記仮想空間提供装置から、前記セッション情報により特定されるセッションに接続中の各ユーザ端末の利用者のアバターの位置情報を取得し、当該位置情報を元に、前記セッションに接続中の各ユーザ端末のアバターを前記仮想空間内に表示する、
ユーザ端末。
【請求項12】
仮想空間を提供する仮想空間提供装置と通信可能に接続されるコンピュータであるユーザ端末に、
前記仮想空間に表示させる前記ユーザ端末の利用者のアバターの位置情報を記憶する機能と、
前記仮想空間を複数に分割してなる仮想区域毎に、各仮想区域の範囲を示す範囲情報と、各仮想区域に割り当てられるセッションを示すセッション情報と、を対応付けて記憶する機能と、
前記仮想空間提供装置に、前記アバターの位置情報と、前記アバターの位置情報が含まれる仮想区域に対応するセッション情報と、を送信する機能と、
前記仮想空間提供装置から、前記セッション情報により特定されるセッションに接続中の各ユーザ端末の利用者のアバターの位置情報を取得し、当該位置情報を元に、前記セッションに接続中の各ユーザ端末のアバターを前記仮想空間内に表示する機能と、
を実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラムに関する。
【背景技術】
【0002】
近年、オンラインゲームやオンライン会議に代表されるような分野で、インターネットを通じて接続してきた利用者に対して仮想空間を提供するサービスが普及しつつある。
【0003】
仮想空間には利用者を模したアバターと呼ばれるデジタルキャラクターが表示され、利用者は仮想空間内でアバターを自由に移動させ、他の利用者とコミュニケーションを図ったり買い物をしたりすることができる。
【0004】
そしてこのような仮想空間を利用者に提供するための技術として、例えば特許文献1のような技術が開発されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2022-141401号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、利用者同士のコミュニケーションのような仮想空間上で発生するイベントは、利用者数の増加及び仮想空間の拡大に伴って爆発的に増加する。
【0007】
このため、これらのイベントをリアルタイムに処理するためには利用者数の制限が必要であり、仮想空間を提供するサーバにおいて、一つのセッション(もしくはルーム)への同時接続数に上限が設けられている。この上限は、一つの仮想空間に同時に存在できるアバター数の上限となる。
【0008】
そのため、このような制約を克服して、より多くの利用者に仮想空間を利用可能とするための技術が求められている。
【0009】
本発明はこのような課題を鑑みてなされたものであり、より多くの利用者に仮想空間を利用可能とするための仮想空間提供システム、ユーザ端末、ユーザ端末の制御方法、及びプログラムを提供する。
【課題を解決するための手段】
【0010】
本発明の一実施形態に係る仮想空間提供システムは、仮想空間を提供する仮想空間提供装置と、前記仮想空間提供装置と通信可能に接続されるユーザ端末と、を有して構成される仮想空間提供システムであって、前記ユーザ端末は、前記仮想空間に表示させる前記ユーザ端末の利用者のアバターの位置情報を記憶するアバター位置情報記憶部と、前記仮想空間を複数に分割してなる仮想区域毎に、各仮想区域の範囲を示す範囲情報と、各仮想区域に割り当てられるセッションを示すセッション情報と、を対応付けて記憶するセッション情報記憶部と、前記仮想空間提供装置に、前記アバターの位置情報と、前記アバターの位置情報が含まれる仮想区域に対応するセッション情報と、を送信するセッション情報送信部と、前記仮想空間提供装置から、前記セッション情報により特定されるセッションに接続中の各ユーザ端末の利用者のアバターの位置情報を取得し、当該位置情報を元に、前記セッションに接続中の各ユーザ端末のアバターを前記仮想空間内に表示するアバター表示部と、を備え、前記仮想空間提供装置は、前記セッション情報を送信してきたユーザ端末を、前記セッション情報により特定されるセッションに接続し、当該ユーザ端末に対して、前記セッションに接続中の各ユーザ端末の利用者のアバターの位置情報を送信するアバター情報送信部と、を備える。
【0011】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄の記載、及び図面の記載等により明らかにされる。
【発明の効果】
【0012】
より多くの利用者が仮想空間を利用可能となる。
【図面の簡単な説明】
【0013】
図1】仮想空間提供システムの全体構成例を示す図である。
図2】仮想空間を説明するための図である。
図3】ユーザ端末のハードウェア構成を示す図である。
図4】ユーザ端末の記憶装置を示す図である。
図5】ユーザ管理テーブルを示す図である。
図6】仮想空間管理テーブルを示す図である。
図7】仮想区域を説明するための図である。
図8】仮想空間提供装置のハードウェア構成を示す図である。
図9】仮想空間提供装置の記憶装置を示す図である。
図10】アバター管理テーブルを示す図である。
図11】仮想空間提供システム、仮想空間提供装置、ユーザ端末の機能構成を示す図である。
図12】仮想空間提供システム、仮想空間提供装置、ユーザ端末の制御の流れを説明するためのフローチャートである。
図13】仮想空間提供システム、仮想空間提供装置、ユーザ端末の制御の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
本明細書および添付図面の記載により、少なくとも以下の事項が明らかとなる。以下、本発明を実施形態に即して添付図面を参照しつつ説明する。
【0015】
<第1実施形態>
==概要==
【0016】
図1に、本実施形態に係る仮想空間提供システム1000の全体構成例を示す。仮想空間提供システム1000は、一つ以上のユーザ端末100と、一つ以上の仮想空間提供装置200と、がネットワーク500を介して通信可能に接続されて構成される。一例として、図1には2台のユーザ端末100と1台の仮想空間提供装置200が記載されている。
【0017】
ネットワーク500はインターネットやLAN(Local Area Network)、電話網等の各種の情報通信網である。
【0018】
ユーザ端末100は、利用者によって操作される携帯端末やスマートフォン、パソコン等のコンピュータであり、後述する仮想空間900に利用者が自己のアバターを表示させる際に用いられる。なお、アバターは、利用者を模したデジタルキャラクターであるため、以下の説明において便宜上、アバターがあたかも利用者であるかのように記載する場合や、逆に、利用者があたかもアバターであるかのような記載をする場合がある。
【0019】
仮想空間提供装置200は、ユーザ端末100に対して仮想空間900を提供するコンピュータである。仮想空間提供装置200は、セッションを通じてユーザ端末100に仮想空間900を提供する。つまり、仮想空間提供装置200は、セッションに接続しているユーザ端末100に対して仮想空間900を提供する。そして、同一のセッションに複数のユーザ端末100が接続している場合には、これらのユーザ端末100に、同一のセッションに接続している各ユーザ端末100の利用者のアバターが表示される。
【0020】
ユーザ端末100に提供される仮想空間900の一例を図2に示す。仮想空間900は、例えば学会や研究集会のような催しがオンラインで行われる場合の会場としてユーザ端末100に提供される。
【0021】
図2(A)は、仮想空間900の全体を示す。上述した様に、利用者は、ユーザ端末100をセッションに接続することで仮想空間900を利用可能となるが、利用者はアバターを通じて仮想空間900上で他の利用者と自由にコミュニケーションを図ることから、同一のセッションに接続するユーザ端末100の数が増えると、仮想空間提供装置200の処理負荷が爆発的に増加する。このため、セッションの同時接続数には所定の上限が設定されている。
【0022】
そこで本実施形態では、図2(B)に示すように、仮想空間900を複数の仮想区域910に分割し、各仮想区域910にそれぞれセッションを割り当てる。そして、ユーザ端末100がいずれかのセッションに接続することにより、利用者はそのセッションに対応する仮想区域910を利用する。
【0023】
図2(C)には、ユーザ端末100が、4つの仮想区域910のうちの左から2番目の仮想区域910に割り当てられたセッションに接続することで、この仮想区域910にこの利用者のアバターA235が表示されている様子が示されている。またユーザ端末100には、この仮想区域910にいる他のアバターも表示されており、利用者はアバターA235を通じて同一の仮想区域910内にいる他の利用者と自由にコミュニケーションを図ることができる。また図2(B)に示すように、他の仮想区域910も同様に、それぞれの仮想区域910に割り当てられたセッションに接続しているユーザ端末100に対して仮想区域910が提供される。
【0024】
このような態様によって、一つの仮想空間900をより多くの利用者に利用させることが可能になる。
【0025】
また図2(D)に示すように、この利用者が、自己のアバターA235を隣接する仮想区域910に移動させた場合は、この利用者のユーザ端末100は、新たな仮想区域910に割り当てられているセッションに接続する。このため利用者は、新たな仮想区域910を利用している他の利用者とアバターA235を通じてコミュニケーションを図ることができるようになる。このようにして、利用者は、自己のアバターA235を仮想区域910の境界を越えて他の仮想区域910に自由に移動させることで、仮想空間900の全体を利用することができる。ただし、アバターA235を他の仮想区域910に移動させると、元の仮想区域910に割り当てられているセッションが切断され、この利用者のユーザ端末100には、元の仮想区域910にいるアバターが表示されなくなり、元の仮想区域910にいる他の利用者とコミュニケーションを図ることはできなくなる。
【0026】
また詳細は後述するが、ユーザ端末100は、同時に複数のセッションに接続することもできる。ユーザ端末100がアバターA235の現在位置を含む仮想区域910と、その両隣の仮想区域910に割り当てられている合計3つのセッションに接続する様子を図2(E)に示す。
【0027】
図2(E)には、左から2番目の仮想区域910にアバターA235が表示されている。ユーザ端末100は、これら3つの仮想区域910内にいるアバターに関する情報(位置情報等)を取得するので、これら3つの仮想区域910内のアバターの様子を表示することができるようになる。このような態様により、利用者は、自己のアバターA235がいる仮想区域910内の様子だけでなく、この仮想区域910に隣接する仮想区域910の様子も閲覧することが可能となる。このため、利用者に対してより臨場感のある仮想空間900を提供することが可能となる。
【0028】
そして図2(F)に示すように、このアバターA235が、隣の仮想区域910に移動した場合には、ユーザ端末100は、セッションの接続先を変更する。具体的には、ユーザ端末100は、アバターA235の新たな現在位置が含まれる左から3番目の仮想区域910に隣接する左から4番目の仮想区域910に割り当てられているセッションに新たに接続する。またユーザ端末100は、左から3番目の仮想区域910に隣接しなくなった左から1番目の仮想区域910に割り当てられているセッションを切断する。このようにして、アバターA235が隣の仮想区域910に移動しても、常にアバターA235の現在位置を中心としたその周囲の仮想区域910の様子をユーザ端末100に表示することが可能となる。これにより、利用者が隣の仮想区域910に移動する際に利用者に違和感を与えることなくアバターの表示を切り替えることが可能となる。
【0029】
また図2(D)に示したように、ユーザ端末100が一つのセッションにのみ接続する場合には、アバターA235が隣の仮想区域910に移動した際に、セッションの接続先が変更されるタイミングで、ユーザ端末100の画面から、元の仮想区域910にいるアバターが消えると共に、新たな仮想区域910にいるアバターが現れることになるため、利用者に違和感を与える可能性があるが、図2(F)に示したように、ユーザ端末100が隣接する複数の仮想区域910に割り当てられている複数のセッションに接続するようにすることで、そのような違和感が大きく軽減され、利用者による仮想空間900への没入感を失わないようにすることが可能になる。
【0030】
以下、詳細に説明する。
【0031】
==ユーザ端末==
まずユーザ端末100について説明する。
【0032】
ユーザ端末100のハードウェア構成を図3に示す。ユーザ端末100は、CPU(Central Processing Unit)110、メモリ120、通信装置130、記憶装置140、入力装置150、及び出力装置160を備えて構成されるコンピュータである。
【0033】
記憶装置140は、CPU110によって実行されるユーザ端末制御プログラム710等の各種のプログラムやデータを格納する。
【0034】
記憶装置140に記憶されているユーザ端末制御プログラム710や各種のデータがメモリ120に読み出されてCPU110によって実行あるいは処理されることにより、ユーザ端末100の各種機能が実現される。
【0035】
ここで、記憶装置140は例えばハードディスクやSSD(Solid State Drive)、フラッシュメモリ等の不揮発性の記憶装置である。
【0036】
記憶装置140には、図4に示すようにユーザ端末制御プログラム710、ユーザ管理テーブル611、及び仮想空間管理テーブル612が記憶されている。
【0037】
図3に戻って、通信装置130は、ネットワーク500を介して、仮想空間提供装置200や、不図示の他のコンピュータと各種データやユーザ端末制御プログラム710の授受を行う。例えば通信装置130は、仮想空間提供装置200との間で、セッション情報の送信やアバターの位置情報の送信などを行う。また他のコンピュータに上述したユーザ端末制御プログラム710やデータを格納しておき、ユーザ端末100がこのコンピュータから通信装置130を用いてユーザ端末制御プログラム710やデータをダウンロードするようにすることができる。
【0038】
入力装置150は、利用者によるコマンドやデータの入力を受け付ける各種ボタンやスイッチ、マウス、キーボード、マイクなどの装置であり、入力ユーザインタフェースとして機能する。
【0039】
また出力装置160は、例えばディスプレイなどの表示装置、スピーカなどの装置であり、出力ユーザインタフェースとして機能する。
【0040】
<ユーザ管理テーブル>
記憶装置140に記憶されるユーザ管理テーブル611を図5に示す。ユーザ管理テーブル611は、ユーザ端末100を利用している利用者のアバターに関する情報を記憶したテーブルである。ユーザ管理テーブル611は、ユーザID欄と、アバターID欄と、アバター現在位置欄と、を備える。
【0041】
ユーザID欄には、利用者を一意に識別するための識別情報が記憶される。
【0042】
アバターID欄には、利用者を模したアバターを一意に識別するための識別情報が記憶される。本実施形態では、利用者はアバターを一つ持つが、複数のアバターを持つこともできる。この場合利用者は、いずれかのアバターを選択して仮想空間900を利用する。
【0043】
アバター現在位置欄には、仮想空間900におけるアバターの現在位置が記憶される。利用者が仮想空間900内でアバターを移動させた場合には、移動量に応じてアバターの現在位置の値が随時更新される。本実施形態では、アバター現在位置は仮想空間900に設定された2次元座標の座標値(X、Y)として表されるが、仮想空間900に3次元座標が設定されている場合は、3次元座標値(X、Y、Z)で表される。
【0044】
図7に、仮想空間900に2次元座標が設定されている様子を示す。上述した様に本実施形態では仮想空間900は複数の仮想区域910(図7に示す例ではV1~V5)に分割されている。そして、仮想空間900の全体の範囲は、座標値で(0、0)~(499、199)と定義されている。そして仮想区域V1の範囲は、座標値で(0、0)~(99、199)であり、仮想区域V2の範囲は、座標値で(100、0)~(199、199)であり、仮想区域V3の範囲は、座標値で(200、0)~(299、199)であり、仮想区域V4の範囲は、座標値で(300、0)~(399、199)であり、仮想区域V5の範囲は、座標値で(400、0)~(499、199)と定義されている。
【0045】
なお図7に示す例では、仮想区域910が一列に並ぶように仮想空間900を分割しているが、仮想区域910が平面状に並ぶように仮想空間900を分割するようにしてもよい。また仮想空間900に3次元座標が設定されている場合には、仮想区域910が立体的に並ぶように仮想空間900を分割してもよい。
【0046】
なお詳細は後述するが、利用者が仮想空間900を利用する際には、これらのユーザIDやアバターID、アバター現在位置が、ユーザ端末100から仮想空間提供装置200に送信される。
【0047】
<仮想空間管理テーブル>
次に、仮想空間管理テーブル612を図6に示す。仮想空間管理テーブル612は、ユーザ端末100が仮想空間提供装置200のセッションに接続して仮想空間900を利用する際に必要となる、仮想空間900に関する様々な情報を記憶したテーブルである。
【0048】
仮想空間管理テーブル612は、仮想区域ID欄、範囲欄、セッションID欄、セッション接続情報欄、セッション接続状況欄を備える。
【0049】
仮想区域ID欄には、仮想空間900を複数に分割することにより構成される仮想区域910の識別情報が記憶される。
【0050】
範囲欄には、各仮想区域910の範囲を示す範囲情報が記憶される。上述した様に、本実施形態では仮想空間900に設定された2次元座標の座標値(X、Y)として各仮想区域910の範囲が表される。ユーザ端末100は、ユーザ管理テーブル611に記載されているアバター現在位置欄の値と、仮想空間管理テーブル612の範囲欄の値と、を比較することで、アバターがどの仮想区域910にいるのかを特定することができる。
【0051】
セッションID欄には、各仮想区域910に割り当てられているセッションの識別情報が記憶される。
【0052】
セッション接続情報欄には、各セッションに接続するためのIPアドレスやポート番号等の接続先情報が記憶される。この接続先情報は、上記IPアドレスやポート番号と関連付けられたエイリアスやセッション名などでもよい。このようにしておくと、例えば運用中に仮想空間提供装置200に不具合が生じ、新たな仮想空間提供装置200に切り替える必要が生じたような場合であっても、エイリアスやセッション名はそのままに変えずに、紐づけるIPアドレスやポート番号を新たな仮想空間提供装置200のものに変更することで、即時に復旧することが可能になる。
【0053】
ユーザ端末100がセッションに接続する際には、上記のセッションID及び接続先情報を含むセッション情報を仮想空間提供装置200に送信する。
【0054】
セッション接続状況欄には、ユーザ端末100が接続しているセッションを表す情報が記録される。図6に示す例では、ユーザ端末100は、S2、S3、S4で特定されるセッションに接続中であることが記録されている。
【0055】
==仮想空間提供装置==
続いて仮想空間提供装置200について説明する。
【0056】
仮想空間提供装置200のハードウェア構成を図8に示す。仮想空間提供装置200は、CPU210、メモリ220、通信装置230、及び記憶装置240を備えて構成されるコンピュータである。
【0057】
記憶装置240は、CPU210によって実行される仮想空間提供装置制御プログラム720等の各種のプログラムやデータを格納する。
【0058】
記憶装置240に記憶されている仮想空間提供装置制御プログラム720や各種のデータがメモリ220に読み出されてCPU210によって実行あるいは処理されることにより、仮想空間提供装置200の各種機能が実現される。
【0059】
ここで、記憶装置240は例えばハードディスクやSSD、フラッシュメモリ等の不揮発性の記憶装置である。
【0060】
記憶装置240には、図9に示すように仮想空間提供装置制御プログラム720、及びアバター管理テーブル621が記憶されている。
【0061】
通信装置230は、ネットワーク500を介して、ユーザ端末100や、他の仮想空間提供装置200、不図示の他のコンピュータと各種データや仮想空間提供装置制御プログラム720等の授受を行う。例えば通信装置230は、ユーザ端末100に対して、そのユーザ端末100が接続しているセッションに対応する仮想区域910内のアバターに関する情報を送信する。また不図示のコンピュータに上述した仮想空間提供装置制御プログラム720やデータを格納しておき、仮想空間提供装置200がこのコンピュータから通信装置230を用いて仮想空間提供装置制御プログラム720やデータをダウンロードするようにすることができる。
【0062】
<アバター管理テーブル>
記憶装置240に記憶されるアバター管理テーブル621を図10に示す。アバター管理テーブル621は、各仮想区域910にいるアバターに関する情報を記憶するテーブルである。アバター管理テーブル621は、セッションID欄と、アバターID欄と、アバター現在位置欄と、接続先ユーザ端末欄と、を備える。
【0063】
セッションID欄には、各仮想区域910に割り当てられているセッションの識別情報が記憶される。仮想空間提供装置200は、ユーザ端末100からセッション情報が送信されてきた際に、このセッション情報に含まれるセッションIDによりセッションを特定する。仮想空間提供装置200は、このセッションIDがセッション接続要求(後述)に含まれていた場合は、該当するセッションにユーザ端末100を接続し、このセッションIDがセッション停止要求(後述)に含まれていた場合は、該当するセッションからユーザ端末100を切断する。
【0064】
アバターID欄には、各仮想区域910にいる各アバターの識別情報が記録される。
【0065】
アバター現在位置欄には、各アバターの現在位置が記憶される。各アバターの現在位置は、セッションに接続中のユーザ端末100から随時送信されてくる位置情報であり、アバターが仮想空間900内を移動することで更新される。
【0066】
接続先ユーザ端末欄には、セッションに接続中の各ユーザ端末100のIPアドレス等の接続先情報が記録される。
【0067】
仮想空間提供装置200は、セッションに接続中のユーザ端末100に対して、同一のセッションに接続中の各ユーザ端末100の利用者のアバターの位置情報に関する情報を送信する。このようにして各ユーザ端末100は、接続中のセッションに対応する仮想区域910内のアバターの位置情報に関する情報を取得し、これらの位置情報を元に、この仮想区域910内にいるアバターの様子を出力装置160に表示することができる。
【0068】
<仮想空間提供システムの機能構成>
次に、仮想空間提供システム1000の機能構成について、図11に示す機能構成図を参照しながら説明する。
【0069】
上述したように、仮想空間提供システム1000は、ユーザ端末100と、仮想空間提供装置200と、がネットワーク500を介して通信可能に接続されて構成されており、これらのユーザ端末100及び仮想空間提供装置200において、ユーザ端末制御プログラム710、仮想空間提供装置制御プログラム720、及び各種のデータが、CPU110及びCPU210によって実行あるいは処理されることにより、仮想空間提供システム1000としての各種機能が実現される。
【0070】
具体的には、仮想空間提供システム1000は、ユーザ端末100において、アバター位置情報記憶部101、セッション情報記憶部102、セッション情報送信部103、及びアバター表示部104の各機能を有し、仮想空間提供装置200において、アバター情報送信部202の各機能を有する。
【0071】
アバター位置情報記憶部101は、仮想空間900に表示させるユーザ端末100の利用者のアバターの位置情報を記憶する。アバター位置情報記憶部101は、本実施形態では上述したユーザ管理テーブル611として具現化されている。
【0072】
アバターの現在位置は、利用者が仮想空間900内でアバターを移動させる都度更新される。なお、仮想空間900の利用を開始する際のアバターの位置は、前回、仮想空間900の利用を終了した時点のアバターの位置でもよいし、事前に設定された所定位置でもよいし、利用開始時に利用者が任意に指定した位置でもよい。
【0073】
セッション情報記憶部102は、仮想空間900を複数に分割してなる仮想区域910毎に、各仮想区域910の範囲を示す範囲情報と、各仮想区域910に割り当てられるセッションを特定するセッション情報と、を対応付けて記憶する。セッション情報記憶部102は、本実施形態では仮想空間管理テーブル612として具現化されている。なお仮想空間管理テーブル612におけるセッションID及びセッション接続情報がセッション情報に対応するが、セッションIDのみでもよい。
【0074】
セッション情報送信部103は、仮想空間提供装置200に、アバターの位置情報と、この位置情報を含む仮想区域910のセッション情報と、を送信する。
【0075】
セッション情報送信部103は、アバター位置情報記憶部101を参照することで、アバターの現在位置を仮想空間提供装置200に送信することができる。
【0076】
またセッション情報送信部103は、アバター位置情報記憶部101に記憶されているアバターの現在位置と、セッション情報記憶部102に記憶されている各仮想区域910の範囲情報と、を比べることで、アバターが現在いる仮想区域910を特定することができる。そしてセッション情報送信部103は、セッション情報記憶部102を参照することで、その仮想区域910に隣接する仮想区域910を特定することもできる。
【0077】
このようにしてセッション情報送信部103は、目的とする仮想区域910を特定し、この仮想区域910に割り当てられているセッションを特定するセッション情報を含むセッション接続要求やセッション停止要求を仮想空間提供装置200に送信する。
【0078】
このような態様により、ユーザ端末100は、アバターの位置情報に応じた適切な仮想区域910に割り当てられているセッションに接続することや、このセッションを切断することが可能となる。
【0079】
アバター表示部104は、仮想空間提供装置200に送信した上記セッション接続要求のセッション情報によって特定されるセッションに接続中の各ユーザ端末100の利用者のアバターの位置情報を仮想空間提供装置200から取得し、当該位置情報を元に、このセッションに接続中の各ユーザ端末100のアバターを仮想空間900内に表示する。
【0080】
このような態様により、ユーザ端末100の利用者は、同じ仮想区域910を現在利用中の他の利用者とアバターを通じて自由にコミュニケーションを図ることができる。
【0081】
アバター情報送信部202は、上記セッション接続要求でセッション情報を送信してきたユーザ端末100を、このセッション情報により特定されるセッションに接続し、当該ユーザ端末100に対して、このセッションに接続中の各ユーザ端末100の利用者のアバターの位置情報を送信する。
【0082】
仮想空間提供システム1000が上記のような各機能を備えることにより、仮想空間900の提供を複数のセッションを用いて行うことが可能になるので、より多くの利用者が同時に仮想空間900を利用することが可能となる。またセッションの数を増やすことにより、より多くの利用者に仮想空間900を提供することや、仮想空間900の利用状況に応じた規模の拡大も容易となる。このような態様により、例えばオンラインで開催される会議や学会、研究集会のように、多数の参加者が仮想空間900を同時に利用するような場合であっても、参加人数を制限するような不便を回避することが可能となる。
【0083】
なお、セッション情報送信部103は、アバターの位置情報が含まれる仮想区域910のセッション情報に加え、この仮想区域910に隣接する仮想区域910のセッション情報をセッション接続要求に含めて、仮想空間提供装置200に送信するようにしてもよい。つまりアバターの位置情報を含む仮想区域910のセッションだけでなく、この仮想区域910に隣接する仮想区域910のセッションにも接続するようにしてもよい。
【0084】
このような態様によれば、図2(E)や図2(F)に示したように、利用者のアバターが現在いる仮想区域910だけでなく、この仮想区域910に隣接する仮想区域910内にいるアバターの様子もユーザ端末100に表示することが可能となり、利用者に対してより臨場感のある仮想空間900を提供することが可能となる。
【0085】
なお、アバターの位置情報が含まれる仮想区域910に隣接する仮想区域910は、アバターの位置情報が含まれる仮想区域910に隣接するすべての仮想区域910とするのが好ましいが、例えばユーザ端末100の画面に表示されない仮想区域910など、アバターを表示する必要性の低い仮想区域910を含めないようにしてもよい。
【0086】
またセッション情報送信部103は、アバターが第1仮想区域910(例えば図7に示すV2)から、この第1仮想区域910に隣接する第2仮想区域910(例えばV3)に移動する際に、第1仮想区域910(V2)には隣接しないが第2仮想区域910(V3)には隣接する仮想区域910(例えばV4)のセッション情報(S4)を含むセッション接続要求と、第1仮想区域910(V2)には隣接するが第2仮想区域910(V3)には隣接しない仮想区域910(例えばV1)のセッション情報(S1)を含むセッション停止要求と、を仮想空間提供装置に200送信するとよい。
【0087】
このとき仮想空間提供装置200のアバター情報送信部202は、このセッション接続要求に含まれるセッション情報を元に、S4で特定されるセッションに接続中の各ユーザ端末100の利用者のアバターの位置情報を送信すると共に、セッション停止要求に含まれるセッション情報を元に、S1で特定されるセッションに接続中の各ユーザ端末100の利用者のアバターの位置情報の送信を中止する。
【0088】
このような態様により、利用者のアバターが仮想区域910の境界を越えて隣の仮想区域910に移動した場合であっても、移動先の仮想区域910と、その周囲に隣接する仮想区域910におけるアバターの様子をユーザ端末100に表示することが可能となるので、利用者は、隣の仮想区域910にアバターを移動しても、違和感を感じることなく仮想空間900の利用を続けることができる。
【0089】
また、仮想空間提供装置200の上記アバター情報送信部202は、ユーザ端末100が送信してきたセッション接続要求内のセッション情報により特定されるセッションに接続中のユーザ端末100の合計が所定値を超えない範囲で、このセッション情報を送信してきたユーザ端末100をセッションに接続すると良い。仮想空間提供装置200は、アバター管理テーブル621を参照することにより、セッションに接続中のユーザ端末100の合計を求めることができる。
【0090】
このような態様により、仮想空間提供装置200の過負荷を防止でき、仮想空間900提供サービスに支障が生じないようにすることが可能となる。
【0091】
==処理の流れ==
次に、本実施形態に係る仮想空間提供システム1000による処理の流れを、図12図13に示すフローチャートを参照しながら説明する。
【0092】
なお、ここでは一例として、ユーザ端末100が、アバターの現在位置を含む仮想区域910(V2とする)に割り当てられているセッション(S2とする)に加え、この仮想区域910(V2)に隣接する仮想区域910(V1、V3とする)に割り当てられているセッション(S1、S3とする)にも接続するように、セッション接続要求を送信する場合の処理の流れを説明する。
【0093】
まず図12に示すように、ユーザ端末100は、ユーザ管理テーブル611に記憶されているアバターの現在位置と、仮想空間管理テーブル612に記憶されている各仮想区域910の範囲情報と、を比較することで、アバターが現在いる仮想区域910(V2)を特定し、その仮想区域910(V2)に割り当てられているセッション(ここではS2)を特定するセッション情報と、仮想区域910(V2)に隣接する仮想区域910(V1、V3)に割り当てられているセッション(S1、S3)を特定するセッション情報と、を含むセッション接続要求を仮想空間提供装置200に送信する(S1000~S1020)。
【0094】
そうすると、仮想空間提供装置200は、ユーザ端末100との間でセッション(S1~S3)を接続するための処理を行う(S1030、S1080、S1130)。
【0095】
そして仮想空間提供装置200は、セッション接続処理が完了した順に、ユーザ端末100に対してセッション接続完了通知を送信する(S1040、S1090、S1140)。
【0096】
ユーザ端末100は、セッション接続完了通知を受信すると、ユーザ管理テーブル611に記憶されているユーザIDやアバターID、位置情報等のアバター情報を仮想空間提供装置200に送信する(S1050、S1100、S1150)。
【0097】
そして仮想空間提供装置200は、アバター管理テーブル621に、ユーザ端末100から送信されてきたアバター情報を記録する(S1060、S1110、S1160)。
【0098】
続いて仮想空間提供装置200は、アバター管理テーブル621を参照し、ユーザ端末100に対して、各セッション(S1、S2、S3)に接続中の各ユーザ端末100の利用者のアバターの位置情報を送信する(S1070、S1120、S1170)。
【0099】
そしてユーザ端末100は、各仮想区域910(V1、V2、V3)内のアバターの様子を出力装置160に表示する(S1180)。
【0100】
ユーザ端末100は、セッションに接続している間、最新のアバターの位置情報を仮想空間提供装置200に随時送信する。また同様に仮想空間提供装置200は、セッションに接続中の各ユーザ端末100に対して、当該セッションに接続中の各ユーザ端末100のアバターの位置情報を随時送信する。
【0101】
この状態で、仮想空間900内のアバターが仮想区域910(V2)の境界を越えて隣の仮想区域910(ここではV3とする)に移動した場合の処理の流れを図13に示す。
【0102】
上述した様に、アバターが仮想区域910(V2)にいる間は、ユーザ端末100は、仮想空間提供装置200のセッションS1、セッションS2、セッションS3に接続している(S2000、S2010、S2030)。そしてユーザ端末100には、仮想区域910(V1、V2、V3)内にいるアバターの様子が表示されている(S2030)。
【0103】
この状態でアバターが隣の仮想区域910(V3)に移動すると、ユーザ端末100は、元の仮想区域910(V2)には隣接しないが、新たな仮想区域910(V3)には隣接する仮想区域910(V4)に割り当てられているセッションS4のセッション情報を含むセッション接続要求を仮想空間提供装置200に送信すると共に(S2050)、元の仮想区域910(V2)には隣接するが、新たな仮想区域910(V3)には隣接しない仮想区域910(V1)に割り当てられているセッションS1のセッション情報を含むセッション停止要求を仮想空間提供装置200に送信する(S2040)。
【0104】
そして、仮想空間提供装置200は、セッション停止要求を送信してきたユーザ端末100に対してセッションS1への接続を停止する(S2040)。具体的には仮想空間提供装置200は、アバター管理テーブル621のセッションS1の中から、当該ユーザ端末100に関する情報を削除する。
【0105】
また仮想空間提供装置200は、セッション接続要求を送信してきたユーザ端末100に対してセッションS4への接続を行う(S2050)。具体的には仮想空間提供装置200は、アバター管理テーブル621のセッションS4の中に、当該ユーザ端末100から送信されてくる情報を追加する。
【0106】
これにより、ユーザ端末100には、仮想区域910(V2、V3、V4)内にいるアバターの様子が表示されることになる(S2060)。
【0107】
以下同様であるが、アバターがさらに隣の仮想区域910(V4)に移動すると、ユーザ端末100は、元の仮想区域910(V3)には隣接しないが、新たな仮想区域910(V4)には隣接する仮想区域910(V5)に割り当てられているセッションS5のセッション情報を含むセッション接続要求を仮想空間提供装置200に送信すると共に(S2080)、元の仮想区域910(V3)には隣接するが、新たな仮想区域910(V4)には隣接しない仮想区域910(V2)に割り当てられているセッションS2のセッション情報を含むセッション停止要求を仮想空間提供装置200に送信する(S2070)。
【0108】
そして、仮想空間提供装置200は、セッション停止要求を送信してきたユーザ端末100に対してセッションS2への接続を停止する(S2070)。具体的には仮想空間提供装置200は、アバター管理テーブル621のセッションS2の中から、当該ユーザ端末100に関する情報を削除する。
【0109】
また仮想空間提供装置200は、セッション接続要求を送信してきたユーザ端末100に対してセッションS5への接続を行う(S2080)。具体的には仮想空間提供装置200は、アバター管理テーブル621のセッションS5の中に、当該ユーザ端末100から送信されてくる情報を追加する。
【0110】
これにより、ユーザ端末100には、仮想区域910(V3、V4、V5)内にいるアバターの様子が表示されることになる(S2090)。
【0111】
このように、本実施形態によれば、一つの仮想空間900を複数の仮想区域910に分割し、各仮想区域910にそれぞれセッションを割り当てることで仮想空間900の提供を分担させるようにしているので、仮想空間900を数多くのユーザ端末100に提供する際に問題となるセッション同時接続数の制約を回避でき、より多くの利用者に対して仮想空間900を提供することが可能となる。
【0112】
また図2(E)や図2(F)に示したように、アバターが位置する仮想区域910だけでなく、この仮想区域910に隣接する仮想区域910のセッションにも接続することで、ユーザ端末100は、より広範囲のアバターの情報を取得可能になる。これにより、アバターが隣の仮想区域910に移動しても、その仮想区域910のセッションには既に接続されているため、突然自分の周辺にアバターが現れたりする不自然を感じにくくすることができる。
【0113】
なお、各仮想区域910のサイズは、ユーザ端末100の画面の表示範囲や、セッションへの接続時間、仮想空間提供装置200の処理能力を考慮して決定することができる。
【0114】
また、仮にアバターが隣の仮想区域910に移動しようとした際に、移動先の仮想区域910に割り当てられているセッションがすでに同時接続数の上限に達している場合は、その仮想空間提供装置200のセッションに接続できないが、その場合ユーザ端末100は、例えば、所定時間毎に繰り返しセッションへの接続を試みて、セッションから離脱する他のユーザ端末100があった場合に速やかにセッションへ接続するようにしたり、あるいは、特定の仮想区域910にアバターが密集しにくい様な仮想空間900のレイアウトの最適化を図ることで対応することもできる。
【0115】
なお上述した実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得るとともに、本発明にはその等価物も含まれる。
【符号の説明】
【0116】
100 ユーザ端末
101 アバター位置情報記憶部
102 セッション情報記憶部
103 セッション情報送信部
104 アバター表示部
110 CPU
120 メモリ
130 通信装置
140 記憶装置
150 入力装置
160 出力装置
170 記録媒体読取装置
200 仮想空間提供装置
202 アバター情報送信部
210 CPU
220 メモリ
230 通信装置
240 記憶装置
250 入力装置
260 出力装置
270 記録媒体読取装置
500 ネットワーク
611 ユーザ管理テーブル
612 仮想空間管理テーブル
621 アバター管理テーブル
710 ユーザ端末制御プログラム
720 仮想空間提供装置制御プログラム
900 仮想空間
910 仮想区域
1000 仮想空間提供システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13