(57)【要約】【課題】ユーザが能動的に関与でき、かつ、ユーザ数がスケーラブルなコンテンツ体験を提供する。【解決手段】本発明の一態様によれば、データ生成装置は、受信部と、生成部と、送信部とを含む。受信部は、アプリケーションを実行する任意の数のアプリケーション実行装置からアプリケーションに対する操作要求を受信する。生成部は、アプリケーションに対する操作入力データと当該操作入力データをアプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを生成する。送信部は、アプリケーション操作データを任意の数のアプリケーション実行装置へ送信する。任意の数のアプリケーション実行装置の少なくとも１つから操作要求を受信した場合には、生成部は当該操作要求に基づいて操作入力データを生成する。【選択図】      図２
2018200675.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行する任意の数のアプリケーション実行装置から前記アプリケーションに対する操作要求を受信する受信部と、
前記アプリケーションに対する操作入力データと当該操作入力データを前記アプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを生成する生成部と、
前記アプリケーション操作データを前記任意の数のアプリケーション実行装置へ送信する送信部と
を具備し、
前記任意の数のアプリケーション実行装置の少なくとも１つから操作要求を受信した場合には、前記生成部は当該操作要求に基づいて前記操作入力データを生成する、
データ生成装置。
【請求項２】
前記操作要求は、優先度を割り当てられ、
前記任意の数のアプリケーション実行装置の少なくとも１つから操作要求を受信した場合には、前記生成部は当該操作要求および当該操作要求に割り当てられた優先度に基づいて前記操作入力データを生成する、
請求項１に記載のデータ生成装置。
【請求項３】
前記任意の数のアプリケーション実行装置のうちの複数から異なる操作要求を受信した場合には、前記生成部は受信数の最も多い操作要求に基づいて前記操作入力データを生成する、請求項１に記載のデータ生成装置。
【請求項４】
前記任意の数のアプリケーション実行装置のうちの第１のアプリケーション実行装置によって操作可能な対象と、前記任意の数のアプリケーション実行装置のうちの第２のアプリケーション実行装置によって操作可能な対象とが異なる、請求項１乃至請求項３のいずれか１項に記載のデータ生成装置。
【請求項５】
前記任意の数のアプリケーション実行装置のうちの第１のアプリケーション実行装置によって操作可能な対象と、前記任意の数のアプリケーション実行装置のうちの第２のアプリケーション実行装置によって操作可能な対象とが同一である、請求項１乃至請求項３のいずれか１項に記載のデータ生成装置。
【請求項６】
前記アプリケーション操作データは、乱数シードをさらに含む、請求項１乃至請求項５のいずれか１項に記載のデータ生成装置。
【請求項７】
アプリケーションを実行する実行部と、
ユーザ入力に基づいてアプリケーションに対する操作要求を生成する生成部と、
前記操作要求をデータ生成装置へ送信する送信部と、
前記アプリケーションに対する操作入力データと当該操作入力データを前記アプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを前記データ生成装置から受信する受信部と
を具備し、
前記実行部は、前記操作入力データを当該操作入力データに対応する時間データの示す時間に前記アプリケーションに適用する、
アプリケーション実行装置。
【請求項８】
前記送信部および前記受信部は、前記操作要求と前記アプリケーション操作データとを除く前記アプリケーションの実行に関するデータの送受信を前記アプリケーションの実行結果におけるシーン切り替え時間内に行う、
請求項７に記載のアプリケーション実行装置。
【請求項９】
コンピュータを
アプリケーションを実行する任意の数のアプリケーション実行装置から前記アプリケーションに対する操作要求を受信する手段、
前記アプリケーションに対する操作入力データと当該操作入力データを前記アプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを生成する手段、
前記アプリケーション操作データを前記任意の数のアプリケーション実行装置へ送信する手段
として機能させるためのプログラムであって、
前記任意の数のアプリケーション実行装置の少なくとも１つから操作要求を受信した場合には、前記生成する手段は当該操作要求に基づいて前記操作入力データを生成する、
プログラム。
【請求項１０】
コンピュータを
アプリケーションを実行する手段、
ユーザ入力に基づいてアプリケーションに対する操作要求を生成する手段、
前記操作要求をデータ生成装置へ送信する手段、
前記アプリケーションに対する操作入力データと当該操作入力データを前記アプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを前記データ生成装置から受信する手段
として機能させるためのプログラムであって、
前記実行する手段は、前記操作入力データを当該操作入力データに対応する時間データの示す時間に前記アプリケーションに適用する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザにコンテンツ体験を提供する技術に関する。
【背景技術】
【０００２】
特許文献１は、ＭＭＯＲＰＧ（Ｍａｓｓｉｖｅｌｙ  Ｍｕｌｔｉｐｌａｙｅｒ  Ｏｎｌｉｎｅ  Ｒｏｌｅ−Ｐｌａｙｉｎｇ  Ｇａｍｅ）において、サーバが、（１）ゲーム装置からの操作指示情報を受信し、（２）操作指示情報をＨＤＤに記憶し、（３）ゲームの進行状況に関する情報をゲーム装置に送信し、（４）プレイログとして評価情報、操作指示情報、ゲームの進行状況に関する情報を記憶する、等の一連の処理を、１フレーム毎に繰り返すことが記載されている。また、ゲーム装置とサーバが同期してゲームを進行するために、必要な操作指示情報やゲームの進行状況に関する情報等についてリアルタイムで送受信が行われることも記載されている。
【０００３】
特許文献２は、ミニゲームおよびステージの実行過程を再現するために、ユーザがどのタイミングでどのキーを押下したかを単位時間毎（例えば、ゲーム画面の１フレーム毎）に示すリプレイデータを使用することが記載されている。また、リプレイデータの再生中にユーザが所定の操作を行った場合に、リプレイデータの再生を中断し、以降は当該ユーザの操作に基づいてゲームを実行することも記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１８５３４８号公報
【特許文献２】特開２０１５−１５３１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されたプレイログは、基本的に、不正行為を抽出したり、ネットワークゲームの内容の修正や新しいゲームの開発に活かしたりするために蓄積されている。
【０００６】
特許文献２に記載されたリプレイデータによれば、過去のゲーム体験から新たなゲーム体験を派生させることができる。しかしながら、かかる新たなゲーム体験は、シングルプレイを前提としており、例えばあるユーザが派生させたゲームには当該ユーザのみが関与できるに過ぎない。
【０００７】
本発明は、ユーザが能動的に関与でき、かつ、ユーザ数がスケーラブルなコンテンツ体験を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、データ生成装置は、受信部と、生成部と、送信部とを含む。受信部は、アプリケーションを実行する任意の数のアプリケーション実行装置からアプリケーションに対する操作要求を受信する。生成部は、アプリケーションに対する操作入力データと当該操作入力データをアプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを生成する。送信部は、アプリケーション操作データを任意の数のアプリケーション実行装置へ送信する。任意の数のアプリケーション実行装置の少なくとも１つから操作要求を受信した場合には、生成部は当該操作要求に基づいて操作入力データを生成する。
【０００９】
本発明の別の態様によれば、アプリケーション実行装置は、実行部と、生成部と、送信部と、受信部とを含む。実行部は、アプリケーションを実行する。生成部は、ユーザ入力に基づいてアプリケーションに対する操作要求を生成する。送信部は、操作要求をデータ生成装置へ送信する。受信部は、アプリケーションに対する操作入力データと当該操作入力データをアプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データをデータ生成装置から受信する。実行部は、操作入力データを当該操作入力データに対応する時間データの示す時間にアプリケーションに適用する。
【発明の効果】
【００１０】
本発明によれば、ユーザが能動的に関与でき、かつ、ユーザ数がスケーラブルなコンテンツ体験を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係るコンテンツ体験提供システムのネットワーク構成を例示するブロック図。
【図２】図１のデータ生成装置を例示するブロック図。
【図３】図１のアプリケーション実行装置を例示するブロック図。
【図４】図２のデータ生成装置の動作を例示するフローチャート。
【図５】図３のアプリケーション実行装置の動作を例示するフローチャート。
【図６】図２のデータ生成装置によって生成されるアプリケーション操作データの構造を例示する図。
【図７】図３のアプリケーション実行装置によって実行されるパズルゲーム用のアプリケーションの説明図。
【図８】図３のアプリケーション実行装置によって実行されるアンケート用のアプリケーションの説明図。
【図９】アプリケーションの実行に関するデータ（操作要求およびアプリケーション操作データを除く）の送受信を図３のアプリケーション実行装置が行うタイミングの説明図。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【００１３】
（第１の実施形態）  
第１の実施形態に係るコンテンツ体験提供システムは、図１に例示されるように、データ生成装置１００と、アプリケーション実行装置２００−１，２００−２，２００−３および２００−４とを含む。データ生成装置１００と、アプリケーション実行装置２００とはネットワーク経由で互いに接続されており、データを互いに送受信できる。なお、アプリケーション実行装置２００間の接続は必須ではない。少なくとも、個々のアプリケーション実行装置２００と、データ生成装置１００とが接続されていればよい。アプリケーション実行装置２００の総数は４に限られず、１〜３であってもよいし、５以上であってもよい。また、図示されないＷｅｂサーバもネットワーク接続されていてもよい。
図１のコンテンツ体験提供システムは、同一のアプリケーションを実行する任意の数のアプリケーション実行装置２００のユーザに、当該アプリケーションによるコンテンツ体験を提供することを可能にする。
【００１４】
具体的には、データ生成装置１００がアプリケーション操作データを生成し、アプリケーション実行装置２００へ配信（送信）する。そして、アプリケーション実行装置２００が当該アプリケーション操作データをアプリケーションに適用する。
【００１５】
アプリケーションは、実行結果の少なくとも一部としてコンテンツを生成することができる。コンテンツは、例えば、動画像、静止画像、音声、テキストなどである。アプリケーションは、例えば、ビデオゲーム、アンケート、クイズ、お絵かきソフトなどであり得る。
【００１６】
アプリケーション実行装置２００が同一のアプリケーション操作データを同一のアプリケーションに大凡同じタイミング（同期していることが望ましいが、同期していることは必須でない）で適用すれば、当該アプリケーション実行装置２００のユーザはコンテンツを略同時体験することができる。
【００１７】
さらに、アプリケーション実行装置２００のユーザは、コンテンツの展開に能動的に関与することもできる。具体的には、アプリケーション実行装置２００は、ユーザ入力に応じて、アプリケーションに対する操作要求を生成する。アプリケーション実行装置２００は、操作要求をデータ生成装置１００へ送信する。そして、データ生成装置１００は、少なくとも１つのアプリケーション実行装置２００から操作要求を受信した場合には、当該操作要求に基づいてアプリケーション操作データ（に含まれる操作入力データ）を生成する。すなわち、各ユーザの操作入力が、全ユーザの体験するコンテンツの展開に反映され得る。
【００１８】
なお、データ生成装置１００がアプリケーション実行装置２００としても機能してよい。すなわち、データ生成装置１００は、アプリケーション操作データを生成してアプリケーション実行装置２００へ配信するとともに、当該アプリケーション操作データをアプリケーションに適用してもよい。
【００１９】
アプリケーション実行装置２００は、ネットワーク経由で、データ生成装置１００からアプリケーション操作データを受信する。ここで、アプリケーション操作データは、図６に例示されるように、少なくとも、アプリケーションに対する操作入力データと、当該操作入力データをアプリケーションに適用する時間を示す時間データとのデータセットを含む。より具体的には、アプリケーション操作データは、アプリケーションの実行開始（初期状態）から、当該アプリケーションに適用される全ての操作入力データとそれを適用する時間を示す時間データとを含む。
【００２０】
アプリケーションの種別次第で、アプリケーション操作データは、例えば、乱数シードなどの付加的なデータを含んでもよい。付加的なデータは、アプリケーションの実行結果の再現性を高めるのに役立つデータであればよい。アプリケーションの実行結果の再現性とは、例えば、ある時点にアプリケーション操作データを使用した場合の実行結果が、将来に当該アプリケーション操作データを使用した場合の実行結果とどのくらい同一であるか、或いは、あるアプリケーション実行装置がアプリケーション操作データを使用した場合の実行結果が、他のアプリケーション実行装置が当該アプリケーション操作データを使用した場合の実行結果とどのくらい同一であるか、によって評価することができる。
【００２１】
アプリケーション実行装置２００は、アプリケーション操作データに含まれる操作入力データを、当該操作入力データに対応する時間データの示す時間にアプリケーションに適用する。全てのアプリケーション実行装置２００が略同時に動作すれば、全ユーザは、同一の実行結果、すなわち、同一のコンテンツ（例えば、ビデオゲームのプレイ映像）を略同時に楽しむことができる。
【００２２】
アプリケーション実行装置２００は、典型的には、テレビ受像機（インターネットテレビを含む）、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、モバイル端末（例えば、タブレット、スマートフォン、ラップトップ、フィーチャーフォン、ポータブルゲーム機、デジタルミュージックプレイヤー、電子書籍リーダなど）、ＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）端末、ＡＲ(Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ)端末であるが、これらに限られない。
【００２３】
アプリケーション実行装置２００は、アプリケーションの実行、操作要求の生成および通信制御などを行うプロセッサと、かかる処理を実現するために当該プロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータなどを一時的に格納するメモリとを含んでいる。
【００２４】
アプリケーション実行装置２００は、さらに、ネットワークに接続するための通信装置と、コンテンツを出力するための出力装置と、ユーザ入力を受け付けるための入力装置と、プログラムまたはデータを保存する補助記憶装置とを利用可能である。これらの通信装置、出力装置、入力装置および補助記憶装置は、アプリケーション実行装置２００に内蔵されていてもよいし、アプリケーション実行装置２００に外付けされてもよい。
【００２５】
通信装置は、ネットワーク経由で、データ生成装置１００または図示されないＷｅｂサーバと通信をする。例えば、通信装置は、データ生成装置１００からアプリケーション操作データを受信したり、データ生成装置１００に操作要求を送信したり、Ｗｅｂサーバからアプリケーションの実行に関するデータ（具体例は後述する）を受信したり、Ｗｅｂサーバへアプリケーションの実行に関するデータを送信したりする。なお、このアプリケーションの実行に関するデータは、Ｗｅｂサーバではなくデータ生成装置１００との間でやり取りされてもよい。
【００２６】
出力装置は、動画像、静止画像、テキストなどを表示するための表示装置および／または音声、楽曲などを出力するためのスピーカを含み得る。表示装置は、例えば、液晶ディスプレイ、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイなどである。表示装置は、コンテンツを含む表示データを表示する。なお、表示装置は、タッチスクリーンのように入力装置の機能を備えていてもよい。
【００２７】
入力装置は、例えば、キーボード、マウス、テンキーなどであってもよいし、タッチスクリーンのように表示装置の機能を備えていてもよい。例えば、入力装置は、データ生成装置１００から配信されたアプリケーション操作データを用いて実行中のアプリケーションに対して、ユーザから操作のための入力を受け付ける。ただし、全てのアプリケーション実行装置２００の入力装置が、アプリケーションに対する操作のための入力を受け付ける必要はない。すなわち、一部のアプリケーション実行装置２００は、受信したアプリケーション操作データをアプリケーションへ適用することでコンテンツ体験を共有できるものの、操作要求を生成してコンテンツの展開に能動的に関与することはできなくてもよい。
【００２８】
ユーザ入力は、典型的には、タップ、クリック、特定のキーの押下などであり得る。このほか、ユーザ入力は、例えば、マイクロフォンによって捉えられる音声、生体センサによって検出される生体データ（例えば体温、表情など）、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）または基地局情報によって識別される位置データ、加速度センサによって検出される加速度データに基づいて推定されるユーザのアクション（例えば、アプリケーション実行装置２００を振り回した）などを含むこともできる。
【００２９】
補助記憶装置は、例えば、アプリケーションに関するプログラムまたはデータを格納する。補助記憶装置は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの不揮発性記憶媒体であることが好ましい。ただし、補助記憶装置を利用せずに全ての処理を主記憶装置上で行うことも可能である。補助記憶装置は、アプリケーション実行装置２００にネットワーク経由で接続されたファイルサーバであり得る。
【００３０】
以下、図３を用いて、アプリケーション実行装置２００の詳細を説明する。アプリケーション実行装置２００は、受信部２０１と、実行部２０２と、出力部２０３と、入力部２０４と、操作要求生成部２０５と、送信部２０６と、通信制御部２０７とを含む。
【００３１】
受信部２０１は、ネットワーク経由で、データ生成装置１００からアプリケーション操作データを受信する。受信部２０１は、アプリケーション操作データを実行部２０２へ送る。他にも、受信部２０１は、ネットワークを介して、図示されないＷｅｂサーバから例えばリソースデータなどのアプリケーションの実行に関するデータを受信してもよい。この場合にも、受信部２０１は、受信データを実行部２０２へ送る。受信部２０１は、前述の通信装置であってもよいし、当該通信装置とのインターフェースであってもよい。
【００３２】
前述のように、アプリケーション操作データは、少なくとも、アプリケーションに対する操作入力データと当該操作入力データをアプリケーションに適用する時間を示す時間データとのデータセットを含み、さらに乱数シードなどの付加的なデータを含み得る。
【００３３】
ここで、時間データは、アプリケーション操作データを例えば単位時間毎に生成する場合には、所定のタイミング（例えばアプリケーションの実行開始）を基準とした経過時間をこの単位時間で量子化した値であり得る。具体的には、コンテンツが動画像を含む場合には、フレーム間隔を単位時間とみなすことができる。この例では、時間データは、対応する操作入力データが適用されるフレーム数を示していてもよい。
【００３４】
実行部２０２は、アプリケーションを実行する。具体的には、実行部２０２は、受信部２０１からアプリケーション操作データを受け取り、当該アプリケーション操作データに含まれる操作入力データを当該操作入力データに対応する時間データの示す時間にアプリケーションに適用する。アプリケーションは、適用された操作入力データに応じた実行結果を生成する。実行部２０２は、実行結果に含まれるコンテンツ（例えば動画像）を出力部２０３に送る。実行部２０２は、前述のプロセッサおよびメモリであり得る。
【００３５】
出力部２０３は、実行部２０２からコンテンツを受け取り、当該コンテンツを出力する。例えば、出力部２０３は、動画像、静止画像またはテキストを表示したり、音声または楽曲を出力したりする。出力部２０３は、前述の出力装置であってもよいし、当該出力装置とのインターフェースであってもよい。
【００３６】
入力部２０４は、ユーザ入力を受け取る。入力部２０４は、ユーザ入力を操作要求生成部２０５へと送る。具体的には、ユーザ入力は、アプリケーションを能動的に操作するためのものであり得る。例えば、アプリケーションがビデオゲームであるならば、ユーザ入力は、ゲーム中のオブジェクト（例えば、キャラクタ、アイテム、背景など）の選択、移動、アクション、状態変化などの操作を意味するものであり得る。入力部２０４は、前述の入力装置であってもよいし、当該入力装置とのインターフェースであってもよい。
【００３７】
操作要求生成部２０５は、入力部２０４からユーザ入力を受け取る。操作要求生成部２０５は、ユーザ入力に基づいて操作要求を生成する。操作要求生成部２０５は、この操作要求を送信部２０６へと送る。この操作要求を受信したデータ生成装置１００は、ユーザが意図した操作をアプリケーションに与えるための操作入力データを生成するように促される。操作要求生成部２０５は、前述のプロセッサおよびメモリであり得る。
【００３８】
送信部２０６は、操作要求生成部２０５から操作要求を受け取る。送信部２０６は、ネットワーク経由で、操作要求をデータ生成装置１００へ送信する。他にも、送信部２０６は、例えばプレイデータなどのアプリケーションの実行に関するデータを実行部２０２から受け取り、ネットワークを介して、当該データを図示されないＷｅｂサーバへ例えばプレイデータなどのアプリケーションの実行に関するデータを送信してもよい。また、送信部２０６は、データ生成装置１００にアプリケーション操作データの配信を促すために、当該アプリケーション操作データの配信要求を送信してもよい。この配信要求をトリガとして、当該配信要求の操作元であるアプリケーション実行装置２００へのアプリケーション操作データの配信が開始するようにしてもよい。送信部２０６は、前述の通信装置であってもよいし、当該通信装置とのインターフェースであってもよい。
【００３９】
ところで、受信部２０１または送信部２０６は、操作要求およびアプリケーション操作データのいずれにも該当しないがアプリケーションの実行に関するデータを受信または送信することがあり得る。具体的には、アプリケーションがビデオゲームである場合には、ゲーム画面生成に必要な画像データ、ＢＧＭ（Ｂａｃｋｇｒｏｕｎｄ  Ｍｕｓｉｃ）のためのサウンドデータ、キャラクタの音声のためのボイスデータなどのリソースデータおよび／またはアプリケーションのプログラムデータの一部または全部は、アプリケーション実行装置２００のローカルには保存されておらず、Ｗｅｂサーバからダウンロードする必要があるかもしれない。或いは、プレイヤキャラクタのレベル、スコア、クリアタイムなどのプレイデータをＷｅｂサーバにアップロードする必要があるかもしれない。
【００４０】
しかしながら、かかる通信処理がどのように行われるかは、ユーザ環境（例えば、アプリケーション実行装置２００の処理能力、通信速度など）に依存する。故に、アプリケーションの実行中にかかる通信処理を自由に行うと、アプリケーション操作データの適用タイミングが予定よりもわずかに遅れるなどして、複数のアプリケーション実行装置２００が互いに異なるアプリケーションの実行状態の下で同一のアプリケーション操作データをアプリケーションへそれぞれ適用するおそれがある。これにより、これらのアプリケーション実行装置２００におけるアプリケーション実行状態は全く異なるものへ遷移し、以後のコンテンツ体験の共有が破たんするおそれがある。
【００４１】
そこで、図９に例示されるように、別々のシーンを構成するフレーム（Ｆ）間のシーン切り替え時間を利用してコンテンツ体験の共有が破たんするのを回避してもよい。具体的には、受信部２０１および送信部２０６は、このシーン切り替え時間内に、操作要求とアプリケーション操作データとを除くアプリケーションの実行に関するデータを送受信する。これにより、各アプリケーション実行装置２００がアプリケーション操作データを適用するときのアプリケーションの実行状態は、かかるデータの送受信による影響を受けないので、前述の破たんを回避することができる。
【００４２】
また、異なるアプリケーション実行装置２００の間でアプリケーションの実行状態のずれが大きくなることもあり得る。この結果、あるユーザのアプリケーション実行装置２００におけるアプリケーションの実行状態が他のアプリケーション実行装置２００に比べて遅れ、当該ユーザが見当はずれな操作要求をしてしまうといった事態が生じるおそれがある。
【００４３】
そこで、アプリケーション実行装置２００は、アプリケーション操作データに含まれる操作入力データを、当該操作入力データに対応する時間データの示す時間においてアプリケーションに適用できなかったと考えられる場合には、可能ならば時間データの扱う単位時間よりも短い時間内に連続的に適用することで、遅れを一部または全部解消してもよい。
【００４４】
通信制御部２０７は、アプリケーション実行装置２００からＷｅｂサーバへの通信（例えばプレイデータの送信）を制御する。具体的には、通信制御部２０７は、実行部２０２からシーン切り替えの開始が通知されると、送信部２０６に、データをＷｅｂサーバへ送信することを許可する。この結果、送信部２０６は、シーン切り替え時間内にＷｅｂサーバへデータを送信することができる。
【００４５】
なお、図示されないＷｅｂサーバにも同様の通信制御部が存在し得る。この通信制御部は、Ｗｅｂサーバからアプリケーション実行装置２００への通信（例えばリソースデータの送信）を制御する。具体的には、この通信制御部は、シーン切り替えの開始を何らかの手段で検知すると、Ｗｅｂサーバの備える送信部に、データをアプリケーション実行装置２００へ送信することを許可する。この結果、アプリケーション実行装置２００の受信部２０１は、シーン切り替え時間内にＷｅｂサーバからのデータを受信することができる。
【００４６】
以下、図５を用いて、アプリケーション実行装置２００の動作例を説明する。  
受信部２０１は、ネットワーク経由で、データ生成装置１００からアプリケーション操作データを受信する（ステップＳ４０１）。なお、ユーザによるアプリケーションへの能動的な操作を実現するためには、アプリケーション操作データの生成と当該アプリケーション操作データを用いたコンテンツ体験の提供とを並行して行う必要がある。この場合には、アプリケーション操作データは時間データと操作入力データとのデータセットが生成される度に送信されることになる。他方、一連のアプリケーション操作データの生成が終了した後に当該アプリケーション操作データを用いたコンテンツ体験の提供を行う場合には、一連のアプリケーション操作データがまとめて送信されてもよい。
【００４７】
実行部２０２は、ステップＳ４０１において受信されたアプリケーション操作データに含まれる時間データを参照し、当該時間データに対応する操作入力データを当該時間データの示す時間にアプリケーションに適用する（ステップＳ４０２）。出力部２０３は、実行結果に含まれるコンテンツを出力する。
【００４８】
入力部２０４がユーザ入力を受け取ると（ステップＳ４０３）、操作要求生成部２０５は当該ユーザ入力に基づいて操作要求を生成する（ステップＳ４０４）。送信部２０６は、ステップＳ４０４において生成された操作要求をデータ生成装置１００へ送信する（ステップＳ４０５）。
【００４９】
データ生成装置１００は、サーバであってもよいし、アプリケーション実行装置２００の例として列挙した種々の装置のいずれかであってもよい。
【００５０】
データ生成装置１００は、アプリケーション操作データの生成および通信制御などを行うプロセッサと、かかる処理を実現するために当該プロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータなどを格納するメモリとを含んでいる。
【００５１】
データ生成装置１００は、さらに、ネットワークに接続するための通信装置と、大容量のデータを蓄積するための補助記憶装置とを利用可能である。通信装置および補助記憶装置は、データ生成装置１００に内蔵されていてもよいし、データ生成装置１００に外付けされてもよい。
【００５２】
通信装置は、ネットワーク経由で、アプリケーション実行装置２００と通信をする。例えば、通信装置は、アプリケーション実行装置２００へアプリケーション操作データを配信したり、アプリケーション実行装置２００からアプリケーションに対する操作要求を受信したりする。
【００５３】
補助記憶装置は、例えば、データ生成装置１００によって生成されたアプリケーション操作データを蓄積する。補助記憶装置は、例えば、ＨＤＤ、ＳＳＤなどの不揮発性記憶媒体であることが好ましい。補助記憶装置は、データ生成装置１００にネットワーク経由で接続されたファイルサーバであり得る。
【００５４】
以下、図２を用いて、データ生成装置１００の詳細を説明する。データ生成装置１００は、受信部１０１と、生成部１０２と、記憶部１０４と、送信部１０３とを含む。
【００５５】
受信部１０１は、ネットワーク経由で、アプリケーション実行装置２００から操作要求を受信する。受信部２０１は、操作要求を生成部１０２に送る。受信部１０１は、前述の通信装置であってもよいし、当該通信装置とのインターフェースであってもよい。
【００５６】
生成部１０２は、受信部１０１から操作要求を受け取った場合には、当該操作要求に基づいてアプリケーション操作データを生成する。生成部１０２は、アプリケーション操作データを、記憶部１０４に保存するとともに、アプリケーション実行装置２００へ配信するために送信部１０３に送る。生成部１０２は、前述のプロセッサおよびメモリであり得る。
【００５７】
具体的には、操作要求は、アプリケーション操作データのうち操作入力データに反映され得る。また、この操作入力データに対応する時間データは、例えば、操作要求の受信タイミングに依存して決まる。
【００５８】
ある種のアプリケーション（例えばビデオゲーム）に関して、生成部１０２は、単位時間毎に必ずアプリケーション操作データを生成してもよい。すなわち、生成部１０２は、あるフレームについて操作要求を一切受信しなかったとしても、当該フレームを示す時間データに空の操作入力データを関連付けてアプリケーション操作データを生成してもよい。
【００５９】
他方、別の種のアプリケーション（例えばアンケート）に関して、生成部１０２は、アプリケーションの実行状態毎に、アプリケーション操作データを生成してもよい。一例として、ある種の動画像配信サービスにおいて、動画像の投稿者またはサービスの運営者は、図８に例示されるように当該動画像を視聴するユーザに向けてアンケートを行うことができる。このアンケート用のアプリケーションでは、投稿者または運営者によりアンケートの内容が設定されると、ユーザから回答の受け付けが開始し、一定時間後に回答が締め切られて集計結果が発表される。この場合には、ユーザから回答の受け付けの開始時に対応付けて投稿者または運営者によって設定されたアンケートの内容を表示するための操作入力データを生成し、回答が締め切り時に対応付けてそれまで受信したユーザの回答を集計する操作入力データを生成し、集計結果の発表時に対応付けて集計結果を表示するための操作入力データを生成してもよい。
【００６０】
複数のアプリケーション実行装置２００が操作要求を略同時に送信すると、操作要求の衝突が生じ得る。すなわち、あるアプリケーション実行装置２００からの操作要求が、他のアプリケーション実行装置２００からの操作要求と矛盾することがある。例えば、あるアプリケーション実行装置２００からの操作要求がキャラクタを右に動かすことを求める一方で、別のアプリケーション実行装置２００からの操作要求が当該キャラクタを左に動かすことを求めるかもしれない。生成部１０２は、かかる衝突を以下に説明するように取り扱うことができる。なお、かかる衝突の調停は、以下に説明するように操作要求のレベルで行われてもよいが、一旦はそれぞれの操作要求に基づいてアプリケーション操作データを生成してからアプリケーション操作データのレベルで行われてもよい。後者の場合には、データ生成装置１００ではなく、それぞれのアプリケーション実行装置２００が調停を行うことになる。また、いずれの場合にも、調停の実装はアプリケーションに依存する。
【００６１】
衝突を調停するために、それぞれの操作要求に優先度が割り当てられていてもよい。優先度は、例えば、ユーザ毎に予め定められていてもよい。すなわち、あるユーザの操作要求は操作入力データに反映されやすく、他のユーザの操作要求は操作入力データに反映されにくくてもよい。
【００６２】
例えば、図１のコンテンツ体験提供システムを利用して、あるユーザ（放送者）がゲームをリアルタイムにプレイする映像を他のユーザ（視聴者）が視聴するというユースケースが想定される。この場合に、放送者からの操作要求の優先度を高く、視聴者からの操作要求の優先度を低く設定してもよい。このように操作要求の優先度をデザインすれば、放送者が基本的なゲーム操作を行い、視聴者が干渉（手助けであってもよしい、妨害であってもよい）のための補助的なゲーム操作を行うことで、放送者および視聴者の双方がゲームの展開に関与できる新たなゲーム体験を提供することができる。
【００６３】
操作要求に優先度が割り当てられていれば、生成部１０２は、操作要求および当該操作要求に割り当てられた優先度に基づいて操作入力データを生成できる。例えば、生成部１０２は、最も高い優先度を割り当てられた操作要求を操作入力データに反映させてもよいし、割り当てられた優先度が高いほど当選確率が高くなるように抽選を行い、当選した操作要求を操作入力データに反映させてもよい。
【００６４】
或いは、衝突を調停するために、生成部１０２は、多数決方式で、操作入力データに反映する操作要求を決定してもよい。すなわち、生成部１０２は、受信数の最も多い操作要求を操作入力データに反映させてもよい。或いは、生成部１０２は、前述の優先度を組み合わせて、受信した操作要求のうち対応する優先度の総和の最も高いものを操作入力データに反映させてもよい。
【００６５】
図７に、パズルゲーム用のアプリケーションによって生成される表示データが例示される。このパズルゲームは、一枚絵を分割したｎ×ｍ−１個のブロックがｎ×ｍブロック分のスペースに元の絵とは異なる配列で敷き詰められた状態から、１ブロック分の空所を利用してブロックを上下左右に移動させることで元の絵の完成を目指す、いわゆるスライディングブロックパズルである。図１のコンテンツ体験提供システムを利用してこのパズルゲームを実行すれば、空所の周囲ブロック（上下左右の隣接ブロック）のいずれをスライドさせるかを、例えばユーザの多数決で決定することができるようになる。
【００６６】
ボードゲーム、カードゲームなど複数のプレイヤ間の競争を楽しむアプリケーションでは、ユーザをグループ化し、各グループがそれぞれプレイヤの１人を操作できるようにしてもよい。この場合に、グループ毎に視点を異ならせ、他のグループのプレイヤの状態（例えば、体力、手札など）を知られないようにしてもよい。
【００６７】
或いは、例えば、ビデオゲームのマルチプレイのように、ユーザ毎に操作可能な対象が完全に異なっていてもよい。ここで、対象とは、アプリケーションによって扱われるオブジェクトなどを意味する。この場合には、操作要求の衝突は生じない。
【００６８】
送信部１０３は、生成部１０２からアプリケーション操作データを受け取る。送信部１０３は、ネットワーク経由で、アプリケーション操作データをアプリケーション実行装置２００へ送信する。或いは、送信部１０３は、記憶部１０４に蓄積されているアプリケーション操作データを読み出し、ネットワーク経由でアプリケーション実行装置２００へ送信してもよい。送信部１０３は、前述の通信装置であってもよいし、当該通信装置とのインターフェースであってもよい。
【００６９】
記憶部１０４は、生成部１０２によって生成されたアプリケーション操作データを格納する。前述のように、アプリケーション操作データは、アプリケーションの実行開始（初期状態）から、当該アプリケーションに適用された全ての操作入力データとそれを適用した時間を示す時間データとを含む。故に、アプリケーション操作データを保存しておけば、将来の任意の時点において、同一のコンテンツを再現することができる。記憶部１０４は、前述の補助記憶装置であってもよいし、当該補助記憶装置とのインターフェースであってもよい。
【００７０】
以下、図４を用いて、データ生成装置１００の動作例を説明する。  
まず、生成部１０２は、時間（例えばフレーム数）を表す変数ｔを初期化する（ステップＳ３０１）。受信部１０１が、ｔに対応する操作入力データを生成するための操作要求を、いずれかのアプリケーション実行装置２００から受信すると処理はステップＳ３０３へと進み、いずれのアプリケーション実行装置２００からも受信しなければ処理はステップＳ３０４へと進む（ステップＳ３０２）。なお、ステップＳ３０２は、後述するステップＳ３０７におけるｔの増分に相当する実時間（例えばフレーム間隔）における受信部１０１の受信結果に基づいて判定されてよい。
【００７１】
ステップＳ３０３において、生成部１０２は受信された操作要求に基づいてｔに対応する操作入力データを生成し、処理はステップＳ３０５へと進む。操作要求に衝突が生じていない場合には、生成部１０２は操作要求をそのまま操作入力データに反映してもよい。操作要求に衝突が生じている場合には、生成部１０２は、前述の優先度、多数決方式などを利用して、操作入力データを生成してもよい。なお、衝突の調停は、アプリケーション操作データのレベルで行われてもよい。この場合に、生成部１０２は調停を行わない。
【００７２】
他方、ステップＳ３０４において、生成部１０２は空の操作入力データを生成し、処理はステップＳ３０５へと進む。このように空の操作入力データを生成すれば、全てのｔについて対応する操作入力データがあることを保証することができる。ただし、アプリケーションの仕様次第でステップＳ３０４は省略可能である。この場合には、ステップＳ３０２からステップＳ３０４への遷移は、ステップＳ３０２からステップＳ３０７への遷移に置き換えればよい。
【００７３】
ステップＳ３０５において、生成部１０２は、ｔの現在値を示す時間データと、ステップＳ３０３またはステップＳ３０４において生成した操作入力データとを含むアプリケーション操作データを生成する。なお、ステップＳ３０５の前に、操作入力データを加工（変換、削減または生成）するステップが挿入されてよい。このステップでは、例えば、操作要求の数が多すぎる場合に、操作要求に割り当てられた優先度に応じて、操作入力データを削減してもよい。
【００７４】
送信部１０３は、ステップＳ３０５において生成されたアプリケーション操作データをアプリケーション実行装置２００へ送信する（ステップＳ３０６）。アプリケーション操作データは、別途、記憶部１０４に保存され得る。最後に生成部１０２がｔを１インクリメントし、処理はステップＳ３０２へと戻る。
【００７５】
以上説明したように、第１の実施形態に係るコンテンツ体験提供システムは、アプリケーションに対する操作入力データと当該操作入力データをアプリケーションに適用する時間を示す時間データとを含むアプリケーション操作データを任意の数（１つ以上）のアプリケーション実行装置へ配信する。アプリケーション実行装置は、それぞれ、アプリケーション操作データに含まれる操作入力データを当該操作入力データに対応する時間データの示す時間にアプリケーションに適用する。故に、このコンテンツ体験提供システムによれば、ユーザの数に関わらず全ユーザが同じコンテンツを体験することができる。すなわち、ユーザ数がスケーラブルである。
【００７６】
また、アプリケーション実行装置は、ユーザ入力に基づいてアプリケーションに対する操作要求を生成し、データ生成装置へ送信する。データ生成装置は、操作要求に基づいて操作入力データを生成する。故に、このコンテンツ体験提供システムによれば、ユーザはコンテンツの展開に能動的に関与することができる。
【００７７】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【００７８】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【００７９】
上記各実施形態の処理の少なくとも一部は、汎用のコンピュータを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【００８０】
１００・・・データ生成装置
１０１，２０１・・・受信部
１０２・・・生成部
１０３，２０６・・・送信部
１０４・・・記憶部
２００・・・アプリケーション実行装置
２０２・・・実行部
２０３・・・出力部
２０４・・・入力部
２０５・・・操作要求生成部
２０７・・・通信制御部
【図１】
2018200675.tif 000003
【図２】
2018200675.tif 000004
【図３】
2018200675.tif 000005
【図４】
2018200675.tif 000006
【図５】
2018200675.tif 000007
【図６】
2018200675.tif 000008
【図７】
2018200675.tif 000009
【図８】
2018200675.tif 000010
【図９】
2018200675.tif 000011