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