(57)【特許請求の範囲】
【請求項１】
コンテンツに係る操作入力を受信する受信手段と、
前記受信手段により受信された操作入力に応じて前記コンテンツに係る第１のプログラムを実行することで、前記コンテンツに対応する第１の画像を生成する第１の生成手段と、
前記第１のプログラムとは異なる第２のプログラムを実行することで、前記第１の画像に付加される第２の画像を生成する第２の生成手段と、
前記第１の画像と前記第２の画像とを合成することで得られた合成画像を出力する出力手段と、
前記受信手段が前記合成画像の前記第２の画像に係る領域に対する操作入力を受信した場合に、前記第１の生成手段に該操作入力に応じて前記第１のプログラムを実行させないように制御する制御手段と、
を有する情報処理装置。
【請求項２】
前記第２の生成手段は、前記受信手段が前記第２の画像に係る領域に対する操作入力を受信した場合に、前記第２の画像を更新する請求項１に記載の情報処理装置。
【請求項３】
前記第２の画像は、前記第１のプログラムにより実現されない機能の実行を指示するための表示アイテムを含み、
前記第２の生成手段は、前記受信手段が前記第２の画像に係る領域に対する操作入力を受信した場合に、前記第２のプログラムのうちの該領域に配置される表示アイテムに対応する機能に係るプログラムを実行する
請求項１または２に記載の情報処理装置。
【請求項４】
前記第１のプログラムにより実現されない機能は、前記情報処理装置の特有の設定を変更する機能、あるいはインターネットを利用するサービスとの連携機能である請求項３に記載の情報処理装置。
【請求項５】
前記制御手段は、前記第２の画像に係る領域に対する操作入力を前記第１の生成手段に伝送しないことにより、前記第１の生成手段に該操作入力に応じて前記第１のプログラムを実行させない請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１の画像を解析し、表示アイテムが配置される位置を決定する解析手段をさらに有し、
前記第２の生成手段は、前記解析手段により決定された位置に表示アイテムが配置された前記第２の画像を生成する
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記出力手段は、前記第１の画像に前記第２の画像を重畳することにより前記合成画像を生成する請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記第１の画像及び前記第２の画像のそれぞれには表示アイテムが含まれ、
前記コンテンツに係る操作入力は、前記第１の画像の領域と前記第２の画像の領域の双方について受け付けられるものであり、
前記制御手段は、
前記第１の画像に含まれる表示アイテムに対する操作入力がなされた場合には、該表示アイテムに対応する機能の処理を実行し、
前記第２の画像に含まれる表示アイテムに対する操作入力がなされた場合には、該表示アイテム対応する機能の処理を実行し、
前記第１の画像に含まれる表示アイテムに対応する機能の処理は、前記第１のプログラムに組み込まれており、  前記第２の画像に含まれる表示アイテムに対応する機能の処理は、前記第１のプログラムにより実現されるものではなく、
前記制御手段は、前記第２の画像に含まれる表示アイテムに対する操作入力がなされた場合にのみ、前記第１のプログラムを実行させないように制御する
請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
コンテンツに係る操作入力を受信する受信工程と、
前記受信工程において受信された操作入力に応じて前記コンテンツに係る第１のプログラムを実行することで、前記コンテンツに対応する第１の画像を生成する第１の生成工程と、
前記第１のプログラムとは異なる第２のプログラムを実行することで、前記第１の画像に付加される第２の画像を生成する第２の生成工程と、
前記第１の画像と前記第２の画像とを合成することで得られた合成画像を出力する出力工程と、
前記受信工程において前記合成画像の前記第２の画像に係る領域に対する操作入力が受信された場合に、前記第１の生成工程において該操作入力に応じて前記第１のプログラムを実行させないように制御する制御工程と、
を有する情報処理装置の制御方法。
【請求項１０】
１以上のコンピュータを、請求項１乃至８のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法及びプログラムに関し、特に付加的な表示を追加することによりコンテンツの機能を拡張する技術に関する。
【背景技術】
【０００２】
近年、インターネット等のネットワークを利用する情報通信技術の発達に伴い、ネットワークを介した顧客へのサービス提供が様々な分野でなされている。こうしたサービスの中には、従来は顧客が操作するＰＣ等のクライアント機器においてアプリケーションが実行されることでサービス提供がなされていたようなコンテンツを、実行に係る処理をネットワーク上のサーバにおいて行い、対応する画面を描画してクライアント機器に送信するものがある。即ち、クライアント機器で行われる大部分の処理をサーバ側が代替的に実行するため、クライアント機器ではユーザによりなされた操作入力をサーバに送信する処理と、サーバから受信した画面を表示する処理のみを行えばよいことになる。
【０００３】
このような提供形態を行うサービスの１つに、所謂クラウドゲーミング（Cloud gaming）のような、サーバにおいて描画されたゲーム画面をネットワークを介してクライアント機器に提供するものもある。特に、美麗なグラフィックスを生成するようなゲームコンテンツではクライアント機器に十分な描画性能を要求するものであったが、クラウドゲーミングでは、ユーザは十分な描画性能を有するクライアント機器を所持していなくとも、十分な描画性能を有する機器と同等のゲームをプレイすることができる。
【０００４】
このような、サーバ側でコンテンツに係る画面の描画を行って提供するようなクラウドサービスでは、サーバでの実行用にアプリケーションプログラム等を最適化して構成することが好ましい。しかしながら、既に開発が終わったコンテンツ等をクラウドサービス化する場合、クラウド用にプログラムを最適化して再構成することは、更なるコストが発生するため現実的でない。またプログラム等のソースが存在しないような場合もありえるため、実質的に０からコンテンツ提供用のプログラム等を開発しなければならない可能性もある。この他、既にリリースされたコンテンツに対してメインプロセスとは関係性が低いプロセス（機能）を付加したい場合等、プログラム再編集等の作業が発生すれば、それに伴ってデバッグ等の作業が必要となり、該機能のリリースまでに時間を要することにもつながる。
【発明の概要】
【０００５】
本発明はこのような従来技術の課題に鑑みてなされたものである。本発明の一態様は既存のコンテンツに係るプログラムを改変することなく、該コンテンツの提供において機能拡張したユーザ体験を提供する。
【０００６】
本発明の第１の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第１のプログラムを実行することで、コンテンツに対応する第１の画像を生成する第１の生成手段と、第１のプログラムとは異なる第２のプログラムを実行することで、第１の画像に付加される第２の画像を生成する第２の生成手段と、第１の画像と第２の画像とを合成することで得られた合成画像を出力する出力手段と、受信手段が合成画像の第２の画像に係る領域に対する操作入力を受信した場合に、第１の生成手段に該操作入力に応じて第１のプログラムを実行させないように制御する制御手段と、を有する情報処理装置を提供する。
【０００７】
本発明の第２の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第１のプログラムを実行することで、コンテンツに対応する第１の画像を生成する第１の生成手段と、第１のプログラムの実行中に変化する所定のパラメータを監視する監視手段と、所定のパラメータが予め定められた条件となった場合に、第１のプログラムとは異なる第２のプログラムを実行することで、第１の画像に付加される第２の画像を生成する第２の生成手段と、第１の画像と第２の画像とを合成することにより得られた合成画像を出力する出力手段と、を有する情報処理装置を提供する。
【０００８】
本発明の第３の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第１のプログラムを実行することで、コンテンツに対応する第１の画像を生成する第１の生成手段と、第１の画像を解析し、コンテンツの実行状況が予め定められた条件を満たすか否かを検出する解析手段と、コンテンツの実行状況が予め定められた条件を満たす場合に、第１のプログラムとは異なる第２のプログラムを実行することにより、第１の画像に付加される第２の画像を生成する第２の生成手段と、第１の画像と第２の画像とを合成することにより得られた合成画像を出力する出力手段と、を有する情報処理装置を提供する。
【０００９】
本発明の第４の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第１のプログラムを実行することで、コンテンツに対応する第１の画像を生成する第１の生成手段と、第１の画像を解析し、表示アイテムが配置される位置を決定する解析手段と、第１のプログラムとは異なる第２のプログラムを実行することで、解析手段により決定された位置に表示アイテムが配置された第１の画像に付加される第２の画像を生成する第２の生成手段と、第１の画像と第２の画像とを合成することにより得られた合成画像を出力する出力手段と、を有する情報処理装置を提供する。
【００１０】
さらに、本発明の特徴は、（添付の図面を参照して）以下の例示的な実施形態の記載により明らかになるだろう。
【図面の簡単な説明】
【００１１】
【図１】本発明の非限定的な実施形態に係るクラウド型ビデオゲームシステムアーキテクチャのブロック図
【図２Ａ】本発明の非限定的な実施形態に係る、図１のアーキテクチャの様々な物理的構成要素を示したブロック図
【図２Ｂ】図２Ａの変形例
【図２Ｃ】図２Ａ及び２Ｂの物理的構成要素により実現され得る、図１のアーキテクチャの様々な機能モジュールを示したブロック図
【図３Ａ】、
【図３Ｂ】、
【図３Ｃ】本発明の非限定的な実施形態に係る、ビデオゲームの実行中に行われる処理セットの実行を示したフローチャート
【図４Ａ】、
【図４Ｂ】本発明の非限定的な実施形態に係る、受信した映像及び音声の各々を処理するためのクライアント機器の動作を示したフローチャート
【図５Ａ】、
【図５Ｂ】本発明の実施形態または変形例に係るサーバ側の機能構成を示したブロック図
【図６】本発明の実施形態に係るサーバ側で行われるメニュー拡張処理を例示したフローチャート
【図７Ａ】、
【図７Ｂ】、
【図７Ｃ】本発明の実施形態に係るメニュー拡張処理における合成処理の前後に係る各画像の構成を例示した図
【図８Ａ】、
【図８Ｂ】本発明の実施形態に係るサーバ側で行われる表示更新処理を例示したフローチャート
【図９Ａ】、
【図９Ｂ】表示更新処理により生成される重畳画像の構成を例示した図
【図１０Ａ】、
【図１０Ｂ】、
【図１０Ｃ】本発明の変形例に係る合成処理の前後に係る各画像の構成を例示した図
【図１１Ａ】、
【図１１Ｂ】本発明の変形例３に係る合成画像の構成を例示した図
【発明を実施するための形態】
【００１２】
《１．クラウドゲーミングアーキテクチャ》
図１は、本発明の非限定的な実施形態に係るクラウド型ビデオゲームシステムアーキテクチャを概略的に示している。該アーキテクチャは、インターネット１３０等のデータネットワークを介してクラウドゲーミングサーバシステム１００に接続されたクライアント機器１２０、１２０Ａを含む。クライアント機器１２０、１２０Ａの各々は、各々のローカルアクセスネットワーク（不図示）を介することを含む、あらゆる好適な方式でインターネット１３０に接続していてもよい。また、クラウドゲーミングサーバシステム１００は、ローカルアクセスネットワーク（不図示）を介してインターネット１３０に接続してもよいが、クラウドゲーミングサーバシステム１００はローカルアクセスネットワークの媒介なく、インターネット１３０と直接接続してよい。クラウドゲーミングサーバシステム１００と１以上のクライアント機器１２０、１２０Ａとの接続は、１以上のチャネルを含んでいてもよい。これらのチャネルは、物理的及び／または論理的リンクによりなされ、無線周波数、光ファイバ、光空間（free-space optical）、同軸ケーブル、及びツイストペアを含む様々な物理的媒体を回遊してもよい。チャネルはＵＤＰやＴＣＰ／ＩＰのようなプロトコルに従ってもよい。また、１以上のチャネルが、仮想プライベートネットワーク（ＶＰＮ）でサポートされていてもよい。いくつかの実施形態では、１以上の接続はセッションベースでなされてもよい。
【００１３】
クラウドゲーミングサーバシステム１００は、クライアント機器１２０、１２０Ａのユーザが、ビデオゲームを個々に（即ち、シングルプレイヤ用ビデオゲーム）または集団で（即ち、マルチプレイヤ用ビデオゲーム）プレイすることが可能である。ビデオゲームの非限定的な例は、レジャー、教育及び／またはスポーツについてプレイされるゲームを含みうる。しかし、ビデオゲームは貨幣損益の可能性を参加者に提示する必要はない。２つのクライアント機器１２０、１２０Ａのみが示されているが、クラウド型ビデオゲームシステムアーキテクチャ内のクライアント機器の数は特に限定されるものではないことは理解されるべきである。
【００１４】
クライアント機器１２０、１２０Ａのうちの１つのユーザは、ビデオゲームの参加者としてクラウドゲーミングサーバシステム１００に登録してよい。該ユーザは、「プレイヤ」として登録され得、そしてキャラクタ、アバタ、レースカー、コックピット等をコントロールする機会を得るだろう。マルチプレイヤ用ビデオゲームの場合、仮想世界は２以上のプレイヤに共有され、１人のプレイヤのゲームプレイは他のプレイヤのゲームプレイに影響を及ぼし得る。いくつかの実施形態において、クライアント機器１２０、１２０Ａのうちの１つのユーザは、非プレイヤである「観戦者」として登録され得、このようにすることで該ユーザはプレイヤのゲームプレイを観賞するであろうが、ゲーム内のアクティブキャラクタをコントロールできない。別段の指示がない限り、「参加者」との文言が使用された場合、プレイヤと観戦者の両方に等しく適用されることを意味する。
【００１５】
サーバシステム１００は、１以上のゲームサーバ及び１以上のアカウントサーバを含む、１以上の計算リソースを含んでよい。ゲームサーバ及びアカウントサーバは、同一のハードウェアにおいて統合されていてもよいし、場合によってはインターネット１３０を介すことを含む、通信リンクを介して接続された異なるサーバであってもよい。以下の説明では、単に簡単のため分離されたサーバとして取り扱われる。
【００１６】
ゲームの最中、アカウントサーバはプレイヤと情報のやり取りを行い、アカウントサーバはゲーム環境外でプレイヤと情報のやり取りを行う。故に、例えばアカウントサーバは、予想されるプレイヤのゲームポータルへのログイン、インターネットを介したプレイヤの接続性の追跡、及びいくつかの非限定的な機能のうちの、ゲームのインスタンスを開始、参加、退出、終了するためのプレイヤの命令に対するレスポンス返却を行うよう構成されてよい。該目的達成のためアカウントサーバは、識別データ、財務データ、位置データ、人口統計データ（demographic data）、接続データ等のような、様々な参加者及びクライアント機器１２０、１２０Ａについてのアカウント情報を格納する参加者データベース１０を提供してもよい、または参加者データベース１０にアクセスしてもよい。参加者データベース１０は、クラウドゲーミングサーバシステム１００の一部、またはそれらから離れて配置されるものであってよい。またゲームサーバ１１０も、上述したカウント情報を格納する参加者データベース１０にアクセスしてもよく、該情報はビデオゲームが進行する方法に影響を与えるために用いられうる。
【００１７】
任意の１つのクライアント機器１２０、１２０Ａの構成は、特に限定されるものではない。いくつかの実施形態において、１以上のクライアント機器１２０、１２０Ａは、例えばパーソナルコンピュータ（ＰＣ）、家庭用ゲーム機（ＸＢＯＸ（登録商標）、ＰＳ３（登録商標）、Ｗｉｉ（登録商標）等のコンソール）、携帯ゲーム機、スマートテレビ、セットトップボックス（ＳＴＢ）等であってもよい。他の実施形態において、１以上のクライアント機器１２０、１２０Ａは、携帯電話、電子手帳（ＰＤＡ）、タブレットのような通信または計算装置であってもよい。
【００１８】
任意の１つのクライアント機器１２０、１２０Ａは、該任意のクライアント機器のユーザが入力を提供し、ビデオゲームに参加することを可能ならしめるために、１以上の入力装置（タッチスクリーン、キーボード、ゲームコントローラ、ジョイスティック等）が備えられていてもよい。他の実施形態において、ユーザは身体動作を行う、外部オブジェクトを振る等してもよく、これらの動作はカメラや他のセンサ（例えばＫｉｎｅｃｔ（登録商標））により検出され、該任意のクライアント機器で動作するソフトウェアは、ユーザが該任意のクライアント機器に対して入力を提供しようとしているか、もしそうであれば該入力の本質を正確に推測することを試みる。任意のクライアント機器は、受信したユーザ入力及び検出されたユーザ動作を、インターネット１３０を介してクラウドゲーミングサーバシステム１００に送信される「クライアント機器入力」に変換する。図示されている実施形態では、クライアント機器１２０はクライアント機器入力１４０を生成し、クライアント機器１２０Ａはクライアント機器入力１４０Ａを生成する。
【００１９】
クラウドゲーミングサーバシステム１００は、様々なクライアント機器１２０、１２０Ａから受信したクライアント機器入力１４０、１４０Ａを処理し、該様々なクライアント機器１２０、１２０Ａについての「メディア出力」を生成する。メディア出力は、（スクリーンに表示された場合に画像を提示する）符号化された映像データ及び（スピーカを介して再生された場合に音を提示する）音声データのストリームを含みうる。メディア出力は、パケットの形でインターネット１３０を介して送信される。クライアント機器１２０、１２０Ａの特定の１つに向けられたパケットは、インターネット１３０を介して該装置にルートされるように、このような方法でアドレスされうる。クライアント機器１２０、１２０Ａの各々は、クラウドゲーミングサーバシステム１００から受信したパケット内のメディア出力をバッファして処理する電気回路、画像を表示するためのディスプレイ、及び音声を出力する振動子（例えばスピーカ）を含んでいてもよい。また、追加の出力装置は、動作を誘導するための電気機械システム等を提供してもよい。
【００２０】
映像データのストリームが「フレーム」に分割されうることは理解されるべきである。ここで用いられる「フレーム」との文言は、映像データのフレームと該映像データにより提示される画像との間の一対一対応の存在を要求するものではない。即ち、映像データのフレームにつき各表示画像の全体を提示するデータを含めることも可能であるが、映像データのフレームにつき画像の一部を提示するデータを含め、該画像のために適切に再構成及び表示されるために複数のフレームを要するものとすることも可能である。同様に、映像データのフレームは、Ｎ枚の画像が映像データのＭ（Ｍ＜Ｎ）フレームを用いて提示されるよう、１つ以上の完全な画像を提示するデータを含んでいてもよい。
【００２１】
《２．クラウドゲーミングサーバシステム１００（分散型アーキテクチャ）》
図２Ａは、クラウドゲーミングサーバシステム１００の構成要素の非限定的な物理的構成の第１の態様を示している。本実施形態では、クラウドゲーミングサーバシステム１００の個々のサーバが、専用の機能を実行するよう構成される。例えば、計算サーバ２００Ｃは、ユーザ入力に基づいてビデオゲーム内の状態変化の追跡についての役割を担い、描画サーバ２００Ｒは、グラフィックス（映像データ）の描画についての役割を担い得る。
【００２２】
以下に記載される実施形態の例のために、クライアント機器１２０及びクライアント機器１２０Ａの両方は、プレイヤまたは参加者としてビデオゲームに参加しているものとする。しかしながら、いくつかのケースでは１人のプレイヤと観戦者なし、複数のプレイヤと１人の観戦者、１人のプレイヤと複数の観戦者、及び複数のプレイヤと複数の観戦者等で構成されてもよいことは理解されるべきである。
【００２３】
簡単のため、以下の説明では単一の描画サーバ２００Ｒに単一の計算サーバ２００Ｃが接続されているものとする。しかしながら、１以上の描画サーバ２００Ｒが同一の計算サーバ２００Ｃに接続される、あるいは１以上の計算サーバ２００Ｃが同一の描画サーバ２００Ｒに接続されるものであってもよいことは理解されるべきである。複数の描画サーバ２００Ｒが存在する場合、あらゆる適切な地理的領域に分散されるものであってもよい。
【００２４】
図２Ａの構成要素の非限定的な物理的構成に示されるように、計算サーバ２００Ｃは１以上の中央演算装置（ＣＰＵ）２２０Ｃ、２２２Ｃ及びランダムアクセスメモリ（ＲＡＭ）２３０Ｃを有する。ＣＰＵ２２０Ｃ、２２２Ｃは、例えば通信バスアーキテクチャを介してＲＡＭ２３０Ｃにアクセス可能である。２つのＣＰＵ２２０Ｃ、２２２Ｃのみが示されているが、計算サーバ２００Ｃのいくつかの実装例では、より多数のＣＰＵあるいは単一のＣＰＵのみが提供されてもよい。また、計算サーバ２００Ｃは、ビデオゲームに参加しているクライアント機器の各々から、インターネット１３０を介してクライアント機器入力を受信する、ネットワークインタフェースコンポーネント（ＮＩＣ）２１０Ｃ２を有する。以下に記載される実施形態の例では、クライアント機器１２０及び１２０Ａの両方は、ビデオゲームに参加しているものとし、従って、受信したクライアント機器入力はクライアント機器入力１４０及びクライアント機器入力１４０Ａが含まれうる。
【００２５】
さらに計算サーバ２００Ｃは、描画命令セット２０４を出力する他のネットワークインタフェースコンポーネント（ＮＩＣ）２１０Ｃ１を有する。ＮＩＣ２１０Ｃ１を介して計算サーバ２００Ｃから出力された複数の描画命令セット２０４は、描画サーバ２００Ｒに送信されうる。一実施形態において計算サーバ２００Ｃは、描画サーバ２００Ｒに直接接続されうる。他の実施形態では計算サーバ２００Ｃは、インターネット１３０であってもよいし、その他のネットワークであってもよいネットワーク２６０上において描画サーバ２００Ｒに接続されうる。仮想プライベートネットワーク（ＶＰＮ）は、ネットワーク２６０上において計算サーバ２００Ｃと描画サーバ２００Ｒとの間に確立されてもよい。
【００２６】
描画サーバ２００Ｒにおいて、計算サーバ２００Ｃにより送信された描画命令セット２０４は、ネットワークインタフェースコンポーネント（ＮＩＣ）２１０Ｒ１において受信され、１以上のＣＰＵ２２０Ｒ、２２２Ｒに対して導かれる。ＣＰＵ２２０Ｒ、２２２Ｒは、グラフィックス処理装置（ＧＰＵ）２４０Ｒ、２５０Ｒに接続される。非限定的な例として、ＧＰＵ２４０Ｒは、ＧＰＵコア２４２Ｒのセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２４６Ｒを含んでもよい。同様に、ＧＰＵ２５０ＲはＧＰＵコア２５２Ｒのセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２５６Ｒを含んでもよい。ＣＰＵ２２０Ｒ、２２２Ｒの各々は、ＧＰＵ２４０Ｒ、２５０Ｒの各々に接続されていてもよいし、ＧＰＵ２４０Ｒ、２５０Ｒの集合に接続されていてもよい。ＣＰＵ２２０Ｒ、２２２ＲとＧＰＵ２４０Ｒ、２５０Ｒとの間の通信は、例えば通信バスアーキテクチャを用いて確立されてよい。２つのＣＰＵ及び２つのＧＰＵのみが示されるが、描画サーバ２００Ｒの特定の実装例では、２以上のＣＰＵ及びＧＰＵがあってもよいし、単一のＣＰＵまたはＧＰＵだけであってもよい。
【００２７】
ＣＰＵ２２０Ｒ、２２２Ｒは、描画命令セット２０４を参加する各クライアント機器につき１つであるグラフィックス出力ストリームに変換するために、ＧＰＵ２４０Ｒ、２５０Ｒと協働する。本実施形態では、クライアント機器１２０、１２０Ａの各々について２つのグラフィックス出力ストリーム２０６、２０６Ａがある。このことは、さらに詳細が後述されるだろう。さらに描画サーバ２００Ｒは、これを介してグラフィックス出力ストリーム２０６、２０６Ａがクライアント機器１２０、１２０Ａの各々に送信される、ネットワークインタフェースコンポーネント（ＮＩＣ）２１０Ｒ２を有する。
【００２８】
《３．クラウドゲーミングサーバシステム１００（ハイブリッドアーキテクチャ）》
図２Ｂは、クラウドゲーミングサーバシステム１００の構成要素の非限定的な物理的構成の第２の態様を示している。本実施形態ではハイブリッドサーバ２００Ｈは、ユーザ入力に基づいてビデオゲーム内の状態変化の追跡とグラフィックス（映像データ）の描画の両方の役割を担う。
【００２９】
図２Ｂの構成要素の非限定的な物理的構成に示されるように、ハイブリッドサーバ２００Ｈは１以上の中央演算装置（ＣＰＵ）２２０Ｈ、２２２Ｈ及びランダムアクセスメモリ（ＲＡＭ）２３０Ｈを有する。ＣＰＵ２２０Ｈ、２２２Ｈは、例えば通信バスアーキテクチャを介してＲＡＭ２３０Ｈにアクセスできる。２つのＣＰＵ２２０Ｈ、２２２Ｈのみが示されているが、より多数のＣＰＵまたは単一のＣＰＵのみがハイブリッドサーバ２００Ｈのいくつかの実装例において提供されてもよいことは理解されるべきである。またハイブリッドサーバ２００Ｈは、ビデオゲームに参加するクライアント機器の各々からインターネット１３０を介してクライアント機器入力が受信されるネットワークインタフェースコンポーネント（ＮＩＣ）２１０Ｈを有する。以下に記載される実施形態の例では、クライアント機器１２０及びクライアント機器１２０Ａの両方は、ビデオゲームに参加しているものとし、故に受信したクライアント機器入力は、クライアント機器入力１４０及びクライアント機器入力１４０Ａを含んでもよい。
【００３０】
また、ＣＰＵ２２０Ｈ、２２２Ｈは、描画処理装置（ＧＰＵ）２４０Ｈ、２５０Ｈに接続される。非限定的な例ではＧＰＵ２４０Ｈは、ＧＰＵコア２４２のセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２４６Ｈを含んでいてもよい。同様にＧＰＵ２５０Ｈは、ＧＰＵコア２５２Ｈのセット及びビデオランダムアクセスメモリ（ＶＲＡＭ）２５６Ｈを含んでいてもよい。ＣＰＵ２２０Ｈ、２２２Ｈの各々は、ＧＰＵ２４０Ｈ、２５０Ｈの各々またはＧＰＵ２４０Ｈ、２５０Ｈの集合に接続されていてもよい。ＣＰＵ２２０Ｈ、２２２ＨとＧＰＵ２４０Ｈ、２５０Ｈとの通信は、例えば通信バスアーキテクチャを用いて確立されうる。２つのＣＰＵと２つのＧＰＵのみが示されているが、ハイブリッドサーバ２００Ｈの特定の実装例では、２以上のＣＰＵを有するものであってもよいし、単一のＣＰＵまたはＧＰＵのみを有するものであってさえよい。
【００３１】
描画命令セット２０４を、参加している各クライアント機器につき１つであるグラフィックス出力ストリームに変換するために、ＣＰＵ２２０Ｈ、２２２ＨはＧＰＵ２４０Ｈ、２５０Ｈと協働する。本実施形態では、参加しているクライアント機器１２０、１２０Ａの各々に対して、２つのグラフィックス出力ストリーム２０６、２０６Ａが存在する。グラフィックス出力ストリーム２０６、２０６Ａは、ＮＩＣ２１０Ｈを介してクライアント機器１２０、１２０Ａの各々に送信される。
【００３２】
《４．クラウドゲーミングサーバシステム１００（機能概要）》
さらに図２Ｃを参照すると、上述した計算サーバ２００Ｃと描画サーバ２００Ｒ（図２Ａ）及び／またはハイブリッドサーバ２００Ｈ（図２Ｂ）の物理的構成要素は、ビデオゲーム機能モジュール２７０、描画機能モジュール２８０、及びビデオエンコーダ２８５を含む機能モジュールセットを実現する。図２Ａの非限定的な実施形態によれば、ビデオゲーム機能モジュール２７０は計算サーバ２００Ｃにより実現され、描画機能モジュール２８０及びビデオエンコーダ２８５は描画サーバ２００Ｒにより実現される。図２Ｂの非限定的な実施形態によれば、ハイブリッドサーバ２００Ｈはビデオゲーム機能モジュール２７０、描画機能モジュール２８０、及びビデオエンコーダ２８５を実現する。
【００３３】
本実施形態の例は、図を簡略化するために単一のビデオゲーム機能モジュール２７０について議論する。しかしながら、クラウドゲーミングサーバシステム１００の実際の実装において、ビデオゲーム機能モジュール２７０と同様の多くのビデオゲーム機能モジュールが並行して実行される。したがって、クラウドゲーミングサーバシステム１００は、同一のビデオゲームの複数の独立したインスタンス化または複数の異なるビデオゲームの同時のインスタンス化をサポートしうる。また、ビデオゲームは、あらゆる種類の１人プレイヤ用ビデオゲームまたはマルチプレイヤ用ゲームであってもよいことは理解されるべきである。
【００３４】
ビデオゲーム機能モジュール２７０は、（図２Ａの）計算サーバ２００Ｃまたは（図２Ｂの）ハイブリッドサーバ２００Ｈの所定の物理的構成要素により実現されてもよい。具体的には、ビデオゲーム機能モジュール２７０は、（計算サーバ２００ＣのＣＰＵ２２０Ｃ、２２２Ｃやハイブリッドサーバ２００ＨのＣＰＵ２２０Ｈ、２２２Ｈのような）ＣＰＵにより実行可能なコンピュータ読み取り可能な命令として符号化されうる。該命令は、（計算サーバ２００Ｃの）ＲＡＭ２３０Ｃ、（ハイブリッドサーバ２００Ｈの）ＲＡＭ２３０Ｈ、あるいは他の記憶領域に、ビデオゲーム機能モジュール２７０により使用される定数、変数及び／または他のデータとともに明白に（tangibly）格納されうる。いくつかの実施形態においてビデオゲーム機能モジュール２７０は、（計算サーバ２００ＣのＣＰＵ２２０Ｃ、２２２Ｃやハイブリッドサーバ２００ＨのＣＰＵ２２０Ｈ、２２２Ｈのような）ＣＰＵにより実行されているオペレーティングシステムによりサポートされうる、バーチャルマシンの環境において実行されてもよい。
【００３５】
描画機能モジュール２８０は（図２Ａの）描画サーバ２００Ｒあるいは（図２Ｂの）ハイブリッドサーバ２００Ｈの所定の物理的構成要素により実現されてもよい。一実施形態において、描画機能モジュール２８０は、１以上のＧＰＵ（図２Ａの２４０Ｒ、２５０Ｒ、図２Ｂの２４０Ｈ、２５０Ｈ）が引き受けてもよいし、ＣＰＵリソースを利用してもよいし、しなくてもよい。
【００３６】
ビデオエンコーダ２８５は、（図２Ａの）描画サーバ２００Ｒまたは（図２Ｂの）ハイブリッドサーバ２００Ｈの所定の物理的構成要素により実現されてよい。本技術分野に属する当業者は、ビデオエンコーダ２８５を実現する種々の手法があることは容易に理解するだろう。図２Ａの実施形態において、ビデオエンコーダ２８５はＣＰＵ２２０Ｒ、２２２Ｒ及び／またはＧＰＵ２４０Ｒ、２５０Ｒにより実現されうる。図２Ｂの実施形態では、ビデオエンコーダ２８５はＣＰＵ２２０Ｈ、２２２Ｈ及び／またはＧＰＵ２４０Ｈ、２５０Ｈにより実現されうる。その他の実施形態では、ビデオエンコーダ２８５は、分離された符号化チップ（不図示）により実現されてもよい。
【００３７】
動作において、ビデオゲーム機能モジュール２７０は、受信したクライアント機器入力に基づいて描画命令セット２０４を生成する。受信したクライアント機器入力は、行き先となるビデオゲーム機能モジュールを示すデータ（例えばアドレス）、及び由来するユーザ及び／またはクライアント機器を示すデータを運ぶものであってよい。クライアント機器１２０、１２０Ａのユーザは、ビデオゲームに参加（即ちプレイヤまたは観戦者）しており、受信したクライアント機器入力は、クライアント機器１２０、１２０Ａから受信したクライアント機器入力１４０、１４０Ａを含む。
【００３８】
描画命令は、映像データの１フレームまたは映像データの一連のフレームを生成するように専用グラフィックス生成装置（ＧＰＵ）に導くために用いられうる命令を示す。図２Ｃを参照すると、描画命令セット２０４は、描画機能モジュール２８０による映像データのフレーム生成をもたらす。これらのフレームにより提示される画像は、ビデオゲーム機能モジュール２７０にプログラムされた、クライアント機器入力１４０、１４０Ａに応じた機能として変化する。例えば、ビデオゲーム機能モジュール２７０は、所定の特定の要因に応じてユーザに（将来のインタラクションが異なる、より挑戦的とさせる、あるいはより刺激的とさせる）進行体験を提供するような方法でプログラムされ得、一方で、他の特定の要因への応答は、回帰や終了の体験をユーザに与えるだろう。ビデオゲーム機能モジュール２７０への指示はバイナリ実行可能なファイルの形式で固定され得るが、クライアント機器入力１４０、１４０Ａは対応するクライアント機器１２０、１２０Ａを使用するプレイヤのインタラクション動作があるまで不明である。結果として、提供される特定のクライアント機器入力に応じて、様々な種類の生じ得る結果が存在してもよい。プレイヤ／観戦者とビデオゲーム機能モジュール２７０の間のクライアント機器１２０、１２０Ａを介した該インタラクションは、「ゲームプレイ」や「ビデオゲームをプレイしている」として言及されうる。
【００３９】
描画機能モジュール２８０は、複数の映像データストリーム２０５を生成するために描画命令セット２０４を処理する。一般に、参加者ごとに（あるいはクライアント機器ごとにも同等）、１つの映像データストリームが存在することになるだろう。描画が実行されている場合、３次元空間（例えば物理オブジェクト）あるいは２次元空間（例えばテキスト）に示される１以上のオブジェクトについてのデータは、特定のＧＰＵ２４０Ｒ、２５０Ｒ、２４０Ｈ、２５０Ｈのキャッシュメモリ（不図示）に展開される。該データは、ＧＰＵ２４０Ｒ、２５０Ｒ、２４０Ｈ、２５０Ｈにより、適切なＶＲＡＭ２４６Ｒ、２５６Ｒ、２４６Ｈ、２５６Ｈに格納されうる２次元画像を表現するデータに変換されうる。このようにして、ＶＲＡＭ２４６Ｒ、２５６Ｒ、２４６Ｈ、２５６Ｈは、ゲーム画面についての画素（ピクセル）値の一時的な格納領域を提供しうる。
【００４０】
ビデオエンコーダ２８５は、映像データストリーム２０５の各々に含まれる映像データを、対応する圧縮／符号化映像データフレームのストリームに圧縮及び符号化する。グラフィックス出力ストリームとして言及される、圧縮／符号化映像データの結果であるストリームは、クライアント機器基準で生成される。本実施形態の例ではビデオエンコーダ２８５は、クライアント機器１２０についてのグラフィックス出力ストリーム２０６及びクライアント機器１２０Ａについてのグラフィックス出力ストリーム２０６Ａを生成する。追加の機能モジュールが、インターネット１３０を介して送信可能なように映像データをパケット形式にするよう提供されてもよい。映像データストリーム２０５内の映像データ、及び任意のグラフィックス出力ストリームに含まれる圧縮／符号化映像データは、フレームに分割されてよい。
【００４１】
《５．描画命令の生成》
以下、ビデオゲーム機能モジュール２７０による描画命令の生成が、図２Ｃ、３Ａ及び３Ｂを参照してより詳細に説明される。具体的には、ビデオゲーム機能モジュール２７０の実行は、いかに詳細が説明されるメインゲームプロセス３００Ａと１以上のグラフィックス制御プロセス３００Ｂを含むいくつかのプロセスを伴う。
【００４２】
〈メインゲームプロセス〉
メインゲームプロセスとして言及される第１のプロセスは、図３Ａを参照して説明される。メインゲームプロセス３００Ａは、断続的に実行する。メインゲームプロセス３００Ａの一部として、実行中、クライアント機器入力が受信されうる動作３１０Ａが提供される。ビデオゲームが観戦の可能性がない１人プレイヤ用ビデオゲームである場合、単一のクライアント機器（例えばクライアント機器１２０）からのクライアント機器入力（例えばクライアント機器入力１４０）が動作３１０Ａの一部として受信される。ビデオゲームがマルチプレイヤ用ビデオゲームまたは観戦の可能性がある１人プレイヤ用ゲームである場合、１以上のクライアント機器（例えばクライアント機器１２０及び１２０Ａ）からのクライアント機器入力（例えばクライアント機器入力１４０及び１４０Ａ）が、動作３１０Ａの一部として受信されうる。
【００４３】
非限定的な例示の目的で、任意のクライアント機器からの入力は、該任意のクライアント機器のユーザが、制御下にあるキャラクタに対して移動、ジャンプ、キック、旋回、揺動、押す、引く等をさせることを所望していることを伝送しうる。代替的あるいは追加的に、該任意のクライアント機器からの入力は、１以上の音声、映像またはゲームプレイ設定を変更する、ゲームをロード／セーブする、あるいはネットワークセッションの作成やセッションへの参加を行うために、該任意のクリア案と装置のユーザによりなされたメニュー選択を伝送しうる。代替的あるいは追加的に、該任意のクライアント機器からの入力は、該任意のクライアント機器のユーザが特定のカメラ視野（例えば１人称または３人称）の選択、あるいは仮想世界内の視野の再配置を所望していることを伝送しうる。
【００４４】
動作３２０Ａで、ゲームステートは、動作３１０Ａにおいて受信したクライアント機器入力の少なくとも一部及び他のパラメータに基づいて更新されうる。ゲームステートの更新は、次の動作を伴いうる。
【００４５】
第１に、ゲームステートの更新は、クライアント機器入力が受信されうるクライアント機器に関連付けられた参加者（プレイヤまたは観戦者）の所定のプロパティ（property）を更新することを伴いうる。これらのプロパティは、参加者データベース１０に格納されうる。参加者データベース１０に保持されて動作３２０において更新されうる参加者プロパティの例は、カメラ視野の選択（例えば１人称、３人称）、プレイモード、選択された音声または映像の設定、スキルレベル、顧客グレード（例えばゲスト、プレミアム等）を含みうる。
【００４６】
第２に、ゲームステートの更新は、クライアント機器入力の解釈に基づいて、仮想世界内の所定のオブジェクトの属性を更新することを伴いうる。属性が更新されるオブジェクトは、いくつかのケースでは２次元または３次元モデルにより示されてもよいし、プレイキャラクタ、非プレイキャラクタ及び他のオブジェクトを含みうる。プレイヤキャラクタである場合、更新されうる属性はオブジェクトの位置、強さ、武器／防具、経過した寿命、特殊能力、速さ／方向（速度）、アニメーション視覚的効果、エネルギ、弾薬等を含みうる。他のオブジェクト（背景、植物、建物、乗り物、スコアボード等）である場合、更新されうる属性は、該オブジェクトの位置、速度、アニメーション、ダメージ／体力、視覚的効果、テキスト内容等を含みうる。
【００４７】
クライアント機器入力とは別のパラメータは、上述した（参加者の）プロパティ及び（仮想世界オブジェクトの）属性に影響を与えうることは理解されるべきである。例えば、様々なタイマ（経過時間、特定のイベントからの時間、一日の仮想時刻、プレイヤ総数、参加者地理的位置等）が、ゲームステートの様々な態様に影響を及ぼしてもよい。
【００４８】
動作３２０Ａの実行に加えてゲームステートが更新されると、メインゲームプロセス３００Ａは動作３１０Ａに戻り、前回のメインゲームプロセスを終了してから受信した新たなクライアント機器入力が収集され、処理される。
【００４９】
〈グラフィックス制御プロセス〉
以下、グラフィックス制御プロセスとして言及される第２のプロセスについて、図３Ｂを参照して説明する。グラフィックス制御プロセス３００Ｂは断続的に実行し、描画命令セット２０４の各々の結果をもたらす複数の分離したグラフィックス制御プロセス３００Ｂが存在してもよい。観戦の可能性がない１人プレイヤ用ビデオゲームの場合、１人のプレイヤのみが存在し、故に描画命令セット２０４の結果は１つのみであり、従ってグラフィックス制御プロセス３００Ｂは、上述したメインゲームプロセス３００Ａの延長として実行されうる。マルチプレイヤ用ビデオゲームの場合、複数の独立した描画命令セットが複数のプレイヤについて生成されることが必要であり、従って、複数のグラフィックス制御プロセス３００Ｂが並行して実行しうる。観戦の可能性がある１人プレイヤ用ゲームの場合、また単一の描画命令セット２０４のみが存在し得、故に単一のグラフィックス制御プロセス３００Ｂはビデオゲーム機能モジュール２７０において実行しうるが、結果である映像データストリームは、描画機能モジュール２８０により複数の観戦者にも複製されうる。もちろん、これらはただの実装の例であり、限定として取られるべきものではない。
【００５０】
別個の映像データストリームを要求する任意の参加者についてのグラフィックス制御プロセス３００Ｂの動作３１０Ｂにおいて、ビデオゲーム機能モジュール２７０は該任意の参加者について描画されるオブジェクトを決定する。この動作は、以下の種類のオブジェクトを識別することを含みうる。
【００５１】
第１に、この動作は、仮想世界から任意の参加者についての「ゲーム画面描画範囲」（「シーン」としても知られる）内にある、これらのオブジェクトを識別することを含みうる。ゲーム画面描画範囲は、任意の参加者のカメラの投影（perspective）から「観ることが可能」な、仮想世界の一部を含みうる。これは、仮想世界内のオブジェクトに関連するカメラの位置及び方向に依る。動作３１０Ｂの非限定的な実装例において、錐台が仮想世界に適用され得、該錐台内のオブジェクトが保持またはマークされる。錐台は、任意の参加者のカメラの位置に置かれた頂点を有し、該カメラの方向性により規定される方向を有する。
【００５２】
第２に、この動作は、仮想世界内に現れないが、それにも関わらず任意の参加者について描画される追加のオブジェクトを識別することを含みうる。例えば、これらの追加のオブジェクトは、非限定的な２〜３の可能性を挙げると、テキストメッセージ、グラフィックス警告及びダッシュボードインジケータを含んでもよい。
【００５３】
動作３２０Ｂで、ビデオゲーム機能モジュール２７０は、動作３１０Ｂにおいて識別されたオブジェクトを、グラフィックス（映像データ）に描画変換するための命令セットを生成する。描画は、視野及び適用される照明状態に従って、１つのオブジェクトまたはオブジェクト群の３次元または２次元座標の、表示可能な画像を表現するデータへの変換を参照してもよい。これは、例えばここに参照により組み込まれる「"Computer Graphics and Geometric Modelling: Implementation & Algorithms", Max K. Agoston, Springer-Verlag London Limited, 2005」に記載されるような、あらゆるアルゴリズム及び技術を用いて達成されうる。
【００５４】
動作３３０Ｂで、動作３２０Ｂにおいて生成された描画命令は描画機能モジュール２８０に出力される。これは、描画機能モジュール２８０に送信する描画命令セット２０４への、生成された描画命令のパケット化を伴いうる。
【００５５】
本発明の技術分野に属する当業者は、上述したグラフィックス制御プロセス３００Ｂの複数の例示が複数の描画命令セット２０４の結果として実行され得ることを認識するだろう。
【００５６】
《６．グラフィックス出力の生成》
描画機能モジュール２８０は、描画命令セット２０４を解釈し、参加している各クライアント機器につき１つである、複数の映像データストリーム２０５を生成する。描画は、（図２Ａの）ＣＰＵ２２０Ｒ、２２２Ｒまたは（図２Ｂの）ＣＰＵ２２０Ｈ、２２２Ｈの制御の下、ＧＰＵ２４０Ｒ、２５０Ｒ、２４０Ｈ、２５０Ｈにより実現されうる。１つの参加者のクライアント機器に係る映像データのフレームが生成されるレートは、フレームレートとして参照されうる。
【００５７】
Ｎ名の参加者が存在する実施形態において、Ｎ個の描画命令セット２０４（各参加者について１つ）が存在し、Ｎ個の映像データストリーム２０５（各参加者について１つの）が存在し得る。この場合、描画機能は参加者間で共有されない。しかしながら、２〜３の描画命令セットが描画機能モジュール２８０により処理される必要があるように、Ｍ個（Ｍ＜Ｎ）の描画命令セット２０４からＮ個の映像データストリーム２０５が生成されてもよい。この場合、少ない数の描画命令セット２０４からより多い数の映像データストリーム２０５を生成するために、描画機能モジュール２８０は共有または複製を行ってもよい。このような共有または複製は、複数の参加者（例えば観戦者）が同一のカメラ画角を観ることを所望した場合に普及するものであってもよい。故に、描画機能モジュール２８０は、生成された映像データストリームが１以上の観戦者に複製されるように機能を実行してもよい。
【００５８】
次に、映像データストリーム２０５の各々における映像データは、ビデオエンコーダ２８５により符号化され、グラフィックス出力ストリームとして参照され、各クライアント機器に関連付けられた一連の符号化映像データが得られる。図２Ａ〜２Ｃの実施形態の例において、クライアント機器１２０についての一連の符号化映像データはグラフィックス出力ストリーム２０６として参照され、クライアント機器１２０Ａについての一連の符号化映像データはグラフィックス出力ストリーム２０６Ａとして参照されてもよい。
【００５９】
ビデオエンコーダ２８５は、デジタル映像についての映像圧縮または展開を可能にする、実行する、または定義する装置（またはコンピュータ読み取り可能な命令セット）であり得る。映像圧縮は、（画素位置、色値等で表現される）デジタル画像データのオリジナルストリームを、より少ないビットを用いるが実質的に同一の情報を伝送するデジタル画像データの出力ストリームに変換する。あらゆる適切な圧縮アルゴリズムが用いられてよい。データ圧縮に加え、特定の映像データのフレームの符号化に用いられる符号化処理は、暗号化を含んでもよいし、含んでいなくともよい。
【００６０】
上述の手法で生成されたグラフィックス出力ストリーム２０６、２０６Ａは、インターネット１３０を介して各クライアント機器に送信される。非限定的な例示目的で、グラフィックス出力ストリームは、各々がヘッダ及びペイロードを有するパケットに、セグメント化あるいは形式化されてもよい。任意の参加者についての１つの映像データに含まれるパケットのヘッダは、該任意の参加者に関連付けられたクライアント機器のネットワークアドレスを含んでもよく、ペイロードは全部または一部として映像データを含んでもよい。非限定的な実施形態において、ある映像データを符号化するために用いられる圧縮アルゴリズムの身元（identity）及び／またはバージョンが、該映像データを伝送する１以上のパケットのコンテンツ内に符号化されてもよい。符号化映像データの他の送信手法が、本技術分野に属する当業者には想起されよう。
【００６１】
本開示は個々の２Ｄ画像を表現する映像データの描画にフォーカスするものであるが、本発明は３次元効果を生成するために、フレームごとに複数の２Ｄ画像を表現する映像データの描画及び符号化の可能性を除外するものではない。
【００６２】
《７．クライアント機器におけるゲーム画面再生》
以下、非限定的な例示の目的で、クライアント機器１２０またはクライアント機器１２０Ａたり得る、任意の参加者に関連付けられたクライアント機器の動作を示す図４Ａを参照する。
【００６３】
動作４１０Ａで、１つのグラフィックス出力ストリーム（例えば２０６、２０６Ａ）は、実施形態に応じて描画サーバ２００Ｒ（図２Ａ）から、あるいはハイブリッドサーバ２００Ｈ（図２Ｂ）から、インターネット１３０を介して受信される。該受信されたグラフィックス出力ストリーム２０６は、フレームに分割され得る、圧縮／符号化された映像データのフレームを有する。
【００６４】
動作４２０で、圧縮／符号化された映像データのフレームは、符号化／圧縮処理に用いられた符号化／圧縮アルゴリズムを補完する復号／展開アルゴリズムに従って復号される。非限定的な実施形態において、映像データの符号化／圧縮に用いられた符号化／圧縮アルゴリズムの身元またはバージョンは、予め知らされていてもよい。他の実施形態において、映像データの符号化に用いられた符号化／圧縮アルゴリズムの身元またはバージョンは、映像データ自体に添付されてもよい。
【００６５】
動作４３０Ａで、（復号／展開された）映像データのフレームが処理される。これは、バッファへの復号／展開された映像データのフレームの配置、誤り訂正の実行、複数の連続するフレームにおけるデータの順序付け及び／または合成、アルファブレンディング、欠損したデータの一部の補間等を含みうる。該結果は、毎フレーム基準でユーザに提示される最終画像を表現する映像データとなり得る。
【００６６】
動作４４０Ａで、最終画像がクライアント機器の出力機構を介して出力される。例えば、コンポジット映像フレームが、クライアント機器のディスプレイに表示されうる。
【００６７】
《８．音声生成》
以下、音声生成処理として言及される３番目の処理が、図３Ｃを参照して説明される。音声生成処理は、知覚可能な音声ストリームを要求する各参加者について、断続的に実行する。一実施形態において、音声生成処理はグラフィックス制御プロセス３００Ｂと無関係に実行されてよい。他の実施形態において、音声生成処理及びグラフィックス制御処理の実行が連動されてもよい。
【００６８】
動作３１０Ｃで、ビデオゲーム機能モジュール２７０は、生成される音声を決定する。具体的に本動作は、音量（音の強さ）及び／または仮想世界内において参加者への近さに応じて、地形音響プロパティに影響を及ぼす仮想世界内のオブジェクトに関連付けられたこれらの音声を特定することを含みうる。
【００６９】
動作３２０Ｃで、ビデオゲーム機能モジュール２７０は音声セグメントを生成する。音声セグメントの継続期間は映像フレームの継続期間に及んでもよいし、いくつかの実施形態では音声セグメントは映像フレームよりも少ない頻度で生成されてもよいし、他の実施形態では音声セグメントは映像フレームよりも高い頻度で生成されてもよい。
【００７０】
動作３３０Ｃで、音声セグメントは例えば音声符号化器により符号化され、符号化音声セグメントが得られる。音声符号化器は、音声圧縮または展開アルゴリズムを可能にする、実行する、または定義する装置（または指示セット）であってもよい。音声圧縮は、（徐々に振幅及び位相が変化する音波として表現された）デジタル音声のオリジナルストリームを、より少ないビットを使用するが実質的に同一の情報を伝送するデジタル音声データの出力ストリームに変換する。あらゆる適切な圧縮アルゴリズムが用いられてもよい。音声圧縮に加え、特定の音声セグメントの符号化に用いられる符号化処理は暗号化を適用してもよいし、しなくてもよい。
【００７１】
いくつかの実施形態において、音声セグメントは計算サーバ２００Ｃ（図２Ａ）またはハイブリッドサーバ２００Ｈ（図２Ｂ）のいずれかの専用ハードウェア（例えばサウンドカード）により生成されてもよいことは理解されるべきである。図２Ａの分散型構成に適用可能な代替的実施形態において、音声セグメントはビデオゲーム機能モジュール２７０によりスピーチパラメータ（例えばＬＰＣパラメータ）にパラメータ化されてもよく、スピーチパラメータは描画サーバ２００Ｒにより、配信先のクライアント機器（例えばクライアント機器１２０またはクライアント機器１２０Ａ）に再配信されうる。
【００７２】
上述した方式で生成された符号化された音声は、インターネット１３０を介して送信される。非限定的な例示を目的として、符号化された音声入力は、各々がヘッダ及びペイロードを有するパケットに分解及び形式化されうる。ヘッダは、音声生成処理が実行される参加者に関連付けられたクライアント機器のアドレスを伝送してもよく、ペイロードは符号化された音声を含んでいてもよい。非限定的な実施形態において、任意の音声セグメントの符号化に用いられる圧縮アルゴリズムの身元及び／またはバージョンは、該任意のセグメントを伝送する１以上のパケットのコンテンツ内に符号化されてもよい。符号化された音声を送信する他の手法は、本技術分野に属する当業者には思い当たるだろう。
【００７３】
以下、非限定的な例示を目的として、クライアント機器１２０またはクライアント機器１２０Ａであってよい、任意の参加者に関連付けられたクライアント機器の動作を示す図４Ｂを参照する。
【００７４】
動作４１０Ｂで、符号化された音声セグメントが（実施形態に応じて）計算サーバ２００Ｃ、描画サーバ２００Ｒ、またはハイブリッドサーバ２００Ｈから受信される。動作４２０Ｂで、符号化処理に用いられた圧縮アルゴリズムを補間する展開アルゴリズムに従って、符号化された音声は復号される。非限定的な実施形態において、音声セグメントの符号化に用いられた圧縮アルゴリズムの身元またはバージョンは、音声セグメントを伝送する１以上のパケットのコンテンツ内で特定されてもよい。
【００７５】
動作４３０Ｂで、（復号された）音声セグメントが処理される。これは、バッファ内への復号された音声セグメントの配置、誤り訂正の実行、複数の連続する波形合成等を含みうる。該結果は、毎フレーム基準でユーザに提示される最終音声となり得る。
【００７６】
動作４４０Ｂで、最終的に生成された音声は、クライアント機器の出力機構を介して出力される。例えば、音声はクライアント機器のサウンドカードまたはスピーカを介して再生される。
【００７７】
《９．非限定的な実施形態の具体的開示》
以下、本発明の所定の非限定的な実施形態について、より詳細な説明が提供される。
【００７８】
［実施形態］
《メニュー拡張処理》
このような構成のシステムのサーバ側において実行される、本発明の一態様である実施形態に係るサーバ側（サーバシステム１００、計算サーバ２００Ｃ及び描画サーバ２００Ｒ、あるいはハイブリッドサーバ２００Ｈ）でのメニュー拡張処理について、図５Ａのブロック図及び図６のフローチャートを用いて具体的な処理を説明する。
【００７９】
メニュー拡張処理とは、サーバが提供する提供コンテンツのメインプロセスにおいて、例えば所定の操作入力がなされた際に表示される既定のメニュー項目に、新たな機能（拡張機能）に係るメニュー項目を付加して機能拡張を行う処理である。本実施形態では提供コンテンツは上述したようにゲームコンテンツである。またメインプロセスとは、クライアント機器１２０から受信したクライアント機器入力１４０に係る入力に合わせてゲームのステータスを変更し、変更後のステータスに対応したゲーム画面を描画して出力する、ゲームコンテンツに係る一連の処理を行うプロセスであるものとする。即ち、メインプロセスは上述したビデオゲーム機能モジュール２７０及び描画機能モジュール２８０により実行されるプロセスである。
【００８０】
図５Ａは、本実施形態のサーバ側におけるメニュー拡張処理の実行に係るモジュール構成を、処理やデータの流れに応じて示した図である。
【００８１】
インターネット１３０を介して受信されたクライアント機器入力１４０は、まず入力監視モジュール５００によりチェックされる。本実施形態では入力監視モジュール５００は、まずなされた入力がメニュー表示に係る入力であるかをチェックし、拡張機能用のメニュー項目の表示に係る処理を実行する必要がある状況であるかを判断する。入力監視モジュール５００は、例えば受信したクライアント機器入力１４０を常に監視し、メニュー表示に係る入力がなされるまでは、受信したクライアント機器入力１４０をそのままビデオゲーム機能モジュール２７０に出力する。また入力監視モジュール５００は、メニュー表示後は画面にメニューに係る表示が含まれている間、付加したメニュー項目を選択する入力がなされたかを監視する。
【００８２】
拡張処理モジュール５１０は、入力監視モジュール５００から拡張機能用のメニュー項目の表示に係る処理の実行指示を受信した場合に、メインプロセスで生成されるゲーム画面に拡張機能用のメニュー項目を付加するための各種処理を実行する。具体的には拡張処理モジュール５１０は、ゲーム画面に重畳するための、メニュー項目の表示アイテム等を重畳画像生成モジュール５２０に描画させる処理を行う。また拡張処理モジュール５１０は、拡張機能用のメニュー項目を選択する入力（項目に対応する処理の実行命令に係る入力）がなされた場合には、対応する処理（拡張処理）を実行する。
【００８３】
重畳画像生成モジュール５２０は、拡張機能用のメニュー項目に係る表示アイテムやその他の表示アイテムの描画を行い、メインプロセスで生成されるゲーム画面に対して重畳表示するための重畳画像を生成する。この他、重畳画像生成モジュール５２０は、重畳に係る合成処理において使用されるマスクデータを生成してもよい。マスクデータは、ゲーム画面に重畳画像を重畳する際に、重畳画像の各画素の透過度を示すものであってよい。またメニュー項目に係る表示アイテムのデータや表示位置等の情報は、記録装置（不図示）に予め記録されているものであってよい。
【００８４】
合成モジュール５３０は、メインプロセスの処理により生成されたゲーム画面に対して、重畳画像生成モジュール５２０で生成された重畳画像を重畳して新たなゲーム画面（合成画面）を生成する合成処理を行う。そして合成モジュール５３０は、生成した合成画面をビデオエンコーダ２８５に出力する。合成モジュール５３０は、重畳画像を生成しない場合もメインプロセスにより生成されたゲーム画面の入力を受けるが、その場合はゲーム画面をそのままビデオエンコーダ２８５に出力するものとする。
【００８５】
次に、このようなモジュール構成により実現されるメニュー拡張処理の具体的な処理について、図６のフローチャートに沿って説明する。該フローチャートに対応する処理は、ＣＰＵ２２２が、例えば不図示の記録装置に記録されている対応の処理プログラムを読み出し、ＲＡＭ２３０に展開してメインプロセスとは別に実行することにより実現することができる。
【００８６】
Ｓ６０１で、入力監視モジュール５００は、クライアント機器１２０から受信したクライアント機器入力１４０がメニュー表示（通常メニュー表示）に係る入力であるか否かを判断する。入力監視モジュール５００は、クライアント機器入力１４０が通常メニュー表示に係る入力であると判断した場合、拡張処理モジュール５１０に拡張機能用のメニュー項目の表示に係る処理の実行指示を送信するとともに、クライアント機器入力１４０をメインプロセスに操作入力を伝送し、処理をＳ６０３に移す。また入力監視モジュール５００は、クライアント機器入力１４０が通常メニュー表示に係る入力ではないと判断した場合、Ｓ６０２でクライアント機器入力１４０をそのままメインプロセスに操作入力を伝送して処理をＳ６０１に戻す。
【００８７】
Ｓ６０３で、拡張処理モジュール５１０は、メインプロセスの処理によりゲーム画面に配置される通常メニュー表示に選択項目を追加するための、拡張機能に係るメニュー項目を配置した重畳画像を重畳画像生成モジュール５２０に描画させる。通常メニュー表示が例えば図７Ａのようである場合、重畳画像は図７Ｂのようであってよい。本実施形態では拡張機能に係るメニュー項目の画像データは、通常メニュー表示でゲーム画面に配置されるメニュー項目とデザインが合わせられたデータが予め用意されて記録装置に記録されているものとする。また拡張機能に係るメニュー項目の配置位置の情報も、通常メニュー表示におけるメニュー項目の配置間隔を考慮して予め定められ、記録装置に記録されているものとする。故に、重畳画像生成モジュール５２０は、重畳画像の生成指示がなされた場合、メニュー項目の画像データ及びその配置位置の情報を取得し、重畳画像を生成する。なお、本実施形態では、重畳画像生成モジュール５２０が拡張処理モジュール５１０の指示を受けたことにより重畳画像を生成するものとして説明する。しかしながら、本発明の実施はこれに限られるものではない。重畳画像に配置する拡張機能に係るメニュー項目は動的に変化するものではないので、例えば重畳画像そのものが記録装置に予め記録されている態様であってもよいことは理解されるべきである。
【００８８】
Ｓ６０４で、拡張処理モジュール５１０は、同じフレームに受信した操作入力に対応する、描画機能モジュール２８０により生成されたゲーム画面と重畳画像生成モジュール５２０により生成された重畳画像とを合成モジュール５３０に合成させ、合成画像を生成させる。合成モジュール５３０は、例えば重畳画像のうちの重畳しないものとして定められた色以外の色を有する画素を、ゲーム画面の同一の画素位置に重畳することにより合成画像を生成する。図７Ａに示されるようなゲーム画面が生成され、図７Ｂに示されるような重畳画像が生成される場合、図７Ｂにおいてハッチングで示される画素は重畳の際には透過させる画素として扱われ、重畳されない。反対に、それ以外の画素は重畳するものとして処理され、図７Ｃに示されるような拡張機能に係る付加的なメニュー項目を有するメニュー表示を含む新たなゲーム画面（合成画像）が生成される。
【００８９】
Ｓ６０５で、合成モジュール５３０は、生成した合成画像をゲーム画面としてビデオエンコーダ２８５に出力し、本メニュー拡張処理を完了する。
【００９０】
このようにすることで、メインプロセスに特殊な処理を行わせる必要なく、メインプロセスの処理によりゲーム画面に表示される通常メニュー表示に新たなメニュー項目を配置した新たなゲーム画面を生成することができる。
【００９１】
《表示更新処理》
次に、このように生成された機能拡張されたメニュー表示に対して所定の操作入力がなされたことに伴い、重畳画像を変更して表示を更新する方法について、図８Ａ及び８Ｂのフローチャートを用いて説明する。該表示更新処理は、メニュー表示に係る描画処理が行われている間、メインプロセスのゲームプログラムの処理フレームごとに実行されるものとする。このとき、クライアント機器入力１４０は毎フレーム基準で受信されているものとする。
【００９２】
本実施形態では説明を簡単にするため、クライアント機器１２０においてメニュー表示に対してなされる操作入力は、マウスのようなポインティングデバイスにより行われるものとして説明する。またメニュー表示の各メニュー項目は、該項目に対応する領域内に、ポインティングデバイスにより指定される指示位置が侵入する操作（マウスオーバー）がなされた際に該項目をハイライトさせることにより強調表示させる挙動を示すものとする。またメニュー項目に対応する領域内に指示位置が存在する場合に、決定に相当する操作入力（マウスクリック）がなされた場合に、該項目に対応する機能が実行され、例えば設定用画面等の新たな表示に遷移する、あるいは設定用ウィンドウがさらに重畳表示される挙動を示すものとする。またメニュー表示は、メニュー表示を終了するための表示アイテム（各メニュー項目とは別のアイテム）に対応する領域内に指示位置が存在し、かつ決定に相当する操作入力がなされた場合に表示が消去されるものとする。
【００９３】
Ｓ８０１で、入力監視モジュール５００は、拡張機能用のメニュー項目あるいは拡張機能の実行により表示される表示アイテムがクライアント機器１２０への提供画面に含まれているか否かを判断する。即ち、入力監視モジュール５００は、現在メインプロセスにおいて生成されるゲーム画面に対して重畳画像を重畳しているか否かを判断する。入力監視モジュール５００は、ゲーム画面に対して重畳画像を重畳していると判断した場合は処理をＳ８０２に移す。入力監視モジュール５００は、重畳画像が重畳されていないと判断した場合は処理をＳ８１４に移す。
【００９４】
Ｓ８０２で、入力監視モジュール５００は、受信したクライアント機器入力１４０により示される指示位置が、拡張機能用のメニュー項目が配置されている領域に含まれるか否かを判断する。入力監視モジュール５００は、指示位置が拡張機能用のメニュー項目が配置されている領域に含まれると判断した場合は処理をＳ８０３に移す。入力監視モジュール５００は、該指示位置が含まれないと判断した場合は処理をＳ８１０に移す。
【００９５】
Ｓ８０３で、入力監視モジュール５００は、クライアント機器入力１４０がメニュー項目の機能実行に係る操作入力の情報を含むか否かを判断する。即ち、入力監視モジュール５００は、指示位置が拡張機能用のメニュー項目が配置されている領域に存在し、かつ該メニュー項目を選択する操作入力（マウスクリック等）がなされたか否かを判断する。入力監視モジュール５００は、機能実行に係る操作入力の情報が含まれると判断した場合は処理をＳ８０４に移す。入力監視モジュール５００は、該情報が含まれないと判断した場合は処理をＳ８０７に移す。
【００９６】
Ｓ８０４で、入力監視モジュール５００は、受信したクライアント機器入力１４０をビデオゲーム機能モジュール２７０には伝送せずに拡張処理モジュール５１０に伝送して処理をＳ８０５に移す。拡張機能用のメニュー項目への対応する機能の実行に係る操作入力は、メインプロセスにおけるいずれの処理を行うための操作入力にも対応していない。あるいは、拡張機能とは別の処理を行うための操作入力と判断されてしまう可能性もあり、別の画面に遷移したり、一時停止していたゲームが再開されたり等の好ましくない状況に遷移し得る。このため、メインプロセスにおいて該操作入力に係る処理が行われないように、本実施形態では入力監視モジュール５００は拡張機能の実行に係る操作入力がなされた場合には該操作入力はメインプロセスには伝えず、拡張処理モジュール５１０にのみ伝送する。つまり、拡張機能の実行のために、擬似的にメインプロセス以外のサブプロセスが操作入力の処理権限を一時的に奪取した状況が生成される。
【００９７】
Ｓ８０５で、拡張処理モジュール５１０は、指示位置に配置されているメニュー項目に対応する拡張機能に係る処理を実行する。拡張機能に係る処理は、上述したような画面遷移や、メニュー項目が選択されたことによる該項目や他の項目の表示態様の変更等を含んでいてよい。このとき、拡張処理モジュール５１０は、ビデオゲーム機能モジュール２７０にメインプロセスに係る処理の実行を停止するように制御してもよい。
【００９８】
拡張機能に係る処理は、メインプロセスに係るゲームコンテンツに実装されていない付加的なコンテンツ要素のための設定や、ゲームコンテンツを様々なハードウェアのクライアント機器１２０で操作するためのキーアサイン等の設定に係る処理等が含まれてよい。また通信設定や配信画質設定等のクラウドゲーミングシステムに特有の設定を、プレイヤにゲーム体験中に変更可能ならしめるための処理であってもよい。またインターネットを通じてサービス提供がなされるため、任意のＳＮＳ（Social Networking Site）や動画投稿サイトへの投稿に係る設定や、関連商品販売サイトへのアクセスや注文機能、あるいはゲーム体験中のプレイヤのために宅配ピザの注文機能等、インターネットを利用するその他のサービスとの連携機能が拡張機能として設けられていてもよい。
【００９９】
Ｓ８０６で、重畳画像生成モジュール５２０は拡張処理モジュール５１０の制御の下、選択された拡張機能に係る重畳画像を生成する。拡張機能に係る重畳画像は、図９Ａに示されるように設定用のウィンドウや特定のアプリケーションに係る画面等を示すものであってよい。本実施形態では拡張機能に係る画像は、メインプロセスに係り描画機能モジュール２８０により描画されたゲーム画面に重畳するための画像であるものとして説明する。しかしながら、本発明の実施において該画像はこれに限られるものではない。拡張機能に係る画像は、例えば画面全体を構成する画像であってもよく、後述するようにゲーム画面に重畳されることなく、クライアント機器１２０に提供する画面として出力されてもよい。
【０１００】
一方、Ｓ８０３において機能実行に係る操作入力の情報が含まれないと判断した場合、拡張処理モジュール５１０はＳ８０７で、クライアント機器入力１４０をビデオゲーム機能モジュール２７０及び拡張処理モジュール５１０に伝送して処理をＳ８０８に移す。本実施形態では、単に拡張機能のメニュー項目へのマウスオーバーではメインプロセスにおける拡張機能とは別の処理を行うため処理は実行されないものとして説明する。しかしながら、マウスオーバー等の指示位置の変更に係る操作によってメインプロセスにおける任意の処理が実行されるのであれば、本ステップで拡張処理モジュール５１０が、クライアント機器入力１４０を拡張処理モジュール５１０のみに伝送するように構成してもよい。
【０１０１】
Ｓ８０８で、重畳画像生成モジュール５２０は拡張処理モジュール５１０の制御の下、クライアント機器入力１４０により示される指示位置に対応する拡張機能用のメニュー項目を強調表示した、図９Ｂに示されるような重畳画像を生成する。
【０１０２】
Ｓ８０９で、合成モジュール５３０は拡張処理モジュール５１０の制御の下、描画機能モジュール２８０により生成されたゲーム画面と重畳画像生成モジュール５２０により生成された重畳画像とを合成し、合成画像を生成する。
【０１０３】
一方、Ｓ８０２においてクライアント機器入力１４０により示される指示位置が拡張機能用のメニュー項目が配置されている領域に含まれないと判断した場合、入力監視モジュール５００はＳ８１０で、通常メニュー表示に配置されたメニュー項目（通常メニュー項目）の機能実行に係る操作入力の情報を含むか否かを判断する。即ち、入力監視モジュール５００は、指示位置が通常メニュー項目が配置されている領域に存在し、かつ該メニュー項目を選択する操作入力がなされたか否かを判断する。通常メニュー項目の画面上の位置の情報は、予め記録装置に記録されていてもよいし、例えば通常メニュー項目の表示前後のゲーム画面の画像解析を行って所定の形状の表示アイテムが配置される位置を特定することにより得られるものであってもよい。入力監視モジュール５００は、通常メニュー項目の機能実行に係る操作入力の情報が含まれると判断した場合は処理をＳ８１１に移す。入力監視モジュール５００は、該情報が含まれないと判断した場合は処理をＳ８１２に移す。
【０１０４】
Ｓ８１１で、入力監視モジュール５００は、受信したクライアント機器入力１４０をビデオゲーム機能モジュール２７０のみ伝送して処理をＳ８１３に移す。また入力監視モジュール５００は、通常メニュー項目の機能実行に操作入力がなされたことを拡張処理モジュール５１０に通知する。
【０１０５】
Ｓ８１２で、入力監視モジュール５００は、クライアント機器入力１４０が通常メニュー表示の終了に係る操作入力の情報を含むか否かを判断する。入力監視モジュール５００は、通常メニュー表示の終了に係る操作入力の情報が含まれると判断した場合は処理をＳ８１３に移す。入力監視モジュール５００は、該情報が含まれないと判断した場合は処理をＳ８１４に移す。
【０１０６】
Ｓ８１３で、拡張処理モジュール５１０は、重畳画像生成モジュール５２０に重畳画像の生成及び出力を停止させる。また拡張処理モジュール５１０は、合成モジュール５３０における合成処理の実行も停止させる。即ち、本ステップでは拡張処理モジュール５１０は、通常メニュー項目の機能実行により表示されるアイテムを邪魔しないよう、重畳画像の重畳がなされないように制御する処理を行う。
【０１０７】
Ｓ８１４で、入力監視モジュール５００は、クライアント機器入力１４０が通常メニュー項目に係る機能実行の終了に係る操作入力を含むか否かを判断する。即ち、通常メニュー項目の機能の実行により重畳を中止していた重畳画像（拡張機能用のメニュー項目）を、機能実行に係り表示されていたアイテムの表示終了に伴って再び重畳するか否かを判断する。入力監視モジュール５００は、通常メニュー項目に係る機能実行の終了に係る操作入力が含まれると判断した場合は処理をＳ８１５に移す。入力監視モジュール５００は、該操作入力が含まれないと判断した場合は本表示更新処理を完了する。
【０１０８】
Ｓ８１５で、拡張処理モジュール５１０は、拡張機能に係るメニュー項目を配置した重畳画像を重畳画像生成モジュール５２０に描画させ、処理をＳ８０９に移す。
【０１０９】
このようにすることで、本実施形態のシステムのサーバ側において、拡張機能に係る表示アイテムの表示遷移及び拡張機能の実行を、メインプロセスとは別のプロセスにおいて実行することができる。またこの実行により重畳画像を更新するため、最終的にクライアント機器１２０に提供されるメディア出力１５０に係る画面では、提供するコンテンツの機能拡張に係る表示を違和感なくプレイヤに提示することができる。
【０１１０】
［変形例１］
上述した実施形態では、拡張機能用のメニュー項目を重畳し、該項目への操作入力があった場合に、操作入力の処理権限を一時的にメインプロセスから奪取してサブプロセスで拡張機能に係る処理を実行する方法について説明した。しかしながら、既存のコンテンツに係るプログラムを改変することなく、該コンテンツの提供において機能拡張したユーザ体験を提供する方法はこれに限られるものではない。本変形例では、サブプロセスが操作入力の処理権限を奪取するのではなく、メインプロセスにおける操作入力による変化を検出して、拡張的な表示を重畳することにより機能拡張したユーザ体験を提供する方法について説明する。
【０１１１】
ゲームコンテンツの中には、図１０Ａに示されるように、なされた操作入力に応じて処理した結果に係る情報提示として、テキスト表示を行うものがある。このようなテキスト表示は、コンテンツ開発時に設定された予め定められた情報のみを表示するよう構成されるものであるが、予め定められた情報以外にも異なる情報の提示を行うことで、ユーザ体験を拡張することができる。
【０１１２】
図１０Ａに示されるゲーム画面は所謂格闘ゲームのゲーム画面を示しているが、該画面内にはキャラクタの体力ゲージが含まれている。例えば、連続してキャラクタにダメージを与える所謂コンボ期間内の総ダメージ量（体力の減少量）を計測し、クラウドゲーミングシステムで対応するコンテンツを利用するユーザ内で順位付けを日単位で行う場合を考える（例えばleaderboard等）。体力ゲージに係る体力を示すパラメータやコンボ期間を示す情報は、ビデオゲーム機能モジュール２７０における処理により管理され、ＲＡＭ２３０等の所定の記憶領域に格納されている。この場合、入力監視モジュール５００はクライアント機器入力１４０に攻撃を与える操作入力が含まれていると判断した場合に拡張処理モジュール５１０に通知し、拡張処理モジュール５１０は、コンボ期間内における該攻撃による体力パラメータの減少量を計測すればよい。そしてコンボ期間の終了時、拡張処理モジュール５１０は体力減少量の値と、システム利用ユーザについて管理される本日の最大体力減少量の値とを比較する。拡張処理モジュール５１０は、最大体力減少量の値を上回る場合に、重畳画像生成モジュール５２０に本日の最大体力減少量であることを示すテキスト表示を予め定められた位置に配置した重畳画像を生成させる。このとき重畳画像に配置されるテキスト表示のフォントは、ゲーム内で使用されているフォントを使用することが好ましい。そして合成モジュール５３０は拡張処理モジュール５１０の制御の下、該重畳画像をメインプロセスにより生成されたゲーム画面に合成し、図１０Ｂのような合成画像を生成して出力すればよい。なお、テキスト表示の行数や配置位置はゲームコンテンツの進行状況に応じて変化し得るものであるため、パラメータの監視やゲーム画面の画像解析により決定されてもよい。
【０１１３】
上述したように、拡張処理モジュール５１０がメインプロセスにおいて出力される中間データやメインプロセスにおいて管理されるパラメータ等を監視することで、これらの情報について様々な評価をした拡張的な情報をコンテンツに係る画面に含めて提供することが可能になる。なお、本変形例では一例として体力パラメータの変化を評価対象として情報提示する方法を説明した。しかしながら、評価対象や評価方法、提示する情報がこれらに限られるものではないことは容易に理解されるべきである。
【０１１４】
［変形例２］
上述した変形例１では、メインプロセスにおいて管理されるパラメータを監視し、予め定められた位置に対応するテキスト表示を配置したゲーム画面を提供する方法について説明した。しかしながら、本発明の実施において表示によりユーザ体験を拡張する方法はこれに限られるものではない。本変形例では、図５Ｂに示されるようにメインプロセスに係り描画機能モジュール２８０が生成したゲーム画面の解析を行う画像解析モジュール５４０をさらに備える。該画像解析モジュール５４０にゲーム画面の解析を行わせることで、パラメータの変化を検出する方法について説明する。即ち、内部的に管理されているパラメータの値を監視するのではなく、ゲームコンテンツがどのような状態にあるか、あるいはゲームコンテンツについてどのような処理が実行されている状況にあるかをゲーム画面の解析によって検出する。
【０１１５】
例えば、図１０Ａに示したようなゲーム画面には、上述したように体力ゲージや操作入力の結果に係るテキスト表示等が含まれる。画像解析モジュール５４０は、連続するフレームに係るゲーム画面の差分や相関により体力ゲージの変化量を検出したり、テキスト認識を行うことでゲーム内でどのような状態にあるかを検出したりすることができる。即ち、画像解析モジュール５４０により検出されたこれらの情報を拡張処理モジュール５１０に伝えることで、拡張処理モジュール５１０は上述したようなパラメータ変化の評価等を行うことができる。つまり、拡張処理モジュール５１０は、テキスト認識結果からコンボ期間中であることの把握や与えたダメージ量を把握することができる。また体力ゲージの変化から、急激な体力低下を与える効果が発生したことを把握することもできる。
【０１１６】
また、情報提示は変形例１に示したようなテキスト表示に限られるものでなくてよく、例えば図１０Ｃに示されるように、キャラクタ間の衝突があった箇所に所定のエフェクト表示を重畳するものであってもよい。これは、例えば拡張処理モジュール５１０が画像解析モジュール５４０により急激な体力低下に係る検出結果を受けた場合に、前後のフレームで所定の値以上のスカラーを有する動きベクトルが検出された箇所にエフェクト表示を配置した重畳画像を、重畳画像生成モジュール５２０に生成させることにより行われてよい。
【０１１７】
本変形例では、ゲーム画面の画像解析により情報提示を行うか否かを拡張処理モジュール５１０が決定するものとして説明した。しかしながら、本発明の実施はこれに限られるものではない。例えば、入力監視モジュール５００が受信したクライアント機器入力１４０の履歴から、コマンドの入力数やアナログ値の変動量等の情報に基づいて情報提示を行うか否かを決定するものであってもよい。また例えば、ゲーム画面に合わせて出力される音声信号に所定の値以上の振幅の音が含まれるか否かに基づいて情報提示を行うか否かを決定するものであってもよい。また、これらの情報の組み合わせにより情報提示を行うか否かを決定するものであってもよい。
【０１１８】
［変形例３］
上述した変形例１及び２では、情報提示やエフェクト表示を目的とした重畳画像を生成するものとして説明した。しかしながら、本発明の実施はこれに限られるものではない。
【０１１９】
例えば、図１１Ａに示されるように、ゲーム画面について所定の方法により検出された注目領域にアイコン等の表示アイテムを配置し、ゲーム画面の遷移中にこれらのアイテムをユーザが選択することで該アイテムを収集するサブゲームを提供してもよい。この場合、入力監視モジュール５００はクライアント機器入力１４０は表示アイテムを選択する操作入力が含まれる場合には操作入力をビデオゲーム機能モジュール２７０に伝送せずに拡張処理モジュール５１０に伝送し、拡張処理モジュール５１０がアイテム収集に係るスコア演算等の処理を行えばよい。またアイテムが収集されたことを提示するために、拡張処理モジュール５１０は、表示アイテムをアイテムの収集がなされたことを示す表示に切り替えた図１１Ｂのような重畳画像を重畳画像生成モジュール５２０に生成させ、提供するゲーム画面に重畳させてもよい。また配置される表示アイテムは、ゲーム画面の配置位置に存在するゲーム上の描画オブジェクトの雰囲気（照明、陰影、反射、カメラアングル）と一体化させるように、重畳画像の生成において所定の描画エフェクトが提供されてもよい。
【０１２０】
なお、注目領域は、図５Ｃに示したような画像解析モジュール５４０が、例えば連続するフレームのゲーム画面において変化のない領域、あるいはエッジ成分が閾値以上の強度を示し、かつ周囲の領域とのコントラスト比が高い領域を検出することにより特定されてよい。あるいは、画像解析モジュール５４０がゲーム画面内に含まれる所定の画像パターンを検出することにより特定されてもよい。また注目領域の検出方法は、これ以外にも様々な手法が適宜使用可能である。
【０１２１】
［その他の実施形態］
例示的な実施形態を参照して本発明を説明してきたが、記載した例示的な実施形態に発明が限られるものでないことは理解されよう。以下の特許請求の範囲は、このような変形、等価な構成及び機能の全てを包含するように、広範な解釈を許容されよう。また、本発明に係る情報処理装置及びその制御方法は、コンピュータにおいて該手法が実行されるプログラムにより実現可能である。プログラムは、コンピュータ読み取り可能な記録媒体に格納されることで、または電気的な通信回線を介して、提供／配信可能である。
【０１２２】
本出願は、その全体がここに参照により援用される、２０１３年５月８日に出願された米国仮出願第６１／８２０９０９号の利益を主張するものである。
【図１】
0006576245.tif 000002
【図２Ａ】
0006576245.tif 000003
【図２Ｂ】
0006576245.tif 000004
【図２Ｃ】
0006576245.tif 000005
【図３Ａ】
0006576245.tif 000006
【図３Ｂ】
0006576245.tif 000007
【図３Ｃ】
0006576245.tif 000008
【図４Ａ】
0006576245.tif 000009
【図４Ｂ】
0006576245.tif 000010
【図５Ａ】
0006576245.tif 000011
【図５Ｂ】
0006576245.tif 000012
【図６】
0006576245.tif 000013
【図７Ａ】
0006576245.tif 000014
【図７Ｂ】
0006576245.tif 000015
【図７Ｃ】
0006576245.tif 000016
【図８Ａ】
0006576245.tif 000017
【図８Ｂ】
0006576245.tif 000018
【図９Ａ】
0006576245.tif 000019
【図９Ｂ】
0006576245.tif 000020
【図１０Ａ】
0006576245.tif 000021
【図１０Ｂ】
0006576245.tif 000022
【図１０Ｃ】
0006576245.tif 000023
【図１１Ａ】
0006576245.tif 000024
【図１１Ｂ】
0006576245.tif 000025