JP2020140684A - 端末、サーバおよびプログラム - Google Patents
端末、サーバおよびプログラム Download PDFInfo
- Publication number
- JP2020140684A JP2020140684A JP2019095866A JP2019095866A JP2020140684A JP 2020140684 A JP2020140684 A JP 2020140684A JP 2019095866 A JP2019095866 A JP 2019095866A JP 2019095866 A JP2019095866 A JP 2019095866A JP 2020140684 A JP2020140684 A JP 2020140684A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- terminal
- user input
- real
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 53
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 230000005540 biological transmission Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 13
- 238000007726 management method Methods 0.000 description 36
- 238000004891 communication Methods 0.000 description 27
- 238000000034 method Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 238000013500 data storage Methods 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 7
- 230000015654 memory Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 241001147416 Ursus maritimus Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Image Processing (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】リアルタイムコンテンツと共に楽しむことのできるお絵かき体験を提供する。【解決手段】本発明の一態様によれば、端末は、判定部と、計算部と、描画部とを含む。判定部は、第1および第2のオブジェクトが描画終了状態であるか否かをそれぞれ、端末によって取得された第1のユーザ入力およびサーバから受信された第2のユーザ入力の履歴に基づいて判定する。計算部は、第1および第2のオブジェクトがそれぞれ描画終了状態である場合に、第1および第2のオブジェクトにそれぞれ設定された運動パラメータに基づいて第1および第2のオブジェクトの軌道をそれぞれ計算する。描画部は、第1および第2のオブジェクトがそれぞれ描画終了状態である場合に、計算された第1および第2のオブジェクトの軌道に基づいて第1および第2のオブジェクトをリアルタイムコンテンツの映像データに重畳して再描画する。【選択図】 図2
Description
本発明は、リアルタイムコンテンツの配信時に起動可能なアプリケーションに関する。
非特許文献1に記載されたアプリケーションでは、ユーザの描いた線がオブジェクトとして仮想空間に出現する。そして、このオブジェクトは、例えば水などの他の既定のオブジェクトとともに、あたかも現実空間における物体であるかのように仮想空間内で動く(例えば落下する)ように表現される。
このように、ユーザが描いた線や絵をオブジェクトとして仮想空間に出現させ、それをあたかも現実空間における物体であるかのように仮想空間内で動かすことは、従来の静的なお絵かきアプリケーションとは異なるユーザ体験を生み出す可能性がある。
非特許文献1に記載されたアプリケーションは、単独の端末、例えばスマートフォンな、によって実行される。特許文献1には、オンラインシステムにおける複数端末間の表示画面の同期制御方法が提案されている。具体的には、プレイヤ端末302と観戦者端末301とにオブジェクト表示制御のための同一の表示制御アルゴリズムを適用し、ゲームサーバ100から当該表示制御アルゴリズムの入力情報を提供することで、ゲームサーバ100は、観戦者端末301に対して常にゲームオブジェクトの位置情報を送信し続けることなく表示同期制御が実現できることが記載されている。
また、動画などのコンテンツの生放送(配信)サービスの分野では、観客がコメントを投稿し、配信者が投稿されたコメントに反応するという双方向的な視聴体験が可能である。近年では、いわゆるギフト機能を実装した生放送サービスも提案されているが、これも双方向的な視聴体験に寄与すると考えられる。
さらに、一部の生放送サービスでは、従来のライブ動画と共に楽しむことのできるゲームが実験的に提供されている。例えば非特許文献2には、釣りをするシロクマをクリックおよびタップで操作しアイテムを釣り上げ、それに応じて得られるポイントを配信者と観客との間で競うことのできるゲームが紹介されている。
「Happy Glass」、[online]、[2019年2月11日検索]、インターネット、<URL:http://play.google.com/store/apps/details?id=com.game5mobile.lineandwater&hl=ja>
「つりっくまとは」、[online]、[2019年2月11日検索]、インターネット、<URL:http://dic.nicovideo.jp/a/つりっくま>
本発明は、リアルタイムコンテンツと共に楽しむことのできるお絵かき体験を提供することを目的とする。
本発明の第1の態様によれば、端末は、リアルタイムコンテンツを再生可能であって、取得部と、送信部と、受信部と、判定部と、計算部と、描画部とを含む。取得部は、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力を取得する。送信部は、第1のユーザ入力をサーバへ送信する。受信部は、リアルタイムコンテンツを再生する他の端末によって取得された、第2のオブジェクトを描画するための第2のユーザ入力をサーバから受信する。判定部は、第1のオブジェクトが描画未了状態であるか描画終了状態であるかを第1のユーザ入力の履歴に基づいて判定し、第2のオブジェクトが描画未了状態であるか描画終了状態であるかを第2のユーザ入力の履歴に基づいて判定する。計算部は、第1のオブジェクトが描画終了状態である場合に、第1のオブジェクトに設定された運動パラメータに基づいて第1のオブジェクトの軌道を計算し、第2のオブジェクトが描画終了状態である場合に、第2のオブジェクトに設定された運動パラメータに基づいて第2のオブジェクトの軌道を計算する。描画部は、第1のオブジェクトが描画終了状態である場合に、計算された第1のオブジェクトの軌道に基づいて第1のオブジェクトを、サーバから受信され、または端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画し、第2のオブジェクトが描画終了状態である場合に、計算された第2のオブジェクトの軌道に基づいて第2のオブジェクトを単位時間毎にリアルタイムコンテンツの映像データに重畳して再描画する。
本発明の第2の態様によれば、サーバは、リアルタイムコンテンツを配信可能であって、受信部と、判定部と、計算部と、描画部と、送信部とを含む。受信部は、リアルタイムコンテンツの映像データをリアルタイムコンテンツのソースとなる第1の端末から受信し、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力をリアルタイムコンテンツを再生する第2の端末から受信する。判定部は、第1のオブジェクトが描画未了状態であるか描画終了状態であるかを第1のユーザ入力の履歴に基づいて判定する。計算部は、第1のオブジェクトが描画終了状態である場合に、第1のオブジェクトに設定された運動パラメータに基づいて第1のオブジェクトの軌道を計算する。描画部は、第1のオブジェクトが描画終了状態である場合に、計算された第1のオブジェクトの軌道に基づいて第1のオブジェクトを単位時間毎にリアルタイムコンテンツの映像データに重畳して再描画する。送信部は、描画された第1のオブジェクトを重畳したリアルタイムコンテンツの映像データを第1の端末および第2の端末へ送信する。なお、この態様に係るサーバにおいて、第2の端末は、配信者端末であってもよいし、観客端末であってもよい。前者の場合には第1の端末および第2の端末は同一であり、後者の場合には第1の端末および第2の端末は異なる。
本発明の第3の態様によれば、端末は、リアルタイムコンテンツを再生可能であって、受信部と、判定部と、計算部と、描画部とを含む。受信部は、リアルタイムコンテンツを再生する第1の端末によって取得された、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力をサーバから受信する。判定部は、第1のオブジェクトが描画未了状態であるか描画終了状態であるかを第1のユーザ入力の履歴に基づいて判定する。計算部は、第1のオブジェクトが描画終了状態である場合に、第1のオブジェクトに設定された運動パラメータに基づいて第1のオブジェクトの軌道を計算する。描画部は、第1のオブジェクトが描画終了状態である場合に、計算された第1のオブジェクトの軌道に基づいて第1のオブジェクトを、サーバから受信され、または端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画する。
本発明によれば、リアルタイムコンテンツと共に楽しむことのできるお絵かき体験を提供することができる。
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
なお、実施形態の説明では、リアルタイムコンテンツとしてライブ動画を仮定するが、リアルタイムコンテンツは動画とは異なる種類のコンテンツ(例えば、静止画、テキスト、など)であってもよい。また、ライブ動画とは、動画ソース(例えば、配信者端末)から動画配信サーバへのアップロードと、その配信とがリアルタイムに行われる動画全般を指しており、その題材は特に限定されない。具体的には、ライブ動画は、配信者による単なる撮影動画(例えば、自撮り動画、定点カメラの映像、ドライブレコーダーの映像、など)、配信者の実演(例えば、配信者による、歌唱、ダンスなどのパフォーマンス、ゲームプレイ、トーク、など)を撮影した動画、配信者が例えばゲームなどの対象について実況/解説を行う実況動画、配信者の分身であるアバターが存在する仮想空間の映像を仮想カメラにより撮影したVR(Virtual Reality)動画、などであり得る。
(第1の実施形態)
第1の実施形態に係る配信者端末および観客端末は、図1に例示されるライブ動画配信システムに組み込むことができる。このシステムは、実施形態に係る配信者端末100と、観客端末200と、動画配信サーバ300とを含む。動画配信サーバ300は、各種端末と例えばインターネットなどのネットワーク経由で接続されており、互いにデータを送受信し得る。また、動画配信サーバ300は、他の図示されないサーバ、例えばWebサーバ、コメントサーバ、などともネットワーク経由で接続され、互いにデータを送受信し得る。
第1の実施形態に係る配信者端末および観客端末は、図1に例示されるライブ動画配信システムに組み込むことができる。このシステムは、実施形態に係る配信者端末100と、観客端末200と、動画配信サーバ300とを含む。動画配信サーバ300は、各種端末と例えばインターネットなどのネットワーク経由で接続されており、互いにデータを送受信し得る。また、動画配信サーバ300は、他の図示されないサーバ、例えばWebサーバ、コメントサーバ、などともネットワーク経由で接続され、互いにデータを送受信し得る。
配信者端末100、観客端末200および動画配信サーバ300は、以下に説明するように、ライブ動画配信サービスを授受するための基本的な機能を有する。
配信者端末100は、逐次、例えば配信者端末100に接続されたカメラ/マイクロフォンによって生成された映像/音声データをエンコードし、エンコード済み(マルチメディア)データを動画配信サーバ300へ送信(アップロード)する。
配信者端末100は、コンピュータなどの電子デバイス、例えば、PC(Personal Computer)、モバイル端末(例えば、タブレット、スマートフォン、ラップトップ、フィーチャーフォン、ポータブルゲーム機、など)、VR端末、AR(Augmented Reality)端末、ゲーム機、テレビ受像機(インターネットテレビを含む)、などであり得るが、これらに限られない。
動画配信サーバ300は、配信者端末100からエンコード済みデータを受信し、これに対して、例えば、再エンコード、HLS(HTTP (Hypertext Transfer Protocol) Live Streaming)形式への変換、などの加工を必要に応じて行う。動画配信サーバ300は、(加工後の)エンコード済みデータを配信者端末100および観客端末200へ配信する。すなわち、動画配信サーバ300は、ライブ動画を含むリアルタイムコンテンツを配信可能なサーバである。
観客端末200は、動画配信サーバ300からエンコード済みデータを受信し、これをデコードし、ライブ動画(音声を含む)を再生する。すなわち、観客端末200は、ライブ動画を含むリアルタイムコンテンツを再生可能な端末である。配信者端末100も、観客端末200と同様に、動画配信サーバ300からエンコード済みデータを受信し、これをデコードし、ライブ動画を再生し得る。或いは、配信者端末100は、動画配信サーバ300からエンコード済みデータを受信せず、自ら作成したライブ動画の映像データを再生してもよい。すなわち、配信者端末100は、ライブ動画を含むリアルタイムコンテンツのソースであるとともにこれを再生可能な端末であり得る。
なお、観客端末200は、逐次、図示されないコメントサーバからライブ動画に対して当該観客端末200の操作者もしくはその他の観客、または配信者によって投稿されたコメントデータを受信し、当該コメントデータの示すコメントをライブ動画に重畳して表示してもよい。コメントは、ライブ動画の表示領域の右端から左端に向かって移動するように所定時間に亘って表示されてよい。他方、観客端末200は、ユーザからのテキスト入力に基づいてライブ動画に投稿するコメントデータを生成し、コメントサーバへ送信し得る。これにより、配信者および観客は、ライブ動画の配信中であってもテキストベースでコミュニケーションを取ることが可能となる。
観客端末200は、配信者端末100と同様の電子デバイスであり得る。ただし、観客端末200は、ライブ動画のソースではないので、入力装置としてのカメラ/マイクロフォンから外部の映像/音声データを取り込んだり、これをエンコードして動画配信サーバ300へ送信したりする能力は必要とされない。
そして、第1の実施形態に係る配信者端末100および観客端末200は、かかるライブ動画配信サービスを授受するための基本的な機能に加えて、当該ライブ動画の配信時に起動可能なお絵かきアプリケーションを実行する機能を有する。
このお絵かきアプリケーションは、配信者のみが起動できるものであってもよいし、課金などの条件付きまたは無条件で観客が起動できるものであってもよいし、図1のライブ動画配信システムの運営者が起動できるものであってもよい。また、お絵かきの参加者は、1人(例えば配信者)のみであってもよいし、2人以上であってもよい。
このお絵かきアプリケーションの具体的態様は、特に制限されないが、例えば参加者によって描画されたオブジェクトの全部または一部が、当該オブジェクトに設定された運動パラメータに従って運動、例えば落下しているかのように動的に再描画されるものであり得る。また、かかるアプリケーションにおいて、運動中のオブジェクト同士が衝突した場合には、一方の運動が他方の運動に影響を与え、また他方の運動が一方の運動に影響を与えることで、両方の軌道が変化してもよい。
第1の実施形態では、お絵かきの参加者の端末(配信者端末100または観客端末200)は、それぞれ取得したユーザ入力を互いに動画配信サーバ300を介して送信し合う。そして、各端末は、自ら取得したユーザ入力と動画配信サーバ300を介して受信したユーザ入力とに基づいて、お絵かき処理を分散的に行う。すなわち、各端末は、各オブジェクトの状態(例えば、描画終了/未了状態、運動パラメータ(例えば、運動の種類、初期位置、初速、加速度、初期回転角、運動開始時間)、外観パラメータ(例えば、形状、テクスチャ)、など)を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をライブ動画の映像データに重畳して描画する。なお、ユーザ入力は、動画配信サーバ300に限らず他のサーバ、例えばアプリケーションサーバを介してやり取りされてもよい。
なお、後述するように、第2の実施形態では、動画配信サーバ300が、各端末からユーザ入力を受信し、お絵かき処理を集中的に行う。すなわち、動画配信サーバ300は、各オブジェクトの状態を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をライブ動画の映像データに重畳して描画してこれを各端末へ送信する。なお、ここで説明したお絵かき処理またはその一部は、動画配信サーバ300に限らず他のサーバ、例えばアプリケーションサーバによって行われてもよい。
なお、図1において示される各装置の数は、例示に過ぎない。例えば、観客端末200の数は、時々刻々と変化するので、0となることがあり得るし、数百、数千となることもあり得る。また、図のライブ動画配信システムは、複数のライブ動画を並列的に生放送することができるので、配信者端末100の数も複数となり得る。さらに、図1に示されないWebサーバ、コメントサーバなどがさらに設けられてもよい。
以下、図2乃至図6を用いて、配信者端末100の構成について詳しく説明する。なお、以降の説明では、配信者がお絵かきに参加することを前提としているが、配信者に加えて、または配信者の代わりに観客がお絵かきに参加してもよく、かかる場合の端末の構成についても必要に応じて説明を加える。
配信者端末100は、コンピュータであって、例えば、入出力制御、通信制御、そしてお絵かき処理を行うプロセッサを含む。ここで、プロセッサは、典型的にはCPU(Central Processing Unit)および/またはGPU(Graphics Processing Unit)であるが、マイコン、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、またはその他の汎用または専用のプロセッサなどであってもよい。
また、配信者端末100は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータ、例えばユーザ入力(イベントデータ)、映像データ、アプリケーションデータ(例えば、描画されたオブジェクトの管理に必要とされるデータ)、などを一時的に格納するメモリを含んでいる。メモリは、かかるプログラム/データが展開されるワークエリアを有するRAM(Random Access Memory)を含み得る。
なお、配信者端末100は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、配信者端末100に内蔵または外付けされたHDD(Hard Disc Drive)、SSD(Solid State Drive)、フラッシュメモリなどであってもよいし、配信者端末100からアクセス可能なデータベースサーバであってもよい。
また、配信者端末100は、複数のコンピュータの組み合わせであってよい。例えば、配信者端末100の機能部、例えば図2に示される機能部が別個のコンピュータに分散して実装されてもよい。
次に、図2を用いて配信者端末100の構成例の説明を続ける。図2の配信者端末100は、通信I/F(インタフェース) 101と、入力装置102と、出力装置103と、受信データ取得部111と、デコーダ112と、映像データ記憶部113と、出力制御部114と、ユーザ入力取得部115と、送信制御部116と、オブジェクト管理部117と、描画状態判定部118と、軌道計算部119と、描画部120と、映像データ取得部121と、エンコーダ122とを含む。
通信I/F 101は、ネットワーク経由で、外部装置、例えば、動画配信サーバ300またはその他のサーバ、などと通信をするためのモジュールであり得る。例えば、通信I/F 101は、Wi−Fiモジュール、4Gモジュール、5Gモジュール、などの一部または全部を含み得る。通信I/F 101は、配信者端末100に内蔵されてもよいし、配信者端末100に外付けされてもよい。
通信I/F 101は、共通のライブ動画を再生する他の端末において取得された、お絵かきに関するユーザ入力(イベントデータ)、例えばお絵かきアプリケーションにおいてオブジェクトを描画するための入力(描画入力)、を動画配信サーバ300からネットワーク経由で受信し、これを受信データ取得部111へ送る。また、通信I/F 101は、ライブ動画の映像データを動画配信サーバ300からネットワーク経由で受信し、これを受信データ取得部111へ送ってもよい。
通信I/F 101は、ユーザ入力取得部115によって取得された、お絵かきに関するユーザ入力(イベントデータ)、例えば描画入力、を送信制御部116から受け取り、これを動画配信サーバ300へネットワーク経由で送信する。
さらに、通信I/F 101は、ライブ動画のエンコードされた映像データを送信制御部116から受け取り、これを動画配信サーバ300へネットワーク経由で送信する。なお、観客端末200の通信I/Fはかかる機能を必要としない。
入力装置102は、例えば、タッチスクリーン、キーボード、マウス、テンキー、マイクロフォン、カメラ、慣性センサ、などであり得る。入力装置102は、配信者端末100に内蔵されてもよいし、配信者端末100に外付けされてもよい。
入力装置102は、お絵かきの参加者としての配信者からお絵かきに関する操作、例えばストローク、タッチ、タップ、スワイプ、ドラグ、クリック、などを受け付け、これに応じたユーザ入力(イベントデータ)を発生する。そして、入力装置102は、このユーザ入力をユーザ入力取得部115へ送る。
なお、入力装置102は、オブジェクトが描画される過程が視聴可能となるように、ユーザ入力を単位時間毎に発生させてユーザ入力取得部115へ送ってもよい。ここで、単位時間は、お絵かきアプリケーションのフレーム時間であってよい。このフレーム時間は、ライブ動画のフレーム時間と同一であってもよいし、異なっていてもよい。例えば、お絵かきアプリケーションのフレームレートをライブ動画のフレームレートよりも低くすることで、参加者間の同期を容易にするとともに、配信者端末100および観客端末200における処理負荷を軽減できる。
また、例えば入力装置102としてのカメラは、配信者または他の被写体を撮影して映像データを生成する。そして、この入力装置102は、映像データを映像データ取得部121へ送る。かかる映像データは、特に限定されないが、例えば図3に示される配信者の自撮り映像であってもよい。なお、観客端末200の入力装置はかかる機能を必要としない。
出力装置103は、少なくともディスプレイを含み、このほかにスピーカ、バイブレータ、などを含んでもよい。出力装置103は、配信者端末100に内蔵されてもよいし、配信者端末100に外付けされてもよい。
出力装置103は、出力制御部114から映像データを受け取り、これを出力(表示)する。また、出力装置103は、出力制御部114から音声データを受け取ってこれを出力してもよい。
受信データ取得部111は、例えば前述のプロセッサに相当し得る。受信データ取得部111は、ライブ動画のエンコードされた映像データを通信I/F 101から取得し、これをデコーダ112へ送る。また、受信データ取得部111は、このライブ動画を再生する他の端末において取得された、お絵かきに関するユーザ入力、例えば描画入力、を通信I/F 101から例えば単位時間毎に取得し、これをオブジェクト管理部117へ送る。
デコーダ112は、例えば前述のプロセッサまたは専用の回路に相当し得る。デコーダ112は、ライブ動画のエンコードされた映像データを受信データ取得部111から受け取る。デコーダ112は、エンコードされた映像データを適切なコーデックに従ってデコードして映像データを再生する。なお、デコーダ112は、ビデオデコーダに加えて音声デコーダを含んでいてもよい。デコーダ112は、再生した映像データを映像データ記憶部113に書き込む。
映像データ記憶部113は、例えば前述のメモリに相当し得る。映像データ記憶部113は、デコーダ112によって再生された、ライブ動画の映像データを保存する。お絵かきアプリケーションの非実行時には、この映像データは、出力制御部114によって適時、すなわち当該映像データに対応する出力タイミングの到来前に、読み出される。他方、お絵かきアプリケーションの実行時に、この映像データは、後述されるように、描画部120によってお絵かき画面を重畳して更新される。そして、お絵かき画面が重畳された、ライブ動画の映像データは、出力制御部114によって適時に読み出される。
出力制御部114は、例えば前述のプロセッサに相当し得る。出力制御部114は、映像データ記憶部113に保存された映像データを適時に読み出し、これを出力装置103へ送る。
ユーザ入力取得部115は、例えば前述のプロセッサに相当し得る。ユーザ入力取得部115は、お絵かきに関するユーザ入力、例えば描画入力、を入力装置102から例えば単位時間毎に取得する。ユーザ入力取得部115は、このユーザ入力を送信制御部116およびオブジェクト管理部117へ送る。
送信制御部116は、例えば前述のプロセッサに相当し得る。送信制御部116は、ユーザ入力取得部115によって取得されたユーザ入力、例えば描画入力、をユーザ入力取得部115から受け取り、これを通信I/F 101へ例えば単位時間毎に送る。
また、送信制御部116は、ライブ動画のエンコードされた映像データをエンコーダ122から受け取り、これを通信I/F 101へ送る。なお、観客端末200の送信制御部はかかる機能を必要としない。
オブジェクト管理部117は、例えば前述のプロセッサに相当し得る。オブジェクト管理部117は、受信データ取得部111およびユーザ入力取得部115から、お絵かきに関するユーザ入力、例えば描画入力、を受け取り、各参加者によって描画されている/されたオブジェクトの状態を管理する。
具体的には、オブジェクト管理部117は、受け取ったユーザ入力に基づいて、例えば、オブジェクトの運動パラメータを設定したり、オブジェクトの外観パラメータを設定したりする。
例えば、オブジェクト管理部117は、参加者がオブジェクトを描画するときの始点を当該オブジェクトの初期位置として設定してもよい。また、オブジェクト管理部117は、例えば、ユーザ入力、オブジェクトの外観パラメータ、などに応じて、当該オブジェクトの運動の種類、例えば、オブジェクトを運動させるか/静止(固定)させるか、運動させる場合には、例えば落下などの等加速度運動、等速直線運動、またはこれらの組み合わせ、などのいずれであるか、を設定してもよい。さらに、オブジェクトを運動させる場合には、オブジェクト管理部117は、例えば、ユーザ入力(例えば、描画終了時になされたフリックの方向および/または速度)、オブジェクトの外観パラメータ、などに応じて、オブジェクトの初速(ベクトル)、加速度(ベクトル)、初期回転角(ベクトル)、などを設定してもよい。なお、オブジェクトの運動によりオブジェクトの姿勢(回転角)を変更しない場合には、オブジェクトの初期回転角を管理する必要はない。また、加速度は、等速直線運動、または落下のような加速度が既知である等加速度運動を扱う場合であれば、固定可能であるためオブジェクト毎に設定する必要はない。
また、オブジェクト管理部117は、例えばユーザ入力としてのストロークに基づいて、オブジェクトの形状を表現する(曲)線データを設定してもよい。線の太さ、またはテクスチャは、ユーザ入力により変更可能であってよい。オブジェクト管理部117は、オブジェクトが描画される過程が視聴可能となるように、当該オブジェクトに関するユーザ入力を単位時間毎に取得し、線データを更新してもよい。
さらに、オブジェクト管理部117は、描画終了状態と判定されていないオブジェクトについてのユーザ入力を描画状態判定部118に与え、描画状態判定部118にこのオブジェクトが描画終了状態であるか描画未了状態であるかを判定させる。オブジェクト管理部117は、描画状態判定部118による判定結果に従って、オブジェクトの描画終了フラグまたは描画未了フラグを有効/無効に設定する。
ここで、オブジェクト管理部117は、オブジェクトが描画終了状態であると判定されたタイミングに基づいて、当該オブジェクトを運動させる場合の運動開始時間を設定してもよい。例えば、オブジェクト管理部117は、オブジェクトが描画終了状態であると判定されてから一定時間、例えば1フレーム後に、当該オブジェクトの運動開始時間を設定してもよい。なお、この一定時間は、例えば、ユーザ入力、オブジェクトの外観パラメータ、などに応じて可変であってもよい。
加えて、オブジェクト管理部117は、描画終了状態と判定されたオブジェクトの運動パラメータを軌道計算部119に与え、当該オブジェクトの軌道を計算させる。これにより、オブジェクトの所定時間後の位置および姿勢が計算される。なお、オブジェクトの運動によりオブジェクトの姿勢を変更しない場合には、オブジェクトの姿勢を計算する必要はない。そして、オブジェクト管理部117は、オブジェクトの描画に必要なデータ、例えばオブジェクトの外観パラメータ、例えば描画されるフレームにおけるオブジェクトの位置(および姿勢)を示すデータ、などを描画部120へ送る。
描画状態判定部118は、例えば前述のプロセッサに相当し得る。描画状態判定部118は、描画終了状態であると判定されていない各オブジェクトに関するユーザ入力をオブジェクト管理部117から受け取り、この履歴に基づいて、当該オブジェクトが描画未了状態であるか描画終了状態であるかを判定する。描画状態判定部118は、各オブジェクトについての判定結果を返す。
例えば、描画状態判定部118は、ある参加者の端末からの描画入力が所定期間に亘って途絶えた場合に、当該描画入力に対応付けられるオブジェクトが描画終了状態であると判定してもよい。また、描画状態判定部118は、ある参加者の端末において描画入力後に連続してダブルタップ、フリック、ダブルクリック、などがなされた場合に、当該描画入力に対応付けられるオブジェクトが描画終了状態であると判定してもよい。
軌道計算部119は、例えば前述のプロセッサに相当し得る。軌道計算部119は、描画終了状態であると判定されたオブジェクトの運動パラメータをオブジェクト管理部117から受け取り、これに基づいて当該オブジェクトの軌道を計算する。軌道計算部119は、各オブジェクトの所定時間後の位置(および姿勢)を示すデータをオブジェクト管理部117に返す。
具体的には、軌道計算部119は、各オブジェクトの運動の種類に応じて、当該オブジェクトの軌道、すなわち所与の時間における位置(および姿勢)、を計算するための関数を選択し、当該関数に当該オブジェクトの運動パラメータに含まれる要素、例えば、初速、加速度、初期回転角、などと、運動開始からの経過時間とを代入する。なお、運動開始からの経過時間は、例えばこの所与の時間から運動開始時間を差し引くことで導出可能である。
さらに、軌道計算部119は、複数のオブジェクトが衝突する場合に、これらの衝突後の運動パラメータを更新し、オブジェクト管理部117へ通知してもよい。すなわち、軌道計算部119は、第1のオブジェクトおよび第2のオブジェクトが衝突する場合に、第1のオブジェクトおよび第2のオブジェクトの衝突時の運動パラメータに基づいて第1のオブジェクトおよび第2のオブジェクトの衝突後の運動パラメータを更新し得る。軌道計算部119は、例えば、この衝突における反発係数、および運動量保存則を利用して、両オブジェクトの衝突後の速度および回転角を算出し、衝突時点から新たな運動を開始したものとして、これらの運動パラメータにおける運動開始時間、初速、初期回転角、などを更新し得る。
描画部120は、例えば前述のプロセッサに相当し得る。描画部120は、少なくとも描画終了状態にあるオブジェクトの状態を示すデータをオブジェクト管理部117から受け取る。描画部120は、単位時間毎に、映像データ記憶部113からリアルタイムコンテンツの映像データを読み出し、当該映像データに重畳してお絵かき画面を描画する。
例えば、描画部120は、描画終了状態にあるオブジェクト毎に、計算された当該オブジェクトの軌道に基づいて、当該オブジェクトを単位時間毎にライブ動画の映像データに重畳して再描画する。これにより、例えば、図4乃至図6に示されるように、丸形のオブジェクトが落下し(図4)、お椀型のオブジェクトに衝突して軌道を変え(図5)、そして再び落下する(図6)、といった演出が可能となる。なお、お椀型のオブジェクトは、図4乃至図6の例では固定されているが、これも落下またはその他の運動をするように描画されてもよい。
他方、描画部120は、描画未了状態にあるオブジェクト毎に、当該オブジェクトに対応する最新の描画入力に基づいて、当該オブジェクトを単位時間毎にライブ動画の映像データに重畳して再描画してもよい。これにより、オブジェクトが完成に近づく様子をライブ動画の視聴者および配信者が共有できる。ただし、描画部120が描画未了状態にあるオブジェクトを描画することは必須ではない。
映像データ取得部121は、例えば前述のプロセッサに相当し得る。ライブ動画の映像データを例えば入力装置102としてのカメラまたはその他の映像ソースから取得し、これをエンコーダ122へ送る。なお、観客端末200は映像データ取得部121に相当する機能部を必要としない。
エンコーダ122は、例えば前述のプロセッサまたは専用の回路に相当し得る。エンコーダ122は、ライブ動画の映像データを映像データ取得部121から受け取り、これを適切なコーデックに従ってエンコードする。そして、エンコーダ122は、ライブ動画のエンコードされた映像データを送信制御部116へ送る。なお、観客端末200はエンコーダ122に相当する機能部を必要としない。
なお、配信者および/または観客は、お絵かきに参加せずに参加者によるお絵かきを視聴することもできる。かかる配信者および/または観客向けの配信者端末100および/または観客端末200は、当該配信者自身および/または観客自身からのお絵かきに関するユーザ入力を扱う必要がないので、前述のユーザ入力取得部115および送信制御部116の機能の一部または全部を必要としない。
次に、図7を用いて、配信者端末100の動作を説明する。図7の動作は、ステップS201から開始する。
ステップS201において、入力装置102およびユーザ入力取得部115は、描画入力(および他のユーザ入力)を取得し、送信制御部116および通信I/F 101はこれを動画配信サーバ300へ送信する。他方、通信I/F 101および受信データ取得部111は、他の端末において取得された描画入力(および他のユーザ入力)を受信する(ステップS202)。ステップS201およびステップS202の後に、処理はステップS203へ進む。なお、ステップS201およびステップS202は、図7とは逆の順序で実行されてもよいし、並列的に実行されてもよい。
ステップS203において、オブジェクト管理部117は、管理対象となるオブジェクトのうち未選択の1つを選択する。このとき、オブジェクト管理部117は、必要に応じて、このオブジェクトの運動パラメータおよび/または外観パラメータを、ステップS201において取得されたユーザ入力、またはステップS202において受信されたユーザ入力に基づいて設定してもよい。
次に、描画状態判定部118は、ステップS203において選択されたオブジェクトが描画未了状態であるか描画終了状態であるかを判定する(ステップS204)。このオブジェクトが描画未了状態であると判定されれば処理はステップS205へ進み、そうでなければ処理はステップS206へ進む。なお、オブジェクトが過去に実行されたステップS204において既に描画終了状態であると判定されている場合には、ステップS204がスキップされステップS206が実行されてもよい。
ステップS205において、描画部120は、ステップS201において取得された描画入力、またはステップS202において受信された描画入力に基づいて、ステップS203において選択されたオブジェクトをライブ動画の映像データに重畳して再描画する。ステップS205の後に、処理はステップS208へ進む。なお、前述のように、描画部120は描画未了状態にあるオブジェクトを描画しなくてもよく、この場合にはステップS205は省略されてもよい。
ステップS206において、軌道計算部119は、ステップS203において選択されたオブジェクトの運動パラメータに基づいて、当該オブジェクトの軌道を計算する。そして、描画部120は、ステップS203において選択されたオブジェクトを、ステップS206において計算された軌道(およびこのオブジェクトの外観パラメータ)に基づいて、ライブ動画の映像データに重畳して再描画する(ステップS207)。ステップS207の後に、処理はステップS208へ進む。
ステップS208において、オブジェクト管理部117は、管理対象となる全てのオブジェクトが選択済みであるか否かを判定する。全てのオブジェクトが選択済みであるならば処理はステップS209へ進み、そうでなければ処理はステップS203に戻る。
ステップS209において、出力制御部114および出力装置103はステップS203乃至ステップS208のループを通じて描画された1単位時間分のお絵かき画面が重畳されたライブ動画の映像データを出力する。ステップS209の後に、処理はステップS201に戻る。
以上説明したように、第1の実施形態に係る端末は、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションに関するユーザ入力を取得し、当該リアルタイムコンテンツを再生中の他の端末へサーバを介して送信する。そして、各端末は、自ら取得したユーザ入力および/またはサーバを介して受信したユーザ入力に基づいて、各オブジェクトの状態を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をリアルタイムコンテンツの映像データに重畳して描画する。故に、この端末によれば、リアルタイムコンテンツの配信者および視聴者が、当該リアルコンテンツと共に楽しむことのできる新規なお絵かき体験を提供することができる。
(第2の実施形態)
第2の実施形態では、動画配信サーバ300が、各端末からユーザ入力を受信し、お絵かき処理を集中的に行う。故に、配信者端末100および観客端末200は、お絵かきに関するユーザ入力を取得し、動画配信サーバ300へ送信する以外の機能を必要としない。故に、配信者端末100(および観客端末200)から、図2のオブジェクト管理部117、描画状態判定部118、軌道計算部119、および描画部120は省略され得る。
第2の実施形態では、動画配信サーバ300が、各端末からユーザ入力を受信し、お絵かき処理を集中的に行う。故に、配信者端末100および観客端末200は、お絵かきに関するユーザ入力を取得し、動画配信サーバ300へ送信する以外の機能を必要としない。故に、配信者端末100(および観客端末200)から、図2のオブジェクト管理部117、描画状態判定部118、軌道計算部119、および描画部120は省略され得る。
次に、図8を用いて、第2の実施形態に係る動画配信サーバ300の構成について詳しく説明する。
動画配信サーバ300は、コンピュータであって、配信者端末100および/または観客端末200と同様のハードウェア構成、例えばプロセッサおよびメモリ、を有し得る。また、動画配信サーバ300は、複数のコンピュータの組み合わせであってよい。例えば、動画配信サーバ300の機能部、例えば図8に示される機能部が別個のコンピュータに分散して実装されてもよい。
次に、図8を用いて動画配信サーバ300の構成例の説明を続ける。図8の動画配信サーバ300は、通信I/F 301と、受信データ取得部311と、デコーダ312と、映像データ記憶部313と、送信制御部316と、オブジェクト管理部317と、描画状態判定部318と、軌道計算部319と、描画部320と、エンコーダ321とを含む。
図8の受信データ取得部311、デコーダ312、描画状態判定部318、軌道計算部319および描画部320は、それぞれ図2の受信データ取得部111、デコーダ112、描画状態判定部118、軌道計算部119および描画部120と同一または類似の構成であってよいので説明を省略する。
通信I/F 301は、前述の通信I/F 101と同様のハードウェアであり得る。通信I/F 301は、動画配信サーバ300に内蔵されてもよいし、動画配信サーバ300に外付けされてもよい。
通信I/F 301は、共通のライブ動画を再生する各端末において取得された、お絵かきに関するユーザ入力、例えば描画入力、を動画配信サーバ300からネットワーク経由で受信し、これを受信データ取得部311へ送る。また、通信I/F 301は、ライブ動画の映像データを配信者端末100からネットワーク経由で受信し、これを受信データ取得部311へ送ってもよい。
通信I/F 301は、ライブ動画のエンコードされた映像データを送信制御部316から受け取り、これを当該ライブ動画を再生中の各端末へネットワーク経由で送信する。お絵かきアプリケーションの実行時には、この映像データには描画部320によってお絵かき画面が重畳されている。
映像データ記憶部313は、例えば前述のメモリに相当し得る。映像データ記憶部313は、デコーダ312によって再生された、ライブ動画の映像データを保存する。お絵かきアプリケーションの非実行時には、この映像データは、エンコーダ321によって適時、すなわち当該映像データに対応する送信タイミングの到来前に、読み出される。他方、お絵かきアプリケーションの実行時に、この映像データは、後述されるように、描画部320によってお絵かき画面を重畳して更新される。そして、お絵かき画面が重畳された、ライブ動画の映像データは、エンコーダ321によって適時に読み出される。
送信制御部316は、ライブ動画のエンコードされた映像データをエンコーダ321から受け取り、これを通信I/F 301へ送る。なお、前述のように、お絵かきアプリケーションの実行時には、この映像データには描画部320によってお絵かき画面が重畳されている。
オブジェクト管理部317は、例えば前述のプロセッサに相当し得る。オブジェクト管理部317は、受信データ取得部311から、お絵かきに関するユーザ入力、例えば描画入力、を受け取り、各参加者によって描画されている/されたオブジェクトの状態を管理する。ここで、オブジェクト管理部317によって行われる処理は、基本的に前述のオブジェクト管理部117と同一または類似であってよい。
エンコーダ321は、例えば前述のプロセッサまたは専用の回路に相当し得る。エンコーダ321は、映像データ記憶部313に保存された映像データを適時に読み出し、これを適切なコーデックに従ってエンコードする。そして、エンコーダ321は、ライブ動画のエンコードされた映像データを送信制御部316へ送る。
次に、図9を用いて、動画配信サーバ300の動作を説明する。なお、図9のステップS403、ステップS405およびステップS406は、図7のステップS204、ステップS206およびステップS207とそれぞれ同一または類似の処理であってよいので説明を省略する。図9の動作は、ステップS401から開始する。
通信I/F 301および受信データ取得部311は、各端末において取得された描画入力(および他のユーザ入力)を受信する(ステップS401)。ステップS401の後に、処理はステップS402へ進む。
ステップS402において、オブジェクト管理部317は、管理対象となるオブジェクトのうち未選択の1つを選択する。このとき、オブジェクト管理部317は、必要に応じて、このオブジェクトの運動パラメータおよび/または外観パラメータを、ステップS401において受信されたユーザ入力に基づいて設定してもよい。
ステップS404において、描画部320は、ステップS401において取得された描画入力に基づいて、ステップS402において選択されたオブジェクトをライブ動画の映像データに重畳して再描画する。ステップS404の後に、処理はステップS407へ進む。なお、前述のように、描画部320は描画未了状態にあるオブジェクトを描画しなくてもよく、この場合にはステップS404は省略されてもよい。
ステップS407において、オブジェクト管理部317は、管理対象となる全てのオブジェクトが選択済みであるか否かを判定する。全てのオブジェクトが選択済みであるならば処理はステップS408へ進み、そうでなければ処理はステップS402に戻る。
ステップS408において、エンコーダ321はステップS402乃至ステップS407のループを通じて描画された1単位時間分のお絵かき画面が重畳されたライブ動画の映像データをエンコードし、送信制御部316および通信I/F 301はこれを各端末へ送信する。ステップS408の後に、処理はステップS401に戻る。
以上説明したように、第2の実施形態に係るサーバは、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションに関するユーザ入力をお絵かきの参加者の各端末から受信する。そして、このサーバは、受信したユーザ入力に基づいて、各オブジェクトの状態を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をリアルタイムコンテンツの映像データに重畳して描画する。それから、このサーバは、お絵かき画面を重畳した、リアルタイムコンテンツの映像データを、当該リアルタイムコンテンツを再生中の各端末へ送信する。故に、このサーバによれば、リアルタイムコンテンツの配信者および視聴者が、当該リアルコンテンツと共に楽しむことのできる新規なお絵かき体験を提供することができる。なお、本実施形態において、サーバは必ずしも全てのお絵かき処理を担当せずともよく、サーバおよび端末は必要に応じてお絵かき処理を分担してもよい。
(変形例)
なお、実施形態の説明では、オブジェクトおよびリアルタイムコンテンツが2D画像ないし映像であることとした。しかしながら、これらは、3D画像ないし映像であってもよい。例えば、VR、ARまたはMR(Mixed Reality)などの3次元空間において、2次元または3次元のオブジェクトが運動するように描画されてもよい。
なお、実施形態の説明では、オブジェクトおよびリアルタイムコンテンツが2D画像ないし映像であることとした。しかしながら、これらは、3D画像ないし映像であってもよい。例えば、VR、ARまたはMR(Mixed Reality)などの3次元空間において、2次元または3次元のオブジェクトが運動するように描画されてもよい。
また、実施形態の説明では、ライブ動画の配信時に実行されるお絵かきアプリケーションについて説明したが、ライブ動画以外のコンテンツ、例えば、予め作成され動画配信サーバに保存されている動画の映像データの再生時に、当該動画の観客がかかるお絵かきアプリケーションを実行できるようにしてもよい。また、オブジェクトが予め埋め込まれたリアルタイムコンテンツまたは非リアルタイムコンテンツを配信し、その配信時にかかるお絵かきアプリケーションを実行できるようにしてもよい。この場合に、コンテンツに予め埋め込まれたオブジェクトと当該コンテンツを視聴しながらお絵かきに参加する配信者および/または観客が描いたオブジェクトとが衝突等の相互作用するように描画されてもよい。
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、1つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が1つの装置に実装されることもあり得る。
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
100・・・配信者端末
101,301・・・通信I/F
102・・・入力装置
103・・・出力装置
111,311・・・受信データ取得部
112,312・・・デコーダ
113,313・・・映像データ記憶部
114・・・出力制御部
115・・・ユーザ入力取得部
116,316・・・送信制御部
117,317・・・オブジェクト管理部
118,318・・・描画状態判定部
119,319・・・軌道計算部
120,320・・・描画部
121・・・映像データ取得部
122,321・・・エンコーダ
200・・・観客端末
300・・・動画配信サーバ
101,301・・・通信I/F
102・・・入力装置
103・・・出力装置
111,311・・・受信データ取得部
112,312・・・デコーダ
113,313・・・映像データ記憶部
114・・・出力制御部
115・・・ユーザ入力取得部
116,316・・・送信制御部
117,317・・・オブジェクト管理部
118,318・・・描画状態判定部
119,319・・・軌道計算部
120,320・・・描画部
121・・・映像データ取得部
122,321・・・エンコーダ
200・・・観客端末
300・・・動画配信サーバ
Claims (11)
- リアルタイムコンテンツを再生可能な端末であって、
前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力を取得する取得部と、
前記第1のユーザ入力をサーバへ送信する送信部と、
前記リアルタイムコンテンツを再生する他の端末によって取得された、第2のオブジェクトを描画するための第2のユーザ入力を前記サーバから受信する受信部と、
前記第1のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第1のユーザ入力の履歴に基づいて判定し、前記第2のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第2のユーザ入力の履歴に基づいて判定する判定部と、
前記第1のオブジェクトが前記描画終了状態である場合に、前記第1のオブジェクトに設定された運動パラメータに基づいて前記第1のオブジェクトの軌道を計算し、前記第2のオブジェクトが前記描画終了状態である場合に、前記第2のオブジェクトに設定された運動パラメータに基づいて前記第2のオブジェクトの軌道を計算する計算部と、
前記第1のオブジェクトが前記描画終了状態である場合に、計算された前記第1のオブジェクトの軌道に基づいて前記第1のオブジェクトを、前記サーバから受信され、または前記端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画し、前記第2のオブジェクトが前記描画終了状態である場合に、計算された前記第2のオブジェクトの軌道に基づいて前記第2のオブジェクトを前記単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する描画部と
を具備する、端末。 - 前記取得部は、前記第1のユーザ入力を前記単位時間毎に取得し、
前記送信部は、前記第1のユーザ入力を前記単位時間毎に前記サーバへ送信し、
前記受信部は、前記第2のユーザ入力を前記単位時間毎に前記サーバから受信し、
前記描画部は、前記第1のオブジェクトが前記描画未了状態である場合に、前記単位時間毎に前記第1のユーザ入力に基づいて前記第1のオブジェクトを前記リアルタイムコンテンツの映像データに重畳して再描画し、前記第2のオブジェクトが前記描画未了状態である場合に、前記単位時間毎に前記第2のユーザ入力に基づいて前記第2のオブジェクトを前記リアルタイムコンテンツの映像データに重畳して再描画する、
請求項1に記載の端末。 - 前記計算部は、前記第1のオブジェクトおよび前記第2のオブジェクトが前記描画終了状態であって、かつ前記第1のオブジェクトおよび前記第2のオブジェクトが衝突する場合に、前記第1のオブジェクトおよび前記第2のオブジェクトの衝突時の運動パラメータに基づいて前記第1のオブジェクトおよび前記第2のオブジェクトの衝突後の運動パラメータを更新する、請求項1に記載の端末。
- リアルタイムコンテンツを配信可能なサーバであって、
前記リアルタイムコンテンツの映像データを前記リアルタイムコンテンツのソースとなる第1の端末から受信し、前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力を前記リアルタイムコンテンツを再生する第2の端末から受信する受信部と、
前記第1のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第1のユーザ入力の履歴に基づいて判定する判定部と、
前記第1のオブジェクトが前記描画終了状態である場合に、前記第1のオブジェクトに設定された運動パラメータに基づいて前記第1のオブジェクトの軌道を計算する計算部と、
前記第1のオブジェクトが前記描画終了状態である場合に、計算された前記第1のオブジェクトの軌道に基づいて前記第1のオブジェクトを単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する描画部と、
描画された前記第1のオブジェクトを重畳した前記リアルタイムコンテンツの映像データを前記第1の端末および前記第2の端末へ送信する送信部と
を具備する、サーバ。 - 前記受信部は、前記第1のユーザ入力を前記単位時間毎に前記第2の端末から受信し、
前記描画部は、前記第1のオブジェクトが前記描画未了状態である場合に、前記単位時間毎に前記第1のユーザ入力に基づいて前記第1のオブジェクトを前記リアルタイムコンテンツの映像データに重畳して再描画し、
前記送信部は、描画された前記第1のオブジェクトを重畳した前記リアルタイムコンテンツの映像データを前記第1の端末および前記第2の端末へ送信する、
請求項4に記載のサーバ。 - 前記受信部は、さらに、前記お絵かきアプリケーションにおいて第2のオブジェクトを描画するための第2のユーザ入力を前記リアルタイムコンテンツを再生する第3の端末から受信し、
前記判定部は、さらに、前記第2のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第2のユーザ入力の履歴に基づいて判定し、
前記計算部は、前記第2のオブジェクトが前記描画終了状態である場合に、前記第2のオブジェクトに設定された運動パラメータに基づいて前記第2のオブジェクトの軌道を計算し、
前記描画部は、前記第2のオブジェクトが前記描画終了状態である場合に、計算された前記第2のオブジェクトの軌道に基づいて前記第2のオブジェクトを単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画し、
前記送信部は、描画された前記第2のオブジェクトを重畳した前記リアルタイムコンテンツの映像データを前記第1の端末、前記第2の端末および前記第3の端末へ送信する、
請求項4または請求項5に記載のサーバ。 - 前記計算部は、前記第1のオブジェクトおよび前記第2のオブジェクトが前記描画終了状態であって、かつ前記第1のオブジェクトおよび前記第2のオブジェクトが衝突する場合に、前記第1のオブジェクトおよび前記第2のオブジェクトの衝突時の運動パラメータに基づいて前記第1のオブジェクトおよび前記第2のオブジェクトの衝突後の運動パラメータを更新する、請求項6に記載のサーバ。
- リアルタイムコンテンツを再生可能な端末であって、
前記リアルタイムコンテンツを再生する第1の端末によって取得された、前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力をサーバから受信する受信部と、
前記第1のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第1のユーザ入力の履歴に基づいて判定する判定部と、
前記第1のオブジェクトが前記描画終了状態である場合に、前記第1のオブジェクトに設定された運動パラメータに基づいて前記第1のオブジェクトの軌道を計算する計算部と、
前記第1のオブジェクトが前記描画終了状態である場合に、計算された前記第1のオブジェクトの軌道に基づいて前記第1のオブジェクトを、前記サーバから受信され、または前記端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画する描画部と
を具備する、端末。 - 前記受信部は、さらに、前記リアルタイムコンテンツを再生する第2の端末によって取得された、前記お絵かきアプリケーションにおいて第2のオブジェクトを描画するための第2のユーザ入力を前記サーバから受信し、
前記判定部は、さらに、前記第2のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第2のユーザ入力の履歴に基づいて判定し、
前記計算部は、前記第2のオブジェクトが前記描画終了状態である場合に、前記第2のオブジェクトに設定された運動パラメータに基づいて前記第2のオブジェクトの軌道を計算し、
前記描画部は、前記第2のオブジェクトが前記描画終了状態である場合に、計算された前記第2のオブジェクトの軌道に基づいて前記第2のオブジェクトを単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する、
請求項8に記載の端末。 - 前記計算部は、前記第1のオブジェクトおよび前記第2のオブジェクトが前記描画終了状態であって、かつ前記第1のオブジェクトおよび前記第2のオブジェクトが衝突する場合に、前記第1のオブジェクトおよび前記第2のオブジェクトの衝突時の運動パラメータに基づいて前記第1のオブジェクトおよび前記第2のオブジェクトの衝突後の運動パラメータを更新する、請求項9に記載の端末。
- リアルタイムコンテンツを再生可能な端末を、
前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第1のオブジェクトを描画するための第1のユーザ入力を取得する手段、
前記第1のユーザ入力をサーバへ送信する手段、
前記リアルタイムコンテンツを再生する他の端末によって取得された、第2のオブジェクトを描画するための第2のユーザ入力を前記サーバから受信する手段、
前記第1のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第1のユーザ入力の履歴に基づいて判定し、前記第2のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第2のユーザ入力の履歴に基づいて判定する手段、
前記第1のオブジェクトが前記描画終了状態である場合に、前記第1のオブジェクトに設定された運動パラメータに基づいて前記第1のオブジェクトの軌道を計算し、前記第2のオブジェクトが前記描画終了状態である場合に、前記第2のオブジェクトに設定された運動パラメータに基づいて前記第2のオブジェクトの軌道を計算する手段、
前記第1のオブジェクトが前記描画終了状態である場合に、計算された前記第1のオブジェクトの軌道に基づいて前記第1のオブジェクトを、前記サーバから受信され、または前記端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画し、前記第2のオブジェクトが前記描画終了状態である場合に、計算された前記第2のオブジェクトの軌道に基づいて前記第2のオブジェクトを前記単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する手段
として機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019095866A JP2020140684A (ja) | 2019-05-22 | 2019-05-22 | 端末、サーバおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019095866A JP2020140684A (ja) | 2019-05-22 | 2019-05-22 | 端末、サーバおよびプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019036316A Division JP6533022B1 (ja) | 2019-02-28 | 2019-02-28 | 端末、サーバおよびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020140684A true JP2020140684A (ja) | 2020-09-03 |
Family
ID=72264965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019095866A Pending JP2020140684A (ja) | 2019-05-22 | 2019-05-22 | 端末、サーバおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020140684A (ja) |
-
2019
- 2019-05-22 JP JP2019095866A patent/JP2020140684A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11050977B2 (en) | Immersive interactive remote participation in live entertainment | |
JP6724110B2 (ja) | 仮想空間中のアバター表示システム、仮想空間中のアバター表示方法、コンピュータプログラム | |
CN107029429B (zh) | 用于实现云游戏系统的时移辅导的系统、方法及可读媒体 | |
US20170282075A1 (en) | Methods, system and nodes for handling media streams relating to an online game | |
CN112316424B (zh) | 一种游戏数据处理方法、装置及存储介质 | |
JP6849349B2 (ja) | サードパーティ入力を含むゲームシステム | |
US20210001216A1 (en) | Method and device for generating video frames | |
JP6232423B2 (ja) | 情報処理装置、描画装置、方法及びプログラム | |
CN105430455B (zh) | 信息呈现方法及系统 | |
CN111447979B (zh) | 游戏运行装置及终端服务器 | |
JP6961331B2 (ja) | ブロードキャスタを有するリモートレンダリングサーバ | |
US20170237964A1 (en) | Immersive video | |
US20210211632A1 (en) | Three-dimensional content distribution system, three-dimensional content distribution method and computer program | |
Doumanoglou et al. | Quality of experience for 3-D immersive media streaming | |
JP7419555B2 (ja) | 予測されるゲーミングアクティビティと観客特性に基づく仮想インフルエンサの動作に関する方法 | |
JP2024509065A (ja) | 仮想オブジェクトの制御方法、装置、機器、システム及びコンピュータプログラム | |
JP5776954B2 (ja) | 情報処理装置、制御方法、プログラム、記録媒体及び描画システム | |
JP6379107B2 (ja) | 情報処理装置並びにその制御方法、及びプログラム | |
JP2024006973A (ja) | データ処理方法、システム及びコンピュータプログラム | |
CN114570017A (zh) | 游戏中游戏对象位置同步方法、装置、电子设备 | |
KR101643102B1 (ko) | 객체 상태 전송 방식 방송 서비스 제공 방법 및 방송 재생 방법 | |
JP7244450B2 (ja) | コンピュータプログラム、サーバ装置、端末装置、及び方法 | |
JP6533022B1 (ja) | 端末、サーバおよびプログラム | |
KR20210084248A (ko) | Vr 컨텐츠 중계 플랫폼 제공 방법 및 그 장치 | |
JP2020140684A (ja) | 端末、サーバおよびプログラム |