JP6576245B2 - 情報処理装置、制御方法及びプログラム - Google Patents

情報処理装置、制御方法及びプログラム Download PDF

Info

Publication number
JP6576245B2
JP6576245B2 JP2015546744A JP2015546744A JP6576245B2 JP 6576245 B2 JP6576245 B2 JP 6576245B2 JP 2015546744 A JP2015546744 A JP 2015546744A JP 2015546744 A JP2015546744 A JP 2015546744A JP 6576245 B2 JP6576245 B2 JP 6576245B2
Authority
JP
Japan
Prior art keywords
image
program
operation input
client device
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015546744A
Other languages
English (en)
Other versions
JP2016526929A5 (ja
JP2016526929A (ja
Inventor
シリル ペリン,
シリル ペリン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Square Enix Holdings Co Ltd
Original Assignee
Square Enix Holdings Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Square Enix Holdings Co Ltd filed Critical Square Enix Holdings Co Ltd
Publication of JP2016526929A publication Critical patent/JP2016526929A/ja
Publication of JP2016526929A5 publication Critical patent/JP2016526929A5/ja
Application granted granted Critical
Publication of JP6576245B2 publication Critical patent/JP6576245B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Image Generation (AREA)

Description

本発明は、情報処理装置、制御方法及びプログラムに関し、特に付加的な表示を追加することによりコンテンツの機能を拡張する技術に関する。
近年、インターネット等のネットワークを利用する情報通信技術の発達に伴い、ネットワークを介した顧客へのサービス提供が様々な分野でなされている。こうしたサービスの中には、従来は顧客が操作するPC等のクライアント機器においてアプリケーションが実行されることでサービス提供がなされていたようなコンテンツを、実行に係る処理をネットワーク上のサーバにおいて行い、対応する画面を描画してクライアント機器に送信するものがある。即ち、クライアント機器で行われる大部分の処理をサーバ側が代替的に実行するため、クライアント機器ではユーザによりなされた操作入力をサーバに送信する処理と、サーバから受信した画面を表示する処理のみを行えばよいことになる。
このような提供形態を行うサービスの1つに、所謂クラウドゲーミング(Cloud gaming)のような、サーバにおいて描画されたゲーム画面をネットワークを介してクライアント機器に提供するものもある。特に、美麗なグラフィックスを生成するようなゲームコンテンツではクライアント機器に十分な描画性能を要求するものであったが、クラウドゲーミングでは、ユーザは十分な描画性能を有するクライアント機器を所持していなくとも、十分な描画性能を有する機器と同等のゲームをプレイすることができる。
このような、サーバ側でコンテンツに係る画面の描画を行って提供するようなクラウドサービスでは、サーバでの実行用にアプリケーションプログラム等を最適化して構成することが好ましい。しかしながら、既に開発が終わったコンテンツ等をクラウドサービス化する場合、クラウド用にプログラムを最適化して再構成することは、更なるコストが発生するため現実的でない。またプログラム等のソースが存在しないような場合もありえるため、実質的に0からコンテンツ提供用のプログラム等を開発しなければならない可能性もある。この他、既にリリースされたコンテンツに対してメインプロセスとは関係性が低いプロセス(機能)を付加したい場合等、プログラム再編集等の作業が発生すれば、それに伴ってデバッグ等の作業が必要となり、該機能のリリースまでに時間を要することにもつながる。
本発明はこのような従来技術の課題に鑑みてなされたものである。本発明の一態様は既存のコンテンツに係るプログラムを改変することなく、該コンテンツの提供において機能拡張したユーザ体験を提供する。
本発明の第1の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第1のプログラムを実行することで、コンテンツに対応する第1の画像を生成する第1の生成手段と、第1のプログラムとは異なる第2のプログラムを実行することで、第1の画像に付加される第2の画像を生成する第2の生成手段と、第1の画像と第2の画像とを合成することで得られた合成画像を出力する出力手段と、受信手段が合成画像の第2の画像に係る領域に対する操作入力を受信した場合に、第1の生成手段に該操作入力に応じて第1のプログラムを実行させないように制御する制御手段と、を有する情報処理装置を提供する。
本発明の第2の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第1のプログラムを実行することで、コンテンツに対応する第1の画像を生成する第1の生成手段と、第1のプログラムの実行中に変化する所定のパラメータを監視する監視手段と、所定のパラメータが予め定められた条件となった場合に、第1のプログラムとは異なる第2のプログラムを実行することで、第1の画像に付加される第2の画像を生成する第2の生成手段と、第1の画像と第2の画像とを合成することにより得られた合成画像を出力する出力手段と、を有する情報処理装置を提供する。
本発明の第3の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第1のプログラムを実行することで、コンテンツに対応する第1の画像を生成する第1の生成手段と、第1の画像を解析し、コンテンツの実行状況が予め定められた条件を満たすか否かを検出する解析手段と、コンテンツの実行状況が予め定められた条件を満たす場合に、第1のプログラムとは異なる第2のプログラムを実行することにより、第1の画像に付加される第2の画像を生成する第2の生成手段と、第1の画像と第2の画像とを合成することにより得られた合成画像を出力する出力手段と、を有する情報処理装置を提供する。
本発明の第4の態様に係る情報処理装置は、コンテンツに係る操作入力を受信する受信手段と、受信手段により受信された操作入力に応じてコンテンツに係る第1のプログラムを実行することで、コンテンツに対応する第1の画像を生成する第1の生成手段と、第1の画像を解析し、表示アイテムが配置される位置を決定する解析手段と、第1のプログラムとは異なる第2のプログラムを実行することで、解析手段により決定された位置に表示アイテムが配置された第1の画像に付加される第2の画像を生成する第2の生成手段と、第1の画像と第2の画像とを合成することにより得られた合成画像を出力する出力手段と、を有する情報処理装置を提供する。
さらに、本発明の特徴は、(添付の図面を参照して)以下の例示的な実施形態の記載により明らかになるだろう。
本発明の非限定的な実施形態に係るクラウド型ビデオゲームシステムアーキテクチャのブロック図 本発明の非限定的な実施形態に係る、図1のアーキテクチャの様々な物理的構成要素を示したブロック図 図2Aの変形例 図2A及び2Bの物理的構成要素により実現され得る、図1のアーキテクチャの様々な機能モジュールを示したブロック図 本発明の非限定的な実施形態に係る、ビデオゲームの実行中に行われる処理セットの実行を示したフローチャート 本発明の非限定的な実施形態に係る、受信した映像及び音声の各々を処理するためのクライアント機器の動作を示したフローチャート 本発明の実施形態または変形例に係るサーバ側の機能構成を示したブロック図 本発明の実施形態に係るサーバ側で行われるメニュー拡張処理を例示したフローチャート 本発明の実施形態に係るメニュー拡張処理における合成処理の前後に係る各画像の構成を例示した図 本発明の実施形態に係るサーバ側で行われる表示更新処理を例示したフローチャート 表示更新処理により生成される重畳画像の構成を例示した図 本発明の変形例に係る合成処理の前後に係る各画像の構成を例示した図 本発明の変形例3に係る合成画像の構成を例示した図
《1.クラウドゲーミングアーキテクチャ》
図1は、本発明の非限定的な実施形態に係るクラウド型ビデオゲームシステムアーキテクチャを概略的に示している。該アーキテクチャは、インターネット130等のデータネットワークを介してクラウドゲーミングサーバシステム100に接続されたクライアント機器120、120Aを含む。クライアント機器120、120Aの各々は、各々のローカルアクセスネットワーク(不図示)を介することを含む、あらゆる好適な方式でインターネット130に接続していてもよい。また、クラウドゲーミングサーバシステム100は、ローカルアクセスネットワーク(不図示)を介してインターネット130に接続してもよいが、クラウドゲーミングサーバシステム100はローカルアクセスネットワークの媒介なく、インターネット130と直接接続してよい。クラウドゲーミングサーバシステム100と1以上のクライアント機器120、120Aとの接続は、1以上のチャネルを含んでいてもよい。これらのチャネルは、物理的及び/または論理的リンクによりなされ、無線周波数、光ファイバ、光空間(free-space optical)、同軸ケーブル、及びツイストペアを含む様々な物理的媒体を回遊してもよい。チャネルはUDPやTCP/IPのようなプロトコルに従ってもよい。また、1以上のチャネルが、仮想プライベートネットワーク(VPN)でサポートされていてもよい。いくつかの実施形態では、1以上の接続はセッションベースでなされてもよい。
クラウドゲーミングサーバシステム100は、クライアント機器120、120Aのユーザが、ビデオゲームを個々に(即ち、シングルプレイヤ用ビデオゲーム)または集団で(即ち、マルチプレイヤ用ビデオゲーム)プレイすることが可能である。ビデオゲームの非限定的な例は、レジャー、教育及び/またはスポーツについてプレイされるゲームを含みうる。しかし、ビデオゲームは貨幣損益の可能性を参加者に提示する必要はない。2つのクライアント機器120、120Aのみが示されているが、クラウド型ビデオゲームシステムアーキテクチャ内のクライアント機器の数は特に限定されるものではないことは理解されるべきである。
クライアント機器120、120Aのうちの1つのユーザは、ビデオゲームの参加者としてクラウドゲーミングサーバシステム100に登録してよい。該ユーザは、「プレイヤ」として登録され得、そしてキャラクタ、アバタ、レースカー、コックピット等をコントロールする機会を得るだろう。マルチプレイヤ用ビデオゲームの場合、仮想世界は2以上のプレイヤに共有され、1人のプレイヤのゲームプレイは他のプレイヤのゲームプレイに影響を及ぼし得る。いくつかの実施形態において、クライアント機器120、120Aのうちの1つのユーザは、非プレイヤである「観戦者」として登録され得、このようにすることで該ユーザはプレイヤのゲームプレイを観賞するであろうが、ゲーム内のアクティブキャラクタをコントロールできない。別段の指示がない限り、「参加者」との文言が使用された場合、プレイヤと観戦者の両方に等しく適用されることを意味する。
サーバシステム100は、1以上のゲームサーバ及び1以上のアカウントサーバを含む、1以上の計算リソースを含んでよい。ゲームサーバ及びアカウントサーバは、同一のハードウェアにおいて統合されていてもよいし、場合によってはインターネット130を介すことを含む、通信リンクを介して接続された異なるサーバであってもよい。以下の説明では、単に簡単のため分離されたサーバとして取り扱われる。
ゲームの最中、アカウントサーバはプレイヤと情報のやり取りを行い、アカウントサーバはゲーム環境外でプレイヤと情報のやり取りを行う。故に、例えばアカウントサーバは、予想されるプレイヤのゲームポータルへのログイン、インターネットを介したプレイヤの接続性の追跡、及びいくつかの非限定的な機能のうちの、ゲームのインスタンスを開始、参加、退出、終了するためのプレイヤの命令に対するレスポンス返却を行うよう構成されてよい。該目的達成のためアカウントサーバは、識別データ、財務データ、位置データ、人口統計データ(demographic data)、接続データ等のような、様々な参加者及びクライアント機器120、120Aについてのアカウント情報を格納する参加者データベース10を提供してもよい、または参加者データベース10にアクセスしてもよい。参加者データベース10は、クラウドゲーミングサーバシステム100の一部、またはそれらから離れて配置されるものであってよい。またゲームサーバ110も、上述したカウント情報を格納する参加者データベース10にアクセスしてもよく、該情報はビデオゲームが進行する方法に影響を与えるために用いられうる。
任意の1つのクライアント機器120、120Aの構成は、特に限定されるものではない。いくつかの実施形態において、1以上のクライアント機器120、120Aは、例えばパーソナルコンピュータ(PC)、家庭用ゲーム機(XBOX(登録商標)、PS3(登録商標)、Wii(登録商標)等のコンソール)、携帯ゲーム機、スマートテレビ、セットトップボックス(STB)等であってもよい。他の実施形態において、1以上のクライアント機器120、120Aは、携帯電話、電子手帳(PDA)、タブレットのような通信または計算装置であってもよい。
任意の1つのクライアント機器120、120Aは、該任意のクライアント機器のユーザが入力を提供し、ビデオゲームに参加することを可能ならしめるために、1以上の入力装置(タッチスクリーン、キーボード、ゲームコントローラ、ジョイスティック等)が備えられていてもよい。他の実施形態において、ユーザは身体動作を行う、外部オブジェクトを振る等してもよく、これらの動作はカメラや他のセンサ(例えばKinect(登録商標))により検出され、該任意のクライアント機器で動作するソフトウェアは、ユーザが該任意のクライアント機器に対して入力を提供しようとしているか、もしそうであれば該入力の本質を正確に推測することを試みる。任意のクライアント機器は、受信したユーザ入力及び検出されたユーザ動作を、インターネット130を介してクラウドゲーミングサーバシステム100に送信される「クライアント機器入力」に変換する。図示されている実施形態では、クライアント機器120はクライアント機器入力140を生成し、クライアント機器120Aはクライアント機器入力140Aを生成する。
クラウドゲーミングサーバシステム100は、様々なクライアント機器120、120Aから受信したクライアント機器入力140、140Aを処理し、該様々なクライアント機器120、120Aについての「メディア出力」を生成する。メディア出力は、(スクリーンに表示された場合に画像を提示する)符号化された映像データ及び(スピーカを介して再生された場合に音を提示する)音声データのストリームを含みうる。メディア出力は、パケットの形でインターネット130を介して送信される。クライアント機器120、120Aの特定の1つに向けられたパケットは、インターネット130を介して該装置にルートされるように、このような方法でアドレスされうる。クライアント機器120、120Aの各々は、クラウドゲーミングサーバシステム100から受信したパケット内のメディア出力をバッファして処理する電気回路、画像を表示するためのディスプレイ、及び音声を出力する振動子(例えばスピーカ)を含んでいてもよい。また、追加の出力装置は、動作を誘導するための電気機械システム等を提供してもよい。
映像データのストリームが「フレーム」に分割されうることは理解されるべきである。ここで用いられる「フレーム」との文言は、映像データのフレームと該映像データにより提示される画像との間の一対一対応の存在を要求するものではない。即ち、映像データのフレームにつき各表示画像の全体を提示するデータを含めることも可能であるが、映像データのフレームにつき画像の一部を提示するデータを含め、該画像のために適切に再構成及び表示されるために複数のフレームを要するものとすることも可能である。同様に、映像データのフレームは、N枚の画像が映像データのM(M<N)フレームを用いて提示されるよう、1つ以上の完全な画像を提示するデータを含んでいてもよい。
《2.クラウドゲーミングサーバシステム100(分散型アーキテクチャ)》
図2Aは、クラウドゲーミングサーバシステム100の構成要素の非限定的な物理的構成の第1の態様を示している。本実施形態では、クラウドゲーミングサーバシステム100の個々のサーバが、専用の機能を実行するよう構成される。例えば、計算サーバ200Cは、ユーザ入力に基づいてビデオゲーム内の状態変化の追跡についての役割を担い、描画サーバ200Rは、グラフィックス(映像データ)の描画についての役割を担い得る。
以下に記載される実施形態の例のために、クライアント機器120及びクライアント機器120Aの両方は、プレイヤまたは参加者としてビデオゲームに参加しているものとする。しかしながら、いくつかのケースでは1人のプレイヤと観戦者なし、複数のプレイヤと1人の観戦者、1人のプレイヤと複数の観戦者、及び複数のプレイヤと複数の観戦者等で構成されてもよいことは理解されるべきである。
簡単のため、以下の説明では単一の描画サーバ200Rに単一の計算サーバ200Cが接続されているものとする。しかしながら、1以上の描画サーバ200Rが同一の計算サーバ200Cに接続される、あるいは1以上の計算サーバ200Cが同一の描画サーバ200Rに接続されるものであってもよいことは理解されるべきである。複数の描画サーバ200Rが存在する場合、あらゆる適切な地理的領域に分散されるものであってもよい。
図2Aの構成要素の非限定的な物理的構成に示されるように、計算サーバ200Cは1以上の中央演算装置(CPU)220C、222C及びランダムアクセスメモリ(RAM)230Cを有する。CPU220C、222Cは、例えば通信バスアーキテクチャを介してRAM230Cにアクセス可能である。2つのCPU220C、222Cのみが示されているが、計算サーバ200Cのいくつかの実装例では、より多数のCPUあるいは単一のCPUのみが提供されてもよい。また、計算サーバ200Cは、ビデオゲームに参加しているクライアント機器の各々から、インターネット130を介してクライアント機器入力を受信する、ネットワークインタフェースコンポーネント(NIC)210C2を有する。以下に記載される実施形態の例では、クライアント機器120及び120Aの両方は、ビデオゲームに参加しているものとし、従って、受信したクライアント機器入力はクライアント機器入力140及びクライアント機器入力140Aが含まれうる。
さらに計算サーバ200Cは、描画命令セット204を出力する他のネットワークインタフェースコンポーネント(NIC)210C1を有する。NIC210C1を介して計算サーバ200Cから出力された複数の描画命令セット204は、描画サーバ200Rに送信されうる。一実施形態において計算サーバ200Cは、描画サーバ200Rに直接接続されうる。他の実施形態では計算サーバ200Cは、インターネット130であってもよいし、その他のネットワークであってもよいネットワーク260上において描画サーバ200Rに接続されうる。仮想プライベートネットワーク(VPN)は、ネットワーク260上において計算サーバ200Cと描画サーバ200Rとの間に確立されてもよい。
描画サーバ200Rにおいて、計算サーバ200Cにより送信された描画命令セット204は、ネットワークインタフェースコンポーネント(NIC)210R1において受信され、1以上のCPU220R、222Rに対して導かれる。CPU220R、222Rは、グラフィックス処理装置(GPU)240R、250Rに接続される。非限定的な例として、GPU240Rは、GPUコア242Rのセット及びビデオランダムアクセスメモリ(VRAM)246Rを含んでもよい。同様に、GPU250RはGPUコア252Rのセット及びビデオランダムアクセスメモリ(VRAM)256Rを含んでもよい。CPU220R、222Rの各々は、GPU240R、250Rの各々に接続されていてもよいし、GPU240R、250Rの集合に接続されていてもよい。CPU220R、222RとGPU240R、250Rとの間の通信は、例えば通信バスアーキテクチャを用いて確立されてよい。2つのCPU及び2つのGPUのみが示されるが、描画サーバ200Rの特定の実装例では、2以上のCPU及びGPUがあってもよいし、単一のCPUまたはGPUだけであってもよい。
CPU220R、222Rは、描画命令セット204を参加する各クライアント機器につき1つであるグラフィックス出力ストリームに変換するために、GPU240R、250Rと協働する。本実施形態では、クライアント機器120、120Aの各々について2つのグラフィックス出力ストリーム206、206Aがある。このことは、さらに詳細が後述されるだろう。さらに描画サーバ200Rは、これを介してグラフィックス出力ストリーム206、206Aがクライアント機器120、120Aの各々に送信される、ネットワークインタフェースコンポーネント(NIC)210R2を有する。
《3.クラウドゲーミングサーバシステム100(ハイブリッドアーキテクチャ)》
図2Bは、クラウドゲーミングサーバシステム100の構成要素の非限定的な物理的構成の第2の態様を示している。本実施形態ではハイブリッドサーバ200Hは、ユーザ入力に基づいてビデオゲーム内の状態変化の追跡とグラフィックス(映像データ)の描画の両方の役割を担う。
図2Bの構成要素の非限定的な物理的構成に示されるように、ハイブリッドサーバ200Hは1以上の中央演算装置(CPU)220H、222H及びランダムアクセスメモリ(RAM)230Hを有する。CPU220H、222Hは、例えば通信バスアーキテクチャを介してRAM230Hにアクセスできる。2つのCPU220H、222Hのみが示されているが、より多数のCPUまたは単一のCPUのみがハイブリッドサーバ200Hのいくつかの実装例において提供されてもよいことは理解されるべきである。またハイブリッドサーバ200Hは、ビデオゲームに参加するクライアント機器の各々からインターネット130を介してクライアント機器入力が受信されるネットワークインタフェースコンポーネント(NIC)210Hを有する。以下に記載される実施形態の例では、クライアント機器120及びクライアント機器120Aの両方は、ビデオゲームに参加しているものとし、故に受信したクライアント機器入力は、クライアント機器入力140及びクライアント機器入力140Aを含んでもよい。
また、CPU220H、222Hは、描画処理装置(GPU)240H、250Hに接続される。非限定的な例ではGPU240Hは、GPUコア242のセット及びビデオランダムアクセスメモリ(VRAM)246Hを含んでいてもよい。同様にGPU250Hは、GPUコア252Hのセット及びビデオランダムアクセスメモリ(VRAM)256Hを含んでいてもよい。CPU220H、222Hの各々は、GPU240H、250Hの各々またはGPU240H、250Hの集合に接続されていてもよい。CPU220H、222HとGPU240H、250Hとの通信は、例えば通信バスアーキテクチャを用いて確立されうる。2つのCPUと2つのGPUのみが示されているが、ハイブリッドサーバ200Hの特定の実装例では、2以上のCPUを有するものであってもよいし、単一のCPUまたはGPUのみを有するものであってさえよい。
描画命令セット204を、参加している各クライアント機器につき1つであるグラフィックス出力ストリームに変換するために、CPU220H、222HはGPU240H、250Hと協働する。本実施形態では、参加しているクライアント機器120、120Aの各々に対して、2つのグラフィックス出力ストリーム206、206Aが存在する。グラフィックス出力ストリーム206、206Aは、NIC210Hを介してクライアント機器120、120Aの各々に送信される。
《4.クラウドゲーミングサーバシステム100(機能概要)》
さらに図2Cを参照すると、上述した計算サーバ200Cと描画サーバ200R(図2A)及び/またはハイブリッドサーバ200H(図2B)の物理的構成要素は、ビデオゲーム機能モジュール270、描画機能モジュール280、及びビデオエンコーダ285を含む機能モジュールセットを実現する。図2Aの非限定的な実施形態によれば、ビデオゲーム機能モジュール270は計算サーバ200Cにより実現され、描画機能モジュール280及びビデオエンコーダ285は描画サーバ200Rにより実現される。図2Bの非限定的な実施形態によれば、ハイブリッドサーバ200Hはビデオゲーム機能モジュール270、描画機能モジュール280、及びビデオエンコーダ285を実現する。
本実施形態の例は、図を簡略化するために単一のビデオゲーム機能モジュール270について議論する。しかしながら、クラウドゲーミングサーバシステム100の実際の実装において、ビデオゲーム機能モジュール270と同様の多くのビデオゲーム機能モジュールが並行して実行される。したがって、クラウドゲーミングサーバシステム100は、同一のビデオゲームの複数の独立したインスタンス化または複数の異なるビデオゲームの同時のインスタンス化をサポートしうる。また、ビデオゲームは、あらゆる種類の1人プレイヤ用ビデオゲームまたはマルチプレイヤ用ゲームであってもよいことは理解されるべきである。
ビデオゲーム機能モジュール270は、(図2Aの)計算サーバ200Cまたは(図2Bの)ハイブリッドサーバ200Hの所定の物理的構成要素により実現されてもよい。具体的には、ビデオゲーム機能モジュール270は、(計算サーバ200CのCPU220C、222Cやハイブリッドサーバ200HのCPU220H、222Hのような)CPUにより実行可能なコンピュータ読み取り可能な命令として符号化されうる。該命令は、(計算サーバ200Cの)RAM230C、(ハイブリッドサーバ200Hの)RAM230H、あるいは他の記憶領域に、ビデオゲーム機能モジュール270により使用される定数、変数及び/または他のデータとともに明白に(tangibly)格納されうる。いくつかの実施形態においてビデオゲーム機能モジュール270は、(計算サーバ200CのCPU220C、222Cやハイブリッドサーバ200HのCPU220H、222Hのような)CPUにより実行されているオペレーティングシステムによりサポートされうる、バーチャルマシンの環境において実行されてもよい。
描画機能モジュール280は(図2Aの)描画サーバ200Rあるいは(図2Bの)ハイブリッドサーバ200Hの所定の物理的構成要素により実現されてもよい。一実施形態において、描画機能モジュール280は、1以上のGPU(図2Aの240R、250R、図2Bの240H、250H)が引き受けてもよいし、CPUリソースを利用してもよいし、しなくてもよい。
ビデオエンコーダ285は、(図2Aの)描画サーバ200Rまたは(図2Bの)ハイブリッドサーバ200Hの所定の物理的構成要素により実現されてよい。本技術分野に属する当業者は、ビデオエンコーダ285を実現する種々の手法があることは容易に理解するだろう。図2Aの実施形態において、ビデオエンコーダ285はCPU220R、222R及び/またはGPU240R、250Rにより実現されうる。図2Bの実施形態では、ビデオエンコーダ285はCPU220H、222H及び/またはGPU240H、250Hにより実現されうる。その他の実施形態では、ビデオエンコーダ285は、分離された符号化チップ(不図示)により実現されてもよい。
動作において、ビデオゲーム機能モジュール270は、受信したクライアント機器入力に基づいて描画命令セット204を生成する。受信したクライアント機器入力は、行き先となるビデオゲーム機能モジュールを示すデータ(例えばアドレス)、及び由来するユーザ及び/またはクライアント機器を示すデータを運ぶものであってよい。クライアント機器120、120Aのユーザは、ビデオゲームに参加(即ちプレイヤまたは観戦者)しており、受信したクライアント機器入力は、クライアント機器120、120Aから受信したクライアント機器入力140、140Aを含む。
描画命令は、映像データの1フレームまたは映像データの一連のフレームを生成するように専用グラフィックス生成装置(GPU)に導くために用いられうる命令を示す。図2Cを参照すると、描画命令セット204は、描画機能モジュール280による映像データのフレーム生成をもたらす。これらのフレームにより提示される画像は、ビデオゲーム機能モジュール270にプログラムされた、クライアント機器入力140、140Aに応じた機能として変化する。例えば、ビデオゲーム機能モジュール270は、所定の特定の要因に応じてユーザに(将来のインタラクションが異なる、より挑戦的とさせる、あるいはより刺激的とさせる)進行体験を提供するような方法でプログラムされ得、一方で、他の特定の要因への応答は、回帰や終了の体験をユーザに与えるだろう。ビデオゲーム機能モジュール270への指示はバイナリ実行可能なファイルの形式で固定され得るが、クライアント機器入力140、140Aは対応するクライアント機器120、120Aを使用するプレイヤのインタラクション動作があるまで不明である。結果として、提供される特定のクライアント機器入力に応じて、様々な種類の生じ得る結果が存在してもよい。プレイヤ/観戦者とビデオゲーム機能モジュール270の間のクライアント機器120、120Aを介した該インタラクションは、「ゲームプレイ」や「ビデオゲームをプレイしている」として言及されうる。
描画機能モジュール280は、複数の映像データストリーム205を生成するために描画命令セット204を処理する。一般に、参加者ごとに(あるいはクライアント機器ごとにも同等)、1つの映像データストリームが存在することになるだろう。描画が実行されている場合、3次元空間(例えば物理オブジェクト)あるいは2次元空間(例えばテキスト)に示される1以上のオブジェクトについてのデータは、特定のGPU240R、250R、240H、250Hのキャッシュメモリ(不図示)に展開される。該データは、GPU240R、250R、240H、250Hにより、適切なVRAM246R、256R、246H、256Hに格納されうる2次元画像を表現するデータに変換されうる。このようにして、VRAM246R、256R、246H、256Hは、ゲーム画面についての画素(ピクセル)値の一時的な格納領域を提供しうる。
ビデオエンコーダ285は、映像データストリーム205の各々に含まれる映像データを、対応する圧縮/符号化映像データフレームのストリームに圧縮及び符号化する。グラフィックス出力ストリームとして言及される、圧縮/符号化映像データの結果であるストリームは、クライアント機器基準で生成される。本実施形態の例ではビデオエンコーダ285は、クライアント機器120についてのグラフィックス出力ストリーム206及びクライアント機器120Aについてのグラフィックス出力ストリーム206Aを生成する。追加の機能モジュールが、インターネット130を介して送信可能なように映像データをパケット形式にするよう提供されてもよい。映像データストリーム205内の映像データ、及び任意のグラフィックス出力ストリームに含まれる圧縮/符号化映像データは、フレームに分割されてよい。
《5.描画命令の生成》
以下、ビデオゲーム機能モジュール270による描画命令の生成が、図2C、3A及び3Bを参照してより詳細に説明される。具体的には、ビデオゲーム機能モジュール270の実行は、いかに詳細が説明されるメインゲームプロセス300Aと1以上のグラフィックス制御プロセス300Bを含むいくつかのプロセスを伴う。
〈メインゲームプロセス〉
メインゲームプロセスとして言及される第1のプロセスは、図3Aを参照して説明される。メインゲームプロセス300Aは、断続的に実行する。メインゲームプロセス300Aの一部として、実行中、クライアント機器入力が受信されうる動作310Aが提供される。ビデオゲームが観戦の可能性がない1人プレイヤ用ビデオゲームである場合、単一のクライアント機器(例えばクライアント機器120)からのクライアント機器入力(例えばクライアント機器入力140)が動作310Aの一部として受信される。ビデオゲームがマルチプレイヤ用ビデオゲームまたは観戦の可能性がある1人プレイヤ用ゲームである場合、1以上のクライアント機器(例えばクライアント機器120及び120A)からのクライアント機器入力(例えばクライアント機器入力140及び140A)が、動作310Aの一部として受信されうる。
非限定的な例示の目的で、任意のクライアント機器からの入力は、該任意のクライアント機器のユーザが、制御下にあるキャラクタに対して移動、ジャンプ、キック、旋回、揺動、押す、引く等をさせることを所望していることを伝送しうる。代替的あるいは追加的に、該任意のクライアント機器からの入力は、1以上の音声、映像またはゲームプレイ設定を変更する、ゲームをロード/セーブする、あるいはネットワークセッションの作成やセッションへの参加を行うために、該任意のクリア案と装置のユーザによりなされたメニュー選択を伝送しうる。代替的あるいは追加的に、該任意のクライアント機器からの入力は、該任意のクライアント機器のユーザが特定のカメラ視野(例えば1人称または3人称)の選択、あるいは仮想世界内の視野の再配置を所望していることを伝送しうる。
動作320Aで、ゲームステートは、動作310Aにおいて受信したクライアント機器入力の少なくとも一部及び他のパラメータに基づいて更新されうる。ゲームステートの更新は、次の動作を伴いうる。
第1に、ゲームステートの更新は、クライアント機器入力が受信されうるクライアント機器に関連付けられた参加者(プレイヤまたは観戦者)の所定のプロパティ(property)を更新することを伴いうる。これらのプロパティは、参加者データベース10に格納されうる。参加者データベース10に保持されて動作320において更新されうる参加者プロパティの例は、カメラ視野の選択(例えば1人称、3人称)、プレイモード、選択された音声または映像の設定、スキルレベル、顧客グレード(例えばゲスト、プレミアム等)を含みうる。
第2に、ゲームステートの更新は、クライアント機器入力の解釈に基づいて、仮想世界内の所定のオブジェクトの属性を更新することを伴いうる。属性が更新されるオブジェクトは、いくつかのケースでは2次元または3次元モデルにより示されてもよいし、プレイキャラクタ、非プレイキャラクタ及び他のオブジェクトを含みうる。プレイヤキャラクタである場合、更新されうる属性はオブジェクトの位置、強さ、武器/防具、経過した寿命、特殊能力、速さ/方向(速度)、アニメーション視覚的効果、エネルギ、弾薬等を含みうる。他のオブジェクト(背景、植物、建物、乗り物、スコアボード等)である場合、更新されうる属性は、該オブジェクトの位置、速度、アニメーション、ダメージ/体力、視覚的効果、テキスト内容等を含みうる。
クライアント機器入力とは別のパラメータは、上述した(参加者の)プロパティ及び(仮想世界オブジェクトの)属性に影響を与えうることは理解されるべきである。例えば、様々なタイマ(経過時間、特定のイベントからの時間、一日の仮想時刻、プレイヤ総数、参加者地理的位置等)が、ゲームステートの様々な態様に影響を及ぼしてもよい。
動作320Aの実行に加えてゲームステートが更新されると、メインゲームプロセス300Aは動作310Aに戻り、前回のメインゲームプロセスを終了してから受信した新たなクライアント機器入力が収集され、処理される。
〈グラフィックス制御プロセス〉
以下、グラフィックス制御プロセスとして言及される第2のプロセスについて、図3Bを参照して説明する。グラフィックス制御プロセス300Bは断続的に実行し、描画命令セット204の各々の結果をもたらす複数の分離したグラフィックス制御プロセス300Bが存在してもよい。観戦の可能性がない1人プレイヤ用ビデオゲームの場合、1人のプレイヤのみが存在し、故に描画命令セット204の結果は1つのみであり、従ってグラフィックス制御プロセス300Bは、上述したメインゲームプロセス300Aの延長として実行されうる。マルチプレイヤ用ビデオゲームの場合、複数の独立した描画命令セットが複数のプレイヤについて生成されることが必要であり、従って、複数のグラフィックス制御プロセス300Bが並行して実行しうる。観戦の可能性がある1人プレイヤ用ゲームの場合、また単一の描画命令セット204のみが存在し得、故に単一のグラフィックス制御プロセス300Bはビデオゲーム機能モジュール270において実行しうるが、結果である映像データストリームは、描画機能モジュール280により複数の観戦者にも複製されうる。もちろん、これらはただの実装の例であり、限定として取られるべきものではない。
別個の映像データストリームを要求する任意の参加者についてのグラフィックス制御プロセス300Bの動作310Bにおいて、ビデオゲーム機能モジュール270は該任意の参加者について描画されるオブジェクトを決定する。この動作は、以下の種類のオブジェクトを識別することを含みうる。
第1に、この動作は、仮想世界から任意の参加者についての「ゲーム画面描画範囲」(「シーン」としても知られる)内にある、これらのオブジェクトを識別することを含みうる。ゲーム画面描画範囲は、任意の参加者のカメラの投影(perspective)から「観ることが可能」な、仮想世界の一部を含みうる。これは、仮想世界内のオブジェクトに関連するカメラの位置及び方向に依る。動作310Bの非限定的な実装例において、錐台が仮想世界に適用され得、該錐台内のオブジェクトが保持またはマークされる。錐台は、任意の参加者のカメラの位置に置かれた頂点を有し、該カメラの方向性により規定される方向を有する。
第2に、この動作は、仮想世界内に現れないが、それにも関わらず任意の参加者について描画される追加のオブジェクトを識別することを含みうる。例えば、これらの追加のオブジェクトは、非限定的な2〜3の可能性を挙げると、テキストメッセージ、グラフィックス警告及びダッシュボードインジケータを含んでもよい。
動作320Bで、ビデオゲーム機能モジュール270は、動作310Bにおいて識別されたオブジェクトを、グラフィックス(映像データ)に描画変換するための命令セットを生成する。描画は、視野及び適用される照明状態に従って、1つのオブジェクトまたはオブジェクト群の3次元または2次元座標の、表示可能な画像を表現するデータへの変換を参照してもよい。これは、例えばここに参照により組み込まれる「"Computer Graphics and Geometric Modelling: Implementation & Algorithms", Max K. Agoston, Springer-Verlag London Limited, 2005」に記載されるような、あらゆるアルゴリズム及び技術を用いて達成されうる。
動作330Bで、動作320Bにおいて生成された描画命令は描画機能モジュール280に出力される。これは、描画機能モジュール280に送信する描画命令セット204への、生成された描画命令のパケット化を伴いうる。
本発明の技術分野に属する当業者は、上述したグラフィックス制御プロセス300Bの複数の例示が複数の描画命令セット204の結果として実行され得ることを認識するだろう。
《6.グラフィックス出力の生成》
描画機能モジュール280は、描画命令セット204を解釈し、参加している各クライアント機器につき1つである、複数の映像データストリーム205を生成する。描画は、(図2Aの)CPU220R、222Rまたは(図2Bの)CPU220H、222Hの制御の下、GPU240R、250R、240H、250Hにより実現されうる。1つの参加者のクライアント機器に係る映像データのフレームが生成されるレートは、フレームレートとして参照されうる。
N名の参加者が存在する実施形態において、N個の描画命令セット204(各参加者について1つ)が存在し、N個の映像データストリーム205(各参加者について1つの)が存在し得る。この場合、描画機能は参加者間で共有されない。しかしながら、2〜3の描画命令セットが描画機能モジュール280により処理される必要があるように、M個(M<N)の描画命令セット204からN個の映像データストリーム205が生成されてもよい。この場合、少ない数の描画命令セット204からより多い数の映像データストリーム205を生成するために、描画機能モジュール280は共有または複製を行ってもよい。このような共有または複製は、複数の参加者(例えば観戦者)が同一のカメラ画角を観ることを所望した場合に普及するものであってもよい。故に、描画機能モジュール280は、生成された映像データストリームが1以上の観戦者に複製されるように機能を実行してもよい。
次に、映像データストリーム205の各々における映像データは、ビデオエンコーダ285により符号化され、グラフィックス出力ストリームとして参照され、各クライアント機器に関連付けられた一連の符号化映像データが得られる。図2A〜2Cの実施形態の例において、クライアント機器120についての一連の符号化映像データはグラフィックス出力ストリーム206として参照され、クライアント機器120Aについての一連の符号化映像データはグラフィックス出力ストリーム206Aとして参照されてもよい。
ビデオエンコーダ285は、デジタル映像についての映像圧縮または展開を可能にする、実行する、または定義する装置(またはコンピュータ読み取り可能な命令セット)であり得る。映像圧縮は、(画素位置、色値等で表現される)デジタル画像データのオリジナルストリームを、より少ないビットを用いるが実質的に同一の情報を伝送するデジタル画像データの出力ストリームに変換する。あらゆる適切な圧縮アルゴリズムが用いられてよい。データ圧縮に加え、特定の映像データのフレームの符号化に用いられる符号化処理は、暗号化を含んでもよいし、含んでいなくともよい。
上述の手法で生成されたグラフィックス出力ストリーム206、206Aは、インターネット130を介して各クライアント機器に送信される。非限定的な例示目的で、グラフィックス出力ストリームは、各々がヘッダ及びペイロードを有するパケットに、セグメント化あるいは形式化されてもよい。任意の参加者についての1つの映像データに含まれるパケットのヘッダは、該任意の参加者に関連付けられたクライアント機器のネットワークアドレスを含んでもよく、ペイロードは全部または一部として映像データを含んでもよい。非限定的な実施形態において、ある映像データを符号化するために用いられる圧縮アルゴリズムの身元(identity)及び/またはバージョンが、該映像データを伝送する1以上のパケットのコンテンツ内に符号化されてもよい。符号化映像データの他の送信手法が、本技術分野に属する当業者には想起されよう。
本開示は個々の2D画像を表現する映像データの描画にフォーカスするものであるが、本発明は3次元効果を生成するために、フレームごとに複数の2D画像を表現する映像データの描画及び符号化の可能性を除外するものではない。
《7.クライアント機器におけるゲーム画面再生》
以下、非限定的な例示の目的で、クライアント機器120またはクライアント機器120Aたり得る、任意の参加者に関連付けられたクライアント機器の動作を示す図4Aを参照する。
動作410Aで、1つのグラフィックス出力ストリーム(例えば206、206A)は、実施形態に応じて描画サーバ200R(図2A)から、あるいはハイブリッドサーバ200H(図2B)から、インターネット130を介して受信される。該受信されたグラフィックス出力ストリーム206は、フレームに分割され得る、圧縮/符号化された映像データのフレームを有する。
動作420で、圧縮/符号化された映像データのフレームは、符号化/圧縮処理に用いられた符号化/圧縮アルゴリズムを補完する復号/展開アルゴリズムに従って復号される。非限定的な実施形態において、映像データの符号化/圧縮に用いられた符号化/圧縮アルゴリズムの身元またはバージョンは、予め知らされていてもよい。他の実施形態において、映像データの符号化に用いられた符号化/圧縮アルゴリズムの身元またはバージョンは、映像データ自体に添付されてもよい。
動作430Aで、(復号/展開された)映像データのフレームが処理される。これは、バッファへの復号/展開された映像データのフレームの配置、誤り訂正の実行、複数の連続するフレームにおけるデータの順序付け及び/または合成、アルファブレンディング、欠損したデータの一部の補間等を含みうる。該結果は、毎フレーム基準でユーザに提示される最終画像を表現する映像データとなり得る。
動作440Aで、最終画像がクライアント機器の出力機構を介して出力される。例えば、コンポジット映像フレームが、クライアント機器のディスプレイに表示されうる。
《8.音声生成》
以下、音声生成処理として言及される3番目の処理が、図3Cを参照して説明される。音声生成処理は、知覚可能な音声ストリームを要求する各参加者について、断続的に実行する。一実施形態において、音声生成処理はグラフィックス制御プロセス300Bと無関係に実行されてよい。他の実施形態において、音声生成処理及びグラフィックス制御処理の実行が連動されてもよい。
動作310Cで、ビデオゲーム機能モジュール270は、生成される音声を決定する。具体的に本動作は、音量(音の強さ)及び/または仮想世界内において参加者への近さに応じて、地形音響プロパティに影響を及ぼす仮想世界内のオブジェクトに関連付けられたこれらの音声を特定することを含みうる。
動作320Cで、ビデオゲーム機能モジュール270は音声セグメントを生成する。音声セグメントの継続期間は映像フレームの継続期間に及んでもよいし、いくつかの実施形態では音声セグメントは映像フレームよりも少ない頻度で生成されてもよいし、他の実施形態では音声セグメントは映像フレームよりも高い頻度で生成されてもよい。
動作330Cで、音声セグメントは例えば音声符号化器により符号化され、符号化音声セグメントが得られる。音声符号化器は、音声圧縮または展開アルゴリズムを可能にする、実行する、または定義する装置(または指示セット)であってもよい。音声圧縮は、(徐々に振幅及び位相が変化する音波として表現された)デジタル音声のオリジナルストリームを、より少ないビットを使用するが実質的に同一の情報を伝送するデジタル音声データの出力ストリームに変換する。あらゆる適切な圧縮アルゴリズムが用いられてもよい。音声圧縮に加え、特定の音声セグメントの符号化に用いられる符号化処理は暗号化を適用してもよいし、しなくてもよい。
いくつかの実施形態において、音声セグメントは計算サーバ200C(図2A)またはハイブリッドサーバ200H(図2B)のいずれかの専用ハードウェア(例えばサウンドカード)により生成されてもよいことは理解されるべきである。図2Aの分散型構成に適用可能な代替的実施形態において、音声セグメントはビデオゲーム機能モジュール270によりスピーチパラメータ(例えばLPCパラメータ)にパラメータ化されてもよく、スピーチパラメータは描画サーバ200Rにより、配信先のクライアント機器(例えばクライアント機器120またはクライアント機器120A)に再配信されうる。
上述した方式で生成された符号化された音声は、インターネット130を介して送信される。非限定的な例示を目的として、符号化された音声入力は、各々がヘッダ及びペイロードを有するパケットに分解及び形式化されうる。ヘッダは、音声生成処理が実行される参加者に関連付けられたクライアント機器のアドレスを伝送してもよく、ペイロードは符号化された音声を含んでいてもよい。非限定的な実施形態において、任意の音声セグメントの符号化に用いられる圧縮アルゴリズムの身元及び/またはバージョンは、該任意のセグメントを伝送する1以上のパケットのコンテンツ内に符号化されてもよい。符号化された音声を送信する他の手法は、本技術分野に属する当業者には思い当たるだろう。
以下、非限定的な例示を目的として、クライアント機器120またはクライアント機器120Aであってよい、任意の参加者に関連付けられたクライアント機器の動作を示す図4Bを参照する。
動作410Bで、符号化された音声セグメントが(実施形態に応じて)計算サーバ200C、描画サーバ200R、またはハイブリッドサーバ200Hから受信される。動作420Bで、符号化処理に用いられた圧縮アルゴリズムを補間する展開アルゴリズムに従って、符号化された音声は復号される。非限定的な実施形態において、音声セグメントの符号化に用いられた圧縮アルゴリズムの身元またはバージョンは、音声セグメントを伝送する1以上のパケットのコンテンツ内で特定されてもよい。
動作430Bで、(復号された)音声セグメントが処理される。これは、バッファ内への復号された音声セグメントの配置、誤り訂正の実行、複数の連続する波形合成等を含みうる。該結果は、毎フレーム基準でユーザに提示される最終音声となり得る。
動作440Bで、最終的に生成された音声は、クライアント機器の出力機構を介して出力される。例えば、音声はクライアント機器のサウンドカードまたはスピーカを介して再生される。
《9.非限定的な実施形態の具体的開示》
以下、本発明の所定の非限定的な実施形態について、より詳細な説明が提供される。
[実施形態]
《メニュー拡張処理》
このような構成のシステムのサーバ側において実行される、本発明の一態様である実施形態に係るサーバ側(サーバシステム100、計算サーバ200C及び描画サーバ200R、あるいはハイブリッドサーバ200H)でのメニュー拡張処理について、図5Aのブロック図及び図6のフローチャートを用いて具体的な処理を説明する。
メニュー拡張処理とは、サーバが提供する提供コンテンツのメインプロセスにおいて、例えば所定の操作入力がなされた際に表示される既定のメニュー項目に、新たな機能(拡張機能)に係るメニュー項目を付加して機能拡張を行う処理である。本実施形態では提供コンテンツは上述したようにゲームコンテンツである。またメインプロセスとは、クライアント機器120から受信したクライアント機器入力140に係る入力に合わせてゲームのステータスを変更し、変更後のステータスに対応したゲーム画面を描画して出力する、ゲームコンテンツに係る一連の処理を行うプロセスであるものとする。即ち、メインプロセスは上述したビデオゲーム機能モジュール270及び描画機能モジュール280により実行されるプロセスである。
図5Aは、本実施形態のサーバ側におけるメニュー拡張処理の実行に係るモジュール構成を、処理やデータの流れに応じて示した図である。
インターネット130を介して受信されたクライアント機器入力140は、まず入力監視モジュール500によりチェックされる。本実施形態では入力監視モジュール500は、まずなされた入力がメニュー表示に係る入力であるかをチェックし、拡張機能用のメニュー項目の表示に係る処理を実行する必要がある状況であるかを判断する。入力監視モジュール500は、例えば受信したクライアント機器入力140を常に監視し、メニュー表示に係る入力がなされるまでは、受信したクライアント機器入力140をそのままビデオゲーム機能モジュール270に出力する。また入力監視モジュール500は、メニュー表示後は画面にメニューに係る表示が含まれている間、付加したメニュー項目を選択する入力がなされたかを監視する。
拡張処理モジュール510は、入力監視モジュール500から拡張機能用のメニュー項目の表示に係る処理の実行指示を受信した場合に、メインプロセスで生成されるゲーム画面に拡張機能用のメニュー項目を付加するための各種処理を実行する。具体的には拡張処理モジュール510は、ゲーム画面に重畳するための、メニュー項目の表示アイテム等を重畳画像生成モジュール520に描画させる処理を行う。また拡張処理モジュール510は、拡張機能用のメニュー項目を選択する入力(項目に対応する処理の実行命令に係る入力)がなされた場合には、対応する処理(拡張処理)を実行する。
重畳画像生成モジュール520は、拡張機能用のメニュー項目に係る表示アイテムやその他の表示アイテムの描画を行い、メインプロセスで生成されるゲーム画面に対して重畳表示するための重畳画像を生成する。この他、重畳画像生成モジュール520は、重畳に係る合成処理において使用されるマスクデータを生成してもよい。マスクデータは、ゲーム画面に重畳画像を重畳する際に、重畳画像の各画素の透過度を示すものであってよい。またメニュー項目に係る表示アイテムのデータや表示位置等の情報は、記録装置(不図示)に予め記録されているものであってよい。
合成モジュール530は、メインプロセスの処理により生成されたゲーム画面に対して、重畳画像生成モジュール520で生成された重畳画像を重畳して新たなゲーム画面(合成画面)を生成する合成処理を行う。そして合成モジュール530は、生成した合成画面をビデオエンコーダ285に出力する。合成モジュール530は、重畳画像を生成しない場合もメインプロセスにより生成されたゲーム画面の入力を受けるが、その場合はゲーム画面をそのままビデオエンコーダ285に出力するものとする。
次に、このようなモジュール構成により実現されるメニュー拡張処理の具体的な処理について、図6のフローチャートに沿って説明する。該フローチャートに対応する処理は、CPU222が、例えば不図示の記録装置に記録されている対応の処理プログラムを読み出し、RAM230に展開してメインプロセスとは別に実行することにより実現することができる。
S601で、入力監視モジュール500は、クライアント機器120から受信したクライアント機器入力140がメニュー表示(通常メニュー表示)に係る入力であるか否かを判断する。入力監視モジュール500は、クライアント機器入力140が通常メニュー表示に係る入力であると判断した場合、拡張処理モジュール510に拡張機能用のメニュー項目の表示に係る処理の実行指示を送信するとともに、クライアント機器入力140をメインプロセスに操作入力を伝送し、処理をS603に移す。また入力監視モジュール500は、クライアント機器入力140が通常メニュー表示に係る入力ではないと判断した場合、S602でクライアント機器入力140をそのままメインプロセスに操作入力を伝送して処理をS601に戻す。
S603で、拡張処理モジュール510は、メインプロセスの処理によりゲーム画面に配置される通常メニュー表示に選択項目を追加するための、拡張機能に係るメニュー項目を配置した重畳画像を重畳画像生成モジュール520に描画させる。通常メニュー表示が例えば図7Aのようである場合、重畳画像は図7Bのようであってよい。本実施形態では拡張機能に係るメニュー項目の画像データは、通常メニュー表示でゲーム画面に配置されるメニュー項目とデザインが合わせられたデータが予め用意されて記録装置に記録されているものとする。また拡張機能に係るメニュー項目の配置位置の情報も、通常メニュー表示におけるメニュー項目の配置間隔を考慮して予め定められ、記録装置に記録されているものとする。故に、重畳画像生成モジュール520は、重畳画像の生成指示がなされた場合、メニュー項目の画像データ及びその配置位置の情報を取得し、重畳画像を生成する。なお、本実施形態では、重畳画像生成モジュール520が拡張処理モジュール510の指示を受けたことにより重畳画像を生成するものとして説明する。しかしながら、本発明の実施はこれに限られるものではない。重畳画像に配置する拡張機能に係るメニュー項目は動的に変化するものではないので、例えば重畳画像そのものが記録装置に予め記録されている態様であってもよいことは理解されるべきである。
S604で、拡張処理モジュール510は、同じフレームに受信した操作入力に対応する、描画機能モジュール280により生成されたゲーム画面と重畳画像生成モジュール520により生成された重畳画像とを合成モジュール530に合成させ、合成画像を生成させる。合成モジュール530は、例えば重畳画像のうちの重畳しないものとして定められた色以外の色を有する画素を、ゲーム画面の同一の画素位置に重畳することにより合成画像を生成する。図7Aに示されるようなゲーム画面が生成され、図7Bに示されるような重畳画像が生成される場合、図7Bにおいてハッチングで示される画素は重畳の際には透過させる画素として扱われ、重畳されない。反対に、それ以外の画素は重畳するものとして処理され、図7Cに示されるような拡張機能に係る付加的なメニュー項目を有するメニュー表示を含む新たなゲーム画面(合成画像)が生成される。
S605で、合成モジュール530は、生成した合成画像をゲーム画面としてビデオエンコーダ285に出力し、本メニュー拡張処理を完了する。
このようにすることで、メインプロセスに特殊な処理を行わせる必要なく、メインプロセスの処理によりゲーム画面に表示される通常メニュー表示に新たなメニュー項目を配置した新たなゲーム画面を生成することができる。
《表示更新処理》
次に、このように生成された機能拡張されたメニュー表示に対して所定の操作入力がなされたことに伴い、重畳画像を変更して表示を更新する方法について、図8A及び8Bのフローチャートを用いて説明する。該表示更新処理は、メニュー表示に係る描画処理が行われている間、メインプロセスのゲームプログラムの処理フレームごとに実行されるものとする。このとき、クライアント機器入力140は毎フレーム基準で受信されているものとする。
本実施形態では説明を簡単にするため、クライアント機器120においてメニュー表示に対してなされる操作入力は、マウスのようなポインティングデバイスにより行われるものとして説明する。またメニュー表示の各メニュー項目は、該項目に対応する領域内に、ポインティングデバイスにより指定される指示位置が侵入する操作(マウスオーバー)がなされた際に該項目をハイライトさせることにより強調表示させる挙動を示すものとする。またメニュー項目に対応する領域内に指示位置が存在する場合に、決定に相当する操作入力(マウスクリック)がなされた場合に、該項目に対応する機能が実行され、例えば設定用画面等の新たな表示に遷移する、あるいは設定用ウィンドウがさらに重畳表示される挙動を示すものとする。またメニュー表示は、メニュー表示を終了するための表示アイテム(各メニュー項目とは別のアイテム)に対応する領域内に指示位置が存在し、かつ決定に相当する操作入力がなされた場合に表示が消去されるものとする。
S801で、入力監視モジュール500は、拡張機能用のメニュー項目あるいは拡張機能の実行により表示される表示アイテムがクライアント機器120への提供画面に含まれているか否かを判断する。即ち、入力監視モジュール500は、現在メインプロセスにおいて生成されるゲーム画面に対して重畳画像を重畳しているか否かを判断する。入力監視モジュール500は、ゲーム画面に対して重畳画像を重畳していると判断した場合は処理をS802に移す。入力監視モジュール500は、重畳画像が重畳されていないと判断した場合は処理をS814に移す。
S802で、入力監視モジュール500は、受信したクライアント機器入力140により示される指示位置が、拡張機能用のメニュー項目が配置されている領域に含まれるか否かを判断する。入力監視モジュール500は、指示位置が拡張機能用のメニュー項目が配置されている領域に含まれると判断した場合は処理をS803に移す。入力監視モジュール500は、該指示位置が含まれないと判断した場合は処理をS810に移す。
S803で、入力監視モジュール500は、クライアント機器入力140がメニュー項目の機能実行に係る操作入力の情報を含むか否かを判断する。即ち、入力監視モジュール500は、指示位置が拡張機能用のメニュー項目が配置されている領域に存在し、かつ該メニュー項目を選択する操作入力(マウスクリック等)がなされたか否かを判断する。入力監視モジュール500は、機能実行に係る操作入力の情報が含まれると判断した場合は処理をS804に移す。入力監視モジュール500は、該情報が含まれないと判断した場合は処理をS807に移す。
S804で、入力監視モジュール500は、受信したクライアント機器入力140をビデオゲーム機能モジュール270には伝送せずに拡張処理モジュール510に伝送して処理をS805に移す。拡張機能用のメニュー項目への対応する機能の実行に係る操作入力は、メインプロセスにおけるいずれの処理を行うための操作入力にも対応していない。あるいは、拡張機能とは別の処理を行うための操作入力と判断されてしまう可能性もあり、別の画面に遷移したり、一時停止していたゲームが再開されたり等の好ましくない状況に遷移し得る。このため、メインプロセスにおいて該操作入力に係る処理が行われないように、本実施形態では入力監視モジュール500は拡張機能の実行に係る操作入力がなされた場合には該操作入力はメインプロセスには伝えず、拡張処理モジュール510にのみ伝送する。つまり、拡張機能の実行のために、擬似的にメインプロセス以外のサブプロセスが操作入力の処理権限を一時的に奪取した状況が生成される。
S805で、拡張処理モジュール510は、指示位置に配置されているメニュー項目に対応する拡張機能に係る処理を実行する。拡張機能に係る処理は、上述したような画面遷移や、メニュー項目が選択されたことによる該項目や他の項目の表示態様の変更等を含んでいてよい。このとき、拡張処理モジュール510は、ビデオゲーム機能モジュール270にメインプロセスに係る処理の実行を停止するように制御してもよい。
拡張機能に係る処理は、メインプロセスに係るゲームコンテンツに実装されていない付加的なコンテンツ要素のための設定や、ゲームコンテンツを様々なハードウェアのクライアント機器120で操作するためのキーアサイン等の設定に係る処理等が含まれてよい。また通信設定や配信画質設定等のクラウドゲーミングシステムに特有の設定を、プレイヤにゲーム体験中に変更可能ならしめるための処理であってもよい。またインターネットを通じてサービス提供がなされるため、任意のSNS(Social Networking Site)や動画投稿サイトへの投稿に係る設定や、関連商品販売サイトへのアクセスや注文機能、あるいはゲーム体験中のプレイヤのために宅配ピザの注文機能等、インターネットを利用するその他のサービスとの連携機能が拡張機能として設けられていてもよい。
S806で、重畳画像生成モジュール520は拡張処理モジュール510の制御の下、選択された拡張機能に係る重畳画像を生成する。拡張機能に係る重畳画像は、図9Aに示されるように設定用のウィンドウや特定のアプリケーションに係る画面等を示すものであってよい。本実施形態では拡張機能に係る画像は、メインプロセスに係り描画機能モジュール280により描画されたゲーム画面に重畳するための画像であるものとして説明する。しかしながら、本発明の実施において該画像はこれに限られるものではない。拡張機能に係る画像は、例えば画面全体を構成する画像であってもよく、後述するようにゲーム画面に重畳されることなく、クライアント機器120に提供する画面として出力されてもよい。
一方、S803において機能実行に係る操作入力の情報が含まれないと判断した場合、拡張処理モジュール510はS807で、クライアント機器入力140をビデオゲーム機能モジュール270及び拡張処理モジュール510に伝送して処理をS808に移す。本実施形態では、単に拡張機能のメニュー項目へのマウスオーバーではメインプロセスにおける拡張機能とは別の処理を行うため処理は実行されないものとして説明する。しかしながら、マウスオーバー等の指示位置の変更に係る操作によってメインプロセスにおける任意の処理が実行されるのであれば、本ステップで拡張処理モジュール510が、クライアント機器入力140を拡張処理モジュール510のみに伝送するように構成してもよい。
S808で、重畳画像生成モジュール520は拡張処理モジュール510の制御の下、クライアント機器入力140により示される指示位置に対応する拡張機能用のメニュー項目を強調表示した、図9Bに示されるような重畳画像を生成する。
S809で、合成モジュール530は拡張処理モジュール510の制御の下、描画機能モジュール280により生成されたゲーム画面と重畳画像生成モジュール520により生成された重畳画像とを合成し、合成画像を生成する。
一方、S802においてクライアント機器入力140により示される指示位置が拡張機能用のメニュー項目が配置されている領域に含まれないと判断した場合、入力監視モジュール500はS810で、通常メニュー表示に配置されたメニュー項目(通常メニュー項目)の機能実行に係る操作入力の情報を含むか否かを判断する。即ち、入力監視モジュール500は、指示位置が通常メニュー項目が配置されている領域に存在し、かつ該メニュー項目を選択する操作入力がなされたか否かを判断する。通常メニュー項目の画面上の位置の情報は、予め記録装置に記録されていてもよいし、例えば通常メニュー項目の表示前後のゲーム画面の画像解析を行って所定の形状の表示アイテムが配置される位置を特定することにより得られるものであってもよい。入力監視モジュール500は、通常メニュー項目の機能実行に係る操作入力の情報が含まれると判断した場合は処理をS811に移す。入力監視モジュール500は、該情報が含まれないと判断した場合は処理をS812に移す。
S811で、入力監視モジュール500は、受信したクライアント機器入力140をビデオゲーム機能モジュール270のみ伝送して処理をS813に移す。また入力監視モジュール500は、通常メニュー項目の機能実行に操作入力がなされたことを拡張処理モジュール510に通知する。
S812で、入力監視モジュール500は、クライアント機器入力140が通常メニュー表示の終了に係る操作入力の情報を含むか否かを判断する。入力監視モジュール500は、通常メニュー表示の終了に係る操作入力の情報が含まれると判断した場合は処理をS813に移す。入力監視モジュール500は、該情報が含まれないと判断した場合は処理をS814に移す。
S813で、拡張処理モジュール510は、重畳画像生成モジュール520に重畳画像の生成及び出力を停止させる。また拡張処理モジュール510は、合成モジュール530における合成処理の実行も停止させる。即ち、本ステップでは拡張処理モジュール510は、通常メニュー項目の機能実行により表示されるアイテムを邪魔しないよう、重畳画像の重畳がなされないように制御する処理を行う。
S814で、入力監視モジュール500は、クライアント機器入力140が通常メニュー項目に係る機能実行の終了に係る操作入力を含むか否かを判断する。即ち、通常メニュー項目の機能の実行により重畳を中止していた重畳画像(拡張機能用のメニュー項目)を、機能実行に係り表示されていたアイテムの表示終了に伴って再び重畳するか否かを判断する。入力監視モジュール500は、通常メニュー項目に係る機能実行の終了に係る操作入力が含まれると判断した場合は処理をS815に移す。入力監視モジュール500は、該操作入力が含まれないと判断した場合は本表示更新処理を完了する。
S815で、拡張処理モジュール510は、拡張機能に係るメニュー項目を配置した重畳画像を重畳画像生成モジュール520に描画させ、処理をS809に移す。
このようにすることで、本実施形態のシステムのサーバ側において、拡張機能に係る表示アイテムの表示遷移及び拡張機能の実行を、メインプロセスとは別のプロセスにおいて実行することができる。またこの実行により重畳画像を更新するため、最終的にクライアント機器120に提供されるメディア出力150に係る画面では、提供するコンテンツの機能拡張に係る表示を違和感なくプレイヤに提示することができる。
[変形例1]
上述した実施形態では、拡張機能用のメニュー項目を重畳し、該項目への操作入力があった場合に、操作入力の処理権限を一時的にメインプロセスから奪取してサブプロセスで拡張機能に係る処理を実行する方法について説明した。しかしながら、既存のコンテンツに係るプログラムを改変することなく、該コンテンツの提供において機能拡張したユーザ体験を提供する方法はこれに限られるものではない。本変形例では、サブプロセスが操作入力の処理権限を奪取するのではなく、メインプロセスにおける操作入力による変化を検出して、拡張的な表示を重畳することにより機能拡張したユーザ体験を提供する方法について説明する。
ゲームコンテンツの中には、図10Aに示されるように、なされた操作入力に応じて処理した結果に係る情報提示として、テキスト表示を行うものがある。このようなテキスト表示は、コンテンツ開発時に設定された予め定められた情報のみを表示するよう構成されるものであるが、予め定められた情報以外にも異なる情報の提示を行うことで、ユーザ体験を拡張することができる。
図10Aに示されるゲーム画面は所謂格闘ゲームのゲーム画面を示しているが、該画面内にはキャラクタの体力ゲージが含まれている。例えば、連続してキャラクタにダメージを与える所謂コンボ期間内の総ダメージ量(体力の減少量)を計測し、クラウドゲーミングシステムで対応するコンテンツを利用するユーザ内で順位付けを日単位で行う場合を考える(例えばleaderboard等)。体力ゲージに係る体力を示すパラメータやコンボ期間を示す情報は、ビデオゲーム機能モジュール270における処理により管理され、RAM230等の所定の記憶領域に格納されている。この場合、入力監視モジュール500はクライアント機器入力140に攻撃を与える操作入力が含まれていると判断した場合に拡張処理モジュール510に通知し、拡張処理モジュール510は、コンボ期間内における該攻撃による体力パラメータの減少量を計測すればよい。そしてコンボ期間の終了時、拡張処理モジュール510は体力減少量の値と、システム利用ユーザについて管理される本日の最大体力減少量の値とを比較する。拡張処理モジュール510は、最大体力減少量の値を上回る場合に、重畳画像生成モジュール520に本日の最大体力減少量であることを示すテキスト表示を予め定められた位置に配置した重畳画像を生成させる。このとき重畳画像に配置されるテキスト表示のフォントは、ゲーム内で使用されているフォントを使用することが好ましい。そして合成モジュール530は拡張処理モジュール510の制御の下、該重畳画像をメインプロセスにより生成されたゲーム画面に合成し、図10Bのような合成画像を生成して出力すればよい。なお、テキスト表示の行数や配置位置はゲームコンテンツの進行状況に応じて変化し得るものであるため、パラメータの監視やゲーム画面の画像解析により決定されてもよい。
上述したように、拡張処理モジュール510がメインプロセスにおいて出力される中間データやメインプロセスにおいて管理されるパラメータ等を監視することで、これらの情報について様々な評価をした拡張的な情報をコンテンツに係る画面に含めて提供することが可能になる。なお、本変形例では一例として体力パラメータの変化を評価対象として情報提示する方法を説明した。しかしながら、評価対象や評価方法、提示する情報がこれらに限られるものではないことは容易に理解されるべきである。
[変形例2]
上述した変形例1では、メインプロセスにおいて管理されるパラメータを監視し、予め定められた位置に対応するテキスト表示を配置したゲーム画面を提供する方法について説明した。しかしながら、本発明の実施において表示によりユーザ体験を拡張する方法はこれに限られるものではない。本変形例では、図5Bに示されるようにメインプロセスに係り描画機能モジュール280が生成したゲーム画面の解析を行う画像解析モジュール540をさらに備える。該画像解析モジュール540にゲーム画面の解析を行わせることで、パラメータの変化を検出する方法について説明する。即ち、内部的に管理されているパラメータの値を監視するのではなく、ゲームコンテンツがどのような状態にあるか、あるいはゲームコンテンツについてどのような処理が実行されている状況にあるかをゲーム画面の解析によって検出する。
例えば、図10Aに示したようなゲーム画面には、上述したように体力ゲージや操作入力の結果に係るテキスト表示等が含まれる。画像解析モジュール540は、連続するフレームに係るゲーム画面の差分や相関により体力ゲージの変化量を検出したり、テキスト認識を行うことでゲーム内でどのような状態にあるかを検出したりすることができる。即ち、画像解析モジュール540により検出されたこれらの情報を拡張処理モジュール510に伝えることで、拡張処理モジュール510は上述したようなパラメータ変化の評価等を行うことができる。つまり、拡張処理モジュール510は、テキスト認識結果からコンボ期間中であることの把握や与えたダメージ量を把握することができる。また体力ゲージの変化から、急激な体力低下を与える効果が発生したことを把握することもできる。
また、情報提示は変形例1に示したようなテキスト表示に限られるものでなくてよく、例えば図10Cに示されるように、キャラクタ間の衝突があった箇所に所定のエフェクト表示を重畳するものであってもよい。これは、例えば拡張処理モジュール510が画像解析モジュール540により急激な体力低下に係る検出結果を受けた場合に、前後のフレームで所定の値以上のスカラーを有する動きベクトルが検出された箇所にエフェクト表示を配置した重畳画像を、重畳画像生成モジュール520に生成させることにより行われてよい。
本変形例では、ゲーム画面の画像解析により情報提示を行うか否かを拡張処理モジュール510が決定するものとして説明した。しかしながら、本発明の実施はこれに限られるものではない。例えば、入力監視モジュール500が受信したクライアント機器入力140の履歴から、コマンドの入力数やアナログ値の変動量等の情報に基づいて情報提示を行うか否かを決定するものであってもよい。また例えば、ゲーム画面に合わせて出力される音声信号に所定の値以上の振幅の音が含まれるか否かに基づいて情報提示を行うか否かを決定するものであってもよい。また、これらの情報の組み合わせにより情報提示を行うか否かを決定するものであってもよい。
[変形例3]
上述した変形例1及び2では、情報提示やエフェクト表示を目的とした重畳画像を生成するものとして説明した。しかしながら、本発明の実施はこれに限られるものではない。
例えば、図11Aに示されるように、ゲーム画面について所定の方法により検出された注目領域にアイコン等の表示アイテムを配置し、ゲーム画面の遷移中にこれらのアイテムをユーザが選択することで該アイテムを収集するサブゲームを提供してもよい。この場合、入力監視モジュール500はクライアント機器入力140は表示アイテムを選択する操作入力が含まれる場合には操作入力をビデオゲーム機能モジュール270に伝送せずに拡張処理モジュール510に伝送し、拡張処理モジュール510がアイテム収集に係るスコア演算等の処理を行えばよい。またアイテムが収集されたことを提示するために、拡張処理モジュール510は、表示アイテムをアイテムの収集がなされたことを示す表示に切り替えた図11Bのような重畳画像を重畳画像生成モジュール520に生成させ、提供するゲーム画面に重畳させてもよい。また配置される表示アイテムは、ゲーム画面の配置位置に存在するゲーム上の描画オブジェクトの雰囲気(照明、陰影、反射、カメラアングル)と一体化させるように、重畳画像の生成において所定の描画エフェクトが提供されてもよい。
なお、注目領域は、図5Cに示したような画像解析モジュール540が、例えば連続するフレームのゲーム画面において変化のない領域、あるいはエッジ成分が閾値以上の強度を示し、かつ周囲の領域とのコントラスト比が高い領域を検出することにより特定されてよい。あるいは、画像解析モジュール540がゲーム画面内に含まれる所定の画像パターンを検出することにより特定されてもよい。また注目領域の検出方法は、これ以外にも様々な手法が適宜使用可能である。
[その他の実施形態]
例示的な実施形態を参照して本発明を説明してきたが、記載した例示的な実施形態に発明が限られるものでないことは理解されよう。以下の特許請求の範囲は、このような変形、等価な構成及び機能の全てを包含するように、広範な解釈を許容されよう。また、本発明に係る情報処理装置及びその制御方法は、コンピュータにおいて該手法が実行されるプログラムにより実現可能である。プログラムは、コンピュータ読み取り可能な記録媒体に格納されることで、または電気的な通信回線を介して、提供/配信可能である。
本出願は、その全体がここに参照により援用される、2013年5月8日に出願された米国仮出願第61/820909号の利益を主張するものである。

Claims (10)

  1. コンテンツに係る操作入力を受信する受信手段と、
    前記受信手段により受信された操作入力に応じて前記コンテンツに係る第1のプログラムを実行することで、前記コンテンツに対応する第1の画像を生成する第1の生成手段と、
    前記第1のプログラムとは異なる第2のプログラムを実行することで、前記第1の画像に付加される第2の画像を生成する第2の生成手段と、
    前記第1の画像と前記第2の画像とを合成することで得られた合成画像を出力する出力手段と、
    前記受信手段が前記合成画像の前記第2の画像に係る領域に対する操作入力を受信した場合に、前記第1の生成手段に該操作入力に応じて前記第1のプログラムを実行させないように制御する制御手段と、
    を有する情報処理装置。
  2. 前記第2の生成手段は、前記受信手段が前記第2の画像に係る領域に対する操作入力を受信した場合に、前記第2の画像を更新する請求項1に記載の情報処理装置。
  3. 前記第2の画像は、前記第1のプログラムにより実現されない機能の実行を指示するための表示アイテムを含み、
    前記第2の生成手段は、前記受信手段が前記第2の画像に係る領域に対する操作入力を受信した場合に、前記第2のプログラムのうちの該領域に配置される表示アイテムに対応する機能に係るプログラムを実行する
    請求項1または2に記載の情報処理装置。
  4. 前記第1のプログラムにより実現されない機能は、前記情報処理装置の特有の設定を変更する機能、あるいはインターネットを利用するサービスとの連携機能である請求項3に記載の情報処理装置。
  5. 前記制御手段は、前記第2の画像に係る領域に対する操作入力を前記第1の生成手段に伝送しないことにより、前記第1の生成手段に該操作入力に応じて前記第1のプログラムを実行させない請求項1乃至3のいずれか1項に記載の情報処理装置。
  6. 前記第1の画像を解析し、表示アイテムが配置される位置を決定する解析手段をさらに有し、
    前記第2の生成手段は、前記解析手段により決定された位置に表示アイテムが配置された前記第2の画像を生成する
    請求項1乃至5のいずれか1項に記載の情報処理装置。
  7. 前記出力手段は、前記第1の画像に前記第2の画像を重畳することにより前記合成画像を生成する請求項1乃至6のいずれか1項に記載の情報処理装置。
  8. 前記第1の画像及び前記第2の画像のそれぞれには表示アイテムが含まれ、
    前記コンテンツに係る操作入力は、前記第1の画像の領域と前記第2の画像の領域の双方について受け付けられるものであり、
    前記制御手段は、
    前記第1の画像に含まれる表示アイテムに対する操作入力がなされた場合には、該表示アイテムに対応する機能の処理を実行し、
    前記第2の画像に含まれる表示アイテムに対する操作入力がなされた場合には、該表示アイテム対応する機能の処理を実行し、
    前記第1の画像に含まれる表示アイテムに対応する機能の処理は、前記第1のプログラムに組み込まれており、 前記第2の画像に含まれる表示アイテムに対応する機能の処理は、前記第1のプログラムにより実現されるものではなく、
    前記制御手段は、前記第2の画像に含まれる表示アイテムに対する操作入力がなされた場合にのみ、前記第1のプログラムを実行させないように制御する
    請求項1乃至7のいずれか1項に記載の情報処理装置。
  9. コンテンツに係る操作入力を受信する受信工程と、
    前記受信工程において受信された操作入力に応じて前記コンテンツに係る第1のプログラムを実行することで、前記コンテンツに対応する第1の画像を生成する第1の生成工程と、
    前記第1のプログラムとは異なる第2のプログラムを実行することで、前記第1の画像に付加される第2の画像を生成する第2の生成工程と、
    前記第1の画像と前記第2の画像とを合成することで得られた合成画像を出力する出力工程と、
    前記受信工程において前記合成画像の前記第2の画像に係る領域に対する操作入力が受信された場合に、前記第1の生成工程において該操作入力に応じて前記第1のプログラムを実行させないように制御する制御工程と、
    を有する情報処理装置の制御方法。
  10. 1以上のコンピュータを、請求項1乃至のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2015546744A 2013-05-08 2014-05-07 情報処理装置、制御方法及びプログラム Active JP6576245B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361820909P 2013-05-08 2013-05-08
US61/820,909 2013-05-08
PCT/JP2014/062761 WO2014181892A1 (en) 2013-05-08 2014-05-07 Information processing apparatus, control method and program

Publications (3)

Publication Number Publication Date
JP2016526929A JP2016526929A (ja) 2016-09-08
JP2016526929A5 JP2016526929A5 (ja) 2017-06-22
JP6576245B2 true JP6576245B2 (ja) 2019-09-18

Family

ID=51867361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015546744A Active JP6576245B2 (ja) 2013-05-08 2014-05-07 情報処理装置、制御方法及びプログラム

Country Status (5)

Country Link
US (1) US20160110903A1 (ja)
EP (1) EP2994830A4 (ja)
JP (1) JP6576245B2 (ja)
CA (1) CA2910655A1 (ja)
WO (1) WO2014181892A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8790185B1 (en) 2012-12-04 2014-07-29 Kabam, Inc. Incentivized task completion using chance-based awards
EP3011540A4 (en) * 2013-06-17 2017-05-24 Square Enix Holdings Co., Ltd. Image processing apparatus, image processing system, image processing method and storage medium
US10565818B2 (en) 2016-09-26 2020-02-18 Everi Games, Inc. Apparatus and methods for facilitating wagering on games conducted on an independent video gaming system
JP6341986B2 (ja) * 2013-09-11 2018-06-13 株式会社スクウェア・エニックス・ホールディングス 描画装置、その描画方法、プログラム及び記録媒体
US10482713B1 (en) * 2013-12-31 2019-11-19 Kabam, Inc. System and method for facilitating a secondary game
US10307666B2 (en) 2014-06-05 2019-06-04 Kabam, Inc. System and method for rotating drop rates in a mystery box
US9717986B1 (en) 2014-06-19 2017-08-01 Kabam, Inc. System and method for providing a quest from a probability item bundle in an online game
US9452356B1 (en) 2014-06-30 2016-09-27 Kabam, Inc. System and method for providing virtual items to users of a virtual space
JP6284242B2 (ja) * 2015-06-05 2018-02-28 株式会社コーエーテクモゲームス ゲームプログラム及び記録媒体
JP6154516B1 (ja) * 2016-05-17 2017-06-28 株式会社ドワンゴ コメント配信装置、ゲームサーバ装置、コメント配信方法およびプログラム
US10046236B2 (en) 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
US11130064B2 (en) * 2017-07-17 2021-09-28 Neuromotion, Inc. Systems and methods for biofeedback gameplay
US10814230B2 (en) * 2017-10-12 2020-10-27 Microsoft Technology Licensing, Llc Interactive event broadcasting
US11224804B2 (en) * 2018-07-17 2022-01-18 Roblox Corporation Personalized remote game update capture and recording system for multi-player online games

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001159525A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp ナビゲーション装置および記録媒体
JP2002238036A (ja) * 2001-02-07 2002-08-23 Fujitsu Ltd 放送方法、および、放送方法を放送局装置に実行させるプログラム
US7454713B2 (en) * 2003-12-01 2008-11-18 Sony Ericsson Mobile Communications Ab Apparatus, methods and computer program products providing menu expansion and organization functions
US7913248B1 (en) * 2004-03-26 2011-03-22 Adobe Systems Incorporated System and method for installing one or more programs, and at least a portion of their environment
US9740794B2 (en) * 2005-12-23 2017-08-22 Yahoo Holdings, Inc. Methods and systems for enhancing internet experiences
JP4854443B2 (ja) * 2006-09-21 2012-01-18 株式会社ソニー・コンピュータエンタテインメント 再生装置、メニュー画面表示方法、メニュー画面表示プログラム及びメニュー画面表示プログラムを記憶したコンピュータ読み取り可能な記憶媒体
KR101391602B1 (ko) * 2007-05-29 2014-05-07 삼성전자주식회사 터치 스크린 기반의 사용자 인터페이스 인터렉션 방법 및 멀티 미디어 단말 기기
US9211473B2 (en) 2008-12-15 2015-12-15 Sony Computer Entertainment America Llc Program mode transition
US8968087B1 (en) * 2009-06-01 2015-03-03 Sony Computer Entertainment America Llc Video game overlay
US9355493B2 (en) * 2007-12-31 2016-05-31 Advanced Micro Devices, Inc. Device and method for compositing video planes
US9723319B1 (en) * 2009-06-01 2017-08-01 Sony Interactive Entertainment America Llc Differentiation for achieving buffered decoding and bufferless decoding
US8019390B2 (en) * 2009-06-17 2011-09-13 Pradeep Sindhu Statically oriented on-screen transluscent keyboard
WO2011102656A2 (en) * 2010-02-17 2011-08-25 Samsung Electronics Co., Ltd. Apparatus and method for providing user interface
JP5147087B2 (ja) * 2010-07-22 2013-02-20 シャープ株式会社 表示操作装置及び画像処理装置
JP5149357B2 (ja) * 2010-09-16 2013-02-20 コモタ株式会社 情報処理装置
JP2012085821A (ja) * 2010-10-19 2012-05-10 Sony Computer Entertainment Inc 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
JP5379250B2 (ja) * 2011-02-10 2013-12-25 株式会社ソニー・コンピュータエンタテインメント 入力装置、情報処理装置および入力値取得方法
WO2012114760A1 (ja) * 2011-02-23 2012-08-30 京セラ株式会社 タッチセンサを備えた電子機器
US20120231887A1 (en) * 2011-03-07 2012-09-13 Fourth Wall Studios, Inc. Augmented Reality Mission Generators
KR101788060B1 (ko) * 2011-04-13 2017-11-15 엘지전자 주식회사 영상표시장치 및 이를 이용한 콘텐츠 관리방법
JP5854637B2 (ja) * 2011-05-19 2016-02-09 日本放送協会 受信機
WO2013035215A1 (ja) * 2011-09-06 2013-03-14 株式会社カプコン ゲームシステム、ゲーム制御方法および記憶媒体
WO2013175631A1 (ja) * 2012-05-25 2013-11-28 任天堂株式会社 操作装置、情報処理システム、および情報処理方法

Also Published As

Publication number Publication date
EP2994830A1 (en) 2016-03-16
JP2016526929A (ja) 2016-09-08
EP2994830A4 (en) 2017-04-19
US20160110903A1 (en) 2016-04-21
CA2910655A1 (en) 2014-11-13
WO2014181892A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
JP6576245B2 (ja) 情報処理装置、制御方法及びプログラム
JP5987060B2 (ja) ゲームシステム、ゲーム装置、制御方法、プログラム及び記録媒体
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
JP6232423B2 (ja) 情報処理装置、描画装置、方法及びプログラム
JP6196668B2 (ja) クラウド型ゲームシステムにおける描画リソースの動的割り当て
JP6069528B2 (ja) 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体
US9873045B2 (en) Systems and methods for a unified game experience
JP6341986B2 (ja) 描画装置、その描画方法、プログラム及び記録媒体
JP7355841B2 (ja) 仮想キャラクタの現実間のクロスオーバを示すための方法及び非一時的なコンピュータ可読媒体
JP6379107B2 (ja) 情報処理装置並びにその制御方法、及びプログラム
JP6200062B2 (ja) 情報処理装置、制御方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170508

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190820

R150 Certificate of patent or registration of utility model

Ref document number: 6576245

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250