(57)【要約】【課題】仮想世界の一致性を損なうことなく且つ端末側の負荷が小さい仮想世界構築システムを提供する。【解決手段】ユーザ端末に実装されたクライアントアプリケーション１０と、サーバに実装された複数のサーバアプリケーション２０と、ユーザ端末とサーバとの間の通信経路上に操作情報及び映像情報を中継するプロキシ３０を配置する。プロキシ３０は、操作情報を複製して複数のサーバに送信するモーション複製部３１と、複数のサーバに対してレンダリングのタイミングに関するタイミング情報を送信するとともに少なくとも１つのサーバから受信した映像情報をユーザ端末に送信する映像統合・レンダリング制御部３２とを備える。サーバのレンダリング処理部・映像処理部２３はプロキシ３０から受信したタイミング情報に基づきレンダリング処理及び映像情報の送信処理を行う。【選択図】図７
2020021394.tif 000002
【特許請求の範囲】
【請求項１】
仮想世界における操作情報を送信する操作情報送信手段と仮想世界をレンダリングした映像情報を表示する表示手段とを備えたユーザ端末と、
ユーザ端末から受信した操作情報に基づき仮想世界の演算処理を行う演算部と演算部により演算された仮想世界をレンダリングして映像情報を生成して該映像情報をユーザ端末に送信するレンダリング処理手段とを備えた複数のサーバと、
ユーザ端末とサーバとの間の通信経路上に配置され操作情報及び映像情報を中継するプロキシとを備え、
前記プロキシは、ユーザ端末から受信した操作情報を複製して複数のサーバに送信する操作情報複製手段と、複数のサーバに対してレンダリングのタイミングに関するタイミング情報を送信するとともに少なくとも１つのサーバから受信した映像情報をユーザ端末に送信する映像統合手段とを備え、
前記サーバのレンダリング処理手段はプロキシから受信したタイミング情報に基づきレンダリング処理及び映像情報の送信処理を行う
ことを特徴とする仮想世界構築システム。
【請求項２】
前記プロキシの映像統合手段は、サーバから受信した映像情報に基づきレンダリングのタイミングを調整し、調整したタイミング情報をサーバに送信する
ことを特徴とする請求項１記載の仮想世界構築システム。
【請求項３】
前記プロキシの映像統合手段は、複数のサーバから映像情報を交互に受信するようタイミング情報を各サーバに送信し、複数のサーバから受信した映像情報を順次ユーザ端末に送信する
ことを特徴とする請求項１又は２記載の仮想世界構築システム。
【請求項４】
前記プロキシの映像統合手段は、複数のサーバから受信した映像情報のうち通信的に近いサーバから受信した映像情報をユーザ端末に送信する
ことを特徴とする請求項１又は２記載の仮想世界構築システム。
【請求項５】
前記プロキシの映像統合手段は、複数のサーバから受信した映像情報に基づきプロキシとサーバとの間の通信品質を評価し、評価の高いサーバから受信した映像情報をユーザ端末に送信する
ことを特徴とする請求項１又は２記載の仮想世界構築システム。
【請求項６】
前記プロキシの映像統合手段は、ユーザ端末に送信している映像情報の送信元のサーバから映像情報が受信できなくなると他のサーバから受信した映像情報をユーザ端末に送信する
ことを特徴とする請求項４又は５記載の仮想世界構築システム。
【請求項７】
仮想世界における操作情報を送信する操作情報送信手段と仮想世界をレンダリングした映像情報を表示する表示手段とを備えたユーザ端末と、ユーザ端末から受信した操作情報に基づき仮想世界の演算処理を行う演算部と演算部による演算された仮想世界をレンダリングして映像情報を生成して該映像情報をユーザ端末に送信するレンダリング処理手段とを備えた複数のサーバと、ユーザ端末とサーバとの間の通信経路上に配置され操作情報及び映像情報を中継するプロキシとを備えた仮想世界構築システムにおいて、
プロキシの操作情報複製手段が、ユーザ端末から受信した操作情報を複製して複数のサーバに送信するステップと、
プロキシの映像統合手段が、複数のサーバに対してレンダリングのタイミングに関するタイミング情報を送信するステップと、
サーバのレンダリング処理手段が、プロキシから受信したタイミング情報に基づきレンダリング処理及び映像情報の送信処理を行うステップと、
プロキシの映像統合手段が、少なくとも１つのサーバから受信した映像情報をユーザ端末に送信するステップとを備えた
ことを特徴とする仮想世界構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想世界構築システムに関する。
【背景技術】
【０００２】
従来、ネットワーク上のサーバに複数のユーザが参加可能な仮想世界を構築する仮想世界構築システムが知られている。例えばマルチプレイヤオンラインゲームは、仮想世界構築システムにより構築された仮想世界においてユーザが遊ぶゲームであり、ユーザは、仮想世界に存在するユーザの分身（アバター）やその他のオブジェクトを操作する。
【０００３】
この仮想世界構築システムでは、仮想世界を構築するオブジェクトのうち固定的なものに関するデータ（例えば地図データ、構造物データ、アバターの外観データ等）は予めユーザ端末に配布されている。ユーザ端末はアバターなど操作対象に対するユーザの操作情報をサーバに送信する。サーバは、仮想世界を一元的に管理するものであり、各ユーザ端末から受信した操作情報及び予め配布した固定的なデータ等に基づき、各ユーザ端末に対して仮想世界内におけるアバターの周囲の状態を演算し、当該アバターの周囲の世界における変動的なデータ（例えば他のアバターの位置情報や周囲のＮＰＣ（Non Player Character）の位置情報等）を送信する。各ユーザ端末は、自身のアバターの操作情報、予め配布された固定的なデータ、サーバから受信した変動的なデータ等に基づき、仮想世界に係る画像をレンダリングし、ユーザ端末の画面に表示させる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Gene Cheung, 他3名, "MULTI-STREAM SWITCHING FOR INTERACTIVE VIRTUAL REALITY VIDEO STREAMING", 2017年
【非特許文献１】Chen Gao, 他2名, "Concealing Jitter in Multi-Player Online Games through Predictive Behaviour Modeling", Proceedings of the 2016 IEEE 20th International Conference Computer Supported Cooperative Work in Design, 2016年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、近年ＶＲ／ＡＲ（Virtual Reality/Augmented Reality）の普及が本格化しており、仮想世界構築システムにおける端末としても導入されている。最近ではＨＭＤ（Head Mounted Display）自体にモバイル向けＳｏＣ（System on a Chip）を搭載したものや、ＨＭＤ型のゴーグルにスマートフォンを装着することで簡易にＶＲ体験ができるようになっているが、描写性能や体感品質は高価な最新のＧＰＵ（Graphics Processing Unit）を利用するハイエンドなＨＭＤ製品に劣る。そこで遠隔地のデータセンタ内のＧＰＵによりレンダリングした映像情報をスマートフォン等の軽量な端末に送ることで、簡易にハイエンドＶＲ体験を実現することが検討されている。
【０００６】
前述した従来の仮想世界構築システムでは、アプリケーション層における接続形態は、１つのサーバと複数のユーザ端末とが接続したスター型である（図１３（ａ）参照）。このため、従来の仮想世界システムにおいてサーバ側でレンダリングを行う場合、以下のような問題点がある。すなわち、ユーザ端末が地理的に分散している場合、サーバとユーザ端末が通信的に離れたプレイヤについて、動作に対して仮想世界が変化することが遅く、また映像が提示されるのも遅いという問題点がある。
【０００７】
一方、サーバにおいて仮想世界を一元的に管理するのではなく、各ユーザ端末でそれぞれ管理する分散型の仮想世界構築システムも考えられている。この分散型の仮想世界構築システムでは、アプリケーション層における接続形態は、各ユーザ端末間をピア・トゥ・ピアで接続したメッシュ型である（図１３（ｂ）参照）。各ユーザ端末は、アバターの操作情報等を各端末間で相互に交換し、各ユーザ端末において仮想世界を管理する。すなわち、仮想世界はユーザ端末の数だけ存在する。
【０００８】
しかし、メッシュ型接続形態の仮想世界構築システムでは、ユーザ端末同士が地理的に離れていると遅延等が生じたり、ユーザ端末間の通信の一部でデータの欠落等が生じたりすると、ユーザ端末毎に存在する仮想世界間で不一致が生じる。これを防止するために、各ユーザ端末において他のユーザの操作情報を推測した予測的動作を行うことが考えられるが、遅延や欠落の程度によっては、仮想世界の不一致を完全に排除することは困難であった。また、この仮想世界システムでは、各ユーザ端末においてレンダリング処理を行うので、前述のような計算能力の低い端末を用いることが困難であるという問題がある。
【０００９】
本願発明は、上記事情に鑑みてなされたものであり、仮想世界の一致性を損なうことなく且つ端末側の負荷が小さい仮想世界構築システム及び方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本願発明に係る仮想世界構築システムは、仮想世界における操作情報を送信する操作情報送信手段と仮想世界をレンダリングした映像情報を表示する表示手段とを備えたユーザ端末と、ユーザ端末から受信した操作情報に基づき仮想世界の演算処理を行う演算部と演算部により演算された仮想世界をレンダリングして映像情報を生成して該映像情報をユーザ端末に送信するレンダリング処理手段とを備えた複数のサーバと、ユーザ端末とサーバとの間の通信経路上に配置され操作情報及び映像情報を中継するプロキシとを備え、前記プロキシは、ユーザ端末から受信した操作情報を複製して複数のサーバに送信する操作情報複製手段と、複数のサーバに対してレンダリングのタイミングに関するタイミング情報を送信するとともに少なくとも１つのサーバから受信した映像情報をユーザ端末に送信する映像統合手段とを備え、前記サーバのレンダリング処理手段はプロキシから受信したタイミング情報に基づきレンダリング処理及び映像情報の送信処理を行うことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、仮想世界を映像化するレンダリング処理はユーザ端末ではなくサーバで行われるのでユーザ端末の負荷を小さくすることができる。また、本発明によれば、複数のサーバにおいて仮想世界が構築されるが、各サーバは同一の操作情報に基づき仮想世界の演算が行われ、また各サーバでのレンダリング処理はプロキシから送信したタイミング情報に基づき行われるので、仮想世界の一致性を高めることができる。
【００１２】
また、本発明によれば、複数のサーバにおいて仮想世界が構築され、ユーザ端末には通信的に近いサーバにおいてレンダリングされた映像情報を受け取ることができるので、体感品質を向上することができる。また、本発明によれば、複数のサーバにおいて仮想世界が構築され映像情報がレンダリングされるので、各サーバを連携させることにより高い可用性や高フレームレートを実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る仮想世界構築システムの概念図
【図２】本発明に係る仮想世界構築システムのアーキテクチャ
【図３】本発明の実施の形態に係る仮想世界構築システムの概念図
【図４】本発明の実施の形態に係る仮想世界構築システムの効果を説明する図
【図５】本発明の実施の形態に係る仮想世界構築システムの効果を説明する図
【図６】プロキシの配備例について説明する図
【図７】仮想世界構築システムの機能ブロック図
【図８】初期処理及び操作情報の送信処理のシーケンスチャート
【図９】インターリーブ処理のシーケンスチャート
【図１０】フェールセーフ処理のシーケンスチャート
【図１１】他の例に係るフェールセーフ処理のシーケンスチャート
【図１２】本発明と他の方式の比較表
【図１３】従来のアーキテクチャ
【発明を実施するための形態】
【００１４】
本発明に係る仮想世界構築システムの概念について図１及び図２を参照して説明する。図１は本発明の仮想世界構築システムの概念図、図２は本発明の仮想世界構築システムのアーキテクチャを説明する図である。なお、以降の説明では、複数の同種の装置・構成については共通の主参照符号を付すとともに、各装置・構成を個別に参照するために前記主参照符号の後に枝番を付した。また、複数の同種の装置・構成を総称する際には主参照符号のみを用いる。
【００１５】
本発明に係る仮想世界構築システムは、図１に示すように、異なる複数の物理マシンや仮想マシン上で「ほぼ」同一の状態遷移をする複数の仮想世界１に対し、各ユーザ２のアプリケーション（クライアントアプリケーション）からみると一つの仮想世界のみと通信しているかのようにみせる機能３をネットワーク４に配置する。これにより本発明では、図２に示すように、ユーザ２と仮想世界１の対置を１対Ｎ（図２（ａ））やＭ対Ｎ（図２（ｂ））とすることが可能となる。また、本発明では、後述するようなサービスの付加価値を得ることができる。
【００１６】
次に、本発明の一実施の形態に係る仮想世界構築システムについて図３を参照して説明する。図３は一実施の形態に係る仮想世界構築システムの概念図である。
【００１７】
本実施の形態に係る仮想世界構築システムは、図３に示すように、サーバに実装された複数のサーバアプリケーション１０と、ユーザ端末に実装されたクライアントアプリケーション２０と、クライアントアプリケーション２０が実装されたユーザ端末とサーバアプリケーション１０が実装されたサーバとの通信経路上に配置されたサーバに実装されたプロキシ３０とを備えている。
【００１８】
ここで、サーバやユーザ端末は、それぞれ主に半導体装置で構成され、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）等の揮発性記憶装置、ハードディスクやフラッシュメモリ等の不揮発性記憶装置、及び外部との通信のための接続を行う通信インタフェースを有する、いわゆる情報処理機器として構成することができる。また、サーバやユーザ端末は、仮想化されたコンピュータとして構成することもできる。サーバはサーバアプリケーション１０やプロキシ３０が実装された専用のマシンとしてもよいし、汎用的なマシンであってもよい。
【００１９】
本発明は、クライアントアプリケーション２０から通信的に近い位置にプロキシ３０を配備することを特徴の１つとしている。
【００２０】
複数のサーバアプリケーション１０は、仮想世界に係る種々の情報（仮想世界情報）を管理する機能と、クライアントアプリケーション２０から受信したユーザの操作情報（「モーション情報」とも言う。）に基づき仮想世界を変化させるよう仮想世界情報に処理を加える機能と、自身が管理している仮想世界情報に基づき、自身に接続しているクライアントアプリケーション２０に対して当該クライアントアプリケーション２０用に仮想世界に係る映像フレームをレンダリングして送信する機能を有している。なお、本発明では、複数のサーバアプリケーション１０はそれぞれ個別に仮想世界を管理することを特徴としており、サーバアプリケーション１０間で仮想世界情報の同期処理は行っていない点に留意されたい。
【００２１】
クライアントアプリケーション２０は、ユーザの動作にかかわる情報である操作情報を送信する機能、及び、サーバサーバアプリケーション１０から受信した映像情報を自身のユーザ端末に表示させる機能を有している。
【００２２】
プロキシ３０は、クライアントアプリケーション２０とサーバアプリケーション１０との間に介在してアプリケーション層において両者間の通信を中継する機能を有する。すなわち、プロキシ３０は、クライアントアプリケーション２０から受信した操作情報をサーバアプリケーション１０に送信する機能を有するとともに、サーバアプリケーション１０から受信した映像情報をクライアントアプリケーション２０に送信する機能を有する。ここで、プロキシ３０は、クライアントアプリケーション２０から受信した操作情報を複製して、複数のサーバアプリケーション１０に送信する。また、プロキシ３０は、通信的に近いサーバアプリケーション１０から映像情報を取得してクライアントアプリケーション２０に送信する。
【００２３】
なお、図３の例では、クライアントアプリケーション２０−１は、通信的に近いプロキシ３０−１に操作情報を送信する。プロキシ３０−１は、複数のサーバアプリケーション１０−１，１０−２に操作情報を送信する。プロキシ３０−１は、通信的に近いサーバアプリケーション１０−１から映像情報を取得してクライアントアプリケーション２０−２に送信する。クライアントアプリケーション２０−３についても同様である。
【００２４】
一方、図３の例では、クライアントアプリケーション２０−２は、通信的に近いプロキシ３０−２に操作情報を送信する。プロキシ３０−２は、複数のサーバアプリケーション１０−１，１０−２に操作情報を送信する。プロキシ３０−２は、自身からみて明らかに通信的に近いサーバアプリケーション１０が存在しないので、複数のサーバアプリケーション１０−１，１０−２から映像情報を取得して、いずれか一方又は双方の映像情報をクライアントアプリケーション２０−２に送信する。
【００２５】
本実施の形態に係る仮想世界構築システムでは、図４に示すように、マルチユーザが仮想世界の中でコミュニケーションをする際に、各ユーザは複数の仮想世界のうち、もっとも近い仮想世界でレンダリングされた映像情報を受け取ることができるように接続を確立するので、体感品質を向上することができる。
【００２６】
また、本実施の形態に係る仮想世界構築システムでは、図５に示すように、異なる複数の物理マシン上に冗長に構築された仮想世界をネットワーク技術により連携させることで高い可用性や高フレームレートを実現することができる。なお、通常時は、図５（ａ）に示すように、プロキシ３０への映像情報の到着間隔などをもとにプロキシ３０とサーバアプリケーション１０間の通信品質を評価し、評価の高いサーバアプリケーション１０−２からの映像情報をメインとして利用すればよい。または、通常時は、図５（ｂ）に示すように、厳密に時刻同期されたサーバアプリケーション１０間が連携し映像フレームを畳み込むことにより、高フレームレートを実現できる。
【００２７】
上述した機能を実現するためには、モーションに関わる制御情報（操作情報）が各仮想世界に到達する時間の管理が必要であり、本実施の形態に係る仮想世界構築システムは、コネクションの事前確立や品質評価の仕組みを具備する。また、プロキシ３０からサーバアプリケーション１０へのレンダリングタイミングの通知が必要であり、本実施の形態に係る仮想世界構築システムは、細かい間隔で前記通知を行い映像の畳み込みやフェイルオーバーを実現している。また、本実施の形態に係る仮想世界構築システムは、各仮想世界（マシン）の時刻同期または時刻のズレを管理する。
【００２８】
次に、図６を参照して、本実施の形態に係る仮想世界構築システムにおける配備例について説明する。図６（ａ）は、プロキシ３０を、サーバアプリケーション１０及びクライアントアプリケーション２０に対して地理的に異なる位置に配置した形態である。本形態の典型的な例では、クライアントアプリケーション２０が実装されたユーザ端末は、通信事業者網のエッジルータにより当該通信事業者網に収容されている。そして、プロキシ３０は、エッジルータと同一のサーバ又はエッジルータの近傍に配備したサーバに配備される。また、サーバアプリケーション１０は、通信事業者網内において地理的に分散して複数の地域にそれぞれ配備される。クライアントアプリケーション２０は、ユーザ端末が収容されているエッジルータ近傍のプロキシ３０を利用する。
【００２９】
なお、この典型的な例は、いわゆる「エッジコンピューティング」と呼ばれる技術を用いたものである。このエッジコンピューティングは、クラウドコンピューティングに比べて、設置場所の広さが限定されるなどに起因してロケーション当たりに配備されるコンピューティングリソースが少ない。そこで、信頼性を考慮すると、大きなマシンを少数配備するよりも、比較的小さなマシンを多数配備する方がよいと想定される。
【００３０】
図６（ｂ）は、プロキシ３０を、サーバアプリケーション１０毎に、サーバアプリケーションと同一のサーバ又はその近傍のサーバに配置した形態である。本形態の典型的な例では、サーバアプリケーション１０及びプロキシ３０は、通信事業者網内において地位的に分散して複数の地域にそれぞれ配備される。クライアントアプリケーション２０は、ユーザ端末が収容されている地域に配備されているプロキシ３０を用いる。
【００３１】
図６（ｃ）は、プロキシ３０を、クライアントアプリケーション２０の近傍の装置に配置した形態である。本形態の典型的な例では、クライアントアプリケーション２０が実装されたユーザ端末は、ユーザ宅に設置された宅内装置（ホームゲートウェイとも言う）に接続されている。なお、宅内装置はユーザ端末を通信事業者網に収容するための装置である。プロキシ３０は、この宅内装置の一機能として実装される。または、ユーザ宅内に施設したＬＡＮ内に前記宅内装置とは別装置としてプロキシ３０を配備してもよい。
【００３２】
次に、本実施の形態に係る仮想世界構築システムの詳細な構成について図７を参照して説明する。図７は本実施の形態に係る仮想世界構築システムの詳細な機能ブロック図である。
【００３３】
クライアントアプリケーション２０は、ユーザの操作情報をプロキシ３０に対して送信するモーション送信部２１と、プロキシ３０から受信した映像情報を受信する映像受信部２２とを備えている。モーション送信部２１が送信する操作情報の頻度は毎秒１００回〜程度である。
【００３４】
サーバアプリケーション１０は、プロキシ３０から操作情報を受信するモーション受信部１１と、自身で管理している仮想世界に対して前記操作情報に基づき所定の処理を加える物理演算部１２と、物理演算部１２で処理された仮想世界についてレンダリング処理を行って映像情報を生成してプロキシ３０に送信するレンダリング処理・映像送信部１３とを備えている。物理演算部１２は、毎秒１０００回〜程度の頻度で仮想世界の物理演算を行う。また、物理演算部１２は、レンダリング処理・映像送信部１３からレンダリング等の処理を指示する情報を毎秒１０回〜程度の頻度で受信するとともに、映像に関わる情報をレンダリング処理・映像送信部１３に送信する。レンダリング処理・映像送信部１３は、プロキシ３０から通知されたレンダリングタイミングで映像情報を送信するよう、物理演算部１２と共動してレンダリング処理及び映像情報の送信処理を行う。
【００３５】
プロキシ３０は、クライアントアプリケーション２０から受信した操作情報を複製して複数のサーバアプリケーション１０に送信するモーション複製部３１と、各サーバアプリケーション１０から受信した映像情報をクライアントアプリケーション２０に送信する映像統合・レンダリング制御部３２と、モーション制御部３１及び映像統合・レンダリング制御部３２の動作を管理・制御する管理部３３とを備えている。映像統合・レンダリング制御部３２は、複数のサーバアプリケーション１０から受信した映像情報の選択や統合（フレームの畳み込み処理）など映像情報を統合する処理を行い、統合結果である映像情報をクライアントアプリケーション２０に送信する。また、映像統合・レンダリング制御部３２は、レンダリング処理・映像送信部１３に対して、レンダリングを行うタイミングを通知する情報を毎秒１０回〜程度の頻度で送信する。管理部３３は、モーション複製部３１及び映像統合・レンダリング制御部３２に対して、サーバアプリケーション１０に対して接続確立の指示などを行う。
【００３６】
次に、本実施の形態に係る仮想世界構築システムの動作について図８〜図１１を参照して説明する。まず、初期処理及び操作情報の送信処理について図８を参照して説明する。図８は初期処理及び操作情報の送信処理のシーケンスチャートである。
【００３７】
まず、初期処理（図８ではＰｈａｓｅ１と表記）では、クライアントアプリケーション２０による処理が始まる前に、各サーバアプリケーション１０は起動されているものとする（ステップＳ１０１，Ｓ１０２）。プロキシ３０の管理部３３がモーション複製部３１に対して接続確立を指示すると（ステップＳ１０３）、モーション複製部３１は、各サーバアプリケーション１０のモーション受信部１１との間で接続を確立する（ステップＳ１０４，Ｓ１０５）。管理部３３はモーション複製部３１から接続確立時情報を受信すると（ステップＳ１０６）、映像統合・レンダリング制御部３２に対して、接続確立を指示する（ステップＳ１０７）。映像統合・レンダリング制御部３２は、各サーバアプリケーション１０のレンダリング処理・映像送信部１３との間で接続を確立し（ステップＳ１０８，Ｓ１０９）、接続確立時情報を管理部３３に送信する（ステップＳ１１０）。
【００３８】
次に、操作情報の送信処理（図８ではＰｈａｓｅ２と表記）では、クライアントアプリケーション２０は、プロキシ３０のモーション複製部３１及び映像統合・レンダリング制御部３２との間で接続を確立する（ステップＳ２０１，Ｓ２０２）。以降、クライアントアプリケーション２０は、プロキシ３０のモーション複製部３１に対して操作情報（モーション情報）を随時送信する（ステップＳ２０３，Ｓ２０４）。プロキシ３０のモーション複製部３１は、操作情報を複製して各サーバアプリケーション１０のモーション受信部１１に送信する（ステップＳ２０５〜Ｓ２０８）。各サーバアプリケーション１０のモーション受信部１１は、それぞれ送信情報を物理演算部１２に送信する（ステップＳ２０９〜Ｓ２１２）。
【００３９】
次に、プロキシ３０が複数のサーバアプリケーション１０から受信した映像情報を交互にクライアントアプリケーション２０に送信する処理（インターリーブ処理）について図９を参照して説明する。図９はインターリーブ処理のシーケンスチャートである。
【００４０】
プロキシ３０の映像統合・レンダリング制御部３２は、各サーバアプリケーション１０のレンダリング処理・映像送信部１３に対して、レンダリングタイミングを通知する（ステップＳ３０１，Ｓ３０２）。本実施の形態では、サーバアプリケーション１０−１とサーバアプリケーション１０−２が交互に映像情報を送信するよう、換言すればプロキシ３０がサーバアプリケーション１０−１とサーバアプリケーション１０−２から交互に映像情報を受信するようレンダリングタイミングを通知する。
【００４１】
各サーバアプリケーション１０のレンダリング処理・映像送信部１３の物理演算部１２は共動して、通知されたタイミングでレンダリング処理を実施して、映像情報を送信する。ここで、映像情報の送信処理は、アプリケーション層に注目すると、ヘッダ情報の送信と映像情報本体の送信に分けることができる。本実施の形態では、プロキシ３０においてタイミングを正確に把握可能とするために、レンダリング処理・映像送信部１３は、まずヘッダ情報を送信し（ステップＳ３０３，Ｓ３０７，Ｓ３１１，Ｓ３１５）、その後に物理演算部１２と共動してレンダリング処理を行い（ステップＳ３０４，Ｓ３０７，Ｓ３１２，Ｓ３１６）、その後に映像情報本体を送信する（ステップＳ３０５，Ｓ３０９，Ｓ３１３，Ｓ３１７）。
【００４２】
プロキシ３０の映像統合・レンダリング制御部３２は、各サーバアプリケーション１０のレンダリング処理・映像送信部１３から受信したヘッダ情報及び映像情報本体からなる映像情報を、順次クライアントアプリケーション２０の映像受信部２２に送信する（ステップＳ３０６，Ｓ３１０，Ｓ３１４，Ｓ３１８）。
【００４３】
プロキシ３０の映像統合・レンダリング制御部３２は、各サーバアプリケーション１０から受信する情報の到達タイミングや、ヘッダと映像情報本体の到達時間差からレンダリング頻度などを調整し（ステップＳ３１９）、各サーバアプリケーション１０のレンダリング処理・映像送信部１３に対して、レンダリングタイミングを通知する（ステップＳ３２０，Ｓ３２１）。
【００４４】
次に、図１０を参照して、映像情報の送信処理におけるフェイルオーバー処理の例について説明する。本フェイルオーバー処理は、プロキシ３０は１つのサーバアプリケーション１０からの映像情報のみをクライアントアプリケーション２０に送信することを前提とする。
【００４５】
図１０に示すように、通常時は、プロキシ３０の映像統合・レンダリング制御部３２は、レンダリングタイミングを生成すると（ステップＳ４０１）、サーバアプリケーション１０−１のレンダリング処理・映像送信部１３−１にのみレンダリングタイミングを通知する（ステップＳ４０２）。以降は、前述した処理と同様にして、映像情報がサーバアプリケーション１０−１のレンダリング処理・映像送信部１３−２からクライアントアプリケーション２０の映像受信部２２に送信される（ステップＳ４０３〜Ｓ４１０）。
【００４６】
ここで、サーバアプリケーション１０−１に不具合が生じたとする（ステップＳ４１１）。これによりプロキシ３０は、いままでクライアントアプリケーション１０に対して送信している映像情報の送信元のサーバアプリケーション１０−１から映像情報が受信できなくなる。プロキシ３０の映像統合・レンダリング制御部３２は、ヘッダの到達間隔から当該不具合の発生を検知する（ステップＳ４１２）。プロキシ３０の映像統合・レンダリング制御部３２は、レンダリングタイミング通知をサーバアプリケーション１０−２のレンダリング処理・映像送信部１３−２に送信し（ステップＳ４１３）、以降、サーバアプリケーション１０−１から受信した映像情報をクライアントアプリケーション２０の映像受信部２２に送信する（ステップＳ４１４〜Ｓ４２１）。
【００４７】
次に、図１１を参照して、映像情報の送信段階におけるフェイルオーバー処理の他の例について説明する。本フェイルオーバー処理は、プロキシ３０は２つのサーバアプリケーション１０からの映像情報のうちの一方のみをクライアントアプリケーション２０に送信することを前提とする。
【００４８】
図１１に示すように、通常時は、プロキシ３０の映像統合・レンダリング制御部３２は、レンダリングタイミングを生成すると（ステップＳ５０１）、各サーバアプリケーション１０のレンダリング処理・映像送信部１３にレンダリングタイミングを通知する（ステップＳ５０２，Ｓ５０３）。ここでは各サーバアプリケーション１０が実質的に同一のタイミングで映像情報を送信するようレンダリングタイミングを設定する。
【００４９】
各サーバアプリケーション１０のレンダリング処理・映像送信部１３は、それぞれ、前述した処理と同様にして、映像情報をプロキシ３０の映像統合・レンダリング制御部３２に送信する（ステップＳ５０４〜Ｓ５０９、Ｓ５１１〜Ｓ５１６）。プロキシ３０の映像統合・レンダリング制御部３２は、受信した映像情報のうちの一方、図１１の例ではサーバアプリケーション１０−１のレンダリング処理・映像送信部１３−１から受信した映像情報のみをクライアントアプリケーション２０の映像受信部２２に送信する（ステップＳ５１０，Ｓ５１７）。
【００５０】
ここで、サーバアプリケーション１０−１に不具合が生じたとする（ステップＳ５１８）。これによりプロキシ３０は、いままでクライアントアプリケーション１０に対して送信している映像情報の送信元のサーバアプリケーション１０−１から映像情報が受信できなくなる。プロキシ３０の映像統合・レンダリング制御部３２は、以降、他のサーバアプリケーション１０−２のレンダリング処理・映像送信部１３−２から受信した映像情報のみをクライアントアプリケーション２０の映像受信部２２に送信する（ステップＳ５１９〜Ｓ５２２）。
【００５１】
本発明による作用効果について、図１２を参照して従来のスター型方式及びメッシュ型（図１３参照）と比較して説明する。図１２は本発明と他の方式を比較した表である。
【００５２】
＜一致性＞
一致性とは、マルチプレイヤ（マルチユーザ）で動作する際に各プレイヤに対応する各仮想世界の状態が同一である特性を意味する。スター型では、一つの仮想世界のみであるため、情報の不一致が生じることはない。メッシュ型では、各クライアントアプリでの予測的動作を行うため、クライアント同士が離れていると仮想世界の状態が不一致を起こす。本発明では、同一の動作情報を送達するため、大きく情報の送達が遅れない限り、仮想世界の状態はほぼ同一となる。
【００５３】
＜応答性＞
応答性とは、プレイヤの動作に対する仮想世界からの応答の速さに関する特性を意味する。スター型では、プレイヤが分散している場合、サーバとクライアントが通信的に離れたプレイヤについて、動作に対して仮想世界が変化することが遅く、また映像が提示されるのも遅い。メッシュ型では、クライアントアプリでプレイヤの動作に対して仮想世界の物理シミュレーションを計算し映像を生成するため即座に応答する。本発明では、より近いサーバから映像を取得することができるため、大きく応答が遅れることが少ない。
【００５４】
＜スケール性＞
スケール性とは、プレイヤ数の増加やより高度なレンダリングなどに伴った処理負荷の増大への対応を表す特性を意味する。スター型では、スケールアップにより対応できるが、限界があり、またスケールアウトには対応することができない。メッシュ型では、クライアントのデバイスのスケールアップは、サーバのスケールアップよりも限界に達しやすく、またクライアント同士をつなぐリンクもプレイヤ数の２乗に比例して増加するため処理が困難である。本発明では、スケールアップ、スケールアウト両方に対応することが可能である。
【００５５】
以上、本発明の実施の形態について詳述したが本発明はこれに限定されるものではない。例えば、上記実施の形態では、フェールセーフを実現する際に、正常時において、複数のサーバアプリケーション１０から受信した映像情報のうちどれをクライアントアプリケーション２０に送信するかを選択するための指標として通信品質を用いていた。ここで、この通信品質は、プロキシ３０への映像情報の到着間隔などをもとに算出していたが、例えばパケット損失率やジッタなど他のパラメータに基づき通信品質を算出してもよい。また、前記指標として、例えば各サーバアプリケーション１０が実装されたサーバの属性情報など通信品質以外の指標を用いてもよい。
【符号の説明】
【００５６】
１０…サーバアプリケーション
１１…モーション受信部
１２…物理演算部
１３…レンダリング処理・映像送信部
２０…クライアントアプリケーション
２１…モーション送信部
２２…映像受信部
３０…プロキシ
【図１】
2020021394.tif 000003
【図２】
2020021394.tif 000004
【図３】
2020021394.tif 000005
【図４】
2020021394.tif 000006
【図５】
2020021394.tif 000007
【図６】
2020021394.tif 000008
【図７】
2020021394.tif 000009
【図８】
2020021394.tif 000010
【図９】
2020021394.tif 000011
【図１０】
2020021394.tif 000012
【図１１】
2020021394.tif 000013
【図１２】
2020021394.tif 000014
【図１３】
2020021394.tif 000015