以下、本発明の一実施形態について図面に基づき詳細に説明する。
図1は、本発明の一実施形態に係るゲームシステム1の全体構成の一例を示す図である。図1に示すように、本実施形態に係るゲームシステム1は、いずれもコンピュータを中心に構成されたゲームサーバ10とクライアント12(12−1、12−2、12−3、・・・、12−n)とを含んでいる。ゲームサーバ10、クライアント12は、インターネットなどのコンピュータネットワーク14に接続されている。そして、ゲームサーバ10、クライアント12は、互いに通信可能になっている。
ゲームサーバ10は、当該ゲームサーバ10にインストールされている、複数のプレイヤが参加するゲームのプログラムを実行するサーバコンピュータである。本実施形態では、それぞれ互いに異なるクライアント12を使用するユーザがプレイヤとして当該ゲームに参加する。ゲームサーバ10は、図1に示すように、例えば、制御部10aと、記憶部10bと、通信部10cと、を含む。制御部10aは、例えばCPU等のプログラム制御デバイスであって、記憶部10bに記憶されたプログラムに従って各種の情報処理を実行する。記憶部10bは、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。通信部10cは、例えばコンピュータネットワーク14を介してクライアント12との間でデータを授受するための通信インタフェースである。ゲームサーバ10は、通信部10cを経由して各クライアント12との間で情報の送受信を行う。
クライアント12は、ゲームサーバ10のユーザが利用するコンピュータであり、例えば、パーソナルコンピュータ、ゲームコンソール、テレビ受像機、携帯型ゲーム装置、携帯情報端末、などである。そして、クライアント12は、例えば、制御部12aと、記憶部12bと、通信部12cと、出力部12dと、入力部12eと、を含む。制御部12aは、例えばCPU等のプログラム制御デバイスであって、記憶部12bに記憶されたプログラムに従って各種の情報処理を実行する。本実施形態に係る制御部12aには、CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。記憶部12bは、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部12bには、制御部12aによって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部12bには、GPUにより画像が描画されるフレームバッファの領域が確保されている。通信部12cは、例えばコンピュータネットワーク14を介してゲームサーバ10との間でデータを授受するための通信インタフェースである。クライアント12は、通信部12cを経由してゲームサーバ10や他のクライアント12との間で情報の送受信を行う。出力部12dは、例えば制御部12aから入力される指示に従って情報を表示出力するディスプレイ等の表示部や音声出力するスピーカ等の音声出力部である。入力部12eは、例えばユーザが行った操作の内容を制御部12aに出力するゲームコントローラ、タッチパッド、マウス、キーボード、マイク等である。
本実施形態に係るゲームサーバ10は、当該ゲームサーバ10にインストールされている、複数のプレイヤが参加するゲームのプログラムを実行する。以下、当該ゲームが3人のプレイヤによってプレイされている状況を例に、本実施形態に係るゲームシステム1の動作をさらに説明する。なお、当該3人のプレイヤの名称は、それぞれ、プレイヤA、プレイヤB、及び、プレイヤCであることとする。そして、クライアント12−1はプレイヤAによって使用されており、クライアント12−2はプレイヤBによって使用されており、クライアント12−3はプレイヤCによって使用されているものとする。
本実施形態に係るゲームサーバ10には、プレイヤ間の関係を管理するためのデータが登録されており、当該データに基づいて、あるプレイヤの友人であるプレイヤが特定可能となっている。以下、友人であるプレイヤをフレンドと呼ぶこととする。本実施形態では例えば、プレイヤCはプレイヤAのフレンドであり、プレイヤBはプレイヤAのフレンドではないこととする。また本実施形態に係るゲームサーバ10には、フレンドのなかでも特に親しい友人であるプレイヤを登録できるようになっている。以下、特に親しい友人であるプレイヤを特定フレンドと呼ぶこととする。
本実施形態に係るクライアント12には、システムプログラムがインストールされている。また本実施形態に係るクライアント12には、ゲームサーバ10で実行されるプログラムに対応する、クライアント12側のゲームのプログラムがインストールされている。当該ゲームのプログラムは、クライアント12にインストールされているシステムプログラム上で動作する。そして本実施形態では、クライアント12で実行されるゲームのプログラムとゲームサーバ10で実行されるゲームのプログラムとが互いに通信を行い連携することで当該ゲームがプレイされることとなる。
本実施形態では、当該ゲームのプレイ内容を示すプレイ画像20が、クライアント12のディスプレイに表示される(図2〜図4、図6〜図13、図21参照)。本実施形態では、クライアント12のフレームバッファに描画されたプレイ画像20が当該クライアント12のディスプレイに表示されることとなる。そして表示されるプレイ画像20は所定のフレームレートで更新される。
図2は、クライアント12−1のディスプレイに表示されるプレイ画像20−1の一例を示す図である。当該プレイ画像20−1は、当該ゲームにおけるプレイヤAのプレイ内容を示す。図2に示すプレイ画像20−1には、それぞれプレイヤに対応付けられるオブジェクトであるキャラクタオブジェクトCOが3個示されている。具体的には、プレイ画像20−1には、プレイヤAのキャラクタオブジェクトCOa、プレイヤBのキャラクタオブジェクトCOb、及び、プレイヤCのキャラクタオブジェクトCOcが示されている。そして、キャラクタオブジェクトCOの上には、当該キャラクタオブジェクトCOに対応付けられるプレイヤの名称等の識別情報が配置されている。図2に示すプレイ画像20−1の左下には、当該プレイ画像20−1が表示されるクライアント12−1のユーザであるプレイヤAの名称等の識別情報が、プレイヤAのパワーゲージとともに配置されている。そして、図2に示すプレイ画像20−1の左上には、当該ゲームに参加している他のプレイヤであるプレイヤB及びプレイヤCについて、当該プレイヤの名称等の識別情報が当該プレイヤのパワーゲージとともに配置されている。
図3は、クライアント12−2のディスプレイに表示されるプレイ画像20−2の一例を示す図である。当該プレイ画像20−2は、当該ゲームにおけるプレイヤBのプレイ内容を示す。図3に示すプレイ画像20−2についても、キャラクタオブジェクトCOの上に、当該キャラクタオブジェクトCOに対応付けられるプレイヤの識別情報が配置されている。また、図3に示すプレイ画像20−2の左下には、当該プレイ画像20−2が表示されるクライアント12−2のユーザであるプレイヤBの名称等の識別情報が、プレイヤBのパワーゲージとともに配置されている。そして、図3に示すプレイ画像20−2の左上には、当該ゲームに参加している他のプレイヤであるプレイヤA及びプレイヤCについて、当該プレイヤの名称等の識別情報が当該プレイヤのパワーゲージとともに配置されている。
本実施形態では、仮想3次元空間内に配置されたキャラクタオブジェクトCOを、当該仮想空間内に配置されたプレイヤAに対応付けられる視点から見た様子が図2に例示するプレイ画像20−1として示される。そして当該キャラクタオブジェクトCOを、当該仮想空間内に配置されたプレイヤBに対応付けられる視点から見た様子が図3に例示するプレイ画像20−2として示される。
本実施形態では、各ユーザは、ゲームのプレイ中に、当該ユーザが使用しているクライアント12のディスプレイに表示されているプレイ画像20のキャプチャを要求できるようになっている。以下、ユーザが使用しているクライアント12のディスプレイに表示されるプレイ画像20を、当該ユーザのプレイ画像20と呼ぶこととする。また、プレイ画像20のキャプチャを要求するユーザをキャプチャ要求ユーザと呼ぶこととする。
本実施形態では、ユーザが例えばコントローラの所定のボタンを押下するなどといった所定のキャプチャ要求操作を行うと、キャプチャ要求ユーザのプレイ画像20がキャプチャされて、キャプチャ要求ユーザが使用するクライアント12の記憶部12bに保存される。
本実施形態では、キャプチャ要求操作の一例として、ディスプレイに所定のフレームレートで表示される一連のプレイ画像20から構成されるプレイ動画像のキャプチャ開始要求操作が行われる。そして、キャプチャ開始要求操作に応じて、キャプチャ要求ユーザが使用するクライアント12のディスプレイに表示されているプレイ動画像のキャプチャが開始される。このようにしてキャプチャされるプレイ動画像は、エンコードされてクライアント12の記憶部12bに記憶されることとなる。なお、ディスプレイに表示されるプレイ動画像のフレームレートとキャプチャされるプレイ動画像のフレームレートとが異なっていてもよい。プレイ動画像のキャプチャは、キャプチャ要求ユーザが所定のキャプチャ終了要求操作を行うまで継続される。以下、キャプチャ開始要求操作が行われたタイミングからキャプチャ終了要求操作を行うまでの間の期間を、キャプチャ対象期間と呼ぶこととする。
本実施形態では、キャプチャ要求ユーザは、キャプチャ対象期間内に表示されるプレイ画像20のそれぞれをキャプチャするか否かを制御するキャプチャ条件を設定することができるようになっている。キャプチャ条件が設定されていない場合は上述のようにキャプチャ対象期間に表示される一連のプレイ画像20がプレイ動画像として保存される。一方、キャプチャ条件が設定されている場合には、キャプチャ条件を満足するフレームのプレイ画像20が保存される。
キャプチャ条件としては例えば、プレイ動画像のキャプチャが開始される条件、プレイ動画像のキャプチャが終了される条件、キャプチャを行う期間、などが設定可能である。より具体的には、例えば、所定のイベントの発生の15秒前から15秒後までプレイ動画像のキャプチャを行う、所定のスコアを超えたタイミングから10秒間プレイ動画像のキャプチャを行う、などといった条件がキャプチャ条件として設定可能である。
例えば、プレイヤBによるプレイ動画像のキャプチャが開始されたとする。この場合、クライアント12−2のディスプレイには、図4に例示するプレイ画像20−2が表示される。当該プレイ画像20−2の左下に配置されている、プレイヤBの識別情報の右には、当該識別情報に対応付けられるユーザについてはキャプチャ対象期間内であることを表す画像I1aが配置される。当該画像I1aは、プレイ動画像のキャプチャ対象期間が終了すると、プレイ画像20−2から消去される。当該プレイ画像20−2の右上には、プレイ動画像のキャプチャが開始されたことを表す画像I2が配置される。当該画像I2は、プレイ動画像のキャプチャが開始されてから所定時間が経過すると、プレイ画像20−2から消去される。
また本実施形態では、当該ゲームに参加するプレイヤであるユーザは、プレイ画像20のキャプチャを制御できるようになっている。ここでは例えば、プレイヤBであるユーザによるプレイ画像20のキャプチャが、プレイヤAであるユーザには許可されていないこととする。この場合、図4に示すように、キャプチャされるプレイ画像20−1には、プレイヤAの識別情報、ここではプレイヤAであるユーザの名称の代わりに、例えば「Anonymous」などといった匿名性の高い代替文字列ASが配置される。このようにして本実施形態では例えば、キャプチャを許可しないユーザの識別情報がキャプチャされないよう制御されることとなる。以下、上述の例におけるユーザの識別情報などといったキャプチャされないよう制御される情報を秘匿情報と呼ぶこととする。
なお、秘匿情報は、ユーザの識別情報に限定されない。また、上述の例では秘匿情報は代替文字列ASに置換されるが、例えば秘匿情報にモザイク処理が実行されるようにすることで、当該秘匿情報がキャプチャされないよう制御されても構わない。また例えば、プレイヤのキャラクタオブジェクトCOが秘匿情報として取り扱われても構わない。この場合、プレイ画像20のキャプチャを許可していないプレイヤのキャラクタオブジェクトCOにモザイク処理が実行されるようにすることで、当該キャラクタオブジェクトCOがキャプチャされないよう制御されても構わない。
本実施形態では、プレイ画像のキャプチャ制御は、図5に例示する、ユーザの識別情報に関連付けられたポリシーデータに基づいて行われる。以下、あるユーザの識別情報に関連付けられたポリシーデータを、当該ユーザのポリシーデータと呼ぶこととする。本実施形態では例えば、ユーザは当該ユーザのポリシーデータの値を設定できるようになっている。そして本実施形態では例えば、ユーザが使用するクライアント12とゲームサーバ10との通信が開始された際などに、当該ユーザのポリシーデータが当該クライアント12からゲームサーバ10に送信される。例えば図5には、プレイヤAであるユーザのポリシーデータの値として「フレンドに対して許可する」が設定されている。上述のようにプレイヤAはプレイヤBのフレンドとしてゲームサーバ10に登録されていないため、この場合は図4に示すように、プレイヤAの秘匿情報はキャプチャされないよう制御されることとなる。また図5には、プレイヤCであるユーザのポリシーデータの値として「許可する」が設定されている。この場合は図4に示すように、プレイヤCの秘匿情報はキャプチャされることとなる。また図5には、プレイヤBに関連付けられているポリシーデータの値として「許可しない」が設定されている。そのため、例えばプレイヤAやプレイヤCがプレイ画像20をキャプチャした際には、プレイヤBの秘匿情報はキャプチャされないよう制御されることとなる。
また、ポリシーデータの値として例えば「特定フレンドに対して許可する」が設定されていてもよい。この場合は、特定フレンドとして登録されているプレイヤの秘匿情報はキャプチャされ、それ以外のプレイヤの秘匿情報はキャプチャされないよう制御されることとなる。
また、ポリシーデータの値としては、他には例えば、プレイ画像20又はプレイ動画像のキャプチャが許可される回数、プレイ動画像のキャプチャが許可される時間の長さ、プレイ画像20又はプレイ動画像のキャプチャが許可される場面、などが設定されてもよい。
以上のようにして、本実施形態では、ユーザがポリシーデータの値を設定することで当該ユーザは他のユーザによるプレイ画像20のキャプチャを制御できる。以上の例では、例えば他のユーザによりキャプチャされるプレイ画像20に当該ユーザの秘匿情報が配置されるか否かが制御される。このようにして以上の例では、ユーザの意図に反して、当該ユーザの秘匿情報が配置されたプレイ画像20が他のユーザによりキャプチャされることを防ぐことができることとなる。
そして本実施形態では、プレイ画像20がキャプチャされる際には、少なくともキャプチャ要求ユーザ以外のユーザに、プレイ画像20がキャプチャされることが通知される。なおプレイ画像20がキャプチャされることが、キャプチャ要求ユーザに通知されても構わない。以下、プレイ画像20がキャプチャされることが通知されるユーザを被キャプチャユーザと呼ぶこととする。
例えばプレイヤBによるプレイ動画像のキャプチャが開始されると、プレイヤA及びプレイヤCは被キャプチャユーザとなる。図6は、プレイヤBによるプレイ動画像のキャプチャが開始された際に、被キャプチャユーザであるプレイヤAに対応付けられるクライアント12−1のディスプレイに表示されるプレイ画像20−1の一例を示す図である。当該プレイ画像20−1の左上に配置されている、プレイヤBの識別情報の右には、当該識別情報に対応付けられるユーザについてはキャプチャ対象期間内であることを表す画像I1bが配置される。本実施形態では、画像I1bは、画像I1aとは例えば色等、表示態様が異なる。例えば画像I1aは黄色であり画像I1bはグレー色である。本実施形態では、画像I1aとは表示態様が異なる画像I1bが表示されるようにすることで、キャプチャ対象期間内であるがプレイヤAの秘匿情報はキャプチャされていないということを、プレイヤAであるユーザは認識できる。当該画像I1bは、キャプチャ対象期間が終了するとプレイ画像20−2から消去される。当該プレイ画像20−1の右上には、プレイヤBによってプレイ動画像のキャプチャが開始されたことを表す画像I3が配置される。当該画像I3は、プレイ動画像のキャプチャが開始されてから所定時間が経過すると、プレイ画像20−1から消去される。
ここで例えば、プレイヤAであるユーザが所定のキャプチャ許可操作を行った場合、図7に例示するプレイ画像20−2がクライアント12−2に表示される。当該プレイ画像20−2には、プレイヤAの秘匿情報、ここでは識別情報が配置されている。当該プレイ画像20−2はキャプチャされてクライアント12−2の記憶部12bに保存されることとなる。
またプレイヤAであるユーザが所定のキャプチャ許可操作を行った場合、図8に例示する、プレイヤBの識別情報の右に画像I1aが配置されたプレイ画像20−1がクライアント12−1に表示される。このようにして、プレイヤAであるユーザは、当該ユーザの秘匿情報が配置されたプレイ画像20がプレイヤBによってキャプチャされていることを認識できることとなる。
以上のように、本実施形態では、クライアント12−2のユーザがプレイ画像20をキャプチャすると、そのことがクライアント12−1のユーザに通知される。図6の例ではプレイヤBの識別情報の右に画像I1aが、図8の例ではプレイヤBの識別情報の右に画像I1aが表示されるようにすることで、プレイヤBであるユーザによってプレイ画像20がキャプチャされることがプレイヤAであるユーザに通知される。このようにして、本実施形態では、ユーザが、他のユーザによってプレイ画像20がキャプチャされることに気付くことができることとなる。そのため、例えばユーザが意図しない形で他のユーザによってプレイ画像20がキャプチャされることを防ぐことができる。
また例えば、図8に示すように、クライアント12−2でキャプチャされるプレイ画像20−2内にキャラクタオブジェクトCOaが配置されている、すなわちプレイヤBに対応付けられる視点の視界にキャラクタオブジェクトCOaが入っていることとする。この場合に本実施形態では、図8に示すように、プレイ画像20−1の右上には、プレイヤAに対応付けられるキャラクタオブジェクトCOaがキャプチャされていることを表す画像I4が配置される。このようにして本実施形態では、キャプチャされている画像に被キャプチャユーザに対応付けられるオブジェクトが配置されている場合と配置されていない場合とで被キャプチャユーザに通知される内容が異なる。そのため本実施形態によれば、ユーザは、当該ユーザに対応付けられるオブジェクトが配置されたプレイ画像20がキャプチャされていることを認識できることとなる。
なお、被キャプチャユーザに通知される内容が異なるようにする手法は上述のものに限定されない。例えばクライアント12−2でキャプチャされるプレイ画像20−2内にキャラクタオブジェクトCOaが配置されていない場合は画像I1aが配置されたプレイ画像20−1がクライアント12−1のディスプレイに表示されてもよい。そして、クライアント12−2でキャプチャされるプレイ画像20−2内にキャラクタオブジェクトCOaが配置されている場合は画像I1a及び画像I4が配置されたプレイ画像20−1がクライアント12−1のディスプレイに表示されてもよい。あるいは例えば、キャプチャされるプレイ画像20−2内にキャラクタオブジェクトCOaが配置されている場合にプレイ画像20−1内に画像I1aが配置され、そうでない場合に、プレイ画像20−1内に画像I1aが配置されないようにしてもよい。
また本実施形態では、例えば図4及び図6に示すような、プレイヤAの秘匿情報がキャプチャされないよう制御されている場合に、プレイヤBであるユーザはキャプチャの許可要請を行えるようになっている。例えば、プレイヤAの秘匿情報がキャプチャされないよう制御されている場合に、プレイヤBであるユーザが所定の許可要請操作を行ったとする。この場合、図9に示すように、クライアント12−1には、プレイヤBからの許可要請通知を受け付けたことを表す画像I5が配置されたプレイ画像20−1が表示されることとなる。
ここでプレイヤAであるユーザが所定のキャプチャ拒否操作を行った場合には、図10に示すような、プレイヤBにキャプチャが拒否されたことを表す画像I6が右上に配置されたプレイ画像20−2がクライアント12−2のディスプレイに表示されることとなる。一方プレイヤAであるユーザが上述のキャプチャ許可操作を行った場合は、プレイヤBにキャプチャが許可されたことを表す画像が右上に配置されたプレイ画像20−2がクライアント12−2のディスプレイに表示されることとなる。またこの場合は、上述のように図7に例示するプレイ画像20−2がキャプチャされてクライアント12−2の記憶部12bに保存されることとなる。このようにして本実施形態では、秘匿情報のキャプチャを拒否しているユーザに対して当該秘匿情報のキャプチャを許可するよう働きかけることができる。また当該要請を行ったユーザは当該秘匿情報のキャプチャの可否を認識できることとなる。
なお、プレイ動画像のキャプチャが行われている際に表示されるキャプチャ要求ユーザのプレイ画像20−2の態様は図4や図7に示すものに限定されない。例えば図11に示すように、画像I1aの代わりに、録画中であることを示す画像I7が右上に配置されたプレイ画像20−2が表示されるようにすることで、クライアント12−2でプレイ動画像のキャプチャが行われていることが示されてもよい。
また、複数のユーザによってプレイ画像20のキャプチャが行われても構わない。図12には、プレイヤBであるユーザとプレイヤCであるユーザがプレイ画像20のキャプチャを行っている際に第1のクライアント12−1のディスプレイに表示されるプレイ画像20−1が示されている。
図12の例では、図5に示すポリシーデータに基づいてプレイ動画像のキャプチャが制御されている。そのため上述のように、プレイヤAの秘匿情報が配置されたプレイ画像20−2はプレイヤBであるユーザによってキャプチャされないよう制御されている。そのため、図12に示すプレイ画像20−1では、プレイヤBのキャラクタオブジェクトCObの上に画像I1bが配置される。
また、図5に示すように、プレイヤAに関連付けられているポリシーデータの値として「フレンドに対して許可する」が設定されている。そして上述のようにプレイヤCはプレイヤAのフレンドである。よって、プレイヤAの秘匿情報が配置されたプレイ画像20はプレイヤCによってキャプチャされることとなる。ここで、図12に示すプレイ画像20が表示されるフレームについては、プレイヤCであるユーザが設定したキャプチャ条件を満足していないこととする。この場合本実施形態では、図12に示すプレイ画像20−1において、プレイヤCのキャラクタオブジェクトCObの上に画像I1cが配置される。画像I1cは、画像I1aや画像I1bとは例えば色等、表示態様が異なる。例えば画像I1cは青色である。なお、プレイヤCであるユーザが設定したキャプチャ条件を満足している場合は、当該位置に画像I1aが配置されることとなる。このように、キャプチャ条件を満足していないキャプチャ要求ユーザ、あるいは、キャプチャ条件を満足しているキャプチャ要求ユーザに対応付けられる位置にそのことを表す画像が配置されたプレイ画像20がディスプレイに表示されるようにしてもよい。こうすれば、被キャプチャユーザは、当該フレームが、キャプチャ要求ユーザが設定したキャプチャ条件を満足しているフレームであるか否かを区別して認識することができる。なお、画像I1bや画像I1cの色が、プレイ画像20をキャプチャしているユーザに対応付けられるものになっていたり、画像I1bや画像I1cにプレイヤに対応付けられる番号が付されていたりしてもよい。
また、画像I1a、画像I1b、及び、画像I1cは、キャプチャ要求ユーザに対応付けられる位置であれば、プレイ画像20内のどこに配置されていても構わない。例えば図12に示すように、キャプチャ要求ユーザの識別情報の右ではなく、キャプチャ要求ユーザに対応するキャラクタオブジェクトCOの上に画像I1bや画像I1cが配置されるようにしてもよい。そしてこのことによって、キャプチャ要求ユーザによってプレイ画像20がキャプチャされていることが被キャプチャユーザに通知されるようにしてもよい。
また、ゲームサーバ10が、ユーザのポリシーデータに関わらず、プレイ画像20のキャプチャを一律に制御してもよい。例えば、ゲームサーバ10は、プレイ画像20のキャプチャが一律に禁止されるよう制御してもよい。この場合は、例えばプレイヤBであるユーザがキャプチャ開始要求操作を行うと、クライアント12−2のディスプレイに、図13に示すような、プレイ動画像のキャプチャが禁止されていることを示す画像I8が配置されたプレイ画像20−2が表示される。なお、ゲームサーバ10においてプレイ動画像のキャプチャの開始が許可されなかった場合に、図13に例示するプレイ画像20−2がクライアント12−2のディスプレイに表示されても構わない。
また例えば、表示されるプレイ画像20と保存されるプレイ画像20とが異なっていてもよい。例えば、クライアント12−2のディスプレイには図4に示すプレイ画像20−2が表示されるが、当該プレイ画像20−2から画像I1a及び画像I2が消去された画像が保存されても構わない。
以下、プレイ画像20がキャプチャされることの通知やプレイ画像20のキャプチャ制御に関するゲームシステム1の機能並びにゲームシステム1で実行される処理についてさらに説明する。
図14は、本実施形態に係るゲームサーバ10で実現される機能の一例を示す機能ブロック図である。なお、本実施形態に係るゲームサーバ10で、図14に示す機能のすべてが実現される必要はなく、また、図14に示す機能以外の機能が実現されていても構わない。
本実施形態に係るゲームサーバ10は、機能的には例えば、サーバ側ポリシーデータ記憶部30、サーバ側キャプチャ状況データ記憶部32、キャプチャ可否受付部34、ゲーム処理実行部36、キャプチャ要求受付部38、通知部40、を含んでいる。サーバ側ポリシーデータ記憶部30、サーバ側キャプチャ状況データ記憶部32は、記憶部10bを主として実装される。ゲーム処理実行部36は、制御部10a及び通信部10cを主として実装される。キャプチャ要求受付部38、通知部40は、通信部10cを主として実装される。
そして、以上の機能は、コンピュータであるゲームサーバ10にインストールされた、以上の機能に対応する指令を含むプログラムを、ゲームサーバ10の制御部で実行することにより実装されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどのコンピュータネットワークを介してゲームサーバ10に供給される。
サーバ側ポリシーデータ記憶部30は、図5に例示する、ユーザの識別情報に関連付けられたポリシーデータを記憶する。本実施形態に係るポリシーデータは、プログラムの実行内容を示す画像のキャプチャ、本実施形態では例えばプレイ画像20のキャプチャを要求するキャプチャ要求ユーザに当該画像がキャプチャされることの可否を示すデータである。
サーバ側キャプチャ状況データ記憶部32は、プレイ画像20のキャプチャ状況を示すキャプチャ状況データを記憶する。キャプチャ状況データには、例えば、キャプチャ要求ユーザの識別情報、キャラクタオブジェクトCOの位置や姿勢、上述のキャプチャ条件、などが含まれる。以下、あるユーザの識別情報が含まれるキャプチャ状況データを当該ユーザのキャプチャ状況データと呼ぶこととする。本実施形態では、キャプチャ要求ユーザが複数存在する場合は、サーバ側キャプチャ状況データ記憶部32にはキャプチャ要求ユーザの数だけのキャプチャ状況データが記憶されることとなる。
また本実施形態では、キャプチャ状況データに、当該フレームがキャプチャ条件を満足するフレームであるか否かを示すステータス情報が関連付けられている。ここでは例えば、当該フレームがキャプチャ条件を満足しないフレームである場合にはステータス情報の値として「停止」が設定され、当該フレームがキャプチャ条件を満足するフレームである場合にはステータス情報の値として「録画」が設定されることとする。
キャプチャ可否受付部34は、プログラムの実行内容を示す画像のキャプチャを要求するユーザによって当該画像がキャプチャされることの可否を、当該プログラムを実行するユーザから受け付ける。キャプチャ可否受付部34は、本実施形態では、例えば、キャプチャ要求ユーザにプレイ画像20がキャプチャされることの可否を、被キャプチャユーザから受け付ける。より具体的には、キャプチャ可否受付部34は、例えば被キャプチャユーザが使用するクライアント12から送信される、当該被キャプチャユーザのポリシーデータを受信する。そして、キャプチャ可否受付部34は、受信したポリシーデータをサーバ側ポリシーデータ記憶部30に記憶させる。
ゲーム処理実行部36は、ゲームサーバ10にインストールされているゲームのプログラムを実行する。ゲーム処理実行部36は、本実施形態では例えば、当該ゲームに参加するプレイヤであるユーザが使用する各クライアント12から送信される当該ゲームに関する操作入力を示す操作入力情報を所定のフレームレートで受信する。そして、ゲーム処理実行部36は、直前のフレームにおけるゲームの実行状況を示すゲーム状況データ及び受信した操作入力情報に基づいて、当該フレームにおけるゲーム状況データを生成する。このようにして本実施形態では、所定のフレームレートでゲーム状況データが生成される。ゲーム状況データは、例えば、キャラクタオブジェクトCOの位置や姿勢、各プレイヤに対応付けられる視点の位置や視線方向などを示すデータである。そして本実施形態では、ゲーム処理実行部36は、所定のフレームレートで、当該フレームにおいて生成されたゲーム状況データを各クライアント12に送信する。
キャプチャ要求受付部38は、キャプチャ要求ユーザが使用するクライアント12が送信するキャプチャ要求を受け付ける。本実施形態では例えば、キャプチャ要求ユーザのキャプチャ状況データに関連付けられている、プレイ動画像のキャプチャ開始要求やキャプチャ終了要求を受け付ける。
本実施形態では、キャプチャ要求受付部38は、プレイ動画像のキャプチャ開始要求を受け付けた際には、当該キャプチャ開始要求に関連付けられているキャプチャ状況データを、サーバ側キャプチャ状況データ記憶部32に記憶させる。また、キャプチャ要求受付部38は、プレイ動画像のキャプチャ終了要求を受け付けた際には、当該キャプチャ終了要求に関連付けられているキャプチャ状況データを、サーバ側キャプチャ状況データ記憶部32から削除する。
またキャプチャ要求受付部38は、キャプチャ対象期間内については、所定のフレームレートで、キャプチャ要求ユーザの識別情報に関連付けられたステータス情報を受け付ける。上述のように、キャプチャ要求ユーザが設定したキャプチャ条件を満足するフレームである場合は、値が「録画」であるステータス情報を受け付け、そうでない場合は値が「停止」であるステータス情報を受け付ける。そして、キャプチャ要求受付部38は、サーバ側キャプチャ状況データ記憶部32に記憶されている、当該キャプチャ要求ユーザのキャプチャ状況データに関連付けられているステータス情報の値を、受け付けたステータス情報の値に更新する。
通知部40は、キャプチャ要求の受付に応じて、被キャプチャユーザに、ゲームサーバ10で実行されているプログラムの実行内容を示す画像がキャプチャされることを通知する。通知部40は、本実施形態では例えば、プレイ動画像のキャプチャ開始要求を受け付けた際には、キャプチャ要求ユーザのキャプチャ状況データが関連付けられたプレイ動画像のキャプチャ開始通知を被キャプチャユーザが使用するクライアント12に送信する。また通知部40は、プレイ動画像のキャプチャ終了要求を受け付けた際には、キャプチャ要求ユーザのキャプチャ状況データが関連付けられたプレイ動画像のキャプチャ終了通知を被キャプチャユーザが使用するクライアント12に通知する。なお本実施形態では、キャプチャ開始通知やキャプチャ終了通知は、キャプチャ要求ユーザにも送信されることとなる。
また本実施形態では、通知部40は、キャプチャ要求ユーザの識別情報を通知することで当該キャプチャ要求ユーザによってプレイ画像20がキャプチャされることを被キャプチャユーザに通知する。通知部40は、具体的には例えば、キャプチャ要求ユーザの識別情報を含むキャプチャ状況データが関連付けられたキャプチャ開始通知を被キャプチャユーザに送信する。
また本実施形態では、通知部40は、当該ゲームに参加するプレイヤであるユーザのクライアント12に、当該ユーザを含む、当該ゲームに参加するプレイヤであるユーザのポリシーデータを送信する。
図15は、本実施形態に係るクライアント12で実現される機能の一例を示す機能ブロック図である。なお、本実施形態に係るクライアント12で、図15に示す機能のすべてが実現される必要はなく、また、図15に示す機能以外の機能が実現されていても構わない。
本実施形態に係るクライアント12は、機能的には例えば、クライアント側ポリシーデータ記憶部50、クライアント側キャプチャ状況データ記憶部52、操作信号受付部54、キャプチャ可否送受信部56、ゲーム操作入力情報送信部58、ゲーム状況データ受信部60、キャプチャ要求部62、通知受付部64、キャプチャ要請部66、キャプチャ要請応対部68、画像生成部70、表示制御部72、キャプチャ部74、キャプチャ画像記憶部76、を含んでいる。クライアント側ポリシーデータ記憶部50、クライアント側キャプチャ状況データ記憶部52、キャプチャ画像記憶部76は、記憶部12bを主として実装される。操作信号受付部54は、制御部12a及び入力部12eを主として実装される。キャプチャ可否送受信部56、ゲーム操作入力情報送信部58、ゲーム状況データ受信部60、キャプチャ要求部62、通知受付部64、キャプチャ要請部66、キャプチャ要請応対部68は、通信部12cを主として実装される。画像生成部70、キャプチャ部74は、制御部12a及び記憶部12bを主として実装される。表示制御部72は、制御部12a、記憶部12b及び出力部12dを主として実装される。本実施形態では、上記の各機能は、クライアント12側のゲームのプログラムとして実装されていることとする。ただし、上記の機能の一部が、クライアント12にインストールされているシステムプログラムとして実装されていても構わない。例えば、キャプチャ部74やキャプチャ画像記憶部76がシステムプログラムとして実装されていても構わない。
そして、以上の機能は、コンピュータであるクライアント12にインストールされた、以上の機能に対応する指令を含むプログラムを、クライアント12の制御部で実行することにより実装されている。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどのコンピュータネットワークを介してクライアント12に供給される。
クライアント側ポリシーデータ記憶部50は、サーバ側ポリシーデータ記憶部30と同様に、図5に例示するポリシーデータを記憶する。
クライアント側キャプチャ状況データ記憶部52は、サーバ側キャプチャ状況データ記憶部32と同様に、ステータス情報に関連付けられたキャプチャ状況データを記憶する。
キャプチャ可否送受信部56は、プログラムの実行内容を示す画像のキャプチャを要求するユーザ、ここでは例えばキャプチャ要求ユーザに当該画像がキャプチャされることの可否を、ゲームサーバ10に送信する。本実施形態では例えば、クライアント12のキャプチャ可否送受信部56は、クライアント側ポリシーデータ記憶部50に記憶されている、当該クライアント12のユーザのポリシーデータをゲームサーバ10に送信する。
また本実施形態では、キャプチャ可否送受信部56は、通知部40が送信する、ユーザの識別情報に関連付けられたポリシーデータを受信して、当該ポリシーデータをクライアント側ポリシーデータ記憶部50に記憶させる。
操作信号受付部54は、コントローラに対するユーザの操作に応じた操作信号を受け付ける。本実施形態では、操作信号受付部54は、所定のフレームレートで操作信号を受け付ける。操作信号受付部54は、例えばゲームの実行状況を変化させる操作に応じた操作信号を受け付ける。また操作信号受付部54は、例えば上述の、プレイ動画像のキャプチャ開始要求操作あるいはキャプチャ終了要求操作などといったプレイ画像20のキャプチャ要求操作などに応じた操作信号を受け付ける。また操作信号受付部54は、キャプチャ許可操作、キャプチャ拒否操作、許可要請操作、などに応じた操作信号を受け付ける。
ゲーム操作入力情報送信部58は、操作信号受付部54がゲームの実行状況を変化させる操作を受け付けた際に、当該操作に応じた操作入力情報をゲームサーバ10に送信する。当該操作入力情報は上述のようにゲーム処理実行部36が受信する。
ゲーム状況データ受信部60は、所定のフレームレートで、ゲーム処理実行部36が送信するゲーム状況データを受信する。
キャプチャ要求部62は、プレイ画像20のキャプチャ要求を送信する。例えば、キャプチャ要求ユーザが使用するクライアント12の操作信号受付部54が、キャプチャ要求ユーザが入力部12eに入力するプレイ画像のキャプチャ要求操作に応じた操作信号を受け付けたとする。ここでは例えば、キャプチャ要求ユーザが使用するクライアント12の操作信号受付部54がプレイ動画像のキャプチャ開始要求操作に応じた操作信号を受け付けたとする。この場合は、キャプチャ要求部62は、当該キャプチャ要求ユーザのキャプチャ状況データに関連付けられた、プレイ動画像のキャプチャ開始要求をゲームサーバ10に送信する。また例えば、キャプチャ要求ユーザが使用するクライアント12の操作信号受付部54がプレイ動画像のキャプチャ開始終了操作に応じた操作信号を受け付けたとする。この場合は、キャプチャ要求部62は、当該キャプチャ要求ユーザのキャプチャ状況データに関連付けられた、プレイ動画像のキャプチャ終了要求をゲームサーバ10に送信する。上述のように、これらの要求はキャプチャ要求受付部38が受信する。
またキャプチャ要求ユーザが使用するクライアント12のキャプチャ要求部62は、キャプチャ対象期間内については、所定のフレームレートで、当該フレームについてのステータス情報を、当該キャプチャ要求ユーザの識別情報に関連付けてゲームサーバ10に送信する。
通知受付部64は、通知部40から送信される各種通知を受け付ける。通知受付部64は、本実施形態では例えば、キャプチャ状況データに関連付けられた、プレイ動画像のキャプチャ開始通知やプレイ動画像のキャプチャ終了通知を受け付ける。
通知受付部64は、プレイ動画像のキャプチャ開始通知を受け付けた際には、当該キャプチャ開始通知に関連付けられているキャプチャ状況データを、クライアント側キャプチャ状況データ記憶部52に記憶させる。また、通知受付部64は、プレイ動画像のキャプチャ終了通知を受け付けた際には、当該キャプチャ終了通知に関連付けられているキャプチャ状況データを、クライアント側キャプチャ状況データ記憶部52から削除する。
キャプチャ要請部66は、キャプチャ要求ユーザにプレイ画像20がキャプチャされることを許可していない被キャプチャユーザに当該キャプチャ要求ユーザによる当該プレイ画像20のキャプチャの許可要請を通知する。本実施形態では、キャプチャ要請部66は、操作信号受付部54が許可要請操作に応じた信号を受け付けた際に、キャプチャの許可を要請するための許可要請通知を送信する。ここで例えば、上述のようにプレイヤBであるユーザがプレイヤAであるユーザに対する許可要請操作を行ったとする。この場合は、クライアント12−2のキャプチャ要請部66が、プレイヤBであるユーザの識別情報に関連付けられた許可要請通知を、クライアント12−1に送信する。
キャプチャ要請応対部68は、許可要請通知を受け付ける。例えば、クライアント12−2のキャプチャ要請部66が、プレイヤBであるユーザの識別情報に関連付けられた許可要請通知を、クライアント12−1に送信した場合は、クライアント12−1のキャプチャ要請応対部68が当該許可要請通知を受け付ける。そして、キャプチャ要請応対部68は、キャプチャを許可する通知又は拒否する通知をクライアント12−2に送信する。
本実施形態では、許可要請通知の送受信は、クライアント12同士のピアツーピアによる通信で行われることとする。なお許可要請通知の送受信をゲームサーバ10が中継するようにしても構わない。
画像生成部70は、クライアント12のディスプレイに表示される画像を生成する。本実施形態では、画像生成部70は、図2〜図4、図6〜図13に例示するプレイ画像20を生成して、フレームバッファに描画する。本実施形態では、所定のフレームレートでプレイ画像20が生成される。
本実施形態では、例えば、画像生成部70は、ゲーム状況データ受信部60が受信するゲーム状況データに基づいて、基礎となるプレイ画像20を生成する。そして画像生成部70は、当該プレイ画像20に対して、通知受付部64が受け付ける各種通知やキャプチャ要請応対部68が受け付ける許可要請通知に応じた情報、ここでは例えば、画像I1a、画像I1b、画像I2〜I8等を上書きする。
表示制御部72は、画像生成部70が生成する画像をディスプレイに表示させる。本実施形態では、所定のフレームレートでプレイ画像20がディスプレイに表示される。本実施形態では表示制御部72は、上述のように、プレイ画像20がキャプチャされることが通知される被キャプチャユーザが使用するクライアント12のディスプレイにプレイ画像20がキャプチャされることを表示させる。また表示制御部72は、当該ディスプレイ内のキャプチャ要求ユーザに対応付けられる位置にプレイ画像20がキャプチャされることを表示させる。このようにして本実施形態では、表示制御部72は、通知受付部64が受け付ける通知に応じて、被キャプチャユーザにプレイ画像20がキャプチャされること等を通知する通知部としての役割を担うこととなる。
キャプチャ部74は、フレームバッファに描画されている画像をキャプチャして、そのコピーをキャプチャ画像記憶部76に記憶させる。
キャプチャ画像記憶部76は、キャプチャ部74がキャプチャした画像を記憶する。
また本実施形態では、通知部40、通知受付部64、画像生成部70、及びキャプチャ部74が全体として、キャプチャ制御部としての役割を担っている。当該キャプチャ制御部は、キャプチャ可否受付部34が受け付ける、画像がキャプチャされることの可否に応じて、キャプチャ要求ユーザによる当該画像のキャプチャを制御する。
また本実施形態では、プレイ画像20がキャプチャされることを許可しないことを受け付ける場合は、被キャプチャユーザを特定可能な情報の少なくとも一部が配置されていない状態となるよう加工されたプレイ画像20がキャプチャされるよう制御される。本実施形態では例えば上述の場合は、画像生成部70が、被キャプチャユーザの秘匿情報が代替文字列ASに置換された、あるいは一部にモザイク処理が実行されたプレイ画像20を生成する。
ここで、本実施形態に係るゲームシステム1において行われるポリシーデータの共有処理の流れの一例を図16に例示するフロー図を参照しながら説明する。
本処理例では、予め、各クライアント12(12−1〜12−3)のクライアント側ポリシーデータ記憶部50には、当該クライアント12を使用するユーザの識別情報に関連付けられた、当該ユーザにより値が設定されたポリシーデータが記憶されていることとする。
まず、クライアント12のキャプチャ可否送受信部56は、当該クライアント12を使用するユーザのポリシーデータをゲームサーバ10に送信する。するとゲームサーバ10のキャプチャ可否受付部34が当該ポリシーデータを受信する(S101)。ここでは、クライアント12−1〜12−3のそれぞれについてS101に示す処理が実行される。そして、ゲームサーバ10のキャプチャ可否受付部34は、受信したポリシーデータをサーバ側ポリシーデータ記憶部30に記憶させる(S102)。このようにして、図5に例示するポリシーデータがサーバ側ポリシーデータ記憶部30に記憶されることとなる。
そして、通知部40が、S102に示す処理で記憶された、当該ゲームに参加するプレイヤであるユーザのすべて、ここではプレイヤAであるユーザ、プレイヤBであるユーザ、プレイヤCであるユーザそれぞれのポリシーデータをクライアント12に送信する。すると、クライアント12のキャプチャ可否送受信部56は当該ポリシーデータを受信する(S103)。そして、クライアント12のキャプチャ可否送受信部56は受信したポリシーデータをクライアント側ポリシーデータ記憶部50に記憶させて(S104)。本処理例に示す処理を終了する。このようにして、図5に例示するポリシーデータがクライアント側ポリシーデータ記憶部50にも記憶されることとなる。
本実施形態では、S103に示す処理で、クライアント12−1〜12−3のそれぞれに、プレイヤAであるユーザ、プレイヤBであるユーザ、及び、プレイヤCであるユーザそれぞれのポリシーデータが送信される。そして、S104に示す処理で、クライアント12−1〜12−3のそれぞれのクライアント側ポリシーデータ記憶部50にプレイヤAであるユーザ、プレイヤBであるユーザ、プレイヤCであるユーザそれぞれのポリシーデータが記憶される。以上の処理は、例えば各クライアント12がゲームサーバ10との通信を開始する際や、プレイされるゲームの開始の際に行われる。
なお、ユーザがポリシーデータの値を適宜変更することができるようになっていてもよい。そして、ユーザがポリシーデータの値を変更した際に、当該ユーザのポリシーデータがゲームサーバ10に送信されてもよい。そして、サーバ側ポリシーデータ記憶部30に記憶されている、当該ユーザのポリシーデータの値が、送信されたポリシーデータの値に更新されてもよい。そして当該ポリシーデータが、各クライアント12に送信されて、各クライアント12のクライアント側ポリシーデータ記憶部50に記憶されてもよい。そしてクライアント側ポリシーデータ記憶部50に記憶されているポリシーデータの値が更新された際には、画像生成部70が、ポリシーデータの値が更新されたことを表す画像が配置されたプレイ画像20を生成してもよい。そして、表示制御部72が当該プレイ画像20をディスプレイに表示させてもよい。
なお本実施形態において、サーバ側ポリシーデータ記憶部30に、当該ゲーム全体に係るキャプチャの可否の方針に関するものであり当該ゲームサーバ10を運営する事業者等によって値が設定されるサーバ側ポリシーデータが記憶されていてもよい。例えば、プレイ画像20のキャプチャが一律に禁止されることを示すサーバ側ポリシーデータがサーバ側ポリシーデータ記憶部30に記憶されていてもよい。
そして上述のS102に示す処理とS103に示す処理の間に、ゲームサーバ10のキャプチャ可否送受信部56が、サーバ側ポリシーデータの値に基づいて、サーバ側ポリシーデータ記憶部30に記憶されているポリシーデータの値を更新してもよい。具体的には例えば、すべてのポリシーデータの値を「許可しない」に更新してもよい。こうすれば例えば、プレイ画像20のキャプチャを制御するにあたって、ユーザにより設定される方針よりもゲームサーバ10の運営方針を優先させることができることとなる。
またクライアント12のクライアント側ポリシーデータ記憶部50に、当該クライアント12を使用するユーザのポリシーデータが予め記憶されていなくてもよい。そして、S101に示す処理で、キャプチャ可否送受信部56が、クライアント12において管理されているユーザの属性等に基づいてポリシーデータを生成して、当該ポリシーデータを送信してもよい。ここでユーザの属性等としては、例えば、年齢、住所、ゲームのプレイ回数、プレイ時間、などが挙げられる。
また、ポリシーデータは、実行されるプログラムに関連付けられていてもよい。具体的には、例えばゲームのタイトルやゲームの種別に関連付けられていてもよい。そして、ゲームサーバ10で実行されるプログラムに基づいて特定されるポリシーデータについて上述の処理が実行されてもよい。また、実行されるプログラムに関連付けられているポリシーデータとは別にデフォルトのポリシーデータが存在していてもよい。この場合、実行されるプログラムに関連付けられているポリシーデータが存在しない際に、デフォルトのポリシーデータについて上述の処理が実行されてもよい。また、ポリシーデータが、クライアント12に関連付けられていてもよい。そしてユーザの概念がないゲームについては当該ポリシーデータに基づくキャプチャ制御が行われるようにしてもよい。あるいはどのユーザがゲームをプレイしていても、当該ポリシーデータに基づくキャプチャ制御が行われても構わない。
また当該ポリシーデータは、クライアント側ポリシーデータ記憶部50に記憶されており、ゲームサーバ10に送信されてもよい。また、当該ポリシーデータは、クライアント12の識別情報と関連付けてゲームサーバ10で管理されていてもよい。そして、キャプチャ制御の対象となるクライアント12の識別情報に関連付けられているポリシーデータに基づいて、当該クライアント12におけるキャプチャ制御が行われてもよい。
次に、キャプチャ要求ユーザがプレイ動画像のキャプチャ開始要求操作を行った際に本実施形態に係るゲームシステム1で行われる処理の流れの一例を図17に例示するフロー図を参照しながら説明する。
まず、キャプチャ要求ユーザが使用するクライアント12のキャプチャ要求部62が、キャプチャ要求ユーザのキャプチャ状況データに関連付けられた、プレイ動画像のキャプチャ開始要求をゲームサーバ10に送信する。するとゲームサーバ10のキャプチャ要求受付部38は当該キャプチャ開始要求を受け付ける(S201)。
そして、キャプチャ要求受付部38は、S201に示す処理で受け付けたキャプチャ開始要求に関連付けられているキャプチャ状況データをサーバ側キャプチャ状況データ記憶部32に記憶させる(S202)。
そして、通知部40は、キャプチャ要求ユーザのクライアント12に被キャプチャユーザのポリシーデータを送信する。するとキャプチャ要求ユーザのクライアント12のキャプチャ可否送受信部56が、当該ポリシーデータを受信する(S203)。そしてキャプチャ可否送受信部56が、当該ポリシーデータをクライアント側ポリシーデータ記憶部50に記憶させる(S204)。
そして、通知部40が、被キャプチャユーザ及びキャプチャ要求ユーザが使用するクライアント12に、キャプチャ要求ユーザのキャプチャ状況データに関連付けられた、プレイ動画像のキャプチャ開始通知を送信する。そしてクライアント12の通知受付部64は当該キャプチャ開始通知を受け付ける(S205)。そして、クライアント12の通知受付部64が、S205に示す処理で受け付けたキャプチャ開始通知に関連付けられているキャプチャ状況データをサーバ側キャプチャ状況データ記憶部32に記憶させる(S206)。そして、クライアント12の画像生成部70がプレイ画像20を生成する(S207)。そしてクライアント12の表示制御部72が、当該プレイ画像20をディスプレイに表示させて(S208)、本処理例に示す処理を終了する。ここで、S207及びS208に示す処理の結果、キャプチャ要求ユーザが使用するクライアント12のディスプレイには図4に示すようなプレイ画像20が表示されることとなる。一方、被キャプチャユーザが使用するクライアント12のディスプレイには図6に示すようなプレイ画像20が表示されることとなる。
なおキャプチャ要求部62は、S201に示す処理を実行する前に、クライアント側ポリシーデータ記憶部50に記憶されているポリシーデータに基づいて、プレイ動画像のキャプチャが一律に許可されないか否かを確認してもよい。そして一律に許可されないことが確認された場合は、S201〜S208に示す処理を行わずに、画像生成部70が図13に例示するプレイ画像20を生成して表示制御部72が当該プレイ画像20を表示させてもよい。
また、上述のS201に示す処理の後に、キャプチャ要求受付部38が、被キャプチャユーザが使用するクライアント12に、キャプチャを許可するか否かの投票要求を送信してもよい。ここで、キャプチャを許可していない被キャプチャユーザが使用するクライアント12に当該投票要求が送信されるようにしてもよい。そしてこの場合、投票要求を受信したクライアント12のディスプレイに、キャプチャ可否の投票を促す画面が表示されるようにしてもよい。そして、ゲームサーバ10のキャプチャ要求受付部38が、被キャプチャユーザが入力した投票結果を当該被キャプチャユーザが使用するクライアント12から受け付けてもよい。そして、キャプチャ要求受付部38が、当該投票結果に応じて、キャプチャの可否を決定してもよい。ここでキャプチャを許可することが決定された場合は、上述のS202以降の処理が実行されるようにしてもよい。一方、キャプチャを許可しないことが決定された場合は、ゲームサーバ10は、S202以降の処理を実行せずに、キャプチャ要求ユーザが使用するクライアント12のディスプレイに図13に例示するプレイ画像20が表示されるよう制御してもよい。
次に、当該ゲームがプレイされている際の1フレームについて、本実施形態に係るクライアント12−2及びゲームサーバ10で行われる処理の流れの一例を図18に例示するフロー図を参照しながら説明する。ここでは例えば、クライアント12−2を使用する、プレイヤBであるユーザは、キャプチャ要求ユーザであることとする。また当該フレームは、プレイヤBであるユーザについてのキャプチャ対象期間内であることとする。
まず、クライアント12−2の操作信号受付部54が、当該フレームにおける操作信号を受け付ける(S301)。そして、クライアント12−2のゲーム操作入力情報送信部58が、当該操作信号に応じた操作入力情報をゲームサーバ10に送信する。そして、ゲームサーバ10のゲーム処理実行部36が当該操作入力情報を受信する(S302)。
そして、ゲームサーバ10のゲーム処理実行部36は、当該フレームにおけるゲーム状況データを生成する(S303)。S303に示す処理では、例えば、すべての当該ゲームに参加するプレイヤであるユーザのクライアント12から受け付ける操作入力情報と、直前のフレームにおけるゲーム状況データと、に基づいて、ゲーム状況データが生成される。ゲーム処理実行部36は、当該ゲーム状況データは少なくとも直後のフレームまでは保持する。
そして、ゲームサーバ10のゲーム処理実行部36は、当該フレームにおけるゲーム状況データを、クライアント12−2に送信する。そして、クライアント12−2のゲーム状況データ受信部60は当該ゲーム状況データを受信する(S304)。なおS304に示す処理では実際には、キャプチャ要求ユーザを含む、すべての当該ゲームに参加するプレイヤであるユーザのクライアント12にゲーム状況データは送信される。
そして、クライアント12−2のキャプチャ要求部62は、S304に示す処理で受信したゲーム状況データとプレイヤBであるユーザについてのキャプチャ条件とに基づいて当該フレームにおけるプレイ画像20のキャプチャを行うか否かを判定する(S305)。当該キャプチャ条件は、例えば、クライアント12−2のクライアント側キャプチャ状況データ記憶部52に記憶されている、プレイヤBであるユーザのキャプチャ状況データに含まれているものである。
そして、クライアント12−2のキャプチャ要求部62は、S305に示す処理での判定結果に基づいて、プレイヤBであるユーザについてのキャプチャ状況データに関連付けられているステータス情報の値を設定する(S306)。ここで、プレイヤBであるユーザについてのステータス情報とは、例えばクライアント12−2のクライアント側キャプチャ状況データ記憶部52に記憶されているプレイヤBであるユーザのキャプチャ状況データに関連付けられているものである。またここでは例えば、ステータス情報の値は「停止」又は「録画」のいずれかに設定される。そして、クライアント12−2のキャプチャ要求部62は、S306に示す処理で値が設定されたステータス情報を、キャプチャ要求ユーザの識別情報に関連付けてゲームサーバ10に送信する。そしてゲームサーバ10のキャプチャ要求受付部38は当該ステータス情報を受信する(S307)。そして、ゲームサーバ10のキャプチャ要求受付部38は、プレイヤBであるユーザについてのステータス情報の値を、S307に示す処理で受信したステータス情報の値に更新する(S308)。ここで、プレイヤBであるユーザについてのステータス情報とは、例えばサーバ側キャプチャ状況データ記憶部32に記憶されているプレイヤBであるユーザのキャプチャ状況データに関連付けられているものである。
そして、クライアント12−2の画像生成部70がプレイ画像20を生成する(S309)。当該プレイ画像20はフレームバッファに描画される。
S309に示す処理では、クライアント12−2の画像生成部70は、まず、S304に示す処理で受信したゲーム状況データに基づいて基礎となるプレイ画像20を生成する。
そして、クライアント12−2の画像生成部70は、クライアント側キャプチャ状況データ記憶部52に記憶されているキャプチャ状況データに基づいて、当該プレイ画像20に対して、上述の画像I1a、画像I1b、画像I2〜I4、画像I7などを配置する。
ここで例えば、画像生成部70は、例えばクライアント側キャプチャ状況データ記憶部52にキャプチャ状況データが記憶されているプレイヤの識別情報を特定する。そして画像生成部70は、これらのプレイヤのうちから、クライアント側ポリシーデータ記憶部50に記憶されているポリシーデータに基づいて、キャプチャを許可していないプレイヤ、及び、許可しているプレイヤを特定する。そして、画像生成部70は、キャプチャを許可していないことが特定されたプレイヤの識別情報に対応付けられる位置に画像I1bを配置する(図6、図12等参照)。
一方、画像生成部70は、キャプチャを許可していることが特定されたプレイヤについて、キャプチャ条件を満足しているか否かを特定する。キャプチャ条件を満足しているか否かについては、クライアント側キャプチャ状況データ記憶部52に記憶されているキャプチャ状況データに関連付けられているステータス情報の値に基づいて特定可能である。そして画像生成部70は、キャプチャ条件を満足しているプレイヤの識別情報に対応付けられる位置に画像I1aを配置する。そして画像生成部70は、キャプチャ条件を満足していないプレイヤの識別情報に対応付けられる位置に画像I1cを配置する(図12参照)。
そして、クライアント12−2の画像生成部70は、クライアント側ポリシーデータ記憶部50に記憶されているポリシーデータに基づいて、プレイ画像20のキャプチャを許可していないユーザの秘匿情報をプレイ画像20から消去する。ここでクライアント12−2の画像生成部70は、例えば、秘匿情報を代替文字列ASに置換したり、秘匿情報などプレイ画像20の一部に対してモザイク処理を実行したりする。
そして、クライアント12−2の表示制御部72は、S309に示す処理で生成したプレイ画像20をディスプレイに表示させる(S310)。
そして、キャプチャ部74は、クライアント側キャプチャ状況データ記憶部52に記憶されている、プレイヤBであるユーザのキャプチャ状況データに関連付けられているステータス情報の値が「録画」であるか「停止」であるかを確認する(S311)。「停止」である場合は、本処理例に示す処理を終了する。「録画」である場合は、キャプチャ部74は、フレームバッファに描画されているプレイ画像20をキャプチャしてクライアント12−2のキャプチャ画像記憶部76に記憶させて(S312)、本処理例に示す処理を終了する。
なおS309に示す処理で、画像生成部70は、キャプチャされるプレイ画像20内にキャラクタオブジェクトCOが配置されているか否かを判定してもよい。そして画像生成部70は、配置されていると判定されるユーザの秘匿情報をプレイ画像20から消去するようにしてもよい。当該判定は、例えばキャプチャ要求ユーザに対応する視点の位置から被キャプチャユーザのキャラクタオブジェクトCOの位置に対してレイキャストを行い、当該2つの位置の間に障害物があるか否かに基づいて行われるようにしてもよい。また、当該2つの位置の間の距離が所定の長さより短い場合に、キャプチャされるプレイ画像20内にキャラクタオブジェクトCOが配置されていると判定されるようにしても構わない。なお当該判定は、キャプチャ要求ユーザについてのキャプチャ条件を満足するフレームについてのみ行われてもよい。
次に、当該ゲームがプレイされている際の、上述のS301〜S312に処理が示された1フレームについて、本実施形態に係るクライアント12−1及びゲームサーバ10で行われる処理の流れの一例を図19に例示するフロー図を参照しながら説明する。当該フレームでは、上述のようにプレイヤBであるユーザがキャプチャ要求ユーザであることとする。またここでは例えば、クライアント12−1を使用する、プレイヤAであるユーザは被キャプチャユーザであることとする。
まず、クライアント12−1は、上述のS301〜S304に示す処理と同様の処理を実行する(S401〜S404)。
そして、クライアント12−1の通知受付部64は、ゲームサーバ10が送信するステータス情報を受信する(S405)。ゲームサーバ10が当該ステータス情報を送信する処理は、例えば、上述のS308に示す処理の後に行われる。そして当該ステータス情報は、例えば上述のS307に示す処理でクライアント12−2から送信されたものである。そしてクライアント12−1の通知受付部64は、プレイヤBであるユーザについてのステータス情報の値を、S405に示す処理で受信したステータス情報の値に更新する(S406)。ここでプレイヤBであるユーザについてのステータス情報とは、例えばクライアント12−1のクライアント側キャプチャ状況データ記憶部52に記憶されているプレイヤBであるユーザのキャプチャ状況データに関連付けられているものである。
そして、クライアント12−1は、S309、S310と同様の処理を実行して(S407、S408)、本処理例に示す処理を終了する。ここでは例えば、プレイ画像20内の、プレイヤBであるユーザの識別情報に対応付けられる位置に画像I1a、画像I1b、又は、画像I1cが配置されることとなる。
なお、S407に示す処理で、画像生成部70は、上述のS309に示す処理と同様、キャプチャ要求ユーザにキャプチャされるプレイ画像20−2内にキャラクタオブジェクトCOaが配置されているか否かの判定を行ってもよい。そして画像生成部70は、当該判定結果に応じて、図8に例示する画像I4をプレイ画像20に配置するか否かを制御してもよい。
次に、プレイヤBであるユーザがプレイヤAであるユーザへの許可要請操作を行った際にゲームシステム1で行われる処理の流れの一例を、図20に例示するフロー図を参照しながら説明する。
まず、クライアント12−2のキャプチャ要請部66が、許可要請通知をクライアント12−1に送信する。すると、クライアント12−1のキャプチャ要請応対部68が、当該許可要請通知を受信する(S501)。すると、クライアント12−1の画像生成部70が、図9に例示する、画像I5が配置されたプレイ画像20−1を生成して、クライアント12−1の表示制御部72が、クライアント12−1のディスプレイに表示させる(S502)。
ここで、クライアント12−1の操作信号受付部54が、キャプチャ許可操作又はキャプチャ拒否操作を受け付ける(S503)。そして、クライアント12−1の操作信号受付部54は、クライアント12−1のキャプチャ要請応対部68は、S503に示す処理で受け付けた操作に応じた通知をクライアント12−2に送信する。そして、クライアント12−2のキャプチャ要請部66が、当該通知を受け付ける(S504)。例えば、S503に示す処理でキャプチャ拒否操作を受け付けた場合は、S504に示す処理ではキャプチャを拒否する通知が送信される。一方、S503に示す処理でキャプチャ許可操作を受け付けた場合は、S504に示す処理ではキャプチャを許可する通知が送信される。
そして、クライアント12−2の画像生成部70が、S504に示す処理で受け付けた通知に応じたプレイ画像20−2を生成して、クライアント12−2の表示制御部72が、当該プレイ画像20−2をディスプレイに表示させる(S505)。ここで例えば、キャプチャを拒否する通知を受け付けた場合は、図10に例示する画像I6が配置されたプレイ画像20−2が表示されることとなる。一方、キャプチャを許可する通知を受け付けた場合は、プレイヤBにキャプチャが許可されたことを表す画像が配置されたプレイ画像20−2が表示されることとなる。
そして、クライアント12−1のキャプチャ可否送受信部56は、S503に示す処理でキャプチャ許可操作を受け付けたか否かを確認する(S506)。そして、受け付けていない、すなわちキャプチャ拒否操作を受け付けたことが確認された場合は(S506:N)、ゲームシステム1は本処理例に示す処理を終了する。一方、キャプチャ許可操作を受け付けたことが確認された場合は(S506:Y)、クライアント12−1のキャプチャ可否送受信部56は、値が「プレイヤBであるユーザ及びフレンドに対して許可する」である、プレイヤAであるユーザのポリシーデータをゲームサーバ10に送信する。そして、ゲームサーバ10のキャプチャ可否受付部34が当該ポリシーデータを受信する(S507)。
そして、ゲームサーバ10のキャプチャ可否受付部34は、サーバ側ポリシーデータ記憶部30に記憶されている、プレイヤAであるユーザのポリシーデータの値を、S507に示す処理で受信したポリシーデータの値に更新する(S508)。そして、ゲームサーバ10の通知部40が、当該ポリシーデータを、当該ゲームに参加するプレイヤであるユーザが使用するクライアント12に送信する。ここでは例えばクライアント12−1〜12−3に当該ポリシーデータが送信される。そのため、クライアント12−2にも当該ポリシーデータは送信される。すると、クライアント12−2のキャプチャ可否送受信部56は当該ポリシーデータを受信する(S509)。
そして、クライアント12−2のキャプチャ可否送受信部56は、クライアント側ポリシーデータ記憶部50に記憶されている、プレイヤAであるユーザのポリシーデータの値を、S509に示す処理で受信したポリシーデータ値に更新する(S510)。このようにして、プレイヤAであるユーザの秘匿情報のキャプチャがプレイヤBであるユーザに許可されることとなる。よって、クライアント12−2のディスプレイには図7に例示するプレイ画像20−2が表示され、クライアント12−1のディスプレイには図8に例示するプレイ画像20−2が表示されることとなる。そして、本処理例に示す処理を終了する。このようにして本実施形態では、許可要請通知を受け付けた被キャプチャユーザから受け付けるプレイ画像20のキャプチャの可否に応じてキャプチャ要求ユーザによるプレイ画像20のキャプチャが制御される。
なお、本発明は上述の実施形態に限定されるものではない。
例えば図15に示されている機能のすべてがゲームのプログラムとして実装されても構わないし、図15に示されている機能のすべてがシステムプログラムとして実装されても構わない。また、図15に示されている機能の一部がゲームのプログラムとして実装されていて、残りがシステムプログラムとして実装されていても構わない。具体的には例えば、システムプログラムが、上述の通知受付部64の説明にあるように、プレイ動画像のキャプチャ開始通知やキャプチャ終了通知を受け付けてもよい。そして、ゲームのプログラムが、上述の画像生成部70の説明にあるように、画像I1a、画像I1b、画像I2〜I8等をプレイ画像20に上書きしてもよい。そして、ゲームのプログラムが、上述の表示制御部72の説明にあるように画像生成部70が生成した画像をディスプレイに表示させてもよい。
例えば、本実施形態を、複数のプレイヤで1台のゲーム装置によってプレイされるゲームに応用してもよい。図21は、このようなゲームのプレイ時にディスプレイに表示されるプレイ画像20の一例を示す図である。図21には、4人のプレイヤでプレイされるゲームにおけるプレイ画像20が示されている。当該プレイ画像20は分割されており、左上、左下、右上、右下それぞれの領域に、それぞれ互いに異なるプレイヤのプレイ内容が示されている。ここで、左上の領域に対応付けられるプレイヤであるユーザによってプレイ動画像がキャプチャされているとする。この場合は、左上の領域が切り出されたプレイ画像20がキャプチャされることとなる。そして、図21に示すように、プレイ画像20の左上の領域には画像I7が配置される。このようにして、他のプレイヤは、当該プレイ画像20がキャプチャされていることを認識できることとなる。
またこのとき、例えば、プレイ画像20の左上の領域に画像I7が配置されるとともに、あるいは配置される代わりに、左上の領域に対応付けられるプレイヤが操作するコントローラの発光部の発光態様を変化させてもよい。例えば左上の領域に対応付けられるプレイヤが操作するコントローラの発光部の挙動が他のプレイヤが操作するコントローラと異なるようにしてもよい。そしてこのことで、被キャプチャユーザにプレイ画像20がキャプチャされることを通知するようにしてもよい。具体的には、例えば、左上の領域に対応付けられるプレイヤが操作するコントローラの発光部がすばやい点滅を繰り返したり、緩やかな明滅を繰り返したりしてもよい。あるいは、当該コントローラの発光部が発する光の色が周期的に変化するようにしてもよい。
また例えば、ゲームのプレイヤではなく、例えばキャプチャ要求ユーザのフレンドであるユーザが使用するクライアント12にキャプチャ開始通知が送信されてもよい。そして、当該キャプチャ状況データが、システムプログラムによって管理されている記憶領域に記憶されるようにしてもよい。この場合、図22に例示するように、システムプログラムによって生成されて表示されるシステム画像の、キャプチャ要求ユーザを表すアイコンの右側に画像I1aが配置されるようにしてもよい。
また例えば、図23に示すように、サーバブラウザを介して表示される、ユーザがログイン可能なゲームサーバ10の一覧表示画面において、当該ゲームサーバ10でプレイされるゲームにおけるプレイ画像20のキャプチャ制御のポリシーに対応付けられる画像が表示されるようにしてもよい。図23に示すゲームサーバ10の一覧表示画面には、ゲームサーバ10の識別情報に対応付けて、当該ゲームサーバ10でプレイされているゲームの最大参加人数を分母、現在の参加人数が分子として表現された分数が配置されている。そして図23の例では、プレイ画像20のキャプチャが一律に禁止されるよう制御されるゲームサーバ10の識別情報の右側にアイコンIc1が配置される。また図23の例では、プレイ画像20のキャプチャが一律に許可されるよう制御されるゲームサーバ10の識別情報の右側にアイコンIc2が配置される。また図23の例では、プレイ画像20のキャプチャが一律に、フレンドに対して許可されるよう制御されるゲームサーバ10の識別情報の右側にアイコンIc3が配置される。また、クライアント12において設定されているポリシーデータが適用されるゲームサーバ10、すなわちプレイ画像のキャプチャを一律に制御しないゲームサーバ10の識別情報の右側にはアイコンは配置されていない。
またここでユーザがいずれかのゲームサーバ10を選択する操作を行うと、クライアント12は当該ゲームサーバ10にログインする。ここで、ゲームサーバ10への接続中や当該ゲームサーバ10で実行されているゲームのロード中にディスプレイに表示される画面に、当該ゲームサーバ10において適用されるキャプチャ制御のポリシーに対応付けられるアイコン等の画像が配置されるようにしてもよい。例えば、プレイ画像20のキャプチャが一律に禁止されるよう制御されるゲームサーバ10への接続中や当該ゲームサーバ10で実行されているゲームのロード中にディスプレイに表示される画面に、アイコンIc1が配置されても構わない。また例えば、プレイ画像20のキャプチャが一律に許可されるよう制御されるゲームサーバ10への接続中や当該ゲームサーバ10で実行されているゲームのロード中にディスプレイに表示される画面に、アイコンIc2が配置されても構わない。また例えば、プレイ画像20のキャプチャが一律に、フレンドに対して許可されるよう制御されるゲームサーバ10への接続中や当該ゲームサーバ10で実行されているゲームのロード中にディスプレイに表示される画面に、アイコンIc3が配置されても構わない。
また例えば、プレイ画像20がリアルタイムでストリーミング配信されているような場面で、配信されているプレイ画像20が、当該プレイ画像20の鑑賞者にキャプチャされることがゲームのプレイヤに通知されるようにしてもよい。すなわち、キャプチャ要求ユーザがゲームのプレイヤであるユーザではなく、被キャプチャユーザがゲームのプレイヤであるユーザであっても構わない。
また、キャプチャされたプレイ動画像がライブストリーミング配信されても構わない。例えば、キャプチャされたプレイ動画像がクライアント12の記憶部12bに記憶されるのではなく、バッファリングされた上で、ライブストリーミングサービスを提供するサイトにアップロードされて公開されても構わない。
なお、本実施形態を、ゲームプログラム以外のプログラム、例えば複数のユーザによる共同作業を支援するプログラム等に応用しても構わない。具体的には例えば、チャットアプリケーションや電子掲示板に本実施形態を応用しても構わない。また、ゲームサーバ10が複数の筐体から構成されていてもよい。また、ゲームサーバ10とクライアント12との役割分担は上述のものに限定されない。例えば、いずれかのクライアント12である装置がゲームサーバ10の役割を担ってもよい。この場合、当該装置が、上述のゲームサーバ10とクライアント12の両方の役割を担うこととなる。また、上記の具体的な文字列や図面中の具体的な文字列は例示であり、これらの文字列には限定されない。