(58)【調査した分野】(Int.Cl.,DB名)
プロセッサおよびメモリを備える、配信者が配信端末を用いてリアルタイム配信するコンテンツを視聴するための視聴端末としての、コンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
前記コンテンツに係る情報であって、前記配信端末から随時配信される、少なくとも配信者の身体の動きを検出したモーションデータを含む情報である第1情報を受信するステップと、
現実空間における特定の地点における全方位を撮影した全方位の画像が背景に展開された仮想空間を構築するステップと、
前記仮想空間に、前記配信者に対応するアバターである第1オブジェクトを配置するステップと、
前記リアルタイム配信が行われている間、前記第1情報を受信することに応答して、前記第1オブジェクトを前記モーションデータに従って動作させるステップと、
前記全方位の画像のうち歪みが生じ得る特定の領域を遮蔽するように、前記仮想空間内に第2オブジェクトを配置するステップと、
前記仮想空間の、該仮想空間の中心点とは異なる位置であって、前記中心点を視野領域に含む位置に仮想視点を配置するステップと、
前記仮想視点の視野領域の画像をレンダリングするステップと、
前記レンダリングによって得られる前記画像を、表示部に表示させるステップと、を実行させる、プログラム。
プロセッサおよびメモリを備える、配信者が配信端末を用いてリアルタイム配信するコンテンツを視聴するための視聴端末としての、コンピュータにより実行されるプログラムであって、
前記プログラムは、前記プロセッサに、
前記コンテンツに係る情報であって、前記配信端末から随時配信される、少なくとも配信者の身体の動きを検出したモーションデータを含む情報である第1情報を受信するステップと、
画像が背景に展開された仮想空間を構築するステップと、
前記仮想空間に、前記配信者に対応するアバターである第1オブジェクトを配置するステップと、
前記リアルタイム配信が行われている間、前記第1情報を受信することに応答して、前記第1オブジェクトを前記モーションデータに従って動作させるステップと、
前記仮想空間の、該仮想空間の中心点とは異なる位置であって、前記中心点を視野領域に含む位置に仮想視点を配置するステップと、
前記仮想視点の視野領域の画像をレンダリングするステップと、
前記レンダリングによって得られる前記画像を、表示部に表示させるステップと、
前記視聴端末において特定の入力操作が受け付けられたことに応答して、前記仮想視点の位置および角度を、前記第1オブジェクトの特定部位が映る位置および角度に切替えるステップとを実行させ、
前記特定の入力操作が受け付けられたことに応答して、前記第1オブジェクトの特定部位が映る位置および角度に切替えるステップによって前記仮想視点の位置および角度が切替えられた後の前記視野領域の画像を前記レンダリングするステップによりレンダリングさせ、前記表示部に表示させる画像を前記表示させるステップにより当該レンダリングされた切替後の前記視野領域の画像に切り替えて表示させる、プログラム。
【発明を実施するための形態】
【0008】
本開示に係る配信システムは、視聴者にコンテンツをリアルタイムに配信するためのシステムである。以下、配信システムについて図面を参照しつつ説明する。なお、本発明は以降の説明および図面における例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。なお、以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【0009】
〔実施形態1〕
<配信システム1の動作概要>
図1は、本実施形態に係る配信システム1の概要を示す図である。配信システム1は、1台以上の配信サーバ200と、1台以上の配信端末300と、1台以上の視聴端末100とを含む。
【0010】
(配信端末300)
配信端末300は、コンテンツをライブ配信する主体となる装置である。配信端末300は、例えばパーソナルコンピュータ(PC)またはスマートフォン等で実現される。なお、以降、配信端末300のユーザのことを、「配信者」と称する。配信端末300は、配信端末300のユーザによる入力操作に応じてコンテンツデータを作成する。コンテンツデータとは、視聴端末100において、配信者の作成したコンテンツを視聴するためのデータである。配信端末300はコンテンツデータを順次作成し、配信サーバ200にリアルタイムで配信する。以降、コンテンツデータをリアルタイムで配信することを、「ライブ配信」とも称する。
【0011】
(配信サーバ200)
配信サーバ200は、配信端末300からリアルタイムに受信したコンテンツデータを、視聴端末100に配信するサーバである。また、配信サーバ200は、視聴端末100と配信端末300との間の各種情報の送受信を仲介するサーバでもある。
【0012】
なお、配信サーバ200は、1台以上の視聴端末100からライブ配信に係る各種情報を収集して、該各種情報を配信端末300に送信してもよい。例えば、配信サーバ200は、現在コンテンツを再生している視聴端末100の台数、すなわち、現在の視聴者数を集計して配信端末300に送信してもよい。また、配信サーバ200は、コンテンツの配信開始からの、累計の視聴者数を集計して、配信端末300に送信してもよい。また、配信サーバ200は、前述した入力情報を送信した視聴端末100を特定し、該視聴端末100を示す情報を配信端末300に送信してもよい。
【0013】
(視聴端末100)
視聴端末100は、コンテンツデータをリアルタイムに受信し、該コンテンツデータを用いて映像を生成して再生する装置である。換言すると、視聴端末100は、コンテンツをリアルタイムレンダリングして再生する装置である。なお、以降の説明では、コンテンツをリアルタイムレンダリングして再生することを、単に「コンテンツを再生する」とも称する。視聴端末100は、例えばPCまたはスマートフォン等で実現される。視聴端末100は、視聴端末100のユーザによる入力操作に応じて、配信サーバ200からコンテンツデータを受信して再生する。具体的には、視聴端末100は、配信サーバ200からコンテンツデータとして、モーションなどのデータを受信し、視聴端末100において、これらのデータを用いてリアルタイムレンダリングにより映像(動画)を生成し、再生する。以降、視聴端末100のユーザのことを、「視聴者」と称する。コンテンツの再生の方法については、後で詳述する。
【0014】
視聴端末100は、コンテンツデータを再生するだけでなく、視聴者の入力操作によって指定された、または入力された情報を、配信サーバ200を介して配信端末300に送信することも可能であってよい。例えば、視聴端末100は、視聴者の入力したコメントを、配信サーバ200を介して配信端末300に送信してもよい。
【0015】
本実施形態では、配信サーバ200と配信端末300とが別個の装置である例について説明する。しかしながら、配信サーバ200と配信端末300は一体の装置であってよい。例えば、1台のPCが、配信サーバ200としての機能と、配信端末300としての機能とを兼ね備えていてもよい。
【0016】
<配信システム1のハードウェア構成>
図1は、配信システム1のハードウェア構成を示す図である。配信システム1は図示の通り、配信端末300と、配信サーバ200と、複数の視聴端末100とを含む。視聴端末100および配信端末300は、配信サーバ200とネットワーク4を介して接続する。
【0017】
(ネットワーク4)
ネットワーク4は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
【0018】
(配信サーバ200)
配信サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。配信サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。配信サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
【0019】
(視聴端末100)
視聴端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。視聴端末100は、コンテンツの再生に適した再生装置であってもよい。視聴端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、を備える。視聴端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、視聴端末100は、タッチスクリーン15に代えて、または、加えて、視聴端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
【0020】
また、
図2に示すように、視聴端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、視聴端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値を視聴端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値を視聴端末100へ送信する。
【0021】
また、コントローラ1020は、視聴端末100に着脱可能な構成であるとしてもよい。この場合、視聴端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線により視聴端末100とコントローラ1020とが結合している場合は、視聴端末100とコントローラ1020とは、有線を介して信号を送受信する。
【0022】
図2に示すように、視聴端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、視聴端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えば視聴プログラムである。
【0023】
視聴端末100は、配信サーバ200等の外部の装置と通信することにより取得した視聴プログラムを視聴端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得した視聴プログラムをメモリ11に記憶してもよい。
【0024】
以上で説明したとおり、視聴端末100は、該視聴端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、およびタッチスクリーン15を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
【0025】
例えば、操作部がタッチスクリーン15で構成される場合、視聴端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、視聴端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
【0026】
(配信端末300)
配信端末300(コンピュータ、情報処理装置)は、スマートフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。また、配信端末300は、サーバ、デスクトップパソコン、ノートパソコン、または、タブレットなどのコンピュータ、および、これらを組み合わせたコンピュータ群であってもよい。
【0027】
配信端末300は、表示装置、入力装置、情報処理装置が、ライブ配信に適するように接続された装置群であってもよい。配信端末300は図示の通り、プロセッサ30と、メモリ31と、ストレージ32と、通信インターフェース(IF)33と、入出力IF34と、タッチスクリーン35(表示部)とを備える。配信端末300が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、配信端末300は、タッチスクリーン35に代えて、または、加えて、配信端末300本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF34を備えていてもよい。
【0028】
また、
図1に示すように、配信端末300は、1つ以上のマイク3010、1つ以上のモーションキャプチャ装置3020、および、1つ以上のコントローラ3030などの周辺機器と、無線または有線を介して、通信可能に構成されてもよい。無線で接続される周辺機器は、例えば、Bluetooth(登録商標)等の通信規格に従って、配信端末300と通信を確立する。また、これらの周辺機器を含めた装置群を、1セットの配信端末300と捉えてもよい。
【0029】
マイク3010は、周囲で発生した音声を取得し、これを電気信号に変換する。電気信号に変換された音声は、音声データとして、配信端末300に送信され、通信IF33を介して配信端末300に受け付けられる。
【0030】
モーションキャプチャ装置3020は、追跡対象(例えば、人)のモーション(頭の位置および姿勢、顔の表情、口の動きなども含む)を追跡し、追跡結果としての出力値を配信端末300へ送信する。出力値であるモーションデータは、通信IF33を介して配信端末300に受け付けられる。モーションキャプチャ装置3020のモーションキャプチャ方式は特に限定されない。モーションキャプチャ装置3020は、採用された方式に応じて、カメラ、各種センサ、マーカー、モデル(人物)が着用するスーツ、信号送出器、HMD(Head Mount Device)など、モーションをキャプチャするためのあらゆる機構を選択的に備えている。
【0031】
コントローラ3030は、1つ以上のボタン、レバー、スティック、ホイール等の物理的な入力機構を有していてもよい。コントローラ3030は、配信端末300のオペレータが、該入力機構に対して入力した入力操作に基づく出力値を配信端末300へ送信する。また、コントローラ3030は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値を配信端末300へ送信してもよい。上述の出力値は、通信IF33を介して配信端末300に受け付けられる。なお、以下では、配信端末300に備えられた操作部または配信端末300と通信可能に接続された各種の入力機構を用いて、配信端末300に対して、何らかの入力操作を行う人をオペレータと称する。オペレータには、入力部351、コントローラ3030などを用いて配信端末300を操作する人も含まれるし、マイク3010を介して音声を入力する声優も含まれるし、モーションキャプチャ装置3020を介して動きを入力するモデルも含まれる。
【0032】
配信端末300は、図示しない、カメラと、測距センサとを備えていてもよい。配信端末300が備えることに代えて、または、加えて、モーションキャプチャ装置3020およびコントローラ3030がカメラと、測距センサとを有してしてもよい。
【0033】
以上で説明したとおり、配信端末300は、該配信端末300に対して情報を入力する機構の一例として、通信IF33、入出力IF34、タッチスクリーン35を備える。配信端末300は、必要に応じて、カメラ、および、測距センサをさらに備えていてもよい。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
【0034】
操作部は、タッチスクリーン35で構成されていてもよい。この場合、配信端末300は、タッチスクリーン35の入力部351に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF33で構成される場合、配信端末300は、コントローラ3030から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF34で構成される場合、該入出力IF34と接続されるコントローラ3030とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
【0035】
<各装置のハードウェア構成要素>
プロセッサ10は、視聴端末100全体の動作を制御する。プロセッサ20は、配信サーバ200全体の動作を制御する。プロセッサ30は、配信端末300全体の動作を制御する。プロセッサ10、20、および30は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
【0036】
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ30は後述するストレージ32からプログラムを読み出し、後述するメモリ31に展開する。プロセッサ10、プロセッサ20、およびプロセッサ30は、展開したプログラムを実行する。
【0037】
メモリ11、21、および31は主記憶装置である。メモリ11、21、および31は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ31は、プロセッサ30が後述するストレージ32から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ30に作業領域を提供する。メモリ31は、プロセッサ30がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
【0038】
本実施形態において、プロセッサ30が実行するプログラムは、コンテンツのライブ配信を実現するための配信プログラムであってもよい。本実施形態において、プロセッサ10が実行するプログラムは、コンテンツの再生を実現するための、視聴プログラムであってもよい。
【0039】
本実施形態において、プロセッサ20が実行するプログラムは、上述の配信プログラムであってもよいし、上述の視聴プログラムであってもよい。プロセッサ20は、視聴端末100または配信端末300からの要求等に応じて、配信プログラムと視聴プログラムとのいずれか、または両方を実行する。なお、配信プログラムと視聴プログラムは、並行して実行されてもよい。
【0040】
すなわち、配信プログラムは、ライブ配信を配信サーバ200と配信端末300との協働により実現するための配信プログラムであってもよい。また、視聴プログラムは、コンテンツの再生を、視聴端末100と配信サーバ200との協働により実現するための視聴プログラムであってもよい。
【0041】
ストレージ12、22、および32は補助記憶装置である。ストレージ12、22、および32は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12、22、および32には、ゲームに関する各種データが格納される。
【0042】
通信IF13は、視聴端末100における各種データの送受信を制御する。通信IF23は、配信サーバ200における各種データの送受信を制御する。通信IF33は、配信端末300における各種データの送受信を制御する。通信IF13、23、および33は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
【0043】
視聴端末100の入出力IF14は、視聴端末100がデータの入力を受け付けるためのインターフェースであり、また視聴端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、視聴端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。配信サーバ200の入出力IF24は、配信サーバ200がデータの入力を受け付けるためのインターフェースであり、また配信サーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。配信端末300の入出力IF34は、配信端末300がデータの入力を受け付けるためのインターフェースであり、また配信端末300がデータを出力するためのインターフェースである。入出力IF34は、例えば、マウス、キーボード、スティック、レバー等の情報入力機器、液晶ディスプレイなどの画像を表示出力する機器、および、周辺機器(マイク3010、モーションキャプチャ装置3020、および、コントローラ3030)との間でデータを送受信するための接続部を含み得る。
【0044】
視聴端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。配信端末300のタッチスクリーン35は、入力部351と表示部352とを組み合わせた電子部品である。入力部151および351は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152および352は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
【0045】
入力部151および351は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151および351は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
【0046】
図示していないが、視聴端末100は、該視聴端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。視聴端末100がセンサを備えている場合、プロセッサ10は、センサの出力から視聴端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、視聴端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、視聴端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、視聴端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
【0047】
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
【0048】
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
【0049】
<配信システム1の機能的構成>
図3は、配信システム1に含まれる視聴端末100、配信サーバ200、および配信端末300の機能的構成を示すブロック図である。視聴端末100、配信サーバ200、および配信端末300のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
【0050】
視聴端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。視聴端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
【0051】
配信サーバ200は、配信端末300および視聴端末100と通信する、配信サーバ200は、配信端末300から視聴端末100へコンテンツデータを配信する場合の仲介となる機能を有する。配信サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
【0052】
配信端末300は、コンテンツを作成して、該コンテンツを、配信サーバ200を介して視聴端末100にライブ配信する機能を有する。配信端末300は、プロセッサ30、メモリ31、ストレージ32、通信IF33、および入出力IF34等の協働によって、制御部310および記憶部320として機能する。
【0053】
(各装置の記憶部が格納するデータ)
記憶部120は、視聴プログラム131と、視聴端末100に対応する視聴者の視聴者情報132とを格納する。記憶部320は、配信プログラム331と、配信端末300に対応する配信者の配信者情報332とを格納する。記憶部220は、視聴プログラム131と、視聴者情報132と、配信プログラム331と、配信者情報332と、を格納する。記憶部220は、各配信端末300から収集した配信者情報332をまとめて記憶する。記憶部220は、各視聴端末100から収集した視聴者情報132をまとめて記憶する。
【0054】
視聴プログラム131は、視聴端末100および配信サーバ200が実行するプログラムである。一方、配信プログラム231は、配信端末300および配信サーバ200が実行するプログラムである。
【0055】
なお、配信サーバ200による視聴プログラム131および配信プログラム331の実行は、必須ではない。例えば視聴端末100が単独で視聴プログラム131を実行することで、コンテンツの再生を実現可能である場合、配信サーバ200は、視聴プログラム131を実行しなくてもよい。また例えば、配信端末300が単独で配信プログラム331を実行することでライブ配信を実現可能である場合、配信サーバ200は、配信プログラム331を実行しなくてもよい。
【0056】
視聴者情報132は、制御部110が視聴プログラム131を実行する際に参照するデータである。視聴者情報132は、視聴者毎に管理されるデータである。例えば、視聴者情報132には視聴者の名称、すなわち、視聴端末100が対応する視聴者のアカウントの名称が含まれていてもよい。また、視聴者情報132には、視聴端末100に対応する視聴者のアカウントにおける、コンテンツの閲覧履歴、メッセージの送受信の履歴等が含まれていてもよい。
【0057】
配信者情報332は、制御部210が配信プログラム231を実行する際に参照するデータである。配信者情報332は、配信者毎に管理されるデータである。例えば、配信者情報332には、配信端末300が対応する配信者のアカウントの名称を示す情報が含まれていてもよい。また、配信者情報332には、配信端末300に対応する配信者のアカウントにおける、コンテンツの配信履歴、配信したコンテンツの再生数等、配信したコンテンツに係る各種情報、メッセージの送受信の履歴が含まれていてもよい。
【0058】
(配信サーバ200の機能的構成)
制御部210は、記憶部220に格納された配信プログラム231を実行することにより、配信サーバ200を統括的に制御する。例えば、制御部210は、配信端末300からにコンテンツをリアルタイムに受信して、該コンテンツを視聴端末100にライブ配信する。制御部210は、必要に応じて、視聴端末100および配信端末300と通信して、各種情報の送受信を行う。
【0059】
制御部210は、配信プログラム231の記述に応じて、送受信部211、サーバ処理部212、および、データ管理部213として機能する。制御部210は、配信端末300からのコンテンツのライブ配信、ならびに、視聴端末100による該コンテンツの再生を支援するために、図示しないその他の機能ブロックとしても機能することができる。
【0060】
送受信部211は、配信端末300から各種データおよびリクエストを受信する。例えば、送受信部211は、配信者情報332の一部または全部を、配信端末300から受信する。送受信部211は、配信端末300に対し各種データおよびリクエストを送信する。
【0061】
また、送受信部211は、視聴端末100から各種データおよびリクエストを受信する。例えば、送受信部211は、視聴端末100からのライブ配信の要求を受信する。送受信部211は、視聴端末100に対し各種情報を送信する。例えば、送受信部211は、視聴端末100に対しコンテンツをライブ配信する。
【0062】
サーバ処理部212は、コンテンツのライブ配信および再生のために必要な演算処理を行う。サーバ処理部212は送受信部211に対し、各種データの送信を指示する。サーバ処理部212は、データ管理部213に対し、各種情報の追加、更新、または削除を指示する。
【0063】
データ管理部213は、記憶部220に格納されているデータを管理する。データ管理部213は、サーバ処理部212からの指示に応じて配信者情報332および視聴者情報132に含まれる各種情報の、追加、更新、または削除を実行する。データ管理部213は、サーバ処理部212の指示に従って、記憶部220から配信者情報332および視聴者情報132のうち少なくとも一方の情報を読み出してもよい。
【0064】
(視聴端末100の機能的構成)
制御部110は、記憶部120に格納された視聴プログラム131を実行することにより、視聴端末100を統括的に制御する。例えば、制御部110は、視聴プログラム131およびユーザの操作にしたがって、コンテンツの再生を実行する。また、制御部110は、コンテンツの再生中に、必要に応じて、配信サーバ200と通信して、情報の送受信を行う。
【0065】
制御部110は、視聴プログラム131の記述に応じて、操作受付部111、再生部112、表示制御部113、および通信部114として機能する。制御部110は、コンテンツの再生を実現するために、図示しないその他の機能ブロックとしても機能することができる。
【0066】
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
【0067】
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
【0068】
再生部112は、コンテンツの再生に係る処理を実行する。再生部112は、通信部114を介して配信サーバ200からコンテンツデータをリアルタイムで受信する。再生部112は、空間定義部112A、背景制御部112B、オブジェクト制御部112C、カメラ制御部112D、および描画部112Eを含む。
【0069】
空間定義部112Aは、コンテンツデータに基づいて、仮想空間を定義する。仮想空間の具体例および定義方法については、後で詳述する。
【0070】
背景制御部112Bは、コンテンツデータによって指定された背景画像を仮想空間に配置する。背景画像の種類は特に限定されないが、例えば、実在する特定の地点の周囲360度を撮影した風景画像であってもよい。
【0071】
オブジェクト制御部112Cは、コンテンツデータによって指定されたオブジェクトを仮想空間に、該データで指定された位置に指定された姿勢で配置する。
【0072】
カメラ制御部112Dは、仮想空間に仮想カメラを配置する。仮想カメラとは、仮想空間におけるユーザの仮想視点の位置および角度を規定するものである。
【0073】
描画部112Eは、仮想空間のうち、少なくとも、仮想カメラの視野領域に含まれるオブジェクトおよび背景画像を、動画像または静止画として描画する。以降、仮想カメラの視野領域に含まれるオブジェクトおよび背景画像を描画した動画像または静止画を、単に「視野領域の画像」と称する。なお、描画部112Eは視野領域のみならず、仮想空間全体の背景画像およびオブジェクト等を描画してもよい。
【0074】
表示制御部113は、再生部112の描画部112Eが描画した視野領域の画像を、コンテンツとして表示部152に表示させる。なお、表示制御部113は、UI(user interface)を構築するための2Dまたは3Dのゲームオブジェクト(UIオブジェクト)を制御および描画してもよい。例えば、表示制御部113は、コンテンツの視聴のための種々の操作に必要なUIオブジェクトを、コンテンツと重畳、またはコンテンツとともに表示部152の画面に表示してもよい。UIオブジェクトとは、例えば、アイコン、ボタン、リスト、メニュー画面等である。また、UIオブジェクトとは、視聴端末100におけるコンテンツの再生中に、視聴端末100から視聴者に、各種情報を通知するためのツールである。
【0075】
通信部114は、配信サーバ200に対し各種データおよびリクエストを送信する。例えば、通信部114は配信サーバ200に対し、コンテンツデータの配信要求と、視聴者情報132の一部または全部とを送信する。通信部114は、配信サーバ200からライブ配信に係る各種情報を受信する。例えば、通信部114は、配信サーバ200からコンテンツデータと、配信者情報332の一部または全部とを受信する。
【0076】
(配信端末300の機能的構成)
制御部310は、記憶部320に格納された配信プログラム331を実行することにより、配信端末300を統括的に制御する。例えば、制御部310は、配信プログラム331および配信者の操作にしたがってコンテンツデータを作成し、配信サーバ200を介して該コンテンツデータを視聴端末100に供給する。制御部310は、配信サーバ200と通信して情報の送受信を行う。
【0077】
制御部310は、配信プログラム331の記述に応じて、操作受付部311、配信部312、表示制御部313、および通信部314として機能する。制御部310は、作成するコンテンツデータの性質、すなわちコンテンツの性質に応じて、図示しないその他の機能ブロックとしても機能することができる。
【0078】
操作受付部311は、入力部351に対するオペレータの入力操作を検知し受け付ける。操作受付部311は、タッチスクリーン35およびその他の入出力IF34を介したコンソールに対して、オペレータが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部310の各要素に出力する。操作受付部311の機能の詳細は、視聴端末100における操作受付部111のそれとほぼ同様である。
【0079】
配信部312は、コンテンツの配信に係る各種処理を実行する。例えば、配信部312はコンテンツデータを作成する。コンテンツデータの作成方法については、後で詳述する。
【0080】
配信部312は、配信者によるコンテンツ作成のオペレーティングを支援するための、配信者向けの画面を作成してもよい。以降、配信者向けの画面のことを、配信画面とも称する。配信画面の構成については、特に限定しない。例えば、配信部312は、アバター等の各種オブジェクト、背景画像、および各種パラメータ等、コンテンツに含まれ得る各種構成要素を一覧可能な配信画面を作成してもよい。配信画面は、表示制御部313を介してタッチスクリーン35に表示される。
【0081】
また、配信部312は、配信者に向けた各種通知を作成および出力してもよい。例えば、配信部312は、配信サーバ200を介して受信した視聴者コメントを、配信者に通知してもよい。
【0082】
表示制御部313は、タッチスクリーン35の表示部352に対して、上述の各要素によって実行された処理結果が反映された表示画面を出力する。表示制御部313の機能の詳細は、視聴端末100における表示制御部113のそれとほぼ同様である。例えば、表示制御部313は、ライブ配信のための種々の操作に必要なUIオブジェクトを表示部352の画面に表示してもよい。
【0083】
通信部314は、配信サーバ200に対し各種データおよびリクエストを送信する。例えば、通信部314は配信サーバ200に対し、コンテンツと、配信者情報332の一部または全部を送信する。通信部314は、配信サーバ200からライブ配信に係る各種情報を受信する。例えば、通信部314は、配信サーバ200から視聴者情報132の一部または全部を受信する。
【0084】
なお、
図3に示す視聴端末100、配信サーバ200、および配信端末300の機能は一例にすぎない。例えば、配信サーバ200は、視聴端末100または配信端末300が備える機能の少なくとも一部を備えていてもよい。また例えば、視聴端末100または配信端末300は、配信サーバ200が備える機能の少なくとも一部を備えていてもよい。
【0085】
また、視聴端末100は、上述した構成要素以外の他の構成要素、または視聴端末100と接続された他の装置と協働してもよい。例えば、視聴端末100は他の構成要素または他の装置に、視聴端末100における処理の一部を実行させてもよい。また、配信端末300は、上述した構成要素以外の他の構成要素、または配信端末300と接続された他の装置と協働してもよい。例えば、配信端末300は他の構成要素または他の装置に、配信端末300における処理の一部を実行させてもよい。
【0086】
本実施形態において配信プログラムを実行するコンピュータは、配信サーバ200、配信端末300、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。また、本実施形態において視聴プログラムを実行するコンピュータは、配信サーバ200、視聴端末100、および他の装置の何れであってもよいし、これら複数の装置の組合せにより実現されてもよい。また、配信システム1は、視聴端末100、配信サーバ200、および配信端末300以外の他の装置を配信システム1の構成要素とし、該他の装置に配信システム1における処理の一部を実行させてもよい。
【0087】
<配信処理の流れ>
図4は、コンテンツのライブ配信および再生に係る処理の流れの一例を示すシーケンス図である。
【0088】
ステップS100において、配信部312は、コンテンツデータを作成する。コンテンツデータの作成方法は後述する。
【0089】
ステップS102において、配信部312は、通信部314を介してコンテンツデータを配信サーバ200にリアルタイムで送信する。以降、配信部312は、例えば、操作受付部311が、ライブ配信の終了を指示する入力操作を受け付けるまで、コンテンツのライブ配信を継続する。
【0090】
ステップS104において、配信サーバ200の送受信部211は、コンテンツデータをリアルタイムで受信する。送受信部211は、受信したコンテンツデータを、一時的または非一時的に、記憶部220に記憶させてもよい。配信サーバ200は、視聴端末100からライブ配信の要求を受け付けるまで待機する。
【0091】
ステップS106において、視聴端末100の操作受付部111は、視聴者の、コンテンツの視聴を指示する入力操作を受け付ける。操作受付部111が該指示を受け付けると、再生部112は、ステップS108を実行する。
【0092】
ステップS108において、再生部112は、通信部114を介してコンテンツの配信を要求する。
【0093】
ステップS110において、配信サーバ200のサーバ処理部212は、送受信部211を介して配信の要求を受信する。サーバ処理部212は該要求を受信すると、ステップS112の処理を実行する。
【0094】
ステップS112において、サーバ処理部212は、配信端末300から受信しているコンテンツデータを、視聴端末100にリアルタイムで配信する。以降、サーバ処理部212は、例えば、送受信部211が配信端末300からコンテンツデータを受信しなくなるまで、または、視聴端末100から視聴終了の旨を通知されるまで、コンテンツデータの配信を継続する。
【0095】
ステップS114において、視聴端末100の通信部114は、コンテンツデータをリアルタイムに受信する。
【0096】
ステップS116において、再生部112は、通信部114が随時受信するコンテンツデータに基づいて、再生処理を実行する。再生処理とは、コンテンツデータが示すコンテンツの再生に係る一連の処理を意味する。以降、再生部112は、ステップS118でYESまたはステップS120でYESと判定されるまで、コンテンツ表示処理を継続して行う。
【0097】
ステップS118において、制御部110は、操作受付部111が視聴終了を指示する入力操作を受け付けたか否か判定する。ステップS118でYESの場合、すなわち、操作受付部111が視聴終了を指示する入力操作を受け付けた場合、再生部112は、ステップS122を実行する。
【0098】
ステップS122において、再生部112は、コンテンツの再生を終了する。すなわち、再生部112は、再生処理を終了させる。また、再生部112は通信部114を介して、視聴終了の旨を配信サーバ200に通知する。配信サーバ200のサーバ処理部212は該通知を受信した場合、視聴端末100へのライブ配信を停止する。
【0099】
一方、ステップS118でNOの場合、すなわち、操作受付部111が視聴終了を指示する入力操作を受け付けていない場合、制御部110はさらに、ステップS120の処理を実行する。
【0100】
ステップS120において、制御部110は、ライブ配信が終了したか否かを判定する。例えば、制御部110は通信部114におけるコンテンツの受信が終了した場合に、ライブ配信が終了したと判定してよい。ステップS120でNOの場合、制御部110はステップS116におけるコンテンツ表示処理を継続し、ステップS118からの判定処理を繰り返す。一方、ステップS120でYESの場合、再生部112は、ステップS122の処理を実行する。すなわち、再生部112は、コンテンツの再生を終了させる。
【0101】
(コンテンツの作成)
図5は、配信者によるコンテンツデータの作成の様子を示す図である。配信者701は、配信端末300に対し各種入力を行うことで、コンテンツデータを作成する。
【0102】
コンテンツデータは、仮想空間を構築するための定義パラメータと、背景画像を指定するための情報と、配信者のアバターを示すキャラクタオブジェクトを指定する情報と、仮想カメラに係る設定パラメータと、を少なくとも含んでいる。以下、「アバターを示すキャラクタオブジェクト」のことを、単に「アバター」と称する。
【0103】
例えば、配信部312は、仮想空間の大きさおよび座標軸系を示す情報をコンテンツデータに含める。また例えば、配信部312は、配信者のアバターを示すキャラクタオブジェクトを決定し、該アバターの表情および動作(モーション)を、リアルタイムで決定する。そして、配信部312はこれら決定したアバターに係る情報を、コンテンツデータに含める。
【0104】
また例えば、配信部312は、背景画像を取得して、該背景画像をコンテンツデータに含める。なお、配信部312は、背景画像自体ではなく、後に視聴端末100において背景画像を特定可能または取得可能にするための情報をコンテンツデータに含めてもよい。
【0105】
なお、配信端末300には、配信者の一部であるモデル702のモーションデータが入力されてもよい。例えば、モーションキャプチャ装置3020の一種として、モデル702にHMDを装着させ、該HMDによってモデル702の頭の位置および姿勢を検出してもよい。そして、配信端末300には、HMDから送信された、頭の位置および姿勢を示す情報がモーションデータとして入力されてもよい。そして、配信部312は、モデル702のモーションデータを、アバターのモーションを指定するデータとしてコンテンツデータに含めてもよい。これにより、後述するように視聴端末100においてコンテンツを再生したときに、モーションデータが示す動きをアバターの動きに反映させることができる。例えば、モデル702の頭の動きに応じて、アバターの頭を動かすことができる。なお、モーションデータとは、モデル702の身体の動きを、モーションキャプチャ装置3020を介して検出して取得したものである。
【0106】
また例えば、配信者701は、自分の音声703を、マイク3010を介して配信端末300に入力してもよい。そして、配信端末300の配信部312は、入力された音声データをアバターの音声として、コンテンツデータに含めてもよい。もしくは、配信部312は、入力された音声データと同内容の音声を、アバターの音声としてコンテンツデータに含めてもよい。「同内容の音声」とは、該音声703自体、音声703に所定の音声加工を施した音声、または、音声703の内容を読み上げソフト等で機械発声させた音声を意味する。
【0107】
配信部312は、リアルタイムに入力されるこれらのデータを随時コンテンツデータとしてまとめて、通信部314を介して配信サーバ200に送信する。これにより、配信サーバ200を仲介として、配信端末300から視聴端末100へ、コンテンツデータを含む情報がライブ配信される。以降、コンテンツデータを含む情報のことを第1情報と称する。
【0108】
(コンテンツ表示処理の流れ)
図6は、
図4のステップS116に示した再生処理の流れの一例を示す図である。
【0109】
ステップS200において、視聴端末100の再生部112は、通信部114を介して第1情報を取得する。
【0110】
ステップS201において、空間定義部112Aは、仮想空間を定義する。空間定義部112Aは、例えば、コンテンツデータに含まれる定義パラメータに基づいて、球状の仮想空間を定義する。
【0111】
ステップS202において、背景制御部112Bは、定義された仮想空間に背景画像を展開する。具体的には、背景制御部112Bは、コンテンツデータによって指定される1枚の背景画像を、仮想空間に、該空間の球面全体を覆うように貼り付ける。S200〜S202の処理によって、背景画像が展開された仮想空間が構築される。
【0112】
ステップS204において、オブジェクト制御部112Cは、仮想空間に第1オブジェクトを配置する。第1オブジェクトとは、配信者のアバターを示すオブジェクトである。オブジェクト制御部112Cは、コンテンツデータに基づいて第1オブジェクトの種類、モデルデータ、および配置位置、姿勢等を決定し、該第1オブジェクトを仮想空間に配置する。
【0113】
ステップS206において、オブジェクト制御部112Cは、仮想空間に第2オブジェクトを配置する。第2オブジェクトとは、後述するように、仮想空間に貼り付けられた背景画像の特定の領域を遮蔽するように設けられるオブジェクトである。第2オブジェクトは立体であっても平面であってもよい。
【0114】
第2オブジェクトの大きさおよび形状は限定されない。例えば、第2オブジェクトは、アバターである第1オブジェクトの立つ土台となるオブジェクトであってもよいし、仮想空間上の天井照明等であってもよい。換言すると、第1オブジェクトは、第2オブジェクト上に、すなわち第2オブジェクトと接するように配置されてもよい。しかしながら、第2オブジェクトは、ライブ配信されるコンテンツにおいて、本来のコンテンツの興趣性を損なわないような大きさおよび形状とされることが望ましい。
【0115】
オブジェクト制御部112Cは、コンテンツデータに基づいて第2オブジェクトの種類、モデルデータ、および配置位置、姿勢等を決定し、該第2オブジェクトを仮想空間に配置する。
【0116】
ステップS207において、オブジェクト制御部112Cは、第1オブジェクトを、第1情報に含まれているモーションデータに従って動作させる。
【0117】
ステップS208において、カメラ制御部112Dは、仮想カメラを仮想空間に配置する。このとき、カメラ制御部112Dは、仮想カメラを仮想空間の中心点とは異なる位置に配置する。仮想カメラの配置位置の例については後で示す。
【0118】
ステップS210において、描画部112Eは、仮想空間の定義パラメータおよび仮想カメラの位置および角度から、該仮想カメラの視野領域を算出する。
【0119】
ステップS212において、描画部112Eは、仮想空間のうち算出した視野領域近傍に映し出されるオブジェクトおよび画像等を描画する。換言すると、描画部112Eは、仮想空間のうち算出した視野領域の画像をレンダリングする。
【0120】
ステップS214において、表示制御部113は、描画部112Eのレンダリングによって得られた視野領域の画像を、表示部152等に表示させる。
【0121】
上述のように、コンテンツデータは順次配信サーバ200から配信される。そのため、空間定義部112A、背景制御部112B、およびオブジェクト制御部112Cは、通信部114が取得したコンテンツデータにおいて、仮想空間自体の定義、背景画像、オブジェクトの位置、表情、動き、ならびに、仮想カメラの位置および角度等に変更がある場合、都度該変更を仮想空間に反映させる。これにより、視聴端末100において、コンテンツデータに基づくコンテンツがリアルタイムで再生され表示される。
【0122】
なお、
図6に示す処理のうち、ステップS206の処理は必須ではない。すなわち、オブジェクト制御部112Cは、仮想空間に第2オブジェクトを配置しなくてもよい。また、オブジェクト制御部112Cは、第1および第2オブジェクト以外のオブジェクトを仮想空間に配置してもよい。また、背景制御部112Bは、背景画像以外の画像を仮想空間に貼り付けてもよい。
【0123】
前記の処理によれば、中心点とは異なる位置に配置した仮想カメラの視野領域を描画するため、仮想空間の中心をユーザに見せることができる。したがって、ライブ配信におけるコンテンツの興趣性が向上する。
【0124】
(仮想空間の一例)
図7の状態(A)は、前記配信システムにおいて構築される仮想空間の一例を示す図である。仮想空間600は、中心点601を中心とし、北極点602および南極点603を結んだ360度方向の全体を覆う全球状の構造を有する。
図7の状態(A)では、説明を複雑にしないために、仮想空間600のうちの、地平線604から上半分の半球を例示している。実際の仮想空間は、下半球も同様に背景画像およびオブジェクトが配置され得る。また、仮想空間600において図示される緯線および経線は説明のためのものであり、実際の仮想空間を定義および構築する際は、該緯線および経線は無くて良い。
【0125】
仮想空間600では、中心点601を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、実座標系に平行である。XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)が実座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)が実座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)が実座標系のz軸と平行である。
【0126】
空間定義部112Aが
図7の状態(A)に示すような天球状の仮想空間600を定義すると、背景制御部112Bは、該仮想空間600の内側に、360度の全方位画像である背景画像630を貼り付ける。
【0127】
オブジェクト制御部112Cは、仮想空間600に、アバターの第1オブジェクト610を配置する。以降、第1オブジェクトのことをアバターとも称する。また、オブジェクト制御部112Cは、仮想空間600に第2オブジェクト620を配置してもよい。図示の例では、第2オブジェクト620は、アバター610の立つ土台のオブジェクトである。
【0128】
カメラ制御部112Dは、仮想空間600に、仮想カメラ640を配置する。ここで、カメラ制御部112Dは、仮想カメラ640を仮想空間600の中心点およびその近傍ではない、任意の位置に任意の角度で配置される。仮想カメラ640の位置および角度は、コンテンツデータで規定される。
【0129】
図7の状態(B)は、状態(A)に示す仮想カメラの視野領域の画像の一例を示す図である。
図7の状態(A)の例では、カメラ制御部112Dは仮想カメラ640を、アバター610の顔と同程度の高さで配置している。仮想カメラ640の視界領域は、仮想空間600のうち、視聴者が視聴端末100を介して視認可能な領域であるといえる。つまり、仮想カメラ640の位置および角度は、仮想空間600における視聴者の視点と同じであるといえる。
図7の状態(A)の仮想カメラ640場合、
図7の状態(B)に示す通り、アバター610を略真横から見る視点での視野領域の画像700が描画され、表示部152に表示される。
【0130】
このように、再生部112は、空間定義部112A、背景制御部112B、およびオブジェクト制御部112Cの協働により、仮想空間600を構築する。そして、カメラ制御部112Dによって、仮想カメラ640が配置され、描画部112Eによって、仮想カメラ640の視点からの視野領域の画像700が描画される。そして、表示制御部113により、描画された視野領域の画像700が表示部に表示される。
【0131】
ここで、第2オブジェクト620はアバター610の立つ土台のオブジェクトであり、仮想カメラ640から見て第2オブジェクト620より後方の領域(特定領域)は仮想カメラ640から遮蔽された領域となる。換言すると、例えば背景画像を撮影したカメラの写り込み部分等、視聴者に隠したい領域(特定領域)の位置に合わせて第2オブジェクト620を配置すれば、その領域は第2オブジェクト620に遮蔽されて、視聴者からは見えないようにすることができる。
【0132】
(仮想空間の他の一例)
なお、オブジェクト制御部112Cは、仮想カメラからの視野領域において、仮想空間の北極点、南極点、または地平線に重畳するように第2オブジェクトを配置してもよい。
【0133】
図8の状態(A)は、前記配信システムにおいて構築される仮想空間の他の一例を示す図である。
図8の状態(B)は、状態(A)に示す仮想カメラの視野領域の画像の一例を示す図である。
図8の状態(A)の例では、オブジェクト制御部112Cは、仮想カメラ640の視野領域に北極点およびその周辺領域(特定領域)が入る際に、該北極点近傍の背景画像630が隠れるような所定位置に、第2オブジェクト621を配置している。
【0134】
背景画像630は、仮想空間600の球面全体を覆う画像、すなわち、全方位画像である。全方位画像を仮想空間600の球内面に貼り付けた場合、該球の北極点602、南極点603、および地平線604の近傍の少なくとも1つに、背景画像の歪みが生じる可能性がある。このような背景画像の歪みが生じ得る領域(特定領域)を遮蔽するように、当該領域の近傍に第2オブジェクト621を配置することで、背景画像の歪みを目立たなくすることができる。
【0135】
例えば、同図における仮想カメラ640の位置および角度のように、アバター610を見上げるようなカメラアングルの場合でも、
図8の状態(B)に示すように、視野領域の画像800では北極点およびその周辺領域(特定領域)が第2オブジェクト621で遮蔽された状態となるため、視聴者からは背景画像の歪みが見えないようにすることができる。
【0136】
(仮想空間の他の一例)
なお、オブジェクト制御部112Cは、仮想カメラからの視野領域において、背景画像における特定領域に遮蔽するように第2オブジェクトを配置してもよい。
【0137】
図9の状態(A)は、前記配信システムにおいて構築される仮想空間の他の一例を示す図である。
図9の状態(B)は、状態(A)に示す仮想カメラの視野領域の画像の一例を示す図である。
図9の状態(A)の例では、オブジェクト制御部112Cは図示のように、地平線604から垂直に、第2オブジェクト622を配置する。
【0138】
背景画像630は全方位画像であるため、作成の際に、該全方位画像の元となる元画像の形およびサイズに応じて、一部の領域に歪みが生じる可能性がある。このような画像の歪みが生じ得る領域(特定領域)を仮想カメラ640で映す際に、第2オブジェクト622が該領域を遮蔽するよう配置される。したがって、視聴者からは背景画像の歪みが見えないようにすることができる。
【0139】
例えば、
図9の状態(B)に示すように、特定領域を第2オブジェクト622で遮蔽された状態とすることが可能であるため、視野領域の画像900において、背景画像630の歪みが見えないようにすることができる。
【0140】
(ライブ配信の視聴までの流れ)
視聴端末100によるライブ配信の選択および視聴開始の操作は、地図を用いたGUIにより行われてもよい。
【0141】
図10は、視聴端末100の表示画面の一例を示す図である。図示の通り、表示画面1700には、地図データに基づく地図と、ライブ配信を視聴可能なエリア1701(図中の灰色サークル)とが表示される。ここで、地図データは視聴端末100の記憶部120に記憶されていてもよいし、外部サーバ等から適宜取得されてもよい。また、表示画面1700には、エリア1701と対応付けて、ライブ配信の日時、内容等を示すメッセージ1702、および、ライブ配信の開始を指示するアイコン1703が表示されてもよい。また、表示画面1700には、視聴端末100の現在位置、すなわちユーザの現在位置を示すアイコン1704が表示されてもよい。さらに、表示画面1700には、地図データに対応した建物や風景等のオブジェクト1705が表示されてもよい。
【0142】
視聴端末100の現在位置の情報は、視聴端末100がGPS(Global Positioning System)受信機(図示せず)を備え、GPSの電波を受信することで得ることができる。GPS受信機は、得られた電波が示す、現在位置の位置用法を制御部110に送信し、制御部110はこれを取得する。
【0143】
また、ライブ配信を視聴可能なエリアを示す情報、ライブ配信が配信される時間帯等、ライブ配信に係る情報、および、ライブ配信の状態を示す情報は、制御部110が配信サーバ200から定期的に受信し、表示画面1700および表示画面1800に表示される情報に反映させる。
【0144】
図11は、
図10に示した表示画面に対するユーザの第1入力操作の一例を示す図である。第1入力操作とは、地図を表示した表示画面において、該地図上のある地点を指定するための入力操作である。図示の例では、表示画面1800において、ユーザ(アイコン1703)がライブ配信を視聴可能なエリア1701内にいる状態で、ライブ配信の開始を指示するアイコン1703を選択する入力操作を行った場合に、該入力操作が第1入力操作として受け付けられる。
【0145】
操作受付部111が第1入力操作を受け付けると、制御部110はライブ配信を特定し、そのコンテンツデータを配信サーバ200から受信する。コンテンツデータを受信すると、再生部112が
図6に示した処理、すなわち、仮想空間の構築、仮想カメラの配置、および視野画像の描画を実行する。これにより、ユーザはライブ配信を視聴することができる。換言すると、現在位置の位置情報が示す、視聴端末100の地図上での位置と、第1入力操作により指定された地点との距離が所定範囲内である場合に、再生部112の空間定義部112Aおよび背景制御部112Bは、ライブ配信されるコンテンツのための仮想空間を協働して構築する。
【0146】
なお、ライブ配信は配信される時間帯が決まっていてもよい。また、
図10および
図11に示すように、ライブ配信の状態、例えばライブ配信中か否かに応じて、メッセージ1702の内容が変更されてもよい。
【0147】
図12は、ライブ配信されたコンテンツを視聴している際の視聴端末100の表示画面を示している。ユーザがアイコン1703を選択する入力操作を行うと、ライブ配信の視聴が開始され、視聴端末100には表示画面1900が表示される。図示の通り、表示画面1900には、配信者のアバター1901が少なくとも含まれる。表示画面1900では、背景画像1902として、配信者のアバター1901が配置された地図上の地点の周囲360度の、現実空間上の風景を撮影した画像が表示される。そして、アバター1901および第2オブジェクト1903等は該背景画像の特定の領域を遮蔽する位置に表示されてもよい。
【0148】
ここで、図示の通り、第2オブジェクト1903はアバター1901の立つ土台のオブジェクトであり、第2オブジェクト1903より下の領域(特定領域)を仮想カメラから遮蔽している。換言すると、例えば背景画像を撮影したカメラの写り込み部分等、視聴者に隠したい領域(特定領域)の位置に合わせて第2オブジェクト1903を配置すれば、その領域は第2オブジェクト1903に遮蔽されて、視聴者からは見えないようにすることができる。
【0149】
〔実施形態2〕
配信端末300は、ゲームシステムに含まれるゲーム端末を用いて、配信者がプレイしているゲームのプレイ画面の画像を取得してもよい。そして、再生部112は、全方位画像と、配信者のアバターを示す第1オブジェクトと、ゲームのプレイ画面の画像を表示する第3オブジェクトと、を少なくとも配置した仮想空間を構築してもよい。なお、本実施形態においては、仮想カメラの配置位置は、仮想空間の、該仮想空間の中心点とは異なる位置であって、中心点を視野領域に含む位置であってもよいし、該位置以外の位置でもよい。また、コンテンツデータはライブ配信される「ライブコンテンツ」であってもよいし、録画されたデータである「録画コンテンツ」であってもよい。以下、「ライブコンテンツ」および「録画コンテンツ」のことを、総称して単に「コンテンツ」と称する。
【0150】
(システム概要)
図13は、本実施形態に係る配信システム2の概要を示す図である。
図13は、ゲーム端末400を含む点で、
図1に示した配信システム1と異なる。
【0151】
ゲーム端末400は、配信者がゲームをプレイするための端末である。ゲーム端末400は、配信端末300に、該ゲームのプレイ画面の画像を随時送信する。これにより、配信者は、配信端末300においてコンテンツデータを作成する際に、該プレイ画面を含んだコンテンツのコンテンツデータを作成することができる。
【0152】
ゲーム端末400は、他のゲーム端末または図示しないゲームサーバとともに、ゲーム端末400を含むゲームシステムであってもよい。すなわち、ゲームシステムに含まれるあるゲーム端末400を用いて配信者がゲームをプレイすると、該ゲームのプレイ画像が、該ゲーム端末400またはゲームサーバから、配信端末300に送信される構成であってもよい。
【0153】
(仮想空間)
図14の状態(A)は、配信システム2において構築される仮想空間の他の一例を示す図である。同図に示す仮想空間1000には、背景画像1030が貼り付けられ、アバター1010と、仮想カメラ1040とが配置されている。なお、同図では図示していないが、本実施形態においても、仮想空間1000に第2オブジェクトが配置されてもよい。また、同図の例では、アバターの座る椅子オブジェクト1060が併せて配置されている。
【0154】
本実施形態においては、オブジェクト制御部112Cは、配信者がプレイしているゲームのプレイ画面の画像を表示する第3オブジェクト1021を、仮想空間1000に配置する。例えば、図示のように、第3オブジェクト1021は、テレビおよびパーソナルコンピュータ等を模したオブジェクトであってもよい。第3オブジェクト1021の少なくとも一部領域には、ゲームのプレイ画面の画像1050が表示される。なお、オブジェクト制御部112Cは、プレイ画面を表示可能な第3オブジェクトを配置してもよいし、見かけ上第3オブジェクト上にプレイ画面が表示されているように、第3オブジェクトと、プレイ画面の画像とを貼り付けて、または仮想カメラ1040から見たときに重畳するように配置してもよい。
【0155】
図14の状態(B)は、状態(A)に示す仮想カメラの視野領域の画像の一例を示す図である。
図14の状態(A)の例では、カメラ制御部112Dは仮想カメラ1040を、アバター1010の頭と同程度の高さで、かつアバター1010の背後に配置している。
図14の状態(A)の仮想カメラ1040場合、
図14の状態(B)に示す通り、第3オブジェクト1021に表示されたプレイ画面を見ているアバター1010を、真後ろから映すような視点で視野領域の画像が描画され、表示部152に表示される。
【0156】
(仮想カメラの切替え1)
カメラ制御部112Dは、視聴端末100において特定の第2入力操作が受け付けられたことに応答して、仮想カメラ1040の位置および角度を、前記アバターに対応する配信者の視点と略同様の位置および角度に切替えてもよい。
【0157】
なお、仮想カメラの位置および角度を切替えるための具体的方法は特に限定されない。例えば、カメラ制御部112Dは、仮想空間内に配置している仮想カメラの位置および角度を移動させてもよい。また、カメラ制御部112Dは、仮想空間内に配置している仮想カメラを一旦削除し、切替後の位置および角度に、仮想カメラを再配置してもよい。
【0158】
また、複数の仮想カメラを異なる位置および角度で仮想空間に配置しておき、カメラ制御部112Dが使用する仮想カメラを逐次切り替えてもよい。そして、例えば描画部112Eにおいて、いずれの仮想カメラの視野画像をレンダリングするかを定めてレンダリングを実行してもよい。
【0159】
図15の状態(A)は、第2入力操作がなされて仮想カメラの位置および角度が切替えられた後の仮想空間を示す図である。第2入力操作が受け付けられると、カメラ制御部112Dは、仮想カメラをアバター1010の視点と略同様の位置、すなわち、プレイ画面1050に対する配信者の視点と略同様の位置および角度に切替える。
図15の状態(A)の場合、アバター1010の視界領域をαで示している。なお、実際の仮想空間1000ではアバター1010と仮想カメラ1040は重畳しているが、図面の見易さのため仮想カメラ1040は図示していない。
【0160】
図15の状態(B)は、状態(A)に示す仮想カメラの視野領域の画像の一例を示す図である。
図15の状態(A)に示すアバター1010の視点の場合、同図の領域αが視野領域の画像となる。したがって、
図15の状態(B)に示すように、第3オブジェクト1021およびプレイ画面1050のアップ画面が、視野領域の画像として描画および表示される。
【0161】
これにより、視聴端末100のユーザの第2入力操作に応じて、仮想カメラ1040を、配信者の視野と略同様の領域を映す位置および角度に切替えることができる。したがって、視聴端末100のユーザ、すなわち視聴者は、自身の入力操作に応じて配信者の視点をトレースした映像を視聴することができる。したがって、コンテンツのカメラワークの自由度を増すことができ、よってコンテンツの興趣性を向上させることができる。
【0162】
(仮想カメラの切替え2)
カメラ制御部112Dは、アバター1010の持ち物を示す第4オブジェクト1041を仮想空間1000に配置してもよい。そして、カメラ制御部112Dは、視聴端末100において特定の第3入力操作が受け付けられたことに応答して、仮想カメラ1040の位置および角度を、前記第4オブジェクトの位置および向きと略同様の位置および角度に切替えてもよい。
【0163】
図16の状態(A)は、第3入力操作がなされて仮想カメラの位置および角度が切替えられた後の仮想空間を示す図である。第3入力操作が受け付けられると、カメラ制御部112Dは、仮想カメラをアバター1010の持ち物である第4オブジェクト1041の位置および向きに応じた位置および角度に切替える。図示の例では、アバター1010の持ち物とは、アバター1010が手に持っているカメラオブジェクト1041である。
図15の状態(A)の場合、第4オブジェクト1041は、アバター1010の顔の方を向いている。なお、実際の仮想空間1000ではカメラオブジェクト1041と仮想カメラ1040は重畳しているが、図面の見易さのため仮想カメラ1040は図示していない。
【0164】
図16の状態(B)は、状態(A)に示す仮想カメラの視野領域の画像の一例を示す図である。
図16の状態(B)に示すように、第4オブジェクト1041の視点からの視野領域の画像1300は、第4オブジェクトの向いている方向、すなわち、アバター1010の顔の方向を映す。
【0165】
これにより、視聴端末100のユーザの第3入力操作に応じて、仮想カメラを、アバターの持ち物の視点と略同様の視点からの視野画像を映す位置および角度に切替えることができる。したがって、視聴端末100のユーザ、すなわち視聴者は、自身の入力操作に応じてアバターの持ち物視点からの映像を視聴することができる。したがって、コンテンツのカメラワークの自由度を増すことができ、よってコンテンツの興趣性を向上させることができる。
【0166】
(仮想カメラの追加)
カメラ制御部112Dは、仮想カメラを複数配置してもよい。また、カメラ制御部112Dは、視聴端末100において特定の第4入力操作が受け付けられたことに応答して、仮想カメラ1040と異なる第2仮想カメラ(すなわち、第2仮想視点)を、第1オブジェクトの特定部位が映る位置および角度で配置してもよい。ここで、アバターの特定部位とは、例えばアバターの顔または手元である。また、描画部112Eは、仮想カメラの視野領域の画像と、第2仮想カメラの視野領域の画像との両方を含む画像をレンダリングしてもよい。
【0167】
図17の状態(A)は、第4入力操作がなされて仮想カメラの位置および角度が切替えられた後の仮想空間を示す図である。第4入力操作が受け付けられると、カメラ制御部112Dは、第2仮想カメラ1070を、アバター1010の特定部位が映る位置および角度で仮想空間1000に配置する。図示の例では、第2仮想カメラ1070は、アバター1010の顔が映る位置および角度で配置される。
【0168】
図17の状態(B)は、状態(A)に示す仮想カメラ1040および第2仮想カメラ1070の視野領域の画像1400の一例を示す図である。
図16の状態(B)に示すように、描画部112Eは視野領域の画像として、仮想カメラ1040の視野領域の画像1400に、第2仮想カメラ1070の視野領域の画像1080を重畳して表示する。なお、第2仮想カメラ1070の視野領域の画像は、図示の通り全部ではなく一部の領域だけ表示されてもよい。
【0169】
これにより、視聴端末100のユーザの第4入力操作に応じて、アバターの特定部位を第2仮想カメラ1070で映すことができる。したがって、視聴者は、自身の入力操作に応じて、仮想カメラによる視野領域の映像と、第2仮想カメラによるアバターの特定部位の映像との両方を同時に見ることができる。したがって、コンテンツのカメラワークの自由度を増すことができ、よってコンテンツの興趣性を向上させることができる。
【0170】
また、視聴端末100において所定の入力操作が受け付けられた場合、描画部112Eは、仮想カメラ1010の視野領域の画像1400と、第2仮想カメラ1070の視野領域の画像1080とを入れ替えて描画してもよい。
【0171】
(仮想カメラの切替え3)
視聴端末100において特定の第5入力操作が受け付けられた場合、カメラ制御部112Dは、仮想カメラ1040の位置および角度を、第1オブジェクトの特定部位が映る位置および角度に切替えてもよい。
【0172】
図18の状態(A)は、第5入力操作がなされて仮想カメラ1040の位置および角度が切替えられた後の仮想空間を示す図である。第5入力操作が受け付けられると、カメラ制御部112Dは、仮想カメラ1040の位置および角度を、アバター1010の特定部位が映る位置および角度に切替える。
図18の状態(A)の場合、カメラ制御部112Dは、アバター1010の顔が正面から見える位置および角度に仮想カメラ1040を配置する。なお、仮想カメラ1040の位置および角度は、アバター1010の特定部位の位置に対して相対的に定められる。したがって、カメラ制御部112Dは、アバター1010の特定部位の位置および角度が変化した場合、変化後の位置および角度に応じた相対位置に仮想カメラ1040を移動または配置し直す。つまり、アバター1010の特定部位が動いたら、仮想カメラ1040も所定の相対位置となるように追従して移動する。このように、アバター1010の特定部位が動いても仮想カメラ1040も追従して動くので、アバター1010の特定部位を常に撮影できる。
【0173】
図18の状態(B)は、状態(A)に示す仮想カメラ1040の視野領域の画像1031の一例を示す図である。
図18の状態(B)に示すように、仮想カメラ1040は、アバター1010の顔を正面から撮影できる位置にある。
【0174】
これにより、視聴端末100のユーザの第5入力操作に応じて、仮想カメラ1040を、アバターの特定部位が映る位置および角度に切替えることができる。したがって、コンテンツのカメラワークの自由度を増すことができ、よってコンテンツの興趣性を向上させることができる。
【0175】
〔ゲームの変形例〕
以上の説明では、ゲームは、配信システム2が配信するコンテンツとは独立したものであり、ゲーム端末400から配信端末300にゲーム画面が取り込まれることによって、該ゲーム画面がコンテンツに含まれることとした。
【0176】
しかしながら、配信システム2において、ゲーム端末400と配信端末300とは一体であってもよい。この場合、配信部312は、配信者がアバターを介して仮想空間でプレイするためのゲームを提供してもよい。このようなゲームとして、例えば、HMDを利用して実現されるVRゲームが挙げられる。この場合、配信部312が、ゲームの進行に係る各種処理を実行して、ゲーム画面兼配信画面を作成してよい。なお、この場合、コンテンツデータに含まれるゲームのプレイ画面とは、配信者のアバターを含む、コンテンツそのものとなる。
【0177】
図19は、配信システム2における、仮想カメラの視野領域の画像の他の一例を示す図である。
図19に示すゲーム画面1600には、配信者のアバター1010を少なくとも含む、ゲーム画面としてのコンテンツが表示される。図示の例ではさらに、ゲーム画面1600に敵キャラクタ1610が配置されており、配信者の操作する(配信者の動作が反映される)アバター1010と対戦している。
【0178】
ゲーム画面1600では、アバター1010がプレイヤーキャラクタとなる。図示の例では、配信者に対応するアバター1010が配信者(モデル702等)の動きに応じてゲーム画面1600上で動いてよい。すなわち、モーションデータの取得対象となっている配信者の動きがそのまま、アバター1010に反映されてよい。例えば、前述のようにモデル702がHMDを装着している場合、モデル702の頭の動きに合わせてアバター1010の頭の向きが変化してもよい。
【0179】
また、配信者に対応するアバター1010の視線方向と対向する位置に、自動で追尾する仮想カメラを設けてもよい。この仮想カメラによれば、配信者に対応するアバター1010の視線を確実に捉えることができる。よって、配信者に対応するアバター1010が自分の方を見てくれないという視聴者の不満の発生を防止できる。なお、この仮想カメラからの映像を表示するモードを別途設けてもよい。例えば、仮想空間内にこの仮想カメラを配置し、視聴者がこの仮想カメラをタップすると、上記モードに移行するようにしてもよい。
【0180】
〔変形例〕
配信システム1または2は、実施形態1において説明した第2オブジェクトの配置方法および配置位置と、実施形態2において説明した仮想カメラの位置および角度の切り替え、ならびに第2仮想カメラの配置とを組み合わせて実行してもよい。
【0181】
例えば、配信システム1において、視聴端末100のオブジェクト制御部112Cは、操作受付部111が第2入力操作または第3入力操作を受け付けた場合に、実施形態2において説明したように、仮想カメラの位置および角度を切替えてもよい。また、配信システム1において、視聴端末100のオブジェクト制御部112Cは、操作受付部111が第4入力操作を受け付けた場合に、実施形態2において説明したように、第2仮想カメラを配置し、描画部112Eは仮想カメラと第2仮想カメラの両方の視野領域の画像を描画してもよい。
【0182】
また、実施形態1および実施形態2の例では、配信端末300において作成されたコンテンツデータに基づいて、視聴端末100において仮想空間の構築、仮想カメラの配置、および視野領域の画像の描画を実行した。しかしながら、配信システム1および2に係る配信端末300の配信部312が、仮想空間の構築、仮想カメラの配置、および視野領域の画像の描画を実行してもよい。換言すると、配信端末300の配信部312が
図6のステップS201〜S212までの処理を実行し、描画された視野領域の画像がコンテンツとして、配信サーバ200を介し視聴端末100に配信されてもよい。
【0183】
なお、この場合、実施形態2において説明した仮想カメラの切り替えは、例えば以下の方法で実現可能である。すなわち、配信端末300の配信部312が、予め仮想空間全域を描画する、または、配置され得る全ての位置および角度での仮想カメラの視野領域の画像を描画しておく方法である。この場合、視聴端末100において第2入力操作、第3入力操作、第4入力操作、または第5入力操作が実行されると、該操作が行われた旨が視聴端末100から配信サーバ200に伝えられる。配信サーバ200には、前述のようにあらゆる視野領域の画像に対応する描画画像が蓄積されており、サーバ処理部212は、視聴端末100から送信された操作の内容に応じた視野領域の画像を、視聴端末100に送信する。これにより、視聴端末100における入力操作に応じて、仮想カメラの視点切替えが可能となる。
【0184】
〔ソフトウェアによる実現例〕
制御部110、210、および310の各制御ブロックの制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
【0185】
後者の場合、制御部110、210、および310を少なくとも1つ備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0186】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【0187】
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
【0188】
(項目1) プログラム(視聴プログラム131)について説明した。本開示のある局面によると、プログラムは、プロセッサ(10)およびメモリ(11)を備える、配信者が配信端末(300)を用いてリアルタイム配信するコンテンツを視聴するための視聴端末(100)としての、コンピュータにより実行されるプログラムであって、プログラムは、プロセッサに、コンテンツに係る情報であって、配信端末から随時配信される、少なくとも配信者の身体の動きを検出したモーションデータを含む情報である第1情報を受信するステップ(S200)と、背景画像が展開された仮想空間を構築するステップ(S201〜S202)と、仮想空間に、配信者に対応するアバターである第1オブジェクトを配置するステップ(S204)と、リアルタイム配信が行われている間、第1情報を受信することに応答して、第1オブジェクトをモーションデータに従って動作させるステップ(S207)と、仮想空間の、該仮想空間の中心点とは異なる位置であって、中心点を視野領域に含む位置に仮想視点を配置するステップ(S208)と、仮想視点の視野領域の画像をレンダリングするステップ(S212)と、レンダリングによって得られる画像を、表示部に表示させるステップ(S214)と、を実行させる。
【0189】
前記の処理によれば、中心点とは異なる位置に配置した仮想視点の視野領域を描画するため、仮想空間の中心をユーザに見せることができる。したがって、ライブ配信におけるコンテンツの興趣性が向上する。
【0190】
(項目2) (項目1)において、プログラムは、プロセッサに、さらに、背景画像の特定の領域を遮蔽するように、仮想空間内に第2オブジェクトを配置するステップ(S206)を実行させてもよい。
【0191】
仮想空間を覆う背景画像を作成する場合、元となる元画像の形およびサイズに応じて、背景画像の一部に歪みが生じる可能性がある。前記の処理によれば、例えばこのような背景画像の歪みが生じ得る領域を仮想視点の視野領域の画像を表示する際に、第2オブジェクトが該領域を遮蔽するよう配置される。したがって、視聴者に背景画像の歪みを見せないようにすることができる。
【0192】
(項目3) (項目2)において、第1オブジェクトを配置するステップは、第1オブジェクトを第2オブジェクト上に配置してもよい。
【0193】
前記の処理によれば、視聴者が第1オブジェクトに注目したとき、第2オブジェクトによって画像の歪みが生じ得る領域が遮蔽されている。よって、視聴者に背景画像の歪みを見せないようにすることができる。
【0194】
(項目4) (項目1)から(項目3)のいずれか1項目において、プログラムは、プロセッサに、さらに、地図データに基づく地図を表示するステップと、地図上のある地点を指定するための第1入力操作を受け付けるステップと、を実行させ、構築するステップは、第1入力操作に基づいて仮想空間を構築し、背景画像は、地点に対応する現実空間上の位置の周囲を撮影した画像であってもよい。
【0195】
前記の処理によれば、特定の地点における実際の風景を背景とした画像をライブ配信することができる。したがって、ライブ配信におけるコンテンツの興趣性が向上する。
【0196】
(項目5) (項目4)において、プログラムは、プロセッサに、さらに、視聴端末の現在位置を示す位置情報を取得するステップを実行させ、構築するステップは、位置情報が示す、視聴端末の地図上での位置と、第1入力操作により指定された地点との距離が所定範囲内である場合に、仮想空間を構築してもよい。
【0197】
前記の処理によれば、指定された地点付近に実際に行ってから第1操作を実行することで、ライブを見ることができる。したがって、ライブ配信の興趣性を向上させることができる。
【0198】
(項目6) (項目1)から(項目5)のいずれか1項目において、プログラムは、プロセッサに、さらに、視聴端末において第2入力操作が受け付けられたことに応答して、仮想視点の位置および角度を、第1オブジェクトに対応する配信者の視点と略同様の位置および角度に切替えるステップを実行させ、レンダリングするステップは、配信者の視点と略同様の位置および角度に切替えるステップによって仮想視点の位置および角度が切替えられた後の、視野領域の画像をレンダリングしてもよい。
【0199】
前記の処理によれば、視聴端末のユーザの第2入力操作に応じて、仮想視点を、配信者の視野と略同様の領域を映す位置および角度に切替えることができる。したがって、視聴端末のユーザ、すなわち視聴者は、自身の入力操作に応じて配信者の視点をトレースした映像を視聴することができる。したがって、前記の処理によれば、ライブ配信のカメラワークの自由度を増すことができ、よってライブ配信の興趣性を向上させることができる。
【0200】
(項目7) (項目1)から(項目6)のいずれか1項目において、プログラムは、プロセッサに、さらに、仮想空間に、アバターの持ち物を示す第4オブジェクトを配置するステップと、視聴端末において第3入力操作が受け付けられたことに応答して、仮想視点の位置および角度を、第4オブジェクトの位置および向きと略同様の位置および角度に切替えるステップと、を実行させ、レンダリングするステップは、第4オブジェクトの位置および向きと略同様の位置および角度に切替えるステップによって仮想視点の位置および角度が切替えられた後の、視野領域の画像をレンダリングしてもよい。
【0201】
前記の処理によれば、視聴端末のユーザの第3入力操作に応じて、仮想視点を、アバターの持ち物の視点と略同様の視点からの視野画像を映す位置および角度に切替えることができる。ここで、アバターの持ち物とは、例えばアバターが手に持っているカメラオブジェクトである。前記の処理によれば、視聴端末のユーザ、すなわち視聴者は、自身の入力操作に応じてアバターの持ち物視点からの映像を視聴することができる。したがって、ライブ配信のカメラワークの自由度を増すことができ、よってライブ配信の興趣性を向上させることができる。
【0202】
(項目8) (項目1)から(項目7)のいずれか1項目において、プログラムは、プロセッサに、さらに、視聴端末において第4入力操作が受け付けられたことに応答して、仮想視点と異なる第2仮想視点を、第1オブジェクトの特定部位が映る位置および角度で配置するステップを実行させ、レンダリングするステップは、仮想視点の視野領域の画像と、第2仮想視点の視野領域の画像との両方を含む画像をレンダリングしてもよい。
【0203】
前記の処理によれば、視聴端末のユーザの第4入力操作に応じて、アバターの特定部位を第2仮想視点で映すことができる。ここで、アバターの特定部位とは、例えばアバターの顔または手元である。前記の処理によれば、視聴端末のユーザ、すなわち視聴者は、自身の入力操作に応じて、仮想視点による視野領域の映像と、第2仮想視点によるアバターの特定部位の映像との両方を同時に見ることができる。したがって、ライブ配信のカメラワークの自由度を増すことができ、よってライブ配信の興趣性を向上させることができる。
【0204】
(項目9) (項目1)から(項目8)のいずれか1項目において、プログラムは、プロセッサに、さらに、視聴端末において第5入力操作が受け付けられたことに応答して、仮想視点の位置および角度を、第1オブジェクトの特定部位が映る位置および角度に切替えるステップを実行させ、レンダリングするステップは、第1オブジェクトの特定部位が映る位置および角度に切替えるステップによって仮想視点の位置および角度が切替えられた後の、視野領域の画像をレンダリングしてもよい。
【0205】
前記の処理によれば、視聴端末のユーザの第5入力操作に応じて、仮想視点を、アバターの特定部位が映る位置および角度に切替えることができる。したがって、コンテンツのカメラワークの自由度を増すことができ、よってコンテンツの興趣性を向上させることができる。
【0206】
(項目10) プログラム(配信プログラム331)について説明した。本開示のある局面によると、プログラムは、プロセッサ(20,30)およびメモリ(21,31)を備える、配信者がコンテンツのリアルタイム配信に用いる配信端末(200、300)としてのコンピュータにより実行されるプログラムであって、プログラムは、プロセッサに、背景画像が展開された仮想空間を構築するステップ(S201〜S202)と、仮想空間に、配信者に対応するアバターである第1オブジェクトを配置するステップ(S204)と、仮想空間の、該仮想空間の中心点とは異なる位置に仮想視点を配置するステップ(S208)と、仮想視点の視野領域の画像をレンダリングするステップ(S212)と、レンダリングによって得られる画像を、コンテンツとして視聴端末にリアルタイムで配信するステップ(S102,S112)と、を実行させる。
【0207】
前記の処理によれば、中心点とは異なる位置に配置した仮想視点の視野領域を描画するため、仮想空間の中心をユーザに見せることができる。したがって、ライブ配信におけるコンテンツの興趣性が向上する。
【0208】
(項目11) コンピュータがプログラムを実行する方法を説明した。本開示のある局面によると、プログラム(視聴プログラム131)は、プロセッサ(10)およびメモリ(11)を備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載のプログラムの各ステップを実行する方法である。(項目11)に係る方法は、(項目1)に係るプログラムと同様の作用効果を奏する。
【0209】
(項目12) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るプログラムを記憶するメモリ(11)と、該プログラムを実行することにより、情報処理装置(視聴端末100)の動作を制御するプロセッサ(10)とを備える。(項目12)に係る情報処理装置は、(項目1)に係るプログラムと同様の作用効果を奏する。