(第1実施形態)
以下、動画配信システムの第1実施形態について説明する。
図1に示すように、動画配信システム11は、ユーザ装置12とサーバ13とを備える。ユーザ装置12には、動画を視聴及び配信するための動画アプリケーションプログラムがインストールされている。ユーザ装置12は、動画アプリケーションプログラムを実行することにより、他のユーザ装置12との間でサーバ13及びネットワーク14を介してデータを送受信し、動画の配信及び動画の表示を行う。以下、動画を配信するユーザを「配信ユーザ」、配信ユーザによって配信された動画を視聴するユーザを「視聴ユーザ」といい、これらを区別しない場合には単に「ユーザ」という。
ユーザ装置12は、スマートフォン(多機能電話端末)、タブレット端末、パーソナルコンピュータ、コンソールゲーム機、ヘッドマウントディスプレイ等のウェアラブルコンピュータ、及びこれらの装置以外の動画を再生可能とする情報処理装置である。
ユーザ装置12は、コンピュータプロセッサ20、メモリ21、ストレージ22(記憶媒体)、通信インターフェース(I/F)23を備える。コンピュータプロセッサ20は、ストレージ22又はそれ以外のストレージからオペレーティングシステムやその他のプログラムをメモリ21にロードし、メモリ21から取り出した命令を実行する演算装置である。コンピュータプロセッサ20は、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、NPU(Neural network Processing Unit)等の1乃至複数の演算回路である。通信I/F23は、ネットワーク14を介して、サーバ13及び他のユーザ装置12とデータを送受信する。ネットワーク14は、ローカルエリアネットワーク、インターネット等、各種のネットワークを含む。また、通信I/F23は、他の外部機器との間で近距離無線通信又は有線での通信を行う。通信I/F23は、ハードウェア、ソフトウェア、又はこれらの組み合わせとして実装される。
メモリ21は、コンピュータプロセッサ20が直接的に読み出し及び書き込み可能な主記憶装置(記録媒体)であり、半導体メモリ等から構成される。ストレージ22は、補助記憶装置(記録媒体)であり、例えば、磁気ディスク、光ディスク、半導体メモリ等の記憶媒体である。ストレージ22は、複数のストレージを組み合わせて用いることもできる。ストレージ22には、動画アプリケーションプログラム220、アバターオブジェクトを描画するためのアバターデータ221、オブジェクトデータ222が格納されている。
動画アプリケーションプログラム220は、サーバ13から適宜取得される更新データによって更新される。ユーザの指示に応じて動画アプリケーションプログラム220が実行されることにより、ユーザ自身が動画を配信する配信モードと、他の配信ユーザが配信する動画を視聴する視聴モードとに切り替えられる。動画アプリケーションプログラム220を実行することにより表示される画面には、配信モードと視聴モードとを切り替えるボタンが画面に表示される。
アバターデータ221は、アバターオブジェクトを描画するための3次元モデルデータである。ユーザ装置12は、動画アプリケーションプログラム220を起動した場合等、アバターデータ221をサーバ13から所定のタイミングで取得する。アバターデータ221は、アバターオブジェクト本体を描画するためのデータ、アバターオブジェクト本体に適用されるテクスチャデータ等を含んでいる。アバターオブジェクト本体を描画するためのデータは特に限定されないが、アバターオブジェクトの動作を表現するための骨格データ(ボーン)、肌等を表現するポリゴンデータ等により構成される。アバターデータ221には、複数のアバターオブジェクト本体のデータを含んでいる。テクスチャデータには、アバターオブジェクトに対して適用が可能である複数のパーツデータが含まれている。例えば「目」、「眉」、「耳」、「服」等のカテゴリ毎に複数のパーツデータが準備されている。ユーザは、複数のアバターオブジェクトの中から一つのアバターオブジェクトを選択する。また、パーツデータを選択し、アバターオブジェクト本体に適用して、ユーザ独自のアバターオブジェクトを作成する。ユーザによって選択されたアバターオブジェクト本体とパーツデータとの組み合わせは、ストレージ22に記録される。
オブジェクトデータ222は、仮想空間にレンダリングされるオブジェクトであって、アバターオブジェクト以外のオブジェクトに関する情報である。オブジェクトデータ222は、所定のタイミングでサーバ13から取得される。オブジェクトデータ222に対応するオブジェクトは、視聴ユーザから贈られるギフトオブジェクト、ゲーム実行中に表示されるオブジェクトを含む。ギフトオブジェクトの態様は特に限定されないが、例えば、アバターオブジェクトが装着可能である装着オブジェクト、仮想空間内に一定期間表示される通常オブジェクト、花火や文字等のエフェクトオブジェクトであってもよい。
これらのアバターオブジェクトやその他のオブジェクトは、物理的挙動を行うオブジェクトであってもよい。具体的には、オブジェクトは、重力による落下、力の付与による運動等といった物理的挙動をシミュレーションするものであってもよい。物理挙動オブジェクトには、物理的挙動をシミュレーションするためのコンポーネント(プログラム)が、実行可能に関連付けられている。
また、ユーザ装置12は、センサユニット24、スピーカ25、マイク26、操作部27、ディスプレイ28を備える。センサユニット24、スピーカ25、マイク26、操作部27及びディスプレイ28の少なくとも一つは、コンピュータプロセッサ20と同じ装置として設けられていてもよく、コンピュータプロセッサ20を備える装置に接続するかたちで設けられていてもよい。
センサユニット24は、ユーザの表情の変化を示すフェイスモーション、及びセンサユニット24に対するユーザの身体の相対位置の変化を示すボディモーションを検出する1乃至複数のセンサである。フェイスモーションは、瞬きや口の開閉等の動きを含む。センサユニット24は、公知の物を使用することができるが、例えばユーザに向かって赤外線を出射する出射部及びユーザの顔等に反射した赤外線を検出する赤外線カメラと、ユーザの顔を撮影するカメラ及びカメラが撮影したデータを画像処理する画像処理部との少なくとも一方を有する。センサユニット24は、例えば検出を開始したときの初期状態からの表情の変化や、相対位置の変化を検出する。又は、センサユニット24は、加速度センサやジャイロセンサ等といった上記のセンサ以外のセンサをさらに含むものであってもよい。以下、フェイスモーションの検出データ及びボディモーションの検出データを「モーションデータ」という。
スピーカ25は、音声データを音声に変換して出力する。マイク26は、ユーザが発話した音声を入力し、音声データに変換する。操作部27は、ディスプレイ28と一体化されたタッチパネルや、ユーザ装置12の筐体等に設けられた操作ボタン、キーボード、マウス、コントローラ等である。ディスプレイ28は、コンピュータプロセッサ20の出力指示に応じて、各種画像を出力する。コントローラは操作部に対応する。
コンピュータプロセッサ20は、ストレージ22に記憶された動画アプリケーションプログラム220を実行することにより、アプリケーション管理部201及び表示制御部202として機能する。アプリケーション管理部201は、動画アプリケーションプログラムを管理する。アプリケーション管理部201は、操作部27を通じて入力されたユーザの要求又はサーバ13からの要求等を受付け、それらの要求の内容に応じて、表示制御部202へ要求を出力する。また、アプリケーション管理部201は、センサユニット24からモーションデータを取得し表示制御部202に出力すること、表示制御部202からの要求をサーバ13へ送信すること、サーバ13から受信した各種データをストレージ22に記録等を行う。
また、アプリケーション管理部201は、配信モードにおいて、配信ユーザの操作に基づきゲームを実行する。本実施形態では、動画アプリケーションプログラム220に、ゲーム制御プログラムが含まれ、配信ユーザの操作に基づいてゲーム制御プログラムが読み込まれ実行されることにより、ゲームが進行する。アプリケーション管理部201は、視聴ユーザが用いるユーザ装置にゲーム動画を表示するために必要なデータをサーバ13に送信する。また、アプリケーション管理部201は、ユーザ装置12が視聴モードである場合、ゲーム動画を表示するためのデータをサーバ13から受信する。また、アプリケーション管理部201は、視聴モードにおいて、視聴ユーザ用の応援コマンドをサーバ13に送信し、配信ユーザを応援する。なお、応援コマンドは、「特定情報」に対応する。
表示制御部202は、配信モード及び視聴モードにおいて、アバターデータ221にモーションデータを適用する。また、表示制御部202は、アバターオブジェクト、アバターオブジェクト以外のオブジェクトを表示する場合はそのオブジェクトを含めてレンダリングを行う。ここでいうレンダリングは、透視投影、隠面消去(ラスタ化)等の描画処理を含む。レンダリングは、これらのうち少なくとも一つの処理であってもよい。また、上記の処理に加えて、シェーディング、テクスチャマッピング等の処理を含んでいてもよい。また、表示制御部202は、レンダリングされた画像を用いてアニメーションを生成する。さらに、表示制御部202は、アニメーションと、視聴ユーザのユーザ装置12から送信された投稿メッセージ又はサーバ13から送信された通知、操作ボタン等のGUI(Graphical User Interface)パーツ等とを合成した(又は重畳した)動画データをディスプレイ28に出力する。また、表示制御部202は、サーバ13を介して受信したゲーム動画を表示するためのデータに基づいて、ゲーム動画をディスプレイ28に表示する。
ユーザ装置12は、外部機器である出力装置42と通信を行う。出力装置42は、ユーザに触感を与える装置である。出力装置42は、例えば振動、圧力等によりユーザの作用部位に作用する。出力装置42は、ユーザ装置12から駆動命令を受信する。ユーザ装置12は、配信モードにおいてのみ駆動命令を送信することができる。出力装置42へ出力される駆動命令は、駆動信号(駆動情報)に対応する。
出力装置42は、ユーザの身体に作用する作用部位を左側と右側とで変更できる装置、触感を与える装置を組み合わせ、それらを選択的に作用させるものが好ましい。例えば特願2019‐126624号に記載された触覚レンダリングデバイスを用いることができる。この触覚レンダリングデバイスは、1対のアクチュエータと作用部とを備え、アクチュエータは作用部を所定の駆動波形で動作させる。作用部は、ユーザの身体の少なくとも2つの部位に作用する。例えば作用部は、ユーザの首に掛けられる紐状体(柔軟体)であり、その両端においてそれぞれ異なるアクチュエータに連結されている。アクチュエータは、柔軟体を巻き取ったり緩めたりすることにより振動させる。アクチュエータの駆動波形の振幅、位相、振動数等のパラメータの値の少なくとも一つを変更することにより、作用部は、ユーザの首の左側の作用部位又は右側の作用部位に対する作用を異ならせる。このように左側の作用位置及び右側の作用位置のいずれかに対する作用を異ならせることにより、ユーザは触感を通じて、出力装置42が示す方向を把握することができる。
次にサーバ13について説明する。サーバ13は、動画を配信するためのサービスを提供する1乃至複数のサービス提供者等が用いるものである。サーバ13は、コンピュータプロセッサ30と、メモリ33と、ストレージ35と、通信I/F34とを備えている。コンピュータプロセッサ30は、ユーザ装置12のコンピュータプロセッサ20と同様な構成である。コンピュータプロセッサ30は、複数の演算回路を組み合わせて構成されていてもよい。また、メモリ33、ストレージ35、通信I/F34は、ユーザ装置12と同様な構成である。サーバ13は複数の装置から構成されていてもよく、コンピュータプロセッサ30、メモリ33、ストレージ35、通信I/F34はそれらの装置に分散されて設けられていてもよい。
コンピュータプロセッサ30は、配信管理プログラムを実行することにより配信管理部301として機能する。配信管理部301は、ユーザ装置12から受信した各種データをストレージ35に記憶する。さらに、配信管理部301は、ユーザ装置12から要求されたデータをストレージ35等から取得してユーザ装置12に送信する。具体的には、配信管理部301は、ユーザ装置12からの要求に応じて、配信中の動画のリストを送信する。配信管理部301は、リストの中からリクエストされた動画の識別情報をユーザ装置12から受信すると、リクエストされた動画の配信ユーザが用いるユーザ装置12から送信される各種のデータを、リクエストを行ったユーザ装置12に送信する。
また、配信管理部301は、配信ユーザがゲーム動画の配信を行っている場合に、配信モードのユーザ装置12からゲームを進行させるためのゲーム実行コマンドを受信したり、視聴モードのユーザ装置12から応援コマンドを受信したりする。配信管理部301は、受信したゲーム実行コマンドを、視聴モードのユーザ装置12に送信し、応援コマンドを配信モードのユーザ装置12に送信する。
また、配信管理部301は、配信中の動画に対して視聴ユーザから投稿された投稿メッセージ等を受信する。さらに配信管理部301は、受信した投稿メッセージを、配信ユーザのユーザ装置12及び動画を視聴している全ての視聴ユーザのユーザ装置12に送信する。投稿メッセージには、メッセージの内容の他、視聴ユーザの識別情報(ユーザのアカウント名等)等が含まれる。また、配信管理部301は、視聴ユーザが動画の視聴を開始したときに、例えば「ユーザAさん入室しました」の通知メッセージを配信ユーザのユーザ装置12及び視聴ユーザのユーザ装置12に送信する。ユーザ装置12は、受信した通知メッセージを投稿メッセージの表示欄に表示する。
配信管理部301は、動画を視聴する視聴ユーザが用いるユーザ装置12から、視聴中の動画へのオブジェクトの表示要求を受信する。表示要求が行われるオブジェクトは仮想空間内に表示されるオブジェクトであって、視聴ユーザから、ギフトオブジェクトのほか、動画を好評価する評価オブジェクト等を含む。配信管理部301は、視聴ユーザのユーザ装置12から受信したギフトオブジェクトの表示要求を、ギフトオブジェクトの識別情報とともに配信ユーザのユーザ装置12及び視聴ユーザのユーザ装置12に送信する。ユーザ装置12は、受信したギフトオブジェクトに関する通知メッセージを投稿メッセージの表示欄に表示する。
また、配信管理部301は、ユーザの操作にしたがって、オブジェクトの購入処理を行う。購入処理には、動画アプリケーションプログラム内で利用可能であるコイン、ポイント、チケット等の対価(媒体)を支払って、オブジェクトを入手する購入が含まれる。配信管理部301は、購入されたオブジェクトを、ユーザによって保有されるものとしてユーザ装置12又はサーバ13に記録する。購入可能であるオブジェクトの売上は、例えば配信ユーザ及びサービス提供者に分配される。
次に、サーバ13のストレージ35に格納された各種のデータについて説明する。ストレージ35には、ユーザ管理情報350、アバターデータ351、オブジェクトデータ352、ゲーム制御データ353が格納されている。
ユーザ管理情報350は、動画アプリケーションプログラムを用いるユーザに関する情報である。アバターデータ351は、各ユーザに対応付けられたアバターオブジェクトを描画するためのデータであって、ユーザ装置12の要求に応じて、ユーザ装置12に送信される。オブジェクトデータ352は、ギフトオブジェクトやほかのオブジェクトを描画するためのデータであって、ユーザ装置12の要求に応じて、ユーザ装置12に送信される。
ゲーム制御データ353は、ゲームを進行するためのデータや、ゲームを応援するためのデータ等を含む各種のデータである。ゲーム制御データ353には、ゲームの更新データや、新しく追加されたゲームのプログラム等が含まれる。配信管理部301は、必要に応じてユーザ装置12にゲーム制御データ353を送信する。また、ゲーム制御データ353は、ユーザに関連付けられたゲームの実行履歴を含んでいてもよい。
次に図2を参照して、配信モード中の応援について説明する。なお、アバターオブジェクトを動作させるためのモーションデータ、音声データ等の送受信についてはここでは省略する。
配信ユーザ101は、出力装置42を装着している。図2の例では、出力装置42は、作用部421の両側にアクチュエータ42L,42Rが設けられた触覚レンダリングデバイスであり、アクチュエータ42L,42Rは、所定の駆動波形で作用部421を駆動する。この駆動波形は、配信ユーザ101が用いるユーザ装置12(以下、配信ユーザ装置12Aという)によって制御される。これにより、配信ユーザ101の首又は肩のうち左側の作用部位101Lと、右側の作用部位101Rとに触感を与えることができる。配信ユーザ101は、配信ユーザ装置12Aを操作して配信モードとする。また、配信ユーザ装置12Aは、配信ユーザ101の操作に基づいてゲームを開始し、ゲーム配信画面を表示する。
また、配信ユーザ装置12Aは、ゲーム実行コマンド110をサーバ13に送信する。サーバ13は、ゲーム実行コマンド110を受信すると、視聴ユーザ102が用いるユーザ装置12(以下、視聴ユーザ装置12Bという)にゲーム実行コマンド110を送信する。視聴ユーザ装置12Bは、動画アプリケーションプログラム220を実行し、ゲーム実行コマンド110に基づき自身の端末でゲームを進行させ、ゲーム視聴画面を表示する。これにより、視聴ユーザ装置12Bのディスプレイ28には、配信ユーザ101がプレイするゲームが表示されたゲーム視聴画面が表示される。
視聴ユーザは、ゲーム視聴画面を視聴しながら、視聴ユーザ装置12B又は視聴ユーザ装置12Bに接続されたコントローラ等を操作して配信ユーザ101を応援する。具体的には、視聴ユーザ装置12Bは、視聴ユーザ102の応援を行うためのユーザ操作を受け付ける。ゲーム動画の場面には、1乃至複数の応援コマンドが関連付けられており、視聴ユーザ装置12Bは、ゲーム動画の場面及び視聴ユーザ102の操作に応じた応援コマンドを特定する。
例えば、プレイヤキャラクタと敵キャラクタとの対戦場面においては、応援を行うためのユーザ操作に応援コマンドが関連付けられている。例えば、応援を行うためのユーザ操作は、タッチパネルディスプレイへのタッチ操作である。また、別の場面においては、応援を行うための複数のユーザ操作の各々に応援コマンドが関連付けられている。例えば、タッチパネルディスプレイへのタップ操作が行われた場合、視聴ユーザ装置12Bはタップ操作に関連付けられた「応援コマンドA」を特定し、タッチパネルディスプレイへのスライド操作が行われた場合、視聴ユーザ装置12Bはスライド操作に関連付けられた「応援コマンドB」を特定する。
また、視聴ユーザ装置12Bが、加速度センサやジャイロセンサ等のセンサ(慣性センサ)を備えている場合には、視聴ユーザ装置12Bの動きを検知して、振動数や速さに応じた応援コマンドを特定するようにしてもよい。さらに、視聴ユーザ装置12Bが、加速度センサやジャイロセンサ等のセンサ(慣性センサ)を備えた操作部と通信可能である場合には、操作部が振られたことを検知し、振動数や速さに応じた応援コマンドを特定するようにしてもよい。また、視聴ユーザ装置12Bは、視聴ユーザ102が発した音声がマイク26に入力された場合に、音声信号をAD変換して音声データを生成し、音量に応じた応援コマンドを特定するようにしてもよい。例えば敵キャラクタの位置を知らせる応援コマンドが生成される場合、音量が大きいとき(音量が所定の閾値以上のとき)には「近い」を示す応援コマンドを特定し、音量が小さいとき(音量が所定の閾値未満のとき)には「遠い」を示す応援コマンドを特定する。さらに、視聴ユーザ装置12Bは、投稿メッセージに含まれるキーワードに基づいて、応援コマンドを特定するようにしてもよい。キーワードは例えば「右」、「左」、「近い」、「遠い」等である。投稿メッセージに「右」が含まれる場合は、「右」を示す応援コマンドを特定し、投稿メッセージに「左」が含まれる場合は、「左」を示す応援コマンドを特定する。また、投稿メッセージに「近い」が含まれる場合は、「近い」を示す応援コマンドを特定し、投稿メッセージに「遠い」が含まれる場合は、「遠い」を示す応援コマンドを特定する。
なお、視聴ユーザ装置12Bは、応援コマンドが関連付けられていないゲームの場面において、視聴ユーザ102の入力操作を検知した場合には、応援コマンドをサーバ13に送信しない。又は、サーバ13が、配信ユーザ装置12Aから送信されたゲーム実行コマンドに基づき配信ユーザ装置12Aで実行中のゲームの場面を特定し、応援コマンドが関連付けられていないゲーム場面において応援コマンドを受信した場合には、配信ユーザ装置12Aにその応援コマンドを送信しないようにしてもよい。
視聴ユーザ装置12Bは、特定した応援コマンド111をサーバ13に送信する。サーバ13は、応援コマンド111を受信すると、配信ユーザ装置12A及び全ての視聴ユーザ装置12Bに応援コマンド111又は応援コマンド111に応じた情報を送信する。なお、応援コマンド111を送信した視聴ユーザ装置12Bへの、当該応援コマンド111の送信を省略してもよい。
サーバ13は、応援コマンド111の種類に応じて応援コマンド111の選択を行う場合がある。そして、選択した応援コマンド111を、配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する場合がある。例えば、複数の視聴ユーザ102が一定期間内に異なる応援コマンド111を送信する可能性がある場合、それらの応援コマンドの中から一つを選択して、配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。
応援コマンド111の選択処理は特に限定されないが、例えば以下の態様がある。
・応援コマンド111毎にコマンド数を累計し、一定期間内の累計数が大きい方の応援コマンド111を配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。
・応援コマンド111の数を累計し、累計数が一定数に到達した場合に、その応援コマンド111を配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。
・受信した応援コマンド111の中から1つをランダムに選択し、選択した応援コマンド111を配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。
・応援コマンド111の送信元のユーザの属性に応じて優先度を付与し、優先度の最も高い応援コマンド111を配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。
・応援コマンド111に関連付けられた優先度のうち、最も高い優先度が関連付けられた応援コマンド111を配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。
配信ユーザ装置12Aは、応援コマンド111又は応援コマンド111に応じた情報を受信し、受信した情報に応じて出力装置42への駆動命令を生成する。具体的には、応援コマンド111に基づいて、各アクチュエータ42L,42Rの振幅、周波数、位相等の駆動波形に関するパラメータの値を決定する。配信ユーザ装置12Aは、生成した駆動命令を、配信ユーザ101が装着する出力装置42に送信する。つまり、視聴ユーザ102から送信された応援は、出力装置42を介して配信ユーザ101に触感として伝えられる。また、応援コマンド111の種類に応じて、異なる触感が配信ユーザ101に付与される。
例えば、サーバ13から送信された応援コマンド111が、配信ユーザ101に方向を提示するものである場合、配信ユーザ装置12Aは、方向を提示するための駆動波形での駆動命令を出力装置42に送信する。例えば、サーバ13から受信した応援コマンド111が「左」を示すコマンドであれば、出力装置42は、左側のアクチュエータ42Lの駆動波形の振幅を、アクチュエータ42Rの駆動波形の振幅よりも大きくして、配信ユーザ101の作用部位101Lに対する作用が強くなるように駆動する。このとき、アクチュエータ42Rは振動しなくてもよい。又は、出力装置42は、左側のアクチュエータ42Lの駆動波形の位相を、右側のアクチュエータ42Rの駆動波形の位相よりも早くして、左側の作用部位101Lに先に作用するように駆動する。又は、出力装置42は、左側のアクチュエータ42Lの駆動波形の周波数を、アクチュエータ42Rの駆動波形の周波数よりも高くして、配信ユーザ101の作用部位101Lに高い周波数で作用部421が作用するようにする。このように周波数に差を設けると、作用部位101Lから作用部位101Rにかけてうねる感覚を配信ユーザ101に与えることができる。このように駆動波形のパラメータの値をアクチュエータ42L,42Rの間で異ならせることにより、配信ユーザ101に、提示された方向が左方向であることを把握させることができる。
また、応援コマンド111が、対象位置との距離を提示するものである場合、配信ユーザ装置12Aは、距離を提示するための駆動波形での駆動命令を出力装置42に送信する。例えば、サーバ13から受信した応援コマンド111が「近い」を示すコマンドであれば、出力装置42は、アクチュエータ42L,42Rの駆動波形の振幅を大きくし、配信ユーザ101の作用部位101L,101Rに対する作用が強くなるように駆動する。また、サーバ13から受信した応援コマンド111が「遠い」を示すコマンドであれば、出力装置42は、アクチュエータ42L,42Rの駆動波形の振幅を小さくし、配信ユーザ101の作用部位101L,101Rに対する作用が弱くなるように駆動する。
また、応援コマンド111が方向を提示するものではない場合には、出力装置42は、作用部位101L,101Rの間の中央の作用部位に対する作用が強くなるように動作したり、各作用部位101L,101Rに対する作用が均等になるように動作したりしてもよい。また、サーバ13の集計結果に応じた情報に基づく応援コマンド111の数や、応援コマンド111の種類に応じて、アクチュエータ42L,42Rの駆動波形の振幅、振動数及び位相等を変更するようにしてもよい。これにより、配信ユーザ101に、視聴ユーザ102から応援コマンド111が送信されたことを把握させることができる。
また、配信ユーザ装置12Aは、応援コマンド111の種類に応じて、応援コマンド111をゲームに反映する。なお、ゲームに反映される応援コマンド111の中には、出力装置42を動作させ且つゲームに反映されるもの、出力装置42を動作させずにゲームに反映されるもの、出力装置42を動作させゲームに反映されないものが含まれうる。
応援コマンド111をゲームに反映する一態様として、配信ユーザ装置12Aは、応援コマンド111に基づき配信ユーザ101に対応するプレイヤキャラクタのゲーム内のパラメータの値を変更してもよい。このパラメータは、プレイヤキャラクタに関連付けられたものであればよく、HP、MP、攻撃力、防御力、素早さ、能力(アビリティ)、生命力、経験値、レベル、属性等である。応援コマンド111の種類に応じて、プレイヤキャラクタのパラメータの値をゲーム内で有利となるように変更してもよいし、不利になるように変更してもよい。このようにパラメータの値が変更される場合に、配信ユーザ装置12Aは出力装置42を動作させるようにしてもよい。このように応援コマンド111が反映されるゲームの一例として、例えば、自分の領地に侵入してくる敵を倒すタワーディフェンスゲームが挙げられる。タワーディフェンスゲームの一例では、応援コマンドによって武器の弾丸をロード(装填)させる。具体的には、初期状態において、武器には弾丸が装填されておらず、「relord」等の応援コマンド111の数に応じて弾丸がロードされる。つまり、応援コマンド111が無い場合には、ミッションをクリアできない。また、このゲームにおいて、「Charge」等の応援コマンド111により、弾丸を大きくする等、銃撃による攻撃力を高めてもよい。
応援コマンド111をゲームに反映する他の態様として、配信ユーザ装置12Aは、配信ユーザ101に対応するプレイヤキャラクタ以外のキャラクタのゲーム内のパラメータを変更してもよい。例えば、プレイヤキャラクタと対戦する敵キャラクタに関連付けられたパラメータの値を、敵キャラクタがゲーム内で不利になるように変更してもよい。
また、配信ユーザ装置12Aは、応援コマンド111の数又は内容に応じて、ゲーム終了時にプレイヤキャラクタに付与されるポイントが、ゲーム内で有利となるように変更してもよいし、不利になるように変更してもよい。例えば、プレイヤキャラクタを支援するような内容の応援コマンドが一定数を超えた場合、支援行為が行われたとして、プレイヤキャラクタに付与されるポイントを減少させる。例えばポイントを所定数減じたり、ポイントに「1」未満の所定の係数を乗算する。また、プレイヤキャラクタと対戦する敵キャラクタを妨害することによりプレイヤキャラクタを応援するコマンドが一定数を超えた場合、プレイヤキャラクタに付与されるポイントを増加させる。例えばポイントを所定数増加させたり、ポイントに「1」を超える所定の係数を乗算したりする。
応援コマンド111をゲームに反映する他の態様として、配信ユーザ装置12Aは、配信ユーザ101にゲーム媒体を関連付けるようにしてもよい。ゲーム媒体は、ゲームに使用される電子データであればよく、この電子データは、ユーザによってゲーム内で取得、所有、使用、管理、交換、合成、強化、売却、廃棄、又は贈与等され得る。例えば、ゲーム媒体は、カード、アイテム、仮想通貨、チケット、キャラクタ、呪文、ジョブ等、任意の媒体を含む。ゲーム媒体の利用態様は本明細書で明示されるものに限られない。例えば、配信ユーザ装置12Aは、応援コマンド111に応じた武器アイテムをプレイヤキャラクタに付与する。配信ユーザ装置12Aはゲーム媒体が付与される場合に、出力装置42を動作させるようにしてもよい。
応援コマンド111をゲームに反映する他の態様として、配信ユーザ装置12Aは、応援コマンド111(「slow」)に基づき、配信ユーザ101に対応するプレイヤキャラクタの動作態様、又は敵キャラクタの動作態様を、早くしたり遅くしたりしてもよい。
応援コマンド111をゲームに反映する他の態様として、配信ユーザ装置12Aは、応援コマンド111に基づきゲーム視聴画面又はゲーム配信画面の表示態様を変更するようにしてもよい。具体的には、応援コマンド111(「move」)に応じて、ゲーム視聴画面に表示される表示範囲を、上下方向、アバターオブジェクト121を基準とした360度の水平方向に沿って変更するようにしてもよい。このようにすると、視聴ユーザ102が敵等の対象物を探しやすくなる。
配信ユーザ装置12Aは、ゲーム配信画面を、配信ユーザ101が視認しにくい状態や、視認しやすい状態に調整してもよい。例えば、所定数の応援コマンド111が一定数に達した場合に、配信ユーザ装置12Aは、アバターオブジェクト121の前に(例えば半透明かつ板状の)オブジェクトを設置したり、オブジェクトを消失させたり、オブジェクトの透明度を変更したりしてもよい。又は、配信ユーザ装置12Aは、自身のディスプレイ28に表示される画像のコントラストや輝度等を調整したりする。また、配信ユーザ101を応援する視聴ユーザ102が、配信ユーザ101の対戦相手である他の配信ユーザ101のゲームの進行を妨害するための応援コマンド111を送信するようにしてもよい。妨害を行う応援コマンド111を受信した配信ユーザ装置12Aは、対戦相手である他の配信ユーザ101に対応するアバターオブジェクト121の前に上記のオブジェクトを配置し、他の配信ユーザ101のゲーム配信画面を視認しにくい状態としてもよい。さらに、配信ユーザ101を応援する視聴ユーザ102が用いる視聴ユーザ装置12Bが、配信ユーザ101の対戦相手である他の配信ユーザ101の出力装置42を動作させるための応援コマンド111を送信するようにしてもよい。このときの応援コマンド111も、対戦相手となる配信ユーザを妨害するために送信される。対戦相手である他の配信ユーザ101の出力装置42は、本来は他の配信ユーザ101を支援するように出力装置42を動作させるが、妨害する応援コマンド111を受信した場合に、本来の動作態様とは異なる動作態様で出力装置42を動作させる。又は配信ユーザ101を支援する本来の動作態様と妨害用の動作態様とを重ねるように出力装置42を動作させる。これにより、対戦相手である他の配信ユーザ101を支援する触感を、その配信ユーザ101が検知しにくくなる。
(動作)
図3を参照して、ゲーム動画の配信手順の一例について説明する。ここでは、アバターオブジェクトがゲームのプレイヤキャラクタとなるものについて説明する。配信ユーザ装置12Aは、配信モードを開始すると、モーションデータ及び音声データをサーバ13に送信する(ステップS11)。サーバ13は、モーションデータ及び音声データを、視聴ユーザ装置12Bに送信する(ステップS12)。配信ユーザ装置12A及び視聴ユーザ装置12Bは、モーションデータ及び音声データに基づき動画を出力する(ステップS13,ステップS14)。
配信ユーザ装置12Aは、動画の配信を行いつつ、ゲームを開始する(ステップS15)。配信ユーザ101によってゲームを進行させる操作が行われると、配信ユーザ装置12Aは、モーションデータ、及び音声データとともに、ゲーム実行コマンド110をサーバ13に送信する(ステップS16)。
サーバ13は、モーションデータ、音声データ及びゲーム実行コマンド110を視聴ユーザ装置12Bに送信する(ステップS17)。配信ユーザ装置12A及び視聴ユーザ装置12Bは、ゲーム動画を出力する(ステップS18,ステップS19)。ゲーム動画では、配信ユーザ装置12A及び視聴ユーザ装置12Bが、アバターデータ221にモーションデータを適用してアバターオブジェクトのアニメーションを生成するとともに、ゲーム実行コマンド110に基づいてゲームを実行する。また、音声データに基づいて、配信ユーザ101の音声を出力する。
視聴ユーザ装置12Bは、視聴ユーザ102の操作に基づき応援を受け付け(ステップS20)、応援コマンド111をサーバ13に送信する(ステップS21)。また、サーバ13は、図示しない他の視聴ユーザ装置12Bにも応援コマンド111を送信する。
配信ユーザ装置12Aは、応援コマンド111を受信すると、駆動命令を出力装置42に送信する(ステップS23)。また、配信ユーザ装置12Aは、必要に応じて応援コマンド111をゲームに反映する。出力装置42は、駆動命令に基づき動作する。配信ユーザ101は、出力装置42に付与された触感に応じて、発話したり動作したりするため、音声や動作は、音声及びアバターオブジェクトの動作としてゲーム動画に反映される。
次に、配信ユーザ装置12A又は視聴ユーザ装置12Bに表示されるゲーム動画の画面例について説明する。
図4に示すように、動画配信画面120には、アバターオブジェクト121が表示されている。アバターオブジェクト121は、配信ユーザ101の表情の変化に応じて、表情を変化させる。また、アバターオブジェクト121は、配信ユーザ101の配信ユーザ装置12Aに対する相対位置の変化に基づき移動する。
視聴ユーザ装置12Bに表示される動画視聴画面(図示略)には、動画に対する良い評価を行う評価ボタン、ギフトオブジェクトを動画に対して贈るためのギフトボタン等が表示されている。視聴ユーザがギフトボタンを操作し、サーバ13がギフトオブジェクトの表示要求を受け付けた場合等には、動画配信画面120及び動画視聴画面にはギフトオブジェクト122が表示される。
また、動画配信画面120には、動画を視聴中の視聴ユーザが投稿したメッセージ123が表示されている。また、動画配信画面120には、配信を開始又は停止するための配信ボタン124と、ゲームを開始するためのゲーム開始ボタン125が表示されている。ゲーム開始ボタン125が操作されると、配信ユーザ装置12Aのアプリケーション管理部201は、ゲームを開始する。
図5及び図6は、視聴ユーザの応援により配信ユーザがゲーム内で所定のアクションが可能となる態様を示す。図5は、視聴ユーザ装置12Bに表示されるゲーム視聴画面126の一例である。ゲーム視聴画面126には、アバターオブジェクト121が表示されている。つまり、ゲーム視聴画面126は、アバターオブジェクト121の視点以外の視点からみた画面である。ゲームは、シューティングゲームであって、配信ユーザ101は、アバターオブジェクト121が所持する武器127を操作して射撃を行うことができる。アバターオブジェクト121は、配信ユーザ101のモーションデータが適用されている。また、配信ユーザ101は、射撃のほかに、仮想空間内での移動、武器127等のアイテムの変更等を実行する操作を行うようにしてもよい。武器127には残弾数が設定されており、残弾数が最大値に到達すると、配信ユーザ101の操作に基づき射撃を行うことができる。視聴ユーザ102がゲーム視聴画面126のいずれかをタッチ操作すると、視聴ユーザ装置12Bはタッチ操作を受け付け、図5に示すゲーム視聴画面126に対応する場面に関連付けられた応援コマンド111(「relord」)をサーバ13に送信する。サーバ13は、応援コマンド111の数を累計する。サーバ13は、応援コマンド111又は応援コマンド111の累計数に応じた統計データを視聴ユーザ装置12Bに送信する。視聴ユーザ装置12Bは、応援コマンド111又は統計データに基づき、残弾数を、ゲーム視聴画面126にゲージ128として表示する。
図6は、配信ユーザ装置12Aに表示されるゲーム配信画面130である。ゲーム配信画面130は、ゲームのプレイヤキャラクタであるアバターオブジェクトの視点でレンダリングをしたものであり、仮想空間画像が表示されている。ゲーム配信画面130には、図5に示すゲージ128は表示されない。一方、残弾数が最大値に到達すると、配信ユーザ装置12Aは、サーバ13から残弾数が最大値に到達したことを示す応援コマンド111を受信する。配信ユーザ装置12Aは、応援コマンド111を受信すると出力装置42に駆動命令を出力して動作させる。このため、配信ユーザ101は、ゲーム配信画面130にゲージ128が表示されなくても、触感を通じて残弾数が最大値に到達したことを把握することができる。したがって、配信ユーザ101は、残弾数が最大値に達した直後に配信ユーザ装置12Aを操作して射撃を行うことができる。また、触感が付与されたとき、配信ユーザ101は、応援を受けたことへの返答として発話したり、自身が動くことによりアバターオブジェクト121に動作を行わせたりして、動画に配信ユーザ101の反応を反映することができる。
図7は、視聴ユーザ102が配信ユーザ101に方向を提示する態様を示す。この態様では、配信ユーザ101の複数の作用部位101L,101Rに対する出力装置42の作用を異ならせて、配信ユーザ101に方向を提示する。例えば、ゲーム視聴画面131には、アバターオブジェクト121の位置であるプレイヤ位置132と、敵の位置133とを含む俯瞰画像や地図が表示されている。視聴ユーザ102が、敵の位置133又はその付近をタッチ操作すると、視聴ユーザ装置12Bは、タッチ操作によって指示された位置を特定する。また、視聴ユーザ装置12Bは、タッチ操作の位置に応じて、ゲームの場面に関連付けられた応援コマンド111を送信する。例えば、画面左側がタップされた場合には「enemy pos(left)」を送信し、画面右側がタップされた場合には「enemy pos(right)」をサーバ13に送信する。サーバ13は、応援コマンド111を受信するたびに、その応援コマンド111を配信ユーザ装置12Aに送信する。又はサーバ13は、一定期間内に受信した応援コマンド111の数を、「enemy pos(left)」及び「enemy pos(right)」毎に累計する。そして、累計数が多い方の応援コマンドを配信ユーザ装置12Aに送信する。配信ユーザ装置12Aは、受信した応援コマンド111に応じて、方向を提示するために駆動波形のパラメータの値を決定して駆動命令を生成し、出力装置42に送信する。例えば、配信ユーザ装置12Aが「enemy pos(right)」の応援コマンド111を受信した場合には、出力装置42は、左の作用部位101Rに対する作用が強くなるように動作する。これにより、配信ユーザ101は敵の位置を把握することができる。
次に、本実施形態の効果について説明する。
(1)視聴ユーザ装置12Bから送信された応援コマンド111によって出力装置42が動作するため、視聴ユーザ102の応援を、触感として配信ユーザに伝えることができる。これにより、配信ユーザ101は、視聴ユーザ102から発信される情報に気付きやすくなるため、発話や動作等を通じて視聴ユーザ102に反応することができる。視聴ユーザ102は、配信ユーザ101の反応に基づいた動画をすぐに視聴できるため、動画がリアルタイムに配信されていることを理解することができる。これにより、応援を行うことに対する動機を高めることができるため、配信ユーザ101と視聴ユーザ102との間のコミュニケーションを活発化することができる。また、必ずしもゲーム配信画面に応援を表示しなくてもよいため、ゲーム配信画面に表示される情報量を低減することが可能となる。このようにゲーム配信画面に表示される情報量を低減すると、配信ユーザ101がゲームを進めやすくなる。
(2)配信ユーザ装置12Aは、応援コマンド111の集計に基づいて、出力装置42の駆動波形を調整する。このため、例えば配信ユーザ101は、応援コマンド111の送信数の多さ等、応援コマンド111の付加的な情報を、触感を通じて把握することができる。
(3)視聴ユーザ102が配信ユーザ101に提示する方向を、触感として配信ユーザ101に伝えることができるため、配信ユーザ101は、視聴ユーザ102から提示された方向に対し迅速に反応することができる。また、視聴ユーザ102は、配信ユーザ101の反応に基づいた動画をすぐに視聴できるため、配信ユーザ101と視聴ユーザ102との間のコミュニケーションを活発にすることができる。
(4)配信ユーザ101に関連付けられたパラメータの値を視聴ユーザ102の応援コマンド111によって変更するとともに、応援コマンド111に基づいて出力装置42を動作させるようにした。これにより、パラメータの値が変更されたことを、触感として配信ユーザ101に伝えることができる。
(5)敵キャラクタ等、配信ユーザ101に対応するキャラクタ以外のキャラクタに関連付けられたパラメータの値を視聴ユーザ102の応援コマンド111によって変更するとともに、応援コマンド111に基づいて出力装置42を動作させるようにした。これにより、パラメータの値が変更されたことを、触感として配信ユーザ101に伝えることができる。
(6)視聴ユーザ102の応援コマンド111によって配信ユーザにゲーム媒体が関連付けられるとともに、応援コマンド111に基づいて出力装置42を動作させるようにした。これにより、ゲーム媒体が関連付けられたことを、触感として配信ユーザに伝えることができる。
(7)視聴ユーザ102の応援コマンド111によってゲームの動画の表示態様を変更するとともに、応援コマンド111に基づいて出力装置42を動作させるようにした。これにより、画面の表示態様が変更されたことを、触感として配信ユーザに伝えることができる。
(第2実施形態)
次に、動画配信システムの第2実施形態について説明する。第1実施形態では、視聴ユーザからの応援のみに基づいて出力装置42を動作させる態様について説明した。本実施形態では、配信ユーザ装置12Aが、独自に出力装置42を動作させるとともに、応援に基づいて出力装置42を動作させる点で第1実施形態と異なっている。以下、第1実施形態と同様の部分については同一符号を付してその詳細な説明を省略する。
図8に示すように、配信ユーザ装置12Aは、ゲーム実行中に、ユーザに対して提示すべき対象位置141を特定し、位置情報を生成する。対象位置141の位置情報には、基準位置140からの相対距離Lと相対方向θとが含まれる。図8に示す例では、基準位置140はアバターオブジェクト121の位置であり、対象位置141は、敵オブジェクト142の位置である。相対方向θは、アバターオブジェクト121の正面方向の直線143と、基準位置140と対象位置141とを結ぶ直線144とがなす角度である。なお、基準位置140は、仮想空間に配置された仮想カメラの位置等の他の位置であってもよく、対象位置141は、敵オブジェクト142以外のオブジェクトの位置、特定の地点であってもよい。
アプリケーション管理部201は、対象位置141に関する情報に基づき、対象位置141をユーザが把握できるように、アクチュエータ42L,42Rを制御する。例えば、対象位置141が基準位置140からみて右側にある場合には、配信ユーザ101の右側の作用部位101Rへの作用が、左側の作用部位101Lよりも早く作用するように出力装置42を動作させる。また、相対方向θの絶対値が大きいほど、作用部位101L,101Rへの作用を強く(又は弱く)したり、周波数を高く(又は低く)したりするようにしてもよい。また、相対距離Lが短いほど、作用部位101L,101Rへの作用を強くしたり、周波数を高くしたりするようにしてもよい。さらに、相対方向θの絶対値の大きさは周波数の変化とし、相対距離Lの絶対値の大きさは強度の変化とする等、相対方向θに応じて変化する駆動波形のパラメータと相対距離Lに応じて変化する駆動波形のパラメータとを異ならせるようにしてもよい。
また、配信ユーザ装置12Aは、視聴ユーザ装置12Bからの応援によっても、出力装置42を動作させる。このとき、アプリケーション管理部201は、位置情報に基づく出力装置42の動作期間と、応援コマンド111に基づく出力装置42の動作期間とを異ならせる。
図9(a)はアクチュエータ42Rの駆動波形、図9(b)はアクチュエータ42Lの駆動波形の一例を示す。横軸は時間であり、縦軸は振動の大きさ(振幅)に対応する。時間T1〜T2の期間では、配信ユーザ装置12Aが取得した対象位置141を配信ユーザに提示するための駆動波形145L,145Rで出力装置42が動作する。図9に示す例は、対象位置141が基準位置140からみて右側に位置する場合の駆動波形であり、アクチュエータ42Rの駆動波形145Rは、アクチュエータ42Lの駆動波形145Lよりも位相が所定の位相差だけ進んでいる。駆動波形145L,145Rの振幅、及び周波数は一定である。これにより、ユーザは、対象位置141が基準位置140に対して右側にあることを把握することができる。また、駆動波形145L,145Rは、相対距離Lが短くなるほど、振幅が大きくなる。
さらに、時間T3〜T4の期間は、視聴ユーザ装置12Bから送信された応援コマンドに基づく駆動波形146L,146Rである。駆動波形146L,146Rは、時間T1〜T2の駆動波形145L,145Rと周波数が異なっている。具体的には、時間T3〜T4の駆動波形146L,146Rの周波数f2は、時間T1〜T2の駆動波形145L,145Rの周波数f1よりも低くなっている。時間T3〜T4のアクチュエータ42L,42Rの駆動波形146L,146Rは、振幅、周波数は同じであり、時間T1〜T2と同様にアクチュエータ42Rの駆動波形146Rは、アクチュエータ42Lの駆動波形146Lよりも位相が所定の位相差だけ進んでいる。このため、時間T3〜T4において出力装置42から与えられる触感は左右均等になる。
このように、配信ユーザ101に提示する情報の種類に応じて、周波数を変更することにより、作用部位において異なる触感を配信ユーザに付与することができる。これにより、配信ユーザ101は、触感を通じて異なる情報を把握することができる。例えば高周波の駆動波形による触感が与えられる場合は敵の方向を把握し、低周波の駆動波形による触感が与えられる場合は応援が送られたことを把握することができる。応援の種類は第1実施形態と同様である。
このように触感を通じて異なる情報を、画面に表示することなく配信ユーザに提示することによって、画面に表示された情報を邪魔せず、確実に配信ユーザに伝えるべき情報を把握させることができる。
第2実施形態によれば、第1実施形態の(1)〜(7)に記載の効果に加え、以下の効果が得られる。
(8)視聴ユーザ102が配信ユーザ101に提示する方向に応じて、出力装置42を動作させるようにした。これにより、視聴ユーザ102によって提示される方向を触感として配信ユーザ101に伝えることができる。これにより配信ユーザ101は、方向に関する情報に気付きやすく、且つその情報に迅速に対応することができる。
(9)視聴ユーザ102が配信ユーザ101に提示する距離に応じて、出力装置42を動作させるようにした。これにより、視聴ユーザ102によって提示される距離を触感として配信ユーザ101に伝えることができる。これにより配信ユーザ101は、距離に関する情報に気付きやすく、且つその情報に迅速に対応することができる。
(10)応援コマンド111に基づき触感が付与される期間と、位置情報に基づき触感が付与される期間とが異なるようにした。これによれば、触感がいずれの情報に基づくものであるかを配信ユーザ101が把握しやすくなる。
(第3実施形態)
次に、動画配信システムの第3実施形態について説明する。本実施形態では、配信ユーザ装置12Aが、独自に出力装置42を動作させるとともに、応援に基づいて出力装置42を動作させる点で第1実施形態と異なる。また、応援に基づき出力装置42が動作するタイミングが第2実施形態と異なる。以下、第1実施形態及び第2実施形態と同様の部分については同一符号を付してその詳細な説明を省略する。
本実施形態では、配信ユーザ装置12Aが独自に動作させる出力装置42の動作期間と、応援コマンド111に基づく出力装置42の動作期間との少なくとも一部を重複させ、その重複した期間において出力装置42の駆動波形を合成して作用部位101L,101Rに作用させる。動作期間が重なる場合であればゲームの態様は特に限定されないが、例えば視聴ユーザ102は、所定のタイミングで、視聴ユーザ装置12Bを操作して、銃弾を大きくする「Charge」の応援コマンド111をサーバ13に送信する。サーバ13は、応援コマンド111を配信ユーザ装置12Aに送信する。また、ゲームは、射撃可能である期間と射撃ができない待機期間とが設けられており、配信ユーザ装置12Aは、射撃可能期間において出力装置42を動作させる。
配信ユーザ装置12Aは、射撃可能期間において「Charge」の応援コマンド111を受信した場合、駆動波形を合成する。具体的には、射撃可能である期間であることを通知する駆動波形と、「Charge」の応援コマンド111に基づく駆動波形の位相を同一として合成し、振幅を増大させる。
図10は、アクチュエータ42L,42Rのいずれか一方の駆動波形を示す。時間T10〜T11の駆動波形は、射撃可能期間であることを配信ユーザ101に提示するための駆動波形147である。時間T11以降から時間T12までの駆動波形148は、駆動波形147に、応援コマンド111に基づく駆動波形を合成したものである。これにより、時間T11以降から時間T12までの駆動波形148の振幅は大きくなるため、配信ユーザ101の作用部位101L,101Rに作用する強さも強いものとなる。このため、配信ユーザ101は、視聴ユーザ102から大きい銃弾での射撃が可能であることを把握することができる。
第3実施形態によれば、第1実施形態の(1)〜(7)に記載の効果に加え、以下の効果が得られる。
(11)応援コマンド111に基づく駆動波形と、位置情報に基づく駆動波形が合成されるように出力装置42を動作させるため、駆動波形が変化したことを契機に、応援の有無又は位置の提示の有無について配信ユーザ101が把握しやすくなる。
上記各実施形態は、以下のように変更して実施することができる。上記各実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・第1実施形態では、受信した応援コマンド111の種類が異なる場合、それらの応援コマンド111の中から応援コマンド111を選択するようにした。これに代えて、全ての応援コマンド111を、それらの数とともに送信するようにしてもよい。配信ユーザ装置12Aでは、応援コマンド111の数が多いほど、出力装置42の駆動波形の強度を大きくする。これにより、数が多い応援コマンド111は、配信ユーザ101に触感を与え、数が少ない応援コマンド111はノイズとなり触感を与えるまでにはならない。また、視聴ユーザ装置12Bでは、表示が必要な応援コマンド111のみディスプレイ28に表示する。
・第2実施形態では、対象位置141に関する位置情報には、基準位置140からの相対距離Lと相対方向θとが含まれるとしたが、いずれか一方が含まれていればよい。
・上記各実施形態では、サーバ13が、応援コマンド111を集計する態様について説明したが、これに代えて、配信ユーザ装置12Aが応援コマンド111を集計するようにしてもよい。この場合、配信ユーザ装置12Aは、視聴ユーザ装置12Bから送信された全ての応援コマンド111を受信し、受信した応援コマンド111を集計し、集計結果に基づき出力装置42を動作させる。
・上記各実施形態では、配信ユーザ装置12Aが、出力装置42の駆動波形に関するパラメータの値を決定する態様について説明したが、駆動波形に関するパラメータの値を決定する装置は配信ユーザ装置12A以外のものであってもよい。例えばサーバ13が、出力装置42の駆動波形に関するパラメータの値を決定してもよい。この場合、サーバ13は、パラメータの値を配信ユーザ装置12Aに送信し、配信ユーザ装置12Aは、受信したパラメータの値に基づき出力装置42を動作させる。又は出力装置42の制御装置が動波形に関するパラメータの値を決定してもよい。
・上記各実施形態では、サーバ13が、配信ユーザ装置12Aを介さずに、出力装置42に駆動命令(駆動信号)を送信してもよい。
・上記各実施形態では、動画を配信ユーザ装置12A及び視聴ユーザ装置12Bでレンダリングするクライアントレンダリング方式について説明したが、これ以外の動画配信方式によって動画を配信するようにしてもよい。図11は、配信ユーザ装置12Aが動画を生成する映像配信方式であって、ゲームを開始した後の処理手順を示す。配信ユーザ装置12Aは、配信ユーザの操作に基づきゲームを実行する。配信ユーザ装置12Aは、モーションデータをアバターオブジェクト121に適用し、各オブジェクトをレンダリングして動画を生成する(ステップS30)。そして、配信ユーザ装置12Aは、生成した動画データをサーバ13に送信する(ステップS31)。サーバ13は、動画データを受信し、その動画を視聴している視聴ユーザの視聴ユーザ装置12Bに動画データを送信する(ステップS32)。視聴ユーザ装置12Bは、送信された動画データに基づきゲーム動画を出力し(ステップS19)、視聴ユーザの操作に基づく応援を受け付けて(ステップS20)、応援コマンド111をサーバ13に送信する(ステップS21)。サーバ13は、応援コマンド111を配信ユーザ装置12Aに送信し、配信ユーザ装置12Aは、応援コマンド111に基づき出力装置42に駆動命令を出力する(ステップS23)。
また、サーバ13が動画を生成するサーバ配信方式であってもよい。この配信方式では、配信ユーザ装置12Aは、配信ユーザの操作に基づきゲーム実行コマンドをサーバ13に送信する。サーバ13は、ゲーム実行コマンドに基づいて動画データを生成し、動画データを、配信ユーザ装置12A及び視聴ユーザ装置12Bに送信する。配信ユーザ装置12A及び視聴ユーザ装置12Bは、受信した動画データに基づく動画を表示する。視聴ユーザ装置12Bは、視聴ユーザの操作に基づく応援を受け付けて、応援コマンド111をサーバ13に送信する。サーバ13は必要があれば応援コマンド111をゲームに反映し、応援コマンド111を配信ユーザ装置12Aに送信する。このとき、サーバ13は、応援コマンド111ではなく、所定の駆動波形での駆動要求を配信ユーザ装置12A(又は出力装置42)に送信するようにしてもよい。
・上記各実施形態では、動画アプリケーションプログラム220にゲーム制御プログラムが含まれ、ユーザ装置12は、ゲーム制御プログラムを読み込んでゲームを実行するようにした。これに代えて、ユーザ装置12は、マークアップ言語で記述されたデータを含むウェブデータをサーバ13から受信し、ウェブブラウザを用いて、ウェブデータに基づきゲーム動画を表示するようにしてもよい。又は、動画アプリケーションプログラム220に含まれるゲーム制御プログラムと、ウェブデータとを用いてゲームを実行するハイブリッドゲームを実行するようにしてもよい。各態様において、応援のゲームへの反映は、ユーザ装置12が行ってもよいし、サーバ13が行うようにしてもよい。なお、これらのいずれの態様においても、クライアントレンダリング方式、配信ユーザ装置12A及びサーバ13が動画を生成する映像配信方式でゲーム動画を配信することができる。
・上記実施形態では、ユーザ装置12には、動画を視聴及び配信するための動画アプリケーションプログラムがインストールされているものとした。これに代えて、動画を視聴するためのアプリケーションプログラムと、動画を配信するためのアプリケーションプログラムとを別のアプリケーションプログラムとしてもよい。配信を行う場合には配信アプリケーションプログラムを用いて動画を配信する。視聴を行う場合には視聴アプリケーションプログラムを用いて動画を視聴する。ギフトオブジェクトの表示要求は、視聴アプリケーションプログラムを用いて行う。
・動画に、現実世界の画像を含む映像を表示してもよい。例えば、動画に、拡張現実(AR;Augmented Reality)の空間を表示させるようにしてもよい。例えば、ユーザ装置12のカメラが撮影した現実世界の画像に、アバターオブジェクト及び他のオブジェクト等を重ねて表示する。この態様においては、配信ユーザ装置12Aのカメラが撮像した画像を背景画像とする。
・上記実施形態では、配信ユーザ101の動作を適用したアバターオブジェクト121がプレイヤキャラクタとなるゲーム動画を配信した。これに代えて、ゲーム動画は、アバターオブジェクト121以外のプレイヤキャラクタが登場するものであってもよい。また、プレイヤ視点(第一者視点)のゲームなど、そもそもプレイヤキャラクタが登場しないものであってもよい。これらの態様であっても、視聴ユーザの応援を、触感として配信ユーザ101に伝えることができる。
・ゲームを進行する配信ユーザ101は複数人であってもよい。例えば、動画に複数の配信ユーザ101が参加するコラボレーション配信において、配信ユーザ101の少なくとも一人が出力装置42を用いてもよい。例えば、特定の武器を用いるアバターオブジェクト121に対応する配信ユーザ101のみに触感を付与するようにしてもよい。また、複数の配信ユーザ101が装着する出力装置42を制御して、それらの配信ユーザ101に触感を付与するようにしてもよい。複数の配信ユーザ101に触感を付与する場合に、それらの出力装置42の駆動波形を同一にしてもよいし、異ならせてもよい。さらに、触感を付与する配信ユーザ101を視聴ユーザ102が指定できるようにしてもよい。この場合には視聴ユーザ装置12Bから、触感を与える配信ユーザ101(アバターオブジェクト121)が指定される。また、各配信ユーザ101の出力装置42が動作する期間を同一にしたり、異ならせたりしてもよい。
・上記各実施形態では、出力装置42を、作用部とアクチュエータとを備える触覚レンダリングデバイスに例示して説明した。出力装置42は、少なくとも配信ユーザ101の身体の一部に接触し、配信ユーザ101に触感を与えることができるものであればよい。例えば、出力装置42は、振動を発生する複数のアクチュエータの各々を配信ユーザ101の異なる作用部位に装着するものであってもよい。また、出力装置42は、頭部や足等、首や肩以外の部位に接触するものであってもよい。例えば、出力装置42は、配信ユーザ101の正面及び背面に触覚を付与する触覚レンダリングデバイスであってもよい。このような触覚レンダリングデバイスの一例として、上半身に装着するジャケット型のデバイスが挙げられる。この触覚レンダリングデバイスでは、配信ユーザ101の正面側に位置する作用部と、背面側に位置する作用部とを備える。これによれば、配信ユーザ101は、出力装置42の動作によって、前後方向に関する情報を認識することができる。さらに、出力装置42は、配信ユーザ101の一つの作用部位に作用するものであってもよい。作用部位が一つであっても、その作用部位において触感を与えれば、配信ユーザ101は通知対象の存在等を認識することができる。出力装置42は、配信ユーザ101の動作の邪魔にならないものが好ましいが、配信ユーザ101が把持するものであってもよい。
・上記実施形態では、配信ユーザ101が出力装置42を用いたが、これに代えて若しくは加えて視聴ユーザ102が出力装置42を用いてもよい。例えば配信ユーザ101のユーザ装置12の操作により、視聴ユーザ102が装着した出力装置42を作動させるようにしてもよい。
・上記実施形態では、出力装置42を、ユーザに触感を与えるものとして説明した。これに代えて、ユーザに温度の変化を感じさせるものであってもよい。例えば、視聴ユーザから送信された応援コマンドが一定数に到達した場合には、温度を上昇させるようにしてもよい。
・出力装置42は、複数の装置を組み合わせてもよい。例えば、振動によりユーザに触感を与える装置と、光を射出する装置や音を出力する装置とを組み合わせても良い。
・上記各実施形態において、ユーザ装置12は、センサユニット24、スピーカ25、マイク26、操作部27、ディスプレイ28といった入出力装置を備えるものとした。これに代えて、これらの入出力装置は、外部装置としてユーザ装置12に接続されるものであってもよい。また、ユーザ装置12は、外部装置としての通信I/F23及びストレージ22の少なくとも一方に接続されるものであってもよい。
・上記各実施形態では、配信ユーザ101は、配信ユーザ101が所持する配信ユーザ装置12Aを用いて動画を配信するようにしたが、配信ユーザ101が配信する動画を視聴ユーザ102が視聴することができれば、これに限定されない。例えば、動画を、多数の視聴ユーザ102が参加するイベント会場に設置された大型ディスプレイに表示するようにしてもよい。視聴ユーザ102は、イベント会場に設置された情報処理装置と通信可能操作部(例えばサイリウムやスマートフォン)を操作し、操作部から情報処理装置へ応援コマンド111を送信する。又は、イベント会場に設置され、視聴ユーザ102の声援が入力される情報処理装置から、配信用情報を生成する情報処理装置へ応援コマンド111を送信してもよい。なお、音声が入力される情報処理装置は、「動画を視聴する視聴ユーザが用いる情報処理装置」に対応し、音量や、音声のリズム、音声データに基づく音声認識の結果に基づき応援コマンド111を特定する。音量が大きい場合には、ゲーム内で有利な効果を発揮する応援コマンド111としてもよい。情報処理装置は、応援コマンド111を配信ユーザ101の出力装置42に送信する。また、上記イベントに、複数の配信ユーザ101がゲームプレイヤとして参加し、視聴者がゲームの進行を大型ディスプレイで視聴するようにしてもよい。この場合、出力装置42は配信ユーザ101ごとに用意されてもよい。このように複数の視聴ユーザ102が会場に集合する場合は、視聴ユーザ102の声援に基づく音量を数値化又はグラフ化して、ディスプレイに表示してもよい。このときのグラフは、縦軸を音量とし、横軸を時間軸としてもよい。また、複数の会場に視聴ユーザ102が分散して存在する場合には、会場ごとの声援の音量の数値又はグラフを表示して、比較可能としてもよい。このときのグラフは、会場ごとの音量を示した棒グラフであってもよい。
・視聴ユーザ102が用いる視聴ユーザ装置12Bから送られる応援コマンド111の統計結果を、配信ユーザ装置12A及び視聴ユーザ装置12Bのディスプレイ28、又はイベント会場に設置されたメインディスプレイ(又はそれに併設されたサブディスプレイ)に表示するようにしてもよい。統計結果は、応援コマンド111の数や、応援コマンド111の頻度等である。また、応援コマンド111の種類をそれらに表示するようにしてもよい。このようにすると、応援を行うことに対する視聴ユーザ102の動機を高めることができる。
また、配信ユーザ101は、動画を配信するスタジオから動画を配信するようにしてもよい。図12は、動画配信スタジオに設置された動画配信システムであって、カメラ161、マイク162、コントローラ164、及び配信サーバ166等を備える。また、動画配信システムは、配信ユーザ101に手足に装着された装着センサ165、装着センサ165の位置を特定するための位置検出部163等を含むトラッキングシステムを備える。カメラ161は、配信ユーザ101の顔を撮影する。配信サーバ166は、トラッングシステムから取得したトラッキングデータ、カメラ161から取得した表情データをアバターオブジェクト121に適用したアニメーションを生成する。また、仮想空間の背景とアバターオブジェクトとをレンダリングしたアニメーションを音声とともに動画データとして視聴ユーザ装置12Bに配信する。また、例えば、トラッキングシステムは、配信ユーザの身体に装着されたマーカーを検出するカメラ等から構成してもよい。
次に、上記実施形態及び別例から把握できる技術的思想について、以下に追記する。
〔1〕1乃至複数のコンピュータに、
配信ユーザが動画を配信するための配信用情報を生成する配信用情報生成工程と、
動画を視聴する視聴ユーザが発する音声に基づき特定情報を特定する特定工程と、
前記特定情報に基づいて、前記配信ユーザに触感を与える出力装置が駆動するための駆動信号を送信する送信工程と、を実行させる情報処理プログラム。