本明細書は、いかなる方法によっても限定されることを意図していない、代表的な様々な実施形態という意味により記載される。本件出願において用いられるように、「1つの」、「前記」、「上記」、「当該」、「該」、「この」、「その」といった単数形は、複数形でないことを明確に示さない限り、複数形を含むことができる。また、「含む」という用語は、「具備する」こと又は「備える」ことを意味し得る。さらに、「結合された」、「結合した」、「結び付けられた」、「結び付けた、「接続された」又は「接続した」という用語は、対象物を相互に結合する、接続する又は結び付ける、機械的、電気的、磁気的及び光学的な方法を他の方法とともに包含し、このように結合された、結合した、結び付けられた、結び付けた、接続された又は接続した対象物の間にある中間要素の存在を排除しない。
本明細書において記載される、様々なシステム、方法及び装置は、いかなる方法によっても限定されるものとして解釈されるべきではない。実際には、本開示は、開示された様々な実施形態の各々、これら様々な実施形態を相互に組み合わせたもの、及び、これら様々な実施形態の一部を相互に組み合わせたもの、のうちのあらゆる新規な特徴及び態様に向けられている。本明細書において記載される、様々なシステム、方法及び装置は、特定の態様、特定の特徴、又は、このような特定の態様と特定の特徴とを組み合わせたものに限定されないし、本明細書に記載される物及び方法は、1若しくはそれ以上の特定の効果が存在すること又は課題が解決されることを、要求するものでもない。さらには、本明細書において記載された様々な実施形態のうちの様々な特徴若しくは態様、又は、そのような特徴若しくは態様の一部は、相互に組み合わせて用いられ得る。
本明細書において開示された様々な方法のうちの幾つかの方法の動作が、便宜上、特定の順序に沿って記載されているが、このような手法による記載は、特定の順序が以下特定の文章によって要求されていない限り、上記動作の順序を並び替えることを包含する、と理解すべきである。例えば、順番に記載された複数の動作は、幾つかの場合には、並び替えられるか又は同時に実行される。さらには、簡略化を目的として、添付図面は、本明細書に記載された様々な事項及び方法が他の事項及び方法とともに用いられ得るような様々な方法を示していない。加えて、本明細書は、「生成する」、「発生させる」、「表示する」、「受信する」、「評価する」及び「配信する」のような用語を用いることがある。これらの用語は、実行される実際の様々な動作のハイレベルな記載である。これらの用語に対応する実際の様々な動作は、特定の実装に依存して変化し得るし、本明細書の開示の利益を有する当業者によって容易に認識され得る。
本開示の装置又は方法に関連して本明細書に提示される、動作理論、科学的原理又は他の理論的な記載は、よりよい理解を目的として提供されており、技術的範囲を限定することを意図していない。添付した特許請求の範囲における装置及び方法は、このような動作理論により記載される方法により動作する装置及び方法に限定されない。
本明細書に開示された様々な方法のいずれもが、コンピュータにより読み取り可能な1又はそれ以上の媒体(例えば、1又はそれ以上の光学媒体ディスク、複数の揮発性メモリ部品、又は、複数の不揮発性メモリ部品といったような、非一時的なコンピュータにより読み取り可能な記憶媒体)に記憶された、コンピュータにより実行可能な複数の命令を用いて実装され、さらに、コンピュータにおいて実行され得る。ここで、上記複数の揮発性メモリ部品は、例えばDRAM又はSRAMを含む。また、上記複数の不揮発性メモリ部品は、例えばハードドライブ及びソリッドステートドライブ(SSD)を含む。さらに、上記コンピュータは、例えば、計算を行うハードウェアを有するスマートフォン及び他のモバイル装置を含む、市場において入手可能な任意のコンピュータを含む。
本明細書において開示された技術を実装するためのこのようなコンピュータにより実行可能な複数の命令のいずれもが、本明細書において開示された様々な実施形態の実装の間において生成され使用される任意のデータとともに、1又はそれ以上のコンピュータにより読み取り可能な媒体(例えば、非一時的なコンピュータにより読み取り可能な記憶媒体)に記憶され得る。このようなコンピュータにより実行可能な複数の命令は、例えば、個別のソフトウェアアプリケーションの一部であり得るか、又は、ウェブブラウザ若しくは(リモート計算アプリケーションといったような)他のソフトウェアアプリケーションを介してアクセス又はダウンロードされるソフトウェアアプリケーションの一部であり得る。このようなソフトウェアは、例えば、(例えば市場において入手可能な任意の好適なコンピュータにおいて実行されるエージェントとしての)単一のローカルコンピュータにおいて、又は、1又はそれ以上のネットワークコンピュータを用いて、ネットワーク環境(例えば、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、(クラウド計算ネットワークといったような)クライアントサーバネットワーク、又は、他のそのようなネットワーク)において、実行され得る。
明確化のために、ソフトウェアをベースとした様々な実装のうちの特定の選択された様々な態様のみが記載される。当該分野において周知である他の詳細な事項は省略される。例えば、本明細書において開示された技術は、特定のコンピュータ言語又はプログラムに限定されない。例えば、本明細書において開示された技術は、C、C++、Java、又は、他の任意の好適なプログラミング言語で記述されたソフトウェアにより実行され得る。同様に、本明細書において開示された技術は、特定のコンピュータ又は特定のタイプのハードウェアに限定されない。好適なコンピュータ及びハードウェアの特定の詳細な事項は、周知であって、本明細書において詳細に説明する必要はない。
さらには、このようなソフトウェアをベースとした様々な実施形態(例えば、本明細書において開示される様々な方法のいずれかをコンピュータに実行させるための、コンピュータにより実行可能な複数の命令を含む)のいずれもが、好適な通信手段により、アップロードされ、ダウンロードされ、又は、リモート方式によりアクセスされ得る。このような好適な通信手段は、例えば、インターネット、ワールドワイドウェブ、イントラネット、ソフトウェアアプリケーション、ケーブル(光ファイバケーブルを含む)、磁気通信、電磁気通信(RF通信、マイクロ波通信、赤外線通信を含む)、電子通信、又は、他のそのような通信手段を含む。
以下、添付図面を参照して本発明の様々な実施形態を説明する。なお、図面において共通した構成要素には同一の参照符号が付されている。また、或る図面に表現された構成要素が、説明の便宜上、別の図面においては省略されていることがある点に留意されたい。さらにまた、添付した図面が必ずしも正確な縮尺で記載されている訳ではないということに注意されたい。
1.システム1000の構成
図1は、一実施形態に係るシステム1000の構成の一例を示すブロック図である。図1に示すように、システム1000は、例えば、図示しない通信回線(通信網)に接続される複数の端末10と、通信回線に接続される1又は複数のサーバ20と、を含む。端末10は、第1端末11及び第2端末12を含む。また、サーバ20は、例えば、第1サーバシステム21及び第2サーバシステム22を含む。
通信回線は、携帯電話網、無線ネットワーク(例えば、Bluetooth、(IEEE 802.11a/b/nといったような)WiFi、WiMax、セルラー、衛星、レーザー、赤外線、を介したRF接続)、固定電話網、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及び/又は、イーサネットネットワークを、これらに限定することなく含むことができる。
1-1.端末10
端末10は、例えば、通信回線を介して、1又は複数のサーバ20に接続されるものである。端末10は、例えば、スマートフォン、タブレット装置、及び/又はパーソナルコンピュータである。端末10は、例えば、所定のアプリケーションをインストールして当該所定のアプリケーションを実行可能に構成される。また、端末10は、サーバ20(第2サーバシステム22)からウェブページ(例えば、HTMLドキュメント、幾つかの例では、JavaScript又はPHPコードといったような実行可能なコードを符号化したHTMLドキュメント)を受信することができる。
なお、以後、端末10を操作するユーザを単にユーザと称し、第1端末11を操作するユーザを第1ユーザ、第2端末12を操作するユーザを第2ユーザと称することがある。また、図1には、複数の端末10として、例えば、第1端末11及び第2端末12が設けられる例について示されているが、これに限定されない。複数の端末10は、例えば、3以上の端末を含んでもよい。また、以後の説明において、第1端末11および第2端末12を端末10と総称することがある。
1-2.サーバ20
第1サーバシステム21は、配信サーバ21A1、サーバ記憶装置21A2を備える。配信サーバ21A1は、例えば、端末10において実行されるアプリケーションに関して要求されるデータを端末10から受信する。また、配信サーバ21A1は、例えば、当該要求に応じて、端末10において実行されるアプリケーションに用いられるデータを端末10に送信する。サーバ記憶装置21A2は、例えば、配信サーバ21A1から端末10に送信するデータを格納する。また、サーバ記憶装置21A2は、例えば、配信サーバ21A1が端末10から受信したデータを格納する。また、第1サーバシステム21は、例えば、端末10により実行されるアプリケーションにおいて用いられるデータを端末10に送信する。
なお、端末10がアプリケーションを実行する例について説明したが、これに限定されない。例えば、端末10にインストールされるウェブブラウザを用いて、当該アプリケーションを実行することと同等の処理を実行するようにしてもよい。このように、端末10にインストールされるウェブブラウザを用いる場合には、例えば、サーバ20は、ウェブサーバ(図示省略)を含んでいてもよい。サーバ20が、ウェブサーバ(図示省略)を含む場合には、ウェブサーバは、HTML5等のHTML文書に関するデータを送信し、端末10は、当該ウェブブラウザを用いて当該HTML文書に関するデータを表示し、端末10(当該ウェブブラウザ)に対してユーザ指示データが送信され、サーバ20は、表示制御を行う。サーバ20は、当該表示制御を行うことで、表示データを生成し、当該表示データを端末10(当該ウェブブラウザ)に送信する。なお、当該ウェブブラウザでJavaScript(登録商標)などのスクリプトを用いて表示制御を行ってもよい。
また、図1においては、第1サーバシステム21が、配信サーバ21A1、サーバ記憶装置21A2を備える例について説明したが、これに限定されない。例えば、第1サーバシステム21が、配信サーバ21A1及びサーバ記憶装置21A2に加えて他の構成を含んでいてもよい。この場合において、当該他の構成が、配信サーバ21A1及びサーバ記憶装置21A2のうち少なくともいずれかの機能を有してもよい。また、例えば、第1サーバシステム21が、配信サーバ21A1及びサーバ記憶装置21A2の機能を備える単一の構成によって構成されていてもよい。
第2サーバシステム22は、コンテンツに関するデータを端末10に送信するサーバである。ここで、例えば、ユーザが端末10を操作してアプリケーションを実行する場合を想定する。この場合において、第2サーバシステム22が、当該アプリケーションの実行中に、コンテンツに関するデータの要求を端末10から受信した場合に、第2サーバシステム22は、コンテンツに関するデータを端末10に送信する。第2サーバシステム22から端末10に送信されるコンテンツに関するデータは、例えば、動画に関するデータである。
2.各装置のハードウェア構成
次に、端末10及びサーバ20の各々が有するハードウェア構成の一例について説明する。
2-1.端末10のハードウェア構成
各端末10のハードウェア構成例について図2を参照して説明する。図2は、図1に示した端末10(サーバ20)のハードウェア構成の一例を示すブロック図である。なお、図2において、括弧内の参照符号は、後述するようにサーバ20に関連して記載されたものである。
図2に示すように、各端末10は、例えば、中央処理装置14と、主記憶装置15と、入出力インターフェース装置16と、入力装置17と、補助記憶装置18と、出力装置19と、を含む。図2に示される構成同士は、データバス及び/又は制御バスにより接続されている。
中央処理装置14は、「CPU」と称されるものであり、主記憶装置15に記憶されている命令及びデータに対して演算を行い、その演算の結果を主記憶装置15に記憶させるものである。さらに、中央処理装置14は、入出力インターフェース装置16を介して、入力装置17、補助記憶装置18及び出力装置19等を制御することができる。端末10は、1又はそれ以上のこのような中央処理装置14を含むことが可能である。
主記憶装置15は、「メモリ」と称されるものであり、入力装置17、補助記憶装置18及び通信回線30(サーバ20等)から、入出力インターフェース装置16を介して受信した命令及びデータ、並びに、中央処理装置14の演算結果を記憶するものである。主記憶装置15は、揮発性メモリ(例えば、レジスタ、キャッシュ、ランダムアクセスメモリ(RAM))、不揮発性メモリ(例えば、リードオンリーメモリ(ROM)、EEPROM、フラッシュメモリ)、及び、ストレージ(例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、磁気テープ、光学媒体)、といったようなコンピュータにより読み取り可能な媒体を、これらに限定することなく含むことができる。容易に理解されるように、「コンピュータにより読み取り可能な記録媒体」という用語は、変調されたデータ信号すなわち一時的な信号といったような送信媒体ではなく、メモリ及びストレージといったようなデータストレージのための媒体を含むことができる。
入力装置17は、外部からデータを取り込む装置であり、タッチパネル、ボタン、キーボード、マウス及び/又はセンサ等をこれらに限定することなく含むものである。センサは、後述するように、1又はそれ以上のカメラ等及び/又は1又はそれ以上のマイク等を含むセンサをこれらに限定することなく含むことができる。
補助記憶装置18は、主記憶装置15よりも大きな容量を有する記憶装置である。上述した特定のアプリケーション(動画配信用アプリケーション、動画視聴用アプリケーション等)やウェブブラウザアプリケーション等を構成する命令及びデータ(コンピュータプログラム)を記憶することができる。さらに、補助記憶装置18は、中央処理装置14により制御されることにより、これらの命令及びデータ(コンピュータプログラム)を、入出力インターフェース装置16を介して、主記憶装置15に送信することができる。補助記憶装置18は、磁気ディスク装置及び/又は光ディスク装置等をこれらに限定することなく含むことができる。
出力装置19は、ディスプレイ装置、タッチパネル及び/又はプリンタ装置等をこれらに限定することなく含むことができる。
このようなハードウェア構成にあっては、中央処理装置14が、補助記憶装置18に記憶された特定のアプリケーションを構成する命令及びデータ(コンピュータプログラム)を順次主記憶装置15にロードし、ロードした命令及びデータを演算することにより、入出力インターフェース装置16を介して出力装置19を制御し、或いはまた、入出力インターフェース装置16及び通信回線2を介して、他の装置(例えばサーバ20、他の端末10)との間で様々なデータの送受信を行うことができる。
2-2.サーバ20のハードウェア構成
各サーバ20のハードウェア構成例について同じく図2を参照して説明する。各サーバ20(配信サーバ21A1及びサーバ記憶装置21A2の各々)のハードウェア構成としては、例えば、上述した各端末10のハードウェア構成と同一のものを用いることが可能である。したがって、各サーバ20が有する構成要素に対する参照符号は、図2において括弧内に示されている。
図2に示すように、各サーバ20は、主に、中央処理装置24と、主記憶装置25と、入出力インターフェース装置26と、入力装置27と、補助記憶装置28と、出力装置29と、を含むことができる。これら装置同士は、データバス及び/又は制御バスにより接続されている。
中央処理装置24、主記憶装置25、入出力インターフェース装置26、入力装置27、補助記憶装置28、及び、出力装置29は、それぞれ、上述した各端末10に含まれる、中央処理装置14、主記憶装置15、入出力インターフェース装置16、入力装置17、補助記憶装置18及び出力装置19と略同一なものとすることができる。
このようなハードウェア構成にあっては、中央処理装置24が、補助記憶装置28に記憶された特定のアプリケーションを構成する命令及びデータ(コンピュータプログラム)を順次主記憶装置25にロードし、ロードした命令及びデータを演算することにより、入出力インターフェース装置26を介して出力装置29を制御し、或いはまた、入出力インターフェース装置26及び通信回線2を介して、他の装置(例えば各端末10)との間で様々なデータの送受信を行うことができる。
なお、サーバ20は、中央処理装置24に代えて又は中央処理装置24とともに、1又はそれ以上のマイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含むものであってもよい。
3.各装置の機能
次に、端末10、及び、サーバ20の各々が有する機能の一例について、それぞれ、図3、及び、図4を用いて説明する。
3-1.端末10の機能
図3は、図1に示した端末10の機能の一例を示すブロック図である。図3に示すように、端末10は、例えば、通信部110と、取得部120と、制御部130と、表示部140と、ユーザインターフェース部150と、記憶部160と、を含む。
(1)通信部110
通信部110は、例えば、サーバ20に各種データを送信するために用いられる。また、通信部110は、例えば、サーバ20から各種データを受信するために用いられる。通信部110において受信したデータは、例えば、制御部130に送られる。
(2)取得部120
取得部120は、例えば、ユーザから操作に関する操作データを取得する。また、取得部120は、例えば、各種センサによって検出されるデータを取得する。取得部120において取得されたデータは、例えば、制御部130に送られる。取得部120は、例えば、後述する図9のS121、図9のS122、図10のS121、及び、図10のS122の処理を行う。例えば、操作データは、次のデータのうちの1つ又はそれ以上を含むことができる。
・配信者がタッチパッドディスプレイをどのようにスワイプしたかを示すデータ
・配信者がタッチパッドディスプレイのどの箇所をタッチしたかを示すデータ
・配信者がいずれのオブジェクトをタップ又はクリックしたかを示すデータ
・配信者がタッチパッドディスプレイをどのようにドラッグしたかを示すデータ
・他のそのような操作データ
なお、取得部120が取得するデータは、非操作に関するデータ(操作をしなかったことを示すデータ)であってもよく、例えば、特定時間(特定期間)端末10を操作しなかったことを示すデータ、及び/又は、仮想空間300内のある特定の場所に入らなかったことを示すデータである。
また、本開示において、端末10を用いることに加えて又は端末10を用いることに代えて、ウェアラブルデバイスを用いて後述する図6~図8のような表示を行ってもよい。ここで、当該ウェアラブルデバイスは、例えば、AR(Augmented Reality)グラス、スマートグラス、HMD(Head Mounted Display)等を含む。なお、上述のウェアラブルデバイスがARグラスである場合には、例えば、当該ARグラスは、位置情報に関するデータ、所定のマーカーを読み込むことで得られるデータ、及び/又は、空間に存在する所定の物体を識別することによるデータ、に関するデータに基づいて、現実の領域に重畳するように仮想の表示画面を表示する。
このようなウェアラブルデバイスを用いる場合において、当該ウェアラブルデバイスを装着するユーザは、ジェスチャ及び/又は視線に関する動作を行うことで、当該ウェアラブルデバイスが表示する表示画面における対象物を移動及び/又は選択することができる。ここで、当該ジェスチャは、例えば、ユーザの頭を前、後、左、又は、右に動かす動作である。また、視線に関する動作は、例えば、ユーザが瞬きをする動作、又は、ユーザの目を上、下、左、及び、右のいずれかに移動させる動作である。当該対象物は、例えば、当該ユーザに対応するアバターである。当該対象物が、例えば、当該ユーザに対応するアバターである場合において、ユーザの頭を前、後、左、又は、右に動かす動作を行うと、当該動作に応じて、アバターは、前、後、左、又は、右に移動する。
なお、当該ウェアラブルデバイスが表示する表示画面における対象物を移動及び/又は選択する場合において、例えば、別途コントローラ(図示省略)を設けてもよい。ここで、当該コントローラは、例えば、タッチパッド(図示省略)を備える。これにより、例えば、ユーザが当該タッチパッド上においてタッチ操作を行うことで、当該ウェアラブルデバイスが表示する表示画面における対象物を移動及び/又は選択することができる。ここで、「タッチ操作」は、例えば、タップ、ダブルタップ、スワイプ、フリック、ピンチイン、及び、ピンチアウト、のうち少なくともいずれかの操作を指す。また、当該コントローラは、例えば、加速度センサ及び/又はジャイロセンサを備えてもよい。これにより、当該コントローラの傾き及び/又は動きに基づいて、当該ウェアラブルデバイスが表示する表示画面における対象物を移動及び/又は選択することができる。当該コントローラは、例えば、ユーザが把持して用いるものであってもよいし、ユーザの指に装着するものであってもよい。
(3)制御部130
制御部130は、例えば、通信部110において受信したデータに基づいて各種制御を行うものである。また、制御部130は、取得部120において取得したデータに基づいて各種制御を行う。制御部130は、例えば、後述する図9のS131~S151のうち一部又は全ての処理を行う。また、制御部130は、例えば、後述する図10のS131及びS151のうち一部又は全ての処理を行う。
(4)表示部140
表示部140は、例えば、制御部130から出力される制御データに基づく表示内容を表示するものである。表示部140は、例えば、所定のアプリケーションを選択する画面を表示する。また、表示部140は、例えば、所定のアプリケーションを選択して所定のアプリケーションを実行した場合において仮想空間に関する画面を表示する。
(5)ユーザインターフェース部150
ユーザインターフェース部150は、アプリケーションの実行に用いられる様々なデータをユーザの操作を介して入力するためのものである。
(6)記憶部160
記憶部160は、アプリケーションの実行に用いられる様々なデータを記憶することができる。記憶部160は、例えば、表示部140を制御するために用いられるデータを記憶する。記憶部160は、例えば、ユーザのアバターの生成に用いられるモジュールデータを記憶する。
なお、モジュールデータは、例えば、アバターを生成するためのパーツに関するデータである。ここで、アバターを生成するためのパーツは、例えば、アバターの各パーツ(目、鼻、口、眉毛、肌の色、髪型、髪の色、服、体、等)のデータを含む。また、モジュールデータは、アバターを生成するための各パーツに対応して割り当てられるIDに関するデータを含む。なお、アバターのパーツが体である場合には、アバターを生成するためのパーツに関するデータは、痩せ型、やや痩せ型、標準、やや肥満、肥満、など、体型に関して細分化されたデータを含んでいてもよい。
また、表示部140が、第1アバター80A以外のアバター80(他人のアバター)を表示する場合において、サーバ20が、第1アバター80A以外のアバター80の生成に用いられるIDデータを第1端末11に送信し、第1端末11が、当該IDデータに基づいて、第1アバター80A以外のアバター80を構築する構成であってもよい。
また、表示部140が、第1アバター80A以外のアバター80(他人のアバター)を表示する場合において、表示部140は、第1アバター80A以外のアバター80を黒色に着色して表示してもよいし、第1アバター80A以外のアバター80に対応するユーザの性別(例えば、男性又は女性)に基づいて決定されるパーツ及び/又は色彩を用いて第1アバター80A以外のアバター80を表示してもよい。
3-2.サーバ20の機能
図4は、図1に示したサーバ20の機能の一例を示すブロック図である。図4に示されるように、サーバ20は、例えば、通信部210と、記憶部220と、制御部230と、を含む。
(1)通信部210
通信部210は、例えば、端末10に各種データを送信するために用いられる。また、通信部210は、例えば、端末10から各種データを受信するために用いられる。通信部210において受信したデータは、制御部230に送られる。通信部210は、例えば、
後述する図9において第2端末12から第2データを受信し、後述する図9において第1端末11に第2データを送信する。通信部210は、例えば、後述する図10において第2端末12から第2データを受信し、後述する図10において第1端末11に制御データを送信する。
(2)記憶部220
記憶部220は、アプリケーションの実行に用いられる様々なデータを記憶するものである。記憶部220は、例えば、第2端末12から送信されるデータを記憶する。
(3)制御部230
制御部230は、例えば、通信部210において受信したデータに基づいて各種制御を行うものである。制御部230は、例えば、後述する図10のS141の処理を行う。
図5は、端末10の表示部140が表示する表示画面の例を示す図である。図5は、端末10を操作してアプリケーションを起動することで端末10の表示部140に表示される表示例を示す図である。図5に示されるように、表示部140は仮想空間300を表示する。仮想空間300は、例えば、3次元空間である。仮想空間300内には、アバター80及び仮想会場310が示される。
アバター80は、ユーザの操作により、例えば、歩行、走行及び跳躍(ジャンプ)のうち少なくともいずれかを仮想空間300内で行うことが可能なように構成されている。また、また、アバター80は、ユーザの操作により、例えば、仮想オブジェクトを調べる及び仮想オブジェクトに着席する、のいずれかを行うことが可能なように構成されている。ここで、仮想オブジェクトは、例えば、アバター80に対応するオブジェクト、ドア、椅子、などである。なお、端末10を用いてユーザがアバター80を操作すると、当該操作に関するデータが、サーバ20に送信される。
なお、表示部140に表示される複数のアバター80のうち少なくともいずれかのアバター80は、ユーザによる操作に基づいて動作するものであってもよいし、予め決定された動作に基づいて動作するものであってもよい。ここで、アバター80が、予め決定された動作に基づいて動作する場合には、アバター80は、NPC(Non Player Character)として動作することを意味する。
また、図5に示されるアバター80の表示態様はすべて同一であるが、これに限定されない。アバター80を操作するユーザに関するデータ又はユーザが選択したアバター80のパーツに関連付けられたIDに関するデータに基づいてアバター80の表示態様を決定してもよい。ここで、「アバター80の表示態様」とは、アバター80の形状及び/又は色彩である。
また、ユーザの動作に連動して仮想空間内のアバターの動作が変化してもよい。例えば、ユーザが頷く動作をした場合に仮想空間内のアバターも同様に頷く動作をしてもよい。ここで、動作データは、例えば、モーションキャプチャシステムを用いて取得され得る。本開示による利益を有する当業者により容易に理解されるように、本件出願において開示される装置及び方法とともに使用され得る幾つかの例の適切なモーションキャプチャシステムは、パッシブマーカ若しくはアクティブマーカを用いた又はマーカを用いない光学式モーションキャプチャシステムと、慣性式及び磁気式の非光学式システムとを含む。モーションデータは、モーションデータを動画又は他のイメージデータに変換するコンピュータに結合された、(CCD(電荷結合デバイス)又はCMOS(相補型金属酸化膜半導体)イメージセンサといったような)イメージキャプチャ装置を用いて取得され得る。
図5に示される第1アバター80Aを操作する場合には、例えば、第1端末11の表示部140は、図6のような画面を表示する。
図6は、第1端末11の表示部140が表示する表示画面の例を示す図である。図6に示されるように、表示部140は、仮想空間300を表示する。具体的には、例えば、表示部140は、仮想空間300内に存在する、アバター80及び仮想会場310を表示する。なお、以後、単に「制御部130」と記載した場合には、「第1端末11の制御部130」を指すものとし、単に「表示部140」と記載した場合には、「第1端末11の表示部140」を指すものとする。
アバター80は、例えば、第1アバター80Aと第2アバター80Bとを含む。第1アバター80Aは、例えば、図6に示される仮想空間300を表示する第1端末11を有する第1ユーザによって操作されるアバターである。第2アバター80Bは、例えば、第1ユーザとは別のユーザによって操作されるアバターである。表示部140は、第1アバター80Aの背面を表示し、第1端末11を操作する第1ユーザの視線と、第1ユーザに対応する第1アバター80Aの視線と、が同じ方向である。
表示部140は、例えば、第1アバター80Aよりも図6の紙面手前方向に位置する仮想視点を基準として第1アバター80Aを含む仮想空間内の領域を表示する。表示部140は、例えば、仮想空間300のうち第1アバター80Aの進行方向を含む領域を表示する。すなわち、第1アバター80Aの視線方向(視界)に対応する領域が表示部140に表示される。第1アバター80Aの進行方向(視線方向)については後述する。なお、第1アバター80Aの動作に基づいて、表示部140は、仮想空間300内のうち所定の領域を表示する。例えば、第1アバター80Aの進行方向が180度変更されると、表示部140は、図6の表示に代えて、図6における第1アバター80Aの後方に存在する仮想オブジェクト等を表示してもよい。このように、第1アバター80Aの動作に基づいて、表示部140は、図6に示される領域以外の領域を表示してもよい。
第1端末11を操作するユーザが第1アバター80Aを操作し、図6に示される第1アバター80Aが仮想会場310の内部に位置すると、表示部140は、例えば、図7の表示画面を表示する。なお、表示部140が図7の表示画面を表示する条件は、図6に示される第1アバター80Aが仮想会場310の内部に位置することに限定されるものではない。例えば、第1ユーザが第1端末11を用いて本開示に記載のアプリケーションを起動する場合において、第1ユーザが第1端末11を用いて図7のような表示画面を表示するための操作を行った場合に、表示部140は図7の表示画面を表示してもよい。
なお、図6において、第1ユーザによる第1アバター80Aの操作が行われると、第1端末11は、例えば、第1アバター80Aの仮想空間300内の位置に関するデータを取得する。なお、第1端末11が第1アバター80Aの仮想空間300内の位置に関するデータを取得するタイミングは任意のタイミングであってよい。また、第1端末11は当該データをサーバ20に送信してもよい。また、第1端末11が当該データをサーバ20に送信するタイミングは任意のタイミングであってよい。
また、第1端末11の表示部140のうち任意の領域をタッチ操作することができるようになっていてもよい。また、第1端末11が加速度センサ(図示省略)を備え、第1端末11を動作させた場合において、当該加速度センサに基づいて、表示部140が表示する表示領域及び/又は方向を変更できる構成であってもよい。ここで、上述の「任意の領域」は、例えば、図6の領域301及び/又は領域314を含む。領域301及び/又は領域314は、タッチ操作を行うことにより所定の表示制御を行うための操作ユーザインターフェースである。また、「タッチ操作」は、例えば、タップ、ダブルタップ、スワイプ、フリック、ピンチイン、及び、ピンチアウト、のうち少なくともいずれかの操作を指す。また、領域301は、図6に記載されているように、2つ設けられていてもよいし、1つ、又は3つ以上設けられていてもよい。なお、領域301が2つ以上に設けられる場合において、一の領域301が、例えば、第1アバター80Aを歩行させるために用いられる領域に対応し、他の領域301が、例えば、第1アバター80Aを歩行させるために用いられる領域に対応する。また、領域301及び/又は領域314は、図6の表示を行う場合のみならず、後述する他の図面(例えば、図7及び/又は図8)の表示を行う場合においても同一の位置又は異なる位置に表示されていてもよい。
また、第1端末11は、第1ユーザが表示部140をタッチ操作することで第1アバター80Aをジャンプ及び/又は歩行させることができるように構成されていてもよい。ここで、第1アバター80Aをジャンプさせるためのタッチ操作は、例えば、第1アバター80Aのいずれかの領域又は領域301をタップ又はダブルタップする操作である。この場合において、任意の点をタップ又はダブルタップする操作を行うと、表示部140は、第1アバター80Aと当該任意の点とを結ぶ線分を任意の色で表示し、第1アバター80Aは、当該線分に沿って当該任意の点まで歩行する。また、第1アバター80Aを歩行させるためのタッチ操作は、任意の点をタップ又はダブルタップする操作である。この場合において、任意の点をタップ又はダブルタップする操作を行うと、表示部140は、第1アバター80Aと当該任意の点とを結ぶ線分を任意の色で表示し、第1アバター80Aは、当該線分に沿って当該任意の点まで歩行する。また、第1アバター80Aを歩行させるためのタッチ操作は、第1アバター80Aのいずれかの領域をフリックする操作を行うことで進行方向を変更した後に変更後の進行方向の仮想直線上の任意の点をタップ又はダブルタップする操作である。
また、第1端末11は、第1ユーザが表示部140の領域314を介して全アバター80のうち少なくとも一のアバター80に対応するユーザとチャットすることができるように構成されていてもよい。ここで、領域314は、アバター80に対応するユーザが端末10を介して入力するメッセージを表示する領域であり、例えば、矩形枠である。表示部140は、例えば、第2端末12から送信されるメッセージデータに含まれるメッセージを領域314に表示する。また、第1ユーザとチャットするユーザは、個人のユーザ又は出展企業である。
表示部140に表示領域314が表示される条件は、例えば、アバター80が仮想会場310内に位置している場合であるが、これに限定されるものではない。例えば、アバター80が仮想空間300内の所定領域内に位置している場合に、当該所定領域に対応する表示領域を表示部140に表示してもよい。すなわち、アバター80が存在する位置に応じて、表示部140に表示する表示領域が決定されてもよい。これにより、例えば、第1端末11は、第1ユーザが表示部140の表示領域314を介して、所定の領域内(同一の領域内)に存在する全アバター80に対応するユーザとチャットすることができる。したがって、ユーザは、自身のアバター80が存在する領域と同一領域に存在する他のアバター80に対応するユーザとメッセージをやり取りすることができる。また、ユーザは、特定の属性のユーザとのチャットを行うことができる。したがって、ユーザは、興味、関心、及び/又は属性が共通する他のユーザと容易にコミュニケーションを図ることができる。
また、表示部140が、複数のメッセージを領域314に表示する場合において、領域314内に全てのメッセージを表示できないような場合に、ユーザがタッチ操作を行うことで、表示部140は、領域314内に表示されていないメッセージを表示してもよい。ここで、領域314内に全てのメッセージを表示できないような場合におけるタッチ操作は、例えば、スワイプである。これにより、ユーザが領域314に表示されるメッセージを見逃す可能性を低減できる。
また、表示部140は、領域314の中に、少なくとも一のメッセージを表示し、その後、新たなメッセージを表示した場合には、当該新たなメッセージを優先して領域314に表示してもよい。また、表示部140は、領域314の中にメッセージを表示する場合において、当該メッセージとともに、当該メッセージに関するメッセージデータが送信された時刻を表示してもよい。これにより、ユーザが領域314に表示されるメッセージを見逃す可能性を低減できる。
図7は、第1端末11の表示部140が表示する表示画面の例を示す図である。図7に示されるように、仮想会場310は、仮想空間300内に設けられる会場の例である。図7に示されるように、表示部140は、仮想会場310を表示する。仮想会場310内には、例えば、第1アバター80A、椅子81、仮想オブジェクト81B、吹き出し82(第1表示領域)、表示領域311、及び、表示領域312が設けられる。
なお、第1アバター80Aが仮想会場310の外部(例えば図6)に存在する場合における表示画面を第1端末11のウェブブラウザを用いて表示する場合におけるURLは、第1アバター80Aが仮想会場310の内部(例えば図7)に存在する場合における表示画面を第1端末11のウェブブラウザを用いて表示する場合におけるURLとは異なる。したがって、第1端末11のウェブブラウザを用いる場合において、図6に示される第1アバター80Aが仮想会場310の内部に位置すると、URLが変更されることとなる。
第1アバター80Aは、例えば、第1ユーザが第1端末11を用いて操作するアバターである。第1ユーザは、第1端末11を用いて、仮想会場310内において第1アバター80Aを移動させることができる。制御部130は、仮想会場310内において第1アバター80Aを移動させる操作データに基づいて、表示部140を制御する。
椅子81は、アバター80及び/又は仮想オブジェクト81Bが着席可能な仮想オブジェクトである。椅子81は、例えば、複数設けられる。第1ユーザが第1アバター80Aを操作して1又は複数の椅子のうち特定の椅子に近づいて所定の操作を行うことで、表示部140は、特定の椅子に座るかどうかを尋ねるメッセージを表示してもよい。表示部140が、特定の椅子に座るかどうかを尋ねるメッセージを表示する場合において、第1ユーザが第1端末11を用いて当該メッセージに対して特定の椅子に座る意思を示す所定の操作を行うことで、表示部140は、第1アバター80Aが複数の椅子のうちいずれかの椅子に着席する表示を行う。なお、着席可能な仮想オブジェクトと共に、又は、着席可能な仮想オブジェクトに代えて、仮想区間300内の特定の場所を指定した場合にアバター80を着席させる構成を採用してもよい。この場合において、仮想区間300内の特定の場所に近づいて所定の操作を行うことで、第1端末11の表示画面には当該特定の場所に座るかどうかを尋ねるメッセージが表示されてもよい。第1端末11の表示画面に当該特定の場所に座るかどうかを尋ねるメッセージが表示される場合において、ユーザが端末10を操作して当該メッセージに対して当該特定の場所に座る意思を示す所定の操作を行うと、アバター80は当該特定の場所に座るように構成されてもよい。
仮想オブジェクト81Bは、第2アバター80Bに対応する仮想オブジェクトである。第2アバター80Bに対応する仮想オブジェクト81Bは、例えば、第2アバター80Bの描画に用いられるデータよりも少ないデータに基づいて描画されるものである。表示部140が複数の仮想オブジェクト81Bを表示する場合において、複数の仮想オブジェクト81Bのうち各々の仮想オブジェクト81Bは、例えば、略同一の形状及び/又は色彩で構成される。仮想オブジェクト81Bの色彩は、例えば、黒色である。このように、アバター80に対応する仮想オブジェクトを用いることで、簡易な表現で多人数の同時描画の負荷を軽減することができ、例えばスマートフォンのような端末でも視聴可能になる。なお、図7においては、仮想オブジェクト81Bが4体設けられる例について説明しているが、仮想オブジェクト81Bの数は4体に限定されるものではない。また、表示部140は、複数の仮想オブジェクト81Bの各々を異なる態様で表示してもよい。ここで、上述の「異なる態様」は、例えば、第1端末11の記憶部160が記憶するアバターパーツに基づいて対応する仮想オブジェクト81Bを生成することを指す。ここで、複数の仮想オブジェクト81Bの各々を異なる態様で表示すると、複数の仮想オブジェクト81Bの各々を同一の態様で表示する場合よりも、負荷が上がる可能性がある。一方、複数の仮想オブジェクト81Bの各々を異なる態様で表示すると、第2アバター80Bを表示する場合よりも描画にかかる処理の負荷を低減することができ、且つ、複数の仮想オブジェクト81Bを同一の態様で表示する場合よりも各仮想オブジェクト81Bの識別が容易になる。
表示領域311は、所定のコンテンツを表示するための領域である。所定のコンテンツは、例えば、動画であるが、これに限定されるものではない。表示領域312は、第1アバター80Aの向かう方向を示すものである。表示領域312の内部に示される三角形状のオブジェクトから扇形状のオブジェクトに向かう方向が、第1アバター80Aが向いている方向に相当する。第1ユーザが第1端末11を用いて第1アバター80Aの方向を変更することで、表示部140は、表示領域312の内部の扇形状のオブジェクトの向きを変更して表示する。これにより、第1ユーザは、第1アバター80Aが向いている方向を容易に特定することができる。
第1アバター80Aが向いている方向は、例えば、表示部140が表示する仮想空間300内における第1アバター80Aの進行方向(視線方向)である。第1アバター80Aが向いている方向は、例えば、図7における第1アバター80Aから表示領域311に向かう方向であり、例えば、図7に示す矢印方向(矢印90)である。第1アバター80Aが向いている方向は、例えば、第1アバター80Aを操作に伴って変化されうる。例えば、図7において第1アバター80Aの向きを180度変更する操作を行った場合においては、表示部140は当該操作に伴って表示を変更し、第1アバター80Aが向いている方向は、図7に示す矢印方向の反対側(根本側)の方向となる。
所定の時刻において、所定のコンテンツが表示領域311において再生される。ここで、仮想空間内で用いられる時刻は、現実の時刻と同一となるように同期した時刻であってもよいし、現実の時刻とは別に仮想空間300内で用いられる時刻であってもよい。なお、動画が表示領域311において再生される条件は、時刻に関するものでなくともよい。例えば、動画が表示領域311において再生される条件は、例えば、第1アバター80Aが仮想会場310内の所定位置に着席(着座)することであってもよい。
ここで、図7において表示領域314を表示することで、表示領域311に表示されるコンテンツを視聴しながら表示領域314を通して他のユーザとコミュニケーションを図ることができる。表示領域314に表示される当該他のユーザのメッセージの内容が表示領域311に表示されるコンテンツに関するものである場合には、第1ユーザは当該他のユーザとメッセージのやり取りを行うことで、第1ユーザが当該他のユーザと物理的に距離が離れている場合においても、第1ユーザに対して当該他のユーザと共に表示領域314に表示されるコンテンツを共に視聴しているような感覚を供することができる。
図7において、第1端末11が、サーバ20から第2データを受信した場合において、第1端末11の表示部140は、第2データに基づく表示を行う。第2データは、例えば、第2アバター80Bの仮想会場310内における位置データ、及び、第2アバター80Bに対応する端末10に入力される操作データ、のうち少なくともいずれかを含む。ここで、位置データは、第2アバター80Bに対応する仮想オブジェクト81Bを表示する仮想会場310内の位置の決定に用いられるものである。なお、操作データの具体例については後述する。
第2データに含まれる操作データが、第2端末12に入力されるメッセージに関するデータを含む場合には、第1端末11の表示部140は、吹き出し82及び吹き出し82に含まれるメッセージを表示する。吹き出し82は、メッセージデータを送信した端末10に対応する仮想オブジェクト81Bの周囲に表示されるものである。表示部140は、当該メッセージデータに含まれるメッセージを吹き出し82の中に表示する。これにより、吹き出し82と、当該メッセージデータを送信した端末10を操作するユーザと、の対応関係が明確になる。したがって、第1ユーザは、吹き出し82に含まれるメッセージを発信したユーザを認識することができる。
なお、少なくとも一の仮想オブジェクト81Bと、少なくとも一の吹き出し82と、を表示する場合において、いずれかの仮想オブジェクト81Bと、いずれかの吹き出し82と、が重複する場合には、表示部140は、当該仮想オブジェクト81Bと、当該吹き出し82と、が重複しないように、当該仮想オブジェクト81B及び/又は当該吹き出し82の表示位置を変更して表示してもよい。これにより、表示部140の視認性を悪化する可能性を低減することができる。
また、少なくとも一の仮想オブジェクト81Bと、少なくとも一の吹き出し82と、を表示する場合において、いずれかの仮想オブジェクト81Bと、いずれかの吹き出し82と、が重複する場合には、表示部140は、当該仮想オブジェクト81Bと、当該吹き出しと、が重複しないように、当該仮想オブジェクト81B及び当該吹き出し82の表示するタイミングを相違させて表示してもよい。これにより、表示部140の視認性を悪化する可能性を低減することができる。
また、複数の仮想オブジェクト81Bを表示する場合において、複数の仮想オブジェクト81Bの表示位置が重複する場合には、第1端末11の表示部140は、複数の仮想オブジェクト81Bの各々に対応する吹き出し82の表示位置を互いに相違させて表示してもよい。これにより、第1端末11の表示部140が、仮想会場310内の略同一の位置において複数の仮想オブジェクト81Bを表示する場合において、第1端末11の表示部140は、複数の吹き出し82の位置を相違させて表示する。これにより、表示部140の視認性を悪化する可能性を低減することができる。
また、仮想空間内における任意の位置と仮想オブジェクト81Bとの距離が所定値以上であるか否かに応じて、表示部140は、表示方法を変化させてもよい。例えば、仮想空間300内における任意の位置と仮想オブジェクト81Bとの距離が所定値未満である場合に、表示部140は、仮想オブジェクト81Bに対応するユーザの端末10から送信されるメッセージデータのメッセージを仮想オブジェクト81Bの周囲に表示するようにしてもよい。また、仮想空間300内における任意の位置と仮想オブジェクト81Bとの距離が所定値以上である場合に、表示部140は、仮想オブジェクト81Bに対応するユーザの端末10からメッセージに関するデータが送信された旨を仮想オブジェクト81Bの周囲に表示するようにしてもよい。ここで、上述の「任意の位置」とは、例えば、仮想空間300内において存在する第1アバター80Aの位置である。これにより、仮想オブジェクト81Bに対応する第2アバター80Bに対応するユーザの端末からメッセージデータが送信される場合において、第1ユーザが表示部140を介して当該メッセージデータに対応するメッセージを視認可能でない場合においても、表示部140は、当該メッセージに対応する仮想オブジェクト81Bを特定する表示を行うことができる。したがって、第1ユーザは、当該メッセージに対応する仮想オブジェクト81Bを特定することができる。
また、第2データに含まれる操作データが、仮想オブジェクト81Bに適用される少なくとも一つの色を指定するデータを含む場合には、第1端末11の表示部140は、当該指定に基づいてスキンを変更した仮想オブジェクト81Bを表示してもよい。また、第2データに含まれる操作データが、仮想オブジェクト81Bの周囲に位置する吹き出し82に適用される少なくとも一つの色及び/又は形状を指定するデータを含む場合には、第1端末11の表示部140は、当該指定に基づいて吹き出し82を表示してもよい。これにより、第1ユーザは所定の仮想オブジェクト81Bを他の仮想オブジェクト81Bとは異なるものと認識することができる。
また、第2データに含まれる操作データが、仮想オブジェクト81Bの動作を指定するデータを含む場合には、表示部140は、第2データに含まれる位置データ及び第2データに含まれる操作データに基づいて、仮想オブジェクト81Bの動作を経時的に変化させる表示(エモート表示)を行ってもよい。これにより、表示部140は変化に富んだ態様によって表示を行うことができる。
また、表示部140は、図6と同様に、領域314を表示してもよい。領域314は、例えば、第1アバター80Aを操作するユーザが用いる端末10から送信されるメッセージデータに含まれるメッセージを表示する、また、領域314は、例えば、第2アバター80Bを操作するユーザが用いる端末10から送信されるメッセージデータに含まれるメッセージを表示する。
また、表示部140は、例えば、領域314と他の領域とが重畳しないように仮想オブジェクト81Bを表示してもよい。ここで、「他の領域」とは、例えば、第2アバター80B、仮想オブジェクト81B及び/又は吹き出し82、の領域である。これにより、領域314に表示される表示を確認する場合における視認性が損なわれる可能性を低減することができる。
また、表示部140が、仮想オブジェクト81Bに対応するユーザの端末10から送信されるメッセージデータのメッセージを第1時刻において領域314に表示した後、当該メッセージは時間経過に依らず領域314に表示され続けてもよい。また、例えば、当該メッセージが第1時刻において領域314に表示された後、当該メッセージは所定時間経過後に領域314に表示されなくなってもよい。また、例えば、当該メッセージが第1時刻において領域314に表示された後、少なくとも一の別のメッセージが第1時刻よりも後に領域314に表示された場合に、第1時刻において領域314に表示されたメッセージを非表示にしてもよい。
また、表示部140が領域314を表示してユーザ同士がチャットを行う場合において、当該チャットにおけるユーザIDとアバター80とは、互いに紐づく構成であってもよいし、互いに紐づかない構成であってもよい。
図8は、第1端末11の表示部140が表示する表示画面の例を示す図である。図8は、第1端末11が、複数の第2アバターの各々のアバターを操作するユーザの端末10から送信される第2データを受信する場合において、第1端末11の表示部140が表示する内容を示している。ここで、第2データは、複数の第2アバターの各々の属性に関する属性データを含む。複数の第2アバター80Bの各々のアバターに対応する仮想オブジェクト81Bを表示する位置は、各属性データに基づいて決定される、ここで、例えば、属性データは、例えば、仮想空間300内で複数のグループが規定される場合において、各アバター80Bが当該複数のグループのいずれのグループに属するのかを特定するためのデータである。複数のグループは、例えば、仮想空間300内において説明会を行う場合において、説明会を行うグループと、説明会に出席するグループと、を含む。また、複数のグループは、例えば、仮想空間300内において対戦ゲームを行う場合において、一のグループと、当該一方のグループと対戦する他のグループと、を含む。また、複数のグループは、例えば、表示領域311に表示される2つの応援対象が存在する場合において、一方の応援対象を応援する一のグループと、他方の応援対象を応援する他のグループと、を含む。以下の説明においては、複数の第2アバターが、例えば、第3アバター、第4アバター、第5アバター、及び、第6アバターを含む場合で、且つ、第3アバター及び第4アバターが一のグループに属し、第5アバター及び第6アバターが他のグループに属する場合を例に説明する。
ここで、複数の第2アバターが第3アバター及び第4アバターを含み、第3アバターに関する属性データ及び第4アバターに関する属性データが同一の属性データ(第1属性データ)である場合に、第1端末11の表示部140は、第3アバターに対応する仮想オブジェクト81B3及び第4アバターに対応する仮想オブジェクト81B4を仮想会場310内の第2領域91内に表示する。したがって、仮に、仮想会場310内における第3アバターの位置が第2領域91以外である場合においても、表示部140は仮想オブジェクト81B3を仮想会場310内の第2領域91内に表示する。また、仮に、仮想会場310内における第4アバターの位置が第2領域91以外である場合においても、表示部140は仮想オブジェクト81B4を仮想会場310内の第2領域91内に表示する。
また、複数の第2アバターは第5アバター及び第6アバターを含み、第5アバターに関する属性データ及び第6アバターに関する属性データが同一の属性データ(第2属性データ)である場合に、第1端末11の表示部140を制御する制御データは、第5アバターに対応する仮想オブジェクト81B5及び第6アバターに対応する仮想オブジェクト81B6を仮想会場310内の第3領域92内に表示するように表示部を制御するデータを含む。したがって、仮に、仮想会場310内における第5アバターの位置が第3領域92以外である場合においても、表示部140は仮想オブジェクト81B5を仮想会場310内の第3領域92内に表示する。また、仮に、仮想会場310内における第6アバターの位置が第3領域92以外である場合においても、表示部140は仮想オブジェクト81B5を仮想会場310内の第3領域92内に表示する。なお、第2領域91及び第3領域92は、例えば、互いに重複しない領域である。
このように、第1端末11は、第3アバターに関する第1属性データ、第4アバターに関する第1属性データ、第5アバターに関する第2属性データ、及び、第6アバターに関する第2属性データを受信した場合において、第1端末11の表示部140は、例えば、図8の表示を行う。したがって、複数のアバターのうち同一の属性のアバターは仮想会場310内において互いに近くなるように配置される。これにより、同一の属性を有するアバターの容易に特定することができ、チャット等のコミュニケーションがとりやすくなる。第1端末11を操作する第1ユーザは、仮想会場310内に存在する複数のアバターのうち同一の属性を有するアバターの数を容易に特定することができる。
なお、複数の第2アバターの数は、第3アバター、第4アバター、第5アバター、及び、第6アバターの4体に限定されるものではない。複数の第2アバターの数は、例えば、2体又は3体であってもよいし、5体以上であってもよい。
また、属性データの種類は、第1属性データ及び第2属性データの2種類である例に限定されるものではない。属性データの種類は、例えば、3種類であってもよい。属性データの種類に対応して、仮想会場310内の独立した領域が割り当てられてもよい。例えば、属性データが3種類である場合には、各属性データに対応して仮想会場310内の1つの領域が割り当てられる。したがって、属性データが3種類である場合には、仮想会場310内には独立した3つの領域が割り当てられることとなる。
また、サーバ20は、同時接続数、ユーザ、及び、イベントの属性の少なくとも何れかに関するデータを第1端末11に送信してもよい。そして、第1端末11は、当該データを受信し、描画のパフォーマンスを考慮して、表示部140が表示するアバター80の総数を決定してもよい。これにより、第1端末11が、仮に、高度な性能を有しない場合においても、第1端末11は、第1端末11が有する性能の範囲内において、第1アバター80Aを操作する第1ユーザが同期を感じられるようにアバター80を描画することができる。また、第1端末11は、描画できる3Dモデルのメッシュの頂点数、マテリアル、及び、テクスチャーの枚数の少なくともいずれかを考慮して、上述のようにアバター80の総数を決定する。
また、図7及び図8において、表示部140は、吹き出し82と、吹き出し82の中に表示されるメッセージと、を同時に表示してもよいし、吹き出し82の中に表示されるメッセージよりも先行して吹き出し82を表示してもよい。また、表示部140は、吹き出し82に含まれるメッセージを表示してから所定時間経過後に吹き出し82に含まれるメッセージを非表示にしてもよい。このように、表示部140が、メッセージよりも先行して吹き出し82を先に表示することで、ユーザに対して、以後、メッセージが表示されることを知らせることができる。したがって、ユーザがメッセージを見逃すことを抑制することができる。
また、図7及び図8において、表示部140は、仮想オブジェクト81Bを表示してから所定時間経過後に仮想オブジェクト81Bを非表示にしてもよい。これにより、表示部140は、第1端末11がサーバ20から相対的に現時刻から離れたタイミングで受信した制御データに含まれる仮想オブジェクト81Bを非表示とする一方、第1端末11がサーバ20から相対的に現時刻に近いタイミングで受信した制御データに含まれる仮想オブジェクト81Bを表示することになる。したがって、表示部140は、仮想空間300(仮想会場310)内のよりリアルタイムに近い様子を表示することができる。また、表示部140が仮想空間300内において表示する仮想オブジェクト81Bの数が多い場合においても、表示してから相対的に時間が経過した仮想オブジェクト81Bを非表示にすることで、表示部140が仮想空間300内で仮想オブジェクト81B同士を重畳して表示する可能性を低減することができる。したがって、第1ユーザに対して視認性のよい仮想空間300内の表示画面を供することができる。また、表示部140は、仮想オブジェクト81Bを表示した後に吹き出し82の中のメッセージを表示し、吹き出し82の中のメッセージを非表示にした後に仮想オブジェクト81Bを非表示にしてもよい。このように、表示部140が、メッセージよりも先行して仮想オブジェクト81Bを先に表示することで、ユーザに対して、以後、仮想オブジェクト81Bに対応するメッセージが表示されることを知らせることができる。したがって、ユーザがメッセージを見逃すことを抑制することができる。また、表示部140が、吹き出し82の中のメッセージを非表示にした後に仮想オブジェクト81Bを非表示にすることで、表示部140がメッセージを表示し且つ当該メッセージに対応する仮想オブジェクト81Bを表示しないという可能性を低減することができる。したがって、第1ユーザがメッセージの送信元の仮想オブジェクト81Bの特定が困難となる可能性を低減できる。このようにして、表示部140がメッセージに対応する仮想オブジェクト81Bを表示しないことに因る違和感が生じる可能性を低減することができる。
また、第1端末11は、仮想会場310内に存在する第2アバター80Bのうち、第1アバター80Aが向いている方向に存在する第2アバター80Bに関するデータのみを取得してもよい(ケース1)。また、第1端末11は、仮想会場310内に存在する第2アバター80Bのうち、第1アバター80Aが向いている方向及び第1アバター80Aが向いている方向以外の方向に存在する第2アバター80Bに関するデータを取得してもよい(ケース2)。上述のケース2においては、上述のケース1よりも、第1アバター80Aの向きを変更した場合において表示部140が相対的に遅延なく仮想オブジェクト81Bを表示することができる。
4.システム1000の動作
図9及び図10を参照してシステム1000の動作について説明する。図9及び図10は、図1に示したシステム1000を用いて行われる動作の一例を示すフローチャートである。
まず、図9を参照して、S111~S151について順に説明する。
S111において、第1ユーザは第1端末11を操作してアプリケーションを起動し、S112において、第2ユーザは第2端末12を操作してアプリケーションを起動する。
S121において、第1端末11は第1データを取得する。第1データは、例えば、第1端末11を用いて操作される仮想空間内のアバターに関するデータを含む。第1データは、第1ユーザに対応する第1アバター80Aの存在する位置(第1位置)に関するデータである。
S122において、第2端末12は第2データを取得する。第2データは、例えば、少なくとも一の第2アバターの仮想会場310内における位置データ及び第2端末12に入力される操作データを含む。S122の処理の後、第2端末12は第2データをサーバ20に送信する。
S131において、第1端末11は、第1端末11の表示部140を制御する処理(第1表示制御処理)を行う。第1表示制御処理は、例えば、仮想会場310内の表示画面を表示するように表示部140を制御する処理である。
S141において、第1端末11は第1判定処理を行う。ここで、第1判定処理は、第1データに含まれるデータに関する第1条件を満たすか否かを判定するものである。第1判定処理は、例えば、第1アバター80Aの位置(第1位置)が仮想会場310内である第1条件を満たすか否かを判定するものである。
S141において、第1端末11が、第1条件を満たしたと判定した場合に、通信回線を介して、第1アバター80A以外に仮想会場310内に存在する少なくとも一のアバターのうち少なくとも一の第2アバター80Bを操作するユーザの端末10から送信される第2データを受信する。一方、S141において、第1端末11が、所定の条件を満たしていないと判定した場合には、S141の処理が繰り返される。
S151において、第1端末11は、第2データに基づいて第1端末11の表示部140を制御する処理(第2表示制御処理)を行う。第2表示制御処理は、例えば、仮想会場310内の表示画面を表示している最中に、第2アバター80Bの仮想会場310内における位置データ、及び、第2アバター80Bに対応する端末10に入力される操作データ、のうち少なくともいずれかに基づく表示制御を指す。具体的には、第2表示制御処理は、例えば、仮想会場310内の表示画面を表示している最中に、第2端末12から送信されるメッセージデータに含まれるメッセージを吹き出し82の中に表示する表示制御を指す。また、具体的には、第2表示制御処理は、例えば、仮想会場310内の表示画面を表示している最中に、第2アバター80Bの仮想会場310内における位置データに基づいて決定された仮想会場310内の所定の位置に仮想オブジェクト81Bを表示する表示制御を指す。
なお、第1端末11は、第2端末12が第2データをサーバ20に送信する度に、サーバ20は当該第2データを第1端末11に送信してもよい。そして、第1端末11がサーバ20から当該第2データを受信する度に、第1端末11はS151の処理を行ってもよい。これにより、第1端末11は、第2端末12が操作する第2アバター80Bに関する表示内容をリアルタイムに表示部140に反映させることができる。
次に、図10を参照して、S111~S151について順に説明する。図9においては、第1端末11が第1判定処理を行う例について説明したが、これに対し、図10においては、サーバ20が第1判定処理を行う。したがって、図10においては、図9とは異なり、サーバ20は、第1判定処理を行い、制御データを第1端末11に送信する。また、図10においては、図9とは異なり、第1端末11が第1判定処理を行わないため、第2データを受信しない。したがって、図9においては、サーバ20が第1判定処理を行わないという点で、第1端末11の処理負荷を低減することができる。また、図10においては、第1端末11が第1判定処理を行わないという点で、第1端末11の処理負荷を低減することができる。
S111において、第1ユーザは第1端末11を操作してアプリケーションを起動し、S112において、第2ユーザは第2端末12を操作してアプリケーションを起動する。
S121において、第1端末11は第1データを取得する。第1データは、例えば、第1端末11を用いて操作される仮想空間内のアバターに関するデータを含む。第1データは、第1ユーザに対応する第1アバター80Aの存在する位置(第1位置)に関するデータである。
S122において、第2端末12は第2データを取得する。第2データは、例えば、少なくとも一の第2アバターの仮想会場310内における位置データ及び第2端末12に入力される操作データを含む。S122の処理の後、第2端末12は第2データをサーバ20に送信する。
S131において、第1端末11は、第1端末11の表示部140を制御する処理(第1表示制御処理)を行う。第1表示制御処理は、例えば、仮想会場310内の表示画面を表示するように表示部140を制御する処理である。
S141において、サーバ20は第1判定処理を行う。ここで、図10のS141の第1判定処理は、図9のS141の第1判定処理と同様である。S141において、サーバ20が、所定の条件(第1条件)を満たしたと判定した場合には、サーバ20は、制御データを決定し、当該制御データを第1端末11に送信する。一方、S141において、所定の条件を満たしていないと判定した場合には、S141の処理が繰り返される。なお、S141において決定される制御データは、第1端末11の表示画面を制御するデータである。
第1端末11が当該制御データに基づいて第1端末11の表示部140を制御する処理(第1表示制御処理)を行った場合で且つ第1端末11がサーバ20から制御データを受信した場合に、S151の処理が行われる。
S151において、第1端末11は、サーバ20から受信する制御データに基づいて第1端末11の表示部140を制御する処理(第2表示制御処理)を行う。第2表示制御処理は、例えば、仮想会場310内の表示画面を表示している最中に、第2アバター80Bの仮想会場310内における位置データ、及び、第2アバター80Bに対応する端末10に入力される操作データ、のうち少なくともいずれかに基づく表示制御を指す。具体的には、第2表示制御処理は、例えば、仮想会場310内の表示画面を表示している最中に、第2端末12から送信されるメッセージデータに含まれるメッセージを吹き出し82の中に表示する表示制御を指す。また、具体的には、第2表示制御処理は、例えば、仮想会場310内の表示画面を表示している最中に、第2アバター80Bの仮想会場310内における位置データに基づいて決定された仮想会場310内の所定の位置に仮想オブジェクト81Bを表示する表示制御を指す。
なお、第1端末11は、第2端末12が第2データをサーバ20に送信する度に、サーバ20は当該第2データに基づいて制御データを第1端末11に送信してもよい。そして、第1端末11がサーバ20から当該制御データを受信する度に、第1端末11はS151の処理を行ってもよい。これにより、第1端末11は、第2端末12が操作する第2アバター80Bに関する表示内容をリアルタイムに表示部140に反映させることができる。
また、図9の処理及び/又は図10の処理の少なくとも一部の処理は、適宜省略してもよい。また、図9の処理及び/又は図10の処理の少なくとも一部の処理は、適宜統合してもよい。
以上のように、第1端末11を用いて操作される仮想空間内の第1アバターが存在する第1位置に関する第1データを取得し、第1位置が仮想会場310内である第1条件を満たすか否かを判定し、第1条件を満たすと判定した場合に、通信回線を介して、第1アバター以外に仮想会場310内に存在する少なくとも一のアバターのうち少なくとも一の第2アバターを操作するユーザの端末10から送信される第2データを受信し、第2データは、少なくとも一の第2アバター80Bの仮想会場310内における位置データ及び端末に入力される操作データ、を含み、位置データは、少なくとも一の第2アバター80Bに対応する仮想オブジェクト81Bを表示する仮想会場310内の位置の決定に用いられ、第2データに基づいて、少なくとも、仮想オブジェクト81Bを、第1端末11の表示部140に表示するように表示部140を制御する制御データを決定し、制御データに基づいて表示部140を制御する。このように、第1端末11の表示部140は、第2アバター80Bに代えて第2アバター80Bに対応する仮想オブジェクト81Bを表示する。したがって、第1端末11が多数の第2アバター80Bに関する第2データを受信した場合においても、第1端末11は表示負荷を軽減して当該第2データを表示部140に反映することができる。以上のようにして、従来よりも表示制御の負荷が大きくなる可能性を低減することができる。
5.変形例
なお、図11に示されるように、図3に示される端末10以外に、第1センサ102a、第2センサ102b、カメラ102c、及び、マイクロフォン102dが設けられていてもよい。図11は、図3に示される端末10及び端末10に接続される構成の一例を示すブロック図である。ここで、端末10と、第1センサ102a、第2センサ102b、カメラ102c、及び、マイクロフォン102dの各々と、は、例えば、有線又は無線で接続される。
第1センサ102aは、例えば、有線又は無線で、カメラ102cと接続される。カメラ102cは、例えば、可視光線を撮像するRGBカメラと、近赤外線を撮像する近赤外線カメラと、を含むことができる。カメラ102cは、例えば、例えばiphone X(登録商標)のトゥルーデプス(True Depth)カメラに含まれたものを用いることが可能である。第2センサ102bは、例えば、有線又は無線で、マイクロフォン102dに接続される。なお、第1センサ102a及びカメラ102cが一の構成としても設けられていてもよい。また、第2センサ102b及びマイクロフォン102dが一の構成としても設けられていてもよい。
このようにして、端末10は、カメラ102cにより撮像された画像をサーバ20に送信してもよい。また、端末10は、マイクロフォン102dに入力された音声データをサーバ20に送信してもよい。また、端末10は、カメラ102c及びマイクロフォン102dを用いた動画データをサーバ20に送信してもよい。
図12は、トークンを送信及び使用して計算環境においてビデオをレンダリングすることを含む、本明細書において説明される実施形態、技法、及び、技術が実装されうる適切な計算環境1400の一般化された例を示す。 例えば、計算環境1400は、本明細書で記載されるように、端末装置(あるいは配信者、あるいは視聴者)、又は、配信サーバシステムなどのうちいずれかを実装することができる。
技術が、多様である汎用又は専用の計算環境で実装されうるため、計算環境1400は、技術の使用又は機能の範囲に関していかなる制限を示唆することを意図するものではない。例えば、本明細書において開示された技術は、様々な携帯用の装置、様々なマルチプロセッサシステム、様々なマイクロプロセッサベース又はプログラム可能な家庭用電化製品、様々なネットワークPC、様々なミニコンピュータ、様々なメインフレームコンピュータ、などを含む、他の様々なコンピュータシステム構成で実装されてもよい。本明細書において開示される技術は、通信ネットワークを通じてリンクされる遠隔処理装置によってタスクが実行される分散計算環境で実施されてもよい。分散計算環境においては、プログラムモジュールはローカル及びリモートの両方のメモリストレージ装置に配置されてもよい。
図12を参照して、計算環境1400は、少なくとも1つの中央処理装置1410及びメモリ1420を含む。図12では、この最も基本的な構成1430は、破線内に含まれている。中央処理装置1410は、コンピュータにより実行可能な命令を実行し、中央処理装置1410は、実プロセッサ又は仮想プロセッサであってもよい。マルチプロセッシングシステムでは、複数のプロセッシングユニットが、コンピュータにより実行可能な命令を実行して処理力を向上させるため、複数のプロセッサは、同時に稼働できる。メモリ1420は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ等)、又は、これら2つの幾つかの組み合わせであってもよい。メモリ1420は、例えば、本明細書に記載の技術を実装することができる、ソフトウェア1480、様々な画像、及び、ビデオを格納する。計算環境は、追加の様々な機能を有していいてもよい。例えば、計算環境1400は、ストレージ1440、1又は複数の入力装置1450、1又は複数の出力装置1460、及び、1又は複数の通信接続1470を含む。バス、コントローラ、又は、ネットワーク、などの相互接続機構(図示なし)は、計算環境1400の様々なコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア(図示なし)は、計算環境1400で実行される他のソフトウェア用にオペレーティング環境を提供し、及び、計算環境1400の様々なコンポーネントの様々なアクティビティを調整する。
ストレージ1440は、脱着可能であってもよいし、あるいは、脱着可能でなくてもよく、磁気ディスク、磁気テープ若しくはカセット、CD-ROM、CD-RW、DVD、又は、情報を記憶するために用いられ且つ計算環境1400内にアクセスされうる他のいかなる媒体を含む。 ストレージ1440は、本明細書で記載される技術を実装するために用いられうる、ソフトウェア1480、プラグインデータ、及び、メッセージ、のための命令を格納する。
1又は複数の入力装置1450は、キーボード、キーパッド、マウス、タッチスクリーンディスプレイ、ペン、若しくは、トラックボールなどのタッチ入力装置、音声入力装置、走査装置、又は、計算環境1400に入力を提供する別の装置、であってもよい。オーディオの場合、1又は複数の入力装置1450は、アナログ若しくはデジタル形式のオーディオ入力を受け入れるサウンドカード若しくは類似の装置、又は、様々なオーディオサンプルを計算環境1400に提供するCD-ROMリーダーであってもよい。1又は複数の出力装置1460は、ディスプレイ、プリンタ、スピーカ、CDライタ、又は、計算環境1400からの出力を提供する別の装置であってもよい。
1又は複数の通信接続1470は、通信媒体(例えば、接続ネットワーク)を介して別の計算エンティティへの通信を可能にする。通信媒体は、コンピュータにより実行可能な命令、圧縮グラフィックス情報、ビデオ、又は、変調データ信号に含まれる他のデータ、などの情報を伝達する。1又は複数の通信接続1470は、有線接続(例えば、メガビット若しくはギガビットイーサネット、インフィニバンド、又は、電気若しくは光ファイバー接続を介したファイバーチャネル)に限定されるものでなく、無線技術(例えば、Bluetooth、WiFi(IEEE 802.11a/b/n)、WiMax、セルラー、衛星、レーザー、赤外線、経由のRF接続)、並びに、本明細書において開示された様々なエージェント、様々なブリッジ、及び、宛先エージェントの様々なデータコンシューマ、にネットワーク接続を提供するための他の適切な様々な通信接続を含む。仮想ホスト環境においては、1又は複数の通信接続は、仮想ホストによって提供される仮想化されたネットワーク接続であってもよい。
本明細書において開示された様々な方法の様々な実施形態は、計算クラウド1490において、本明細書において開示された技術の全て又は一部を実装するコンピュータにより実行可能な複数の命令を用いて実行されうる。例えば、様々なエージェントは、計算環境において様々な脆弱性スキャン機能を実行可能である一方、エージェントプラットフォーム(例えば、ブリッジ)、及び、宛先エージェントデータのコンシューマサービスは、計算クラウド1490の内部に位置する様々なサーバで実行可能である。
コンピュータにより読み取り可能な媒体は、計算環境1400内でアクセスされうる任意の利用可能な媒体である。限定するものではなく、一例として、計算環境1400に関して、コンピュータにより読み取り可能な媒体は、メモリ1420及び/又はストレージ1440を含む。容易に理解されるように、コンピュータにより読み取り可能な媒体という用語は、メモリ1420及びストレージ1440などのデータ記憶用の媒体を含み、変調された様々なデータ信号などの伝送媒体を含まない。
上述した様々な実施形態は、矛盾又は不都合が生じない限りにおいて相互に組み合わせて用いることが可能なものである。本明細書に開示された発明の原理が適用され得る多くの可能な実施形態を考慮すれば、例示された様々な実施形態は好ましい様々な例に過ぎず、特許請求の範囲に係る発明の技術的範囲をこれらの好ましい様々な例に限定すると考えるべきではない、と理解されたい。実際には、特許請求の範囲に係る発明の技術的範囲は、添付した特許請求の範囲により定められる。したがって、特許請求の範囲に記載された発明の技術的範囲に属するすべてについて、本発明者らの発明として、特許の付与を請求する。
第1の態様によるコンピュータプログラムは、「少なくとも一のプロセッサにより実行されるコンピュータプログラムであって、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターが存在する第1位置に関する第1データを取得し、前記第1位置が第1領域内である第1条件を満たすか否かを判定し、前記第1条件を満たすと判定した場合に、通信回線を介して、前記第1アバター以外に前記第1領域内に存在する少なくとも一のアバターのうち少なくとも一の第2アバターを操作するユーザの端末から送信される第2データを受信し、前記第2データは、前記少なくとも一の第2アバターの前記第1領域内における位置データ及び前記端末に入力される操作データ、を含み、前記位置データは、前記少なくとも一の第2アバターに対応する仮想オブジェクトを表示する前記第1領域内の位置の決定に用いられ、前記第2データに基づいて、少なくとも、前記仮想オブジェクトを、前記第1端末の表示部に表示するように前記表示部を制御する制御データを決定し、前記制御データに基づいて前記表示部を制御する、ように前記少なくとも一のプロセッサを機能させる、」ものである。
第2の態様によるコンピュータプログラムは、「少なくとも一のプロセッサにより実行されるコンピュータプログラムであって、通信回線を介して、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターが存在する第1位置に関する第1データを受信し、前記第1位置が第1領域内である第1条件を満たすか否かを判定し、前記第1条件を満たすと判定した場合に、前記通信回線を介して、前記第1アバター以外に前記第1領域内に存在する少なくとも一のアバターのうち少なくとも一の第2アバターを操作するユーザの端末から送信される第2データを受信し、前記第2データは、前記少なくとも一の第2アバターの前記第1領域内における位置データ及び前記端末に入力される操作データ、を含み、前記位置データは、前記少なくとも一の第2アバターに対応する仮想オブジェクトを表示する前記第1領域内の位置の決定に用いられ、前記第2データに基づいて、少なくとも、前記仮想オブジェクトを、前記第1端末の表示部に表示するように前記表示部を制御する制御データを決定し、前記制御データを前記第1端末に送信する、ように前記少なくとも一のプロセッサを機能させる、」ものである。
第3の態様によるコンピュータプログラムは、上述の第1の態様又は第2の態様において、「前記操作データは、 前記端末に入力されるメッセージに関するデータ、前記仮想オブジェクトの色について少なくとも一つの色を指定するデータ、及び、前記仮想オブジェクトの動作を指定するデータ、のうち少なくともいずれかを含む」ものである。
第4の態様によるコンピュータプログラムは、上述の第3の態様において「前記操作データは、前記端末に入力されるメッセージに関するデータを含み、前記制御データは、前記位置データ及び前記操作データに基づいて前記仮想オブジェクト及び前記仮想オブジェクトの周囲に位置する前記メッセージに関する第1表示領域を前記第1端末の表示部に表示するように前記表示部を制御するデータを含む、」ものである。
第5の態様によるコンピュータプログラムは、上述の第4の態様において「前記操作データは、前記仮想オブジェクトに適用される少なくとも一つの色を指定するデータ、及び、前記仮想オブジェクトの周囲に位置し且つ前記メッセージを表示する前記第1表示領域に適用される少なくとも一つの色及び/又は形状を指定するデータ、を含み、前記制御データは、前記位置データ及び前記操作データに基づいて、前記少なくとも一つの色を用いて前記仮想オブジェクトを表示する、及び/又は、前記少なくとも一つの色及び/又は形状を用いて前記第1表示領域を表示する、ように前記表示部を制御するデータを含む、」ものである。
第6の態様によるコンピュータプログラムは、上述の第3~第5のいずれかの態様において「前記操作データは、前記仮想オブジェクトの動作を指定するデータを含み、前記制御データは、前記位置データ及び前記操作データに基づいて前記仮想オブジェクトの動作を経時的に変化させるように前記表示部を制御するデータを含む、」ものである。
第7の態様によるコンピュータプログラムは、上述の第4の態様において、「前記第2データは、複数のアバターの各々のアバターの前記第1領域内における位置データ及び前記複数のアバターの各々のアバターを操作するユーザの端末に入力される操作データと、を含み、前記制御データは、各前記位置データが同一の位置を示す場合に、各前記操作データに含まれるメッセージが前記表示部において表示される位置を互いに相違させるように前記表示部を制御するデータを含む、」ものである。
第8の態様によるコンピュータプログラムは、上述の第4の態様において「前記第2データは、複数のアバターの各々のアバターの前記第1領域内における位置データ及び前記複数のアバターの各々のアバターを操作するユーザの端末に入力される操作データと、を含み、前記制御データは、各前記位置データが同一の位置を示す場合に、各前記操作データに含まれるメッセージが前記表示部において表示される時刻を互いに相違させるように前記表示部を制御するデータを含む、」ものである。
第9の態様によるコンピュータプログラムは、上述の第4の態様において、「前記制御データは、前記仮想空間内における前記第1アバターと前記仮想オブジェクトとの距離に応じた前記メッセージに関する表示を前記仮想オブジェクトの周囲に表示するように前記表示部を制御するデータを含む、」ものである。
第10の態様によるコンピュータプログラムは、上述の第1~第9のいずれかの態様において、「前記制御データは、前記仮想空間内における前記第1アバターと前記仮想オブジェクトとの距離が所定値未満である場合に、前記仮想オブジェクトに対応する前記少なくとも一の第2アバターを操作するユーザの端末から送信されるデータに含まれる前記メッセージを前記仮想オブジェクトの周囲に表示するように前記表示部を制御するデータを含む、」ものである。
第11の態様によるコンピュータプログラムは、上述の第9の態様において「前記制御データは、前記仮想空間内における前記第1アバターと前記仮想オブジェクトとの距離が所定値以上である場合に、前記仮想オブジェクトに対応する前記少なくとも一の第2アバターを操作するユーザの端末から前記メッセージに関するデータが送信された旨を前記仮想オブジェクトの周囲に表示するように前記表示部を制御するデータを含む、」ものである。
第12の態様によるコンピュータプログラムは、上述の第1~第11のいずれかの態様において、「前記制御データは、前記仮想オブジェクトを前記表示部に表示してから所定時間経過後に前記仮想オブジェクトを非表示にするように前記表示部を制御するデータを含む、」ものである。
第13の態様によるコンピュータプログラムは、上述の第4の態様において「前記制御データは、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを前記表示部に表示してから所定時間経過後に前記メッセージを非表示にするように前記表示部を制御するデータを含む、」ものである。
第14の態様によるコンピュータプログラムは、上述の第13の態様において、「前記制御データは、前記仮想オブジェクトを前記表示部に表示した後に前記メッセージを前記表示部に表示し、前記表示部に表示された前記メッセージを非表示にした後に前記表示部に表示された前記仮想オブジェクトを非表示にする、ように前記表示部を制御するデータを含む、」ものである。
第15の態様によるコンピュータプログラムは、上述の第1の態様又は第2の態様において、「前記少なくとも一の第2アバターは、複数の第2アバターであり、前記第2データは、前記複数の第2アバターの各々のアバターを操作するユーザの端末から送信されるデータであり、前記第2データは、前記複数の第2アバターの各々の属性に関する属性データを含み、前記複数の第2アバターの各々のアバターに対応する仮想オブジェクトを表示する前記第1領域内の位置は、各前記属性データに基づいて決定される、」ものである。
第16の態様によるコンピュータプログラムは、上述の第15の態様において、「前記複数の第2アバターは第3アバター及び第4アバターを含み、前記第3アバターに関する属性データ及び前記第4アバターに関する属性データが第1属性データである場合に、前記制御データは、前記第3アバターに対応する仮想オブジェクト及び前記第4アバターに対応する仮想オブジェクトを前記第1領域内の第2領域内に表示するように前記表示部を制御するデータを含む、」ものである。
第17の態様によるコンピュータプログラムは、上述の第16の態様において、「前記複数の第2アバターは第5アバター及び第6アバターを含み、前記第5アバターに関する属性データ及び前記第6アバターに関する属性データが第2属性データである場合に、前記制御データは、前記第5アバターに対応する仮想オブジェクト及び前記第6アバターに対応する仮想オブジェクトを前記第1領域内の第3領域内に表示するように前記表示部を制御するデータを含み、前記第2領域及び前記第3領域は重複領域を有しない」ものである。
第18の態様によるコンピュータプログラムは、上述の第1~第17のいずれかの態様において、「前記第1領域内に、動画を表示する第2表示領域が設けられる、」ものである。
第19の態様によるコンピュータプログラムは、上述の第1~第18のいずれかの態様において、「前記仮想空間は3次元空間である、」ものである。
第20の態様によるコンピュータプログラムは、上述の第1~第19のいずれかの態様において、「前記通信回線がインターネットを含む、」ものである。
第21の態様によるコンピュータプログラムは、上述の第1~第20のいずれかの態様において、「前記少なくとも1つのプロセッサが、中央処理装置(CPU)、マイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含む」ものである。
第22の態様による方法は、上述の第1~第21のいずれかの態様において、「前記少なくとも1つのプロセッサが、サーバ、スマートフォン、タブレット、携帯電話、または、パーソナルコンピュータに搭載される、
」ものである。
第23の態様による方法は、「少なくとも一のプロセッサにより実行される方法であって、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターが存在する第1位置に関する第1データを取得する工程と、前記第1位置が第1領域内である第1条件を満たすか否かを判定する工程と、前記第1条件を満たすと判定した場合に、通信回線を介して、前記第1アバター以外に前記第1領域内に存在する少なくとも一のアバターのうち少なくとも一の第2アバターを操作するユーザの端末から送信される第2データを受信する工程と、を含み、前記第2データは、前記少なくとも一の第2アバターの前記第1領域内における位置データ及び前記端末に入力される操作データ、を含み、前記位置データは、前記少なくとも一の第2アバターに対応する仮想オブジェクトを表示する前記第1領域内の位置の決定に用いられ、前記第2データに基づいて、少なくとも、前記仮想オブジェクトを、前記第1端末の表示部に表示するように前記表示部を制御する制御データを決定する工程と、前記制御データに基づいて前記表示部を制御する工程と、を含む」ものである。
第24の態様による方法は、「少なくとも一のプロセッサにより実行される方法であって、通信回線を介して、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターが存在する第1位置に関する第1データを受信する工程と、前記第1位置が第1領域内である第1条件を満たすか否かを判定する工程と、前記第1条件を満たすと判定した場合に、前記通信回線を介して、前記第1アバター以外に前記第1領域内に存在する少なくとも一のアバターのうち少なくとも一の第2アバターを操作するユーザの端末から送信される第2データを受信する工程と、を含み、前記第2データは、前記少なくとも一の第2アバターの前記第1領域内における位置データ及び前記端末に入力される操作データ、を含み、前記位置データは、前記少なくとも一の第2アバターに対応する仮想オブジェクトを表示する前記第1領域内の位置の決定に用いられ、前記第2データに基づいて、少なくとも、前記仮想オブジェクトを、前記第1端末の表示部に表示するように前記表示部を制御する制御データを決定する工程と、前記制御データを前記第1端末に送信する工程と、を含む、」ものである。
第25の態様による方法は、上述の第23又は第24の態様において、「前記仮想空間は3次元空間である、」ものである。
第26の態様による方法は、上述の第24又は第25の態様において「前記通信回線がインターネットを含む、」ものである。
第27の態様による方法は、上述の第23~第26のいずれかの態様において、「前記少なくとも1つのプロセッサが、中央処理装置(CPU)、マイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含む、」ものである。
第28の態様による方法は、上述の第23~第27のいずれかの態様において、「前記少なくとも1つのプロセッサが、サーバ、スマートフォン、タブレット、携帯電話、または、パーソナルコンピュータに搭載される、
」ものである。
第29の態様によるサーバは、「少なくとも一のプロセッサを具備し、通信回線を介して、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターが存在する第1位置に関する第1データを受信し、前記第1位置が第1領域内である第1条件を満たすか否かを判定し、前記第1条件を満たすと判定した場合に、前記通信回線を介して、前記第1アバター以外に前記第1領域内に存在する少なくとも一のアバターのうち少なくとも一の第2アバターを操作するユーザの端末から送信される第2データを受信し、前記第2データは、前記少なくとも一の第2アバターの前記第1領域内における位置データ及び前記端末に入力される操作データ、を含み、前記位置データは、前記少なくとも一の第2アバターに対応する仮想オブジェクトを表示する前記第1領域内の位置の決定に用いられ、前記第2データに基づいて、少なくとも、前記仮想オブジェクトを、前記第1端末の表示部に表示するように前記表示部を制御する制御データを決定し、前記制御データを前記第1端末に送信する、」ものである。
第30の態様によるサーバは、上述の第29の態様において、「前記仮想空間は3次元空間である、」ものである。
第31の態様によるサーバは、上述の第29の態様又は第30の態様において、「前記通信回線がインターネットを含む、」ものである。
第32の態様によるサーバは、上述の第29~第31のいずれかの態様において、「前
前記少なくとも1つのプロセッサが、中央処理装置(CPU)、マイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含む、ものである。