本明細書は、いかなる方法によっても限定されることを意図していない、代表的な様々な実施形態という意味により記載される。本件出願において用いられるように、「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のS141~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において第1端末11から第1データを受信し、後述する図10において第1端末11に制御データを送信し、後述する図10において第2端末12から第2データを受信し、後述する図10において第1端末11に第2データを送信する。
(2)記憶部220
記憶部220は、アプリケーションの実行に用いられる様々なデータを記憶するものである。記憶部220は、例えば、第1端末11から送信される第1データ及び第2端末12から送信されるデータを記憶する。
(3)制御部230
制御部230は、例えば、通信部210において受信したデータに基づいて各種制御を行うものである。制御部230は、例えば、後述する図10のS133の処理を行う。
図5は、端末10の表示部140が表示する表示画面の例を示す図である。図5は、端末10を操作してアプリケーションを起動することで端末10の表示部140に表示される表示例を示す図である。図5に示されるように、表示部140は仮想空間300を表示する。仮想空間300は、例えば、3次元空間である。仮想空間300内には、アバター80及び第1仮想会場310が示される。
アバター80は、ユーザの操作により、例えば、歩行、走行及び跳躍(ジャンプ)のうち少なくともいずれかを仮想空間300内で行うことが可能なように構成されている。また、また、アバター80は、ユーザの操作により、例えば、仮想オブジェクトを調べる及び仮想オブジェクトに着席する、のいずれかを行うことが可能なように構成されている。ここで、仮想オブジェクトは、例えば、アバター80に対応するオブジェクト、ドア、椅子、などである。なお、端末10を用いてユーザがアバター80を操作すると、当該操作に関するデータが、サーバ20に送信される。
なお、表示部140に表示される複数のアバター80のうち少なくともいずれかのアバター80は、ユーザによる操作に基づいて動作するものであってもよいし、予め決定された動作に基づいて動作するものであってもよい。ここで、アバター80が、予め決定された動作に基づいて動作する場合には、アバター80は、NPC(Non Player Character)として動作することを意味する。
また、図5に示されるアバター80の表示態様はすべて同一であるが、これに限定されない。アバター80を操作するユーザに関するデータに基づいてアバター80の表示態様を決定してもよい。ここで、「アバター80の表示態様」とは、アバター80の形状及び/又は色彩である。
また、ユーザの動作に連動して仮想空間内のアバターの動作が変化してもよい。例えば、ユーザが頷く動作をした場合に仮想空間内のアバターも同様に頷く動作をしてもよい。ここで、動作データは、例えば、モーションキャプチャシステムを用いて取得され得る。本開示による利益を有する当業者により容易に理解されるように、本件出願において開示される装置及び方法とともに使用され得る幾つかの例の適切なモーションキャプチャシステムは、パッシブマーカ若しくはアクティブマーカを用いた又はマーカを用いない光学式モーションキャプチャシステムと、慣性式及び磁気式の非光学式システムとを含む。モーションデータは、モーションデータを動画又は他のイメージデータに変換するコンピュータに結合された、(CCD(電荷結合デバイス)又はCMOS(相補型金属酸化膜半導体)イメージセンサといったような)イメージキャプチャ装置を用いて取得され得る。
図5に示される第1アバター80Aを操作する場合には、例えば、第1端末11の表示部140は、図6のような画面を表示する。
図6は、第1端末11の表示部140が表示する表示画面の例を示す図である。図6に示されるように、表示部140は、仮想空間300を表示する。具体的には、例えば、表示部140は、仮想空間300内に存在する、アバター80及び第1仮想会場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の視線と、が同じ方向である。
なお、アバター80は、第1アバター80A及び第2アバター80B以外のユーザを含んでいてもよい。例えば、アバター80は、第1ユーザが友達登録していないユーザによって操作されるアバターを含んでもよい。アバター80が、第1ユーザが友達登録していないユーザによって操作されるアバターを含む場合において、第1ユーザは、第1ユーザが友達登録していないユーザによって操作されるアバターを友達登録することができるように構成されていてもよい。
また、図6において、表示部140は、第1アバター80Aを表示することに代えて、第1アバター80Aに対応する仮想オブジェクトを表示してもよい。また、図6において、表示部140は、第2アバター80Bを表示することに代えて、第2アバター80Bに対応する仮想オブジェクトを表示してもよい。なお、第1アバター80Aは、例えば、第1端末11の記憶部160に記憶されているモジュールデータに基づいて生成されるアバターである。同様に、他のアバター80は、例えば、当該他のアバター80に対応する端末10の記憶部160に記憶されているモジュールデータに基づいて生成されるアバターである。一方、第1アバター80Aに対応する仮想オブジェクトは、例えば、第1アバター80Aの描画に用いられるデータよりも少ないデータに基づいて描画されるものである。第1アバター80Aに対応する仮想オブジェクト及び他のアバター80に対応する仮想オブジェクトは、例えば、略同一の形状及び/又は色彩で構成されていてもよい。このように、アバター80に対応する仮想オブジェクトを用いることで、簡易な表現にすることで多人数の同時描画の負荷を軽減することができ、例えばスマートフォンのような端末で視聴可能になる。
表示部140は、例えば、第1アバター80Aよりも図6の紙面手前方向に位置する仮想視点を基準として第1アバター80Aを含む仮想空間内の領域を表示する。表示部140は、例えば、仮想空間300のうち第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が第1仮想会場310の内部に位置すると、表示部140は、例えば、図7の表示画面を表示する。以後、図7の表示画面に関するモードを第1モードと称することがある。なお、表示部140が図7の表示画面を表示する条件は、図6に示される第1アバター80Aが第1仮想会場310の内部に位置することに限定されるものではない。例えば、第1ユーザが第1端末11を用いて本開示に記載のアプリケーションを起動する場合において、第1ユーザが第1端末11を用いて第1モードを選択する操作を行った場合に、表示部140は図7の表示画面を表示してもよい。
なお、図6において、第1ユーザによる第1アバター80Aの操作が行われると、第1端末11は、例えば、第1アバター80Aの仮想空間300内の位置に関するデータを取得する。また、例えば、第1端末11が取得した第1アバター80Aの仮想空間300内の位置に関するデータはサーバ20に送信される。なお、第1端末11が第1アバター80Aの仮想空間300内の位置に関するデータを取得するタイミングは任意のタイミングであってよい。また、例えば、第1端末11が取得した第1アバター80Aの仮想空間300内の位置に関するデータがサーバ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に対応するユーザが入力するメッセージを表示する領域である。また、第1ユーザとチャットするユーザは、個人のユーザ又は出展企業である。また、領域314に複数のメッセージを表示する場合において、領域314内に全てのメッセージを表示できないような場合に、タッチ操作を行うことで、領域314内に表示されていないメッセージを表示することができる。ここで、領域314内に全てのメッセージを表示できないような場合におけるタッチ操作は、例えば、スワイプである。
図7は、第1端末11の表示部140が表示する表示画面の例を示す図である。以下に、図7に示される第1モードに関して説明する。図7には第1仮想会場310が示されている。第1仮想会場310は、仮想空間300内に設けられる会場の例である。図7に示されるように、表示部140は、例えば、第1アバター80A、仮想オブジェクト81B及び第1表示領域311を表示する。なお、第1アバター80Aが第1仮想会場310の外部(例えば図6)に存在する場合における表示画面を第1端末11のウェブブラウザを用いて表示する場合におけるURLは、第1アバター80Aが第1仮想会場310の内部(例えば図7)に存在する場合における表示画面を第1端末11のウェブブラウザを用いて表示する場合におけるURLとは異なる。したがって、第1端末11のウェブブラウザを用いる場合において、図6に示される第1アバター80Aが第1仮想会場310の内部に位置すると、URLが変更されることとなる。
第1アバター80Aは、例えば、第1ユーザが第1端末11を用いて操作するアバターである。第1ユーザは、第1端末11を用いて、第1仮想会場310内において第1アバター80Aを移動させることができる。第1モードにおいて、制御部130は、第1仮想会場310内において第1アバター80Aを移動させる操作データに基づいて、表示部140を制御する。
仮想オブジェクト81Bは、アバター80に対応する仮想オブジェクトである。仮想オブジェクト81Bは、例えば、第1ユーザと友達登録したユーザの第2アバター80Bに対応する仮想オブジェクトである。なお、仮想オブジェクト81Bは、第1ユーザと友達登録したユーザの第2アバター80Bに対応する仮想オブジェクトだけでなく、第1ユーザと友達登録していないユーザのアバター80に対応する仮想オブジェクトを含んでいてもよい。また、図7においては、仮想オブジェクト81Bが2体設けられる例について説明しているが、仮想オブジェクト81Bの数は2体に限定されるものではない。
第1表示領域311は、所定のコンテンツを表示するための領域である。所定のコンテンツは、例えば、動画であるが、これに限定されるものではない。
仮想オブジェクト81Bが、第1ユーザと友達登録したユーザの第2アバター80Bに対応する仮想オブジェクトと、第1ユーザと友達登録していないユーザのアバター80に対応する仮想オブジェクトと、を含む場合において、表示部140は、第1ユーザと友達登録したユーザの第2アバター80Bに対応する仮想オブジェクトと、第1ユーザと友達登録していないユーザのアバター80に対応する仮想オブジェクトと、を識別して表示してもよいし、識別しないで表示してもよい。図7に示されるように、各仮想オブジェクト81Bの色彩は、例えば、黒色である。
第1モードにおいて、表示部140は、第1ユーザと友達登録したユーザの第2アバター80Bに対応する仮想オブジェクトと、第1ユーザと友達登録していないユーザのアバター80に対応する仮想オブジェクトと、を識別して表示する場合には、第1ユーザと友達登録したユーザの第2アバター80Bに対応する仮想オブジェクトの態様と、第1ユーザと友達登録していないユーザのアバター80に対応する仮想オブジェクトの態様と、を相違させて表示する。なお、「仮想オブジェクトの態様」とは、例えば、仮想オブジェクトの形状及び/又は色彩である。
第1モードにおいて、第1ユーザは第1端末11を用いて所定の操作を行うことで、表示部140は、第1アバター80Aが第1仮想会場310内の所定位置において着席(着座)する表示を行う。なお、第1モードにおいて、表示部140は、第1アバター80Aが着席(着座)可能な場所を表示してもよいし、第1アバター80Aが着席(着座)可能な場所を表示しなくともよい。表示部140が、第1アバター80Aが着席(着座)可能な場所を表示しない場合においては、第1アバター80Aは任意の場所に着席(着座)することができる。
また、アバター80が当該仮想オブジェクトに着席する場合、または、アバター80が当該仮想オブジェクト以外の任意の場所に着席する場合において、表示部140は、アバター80が着席する前における表示画面とは別の表示画面を表示してもよいし、ユーザインターフェースを非表示にしてもよい。表示部140が、アバター80が着席する前における表示画面とは別の表示画面を表示する場合において、表示部140は、表示対象の画面等が全画面表示になるような表示を行ってもよい。
第1モードにおいて、表示部140が、第1アバター80Aが着席可能な場所を表示する場合において、表示部140は、着席可能な複数の椅子を表示してもよい。この場合において、例えば、第1ユーザが、第1端末11を用いて、複数の椅子のうちいずれかの椅子の近傍に第1アバター80Aを位置させた状態で、第1端末11を用いて、所定の操作を行うことで、表示部140は、第1アバター80Aが複数の椅子のうちいずれかの椅子に着席する表示を行う。第1アバター80Aが着席又は着座することで、図7に示される第1モードから図8に示される第2モードに移行する。すなわち、表示部140は、三人称視点に関する表示に代えて一人称視点に関する表示を行う。すなわち、表示部140は、第1アバター80Aを含む表示に代えて第1アバター80Aを含まない表示を行う。
また、例えば、ユーザが第1アバター80Aを操作して複数の椅子のうち特定の椅子に近づいて所定の操作を行うことで、表示部140は、特定の椅子に座るかどうかを尋ねるメッセージを表示してもよい。表示部140が、特定の椅子に座るかどうかを尋ねるメッセージを表示する場合において、第1ユーザが第1端末11を用いて当該メッセージに対して特定の椅子に座る意思を示す所定の操作を行うことで、表示部140は、第1アバター80Aが複数の椅子のうちいずれかの椅子に着席する表示を行う。第1アバター80Aが着席又は着座することで、図7に示される第1モードから図8に示される第2モードに移行する。
また、第1モードにおいて、制御部130は、第1アバター80A以外の少なくとも一のアバター80に対応する仮想オブジェクト81B、及び、第1アバター80A以外の少なくとも一のアバター80を操作するユーザが用いる端末10から送信されるメッセージデータに含まれるメッセージを表示する第2表示領域、を表示するように表示部140を制御してもよい。この場合において、表示部140は、当該メッセージデータを送信したアバター80に対応する仮想オブジェクト81Bの周囲に第2表示領域を表示し、且つ、当該メッセージデータに含まれるメッセージを第2表示領域の中に表示する。これにより、第2表示領域と、当該メッセージデータを送信した端末10を操作するユーザと、の対応関係が明確になる。したがって、第1ユーザは、第2表示領域に含まれるメッセージを発信したユーザを認識することができる。なお、第2表示領域は、例えば、吹き出しである。
なお、少なくとも一の仮想オブジェクト81Bと、少なくとも一の吹き出しと、を表示する場合において、いずれかの仮想オブジェクト81Bと、いずれかの吹き出しと、が重複する場合には、表示部140は、当該仮想オブジェクト81Bと、当該吹き出しと、が重複しないように、当該仮想オブジェクト81B及び/又は当該吹き出しの表示位置を変更し、表示してもよい。
また、少なくとも一の仮想オブジェクト81Bと、少なくとも一の吹き出しと、を表示する場合において、いずれかの仮想オブジェクト81Bと、いずれかの吹き出しと、が重複する場合には、表示部140は、当該仮想オブジェクト81Bと、当該吹き出しと、が重複しないように、当該仮想オブジェクト81B及び当該吹き出しの表示するタイミングを相違させて表示してもよい。
また、仮想空間内における任意の位置と仮想オブジェクト81Bとの距離が所定値以上である場合に、表示部140は、仮想オブジェクト81Bに対応する少なくとも一の第2アバターを操作するユーザの端末からメッセージに関するデータが送信された旨を仮想オブジェクト81Bの周囲に表示するようにしてもよい。ここで、上述の「任意の位置」とは、例えば、仮想空間300内において存在する第1アバター80Aの位置である。これにより、仮想オブジェクト81Bに対応する少なくとも一の第2アバターに対応するユーザからメッセージが送信される場合において、第1ユーザが表示部140を介して当該メッセージを視認可能でない場合においても、表示部140は、当該メッセージに対応する仮想オブジェクト81Bを特定する表示を行うことができる。したがって、第1ユーザは、当該メッセージに対応する仮想オブジェクト81Bを特定することができる。
図8は、第1端末11の表示部140が表示する表示画面の例を示す図である。図8は、第1ユーザが4人の友達を登録した場合において第1端末11の表示部140が表示する表示内容の例を示す図である。また、図8は、第1表示領域311に表示されるコンテンツを視聴する視聴モード(第2モード)に関する表示例を示す図である。以下に、図8に示される第2モードに関して説明する。ここで、図8に表示される友達は、第1ユーザが第1端末11を用いて実行するアプリケーションと同一のアプリケーションを実行し且つログインを行ったユーザである。
第2モードにおいて、表示部140は、友達登録したユーザの第2アバター80B及び/又は友達登録したユーザの第2アバター80Bに対応する仮想オブジェクト81Bを表示する。一方で、表示部140は、例えば、第1アバター80Aを表示しない。なお、表示部140は、友達登録した4人のユーザのうち一部のユーザの第2アバター80Bを表示し、友達登録した4人のユーザのうち残りの第2アバター80Bに対応する仮想オブジェクト81Bを表示してもよい。このように、表示部140が、第三人称目線に代えて第一人称目線による表示を行うことで、端末10を操作するユーザにとって没入感を向上させることができる。また、一部のユーザを、アバターに対応する仮想オブジェクトでなく、アバターで表示することで、よりリッチな表現になる。
第2モードにおいて、表示部140は、例えば、第2アバター80B及び/又は仮想オブジェクト81Bの周囲に吹き出し82を表示する。また、表示部140は、友達登録したユーザの端末から送信されるメッセージデータに含まれるメッセージを吹き出し82の中に表示する。これにより、吹き出し82に含まれるメッセージと友達登録したユーザとの対応関係が明確になる。したがって、第1ユーザは、吹き出し82に含まれるメッセージを発信したユーザを認識することができる。また、表示部140は、例えば、第1仮想会場310内の所定位置を基準として所定距離内に第2アバター80B及び/又は仮想オブジェクト81Bを表示する。
第2モードにおいて、表示部140は、例えば、第1表示領域311と他の領域とが重畳しないように仮想オブジェクト81Bを表示する。ここで、「他の領域」とは、例えば、第2アバター80B、仮想オブジェクト81B及び/又は吹き出し82、の領域である。これにより、第1表示領域311に表示されるコンテンツを視聴する場合に当該コンテンツの視認性が損なわれる可能性を低減することができる。
第2モードにおいて、表示部140が、第2アバター80Bを表示する場合において、第1端末11は、例えば、少なくとも一の第2アバター80Bのパーツ識別情報を含むパーツデータを取得する。表示部140は、当該パーツ識別情報に基づいて決定される少なくとも一の第2アバター80Bを表示する。
第2モードにおいて、所定の時刻において、所定のコンテンツが第1表示領域311において再生される。ここで、仮想空間内で用いられる時刻は、現実の時刻と同一となるように同期した時刻であってもよいし、現実の時刻とは別に仮想空間300内で用いられる時刻であってもよい。なお、動画が第1表示領域311において再生される条件は、時刻に関するものでなくともよい。例えば、動画が第1表示領域311において再生される条件は、例えば、第1アバター80Aが第1仮想会場310内の所定位置に着席(着座)することであってもよい。
なお、第2モードにおいて、表示部140が、複数の第2アバター80Bを表示する場合において、第1ユーザと友達登録した複数のユーザの第2アバター80Bの各々を異なる態様で表示してもよい。例えば、第2モードを行う前に、第2アバター80Bに対応するユーザがアバターパーツを選択した場合には、表示部140は、複数の第2アバター80Bを表示する場合において、当該アバターパーツを用いて第2アバター80Bの表示を行う。また、第2モードにおいて、表示部140が、第1ユーザと友達登録した複数のユーザの第2アバター80Bに対応する複数の仮想オブジェクトを表示する場合において、第1ユーザと友達登録した複数のユーザの第2アバター80Bに対応する複数の仮想オブジェクトの各々を異なる態様で表示してもよい。ここで、「異なる態様で表示」とは、設定しているアバターパーツのそれぞれに対応する仮想オブジェクトを表示することを指す。これにより、表示部140は、例えば、異なる形状及び/又は異なる色彩で、各仮想オブジェクトを表示することになる。
また、第2モードにおいて、第1ユーザが第1端末11を用いて第1操作を行うことで、第2モードから第1モードに切り替えられてもよい。なお、第1操作は、例えば、第2モードから第1モードへの切り替えを要求する操作である。また、第1操作は、例えば、第1ユーザが第1表示領域311に表示されるコンテンツを視聴して終わった場合などに離席する場合に行われる操作である。また、第1操作は、例えば、第1ユーザが第1表示領域311に表示されるコンテンツを視聴している最中において視聴を停止して離席する場合に行われる操作である。これにより、表示部140は、例えば、図7に示されるような画面を表示する。これにより、表示部140は、再び、第1アバター80A、仮想オブジェクト81B及び第1表示領域311を表示する。
また、第2モードにおいて、第1ユーザが第1操作以外の操作を行った場合に、第1端末11は、第1操作以外の操作を受け付けないように構成されていてもよい。これにより、第2モードにおいて、第1ユーザが誤って第1アバター80Aを移動させる操作を行った場合においても、表示部140は、図8に示されるような表示画面を継続して表示することができる。
また、制御部130は、表示部140が第2モードにおいて表示する第2アバター80B及び/又は仮想オブジェクト81Bの数の上限値(第1上限値)を決定してもよい。例えば、友達登録したユーザの数が、第1上限値を超える場合には、第1モードから第2モードに遷移する場合において、制御部130は、友達登録した複数のユーザの中から少なくとも一のユーザを決定してもよい。この場合において、制御部130は、第1ユーザが第1端末11を操作することで第1端末11から送信される操作データに基づいて、友達登録した複数のユーザの中から少なくとも一のユーザを決定してもよい。また、制御部130は、ランダムに、友達登録した複数のユーザの中から少なくとも一のユーザを決定してもよい。また、制御部130は、予め決定された優先順位に基づいて、友達登録した複数のユーザの中から少なくとも一のユーザを決定してもよい。制御部130が、友達登録した複数のユーザの中から少なくとも一のユーザを決定する場合において、少なくとも一のユーザの数は、第1上限値以下である。以上のようにして、表示部140は、第2モードにおいて、友達登録した複数のユーザの中から決定された少なくとも一のユーザに対応する第2アバター80B及び/又は友達登録した複数のユーザの中から決定された少なくとも一のユーザに対応する仮想オブジェクト81Bを表示する。なお、予め決定された優先順位とは、例えば、過去のグループ視聴履歴、過去のチャット履歴、ユーザ属性情報、及び、アバターパーツ情報、のうち少なくともいずれかの共通性などを考慮して決定される。
なお、サーバ20は、同時接続数、ユーザ、及び、イベントの属性の少なくとも何れかに関するデータを第1端末11に送信してもよい。そして、第1端末11は、当該データを受信し、描画のパフォーマンスを考慮して、表示部140が表示するアバター80の総数を決定してもよい。これにより、第1端末11が、仮に、高度な性能を有しない場合においても、第1端末11は、第1端末11が有する性能の範囲内において、第1アバター80Aを操作する第1ユーザが同期を感じられるようにアバター80を描画することができる。また、第1端末11は、描画できる3Dモデルのメッシュの頂点数、マテリアル、及び、テクスチャーの枚数の少なくともいずれかを考慮して、上述のようにアバター80の総数を決定する。
また、表示部140は、吹き出し82と、吹き出し82の中に表示されるメッセージと、を同時に表示してもよいし、吹き出し82の中に表示されるメッセージよりも先行して当該吹き出し82を表示してもよい。また、表示部140は、吹き出し82に含まれるメッセージを表示してから所定時間経過後に当該吹き出し82に含まれるメッセージを非表示にしてもよい。このように、表示部140が、メッセージよりも先行して吹き出し82を先に表示することで、ユーザに対して、以後、メッセージが表示されることを知らせることができる。したがって、ユーザがメッセージの見逃すことを抑制することができる。
また、第1アバター80Aが図6に示される仮想空間300内に存在する場合において、第1ユーザが第1端末11を用いて他のユーザを友達登録する操作を行うことができるように構成されていてもよい。また、第1アバター80Aが図7に示される第1仮想会場310内に存在し且つ図7に示される第1モードから図8に示される第2モードに移行する前において、第1ユーザが第1端末11を用いて他のユーザを友達登録する操作を行うことができるように構成されていてもよい。
また、第1ユーザが他のユーザを友達登録する条件は、第1端末11が、第1ユーザが他のユーザを友達登録することを要求するデータを送信した場合に満たされるものであってもよい。また、第1ユーザが他のユーザを友達登録する条件は、第1端末11が、第1ユーザが他のユーザを友達登録することを要求するデータを送信した場合で、且つ、当該他のユーザの端末10が、第1ユーザが他のユーザを友達登録する要求を承認するデータを送信した場合に満たされるものであってもよい。
また、第1モードにおいて、第1仮想会場310内に着席可能な場所が複数存在する場合において、表示部140は、第1アバター80Aが着席した場所に対応した第2モードに関する表示画面を表示してもよいし、表示部140は、第1アバター80Aが着席した場所に依らない第2モードに関する表示画面を表示してもよい。例えば、図7に示される仮想会場に、着席可能な位置が3か所設けられる場合において、第1アバター80Aが当該3ヶ所のうちいずれの位置に着席した場合においても、表示部140は、第2モードに関する表示として図8を表示してもよい。これにより、第1アバター80Aが着席した場所に依らず、表示部140は、第1表示領域311の全領域を表示することができる。表示部140が、第1アバター80Aが着席した場所に対応した第2モードに関する表示画面を表示することで、より現実感を持たせることができる。また、表示部140が、第1アバター80Aが着席した場所に依らない第2モードに関する表示画面を表示することで、描画処理の負荷を軽減することができる。
また、第1モードにおいて第1アバター80Aを着席させる動作を行った場合に、表示部140が第1モードから第2モードに切り替えられる例について説明したが、これに限定されない。例えば、第1アバター80Aを操作し、第1アバター80Aが第1仮想会場310のうち所定の領域内に位置した場合に、表示部140が第2モードに関する表示画面を表示してもよい。また、例えば、仮想空間300のうち第1仮想会場310とは異なる領域から第1仮想会場310に第1アバターを入場させる指示をする操作を行った場合に、表示部140が第2モードに関する表示画面を表示してもよい。ここで、「仮想空間300のうち第1仮想会場310とは異なる領域から第1仮想会場310に第1アバターを入場させる指示をする操作」とは、例えば、第1アバター80Aが図6に示される仮想空間300に存在する場合において所定の操作を行った場合である。「図6に示される仮想空間300に存在する場合において所定の操作」は、例えば、第1ユーザが第1端末11を用いて第1仮想会場310に第1アバター80Aを入場させる指示を含む操作である。また、第1ユーザが第1端末11を用いて本開示に記載のアプリケーションを起動する場合において、第1ユーザが第1端末11を用いて第2モードを選択する操作を行った場合に、表示部140は第2モードに関する表示画面を表示してもよい。
また、表示部140は、第1モード及び第2モードのうち少なくともいずれかのモードにおいて、チャットを時系列に並べて表示する第3表示領域(図示省略)を表示してもよい。第3表示領域は、例えば、矩形枠である。表示部140は、当該矩形枠の中に、端末10から送信されるメッセージデータに含まれるメッセージを表示する。表示部140は、当該矩形枠の中に、少なくとも一のメッセージを表示し、その後、新たなメッセージを表示した場合には、優先して表示してもよい。また、表示部140は、当該矩形枠の中にメッセージを表示する場合において、当該メッセージとともに、当該メッセージに関するメッセージデータが送信された時刻を表示してもよい。なお、端末10は、例えば、第1端末11及び第2端末12のみを含んでいてもよいし、第1端末11及び第2端末12以外の端末を含んでいてもよい。第3表示領域は、例えば、端末10から送信されるメッセージを表示する領域である。第3表示領域は、例えば、矩形枠であり、表示部140は、当該矩形枠の中に、端末10から送信されるメッセージデータに含まれるメッセージを表示する。表示部140は、例えば、第1端末11から送信されるメッセージデータに含まれるメッセージを第3表示領域に表示する。表示部140は、例えば、第2端末12から送信されるメッセージデータに含まれるメッセージを第3表示領域に表示する。
ここで、表示部140が、第3表示領域を表示する場合において、第2端末12からメッセージデータが送信された場合に、表示部140は、第2端末12に対応する第2アバター80Bの周囲の吹き出し82に当該メッセージを表示し、且つ、第3表示領域に当該メッセージを表示する。
また、表示部140が、第3表示領域を表示する場合において、表示部140は、第3表示領域と他の領域とが重畳しないように第3表示領域を表示してもよい。ここで、「他の領域」とは、例えば、第2アバター80B、仮想オブジェクト81B、吹き出し82及び/又は第1表示領域311、の領域である。これにより、第3表示領域に表示されるメッセージを確認する場合に当該メッセージの視認性が損なわれる可能性を低減することができる。
ここで、当該メッセージが第1時刻において第3表示領域に表示された後、当該メッセージは時間経過に依らず第3表示領域に表示され続けてもよい。また、例えば、当該メッセージが第1時刻において第3表示領域に表示された後、当該メッセージは所定時間経過後に第3表示領域に表示されなくなってもよい。また、例えば、当該メッセージが第1時刻において第3表示領域に表示された後、少なくとも一の別のメッセージが第1時刻よりも後に第3表示領域に表示された場合に、第1時刻において第3表示領域に表示されたメッセージを非表示にしてもよい。
なお、表示部140が第3表示領域を表示してユーザ同士がチャットを行う場合において、当該チャットにおけるユーザIDとアバター80とは、互いに紐づく構成であってもよいし、互いに紐づかない構成であってもよい。
4.システム1000の動作
図9及び図10を参照してシステム1000の動作について説明する。図9及び図10は、図1に示したシステム1000を用いて行われる動作の一例を示すフローチャートである。
まず、図9を参照して、S111~S151について順に説明する。
S111において、第1ユーザは第1端末11を操作してアプリケーションを起動し、S112において、第2ユーザは第2端末12を操作してアプリケーションを起動する。ここで、第2ユーザは、第1ユーザが友達登録しているユーザであるものとする。
S115において、第1端末11は、第1ユーザが複数の第2アバターの中から少なくとも一の第2アバターを選択する操作データを取得する。これにより、第1表示領域311に表示される所定のコンテンツを第1ユーザと共に視聴するユーザが決定される。第1ユーザと友達登録されるユーザが決定されると、第1ユーザと友達登録されるユーザに関するデータ(図9における、友達登録に関するデータ)は、サーバ20に送信される。
なお、図9においては、端末10が、第1端末11及び第2端末12の2つである例について説明しているが、端末10が、第1端末11及び第2端末12に加えて、少なくとも一の他の端末を含んでいてもよい。
S121において、第1端末11は第1データを取得する。第1データは、例えば、第1端末11を用いて操作される仮想空間内のアバターに関するデータを含む。第1データは、例えば、第1アバター80Aが第1仮想会場310内に存在する場合において第1アバター80Aを操作する操作データを含む。
S131において、第1端末11は第1判定処理を行う。ここで、第1判定処理は、第1データに含まれるデータに関する第1条件を満たすか否かを判定するものである。第1判定処理は、例えば、第1データが所定の操作データを含むか否かを判定するものである。ここで、所定の操作データは、例えば、第1アバター80Aが図7に示される第1仮想会場310内に存在する場合において、第1アバター80Aを着席させることを指示するデータである。
S131において、第1端末11は、第1判定処理を行う。S131において、第1端末11は、第1条件を満たしたと判定した場合に、第1端末11の表示部140を制御する制御データを決定し、S141の処理が実行される。一方、S131において、第1端末11が、所定の条件を満たしていないと判定した場合には、S131の処理が繰り返される。S131において決定される制御データは、第1端末11の表示画面を制御するデータである。また、S131において決定される制御データは、図7に示される第1モードから図8に示される第2モードに切り替えるように第1端末11の表示部140を制御するデータを含む。
S141において、第1端末11は、当該制御データに基づいて第1端末11の表示部140を制御する処理(第1表示制御処理)を行う。第1表示制御処理は、例えば、第2モードに関する表示(例えば図8)を行う表示制御処理を指す。具体的には例えば、第1端末11の表示部140は、S115において友達登録したユーザに対応するアバター80及び/又は仮想オブジェクト81Bを表示する。
S112の処理の後、S122において、第2端末12は第2データを取得し、第2端末12は第2データをサーバ20に送信する。ここで、第2データは、例えば、第2アバターを操作する第2端末12から送信されるメッセージデータである。サーバ20は、第2端末12から、第2データを受信し、第1端末11に、第2データを送信する。第1端末11がS141の処理を行った後で且つ第1端末11がサーバ20から第2データを受信した後にS151の処理が行われる。
S151において、第1端末11は、第2データに基づいて第1端末11の表示部140を制御する処理(第2表示制御処理)を行う。第2表示制御処理は、例えば、第2モードに関する表示(例えば図8)を行っている最中において、第2端末12から送信されるメッセージデータに含まれるメッセージを吹き出し82の中に表示する表示制御を指す。
次に、図10を参照して、S111~S151について順に説明する。
S111において、第1ユーザは第1端末11を操作してアプリケーションを起動し、S112において、第2ユーザは第2端末12を操作してアプリケーションを起動する。ここで、第2ユーザは、第1ユーザが友達登録しているユーザであるものとする。
S115において、第1端末11は、第1ユーザが複数の第2アバターの中から少なくとも一の第2アバターを選択する操作データを取得する。これにより、第1表示領域311に表示される所定のコンテンツを第1ユーザと共に視聴するユーザが決定される。第1ユーザと友達登録されるユーザが決定されると、第1ユーザと友達登録されるユーザに関するデータ(図10における、友達登録に関するデータ)は、サーバ20に送信される。
なお、図10においては、端末10が、第1端末11及び第2端末12の2つである例について説明しているが、端末10が、第1端末11及び第2端末12に加えて、少なくとも一の他の端末を含んでいてもよい。
S121において、第1端末11は第1データを取得する。第1データは、例えば、第1端末11を用いて操作される仮想空間内のアバターに関するデータを含む。第1データは、例えば、第1アバター80Aが第1仮想会場310内に存在する場合において第1アバター80Aを操作する操作データを含む。S121の後、サーバ20は、第1端末11から第1データを受信する。
S133において、サーバ20は第1判定処理を行う。ここで、図10のS133の第1判定処理は、図9のS131の第1判定処理と同様である。S133において、サーバ20が、所定の条件(第1条件)を満たしたと判定した場合には、サーバ20は、制御データを決定し、当該制御データを第1端末11に送信し、S141の処理が実行される。一方、S133において、所定の条件を満たしていないと判定した場合には、S133の処理が繰り返される。なお、S133において決定される制御データは、第1端末11の表示画面を制御するデータである。
S141において、第1端末11は、当該制御データに基づいて第1端末11の表示部140を制御する処理(第1表示制御処理)を行う。第1表示制御処理は、例えば、第2モードに関する表示(例えば図8)を行う表示制御処理を指す。
S112の処理の後、S122において、第2端末12は第2データを取得し、第2端末12は第2データをサーバ20に送信する。ここで、第2データは、例えば、第2アバターを操作する第2端末12から送信されるメッセージデータである。サーバ20は、第2端末12から、第2データを受信し、第1端末11に、第2データを送信する。第1端末11がS141の処理を行った後で且つ第1端末11がサーバ20から第2データを受信した後にS151の処理が行われる。
S151において、第1端末11は、第2データに基づいて第1端末11の表示部140を制御する処理(第2表示制御処理)を行う。第2表示制御処理は、例えば、第2モードに関する表示(例えば図8)を行っている最中において、第2端末12から送信されるメッセージデータに含まれるメッセージを吹き出し82の中に表示する表示制御を指す。
なお、第1端末11は、S121の処理の後、サーバ20から制御データ及び第2データを受信した場合に、S141の第1表示制御処理を行うとともにS151の第2表示制御処理を行ってもよい。この場合には、制御部130は、第1モードから第2モードへの切り替えを行う表示制御(第1表示制御処理)を行うとともに、第2モードにおいて第2端末12から送信されるメッセージデータに含まれるメッセージを吹き出し82の中に表示する表示制御(第2表示制御処理)を行うことになる。
また、図9及び/又は図10において、サーバ20は、第1端末11から受信する友達登録に関するデータを用いて各種処理を行う。例えば、図9及び/又は図10において、サーバ20は、第2端末12から第2データを受信した場合に、第2データを送信した第2端末12を操作するユーザが第1ユーザと友達登録したユーザであるか否かを判定する。そして、サーバ20は、第2データを送信した第2端末12を操作するユーザが第1ユーザと友達登録したユーザである場合に、サーバ20は、第2データを第1端末11に送信する。
また、図9の処理及び/又は図10の処理の少なくとも一部の処理は、適宜省略してもよい。
以上のように、第1表示領域311、第2アバター80B、及び、第2アバター80Bを操作する第2端末12から送信されるメッセージデータに含まれるメッセージ、を表示するように表示部140を制御する制御データを決定し、前記制御データに基づいて表示部140を制御する。このため、第1アバター80Aを操作するユーザは、第1表示領域311に表示される動画を視聴している最中に、友達登録したユーザの第2アバター80Bの周囲に表示されるメッセージを確認することができる。したがって、従来よりも興趣性が高くなる。
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アバター以外の少なくとも一のアバターのうち少なくとも一の第2アバター、及び、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを表示するように前記第1端末の表示部を制御する制御データを決定し、前記制御データに基づいて前記表示部を制御する、ように前記少なくとも一のプロセッサを機能させる」ものである。
第2の態様によるコンピュータプログラムは、「少なくとも一のプロセッサにより実行されるコンピュータプログラムであって、 通信回線を介して、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターの動作データを含む第1データを受信し、前記第1データに含まれるデータに関する第1条件を満たすか否かを判定し、前記第1条件を満たす場合に、前記仮想空間のうち第1仮想会場内において動画を表示する第1表示領域、前記第1アバター以外の少なくとも一のアバターのうち少なくとも一の第2アバター、及び、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを表示するように前記第1端末の表示部を制御する制御データを決定し、前記制御データを前記第1端末に送信する、ように前記少なくとも一のプロセッサを機能させる」ものである。
第3の態様によるコンピュータプログラムは、上述の第1の態様又は第2の態様において、「前記少なくとも一の第2アバターは、前記判定を行う前に決定される」ものである。
第4の態様によるコンピュータプログラムは、上述の第1~第3のいずれかの態様において「前記表示部は、前記メッセージデータを送信した端末によって操作されるアバターの周囲で且つ前記第1表示領域に重畳しないように前記メッセージを表示する」ものである。
第5の態様によるコンピュータプログラムは、上述の第4の態様において「前記表示部は、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを表示してから所定時間経過後に前記メッセージを非表示にする」ものである。
第6の態様によるコンピュータプログラムは、上述の第1~第5のいずれかの態様において「前記表示部は、前記少なくとも一の第2アバター及び前記第1表示領域を重畳しないように表示する」ものである。
第7の態様によるコンピュータプログラムは、上述の第1~第6のいずれかの態様において、「前記表示部は、所定位置を基準として所定距離内に前記少なくとも一の第2アバターを表示する」ものである。
第8の態様によるコンピュータプログラムは、上述の第1~第7のいずれかの態様において「前記少なくとも一の第2アバターは、複数の第2アバターであり、前記表示部は、前記複数のアバターのうち少なくとも2つのアバターの各々を異なる態様で表示する」ものである。
第9の態様によるコンピュータプログラムは、上述の第8の態様において、「前記少なくとも一の第2アバターのパーツ識別情報を含むパーツデータを取得し、前記表示部は、前記パーツ識別情報に基づいて決定される前記少なくとも一の第2アバターを前記表示部に表示する」ものである。
第10の態様によるコンピュータプログラムは、上述の第1~第9のいずれかの態様において、「前記表示部は、 前記第1アバター及び前記少なくとも一の第2アバターと異なる態様で表示される第3アバターを表示する」ものである。
第11の態様によるコンピュータプログラムは、上述の第1~第10のいずれかの態様において「前記第1条件は、前記第1データが、前記第1仮想会場内に設けられる席を選択することに応じて前記第1アバターを着座又は着席させる指示に関するデータを含むことである」ものである。
第12の態様によるコンピュータプログラムは、上述の第1~第10のいずれかの態様において、「前記第1条件は、前記第1データが、前記仮想空間のうち前記第1仮想会場とは異なる領域から前記第1仮想会場に前記第1アバターを入場させる指示に関するデータを含むことである」ものである。
第13の態様によるコンピュータプログラムは、上述の第1~第12のいずれかの態様において「前記判定は、前記表示部が前記第1アバターを表示する第1モードにおいて行われ、前記第1条件を満たした場合に決定される前記制御データは、前記第1モードから第2モードに切り替えるように前記第1端末の表示部を制御するデータを含み、前記第2モードにおいては、前記第1アバター以外の少なくとも一のアバターのうち少なくとも一の第2アバター、及び、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージが前記表示部に表示され、且つ、前記第1アバターが前記表示部に表示されない」ものである。
第14の態様によるコンピュータプログラムは、上述の第13の態様において、「 前記第2モードにおいて前記端末に対して第1操作が行われることで、前記第2モードから前記第1モードに切り替えられる」ものである。
第15の態様によるコンピュータプログラムは、上述の第14の態様において、「前記第1操作は、 前記第2モードから前記第1モードへの切り替えを要求する操作である」ものである。
第16の態様によるコンピュータプログラムは、上述の第13の態様において、「前記第1モードにおいて、前記第1仮想会場内において前記第1アバターを移動させる操作データに基づいて前記表示部が制御される」ものである。
第17の態様によるコンピュータプログラムは、上述の第10に従属する第13の態様において、「前記第1モードにおいて、前記少なくとも一のアバターに対応する仮想オブジェクト、及び、前記少なくとも一のアバターを操作するユーザが用いる端末から送信されるメッセージデータに含まれるメッセージを表示する第2表示領域、を表示するように前記表示部が制御される」ものである。
第18の態様によるコンピュータプログラムは、上述の第1~第17のいずれかの態様において、「前記仮想空間は3次元空間である」ものである。
第19の態様によるコンピュータプログラムは、上述の第2又は第2に従属する第3~第18のいずれかの態様において、「前記通信回線がインターネットを含む」ものである。
第20の態様によるコンピュータプログラムは、上述の第1~第19のいずれかの態様において、「前記少なくとも1つのプロセッサが、中央処理装置(CPU)、マイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含む」ものである。
第21の態様によるコンピュータプログラムは、上述の第1~第20のいずれかの態様において、「前記少なくとも1つのプロセッサが、サーバ、スマートフォン、タブレット、携帯電話、または、パーソナルコンピュータに搭載される」ものである。
第22の態様による方法は、「少なくとも一のプロセッサにより実行される方法であって、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターの動作データを含む第1データを取得する工程と、前記第1データに含まれるデータに関する第1条件を満たすか否かを判定する工程と、前記第1条件を満たす場合に、前記仮想空間のうち第1仮想会場内において動画を表示する第1表示領域、前記第1アバター以外の少なくとも一のアバターのうち少なくとも一の第2アバター、及び、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを表示するように前記第1端末の表示部を制御する制御データを決定する工程と、前記制御データに基づいて前記表示部を制御する工程と、を含む」ものである。
第23の態様による方法は、「少なくとも一のプロセッサにより実行される方法であって、通信回線を介して、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターの動作データを含む第1データを受信する工程と、前記第1データに含まれるデータに関する第1条件を満たすか否かを判定する工程と、前記第1条件を満たす場合に、前記仮想空間のうち第1仮想会場内において動画を表示する第1表示領域、前記第1アバター以外の少なくとも一のアバターのうち少なくとも一の第2アバター、及び、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを表示するように前記第1端末の表示部を制御する制御データを決定する工程と、前記制御データを前記第1端末に送信する工程と、を含む」ものである。
第24の態様による方法は、上述の第22又は第23の態様において、「前記仮想空間は3次元空間である」ものである。
第25の態様による方法は、上述の第23又は第23に従属する第24の態様において、「前記通信回線がインターネットを含む」ものである。
第26の態様による方法は、上述の第22~第25のいずれかの態様において「前記少なくとも1つのプロセッサが、中央処理装置(CPU)、マイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含む」ものである。
第27の態様による方法は、上述の第22~第26のいずれかの態様において「前記少なくとも1つのプロセッサが、サーバ、スマートフォン、タブレット、携帯電話、または、パーソナルコンピュータに搭載される」ものである。
第28の態様によるサーバは、「少なくとも一のプロセッサを具備し、通信回線を介して、第1ユーザの第1端末を用いて操作される仮想空間内の第1アバターの動作データを含む第1データを受信し、前記第1データに含まれるデータに関する第1条件を満たすか否かを判定し、前記第1条件を満たす場合に、前記仮想空間のうち第1仮想会場内において動画を表示する第1表示領域、前記第1アバター以外の少なくとも一のアバターのうち少なくとも一の第2アバター、及び、前記少なくとも一の第2アバターを操作する端末から送信されるメッセージデータに含まれるメッセージを表示するように前記第1端末の表示部を制御する制御データを決定し、前記制御データを前記第1端末に送信する」ものである。
第29の態様によるサーバは、上述の第28の態様において、「前記仮想空間は3次元空間である」ものである。
第30の態様によるサーバは、上述の第28又は第29の態様において、「前記通信回線がインターネットを含む」ものである。
第31の態様によるサーバは、上述の第28~第30のいずれかの態様において、「前記少なくとも1つのプロセッサが、中央処理装置(CPU)、マイクロプロセッサ、及び/又は、グラフィックスプロセッシングユニット(GPU)を含む」ものである。
このように、本開示の技術は、従来よりも興趣性の高いコンピュータプログラム、方法、及び、サーバを提供することができる。