図1は、本発明の実施例にかかる情報処理システム1を示す。情報処理システム1は、情報処理装置10a、10b、10c(以下、特に区別しない場合には、「情報処理装置10」と呼ぶ)と、管理サーバ5とを備え、これらはインターネットやLAN(Local Area Network)などのネットワーク3を介して接続している。図1では、ユーザAが、入力装置6aを用いて情報処理装置10aを操作し、ユーザBが、入力装置6bを用いて情報処理装置10bを操作し、ユーザCが、入力装置6cを用いて情報処理装置10cを操作する様子が示されている。なお入力装置6a、6b、6cを、特に区別しない場合には、「入力装置6」と呼ぶ。このように情報処理装置10は、ユーザが用いる入力装置6により操作される。
アクセスポイント(以下、「AP」とよぶ)8は、無線アクセスポイントおよびルータの機能を有し、情報処理装置10は、無線または有線経由でAP8に接続して、ネットワーク3上の管理サーバ5や、他のユーザが操作する情報処理装置10と通信可能に接続する。
情報処理装置10は、ユーザが操作する入力装置6と無線または有線で接続し、入力装置6はユーザの操作結果を示す操作情報を情報処理装置10に提供する。情報処理装置10は入力装置6から操作情報を受け付けるとシステムソフトウェアやアプリケーションソフトウェアの処理に反映し、出力装置から処理結果を出力させる。情報処理システム1において情報処理装置10はゲームを実行するゲーム装置であり、入力装置6はゲームコントローラなど情報処理装置10に対してユーザの操作情報を供給する機器であってよい。情報処理システム1においては、1人のユーザの情報処理装置10が、他のユーザの情報処理装置10に対して、プレイ中のゲーム画像データをストリーミング配信し、したがって本実施例における情報処理システム1は、ゲーム画像配信システムとして動作する。
情報処理システム1において各ユーザは、情報処理装置10においてゲームなどのアプリケーションを実行するために情報処理装置10のOS(システムソフトウェア)にログインする必要がある。システムソフトウェアにログインするユーザは、情報処理装置10において登録されているユーザアカウントによって管理される。ユーザアカウントを有していないユーザは、情報処理装置10にログインすることができず、したがって原則としてゲームをプレイすることはできない。しかしながら本実施例の情報処理装置10では、ユーザアカウントを有していないユーザに対して、例外的に一時的なユーザアカウントを発行してゲストユーザとしてログインさせる仕組みが提供される。これによりユーザアカウントを有していないユーザが、ホストユーザの情報処理装置10にゲストユーザとして一時的にログインして、一緒にゲームをプレイすることも可能となる。
補助記憶装置2はHDD(ハードディスクドライブ)やフラッシュメモリなどの大容量記憶装置であり、USB(Universal Serial Bus)などによって情報処理装置10と接続する外部記憶装置であってよく、内蔵型記憶装置であってもよい。出力装置4は画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。出力装置4は、情報処理装置10に有線ケーブルで接続されてよく、無線接続されてもよい。
入力装置6は複数のプッシュ式の操作ボタンや、アナログ量を入力できるアナログスティック、回動式ボタンなどの複数の入力部を有して構成される。撮像装置であるカメラ7は出力装置4の近傍に設けられ、出力装置4周辺の空間を撮像する。図1ではカメラ7が出力装置4の上部に取り付けられている例を示しているが、出力装置4の側方に配置されてもよく、いずれにしても出力装置4の前方でゲームをプレイするユーザを撮像できる位置に配置される。なおカメラ7は、ステレオカメラであってよい。
情報処理システム1においては、複数のユーザ同士が、チャット用アプリケーションを利用して、音声チャットやテキストチャットを楽しんだり、またお互いにカメラ画像を送信してビデオチャットを楽しむことができる。
情報処理システム1において、情報処理装置10a、10b、10cは、それぞれチャットアプリケーションを起動して、ユーザA、B、Cが、互いにチャットをしている。このように互いにチャットをしている状態で、1人のユーザ(ホストユーザ)が、別の1人のユーザ(ゲストユーザ)と、ゲーム画像を共有できる。たとえばユーザAのゲームプレイ中に、ユーザAのゲーム画像が情報処理装置10aから情報処理装置10cに配信されることで、ユーザCがユーザAのゲーム画像を視聴できる。本実施例では、情報処理装置10aで処理されているコンテンツ画像データが別の情報処理装置10cに送信されて、ユーザAとユーザCとが、一緒にコンテンツ画像を視聴できる状態になることを「コンテンツ画像の共有」とよぶ。なお情報処理装置10aと情報処理装置10cとの間は、P2Pによって接続されてデータの送受信が行われてもよいが、管理サーバ5を介してデータの送受信が行われてもよい。
管理サーバ5は、情報処理システム1のユーザに対してゲームのネットワークサービスを提供する。管理サーバ5はユーザを識別するネットワークアカウントを管理しており、ユーザは、ネットワークアカウントを用いて、管理サーバ5が提供するネットワークサービスにサインインする。
ログインユーザは情報処理装置10からネットワークサービスにサインインすることで、管理サーバ5に、ゲームのセーブデータや、またゲームプレイ中に獲得した仮想的な表彰品(トロフィ)を登録できる。本実施例において情報処理装置10が他の情報処理装置10と通信するためには、ユーザが管理サーバ5にサインインすることが前提となり、したがってユーザは、管理サーバ5にサインインすることで、はじめて、他のユーザとの間でチャットを行ったり、またコンテンツ画像の共有を行うことが可能となる。
図2(a)は、入力装置上面の外観構成を示す。ユーザは左手で左側把持部78bを把持し、右手で右側把持部78aを把持して、入力装置6を操作する。入力装置6の筐体上面には、入力部である方向キー71、アナログスティック77a、77bと、4種の操作ボタン76が設けられている。4種のボタン72〜75には、それぞれを区別するために、異なる色で異なる図形が記されている。すなわち、○ボタン72には赤色の丸、×ボタン73には青色のバツ、□ボタン74には紫色の四角形、△ボタン75には緑色の三角形が記されている。筐体上面上において、方向キー71と操作ボタン76の間の平坦な領域には、タッチパッド79が設けられる。タッチパッド79は、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。
2つのアナログスティック77a、77bの間に機能ボタン80が設けられる。機能ボタン80は、入力装置6の電源をオンし、同時に入力装置6と情報処理装置10とを接続する通信機能をアクティブにするために使用される。入力装置6が情報処理装置10と接続した後は、機能ボタン80は、情報処理装置10にホーム画面を表示させるためにも使用される。
SHAREボタン81は、タッチパッド79と方向キー71の間に設けられる。SHAREボタン81は、情報処理装置10におけるOSないしはシステムソフトウェアに対するユーザからの指示を入力するために利用される。OPTIONSボタン82は、タッチパッド79と操作ボタン76の間に設けられる。OPTIONSボタン82は、情報処理装置10において実行されるアプリケーション(ゲーム)に対するユーザからの指示を入力するために利用される。SHAREボタン81およびOPTIONSボタン82は、いずれもプッシュ式ボタンとして形成されてよい。
図2(b)は、入力装置背面の外観構成を示す。入力装置6の筐体背面の上側には、タッチパッド79が筐体上面から延設されており、筐体背面の下側には、横長の発光部85が設けられる。発光部85は、赤(R)、緑(G)、青(B)のLEDを有し、情報処理装置10から送信される発光色情報にしたがって点灯する。筐体背面において、上側ボタン83a、下側ボタン84aと、上側ボタン83b、下側ボタン84bとが長手方向の左右対称な位置に設けられる。上側ボタン83a、下側ボタン84aは、それぞれユーザ右手の人差し指、中指により操作され、上側ボタン83b、下側ボタン84bは、それぞれユーザ左手の人差し指、中指により操作される。上側ボタン83はプッシュ式ボタンとして構成され、下側ボタン84は回動支持されたトリガー式のボタンとして構成されてよい。
図3は、入力装置6の機能ブロックを示す。入力装置6は、無線通信モジュール90、処理部91、発光部85、振動子98およびスピーカ99を備える。無線通信モジュール90は、情報処理装置10の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部91は、入力装置6における所期の処理を実行する。
処理部91は、メイン制御部92、入力受付部93、発光制御部94、3軸加速度センサ95、3軸ジャイロセンサ96、駆動制御部97および音声制御部86を有する。メイン制御部92は、無線通信モジュール90との間で必要なデータの送受を行う。
入力受付部93は、方向キー71、操作ボタン76、アナログスティック77、タッチパッド79、機能ボタン80、SHAREボタン81、OPTIONSボタン82、上側ボタン83および下側ボタン84などの入力部からの入力情報を受け付け、メイン制御部92に送る。メイン制御部92は、受け取った入力情報を必要に応じて所定の制御信号に変換して無線通信モジュール90に供給し、無線通信モジュール90は、所定のタイミングで情報処理装置10に送信する。発光制御部94は、発光部85を構成する赤色LED87、緑色LED88、青色LED89の発光を制御する。3軸加速度センサ95は、入力装置6のXYZの3軸方向の加速度成分を検出し、3軸ジャイロセンサ96は、XZ平面、ZY平面、YX平面における角速度を検出する。
本実施例の情報処理システム1において、入力装置6が電源オフの状態で、ユーザが機能ボタン80を押下すると、入力装置6が電源オンされるとともに、メイン制御部92が情報処理装置10への接続要求を生成して、無線通信モジュール90が接続要求を情報処理装置10に送信する。このとき情報処理装置10がメイン電源オフの状態にあっても、情報処理装置10における無線通信モジュールはアクティブ状態にあるため、情報処理装置10は接続要求を受信すると、メイン電源をオンしてOS(システムソフトウェア)を起動し、入力装置6との間の無線接続を確立する。
情報処理装置10のシステムソフトウェアは、接続要求を送信した入力装置6の発光部85の発光色を決定し、発光色情報を入力装置6に送信する。このときシステムソフトウェアは、カメラ7に撮像された空間に含まれる色情報を解析し、可能な限り環境色に含まれていない色を特定して、発光部85の発光色を決定することが好ましい。これにより発光部85の点灯後、カメラ7の撮像画像から、指定した発光色で点灯する発光部85を、好適に検出することが可能となる。
無線通信モジュール90にて受信した発光色情報はメイン制御部92に渡され、メイン制御部92は、発光制御部94に発光色情報を通知する。これにより発光制御部94は、指定された発光色で発光部85を発光させることができる。
駆動制御部97は、偏心モータなどを含んで構成される振動子98を駆動する。音声制御部86は、スピーカ99から音声を出力する。入力装置6において、発光制御部94、駆動制御部97、音声制御部86は、情報処理装置10で実行されるゲームプログラムから提供される制御データにより、それぞれ発光部85、振動子98、スピーカ99を制御する。したがって発光部85、振動子98、スピーカ99は、ゲームプログラムによって制御される被制御部と呼ぶことができる。発光部85、振動子98、スピーカ99は、ゲームプログラムから提供される制御データによって、その動作を制御されることで、操作するユーザに対して、ゲームからのフィードバックを提供できる。このフィードバックはゲームにおける臨場感を高め、ゲームの楽しみをユーザに与える大きな要因となる。
図4は、情報処理装置10の機能ブロックを示す。情報処理装置10は、メイン電源ボタン20、電源ON用LED21、スタンバイ用LED22、システムコントローラ24、クロック26、デバイスコントローラ30、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60を有して構成される。
メインシステム60は、メインCPU(Central Processing Unit)、主記憶装置であるメモリおよびメモリコントローラ、GPU(Graphics Processing Unit)などを備える。GPUはゲームプログラムの演算処理に主として利用される。これらの機能はシステムオンチップとして構成されて、1つのチップ上に形成されてよい。メインCPUは補助記憶装置2に記録されたゲームプログラムを実行する機能をもつ。
サブシステム50は、サブCPU、主記憶装置であるメモリおよびメモリコントローラなどを備え、GPUを備えず、ゲームプログラムを実行する機能をもたない。サブCPUの回路ゲート数は、メインCPUの回路ゲート数よりも少なく、サブCPUの動作消費電力は、メインCPUの動作消費電力よりも少ない。サブCPUは、メインCPUがスタンバイ状態にある間においても動作し、消費電力を低く抑えるべく、その処理機能を制限されている。
メイン電源ボタン20は、ユーザからの操作入力が行われる入力部であって、情報処理装置10の筐体の前面に設けられ、情報処理装置10のメインシステム60への電源供給をオンまたはオフするために操作される。電源ON用LED21は、メイン電源ボタン20がオンされたときに点灯し、スタンバイ用LED22は、メイン電源ボタン20がオフされたときに点灯する。
システムコントローラ24は、ユーザによるメイン電源ボタン20の押下を検出する。メイン電源がオフ状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オン指示」として取得し、一方で、メイン電源がオン状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オフ指示」として取得する。
クロック26はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ24やサブシステム50およびメインシステム60に供給する。デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
メディアドライブ32は、ゲームなどのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体44を装着して駆動し、ROM媒体44からプログラムやデータなどを読み出すドライブ装置である。ROM媒体44は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
USBモジュール34は、外部機器とUSBケーブルで接続するモジュールである。USBモジュール34は補助記憶装置2およびカメラ7とUSBケーブルで接続してもよい。フラッシュメモリ36は、内部ストレージを構成する補助記憶装置である。無線通信モジュール38は、Bluetooth(登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、たとえば入力装置6の無線通信モジュール90と無線通信する。なお無線通信モジュール38は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応してもよく、さらには別の世代のデジタル携帯電話方式に対応してもよい。有線通信モジュール40は、外部機器と有線通信し、たとえばAP8を介して外部ネットワークに接続する。
本実施例の情報処理システム1においては、複数のユーザの情報処理装置10が、チャットアプリケーションを実行して、互いにP2Pで接続されている。この状態では、ユーザ同士がボイスチャットやテキストチャットなどでお互いにコミュニケーションをとることができる。なお各ユーザは、それぞれ1人でゲームを楽しみながら、同時に別のユーザとチャットを楽しむことができ、またチャット接続している別のユーザと、ゲーム画像を共有することもできる。
本実施例において、ゲーム画像の共有には、複数の形態が用意される。以下、ゲーム画像を共有することを、便宜上「シェアプレイ」と呼ぶこともある。なおシェアプレイにおいては、ゲーム画像の配信元のユーザを「ホスト」ないしは「ホストユーザ」、配信先のユーザを「ゲスト」ないしは「ゲストユーザ」と呼ぶ。以下、シェアプレイの3つの形態を示す。シェアプレイでは、ゲストユーザは、ホストユーザからゲーム画像を提供され、ゲストユーザは、当該ゲームソフトウェアを持っていなくてよい。なお本実施例におけるシェアプレイは、両者がチャット接続していることが前提となっており、両者はシェアプレイを行いつつ、チャットでコミュニケーションをとることができる。
<シェアプレイ1>
1つめのシェアプレイは、「シェアスクリーン」と呼んでもよく、ホストユーザのゲーム画像をゲストユーザと共有する。シェアスクリーンはシェアプレイの基本形態であり、シェアプレイの開始時には、まず最初に、共有形態としてシェアスクリーンが設定される。シェアスクリーンでは、ゲストユーザは、ホストユーザのゲーム画像を視聴できるが、ゲーム操作をすることはできない。
したがってシェアプレイ1は、ホストユーザとゲストユーザとがホストユーザのゲーム画像を共有しつつ、ゲストユーザがゲームの操作権を有しない共有形態といえる。
以下のシェアプレイ2,3は、シェアプレイ1のシェアスクリーン機能を前提としつつ、ゲームの操作権がゲストユーザに渡される共有形態である。
<シェアプレイ2>
2つめのシェアプレイは、「アシストプレイ」と呼んでもよく、ホストユーザのゲーム画像をゲストユーザと共有しつつ、ゲストユーザがホストユーザの代わりにゲーム操作を行う。アシストプレイでは、ホストユーザが自身のゲームの操作権をゲストユーザに渡し、したがってホストユーザは、ゲームを操作することができず、ゲストユーザのみが、ゲーム操作を行うことができる。
したがってシェアプレイ2は、ホストユーザとゲストユーザとがホストユーザのゲーム画像を共有しつつ、ゲームの操作権がホストユーザの代わりにゲストユーザに渡される共有形態といえる。
<シェアプレイ3>
3つめのシェアプレイは、「共同プレイ」と呼んでもよく、ホストユーザのゲーム画像をゲストユーザと共有しつつ、ゲストユーザがゲームに新たなプレイヤーとして参加して、ホストユーザと一緒にゲームをプレイする。つまり、共同プレイでは、ホストユーザ側のゲームリソースを利用して、ホストユーザがプレイヤー1、ゲストユーザがプレイヤー2としてゲームに参加して、ホストユーザとゲストユーザとが一緒にゲームを操作することができる。
したがってシェアプレイ3は、ホストユーザとゲストユーザとがホストユーザのゲーム画像を共有しつつ、ホストユーザとゲストユーザの双方がゲームの操作権を同時に有する共有形態といえる。
以下、ホストユーザの情報処理装置10の構成と、ゲストユーザの情報処理装置10の構成を示し、ホストユーザとゲストユーザとの間でシェアプレイを行う仕組みについて説明する。なお以下の例においては、ユーザAがホストユーザとなり、ユーザCがゲストユーザとなる場合について説明するが、当然のことながら情報処理システム1においては、ユーザCがホストユーザになることもでき、またユーザAがゲストユーザになることもできる。また他のユーザ、たとえばユーザBや図示していない他のユーザも同様に、ホストユーザまたはゲストユーザのいずれにもなることができ、したがって以下において、情報処理装置10aまたは情報処理装置10cとして示す構成は、全ての情報処理装置10に備えられることを付言しておく。
図5は、ホストユーザの情報処理装置10aの構成を示す。情報処理装置10aは処理部100a、通信部102aおよび受付部104aを備え、処理部100aはシステム画面生成部110a、チャット実行部120a、共有処理部140a、コンテンツ実行部170aおよび配信処理部180を備える。チャット実行部120aはチャットアプリケーションにより実現され、他のユーザのチャットアプリケーションとP2Pで接続して音声やテキストのデータを送受信する機能をもち、情報取得部122a、メンバ画面表示部124a、開始画面表示部126aおよび通知部128aを有する。共有処理部140aはシェアアプリケーションにより実現され、他のユーザとの間のコンテンツ画像の共有処理を行い、情報取得部142a、共有実行部144、通知部146a、操作権管理部156、操作データ提供部158、状態取得部160、ダイアログ画面表示部162、時間計測部164、制御データ取得部166および制御データ提供部168を有する。
受付部104aは、通信部102aと処理部100aとの間に設けられ、通信部102aと処理部100aとの間でデータないしは情報を伝送する。なお通信部102aは、図4に示す無線通信モジュール38および有線通信モジュール40の機能を表現している。本実施例ではホストユーザであるユーザAがゲームのプレイ動画をストリーミング配信するため、図1における情報処理装置10aが、図5に示す構成を有することを説明するが、既述したように情報処理システム1において、他のユーザB、Cも、シェアプレイにおけるホストユーザとなることができ、したがって情報処理装置10b、10cも、図5に示す構成を有している。
図6は、ゲストユーザの情報処理装置10cの構成を示す。情報処理装置10cは処理部100c、通信部102cおよび受付部104cを備え、処理部100cはチャット実行部120c、共有処理部140cおよびコンテンツ実行部170cを備える。チャット実行部120cはチャットアプリケーションにより実現され、他のユーザのチャットアプリケーションとP2Pで接続して音声やテキストのデータを送受信する機能をもち、情報取得部122c、メンバ画面表示部124cおよび通知部128cを有する。共有処理部140cはシェアアプリケーションにより実現され、他のユーザとの間のコンテンツ画像の共有処理を行い、情報取得部142c、通知部146c、メッセージ画面表示部148、画像データ取得部150、再生処理部152および操作データ送信部154を有する。
受付部104cは、通信部102cと処理部100cとの間に設けられ、通信部102cと処理部100cとの間でデータないしは情報を伝送する。なお通信部102cは、図4に示す無線通信モジュール38および有線通信モジュール40の機能を表現している。本実施例ではユーザCがユーザAとの間でシェアプレイを行うため、図1における情報処理装置10cが、図6に示す構成を有することを説明するが、既述したように情報処理システム1において他のユーザA、Cも、シェアプレイにおけるゲストユーザとなることができ、したがって情報処理装置10a、10bも、図6に示す構成を有している。
図5および図6において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。以下、シェアプレイを実現するための各機能について説明する。
まず本実施例において、ホストユーザとゲストユーザとがシェアプレイを実施するためには、両者が、同一のチャットルームに参加する必要がある。なおチャットルームの開設者は、どのユーザであってもよく、すなわちホストユーザおよびゲストユーザ以外のユーザが開設してもよい。以下、図5に示す構成をもとに、ユーザAがチャットルームに参加する仕組みについて説明する。なお、他のユーザについても、同様の手順でチャットルームに参加する。
ユーザAが情報処理装置10aにログインすると、システム画面生成部110aが、ユーザA用のホーム画面を生成して、出力装置4aに表示する。
図7は、ホーム画面の一例を示す。システム画面生成部110aは、アイコン列の先頭(すなわち左端)に新着情報アイコン330を配置する。システム画面生成部110aは、ホーム画面を最初に表示させる際、コンテンツエリア314において、新着情報アイコン330をフォーカス枠328に入れて、フォーカス状態とする。システム画面生成部110aは、アイコン列にコンテンツアイコン326を並べ、またライブ情報アイテム332をライブエリア316に配置する。
またシステム画面生成部110aは、情報処理装置10が提供する複数のシステム機能を示す複数の機能アイコン376の一部をシステムエリア312に配置する。図7の例では、ストアアイコン376a、通知アイコン376b、フレンドアイコン376c、プロフィールアイコン376f、トロフィーアイコン376gを表示させている。なおプロフィールアイコン376fは、ユーザA(TARO)のプロフィールを表示させるためのGUIである。
システム画面生成部110aは、オンラインのフレンドユーザ数、すなわち他の情報処理装置10において現在ログイン中のフレンド数(図7では「9」)を示すオンライン数インジケータをフレンドアイコン376cと対応づけて配置する。情報処理システム1において、フレンドユーザは、管理サーバ5においてユーザAのフレンドとして登録されているユーザである。またシステム画面生成部110aは、ユーザが未読の情報の数(図7では「6」)を示す未読数インジケータを通知アイコン376bと対応づけて配置する。
ホーム画面においてユーザAが、プレイしたいゲームのコンテンツアイコン326をフォーカス枠328に配置して、決定ボタンを操作すると、コンテンツ実行部170aが、ゲームプログラムを実行する。コンテンツ実行部170aは、ユーザAから入力装置6aに入力された操作情報をもとに、仮想空間においてゲームキャラクタを動かす演算処理を行う。コンテンツ実行部170aは、レンダリング処理などを実行するGPU(Graphics Processing Unit)を含み、ゲームプログラムの処理結果を受けて、出力装置4aに表示するゲームの画像データを生成する。本実施例では、コンテンツ実行部170aが、ゲームタイトル“WARSHIP2”のプログラムを実行して、ユーザAが、“WARSHIP2”を1人でプレイする。その後、ユーザAは、ホーム画面に戻り、チャットアプリケーションを起動する。
ユーザAが“WARSHIP2”のゲーム画面からホーム画面に戻り、入力装置6aの上方向キーを操作すると、システム画面生成部110aが、機能画面を生成して出力装置4aに表示する。
図8は、ホーム画面から遷移した機能画面の一例を示す。システム画面生成部110aは、システム機能選択エリア372に、複数の機能アイコン376を並べて配置する。ここではストアアイコン376a、通知アイコン376b、フレンドアイコン376c、グループメッセージアイコン376d、チャットアイコン376e、プロフィールアイコン376f、トロフィーアイコン376g、設定アイコン376h、電源アイコン376iが表示されている。システム画面生成部110aは、ユーザAによる入力装置6aの横方向の操作入力に応じて、フォーカスさせる機能アイコン376を順次切り替え、フォーカスアイコンを強調した態様(大きいサイズ、異なる色等)で表示する。図8では、通知アイコン376bが選択されてフォーカスされ、他のアイコンより強調表示された状態となっており、通知アイコン376bを選択したときに表示される情報がプレビューエリア374に示されている。ユーザAはチャットルームを開設、またはチャットルームに参加するために、システム機能選択エリア372からチャットアイコン376eを選択する。
図9は、チャットルームの入室画面の一例を示す。ユーザAがチャットアイコン376eを選択すると、システム画面生成部110aは、入室画面を生成する。入室画面においては、ユーザ自身がチャットルームを作成する選択肢と、既に存在するチャットルームに参加する選択肢とが表示される。この入室画面では、最上位に「チャットルームを作成する」選択肢が表示され、その下方に、3つの既存のチャットルームの情報が表示されている。なお既存のチャットルームがなければ、チャットルームの選択肢は表示されない。
上から2番目の既存チャットルームについて説明する。オーナーアイコン380は、チャットルームを開設したオーナーのアイコンであり、オーナー名382は、オーナーのユーザ名である。ゲームタイトル384は、オーナーが現在プレイ中のゲームタイトル名であり、オーナーがゲームをしていなければ、ブランク表示とされる。ルーム名386は、オーナーが設定したチャットルームの名前であり、ここでは“JIRO YAMADA”がチャットルーム名を“Battle Lover”と名付けていることが示される。参加人数インジケータ388は、このチャットルームに参加している人数を示す。
ユーザAは入室画面において、自分でチャットルームを作成し、または、いずれかのチャットルームに参加するか選択できる。ここでユーザAが、“JIRO YAMADA”が開いた“Battle Lover”を選択して入室する。ユーザAがチャットルームに参加すると、通信部102aは、入室したチャットルームのメンバのアドレス情報を取得して、メンバ全員の情報処理装置10とP2Pで接続する。
チャット実行部120aの各機能は、チャットアプリケーションによって実現される。情報取得部122aは、ルームメンバのユーザ情報、具体的にはメンバのユーザ名、ユーザアイコン、プレイ中のゲームタイトルおよびゲームアイコン、およびチャット状況などの情報を、ルームメンバの各情報処理装置10から取得する。メンバ画面表示部124aは、情報取得部122aが取得したユーザ情報をもとに、チャットルームのメンバ画面を生成して、出力装置4aに表示する。
図10は、チャットルームのメンバ画面の一例を示す。メンバ画面の上段には、ルーム名400が表示される。メンバ画面表示部124aは、メンバ画面の左側に設定されるメンバ情報エリア404に、自分に関するユーザ情報とともに、情報取得部122aが取得した他のメンバに関するユーザ情報を表示する。チャットルーム「Battle Lover」には、7人のユーザが参加しており、各メンバのユーザ情報が並べてリスト形式で表示される。メンバ情報エリア404において、最上段には、このルームを開設したルームオーナーのユーザ情報が表示され、オーナーであることを示すオーナーインジケータ401が付加されている。また最下段には、ユーザAである自分(すなわちTARO)のユーザ情報が表示される。ここでユーザAは、ゲームタイトル“WARSHIP2”をプレイ中であることが示される。
ここで各ユーザ情報の表示欄の右側には、各ユーザのチャットの状況がアイコンで表示される。たとえばチャットアイコン406は、ボイスチャットで話中であること、チャットアイコン408は、ボイスチャット接続中であること、チャットアイコン410は、ゲーム画像の配信中であって且つボイス出力をアクティブにしていること、チャットアイコン412は、ボイスチャットのマイク出力をオフにしていることを示す。チャットアイコン414は、ボイスチャット接続中であることを示すが、チャットアイコン408と比較すると、自分のチャット状況をスピーカではなくマイクで表現している点で異なっている。なお“JENNIFER WILSON”は、ゲームタイトル“BATTLE3”をプレイ中であるが、セッションアイコン416は、当該ユーザが参加可能なセッションを実行しており、他のユーザが、そのセッションに参加可能であることを示している。なお、このセッションへの参加は、他のユーザが“BATTLE3”を有している場合に可能であり、したがって、ゲームソフトウェアを有していなくてもゲーム画像を共有するシェアプレイとは、別のタイプのゲーム参加であることに留意されたい。
メンバ情報エリア404の右側には、このチャットルームにおける各機能の項目が表示される。シェアプレイ項目420は、他のユーザとシェアプレイを実施するための項目であり、この項目については後述する。招待項目422は、当該チャットルームに他のユーザを招待するための項目であり、ルーム設定項目424は、たとえばチャットにおけるマイクレベルや音声ミックスなどを調整するための項目である。また他ルーム参照項目426は、他のチャットルームを参照するための項目であり、退出項目428は、このチャットルームを退出するための項目である。
メンバ画面において、フォーカス枠402が移動可能に表示され、ユーザAは、入力装置6aの方向キー71を操作して、所望の項目を選択することができる。図10の例では、フォーカス枠402が、ルームオーナーである“JIRO YAMADA”のユーザ表示領域に配置されており、この状態でユーザAが決定ボタンを操作すると、“JIRO YAMADA”のプロフィール画面が表示されるようにしてもよい。
本実施例においてユーザAは、チャットルームに参加することで、他のユーザとシェアプレイを行える態勢が整えられる。
図11は、フォーカス枠402をシェアプレイ項目420に配置した状態を示す。ユーザAが、入力装置6aの決定ボタンを操作すると、ユーザAが、シェアプレイのホストユーザとして振る舞うことになる。
図12は、シェアプレイの開始画面を示す。ユーザAがメンバ画面においてシェアプレイ項目420を決定操作すると、開始画面表示部126aが、シェアプレイの開始画面を表示する。この開始画面においては、シェアプレイを行う際の注意が表示される。ユーザAは、フォーカス枠430を動かして、「OK」ボタンを選択すると、ユーザAがホストユーザとなるシェアプレイの開始条件が整い、他のユーザの参加を待機する状態となる。この時点で、ゲーム画像の共有処理を行うためのシェアアプリケーションが起動されて、共有処理部140aの各機能が実現されるようになる。なお「シェアプレイとは?」が選択されると、シェアプレイの説明画面が表示される。
図13は、シェアプレイの説明画面を示す。この説明画面においては、同じチャットルームに参加している2人のユーザがホストまたはゲストとなってシェアプレイを行えること、またシェアプレイの形態として、上記した3つの形態が存在することが記載される。
図12に示すシェアプレイの開始画面においてユーザAが「OK」ボタンを選択すると、メンバ画面表示部124aが、メンバ画面を表示する。
図14は、メンバ画面を示す。通知部146aは、シェアプレイの開始条件が成立したことを示すために、メンバ画面に、開始メッセージ432を表示する。開始メッセージ432は、表示画面がメンバ画面に切り替わった後、たとえば数秒程度表示されて、その後、非表示とされてよい。
通知部128aは、“Battle Lover”のメンバ、すなわち同じチャットルームに参加している他のメンバに、ユーザAがシェアプレイを開始したことを示すメッセージを通知する。これにより他のメンバは、ユーザAがシェアプレイを開始したことを知ることができる。なお、ここでシェアプレイは、実際には、他のユーザの参加が許可されることで、はじめて開始されるのであり、したがってユーザAがシェアプレイを開始したことを示すメッセージは、ユーザAがシェアプレイを希望しており、また他のユーザからの参加を待機している状態にあることを意味する。
次に、図6を参照して、ユーザCの情報処理装置10cにおける処理について説明する。ここでユーザCは、“Battle Lover”に参加しているメンバであって、図14におけるユーザ“RICHARD”であるとする。図14のメンバ画面に示されるように、ユーザCは、ボイスチャットをしながら、1人で“SAMURAI Fighting”をプレイしている。
図6を参照して、情報処理装置10cにおいて、コンテンツ実行部170cが、ゲームタイトル“SAMURAI Fighting”を実行している。
図15は、ユーザCの出力装置4cに表示されるゲーム画面を示す。ユーザCは、チャットアプリケーションを起動しつつ、1人でゲームを楽しんでいる。したがってユーザCは、“SAMURAI Fighting”をプレイしながら、“Battle Lover”に参加している他のメンバと、ボイスチャットを行える状態にある。
ユーザCがゲームのプレイ中、情報処理装置10aからシェアプレイの開始メッセージが通知されると、情報処理装置10cにおいて情報取得部122cが、ユーザAの情報処理装置10aから通知されたメッセージを取得する。通知部128cは、出力装置4cに表示されているゲーム画面上に、取得したメッセージを表示する。
図16は、ゲーム画面上に重畳表示される開始メッセージ434を示す。通知部128cは、シェアプレイが開始されたことと、シェアプレイのホストユーザ名とを、開始メッセージ434として表示する。これによりユーザCは、ユーザAである“TARO”がシェアプレイを開始したことを知ることができる。なお情報処理装置10aから送信されたメッセージに、ユーザAがプレイ中のゲームタイトル名が含まれていれば、通知部128cは、開始メッセージ434において、ユーザAがプレイ中のゲームタイトル名も含めて表示してよい。通知部128cは、開始メッセージ434を所定時間、たとえば10秒程度表示する。なおユーザCがホーム画面など、システム画面生成部が生成する表示画面をみている場合には、通知部128cが、その表示画面に、開始メッセージ434を重畳表示する。
ここではユーザCが使用している出力装置4cの画面に開始メッセージ434が重畳表示されることを示しているが、ユーザCに限らず、“Battle Lover”のユーザA以外のメンバの出力装置4の画面にも、開始メッセージ434が重畳表示される。既述したように、開始メッセージ434が表示された時点では、ユーザA(TARO)はシェアプレイの開始を待機している状態にあり、開始メッセージ434は、シェアプレイに参加できることを通知するためのメッセージとして認識される。ここでシェアプレイへの参加は、メンバが、ユーザAの情報処理装置10aに対して参加要求を送信し、受け入れられることによって実現され、つまり、ある意味、早い者勝ちでシェアプレイに参加できるようになっている。
ユーザCが、入力装置6cの所定のボタンを操作すると、情報取得部122cは、ルームメンバのユーザ情報、具体的にはメンバのユーザ名、ユーザアイコン、プレイ中のゲームタイトルおよびゲームアイコン、およびチャット状況などのユーザ情報を取得し、メンバ画面表示部124cが、情報取得部122cが取得したユーザ情報をもとに、チャットルームのメンバ画面を生成して、出力装置4cに表示する。
図17は、チャットルームのメンバ画面の一例を示す。メンバ画面の上段には、ルーム名400が表示される。メンバ画面表示部124cは、メンバ画面の左側に設定されるメンバ情報エリア404に、自分に関するユーザ情報とともに、情報取得部122cが取得した他のメンバに関するユーザ情報を、並べてリスト形式で表示する。メンバ情報エリア404において、最上段には、このルームを開設したルームオーナーのユーザ情報が表示され、オーナーであることを示すオーナーインジケータ401が付加されている。また最下段には、ユーザCである自分(すなわちRICHARD)の情報が表示される。
ユーザAのユーザ情報表示欄には、シェアプレイ可能であることを示すシェアプレイインジケータ436が表示される。ユーザCは、このシェアプレイインジケータ436を確認することで、ユーザAである“TARO”がシェアプレイ可能な状態にあることを認識する。
図18は、シェアプレイ項目420にフォーカス枠402を配置して決定操作をしたときに表示される選択項目を示す。この選択項目は、シェアプレイに参加することを選択するための参加GUI(Graphical User Interface)440である。ユーザCは、フォーカス枠402を参加GUI440に配置して、決定ボタンを操作することで、通知部128cは、情報処理装置10aに参加要求を送信して、ユーザAのシェアプレイへの参加を申し込む。
図19は、ユーザAの情報表示欄404aにフォーカス枠402を配置して決定操作したときに表示される選択項目を示す。この選択項目は、シェアプレイに参加することを選択するための参加GUI442と、“TARO”のプロフィールの閲覧を選択するためのプロフィールGUI444を含む。ユーザCは、フォーカス枠402を参加GUI442に配置して、決定ボタンを操作することで、通知部128cは、情報処理装置10aに参加要求を送信して、ユーザAのシェアプレイへの参加を申し込む。このとき情報処理装置10cは、ゲームの視聴年齢制限などを管理サーバ5に問い合わせ、ユーザCの年齢が視聴制限をクリアしていることなどを自主的に判定して、ユーザCが参加可能であることを情報処理装置10aに通知する。
情報処理装置10cは、ユーザCが参加可能であることを自主判定すると、シェアアプリケーションを起動し、共有処理部140cの各機能を実現する。これにより共有処理部140cは、情報処理装置10aからのゲーム画像データの配信を待機する状態となる。
一方、情報処理装置10aにおいて、コンテンツ実行部170aは、ユーザAから入力装置6aに入力された操作情報をもとにゲームプログラムを処理して、ゲームの画像データを生成している。ここでコンテンツ実行部170aは、コンテンツ(ゲームプログラム)そのものであってよい。
情報取得部142aが、情報処理装置10cから、ユーザCが参加可能であることを示す情報を取得すると、共有実行部144が、実行するシェアプレイの形態を、シェアプレイ1(シェアスクリーン)に設定する。既述したように、シェアプレイ1は、ゲーム画像データの配信のみを行いつつ、ユーザCからの操作を受け付けない形態であり、共有実行部144によりデフォルト選択される。共有実行部144は、選択した形態を操作権管理部156に伝える。操作権管理部156は、コンテンツ、すなわちゲームの操作権を管理し、共有形態がシェアプレイ1であることを通知されると、ユーザCからの操作データを無視するように動作する。
図20は、出力装置4aに表示されるゲーム画面の一例を示す。情報取得部142aが、情報処理装置10cから、ユーザCが参加可能であることを示す情報を取得すると、通知部146aが、シェアプレイにゲストユーザが参加したことを示す参加通知メッセージ435を、ゲーム画面に重畳して表示する。これによりユーザAは、“RICHARD”がシェアプレイに参加したことを知ることができる。
共有実行部144がゲーム画像の共有形態をシェアプレイ1(シェアスクリーン)に設定すると、配信処理部180が、設定された共有形態を特定する情報(形態情報)とともに、ゲーム画像データを情報処理装置10cに送信する。ゲーム画像データの送信は、出力装置4aへの出力と同期して行われて、ユーザAとユーザCとが、同じゲーム画面を視聴できることが好ましい。情報処理装置10cにおいて、情報取得部142cが、形態情報を取得し、画像データ取得部150が画像データを取得する。再生処理部152は、取得した画像データを用いて、ゲーム画像を出力装置4cから再生する。これによりユーザCは、ユーザAと同じゲーム画面を視聴できる。なお配信処理部180は、ゲーム画像データのみを送信し、ゲーム画像以外の画像データは送信しないように制御されてよい。
図21は、ユーザCに対して表示されるゲーム画面を示す。再生処理部152は、画像データを再生処理して、出力装置4cに出力する。このとき通知部146cが、形態情報をもとに、シェアプレイの形態を示す状態インジケータ450をゲーム画面に重ねて表示する。状態インジケータ450は、共有処理の形態を示す情報であり、再生されたゲーム画面に関連付けて、ユーザCに通知される。ここで状態インジケータ450は、共有処理の形態がシェアプレイ1であることを示している。ここで状態インジケータ450は「ホストのプレイを視聴中」とするテキストメッセージであるが、ユーザ名を含んだメッセージであってもよく、たとえば「TAROさんのプレイを視聴中」、「ホストのTAROさんのプレイを視聴中」とするメッセージであってもよい。
シェアプレイの開始後、ユーザAが所定のボタンを操作すると、メンバ画面表示部124aが、チャットルームのメンバ画面を出力装置4aに表示する。
図22は、チャットルームのメンバ画面の一例を示す。図22に示すメンバ画面は、ユーザAに対するものであり、情報取得部122aが、ルームメンバのユーザ情報、具体的にはメンバのユーザ名、ユーザアイコン、プレイ中のゲームタイトルおよびゲームアイコン、およびチャット状況などの情報を取得し、メンバ画面表示部124aが、情報取得部122aが取得したユーザ情報をもとに、チャットルームのメンバ画面を生成して、出力装置4aに表示する。
情報取得部122aは、シェアプレイに関して共有処理部140aに問い合わせを行い、共有処理部140aから、ユーザAがホストユーザであり、ユーザCがゲストユーザであるシェアプレイが実行中であることを示す情報を取得する。これを受けてメンバ画面表示部124aは、どのユーザがホストユーザであるか、またはゲストユーザであるかが特定できるように、ユーザ情報を表示する。ここでメンバ画面表示部124aは、メンバ情報エリア404において、ホストユーザの情報表示欄404aとゲストユーザの情報表示欄404cとを連続して並べて配置する。
図22に示すように、メンバ画面表示部124aは、ユーザAの情報表示欄404aがユーザCの情報表示欄404cの直上にくるように、これらのユーザ情報を並べて表示する。なおメンバ画面表示部124aは、ホストユーザの情報表示欄404aを、メンバ情報エリア404における最上位に配置してもよい。なおホストユーザとゲストユーザのユーザ情報は、同一のチャットルームに参加しているどのユーザのメンバ画面においても、最上位と、最上位から2番目にくるように配置される。シェアプレイに参加していないユーザのメンバ画面において、自分以外の他のユーザがホストユーザであるか、またはゲストユーザであるかが特定できるように、他のユーザ情報が表示されることが好ましく、したがって、ホストユーザのユーザ情報が最上位に、ゲストユーザのユーザ情報が最上位から2番目に配置されることで、メンバは、どの2人のユーザがシェアプレイを行っているか容易に確認できるようになる。
ホストユーザの情報表示欄404aに関連付けて、ホストユーザであることを示すシェアプレイマーク405が付加される。また“TARO”と“RICHARD”がシェアプレイを実施していることを明確にするために、情報表示欄404aと情報表示欄404cを関連付けて示すリンク407も付加されてよい。これらにより、チャットルームのメンバは、シェアプレイを行っている2人のユーザを容易に確認できる。
シェアプレイ項目420には、シェアプレイ中であることを示すチェックマーク413が表示されるとともに、シェアプレイの実施時間を示す時間情報415が表示される。共有処理部140aにおいて、時間計測部164は、ホストユーザとゲストユーザとの間のゲーム画像の共有処理(シェアプレイ)の実施時間を計測する。本実施例において、シェアプレイの実施時間の上限は、所定時間(たとえば60分)に設定される。共有実行部144は、計測時間を時間計測部164から取得し、実施時間が所定時間(60分)に到達すると、シェアプレイを自動的に終了する。共有実行部144は、メンバ画面表示部124aに、時間計測部164が計測したシェアプレイの実施時間を通知し、したがってメンバ画面表示部124aは、シェアプレイ項目420の表示欄に、シェアプレイの実施時間を示す時間情報415を表示できる。
“Battle Lover”にいる他のメンバは、時間情報415が60分近くを示せば、ユーザA(TARO)とユーザC(RICHARD)とのシェアプレイが終了しそうであることを認識し、終了後にTAROとシェアプレイしたいユーザは、シェアプレイの終了を待つようにしてもよい。
ユーザAがシェアプレイ項目420にフォーカス枠402を配置して、決定ボタンを操作すると、シェアプレイに関する選択肢が表示される。
図23は、シェアプレイ項目420にフォーカス枠402を配置して決定操作したときに表示される選択項目を示す。この選択項目は、シェアプレイにおいてゲームの操作権をゲストに渡すことを選択するための操作権提供GUI446と、シェアプレイの終了を選択するための終了GUI448を含む。ユーザAが、フォーカス枠402を操作権提供GUI446に配置して、決定ボタンを操作すると、ダイアログ画面表示部162が、ユーザAがシェアプレイの形態を選択するためのダイアログ画面を出力装置4aに表示する。
図24は、ダイアログ画面の一例を示す。ダイアログ画面においては、ラジオボタンが表示される。ボタン449aが選択されて、OKボタンが操作されると、共有実行部144は、シェアプレイ2、つまりアシストプレイを、ゲーム画像共有の形態として設定する。一方で、ボタン449bが選択されて、OKボタンが操作されると、共有実行部144は、シェアプレイ3、つまり共同プレイを、ゲーム画像共有の形態として設定する。共有実行部144は、設定した形態を操作権管理部156に伝える。またダイアログ画面においてOKボタンが操作されると、出力装置4aの表示画面が、ゲーム画面に切り替えられる。状態取得部160は、ダイアログ画面がゲーム画面に切り替えられたことを検出し、配信処理部180は、ゲーム画像データの配信処理を行う。このとき配信処理部180は、共有実行部144により設定された共有形態を特定する情報(形態情報)とともに、ゲーム画像データを情報処理装置10cに配信する。
共有実行部144が、シェアプレイ2を共有形態として設定した場合、情報処理装置10cにおいて、情報取得部142cが、形態情報を取得し、画像データ取得部150が画像データを取得する。再生処理部152は、画像データを再生処理して出力装置4cに出力する。
図25は、ユーザCに対して表示されるゲーム画面を示す。再生処理部152は、画像データを再生処理して、出力装置4cに出力する。このとき通知部146cが、形態情報をもとに、操作権提供メッセージ454を表示して、ユーザCに、ユーザAに代わってゲームの操作権が渡されたことを通知する。
シェアプレイ2において、ユーザCは、入力装置6cを操作して、ゲームをプレイすることができる。ユーザCによる入力装置6cの操作情報は、受付部104cによって受け付けられ、操作データ送信部154から情報処理装置10aに送信される。
情報処理装置10aにおいて、情報取得部142aは、ユーザCによる入力装置6cの操作情報を受け付ける。操作権管理部156は、シェアプレイの形態に応じて、ゲームの操作権を管理しており、シェアプレイ2の実行中、操作権管理部156は、ユーザAによる操作情報を無視して、ユーザCによる操作情報のみを有効とする。シェアプレイ開始前のゲームにおいて、ユーザAが、プレイヤー1としてプレイしていた場合、操作権管理部156は、ユーザCによる操作情報を、プレイヤー1からの有効な操作情報として扱い、ユーザAによる操作情報を、無効な操作情報として扱う。
このように操作権管理部156は、シェアプレイ2の実行中、受付部104aで受け付けたユーザAの操作情報は破棄し、情報取得部142aで取得したユーザCによる入力装置6cの操作情報を有効とし、操作データ提供部158からコンテンツ実行部170aにプレイヤー1の操作情報として、ユーザCの操作情報を提供させる。これにより、シェアプレイ2の実行中は、ゲームプログラムが、ユーザCの操作情報を、プレイヤー1の操作情報と認識して、ゲームを進行する。
なおゲームは、進行状況に応じて、プレイヤーの入力装置6に、フィードバック情報を提供することがある。たとえばカーレースゲームにおいて、プレイヤーが操作する車が砂利道を走行中に、ゲームコントローラの振動子を振動させて、砂利道走行の感覚をプレイヤーに与えるような場合である。
入力装置6は、ゲームによって制御されうる被制御部として、発光部85、振動子98およびスピーカ99を有している。ゲームは、ゲームの進行状況に応じて、発光部85を点灯するための点灯制御データ、振動子98を振動するための振動制御データ、スピーカ99から音声出力するための音声制御データを出力する。以下、点灯制御データ、振動制御データ、音声制御データをまとめて「制御データ」と呼ぶが、制御データは、これらのうちのいずれか、または2つ以上であってよい。
ゲームは、プレイヤーに対して、制御データを出力する。制御データ取得部166は、コンテンツ実行部170aで実行中のコンテンツ(ゲーム)から、入力装置6の被制御部に対する制御データを取得する。ここで操作権管理部156は、シェアプレイ2の実行中、プレイヤーへのフィードバック情報として、制御データ提供部168から、ゲームの制御データを、ユーザCの入力装置6cに提供させる。なお制御データ提供部168は、制御データを、配信処理部180を介して情報処理装置10cに送信させて、ユーザCが用いる入力装置6cに提供してもよい。このようにシェアプレイ2の実行中は、ユーザCがユーザAの代わってプレイヤー1としてゲームをプレイしているため、制御データ取得部166は、ゲームからの制御データを、ユーザCの入力装置6cに提供することが好ましい。これによりユーザCは、入力装置6cで生成される振動、点灯、または音声などにより、ゲームからのフィードバックを受けることができ、ゲームの臨場感を高められる。このようにシェアプレイ2においては、ゲームからの制御データが、ゲストユーザの入力装置6に提供されて、入力装置6の被制御部が制御されることが好ましい。
なお制御データ提供部168は、ユーザCの入力装置6cだけでなく、ユーザAの入力装置6aにも制御データを提供してもよい。シェアプレイ2において、ホストユーザであるユーザAは、ゲームの操作権を有していないが、ゲストユーザであるユーザCが操作するゲーム画面をみているのはユーザCと同じである。特にシェアプレイ2は、ユーザAがクリアできないような難しいシーンを、ユーザCに自分の代わりにプレイしてもらうような状況で実行されるため、ユーザAは、一緒にプレイしている感覚を味わいたい。そこで制御データ提供部168は、ユーザAの入力装置6aにも制御データを提供することで、ユーザAの入力装置6aが制御データにより制御されることになり、ユーザAは、ユーザCとともに、ゲームからのフィードバックを与えられて、一緒に難しいシーンに立ち向かっている感覚を得られるようになる。
なおゲームフィードバックに関する別の考え方として、制御データ提供部168は、ユーザCの入力装置6cには制御データを提供せずに、ユーザAの入力装置6aのみに制御データを提供してもよい。シェアプレイ2では、ユーザCはあくまでもユーザAのゲーム操作を代行するのであり、ユーザAにはゲームの臨場感を提供する一方で、ゲストユーザであるユーザCには、そこまでのメリットを享受させなくてよいという考えである。
次に、シェアプレイ3について説明する。共有実行部144が、シェアプレイ3を共有形態として設定した場合、ユーザCは、情報処理装置10aにおいて、ログイン用のユーザアカウントを有していない。既述したように情報処理装置10aは、ユーザがログインしなければ、ゲームをプレイすることができない。なお上記したシェアプレイ2では、あくまでもログインユーザはホストユーザであり、ゲストユーザは、ホストユーザのゲーム操作を代行するだけであって、情報処理装置10aへのログインは必要とされていない。その点の事情がシェアプレイ3は異なっており、シェアプレイ3では、ゲストユーザが新たなプレイヤーとして情報処理装置10aに参加するため、ゲストユーザは、情報処理装置10aにログインしなければ、ゲームをプレイすることができない。
そこで共有実行部144がシェアプレイ3を共有形態として設定する場合には、共有実行部144が、まず最初に、ユーザCの一時的なユーザアカウントを自動生成し、この一時的なユーザアカウントを用いてユーザCを情報処理装置10aに自動ログインさせる。この自動ログインは、ユーザCが意識することなく行われてよい。
なお情報処理装置10aは、一時的なユーザアカウントでログインしたゲストユーザに対しては、セーブデータの保存や、トロフィーの獲得を許可しない。この一時的なユーザアカウントは、シェアプレイ3が終了すると、自動的に削除され、したがってゲームによってセーブデータが自動保存されたり、またトロフィーが獲得されていた場合であっても、一時的なユーザアカウントを削除することで、セーブデータやトロフィーも自動削除されるようになる。
ユーザCは、情報処理装置10aの共有実行部144が一時的なユーザアカウントを生成することで、情報処理装置10aにログインし、シェアプレイ3に参加できるようになる。情報処理装置10cにおいて、情報取得部142cが、形態情報を取得し、画像データ取得部150が画像データを取得する。再生処理部152は、画像データを再生処理して出力装置4cに出力する。
図26は、ユーザCに対して表示されるゲーム画面を示す。再生処理部152は、画像データを再生処理して、出力装置4cに出力する。このとき通知部146cが、形態情報をもとに、操作権提供メッセージ458を表示して、ユーザCにゲームの操作権が渡されたことを通知する。
なおシェアプレイ3では、ユーザAとユーザCの双方がゲームの操作権を有することとなり、したがってゲームに対しては、新たなユーザが追加されたことが通知される。なおユーザがプレイヤキャラクタを操作するゲームの場合、ユーザCは、操作権提供メッセージ458を受けた段階では、まだ、自分のプレイヤキャラクタをゲーム中で生成していない。そのためユーザCは、ゲームからの要請に応じてあらためて自分のプレイヤキャラクタを選択して、このゲームに参加することになる。たとえばゲームにおいて、ユーザAがプレイヤー1としてプレイしており、ユーザBが、プレイヤー2として参加する場合について説明する。
情報処理装置10aにおいて操作権管理部156は、シェアプレイの形態に応じて、ゲームの操作権を管理しており、シェアプレイ3の実行中、操作権管理部156は、ユーザAによる操作情報をプレイヤー1の操作情報として扱い、ユーザCによる操作情報をプレイヤー2の操作情報として扱う。
このように操作権管理部156は、シェアプレイ3の実行中、受付部104aで受け付けたユーザAによる入力装置6aの操作情報を、プレイヤー1の操作情報として操作データ提供部158からコンテンツ実行部170aに提供させ、また情報取得部142aで取得したユーザCによる入力装置6cの操作情報を、プレイヤー2の操作情報として操作データ提供部158からコンテンツ実行部170aに提供させる。これにより、シェアプレイ3の実行中は、ゲームプログラムが、ユーザAの操作情報をプレイヤー1の操作情報と認識し、ユーザCの操作情報をプレイヤー2の操作情報と認識して、ゲームを進行する。
既述したように時間計測部164は、シェアプレイの実施時間を計測する。シェアプレイの実施時間は、シェアプレイ1が開始された時点を開始点として、その後の継続時間を計測する。シェアプレイの実施時間の上限は、所定時間(たとえば60分)に設定されており、たとえば残り時間が5分になると、通知部146aが、残り時間が5分になったことをゲーム画面上に表示して、ユーザAに通知してもよい。なお、残り時間の情報は情報処理装置10cにも送信され、ユーザCが見ているゲーム画面上にも、残り時間が5分になったことが表示されてよい。
共有実行部144は、時間計測部164から計測時間を取得し、計測時間が所定時間(60分)に到達すると、シェアプレイ3を自動的に終了する。共有実行部144は、シェアプレイ3の終了時、ユーザCのために作成した一時的なユーザアカウントを破棄する。これにより、ユーザCは、情報処理装置10aからログアウトされ、ゲームによってセーブデータなどが自動保存されていた場合には、保存されたセーブデータなども破棄される。
なお情報処理装置10aと情報処理装置10cとは、ネットワーク3を介して接続されている。ネットワーク障害は様々な理由により発生しうるが、シェアプレイの実行中にネットワーク障害が発生し、情報処理装置10aと情報処理装置10cとの接続が切断されることもある。接続状況はたとえばシステムソフトウェアにより監視され、システムソフトウェアから共有処理部140aに通知される。
ここでシェアプレイ3の実行中に、情報処理装置10aと情報処理装置10cの接続が切断されたことが共有処理部140aに通知されると、時間計測部164は、実施時間の計測を一時停止する。たとえば、その接続が切断された時点で、シェアプレイの継続時間が35分であれば、時間計測部164は、タイマを一時停止して、実施時間(35分)をバッファに保持する。このとき共有実行部144は、ユーザCの一時的なユーザアカウントを破棄せずに、保持した状態を保つ。
上記したように情報処理装置10aにおいては、ユーザがログイン状態になければ、ゲームをプレイすることができない。そのためユーザCのユーザアカウントを破棄すると、必然的にユーザCは情報処理装置10aからログアウトされ、ゲームは、プレイヤー2がいなくなったことを認識して、プレイヤー2に関するデータを削除してしまう。しかしながら切断された接続は回復することもあるため、共有実行部144は、ユーザCのユーザアカウントを破棄することなく維持して、接続が回復するのを待つようにする。なお、このとき、ユーザCは、プレイヤー2としてゲームに参加しているが、当然のことながらユーザCからの操作情報はゲームに提供されないため、プレイヤー2が操作するプレイヤーキャラクタは、ゲーム中で無操作の状態(いわば棒立ちの状態)にある。なお、ユーザAからの操作情報はゲームに提供可能であるため、プレイヤー1が操作するプレイヤーキャラクタは、ユーザAからの操作情報により動作できる。
シェアプレイによりゲーム画像をストリーミング配信している間、共有実行部144は他のユーザからのシェアプレイの参加を受け付けない。図18や図19に関して、シェアプレイに参加するためには、チャットルームのメンバ画面に用意された参加用のユーザインタフェース(参加GUI440、442)を用いることを説明したが、シェアプレイの実行中には、そもそも参加用のユーザインタフェースがルームメンバに提供されず、したがって、他のユーザは、ユーザAがホストユーザとなるシェアプレイには、そもそも参加の機会を与えられていない。
しかしながら、情報処理装置10aと情報処理装置10cの接続が切断されると、共有実行部144は、ユーザCの一時的なユーザアカウントを維持するものの、他のユーザからのシェアプレイへの参加を受付可能とする。このとき通知部128aは、“Battle Lover”のメンバ、すなわちユーザAと同じチャットルームに参加している他のメンバに、ユーザAがシェアプレイを可能な状態にあることを示すメッセージを通知する。これにより他のメンバは、ユーザAのシェアプレイに参加可能であることを知ることができる。
以下、ユーザBの出力装置4bに表示されるチャットルームのメンバ画面について説明する。
図27は、チャットルームのメンバ画面の一例を示す。ここでユーザBは、“Battle Lover”に参加しているメンバであって、図14におけるユーザ“MIKE”であるとする。図14のメンバ画面に示されるように、ユーザBは、ボイスチャットをしている。
ユーザBに対して表示されるメンバ画面において、シェアプレイ項目420の時間情報は、35分を示しており、この時間情報は、情報処理装置10aと情報処理装置10cの接続切断中は、変化しない。なお、この時間情報は、情報処理装置10aと情報処理装置10cの接続の切断時に、それまで時間計測部164により計測されたシェアプレイの実施時間を示している。
また、ホストユーザの情報表示欄404aに関連付けて、シェアプレイが接続切断により一時停止中であることを示す接続切断マーク409が付加される。図22と比較すると、シェアプレイ中は、シェアプレイマーク405が表示されていたが、シェアプレイの一時停止中は、シェアプレイマーク405が、接続切断マーク409に変更される。これによりユーザBは、現在シェアプレイが一時停止の状態にあり、またユーザBが参加できることを認識する。
ユーザBは、シェアプレイ項目420にフォーカス枠402を配置して決定操作をすることで、図18に示した参加GUI440を表示させられる。ユーザBは、フォーカス枠402を参加GUI440に配置して、入力装置6bの決定ボタンを操作することで、情報処理装置10bは、情報処理装置10aに参加要求を送信して、ユーザAのシェアプレイへの参加を申し込むことができる。
情報処理装置10aにおいて、情報取得部142aが、情報処理装置10bから、ユーザBが参加可能であることを示す情報を取得すると、共有実行部144が、ユーザCと一時停止していたシェアプレイを終了し、ユーザBとのシェアプレイを開始する。共有実行部144は、ユーザCとの間のシェアプレイの終了時、ユーザCのユーザアカウントを破棄する。これによりユーザCとのシェアプレイの実施時間を計測していた時間計測部164の計測値はリセットされ、時間計測部164は、ユーザBとのシェアプレイの実施時間の計測を開始する。
このように、接続の切断により、シェアプレイが一時停止される場合は、共有実行部144は、他のユーザからのシェアプレイの参加を受け付け、他のユーザが参加する場合には、ユーザCとのシェアプレイを終了し、新たなユーザとのシェアプレイを開始する。
なお、他のユーザが参加する前に、情報処理装置10aと情報処理装置10cとの間の切断していた接続が回復することもある。この場合、共有実行部144は、ユーザAとユーザCとのシェアプレイを再開し、再開後は、他のユーザのシェアプレイへの参加を受け付けないようにする。時間計測部164は、一時停止していた実施時間の計測を、再接続が行われたときに、再開する。したがって時間計測部164は、35分で一時停止していたタイマ値を、35分からカウントを再開する。このように、接続不調により、シェアプレイが一時停止されていた場合には、時間計測部164は、その一時停止期間中の時間を計測せず、実際に接続していた期間を、実施時間として計測することで、ゲストユーザは、所定時間(60分)の間、シェアプレイを楽しむことが可能となる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。たとえば実施例では、コンテンツの一例としてゲームソフトウェアを示したが、コンテンツは、ユーザ操作によって編集可能な静止画像や動画像であってもよく、また早送りや一時停止などのユーザ操作を可能とする映画などであってもよい。
また実施例においてシェアプレイは、2人のユーザの間だけで行われることを説明したが、シェアスクリーンの形態であれば、3人以上のユーザの間で画像データの共有が行われてもよい。また本実施例においてシェアプレイは、両者がチャット接続していることを前提としているが、これはシェアプレイへの入口として両者がチャット接続をしていることを例として説明したに過ぎず、シェアプレイを行う両者は、その前提としてチャット接続をしていなくてもよい。
シェアプレイにおいて、ゲストユーザの入力装置6cの発光部85は、シェアプレイの形態によって異なる色で点灯されてよい。シェアプレイ1においては、入力装置6cの発光部85は、情報処理装置10cのシステムソフトウェアにより設定された点灯色で発光してよい。シェアプレイ2においては、入力装置6cは、ホストユーザの入力装置6aとして振る舞うために、入力装置6cの発光部85は、入力装置6aの発光部85と同じ点灯色で発光してよい。またシェアプレイ3においては、入力装置6cは、ホストユーザの情報処理装置10aにおいて、入力装置6aとは異なる入力装置として振る舞うため、情報処理装置10aのシステムソフトウェアが設定した点灯色で発光してよい。
なおシェアプレイ2、3においては、ゲストユーザの情報処理装置10cには、ゲストユーザが参加しているゲームのプレイヤー向けの音声データが提供されてよい。なおシェアプレイ1においては、ホストユーザ向けの音声データが提供されてよい。