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

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

▶ 17LIVE株式会社の特許一覧

特許7323700インタラクション型ユニバーサルライブストリーミング
<>
  • 特許-インタラクション型ユニバーサルライブストリーミング 図1
  • 特許-インタラクション型ユニバーサルライブストリーミング 図2
  • 特許-インタラクション型ユニバーサルライブストリーミング 図3
  • 特許-インタラクション型ユニバーサルライブストリーミング 図4
  • 特許-インタラクション型ユニバーサルライブストリーミング 図5
  • 特許-インタラクション型ユニバーサルライブストリーミング 図6
  • 特許-インタラクション型ユニバーサルライブストリーミング 図7
  • 特許-インタラクション型ユニバーサルライブストリーミング 図8
  • 特許-インタラクション型ユニバーサルライブストリーミング 図9
  • 特許-インタラクション型ユニバーサルライブストリーミング 図10
  • 特許-インタラクション型ユニバーサルライブストリーミング 図11
  • 特許-インタラクション型ユニバーサルライブストリーミング 図12
  • 特許-インタラクション型ユニバーサルライブストリーミング 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】インタラクション型ユニバーサルライブストリーミング
(51)【国際特許分類】
   H04N 21/25 20110101AFI20230801BHJP
   H04N 21/431 20110101ALI20230801BHJP
   H04N 21/854 20110101ALI20230801BHJP
【FI】
H04N21/25
H04N21/431
H04N21/854
【請求項の数】 15
(21)【出願番号】P 2022505629
(86)(22)【出願日】2021-03-10
(65)【公表番号】
(43)【公表日】2023-03-14
(86)【国際出願番号】 JP2021009628
(87)【国際公開番号】W WO2022190291
(87)【国際公開日】2022-09-15
【審査請求日】2022-01-27
【早期審査対象出願】
(73)【特許権者】
【識別番号】517287224
【氏名又は名称】17LIVE株式会社
(74)【代理人】
【識別番号】100126572
【弁理士】
【氏名又は名称】村越 智史
(74)【代理人】
【識別番号】110000752
【氏名又は名称】弁理士法人朝日特許事務所
(72)【発明者】
【氏名】チャン ユチュアン
(72)【発明者】
【氏名】チャン チアハン
(72)【発明者】
【氏名】チェン ユチュン
【審査官】大西 宏
(56)【参考文献】
【文献】特開2020-017243(JP,A)
【文献】特開2020-163043(JP,A)
【文献】特表2016-513826(JP,A)
【文献】国際公開第2004/075547(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 -21/858
(57)【特許請求の範囲】
【請求項1】
第1のビデオストリームおよび第1のコンテンツ情報を含むダウンストリームデータを受信するステップであって、前記第1のビデオストリームは第1の装置から送信され、前記第1のコンテンツ情報にはグラフィックオブジェクトが記述されるステップと、
前記第1の装置でのグラフィックオブジェクトへの第1のユーザインタラクションフィードバックを示す、第1のインタラクション情報を受信するステップと、
前記グラフィックオブジェクトを含む第1のコンテンツテクスチャを生成するステップであって、前記グラフィックオブジェクトの外観は、第1のコンテンツ情報および、前記第1のインタラクション情報に含まれる前記第1のユーザインタラクションフィードバックを使用して決定されるステップと、
前記第1のコンテンツテクスチャおよび第2のコンテンツテクスチャを含むビデオフレームを生成するステップであって、前記第2のコンテンツテクスチャは前記第1のビデオストリームから生成されるステップと、
前記第1の装置および第2の装置において前記ビデオフレームを表示するステップと、
前記第2の装置での前記ビデオフレームへの第2のユーザインタラクションフィードバックを受信するステップと、
前記第2のユーザインタラクションフィードバックを示す第2のインタラクション情報を送信するステップと、
前記グラフィックオブジェクトの外観を記述する少なくとも第2のコンテンツ情報を含むアップストリームデータを送信するステップと、
を含む方法であって、
前記アップストリームデータが、前記第2の装置で生成された第2のビデオストリームをさらに含む、方法
【請求項2】
前記ビデオフレームが、前記グラフィックオブジェクトを前記第1のコンテンツテクスチャ上にオーバーレイすることによって生成される
請求項1に記載の方法。
【請求項3】
前記第1のインタラクション情報が、第3の装置での前記グラフィックオブジェクトへの第3のユーザインタラクションフィードバックをさらに示す
請求項1に記載の方法。
【請求項4】
前記ダウンストリームデータが、第1のサーバから受信される
請求項1に記載の方法。
【請求項5】
前記アップストリームデータは、第1のサーバに送信される
請求項1に記載の方法。
【請求項6】
前記第1のインタラクション情報が、第2のサーバから受信される
請求項1に記載の方法。
【請求項7】
前記第2のインタラクション情報は、前記第2のサーバに送信される
請求項6に記載の方法。
【請求項8】
前記第1のユーザインタラクションフィードバックは、前記グラフィックオブジェクトのクリック、タップ及びドラッグのうちの少なくとも1つを含む
請求項1に記載の方法。
【請求項9】
前記グラフィックオブジェクトは、ビデオゲームにおけるキャラクタを含む、請求項1に記載の方法。
【請求項10】
レンダラ、制御層及び表示層を備える情報処理装置であって、
前記レンダラは、第1のビデオストリーム及び第1のコンテンツ情報を含むダウンストリームデータを受信するように構成され、
前記第1のビデオストリームは、別の装置から送信され、前記第1のコンテンツ情報は、グラフィックオブジェクトを記述し、
前記制御層は、前記別の装置の前記グラフィックオブジェクトへの第1のユーザインタラクションフィードバックを示す第1のインタラクション情報を受するように構成され
前記レンダラは、前記グラフィックオブジェクトを含む第1のコンテンツテクスチャを生成するように構成され
前記グラフィックオブジェクトの外観は、前記第1のコンテンツ情報および、前記第1のインタラクション情報に含まれる前記第1のユーザインタラクションフィードバックを使用して決定され
前記レンダラは、前記第1のコンテンツテクスチャと第2のコンテンツテクスチャを含むビデオフレームを生成するように構成され
前記第2のコンテンツテクスチャは、前記第1のビデオストリームから生成され、
前記表示層は、前記ビデオフレームを表示するように構成され
前記制御層は、前記ビデオフレームへの第2のユーザインタラクションフィードバックを受信するように構成され
前記制御層は、前記第2のユーザインタラクションフィードバックを示す第2のインタラクション情報を送信するように構成され
前記表示層は、前記グラフィックオブジェクトの外観を記述する少なくとも第2のコンテンツ情報を含むアップストリームデータを送信するように構成され、
第2のビデオストリームを生成するカメラ装置をさらに備え、前記第2のビデオストリームが前記レンダラに入力され、
前記レンダラは、前記第2のビデオストリームに応答して前記第2のコンテンツテクスチャを生成するように構成され、
前記レンダラは、前記第1のコンテンツテクスチャと前記第2のコンテンツテクスチャとをブレンドするように構成され、
前記アップストリームデータは、前記ブレンドされた前記第1のコンテンツテクスチャと前記第2のコンテンツテクスチャとを含む
情報処理装置
【請求項11】
前記レンダラは、少なくとも第1のコンテンツプロセッサと第2のコンテンツプロセッサとを含み、
前記第1のコンテンツプロセッサは、前記第1のコンテンツテクスチャを生成するように構成され、
前記第2のコンテンツプロセッサは、前記第2のコンテンツテクスチャを生成するように構成される
請求項10に記載の情報処理装置。
【請求項12】
前記レンダラは、テクスチャプロセッサをさらに含み、
前記テクスチャプロセッサは、前記第1のコンテンツテクスチャと前記第2のコンテンツテクスチャとをブレンドし、前記ブレンドされたコンテンツテクスチャを前記ビデオフレームとして出力するように構成される
請求項11に記載の情報処理装置。
【請求項13】
前記レンダラは、前記グラフィックオブジェクトを前記第1のコンテンツテクスチャ上にオーバーレイすることによって前記ビデオフレームを生成するように構成される
請求項10に記載の情報処理装置。
【請求項14】
前記第1のインタラクション情報は、第3の装置での前記グラフィックオブジェクトへの第3のユーザインタラクションフィードバックをさらに示す
請求項10に記載の情報処理装置。
【請求項15】
前記グラフィックオブジェクトは、ビデオゲームにおけるキャラクタを示す
請求項10に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ライブストリーミング上のインタラクションに関する。
【背景技術】
【0002】
ユーザが相互のオンライン通信に参加することを可能にする様々な技術が知られている。例えば、特許文献1には、2つのユーザ端末が画面上のポインタを共有することを可能にする技術が開示されている。特許文献2には、複数の装置のビデオゲーム画面にコンテンツを合成する技術が開示されている。特許文献3には、コンテンツ画面と、コンテンツ画面を制御するための操作入力とを複数の装置間で共有する技術が開示されている。特許文献4には、コンテンツとユーザとの間のインタラクション技術が開示されている。特許文献5には、ARコンテンツを複数の装置で共有する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許出願公開第2006/125837号明細書
【文献】米国特許出願公開第2018/221762号明細書
【文献】米国特許出願公開第2012/093486号明細書
【文献】米国特許第41924809号明細書
【文献】米国特許第10200654号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
ライブストリーミングの人気が高まるにつれて、ライブストリーミングにおける改善されたインタラクション型体験に対するユーザの要求が高まっている。
【0005】
そこで本開示は、ライブストリーミングとユーザインタラクションとの間の同期のための技術の提供を目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様は、第1のビデオストリームおよび第1のコンテンツ情報を含むダウンストリームデータを受信するステップであって、前記第1のビデオストリームは第1の装置から送信され、前記第1のコンテンツ情報にはグラフィックオブジェクトが記述されるステップと、第1の装置でのグラフィックオブジェクトへの第1のユーザインタラクションフィードバックを示す、第1のインタラクション情報を受信するステップと、前記グラフィックオブジェクトを含む第1のコンテンツテクスチャを生成するステップであって、前記グラフィックオブジェクトの外観は、第1のコンテンツ情報および、前記第1のインタラクション情報に含まれる前記第1のユーザインタラクションフィードバックを使用して決定されるステップと、前記第1のコンテンツテクスチャおよび第2のコンテンツテクスチャを含むビデオフレームを生成するステップであって、前記第2のコンテンツテクスチャは前記第1のビデオストリームから生成されるステップと、前記第1の装置および第2の装置において前記ビデオフレームを表示するステップと、前記第2の装置での前記ビデオフレームへの第2のユーザインタラクションフィードバックを受信するステップと、前記第2のユーザインタラクションフィードバックを示す第2のインタラクション情報を送信するステップと、を含む方法を提供する。
【0007】
この方法はさらに、前記グラフィックオブジェクトの外観を記述する少なくとも第2のコンテンツ情報を含むアップストリームデータを送信するステップをさらに含んでもよい。
【0008】
前記アップストリームデータが、前記第2の装置で生成された第2のビデオストリームをさらに含んでもよい。
【0009】
前記ビデオフレームが、前記グラフィックオブジェクトを前記第1のコンテンツテクスチャ上にオーバーレイすることによって生成されてもよい。
【0010】
前記第1のインタラクション情報が、第3の装置において前記グラフィックオブジェクトへの第3のユーザインタラクションフィードバックをさらに含んでもよい。
【0011】
前記ダウンストリームデータが、第1のサーバから受信されてもよい。
【0012】
前記アップストリームデータは、第1のサーバに送信されもよい。
【0013】
前記第1のインタラクション情報が、第2のサーバから受信されてもよい。
【0014】
前記第2のインタラクション情報は、前記第2のサーバに送信されてもよい。
【0015】
前記第1のユーザインタラクションフィードバックは、前記グラフィックオブジェクトのクリック、タップ及びドラッグのうちの少なくとも1つを含んでもよい。
【0016】
前記グラフィックオブジェクトは、ビデオゲームにおけるキャラクタを含んでもよい。
【0017】
本開示の別の態様は、レンダラ、制御層及び表示層を備える情報処理装置であって、前記レンダラは、第1のビデオストリーム及び第1のコンテンツ情報を含むダウンストリームデータを受信し、前記第1のビデオストリームは、別の装置から送信され、前記第1のコンテンツ情報は、グラフィックオブジェクトを記述し、前記制御層は、前記別の装置の前記グラフィックオブジェクトへのへの第1のユーザインタラクションフィードバックを示す第1のインタラクション情報を受信し、前記レンダラは、前記グラフィックオブジェクトを含む第1のコンテンツテクスチャを生成し、前記グラフィックオブジェクトの外観は、前記第1のコンテンツ情報および、前記第1のインタラクション情報に含まれる前記第1のユーザインタラクションフィードバックを使用して決定され、前記レンダラは、前記第1のコンテンツテクスチャと第2のコンテンツテクスチャを含むビデオフレームを生成し、前記第2のコンテンツテクスチャは、前記第1のビデオストリームから生成され、前記表示層は、前記ビデオフレームを表示し、前記制御層は、前記ビデオフレームへの第2のユーザインタラクションフィードバックを受信し、前記制御層は、前記第2のユーザインタラクションフィードバックを含む第2のインタラクション情報を送信する情報処理装置を提供する。
【0018】
前記レンダラは、少なくとも第1のコンテンツプロセッサと第2のコンテンツプロセッサとを含み、前記第1のコンテンツプロセッサは、前記第1のコンテンツテクスチャを生成し、前記第2のコンテンツプロセッサは、前記第2のコンテンツテクスチャを生成してもよい。
【0019】
前記レンダラは、テクスチャプロセッサをさらに含み、前記テクスチャプロセッサは、前記第1のコンテンツテクスチャと前記第2のコンテンツテクスチャとをブレンドし、前記ブレンドされたコンテンツテクスチャを前記ビデオフレームとして出力してもよい。
【0020】
前記表示層は、前記グラフィックオブジェクトの外観を記述する少なくとも第2のコンテンツ情報を含むアップストリームデータを送信してもよい。
【0021】
この情報処理装置は、第2のビデオストリームを生成するカメラ装置をさらに備え、前記第2のビデオストリームが前記レンダラに入力され、前記レンダラは、前記第2のビデオストリームに応答して前記第2のコンテンツテクスチャを生成し、前記レンダラは、前記第1のコンテンツテクスチャと前記第2のコンテンツテクスチャとをブレンドし、前記アップストリームデータは、前記ブレンドされた前記第1のコンテンツテクスチャと前記第2のコンテンツテクスチャとを含んでもよい。
【0022】
前記レンダラは、前記グラフィックオブジェクトを前記第1のコンテンツテクスチャ上にオーバーレイすることによって前記ビデオフレームを生成してもよい。
【0023】
前記第1のインタラクション情報は、第3の装置において、前記グラフィックオブジェクトへの第3のユーザインタラクションフィードバックをさらに含んでもよい。
【0024】
前記グラフィックオブジェクトは、ビデオゲームにおけるキャラクタを示してもよい。
【発明の効果】
【0025】
本開示は、ライブストリーミングとユーザインタラクションとの間の同期を可能にする。
【図面の簡単な説明】
【0026】
図1】本発明の一実施形態に係る通信システム1の概略構成を示す。
図2】通信システム1の機能構成の一例を示す図である。
図3】制御層11[B]の詳細な機能構成の一例を示す。
図4】レンダラ12[B]の詳細な機能構成の一例を示す図である。
図5】ユーザ端末10のハードウェア構成の一例を示す図である。
図6】インタラクションサーバ30(及びサーバ40)の例示的なハードウェア構成を示す。
図7】通信システム1を用いた場合の一例を示す図である。
図8】通信システム1の動作を示すシーケンスチャートの一例である。
図9】ユーザ端末10[A]におけるビデオゲーム付きクライアントアプリケーションの画面例を示す。
図10】ユーザ端末10[B]における招待を伴うクライアントアプリケーションの画面例を示す。
図11】ユーザ端末10[B]におけるビデオゲーム付きクライアントアプリケーションの画面例を示す。
図12】インタラクションのための例示的なシナリオを概略的に示す。
図13】テクスチャとビデオフレームとのブレンドを示す。
【発明を実施するための形態】
【0027】
1.構成
図1は、本発明の一実施形態に係る通信システム1の概略構成を示す。通信システム1は、コンテンツを介してインタラクションを伴うライブストリーミングサービスを提供する。ここで、「コンテンツ」とは、コンピュータ装置で再生できるデジタルコンテンツを指す。換言すれば、通信システム1は、ユーザがオンライン上の他のユーザとのリアルタイムのインタラクションに参加することを可能にする。通信システム1は、複数のユーザ端末10と、インタラクションサーバ30と、ストリーミングサーバ40とを含む。ユーザ端末10、インタラクションサーバ30、及びストリーミングサーバ40は、例えばインターネットであるネットワーク90を介して接続されている。インタラクションサーバ30は、インタラクションフィードバックを同期させるためのサーバである。ストリーミングサーバ40は、ライブストリーミングを提供するためのサーバである。ユーザ端末10は、ライブストリーミング用のクライアント装置である。あるユーザ端末10を他のユーザ端末から区別するために、添字が(例えばユーザ端末10[x]のように)使用される。ユーザAが使用するユーザ端末10をユーザ端末10[A]といい、これは第1の装置の一例である。ユーザBが使用するユーザ端末10をユーザ端末10[B]いい、これは第2の装置の一例である。ユーザ端末10、インタラクションサーバ30、及びストリーミングサーバ40のそれぞれは、情報処理装置の一例である。
【0028】
図2は、通信システム1の機能構成の一例を示す図である。通信システム1は、受信部31、処理部32、記憶部33、送信部34、受信部41、受信部42、処理部43、記憶部44、送信部45、制御層11、レンダラ12、表示層13、エンコーダ14、UI部15、及びデコーダ16を有する。この例では、受信部31、処理部32、記憶部33、及び送信部34は、インタラクションサーバ30に実装されている。受信部41、受信部42、処理部43、記憶部44、送信部45は、ストリーミングサーバ40に実装されている。ユーザ端末10内の各機能要素は、添字によって示される。ユーザ端末10[A]には、制御層11[A]、レンダラ12[A]、表示層13[A]、エンコーダ14[A]、UI部15[A]、デコーダ16[A]が実装されている。制御層11[B]、レンダラ12[B]、表示層13[B]、エンコーダ14[B]、UI部15[B]、及びデコーダ16[B]は、ユーザ端末10[B]上に実装される。
【0029】
通信システム1は、少なくとも2種類の情報、インタラクション情報Iirc及びコンテンツ情報Ictnを扱う。インタラクション情報は、「制御情報」と言うこともできる。
【0030】
インタラクション情報Iirc[x]は、ユーザ端末10[x]上で再生されるコンテンツに対するユーザxのインタラクションフィードバック又は操作を示す情報を参照する。ここで、「インタラクション」とは、ユーザ端末10[x]がコンテンツを再生している間にユーザxが行った反応をいい、「インタラクションフィードバック」とは、ユーザ端末10[x]に入力されたユーザxによるフィードバック又は指示をいう。たとえば、インタラクションフィードバックには、グラフィックオブジェクトのクリック、タップ、及びドラッグの少なくとも1つが含まれる。例えば、インタラクション情報Iirc[x]は、インタラクティブなグラフィックオブジェクトに対するユーザ操作を記述する。より具体的には、インタラクション情報は、座標Xから座標YへオブジェクトO[j]を移動させることを記述し、インタラクション情報Iirc[A]は、第1のユーザインタラクションフィードバックの一例である。
【0031】
コンテンツ情報Ictn[x]は、概して、ユーザ端末10[x]上で再生されるコンテンツに含まれるグラフィックオブジェクトを記述、定義、又は識別する情報を指す。コンテンツがユーザ端末10[A]上で再生される場合、コンテンツ情報Ictn[A]は、コンテンツに含まれるグラフィックオブジェクトを定義又は識別する。コンテンツがn個のコンテンツ要素、例えば、グラフィックオブジェクト(又は仮想オブジェクト)O[1]、O[2]、・・・、O[n]を含む場合、コンテンツ情報Ictn[x,j]は、グラフィックオブジェクトO[j]の外観を記述、定義、又は識別する。ここで、コンテンツが、5つのグラフィックオブジェクトO[1]、O[2]、O[3]、O[4]、及びO[5]を含むと仮定する。グラフィックオブジェクトO[1]、O[3]、O[4]、及びO[5]はリアルタイムオブジェクトであり、グラフィックオブジェクトO[2]は非リアルタイムオブジェクトである。例えば、コンテンツ情報Ictn[A,2]は、グラフィックオブジェクトO[2]の座標とサイズを記述する。グラフィックオブジェクトは、仮想空間内の仮想オブジェクトである。
【0032】
通信システム1において、各ユーザ端末10は、そのビデオストリームVをストリーミングサーバ40に送信又はプッシュし、ストリーミングサーバ40から別のユーザ端末10のビデオストリームVを受信又はプルする。さらに、各ユーザ端末10は、自身のインタラクション情報Iircをインタラクションサーバ30に送信又はプッシュし、インタラクションサーバ30から別のユーザ端末10のインタラクション情報Iircを受信又はプルする。
【0033】
さらに、各ユーザ端末10は、自身のコンテンツ情報Ictnを少なくとも1つのサーバに対して送信又はプッシュし、別のユーザ端末10のコンテンツ情報Ictnをサーバから受信又はプルする。この例では、コンテンツ情報には、リアルタイムコンテンツ情報と非リアルタイムコンテンツ情報の2種類がある。ここで、「リアルタイム」という用語は、グラフィックオブジェクトの情報がライブストリームの特定の時間枠に束縛されることを意味する。すなわち、グラフィックオブジェクトの座標やサイズが時間によって変化する場合、グラフィックオブジェクトはリアルタイムオブジェクトである。例えば、リアルタイムグラフィックオブジェクトのサイズは、ライブストリームの00:00:30において15ピクセル×15ピクセルであり、00:00:31において20ピクセル×20ピクセルである。一方、グラフィックオブジェクトの座標又はサイズが安定して定義されており、一定期間内に時間によって変化しない場合、グラフィックオブジェクトは非リアルタイムオブジェクトである。
【0034】
通信システム1は、ユーザ端末10[A]とユーザ端末10[B]との間でコンテンツ情報Ictnを同期させるための2つの経路を有する。一方の経路はインタラクションサーバ30を介しており、他方の経路はストリーミングサーバ40を介している。この例では、リアルタイムコンテンツ情報はストリーミングサーバ40を介して通信され、非リアルタイムコンテンツ情報はインタラクションサーバ30を介して通信される。1つのアプリケーションで、これら2つの経路を介してコンテンツ情報Ictnを通信できる。
【0035】
図3は、制御層11[B]の詳細な機能構成の一例を示す。制御層11[B]は、(i)インタラクション情報Iirc[A]及びIirc[B]を受信又は検索する機能と、(ii)非リアルタイムオブジェクトのためのコンテンツ情報Ictn[A]及び/又はIctn[B]を受信又は検索する機能と、(iii)インタラクション情報Iirc[B]をインタラクションサーバ30に送信、プッシュ、又はアップロードする機能と、(iv)インタラクション情報Iirc[A]及びIirc[B]をレンダラ12[B]に出力する機能とを有する。
【0036】
制御層11[B]は、インタラクション部111[B]を含む。インタラクション部111[B]は、インタラクションサーバ30からインタラクション情報Iirc[A]を受信する。インタラクション情報Iirc[A]は、インタラクション情報Iirc[A]及びコンテンツ情報Ictn[A]を含む情報である(Iirc及びIctnは図示せず)。インタラクション情報Iirc[A]は、第1のインタラクション情報の一例である。インタラクション部111[B]は、インタラクションサーバ30から非リアルタイムオブジェクトのコンテンツ情報Ictn[A]を受信する。
【0037】
インタラクション部111[B]は、UI部15[B]からインタラクション情報Iirc[B]を受信する。コンテンツに5つのグラフィックオブジェクトO[1]、O[2]、O[3]、O[4]、及びO[5]が含まれている例では、インタラクション情報Iirc[B]は各グラフィックオブジェクトのユーザ操作を記述する。より具体的には、インタラクション情報は、オブジェクトO[j]を座標Xから座標Yに移動することを記述する。
【0038】
また、インタラクション部111[B]は、後述するレンダラ12[B]から非リアルタイムオブジェクトのコンテンツ情報Ictn[B]を受信する。コンテンツ情報Ictn[B]は、ユーザ端末10[B]上で再生されるコンテンツ内の非リアルタイムコンテンツ要素を記述、定義、又は識別する。非リアルタイムコンテンツ要素は、たとえば、グラフィックオブジェクトO[2]である。
【0039】
インタラクション部111[B]は、受信したインタラクション情報Iirc[B]をインタラクションサーバ30に送信する。一例では、インタラクション部111[B]は、受信したインタラクション情報Iirc[B]を一定間隔で送信する。さらに、インタラクション部111[B]は、非リアルタイムオブジェクトのコンテンツ情報Ictn[B]をインタラクションサーバ30に送信してもよい。
【0040】
インタラクション部111[B]は、受信した全てのインタラクション情報Iircをレンダラ12[B]に出力する。この例では、インタラクション部111[B]は、インタラクション情報Iirc[A]及びインタラクション情報Iirc[B]を一定間隔で出力する。また、インタラクション部111[B]は、非リアルタイムオブジェクトのコンテンツ情報Ictn[A],Ictn[B]をレンダラ12[B]に出力する。
【0041】
図4は、レンダラ12[B]の詳細な機能構成の一例を示す図である。レンダラ12[B]は、(i)制御層11[B]からインタラクション情報Iirc[A]及びIirc[B]を受信又は検索する機能と、(ii)制御層から非リアルタイムオブジェクトのコンテンツ情報Ictn[A]及びIctn[B]を受信又は検索する機能と、(iii)デコーダ16[B]からビデオフレームFv[A,u]を受信又は検索する機能と、(iv)カメラ107[B]からビデオ信号S[B]を受信又は検索する機能と、(v)ビデオフレームFv[B,d]及びFv[B,u]を出力する機能と、(vi)コンテンツ情報Ictn[B,k]を出力する機能とを有する。
【0042】
レンダラ12[B]は、共有コンテキストプール121[B]、複数のコンテンツプロセッサ122[B,k]、及びテクスチャプロセッサ123[B]を含む。各コンテンツプロセッサ122[B,k]は、共有コンテキスト1221[B,k]、コンテンツソース1222[B,k]、及びロジック1223[B,k]を含む。
【0043】
共有コンテキストプール121[B]は、共有コンテキストを格納又はプールする。共有コンテキストは、複数のプロセスで共有されるコンテキストを指す。ここで、コンテキストとは、レンダリングコンテキストを指す。共有コンテキストプール121[B]は、制御層11[B]からインタラクション情報Iirc[A],Iirc[B]を受信して記憶する。また、共有コンテキストプール121[B]は、制御層11から非リアルタイムオブジェクトのコンテンツ情報Ictn[A],Ictn[B]を受信して記憶する。また、共有コンテキストプール121[B]は、デコーダ16[B]からコンテンツ情報Ictn[A],Ictn[B]を受信して記憶する。
【0044】
コンテンツプロセッサ122[B]は、コンテンツを処理する。ここで、「コンテンツを処理する」とは、コンテンツの出力を決定又は変更することをいい、例えば、コンテンツ内のグラフィックオブジェクト又は仮想空間の外観を決定又は変更することを意味する。
【0045】
コンテンツ要素は、コンテンツプロセッサ122[B]に割り当てられる。例えば、コンテンツ内のグラフィックオブジェクトO[1]、O[2]、O[3]、O[4]、及びO[5]は、それぞれ、コンテンツプロセッサ122[B,1]、122[B,2]、122[B,3]、122[B,4]、及び122[B,5]に割り当てられる。
【0046】
共有コンテキスト1221[B,k]には、共有コンテキストプール121[B]から読み出されたコンテンツ情報Ictn[A]、Ictn[B]、インタラクション情報Iirc[A]、Iirc[B]が格納される。共有コンテキスト1221[B,k]は、コンテンツプロセッサ122[B,k]に割り当てられたコンテンツ要素に関するコンテキストを格納する。コンテンツソース1222[B,k]は、コンテンツ内のグラフィックオブジェクトのレンダリングに使用されるデータを記憶する。ロジック1223[B,k]は、テクスチャT[B,k]を生成して出力する。例えば、コンテンツプロセッサ122[B,1]は、第1のコンテンツテクスチャの一例であるテクスチャT[B,1]を生成し、出力する。ここで、「テクスチャ」とは、仮想空間内の仮想カメラ又は実空間内の実カメラ装置によって撮像された静止画像をいう。この例では、コンテンツプロセッサ122[B,1]は、コンテンツ内のグラフィックオブジェクトO[1]を処理する。したがって、テクスチャT[B,1]は、グラフィックオブジェクトO[1]の外観を含む。コンテンツプロセッサ122[B,1]は、グラフィックオブジェクトO[1]の外観を決定する。グラフィックオブジェクトO[1]の外観は、インタラクション情報Iirc[A]とIirc[B]を使用して決定される。具体的には、コンテンツ情報Ictn[A],Ictn[B]と、インタラクション情報Iirc[A],Iirc[B]とを用いて、グラフィックオブジェクトO[1]の外観を決定する。同様に、コンテンツプロセッサ122[B,2]は、例えば、コンテンツ内のグラフィックオブジェクトO[2]を処理する。
【0047】
テクスチャプロセッサ123[B]は、複数のテクスチャT[B,k]を受信する。具体的には、テクスチャプロセッサ123[B]は、コンテンツプロセッサ122[B,1],122[B,2]、...及び122[B,n]からそれぞれテクスチャT[B,1]、T[B,2]、...及びT[B,n]を受信する。
【0048】
テクスチャプロセッサ123[B]は、デコーダ16[B]からビデオフレームFv[A]を受信する。デコーダ16[B]は、ストリーミングサーバ40からダウンストリームデータDd[A]を受信する。ダウンストリームデータDd[A]は、ビデオストリームV[A]を含むダウンストリームデータである。ビデオストリームV[A]が、リアルタイムコンテンツ要素、より具体的には、リアルタイムオブジェクトであるグラフィックオブジェクトO[j]を含む場合、ダウンストリームデータDs[A]は、さらに、グラフィックオブジェクトO[j]のためのコンテンツ情報Ictn[A,j]を含む。ビデオストリームV[x]は、ユーザ端末10[x]から発信されたビデオストリームを指す。ビデオストリームV[x]はカメラ107[x]で撮影される。例えば、ビデオストリームV[A]は、ユーザ端末10[A]から発信されたビデオストリームを示し、第1のビデオストリームの一例である。ここで、コンテンツ情報Ictn[A]は、第1コンテンツ情報の一例である。デコーダ16[B]は、受信したダウンストリームデータDd[A]をデコードし、ビデオストリームV[A]の成分であるビデオフレームFv[A]を生成する。ビデオフレームFv[A]は、第2のコンテンツテクスチャの一例である。
【0049】
テクスチャ処理部123[B]は、受信したテクスチャTを処理する。ここで、「テクスチャを処理する」とは、少なくとも1つのテクスチャTをビデオフレームFvとブレンドすることを意味する。テクスチャ処理部123[B]は、ビデオフレームFv[B,d]を生成して出力する。ビデオフレームFv[B]とビデオフレームFv[A]とをブレンドしてビデオフレームFv[B,d]を生成する。テクスチャ処理部123[B]は、ビデオフレームFv[B,d]を表示層13[B]に出力する。ここで、添字「d」は、データが表示用であることを示す。
【0050】
また、テクスチャ処理部123[B]は、カメラ107[B]から映像信号S[B]を受信する。テクスチャ処理部123[B]は、映像信号S[B]から映像フレームFv[B,u]を生成する。テクスチャ処理部123[B]は、映像フレームFv[B,u]をエンコーダ14[B]に出力する。ここで、添字「u」は、データがアップストリーム用であることを意味する。
【0051】
グラフィックオブジェクトO[k]がリアルタイムオブジェクトである場合、コンテンツプロセッサ122[B,k]は、コンテンツ情報Ictn[B,k]をエンコーダ14[B]に出力する。グラフィックオブジェクトO[k]がリアルタイムコンテンツでない場合、コンテンツプロセッサ122[B,k]は、コンテンツ情報[B,k]をインタラクションサーバ30に出力する。あるいは、グラフィックオブジェクトO[k]がリアルタイムコンテンツでない場合、コンテンツプロセッサ122[B,k]は、コンテンツ情報[B,k]を送信機(図示せず)に出力し、送信機は、情報をインタラクションサーバ30に送信する。グラフィックオブジェクトO[k]がリアルタイムオブジェクトであるかどうかは、コンテンツ情報Ictn[k]などで定義される。別の例として、グラフィックオブジェクトO[k]がリアルタイムコンテンツであるかどうかは、クライアントアプリケーションAPPによって定義される。
【0052】
表示層13[B]は、ユーザ端末10[B]のコンピュータ画面上に、ビデオフレームFv[B,d]をプレビュー又は表示する。
【0053】
エンコーダ14[B]は、ビデオフレームFv[B,u]をエンコードし、アップストリームデータDu[B]を生成する。アップストリームデータDu[B]は、符号化ビデオフレームFv[B,u]と、コンテンツ情報Icnt[B]とを含む。コンテンツ情報Icnt[B]は、第2のコンテンツ情報の一例である。また、エンコーダ14[B]は、アップストリームデータDu[B]をストリーミングサーバ40に送信する。
【0054】
ユーザ端末10[A]は、ユーザ端末10[B]と同様の機能を有する。ユーザ端末10[A]については、ユーザ端末10[B]に関する上記の説明を、添字A及びBを入れ替えて読まなければならない。
【0055】
再び図2を参照して、インタラクションサーバ30において、記憶部33は、各種データ及びプログラムを記憶する。受信部31は、ユーザ端末10から各種情報を受信する。例えば、受信部31は、ユーザ端末10[A]からインタラクション情報Iirc[A]を受信し、ユーザ端末10[B]からインタラクション情報Iirc[B]を受信する。
【0056】
処理部32は、受信したインタラクション情報Iircの送信先を決定する。インタラクション情報Iircが配信者に由来する場合、処理装置32は、配信者によって配信されるライブストリームを視聴している視聴者である宛先を決定する。インタラクション情報Iircが視聴者から発信されたものである場合、処理装置32は、その視聴者が視聴しているライブストリームを配信する配信者である宛先を決定する。
【0057】
送信部34は、決定した宛先にインタラクション情報Iircを送信する。例えば、送信部34は、インタラクション情報Iirc[B]をユーザ端末10[A]に送信し、インタラクション情報Iirc[A]をユーザ端末10[B]に送信する。
【0058】
サーバ40において、記憶部44は、各種データやプログラムを記憶する。受信部41は、ユーザ端末10[A]から映像ストリームV[A]及びコンテンツ情報Ictn[A]を受信する。また、受信部41は、ユーザ端末10[B]から映像ストリームV[B]及びコンテンツ情報Ictn[B]を受信する。受信部42は、ユーザ端末10[A]からインタラクション情報Iirc[A]及びコンテンツ情報Ictn[A]を受信する。また、受信部42は、ユーザ端末10[B]からインタラクション情報Iirc[B]及びコンテンツ情報Ictn[B]を受信する。
【0059】
処理装置43は、受信されたビデオストリームVの宛先を決定し、ビデオストリームVが配信者から発信されたものである場合、処理装置43は、配信者によって配信されるライブストリームを視聴している視聴者である宛先を決定する。ビデオストリームVが視聴者から発信されたものである場合、処理装置43は、視聴者が視聴しているライブストリームを配信する配信者である宛先を決定する。送信部45は、決定された宛先に映像ストリームVを送信する。例えば、送信部45は、映像ストリームV[A]をユーザ端末10[B]に送信し、映像ストリームV[B]をユーザ端末10[A]に送信する。
【0060】
図5は、ユーザ端末10のハードウェア構成の一例を示す図である。ユーザ端末10は、CPU101と、メモリ102と、ストレージ103と、ネットワークインターフェース104と、出力デバイス105と、入力デバイス106と、カメラ107とを有するコンピュータ装置である。ユーザ端末10は、例えば、スマートフォン、タブレット装置、又はパーソナルコンピュータである。CPU101は、プログラムに従って処理を実行する。メモリ102は、CPU101がプログラムを実行する間、ワークスペースとして機能する主記憶装置である。メモリ102は、例えば、RAM(Random Access Memory)を含む。ストレージ103は、各種データやプログラムを記憶する補助記憶装置である。記憶装置103は、例えば、SSD(Solid State Drive)又はHDD(Hard Disk Drive)である。ネットワークインターフェース104は、インタラクションサーバ30及びストリーミングサーバ40のような他のコンピュータ装置と通信する。出力デバイス105は、情報を出力する。出力デバイス105は、例えば、ディスプレイ及びスピーカの少なくとも一方を含む。入力デバイス106は、ユーザからの命令又はデータの入力を受け付ける。入力装置106は、例えば、タッチスクリーン、キーボード、ポインティングデバイス、マイクの少なくとも1つを含む。カメラ107は、シーンを撮影し、静止画や動画を生成する。
【0061】
この例では、記憶装置103は、コンピュータ装置をインタラクションサービスにおけるクライアント装置として機能させるためのプログラムを記憶する。以下、このプログラムを「クライアントプログラム」といい、クライアントプログラムが提供する一連の機能を「クライアントアプリケーションAPP」という。クライアントアプリケーションプログラムを実行するCPU101により、図2に示す機能がユーザ端末10に実装される。クライアントアプリケーションプログラムを実行しているCPU101は、制御層11、レンダラ12、表示層13、UI部15、及びデコーダ16の一例である。すなわち、制御層11、レンダラ12、表示層13、UI部15、及びデコーダ16は、クライアントアプリケーションAPPのソフトウェアコンポーネントである。
【0062】
図6は、インタラクションサーバ30(及びストリーミングサーバ40)のハードウェア構成の一例を示す。インタラクションサーバ30は、CPU301、メモリ302、ストレージ303、及びネットワークインターフェース304を含むコンピュータ装置である。CPU301は、プログラムに従って処理を実行する。メモリ302は、CPU301がプログラムを実行する間、ワークスペースとして機能する主記憶装置である。メモリ302は、例えば、RAMを含む。ストレージ303は、様々なデータ及びプログラムを記憶する補助記憶装置である。ストレージ303は、例えば、HDD又はSSDである。ネットワークインターフェース304は、ユーザ端末10等の他のコンピュータ装置と通信する。
【0063】
この例では、ストレージ303は、インタラクションサービスにおいて、コンピュータ装置をインタラクションサーバ30として機能させるためのプログラムを記憶する。以下、プログラムを「インタラクションサーバプログラム」といい、CPU301がインタラクションサーバプログラムを実行することにより、図2に示す機能がインタラクションサーバ30上に実装される。インタラクションサーバプログラムを実行するCPU301は、処理部32の一例である。ネットワークインターフェース304は、受信部31及び送信部34の一例である。記憶部33の一例として、メモリ302及びストレージ303の少なくとも一方が挙げられる。
【0064】
ストリーミングサーバ40は、インタラクションサーバ30と同じハードウェア構成を有する。この例では、ストレージ403は、コンピュータ装置をインタラクションサービスにおけるストリーミングサーバとして機能させるプログラムを記憶する。以下、このプログラムを「ストリーミングサーバプログラム」という。CPU401がストリーミングサーバプログラムを実行することにより、図2に示す機能がストリーミングサーバ40に実装される。ストリーミングサーバプログラムを実行するCPU401は、処理部43の一例である。ネットワークインターフェース404は、受信部41、受信部42、及び送信部45の一例である。メモリ402及びストレージ403の少なくとも一方は、記憶部44の一例である。
【0065】
2.動作
図7は、通信システム1を用いた例を示す図である。この例を参照して、通信システム1の動作の一例を説明する。この例では、ユーザ(以下、「配信者」という)は、ユーザ端末10[A](「配信者装置」ともいう)とライブストリーミングを提供し、他のユーザ(以下、「視聴者」という)は、ユーザ端末10[B](「視聴者装置」ともいう)とライブストリーミングを視聴する。なお、通信システム1は、1つの配信者に対して複数の視聴者を有していてもよいが、図7では、簡略化のために1人の視聴者を示している。
【0066】
この例では、通信システム1は、コンテンツの一例であるビデオゲームをユーザに提供する一方、配信者はライブストリーミングを提供する。配信者はビデオゲームをプレイでき、視聴者はビデオゲームに参加できる。ビデオゲーム画面は、ユーザ端末10[A]及び10[B]に表示され、同期される。したがって、通信システム1は、配信者及び視聴者が、ライブストリームと共にビデオゲームを介してインタラクションすることを可能にする。
【0067】
ライブストリーミングを開始し、ライブストリーミングを閲覧する前に、通信システム1は、ユーザが通信システム1に登録することを要求する。各ユーザは自分のプロファイルを入力し、通信システム1は、そのプロファイルをユーザデータベース(図には示されていない)に格納する。ユーザは、クライアントアプリケーションAPPが有効化されると、通信システム1にログインする。
【0068】
図8は、通信システム1の動作を示すシーケンスチャートの一例である。ステップS101において、ユーザ端末10[A]のクライアントアプリケーションAPP(以下、「クライアントアプリケーションAPP[A]」という)は、配信者の指示に応じてライブストリーミングを開始する。ここで、ライブストリームは、カメラ107[A]で撮影された映像ストリームを含む。以下、このビデオストリームをビデオストリームV[A]と呼ぶ。多くの場合、ビデオストリームは、配信者の自己画像を示す。
【0069】
ステップS102において、ユーザ端末10[B]のクライアントアプリケーションAPP(以下、「クライアントアプリケーションAPP[B]」という)は、潜在的な視聴者であるユーザの指示に応じて、通信システム1にアクセスする。より具体的には、クライアントアプリケーションAPP[B]は、ログインするためにストリーミングサーバ40にアクセスする。ストリーミングサーバ40は、アクセスしているユーザに、現在ライブストリームを配信又はプッシュしている配信者を示す配信者リストを提供する。クライアントアプリケーションAPP[B]は、ユーザの指示に応じて、配信者リストから一の配信者を選択して、自分のライブストリームを表示する。ストリーミングサーバ40は、(ステップS103で)選択された配信者のライブストリームをユーザ端末10[B]に送信することを開始する。そして、ユーザは、ユーザ端末10[B]上でライブストリームを閲覧し、視聴者となる。
【0070】
通信システム1は、配信者にオプションメニューを提供する。オプションメニューには、コンテンツの一例であるビデオゲームをプレイするオプションが含まれる。通信システム1は、複数のゲームタイトルを提供する。これらのビデオゲームタイトルは、通信システム1のプラットフォーム又は第三者のいずれかによって提供されてもよい。配信者は、プレイされるべきビデオゲームタイトルを選択することができる。クライアントアプリケーションAPP[A]は、配信者による指示に応じて、ビデオゲームタイトルを選択する。クライアントアプリケーションAPP[A]がプレイするビデオゲームを選択すると、クライアントアプリケーションAPP[A]は(ステップS104において)ストリーミングサーバ40に、選択されたビデオゲームを起動する要求を送信する。この要求に応じて、ストリーミングサーバ40は(ステップS105において)、選択されたコンテンツに関するデータをユーザ端末10[A]に送信する。この例では、選択されたビデオゲームタイトルのゲームプログラムである。ゲームプログラムは、例えばプラグインである。クライアントアプリケーションAPP[A]は、ゲームプログラムを実行する(ステップS106)。
【0071】
図9は、ビデオゲーム画面を有するクライアントアプリケーションAPP[A]の画面の一例を示す。クライアントアプリケーションAPP[A]の画面は、領域91[A]と領域92[A]の2つの領域を有する。領域91[A]は、配信者の映像ストリーム(この例では、映像ストリームV[A])を表示するための表示領域である。領域92[A]は、ゲーム画面を表示するための表示領域である。この例では、領域92[A]は、領域91[A]上に重ねられる。グラフィックオブジェクトO[1]、O[2]、及びO[3]は、ビデオゲーム画面上に示される。グラフィックオブジェクトO[1]はモンスターであり、グラフィックオブジェクトO[2]は太陽であり、グラフィックオブジェクトO[3]はモンスターに適用される視覚効果である。配信者は、例えば、ユーザ端末10[A]のタッチスクリーンをタップすることにより、モンスターを攻撃することができる。グラフィックオブジェクトO[1]とO[3]はリアルタイムオブジェクトであり、グラフィックオブジェクトO[2]は非リアルタイムオブジェクトである。
【0072】
図8を再度参照すると、コンテンツが配信者の装置(この例ではユーザ端末10[A])上でアクティブ化された場合、ストリーミングサーバ40は(ステップS107で)配信者の装置上でコンテンツがアクティブ化されたことを視聴者に通知する。つまり、ストリーミングサーバ40は、コンテンツの識別を含む通知を視聴者の装置(この例ではユーザ端末10[B])に送信する。また、ストリーミングサーバ40は、(ステップS108で)コンテンツに関するオブジェクトを示すデータを視聴者の装置に送信する。この例では、ストリーミングサーバ40は、オブジェクトO[4]、O[5]、及びO[6]を示すデータを送信する。オブジェクトO[4]、O[5]、及びO[6]は、ビデオゲームにおいてプレイヤ(この例では配信者)を補助するアイテムである。クライアントアプリケーションAPP[B]は、通知及びゲームプログラムを受信すると、ゲーム画面及びUIオブジェクトを表示する(ステップS109)。UIオブジェクトは、視聴者をビデオゲームに参加させるためのメッセージを含む。
【0073】
図10は、招待を伴うクライアントアプリケーションAPP[B]の画面例を示す。クライアントアプリケーションAPP[B]は、領域91[B]、92[B]、93[B]、94[B]を有する。領域91[B]は、配信者の映像ストリーム(この例では、映像ストリームV[A])を表示するための表示領域である。ビデオストリームV[A]は、配信者の画像とビデオゲーム画面とを含むので、ビデオゲーム画面も領域91[B]に表示される。視聴者は、領域91[B]においてビデオゲームをプレイしている配信者を見ることができる。領域92[B]は、ゲーム画面を表示するための表示領域である。領域93[B]は、視聴者をビデオゲームに参加させるためのメッセージを表示するための領域である。この例では、「配信者がゲームをプレイしています。アイテムを送って助けましょう。」というメッセージが表示される。領域94[B]は、視聴者が取れるオプションに対応するアイコンを表示するための領域である。この例では、視聴者は配信者を支援するアイテムを送信でき、送信される可能性のあるアイテムとして3つのオプションがある。これらの選択肢は、例えば、戦車、大砲、及び爆弾であるオブジェクトO[4]、O[5]、及びO[6]に対応する。視聴者は、例えば、オブジェクトO[6]に対応するアイコンをタップすることによって、アイテムを配信者に送信するようにクライアントアプリケーションAPP[B]に指示することができる。アイコンをタップすることは、視聴者のインタラクションフィードバックの一例である。
【0074】
図8を再度参照すると、クライアントアプリケーションAPP[B]はインタラクションサーバ30にインタラクション情報Iirc[B]を定期的に送信するので、視聴者が配信者にオブジェクトO[6]を送信したことを示すインタラクション情報Iirc[B]がインタラクションサーバ30に送信される。インタラクションサーバ30は、インタラクション情報Iirc[B]を配信者の装置であるユーザ端末10[A]に送信する。
【0075】
配信者の装置で、クライアントアプリケーションAPP[A]はインタラクション情報Iirc[B]を受信する。インタラクション情報Iirc[B]は、オブジェクトO[6]が配信者に送られることを示すので、コンテンツプロセッサ122[B]は、オブジェクトO[6]を示すテクスチャを生成する。そして、クライアントアプリケーションAPP[A]は、オブジェクトO[6]と共にビデオゲーム画面を表示する。
【0076】
図11は、ビデオゲームを用いたクライアントアプリケーションAPP[A]の画面例を示す。この例では、オブジェクトO[6]は、配信者がオブジェクトO[6]に対してインタラクションフィードバックを行うまでアクティブ化されない。たとえば、オブジェクトO[6]をオブジェクトO[1]にドラッグした結果、オブジェクトO[6]がアクティブになる。このようにして、配信者は、ビデオゲームにおいて、視聴者から送られてきたアイテムを使用することができる。言い換えれば、配信者と視聴者は協力してモンスターを倒すことができる。
【0077】
ユーザ端末10[B]の領域91[B]は、ユーザ端末10[A]の領域91[A]と同期しているため、領域91[B]にもゲーム画面が表示される。したがって、視聴者は、ビデオゲーム画面を見ることができ、視聴者は、配信者がモンスターを倒すのを助ける。
【0078】
領域92[A]と領域92[B]との同期について説明する。
【0079】
図12は、インタラクションのためのシナリオの一例を概略的に示す。図11に示すシーケンスの前に、ユーザ端末10[A]においてビデオゲームが起動されている。ユーザAが配信者、ユーザBが視聴者である。図12は、ユーザ端末10[B]における動作に着目したものである。このシナリオでは、レンダラ12[B]は、コンテンツプロセッサ122[B,1]とコンテンツプロセッサ122[B,2]の2つのコンテンツプロセッサを有する。クライアントアプリケーションAPP[B]は、ビデオゲームを処理するためにコンテンツプロセッサ112[B,1]を割り当て、ビデオストリームV[A]を処理するためにコンテンツプロセッサ112[B,2]を割り当てる。ビデオゲームは、コンテンツの一例である。ビデオストリームV[A]は、他のコンテンツの一例である。この例では、ビデオゲームに関するレンダリング機能は、コンテンツプロセッサ122[B,1]にインストールされる。ビデオストリームに関するレンダリング機能は、コンテンツプロセッサ122[B,2]にインストールされる。
【0080】
時間t1において、表示層13[B]は、ビデオフレームFv[B,t1]を示す。ビデオフレームFv[B,t1]は、配信者の自己画像と、ビデオゲームにおけるモンスターを示すグラフィックオブジェクトO[1]とを含む。視聴者は、ユーザ端末10[B]のオプションの中からアイコンをタップして、配信者にアイテムを送信する。タップは、インタラクションフィードバックの一例である。タップに応答して、UIユニット15[B]は、インタラクション情報Iirc[B,t1]を生成する。インタラクション情報Iirc[B,t1]は、(i)視聴者の識別、(ii)コンテンツの識別、(iii)フィードバックのターゲットであるオブジェクト(例えば、オブジェクトO[6])の識別、及び(iv)インタラクションフィードバックの量及び/又は強度を示すパラメータを含む。例えば、パラメータは、(a)タップされた位置の座標、(b)タップが開始してからタップが終了するまでの持続時間、(c)タップの軌跡(又はスワイプ)、(d)タップが開始又は終了するときを示すタイムスタンプのうちの少なくとも1つを示す。より詳細な例では、配信者を支援するために選択されたアイテムがパラメータに表示される。
【0081】
時間t2において、インタラクション部111[B]は、インタラクションサーバ30からインタラクション情報Iirc[A,t1]を受信し、UI部15[B]からインタラクション情報Iirc[B,t1]を受信する。インタラクション情報Iirc[B,t1]と同様に、インタラクション情報Iirc[A,t1]に含まれるパラメータは、例えば、配信者がモンスターにどの程度強く攻撃したか、又は配信者が爆弾を落下させた位置を示す。
【0082】
また、インタラクション部111[B]は、インタラクション情報Iirc[B,t1]をインタラクションサーバ30に送信する。インタラクションサーバ30は、ユーザ端末10からインタラクション情報Iircを受信すると、インタラクション情報Iircの宛先を決定し、インタラクション情報Iircを宛先に送信する。この例では、インタラクションサーバ30は、インタラクション情報Iirc[B,t1]をユーザ端末10[A]に送信する(インタラクションサーバ30における動作は、図中には示されていない)。
【0083】
インタラクション部111[B]は、インタラクション情報の送信先を決定する。この例では、インタラクション部111[B]は、インタラクション情報に含まれるコンテンツの識別に基づいて、宛先を決定する。インタラクション情報Iirc[A,t1]がグラフィックオブジェクトO[5]の識別を含む場合、インタラクション部111[B]は、インタラクション情報Iirc[A,t1]の宛先が、グラフィックオブジェクトO[5]が割り当てられるコンテンツプロセッサ122[B,5]であると判断する。同様に、インタラクション情報Iirc[B,t1]がグラフィックオブジェクトO[5]の識別を含む場合、インタラクション部111[B]は、インタラクション情報Iirc[B,t1]の宛先が、グラフィックオブジェクトO[5]が割り当てられるコンテンツプロセッサ122[B,5]であると判断する。
【0084】
時刻t3において、インタラクション部111[B]は、インタラクション情報Iirc[A,t1],Ictr[B,t1]を、それぞれ宛先のコンテンツ処理部122[B,5]に出力する。コンテンツプロセッサ122[B,5]は、受信したインタラクション情報Iirc[A,t1]及びIctr[B,t1]に基づいて、グラフィックオブジェクトO[5]を処理する。例えば、コンテンツプロセッサ122[B,5]は、配信者がモンスターにどの程度強く当たったか、又は配信者が爆弾を落下させた位置を示すパラメータを用いて、モンスターに与えられたダメージを計算する。コンテンツプロセッサ122[B,1]は、計算に基づいて、グラフィックオブジェクトO[3]の外観を決定する。グラフィックオブジェクトO[3]は、配信者による攻撃の視覚的効果を示している。さらに、コンテンツプロセッサ122[B,1]は、計算に基づいて、グラフィックオブジェクトO[5]の外観を決定する。グラフィックオブジェクトO[5]は、ユーザBがユーザAに送信したアイテムを示し、さらに、コンテンツ処理部122[B,1]は、算出されたダメージに基づいて、モンスターの外観を判定する。
【0085】
時刻t4において、コンテンツプロセッサ122[B,1]は、テクスチャT[B,1,t4]を生成又はレンダリングする。テクスチャT[B,1、t4]は、グラフィックオブジェクトO[1]、O[2]、O[3]、及びO[5]を示す静止画像を示している。これらのグラフィックオブジェクトの描画において、コンテンツプロセッサ122[B,1]は、共有コンテキストプール121[B]からデータを読み取り、これらのグラフィックオブジェクトの座標及び外観に関するデータを取得する。
【0086】
さらに、コンテンツプロセッサ122[B,2]は、テクスチャT[B,2,t4]を生成又はレンダリングする。テクスチャT[B,2,t4]は、カメラ107[B]によって撮影されたビデオフレームを示す。ビデオフレームは、例えば、視聴者の自己画像を示す。
【0087】
時刻t5において、テクスチャプロセッサ123[B]は、コンテンツプロセッサ122[B,1]からテクスチャT[B,1,t4]を受信し、コンテンツプロセッサ122[B,1]からテクスチャT[B,2,t4]を受信し、ストリーミングサーバ40からダウンストリームデータDd[A,t4]を受信する。ダウンストリームデータDd[A,t4]は、ビデオフレームFv[A,t4]を生成するためのデータを含む。テクスチャプロセッサ123[B]は、ダウンストリームデータDd[A,t4]からビデオフレームFv[A,t4]を生成する。テクスチャプロセッサ123[B]は、コンテンツプロセッサ122[B]から出力されたビデオフレームFv[A,t4]と少なくとも1つのテクスチャTとをブレンドすることによって、新しいビデオフレームFv[B,t5]を生成する。どのテクスチャをビデオフレームFv[A]とブレンドしなければならないかは、クライアントAPP[B]によって決定又は指示される。この例では、クライアントAPP[B]は、テクスチャプロセッサ123[B]に、テクスチャ[B,1]をビデオフレームFv[A]とブレンドするように命令するが、これは、テクスチャ[B,1]が、視聴者がアクティブにするように命令したアクティビティであるビデオゲームに関連するからである。
【0088】
図13は、テクスチャとビデオフレームとのブレンドを示す。図13は、テクスチャT[B,1,t4]とビデオフレームFv[A,t4]とをブレンドした例を示している。この例では、テクスチャT[B,1、t4]はグラフィックオブジェクトO[1]、O[2]、O[3]、及びO[5]を示している。グラフィックオブジェクトO[1]は、ビデオゲームにおけるモンスターである。グラフィックオブジェクトO[2]は太陽である。グラフィックオブジェクトO[3]は、配信者による攻撃を示す視覚効果である。グラフィックオブジェクトO[5]は、視聴者が配信者に送信したアイテム(この場合、爆弾)である。ビデオフレームFv[A,t4]は、配信者のセルフィー画像を示す。ビデオフレームFv[B,d,t5]において、グラフィックオブジェクトO1,O2,及びO5は、配信者のセルフィー画像上にオーバーレイ又はオーバーラップされる。あるいは、ビデオフレームFv[B,d,t5]を複数の別々の領域に分割してもよい。例えば、ビデオフレームFv[B,d,t5]は、2つの領域又は2つのウィンドウに分割されてもよい。一方の領域はビデオフレームFv[A,t4]用であり、他方の領域はテクスチャT[B,1,t4]用である。このような場合、これら2つのウィンドウは別々に配置され、重なり合わない。
【0089】
再び図12を参照して、時刻t6において、表示層13[B]の構成要素であるプレビュー部131[B]は、ユーザ端末10[B]のディスプレイにフレームFv[B,d,t5]を表示する。視聴者は、ビデオゲーム画面がオーバーラップされた配信者のセルフィー画像を見ることができる。時間t1とt6との間の持続時間は、ライブストリームのフレームレートに対応する。
【0090】
また、エンコーダ14[B]は、映像ストリームV[B]の成分である映像フレームFv[B,u,t6]をコンテンツ情報Ictn[B]とともにストリーミングサーバ40に送信する。この例では、ビデオフレームFv[B,u,t6]は、視聴者(言い換えれば、ユーザBの)セルフィー画像を含み、ビデオゲーム画面を含まない。ストリーミングサーバ40は、ユーザ端末10からビデオストリームVを受信すると、ビデオストリームVの宛先を決定し、ビデオストリームVを宛先に送信する。この例では、ストリーミングサーバ40は、ビデオストリームV[B]をユーザ端末10[A]に送信する。換言すれば、ストリーミングサーバ40は、視聴者のセルフィービデオを配信者に送信する(ストリーミングサーバ40における動作は、図には示されていない)。
【0091】
単一の配信者は複数の視聴者を有することができるので、配信者の装置上に視聴者の自己映像を示すことは、配信者の命令に基づいて一時停止又は省略することができる。このような場合、少なくとも3つの選択肢がある。第1の選択肢は、視聴者のクライアントアプリケーションAPPが視聴者のビデオストリームをストリーミングサーバ40へ送信することを中断することである。第2の選択肢は、ストリーミングサーバ40が視聴者のビデオストリームを配信者の装置に送信するのを中断し、ストリーミングサーバ40が視聴者の装置から視聴者のビデオストリームを受信することである。3番目の選択肢は、配信者の装置が配信者の装置への視聴者のビデオストリームの表示を一時停止し、配信者の装置がストリーミングサーバ40から視聴者のビデオストリームを受信することである。あるいは、複数の視聴者が自分のビデオをそれぞれ送信する場合、配信者の装置は、そのビデオが配信者の装置上に示される少なくとも1人の視聴者を選択してもよい。
【0092】
通信システム1によれば、各ユーザは、自分のビデオストリームVをストリーミングサーバ40に送信又はプッシュし、他人のビデオストリームVをストリーミングサーバ40から受信又はプルすることができる。また、ユーザは、インタラクションフィードバックを含むインタラクション情報Iircをインタラクションサーバ30に同期することができる。すなわち、各ユーザは、自身のインタラクション情報Iircをインタラクションサーバ30に送信又はプッシュし、他のユーザのインタラクション情報Iircをインタラクションサーバ30から受信又はプルすることができる。本開示では、ユーザ間のあらゆるインタラクションは、制御層11で処理される。したがって、ユーザの操作は、制御層11上のインタラクション型コンポーネントを訂正するようにマッピングすることができ、配信者側及び視聴者側の両方で、あたかもユーザが対面してインタラクションしているかのように、表示層13上に反映される。
【0093】
3.変形例
本開示に係る発明は、上述した実施形態に限定されるものではない。上記実施形態は、例えば、以下のように変形されてもよい。なお、以下の説明において、少なくとも2つの事項が組み合わされてもよい。
【0094】
3-1.コンテンツの再生
上記の実施形態では、配信者がコンテンツの再生を開始する例を説明したが、コンテンツの再生を開始するユーザは配信者に限定されない。通信システム1は配信者と視聴者との間で対称であるので、インタラクション情報及びビデオストリームに関して、通信システム1は視聴者がコンテンツの再生を開始することを可能にする。例えば、配信者がライブビデオストリームを提供している間に、少なくとも1人の視聴者がビデオゲームのプレイを開始することができる。このような場合、視聴者がビデオゲームを開始したことが配信者に通知される。たとえば、クライアントアプリケーションAPP[A]には、「ユーザBはビデオゲームをプレイしています。アイテムを送って助けましょう。」というメッセージが表示され、さらに、クライアントアプリケーションAPP[A]には、配信者が実行できるオプションに対応するアイコンが表示される。この例では、配信者は、ビデオゲームをプレイしている視聴者を助けるためにアイテムを送信することができ、送信されるべき潜在的なアイテムとして3つのオプションを有する。これらの選択肢は、例えば、戦車、大砲、及び爆弾であるオブジェクトO3、O4、及びO5に対応する。以下の処理は、上記実施形態と同様である。
【0095】
上記の実施形態では、配信者の装置は、コンテンツの再生を開始し、視聴者の装置は、視聴者の命令に応答して、コンテンツを再生するために加わる。しかしながら、通信システムは、視聴者による明示的な指示なしに、視聴者の装置に配信者によって開始されたコンテンツに自動的に参加させることができる。
【0096】
3-2.コンテンツを再生する装置
また、上記実施形態では、1つの装置(配信者の装置)でコンテンツを再生するようにしたが、コンテンツを再生する装置の数は配信者の装置に限定されない。例えば、通信システム1は、視聴者の装置がコンテンツを再生することを可能にしてもよい。より詳細な例のために、通信システム1は、視聴者の装置上でビデオゲームプログラムを実行又は実行するオプションを提供してもよい。ビデオゲームプログラムが視聴者の装置で実行される場合には、視聴者は、アイテムを送る代わりに、配信者を助けるためにモンスターを直接攻撃することができる。インタラクション情報は、配信者及び視聴者と同期されるので、配信者、視聴者、又はその両方は、モンスターを攻撃することができる。モンスターは、配信者と視聴者が同時にモンスターを攻撃した場合、ダブルダメージを受ける可能性がある。
【0097】
3-3.ビデオストリーム
ビデオストリームは、対称でなくてもよい。言い換えれば、視聴者の装置から配信者の装置へのビデオストリームの送信は省略されてもよい。
【0098】
3-4.コンテンツ情報
なお、ユーザ端末10からインタラクションサーバ30へのコンテンツ情報Ictnの送信は省略してもよい。また、インタラクションサーバ30からユーザ端末10にコンテンツ情報Ictnを送信することを省略してもよい。つまり、ユーザ端末10からインタラクションサーバ30に送信されるインタラクション情報Iircには、コンテンツ情報Ictnが含まれていなくてもよい。あるいは、インタラクションサーバ30からユーザ端末10に送信されるインタラクション情報Iircには、コンテンツ情報Ictnが含まれていなくてもよい。一実施形態では、アプリケーションを実装するとき、通信システム1は、アプリケーションプロバイダが、コンテンツ情報Ictnが、インタラクションサーバ30を介して、又はストリーミングサーバ40を介して送信される経路を選択することを可能にする。例えば、アプリケーションプロバイダは、コンテンツ情報Ictnがユーザ端末10からインタラクションサーバ30に送信され、ストリームサーバ40には送信されないアプリケーションを実装することができる。これは、例えば、非リアルタイムアプリケーションにとって好ましい。別の例として、アプリケーションプロバイダは、コンテンツ情報Ictnがユーザ端末10からストリームサーバ40に送信され、インタラクションサーバ30には送信されないアプリケーションを実装することができる。すなわち、コンテンツ情報Ictnは、ビデオストリームと共に送信される。これは、例えば、タイムラインがコンテンツ情報とライブストリームとの間で同期されるので、リアルタイムアプリケーションの場合に好ましい。
【0099】
3-5.コンテンツ及びオブジェクト
なお、コンテンツはビデオゲームに限定されるものではなく、コンテンツに関するオブジェクトはビデオゲームキャラクタに限定されるものではない。コンテンツは、例えば、映画、音楽、TVプログラム、写真、本、新聞、雑誌、漫画、ウェブページ、音声、又はそれらの組み合わせであってもよい。オブジェクトは、例えば、ユーザのアバター、画像、スタンプ、又はボタン、アイコン、キー、バーなどのUIオブジェクトであってもよい。
【0100】
3-6.料金の課金
通信システム1は、インタラクションフィードバックに応じて料金を課金することができる。例えば、視聴者が3つの選択肢を有する場合、通信システム1は、視聴者が選択した選択肢に対して料金を課金してもよい。一例では、視聴者は、より強力な武器に対してより高い料金を支払わなければならない。
【0101】
3-7.他の実施形態
コンテンツに関するデータを送信するシーケンスは、上記実施形態に限定されるものではない。例えば、ストリーミングサーバ40は、配信者による命令とは無関係に、ビデオゲームプログラムを配信者の装置に送信又はプッシュすることができる。あるいは、ストリーミングサーバ40は、視聴者の指示に応答して、ビデオゲームプログラムを送信又はプッシュすることができる。
【0102】
なお、上記実施形態で説明したハードウェア構成は一例に過ぎない。通信システム1内の各エンティティは、必要な機能を有する限り、任意のハードウェア構成を有することができる。例えば、サーバは、物理サーバ、仮想サーバ(すなわち、クラウド)、又はそれらの組み合わせであってもよい。
【0103】
なお、機能要素とハードウェア要素との対応関係は、上記実施形態で説明した例に限定されるものではない。例えば、ストリーミングサーバ40に実装される機能は、複数の物理装置に実装されてもよい。
【0104】
なお、機能要素とソフトウェアとの対応関係は、上記実施形態で説明した例に限定されるものではない。例えば、ユーザ端末10に実装される機能は、複数のアプリケーションプログラム及び/又はオペレーティングシステムによって提供されてもよい。
【0105】
また、上記実施の形態で説明したプログラムは、ソリッドステートメモリデバイス、光ディスク記憶装置、磁気ディスク記憶装置等のコンピュータ読み取り可能な非一時記憶装置を備えていてもよい。あるいは、プログラムは、インターネットを介してサーバからダウンロードされてもよい。
【符号の説明】
【0106】
1…通信方式、11…制御層、12…レンダラ、13…表示層、14…エンコーダ、15…UI部、16…デコーダ、31…受信部、32、処理部、33…記憶部、34…送信部、41…受信部、42…受信部、43…処理部、44…記憶部、45…送信部、101…CPU、102…メモリ、103…記憶装置、104…ネットワークインターフェース、105…出力装置、106…入力装置、107…カメラ、301…CPU、302…メモリ、303…ストレージ、304…ネットワークインターフェース、401…CPU、402…メモリ、403…ストレージ、404…ネットワークインターフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13