(57)【要約】【課題】１つの画面についての描画処理を、複数の機器間で分担して効率的に実行する。【解決手段】表示する画面の描画処理を、第１の機器と第２の機器とに分担して実行する。第１の機器は、表示する画面の描画内容を決定するための情報に基づいて、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを描画した第１の画面を生成する。また第２の機器は、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを除いた描画オブジェクトを描画した第２の画面を生成する。第１の機器は、第２の機器から第２の画面を受信し、第１の画面と第２の画面とを合成することで、表示する画面を生成する。【選択図】図６
2013099511.tif 000002
【特許請求の範囲】
【請求項１】
表示手段に表示する画面の描画処理を、第１の機器と第２の機器とに分担して実行する描画システムであって、
前記第１の機器は、
前記表示する画面の描画内容を決定するための情報に基づいて、前記表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを描画した第１の画面を生成する第１の描画手段と、
前記第２の機器が生成した、前記表示する画面に描画される描画オブジェクトのうち、前記一部の描画オブジェクトを除いた描画オブジェクトを描画した第２の画面を受信する画面受信手段と、
前記第１の描画手段により生成された前記第１の画面と、前記画面受信手段により受信された前記第２の画面とを合成して前記表示する画面を生成する合成手段と、を有し、
前記第２の機器は、
前記描画内容を決定するための情報に基づいて前記第２の画面を生成する第２の描画手段と、
前記第２の描画手段により生成された前記第２の画面を前記第１の機器に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項２】
前記第２の描画手段は、前記一部の描画オブジェクトを除いた描画オブジェクトの描画処理において、前記一部の描画オブジェクトによる隠面処理を必要としないことを特徴とする請求項１に記載の描画システム。
【請求項３】
前記第２の描画手段は、前記第２の画面とともに、前記第２の画面に含まれる前記一部の描画オブジェクトを除いた描画オブジェクトについてのマスクデータを生成し、
前記画面送信手段は、前記第２の画面と前記マスクデータとを前記第１の機器に送信し、
前記合成手段は、前記マスクデータを参照して、前記第１の画面に前記第２の画面を重畳合成する
ことを特徴とする請求項１または２に記載の描画システム。
【請求項４】
前記第２の機器は、
前記描画内容を決定するための情報を取得する取得手段と、
前記取得手段により取得された前記描画内容を決定するための情報を前記第１の機器に送信する送信手段と、をさらに有し、
前記第１の描画手段は、前記第２の機器から受信した前記描画内容を決定するための情報に基づいて前記第１の画面を生成する
ことを特徴とする請求項１乃至３のいずれか１項に記載の描画システム。
【請求項５】
前記一部の描画オブジェクトは、前記表示する画面における背景オブジェクトであることを特徴とする請求項１乃至４のいずれか１項に記載の描画システム。
【請求項６】
前記第２の機器は、前記描画内容を決定するための情報に基づいて前記背景オブジェクトのテクスチャデータを前記第１の機器に送信するパーツ送信手段をさらに有し、
前記第１の描画手段は、前記第２の機器から受信した前記背景オブジェクトのテクスチャデータと、前記背景オブジェクトのモデルデータとを用いて前記第１の画面を描画する
ことを特徴とする請求項５に記載の描画システム。
【請求項７】
前記背景オブジェクトのモデルデータは、天球モデルであることを特徴とする請求項６に記載の描画システム。
【請求項８】
前記パーツ送信手段は、前記描画内容を決定するための情報が所定の条件を満たした場合に、前記背景オブジェクトのテクスチャデータを送信することを特徴とする請求項６または７に記載の描画システム。
【請求項９】
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報であることを特徴とする請求項１乃至８のいずれか１項に記載の描画システム。
【請求項１０】
クライアント機器に接続された表示手段に表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトの描画を担当する描画サーバであって、
前記表示する画面の描画内容を決定するための情報に基づいて、前記一部の描画オブジェクトを描画した提供画面を生成する描画手段と、
前記描画手段により生成された前記提供画面を前記クライアント機器に送信する送信手段と、
を有することを特徴とする描画サーバ。
【請求項１１】
前記描画手段は、前記一部の描画オブジェクトの描画処理において、前記表示する画面に描画される描画オブジェクトのうちの前記一部の描画オブジェクトを除いた描画オブジェクトによる隠面処理を必要としないことを特徴とする請求項１０に記載の描画サーバ。
【請求項１２】
前記描画手段は、前記提供画面とともに、前記提供画面に含まれる前記一部の描画オブジェクトについてのマスクデータを生成し、
前記送信手段は、前記提供画面と前記マスクデータとを前記クライアント機器に送信する
ことを特徴とする請求項１０または１１に記載の描画サーバ。
【請求項１３】
前記描画内容を決定するための情報を取得する取得手段と、
前記取得手段により取得された前記描画内容を決定するための情報を前記クライアント機器に送信する情報送信手段と、
をさらに有することを特徴とする請求項１０乃至１２のいずれか１項に記載の描画サーバ。
【請求項１４】
前記一部の描画オブジェクトは、前記表示する画面に描画される描画オブジェクトのうち、背景オブジェクトを除いた描画オブジェクトであることを特徴とする請求項１０乃至１３のいずれか１項に記載の描画サーバ。
【請求項１５】
前記描画内容を決定するための情報に基づいて、前記背景オブジェクトのテクスチャデータを前記クライアント機器に送信するパーツ送信手段をさらに有することを特徴とする請求項１４に記載の描画サーバ。
【請求項１６】
前記パーツ送信手段は、前記描画内容を決定するための情報が所定の条件を満たした場合に、前記背景オブジェクトのテクスチャデータを送信することを特徴とする請求項１５に記載の描画サーバ。
【請求項１７】
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報であることを特徴とする請求項１０乃至１６のいずれか１項に記載の描画サーバ。
【請求項１８】
クライアント機器に接続された表示手段に表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトの描画を担当する描画サーバの制御方法であって、
前記描画サーバの描画手段が、前記表示する画面の描画内容を決定するための情報に基づいて、前記一部の描画オブジェクトを描画した提供画面を生成する描画工程と、
前記描画サーバの送信手段が、前記描画工程において生成された前記提供画面を前記クライアント機器に送信する送信工程と、
を有することを特徴とする描画サーバの制御方法。
【請求項１９】
コンピュータを、請求項１０乃至１７のいずれか１項に記載の描画サーバの各手段として機能させるためのプログラム。
【請求項２０】
表示手段が接続されたコンピュータを、
前記表示手段に表示する画面の描画内容を決定するための情報に基づいて、前記表示する画面に含まれる描画オブジェクトのうち、一部の描画オブジェクトを描画した第１の画面を生成する描画手段と、
外部機器が生成した、前記表示する画面に描画される描画オブジェクトのうち、前記一部の描画オブジェクトを除いた描画オブジェクトを描画した第２の画面を受信する受信手段と、
前記描画手段により生成された前記第１の画面と、前記受信手段により受信された前記第２の画面とを合成して前記表示する画面を生成する合成手段と、
前記合成手段により生成された前記表示する画面を前記表示手段に表示する手段
として機能させるためのプログラム。
【請求項２１】
請求項１９または２０に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体に関し、特にネットワーク接続された複数の機器間で描画処理を分担して１つの画面を生成する技術に関する。
【背景技術】
【０００２】
ネットワーク接続可能なパーソナルコンピュータ（ＰＣ）等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【０００３】
ネットワークユーザに対するサービスの１つとして、ＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバ機器に接続することで、該サーバ機器に接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【０００４】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバ機器との間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバ機器に送信され、サーバ機器における演算処理に使用されたり、サーバ機器に接続された他のクライアント機器に伝送されたりする。
【０００５】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中には、十分な描画性能を有するＰＣや専用のゲーム機をユーザが使用すること必要となるものがある。このため、ネットワークゲーム（１コンテンツ）のユーザ数は、コンテンツが要求するクライアント機器の性能に依存してしまう。高性能な機器は当然高価であり、該機器を所有できるユーザも限られる。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【０００６】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームも提供されている。特許文献１のようなゲームでは、サーバ機器はクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００９／１３８８７８号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１には、サーバ機器がクライアント機器に対して提供するゲーム画面を描画して転送することについて記載されている。即ち、クライアント機器は、サーバ機器において実行された描画処理により生成されたゲーム画面を受信し、再生することでゲーム画面の表示を行うことができる。しかしながら、描画処理を複数の機器間で分担する具体的な方法についてはこれまで開示されていなかった。
【０００９】
本発明は、上述の問題点に鑑みてなされたものであり、１つの画面についての描画処理を、複数の機器間で分担して効率的に実行する描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前述の目的を達成するために、本発明の描画システムは、以下の構成を備える。
表示手段に表示する画面の描画処理を、第１の機器と第２の機器とに分担して実行する描画システムであって、第１の機器は、表示する画面の描画内容を決定するための情報に基づいて、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを描画した第１の画面を生成する第１の描画手段と、第２の機器が生成した、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを除いた描画オブジェクトを描画した第２の画面を受信する画面受信手段と、第１の描画手段により生成された第１の画面と、画面受信手段により受信された第２の画面とを合成して表示する画面を生成する合成手段と、を有し、第２の機器は、描画内容を決定するための情報に基づいて第２の画面を生成する第２の描画手段と、第２の描画手段により生成された第２の画面を第１の機器に送信する画面送信手段と、を有することを特徴とする。
【００１１】
前述の目的を達成するために、本発明の描画サーバは、以下の構成を備える。
クライアント機器に接続された表示手段に表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトの描画を担当する描画サーバであって、表示する画面の描画内容を決定するための情報に基づいて、一部の描画オブジェクトを描画した提供画面を生成する描画手段と、描画手段により生成された提供画面をクライアント機器に送信する送信手段と、を有することを特徴とする。
【発明の効果】
【００１２】
このような構成により本発明によれば、１つの画面についての描画処理を、複数の機器間で分担して効率的に実行することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る描画システムのシステム構成を示した図
【図２】本発明の実施形態に係るＰＣ１００の機能構成を示したブロック図
【図３】本発明の実施形態に係る描画サーバ２００の機能構成を示したブロック図
【図４】本発明の実施形態に係る描画サーバ２００で実行されるゲーム処理を例示したフローチャート
【図５】本発明の実施形態に係る描画サーバ２００で実行されるサーバ側描画処理を例示したフローチャート
【図６】本発明の実施形態に係るＰＣ１００で実行される画面生成処理を例示したフローチャート
【図７】本発明の実施形態に係る背景オブジェクトの描画に係る背景テクスチャと背景モデルとの関係を説明するための図
【図８】本発明の実施形態に係る背景テクスチャ決定用のテーブル
【図９】本発明の実施形態に係る第２の画面について生成されるマスクデータを説明するための図
【発明を実施するための形態】
【００１４】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、描画システムの一例としての、描画サーバ２００において実行されるゲームプログラムに係る画面の描画処理について、画面に含まれる描画オブジェクト単位で分担するＰＣ１００と描画サーバ２００とに、本発明を適用した例を説明する。しかし、本発明は、１つの画面に係る描画処理を、複数の機器間で分担して実行可能な任意の機器及びシステムに適用可能である。
【００１５】
＜描画システムの構成＞
図１は、本発明の実施形態に係る描画システムのシステム構成を示す図である。
【００１６】
図示されるように、ＰＣ１００と描画サーバ２００とはインターネット等のネットワーク３００を介して接続されている。本実施形態では描画サーバ２００で実行されるゲームプログラムにおいて、ゲームプログラムに係る画面（ゲーム画面）についての描画処理をＰＣ１００と描画サーバ２００とで分担して処理する。
【００１７】
具体的には１つの画面について、ＰＣ１００は、ネットワーク３００を介して描画サーバ２００から画面の描画内容を決定するための情報を受信し、該画面に含まれる描画オブジェクトのうち、シーンの背景にあたる背景オブジェクトを描画した第１の画面の生成を行う。
【００１８】
ゲーム画面等の３次元シーンの描画処理において、カメラ（視点）から遠く離れた景色等の描画オブジェクト（例えば山や雲等）は、それぞれ単体の３次元モデルに対してテクスチャを適用して描画されるわけではない。実際は、これらの描画オブジェクトは例えば１枚の２次元画像のテクスチャとして用意されて表示される。これは、描画処理に係る演算量を低減する目的と、遠方のオブジェクトについては３次元的に認識されにくいため、３次元モデルを使用する必要性が低いことに起因する。つまり、描画処理において遠方の景色等の背景は、背景のテクスチャを簡素な３次元モデルに適用するのみで表現することができるため、背景オブジェクトに係る描画処理には高い描画性能は要求されない。即ち、背景オブジェクトの描画は簡素な３次元モデルの描画を行う、一般的な描画性能を有するＧＰＵであれば実行可能である。このため本実施形態の描画システムでは、背景オブジェクトの描画は、描画サーバ２００よりも低い描画性能のＧＰＵを有するＰＣ１００に割り当てる。
【００１９】
また描画サーバ２００は、該画面に含まれる描画オブジェクトのうち、背景オブジェクト以外の描画オブジェクト（前景オブジェクト）を描画した第２の画面の生成し、生成した第２の画面を、ネットワーク３００を介してＰＣ１００に送信する。そしてＰＣ１００は、受信した第２の画面と生成した第１の画面とを合成して表示するゲーム画面を生成し、接続されている表示装置に出力する。
【００２０】
このように本実施形態の描画システムでは、１つの画面に係る描画処理について、該画面に含まれる描画オブジェクトを背景オブジェクトと前景オブジェクトとに分け、それぞれを２つの機器（ＰＣ１００及び描画サーバ２００）で分担する。そして、各機器で描画した画面を合成し、最終的に全ての描画オブジェクトが描画された画面を生成する。
【００２１】
なお、本実施形態では描画サーバ２００に接続するクライアント機器として、ＰＣ１００を用いて説明するが、本発明の実施はこれに限られるものではない。例えば描画サーバ２００と接続するクライアント機器は、家庭用ゲーム機、携帯ゲーム機、携帯電話、ＰＤＡ、タブレット等の描画処理能力を有する機器であればよい。
【００２２】
＜ＰＣ１００の構成＞
図２は、本発明の実施形態に係るＰＣ１００の機能構成を示すブロック図である。
【００２３】
ＣＰＵ１０１は、ＰＣ１００が有する各ブロックの動作を制御する。具体的にはＣＰＵ１０１は、例えばＲＯＭ１０２や記録媒体１０６に記録されている画面生成処理等の動作プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより、各ブロックの動作を制御する。
【００２４】
ＲＯＭ１０２は、例えば書き換え可能な不揮発性メモリである。ＲＯＭ１０２は、ＰＣ１００が有する各ブロックの動作プログラムに加え、各ブロックの動作に必要な定数等の情報を記憶する。
【００２５】
ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、動作プログラムの展開領域としてだけでなく、ＰＣ１００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００２６】
ＧＰＵ１０４は、後述する表示部１０８に表示するゲーム画面の生成を行う。ＧＰＵ１０４は、ゲーム画面の描画領域としてビデオメモリ（ＶＲＡＭ）１０５が接続されている。またＧＰＵ１０４は不図示のＧＰＵメモリを有する。ＧＰＵ１０４は、ＣＰＵ１０１より描画命令を受信すると、該描画命令に係る描画オブジェクトのデータを取得してＧＰＵメモリに格納する。そしてＧＰＵ１０４は、描画命令に応じて描画オブジェクトを、接続されたＶＲＡＭ１０５に描画する。本実施形態ではＧＰＵ１０４は、表示するゲーム画面に含まれる描画オブジェクトのうち、背景オブジェクトのみを描画した第１の画面の生成を行う。
【００２７】
記録媒体１０６は、例えばＨＤＤやＳＳＤ等のＰＣ１００に着脱可能に接続された記録装置である。本実施形態では、記録媒体１０６には画面生成処理等の動作プログラムに加えて、描画サーバ２００から受信した、ゲーム画面に描画される描画オブジェクトについてのモデルデータ（あるいは頂点データ及び結線データ）等が記録されるものとする。本実施形態ではＰＣ１００は、表示するゲーム画面に含まれる描画オブジェクトのうちの背景オブジェクトの描画を行う。本実施形態では背景オブジェクトの描画は、天球モデルに対して遠景用のテクスチャを適用することで行われる。このため、本実施形態の記録媒体１０６には、描画サーバ２００から受信した、背景オブジェクトの描画処理に用いられる天球モデルが記録される。
【００２８】
なお、本実施形態では背景オブジェクトの描画に用いられる天球モデルは描画サーバ２００からＰＣ１００に配信されるものとして説明するが、これに限られるものではない。即ち、背景オブジェクトの描画に用いられる天球モデルのデータは、予めＰＣ１００に記録されていてもよいし、ＰＣ１００における描画処理においてプリミティブセットを用いて毎フレーム生成されてもよい。また背景オブジェクトの描画は天球モデルへの背景テクスチャの適用として説明するが、背景テクスチャを適用するモデルは天球モデル以外のモデルを使用してもよい。
【００２９】
通信部１０７は、ＰＣ１００が有する通信インタフェースである。通信部１０７は、ネットワーク３００を介して接続した、描画サーバ２００等の他の機器との間におけるデータ送受信を行う。データ送信時には通信部１０７は、ネットワーク３００あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部１０７は、ネットワーク３００を介して受信したデータを、ＰＣ１００において読み取り可能な任意のデータ形式に変換し、例えばＲＡＭ１０３に記憶させる。
【００３０】
なお、本実施形態ではＰＣ１００と描画サーバ２００とは、ネットワーク３００を介して接続されるものとして説明するが、例えばＰＣ１００と描画サーバ２００とが直接ケーブルにより接続される形態であってもよいことは容易に想像されよう。また、ＰＣ１００と描画サーバ２００とは、それ以外の他の機器を介して接続される形態であってもよい。
【００３１】
表示部１０８は、例えばＬＣＤモニタ等のＰＣ１００に接続された表示装置である。表示部１０８は、入力されたゲーム画面を表示領域に表示する表示制御を行う。なお、表示部１０８は、ラップトップＰＣのようにＰＣ１００に内蔵される表示装置であってもよいし、ケーブルを用いてＰＣ１００に外部接続された表示装置であってもよい。
【００３２】
操作入力部１０９は、例えばマウス、キーボード、ゲームパッド等のＰＣ１００が有するユーザインタフェースである。操作入力部１０９は、ユーザによりユーザインタフェースの操作がなされたことを検出すると、該操作に対応する制御信号をＣＰＵ１０１に対して出力する。
【００３３】
＜描画サーバ２００の構成＞
図３は、本発明の実施形態に係る描画サーバ２００の機能構成を示すブロック図である。
【００３４】
サーバＣＰＵ２０１は、描画サーバ２００が有する各ブロックの動作を制御する。具体的にはサーバＣＰＵ２０１は、例えばサーバＲＯＭ２０２やサーバ記録媒体２０６に記憶されているゲーム処理やサーバ側描画処理の動作プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより、各ブロックの動作を制御する。
【００３５】
サーバＲＯＭ２０２は、例えば書き換え可能な不揮発性メモリである。サーバＲＯＭ２０２は、サーバ側描画処理等の動作プログラムに加え、描画サーバ２００が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【００３６】
サーバＲＡＭ２０３は、揮発性メモリである。サーバＲＡＭ２０３は、動作プログラムの展開領域としてだけでなく、描画サーバ２００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００３７】
サーバＧＰＵ２０４は、ＰＣ１００の表示部１０８に表示するゲーム画面について、ゲーム画面に含まれる描画オブジェクトのうちの、背景オブジェクト以外の描画オブジェクトを描画した画面（第２の画面）の生成を行う。サーバＧＰＵ２０４には、サーバＶＲＡＭ２０５が接続される。サーバＧＰＵ２０４は、サーバＣＰＵ２０１より描画命令を受けると、該描画命令に係る描画オブジェクトを受信してＧＰＵメモリに格納する。サーバＧＰＵ２０４は、接続されたサーバＶＲＡＭ２０５に対して描画を行う場合、描画オブジェクトのＧＰＵメモリへの展開を行なった後、該展開後の描画オブジェクトをＶＲＡＭ１０５に書き込む。
【００３８】
サーバ記録媒体２０６は、例えばＨＤＤ等の、描画サーバ２００に着脱可能に接続される記録装置である。本実施形態ではサーバ記録媒体２０６には、描画処理において画面の生成に用いるモデルデータや光源情報等が記録されているものとする。なお、サーバ記録媒体２０６に記録されるモデルデータは、ＰＣ１００の記録媒体１０６に記録されているものと同一である。
【００３９】
サーバ通信部２０７は、描画サーバ２００が有する通信インタフェースである。本実施形態ではサーバ通信部２０７は、ネットワーク３００を介して接続したＰＣ１００等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部２０７は通信部１０７と同様に、通信仕様に従ったデータ形式の変換を行う。
【００４０】
＜ゲーム処理＞
このような構成をもつ本実施形態の描画システムの描画サーバ２００において実行される、基本的なゲーム処理について、図４のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバＣＰＵ２０１が、例えばサーバＲＯＭ２０２に記録されている対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本ゲーム処理は、例えばＰＣ１００において描画サーバ２００が提供するゲームコンテンツに対応するアプリケーションが実行され、描画サーバ２００へのユーザログインがなされた際に開始されるものとして説明する。本ゲーム処理は、ゲームの１フレームごとに繰り返し実行されるものとする。
【００４１】
なお、本実施形態の描画サーバ２００により提供されるゲームコンテンツは、ゲーム画面に対応するカメラの位置及び方向を示す情報（カメラパラメータ）を使用して３次元シーンを描画したゲーム画面を提供するものである。本実施形態のゲームコンテンツに係る３次元シーンは、含まれる描画オブジェクトを背景オブジェクトと前景オブジェクトとに分類可能であるものとする。また背景オブジェクトは、上述したように簡素な３次元モデルへの背景テクスチャの適用で描画可能であるものとする。
【００４２】
Ｓ４０１で、サーバＣＰＵ２０１は、ゲーム画面を規定する、カメラの位置及び方向の変更がなされたか否かを判断する。具体的にはサーバＣＰＵ２０１は、ＰＣ１００においてなされたカメラの位置及び方向を変更する操作入力の情報が、サーバ通信部２０７において受信されたか否かを判断する。サーバＣＰＵ２０１は、カメラの位置及び方向の変更がなされたと判断した場合は処理をＳ４０２に移し、なされていないと判断した場合は処理をＳ４０３に移す。
【００４３】
Ｓ４０２で、サーバＣＰＵ２０１は、受信したカメラの位置及び方向を変更する操作入力の情報に基づいて、例えばサーバＲＡＭ２０３に格納されているカメラの位置及び方向を示す情報（描画カメラパラメータ）を更新する。
【００４４】
Ｓ４０３で、サーバＣＰＵ２０１は、描画するゲーム画面の背景テクスチャを特定する。上述したように、本実施形態の描画システムでは、背景オブジェクトと前景オブジェクトの各々についての描画処理をＰＣ１００と描画サーバ２００とで分担して行う。このうち背景オブジェクトの描画処理についてはＰＣ１００が担当するため、本ステップにおいてサーバＣＰＵ２０１は、ＰＣ１００における背景オブジェクトの描画に用いられる背景テクスチャを特定する。
【００４５】
（背景テクスチャと背景モデル）
ここで、本実施形態の描画システムのＰＣ１００において実行される、背景オブジェクトの描画に用いられる背景テクスチャと背景モデルの関係について図を用いて説明する。
【００４６】
上述したように、一般的には３次元シーンの描画処理において背景は、簡易モデルに対して背景テクスチャを適用した背景オブジェクトとして描画される。背景テクスチャを適用するモデル（背景モデル）の形状は様々なものがあるが、本実施形態では図７に示されるような、視点であるカメラ７０１の位置を中心とした天球モデル７００が用いられる。天球モデルに対して適用される背景テクスチャは３６０度全周を表現するテクスチャであり、例えば操作対象のキャラクタの位置及び方向に基づいてカメラ位置が決定される場合、該テクスチャには操作対象のキャラクタの周囲の背景が全て含まれる。これにより、全周の背景テクスチャのうち、カメラの方向が決定すれば、該方向に応じた位置の画像７０２が背景として画面に描画される。この場合、背景テクスチャは天球モデルの中心に存在するカメラから見た際に例えば建物のシルエットや山の稜線が正しく表現されるため、背景テクスチャに含められる風景画像等は、天球の半径に応じて歪められている。
【００４７】
なお、カメラを中心とした天球モデルに対して全周の背景テクスチャが適用されているため、カメラの回転のみが生じた場合には、背景テクスチャの更新は不要である。また背景として遠景が表現される場合には、操作対象のキャラクタの移動に合わせてカメラ位置及び方向を変更したとしても、背景テクスチャの更新を行わなくてもよい。即ち、背景として表現される位置までのカメラからの距離に対して、移動したカメラの距離が非常に小さいため、背景の見え方に変化がないことを表現するために、背景テクスチャの更新は行う必要がない。つまり、カメラ位置が特定のフィールドに含まれる間は、常に同一の背景テクスチャが背景オブジェクトに対して適用されてもよい。
【００４８】
一方で、背景テクスチャの変更は、以下の場合に行われる。例えばゲームコンテンツ内で時間経過が表現される場合、例えばコンテンツ内で表現する時間帯（朝、昼、夜等。例えば実時間の１時間をコンテンツ内の１日とし、３等分して割り当てる。）に応じて、背景テクスチャを変更してもよい。また山から森等、表現される風景等が変化するフィールド間におけるカメラ移動が生じた場合にも、背景コンテンツの変更が生じてもよい。また、背景として表現される位置までのカメラからの距離が中距離等、予め定められた距離以下のフィールドにおいては、カメラの移動に合わせて、例えばカメラの移動量が所定値以上となった場合等に背景テクスチャが更新されてもよい。
【００４９】
このように本ステップにおいてサーバＣＰＵ２０１は、描画カメラパラメータに応じて、ＰＣ１００における背景オブジェクトの描画に用いられる背景テクスチャを特定する。具体的にはサーバＣＰＵ２０１は、例えばサーバ記録媒体２０６に格納されている背景テクスチャ決定用のテーブルを参照し、カメラパラメータに応じた背景テクスチャの情報を取得する。背景テクスチャ決定用のテーブルは、例えば図８のようであってよい。
【００５０】
図示されるように、背景テクスチャ決定用のテーブルにはパラメータとして以下が含まれる。
・テクスチャＩＤ
・カメラが存在するフィールド
・コンテンツ内時間帯
・テクスチャ格納場所
【００５１】
サーバＣＰＵ２０１は、サーバＲＡＭ２０３に格納されている描画カメラパラメータを読み出し、カメラ位置の情報に応じてカメラが存在するフィールドを特定する。またサーバＣＰＵ２０１は、現在のコンテンツ内時間帯を参照し、背景テクスチャ決定用のテーブルから、ＰＣ１００における背景オブジェクトの描画に用いられる背景テクスチャを特定する。
【００５２】
なお、本実施形態では簡単のため、背景オブジェクトの描画内容の変更は、背景テクスチャの変更によってのみ行われるものとして説明するが、背景として表現される位置までのカメラからの距離の変化は、背景テクスチャを変更しなくとも表現可能である。例えば、背景テクスチャを適用する天球モデルの半径を変更することによっても、背景とカメラとの距離変化は表現可能である。具体的には背景に対して近づいたことを表現するために、天球モデルの半径を大きくして描画する画面に含まれる背景の画像を拡大してもよい。
【００５３】
Ｓ４０４で、サーバＣＰＵ２０１は、Ｓ４０３において特定した背景テクスチャ、背景テクスチャを提供する３次元モデルである天球モデル、及び描画カメラパラメータをＰＣ１００に対して送信する。具体的にはサーバＣＰＵ２０１は、これらの情報をサーバＲＡＭ２０３あるいはサーバ記録媒体２０６から読み出し、サーバ通信部２０７に伝送してＰＣ１００に対して送信させる。
【００５４】
なお、上述したように描画するゲーム画面の背景テクスチャは、描画カメラパラメータのカメラ位置が予め定められたフィールド内に存在する場合は変化しないため、本ステップでは描画カメラパラメータのみが送信されてもよい。即ち、背景テクスチャ及び天球モデルは、カメラ位置が背景テクスチャを変更する領域に移動した際に送信される、カメラ位置の変化量が所定量以上であった場合に送信される、あるいは所定フレームごとに送信される等、毎フレーム送信されなくてもよい。
【００５５】
Ｓ４０５で、サーバＣＰＵ２０１は、サーバＲＡＭ２０３に格納されている描画カメラパラメータに従って、ゲーム画面に含まれる描画オブジェクトのうちの、背景オブジェクト以外の前景オブジェクトを描画した第２の画面の生成を行うサーバ側描画処理を実行する。
【００５６】
（サーバ側描画処理）
ここで、本実施形態の描画サーバ２００において実行される、サーバ側描画処理について、図５のフローチャートを用いて具体的な処理を説明する。
【００５７】
Ｓ５０１で、サーバＣＰＵ２０１は、描画するゲーム画面に含まれる描画オブジェクト（前景オブジェクト）を特定する。具体的にはサーバＣＰＵ２０１は、サーバＲＡＭ２０３から描画カメラパラメータを読み出し、該描画パラメータにより規定される、ワールド上の描画範囲の情報を参照する。そしてサーバＣＰＵ２０１は、該描画範囲に含まれる描画オブジェクトを、例えばワールドに分布する描画オブジェクトの配置位置の情報に基づいて特定する。
【００５８】
なお、ワールドに分布する描画オブジェクトの配置位置は、時間変化や操作対象のキャラクタについてのＰＣ１００における移動指示等によって、フレームごとに変化するものであってもよい。即ち、サーバＣＰＵ２０１は、フレームごとに描画オブジェクトの配置位置の情報を更新した上で、本ステップにおいてゲーム画面に含まれる描画オブエジェクトの特定を行うものとする。
【００５９】
Ｓ５０２で、サーバＣＰＵ２０１は、所定の描画順決定方法により決定された描画順に応じて、まだ描画がなされていない描画オブジェクトを選択する。そしてサーバＣＰＵ２０１は、該描画オブジェクトについての描画命令をサーバＧＰＵ２０４に伝送する。またサーバＣＰＵ２０１は、該描画オブジェクトのモデルデータ（あるいは頂点データ及び結線データ）、テクスチャデータ、ゲーム画面内の光源データ、及び描画オブジェクトについての位置・回転情報のパラメータをサーバ記録媒体２０６から読み出し、サーバＧＰＵ２０４に転送する。
【００６０】
Ｓ５０３で、サーバＧＰＵ２０４はサーバＣＰＵ２０１の制御のもと、選択された描画オブジェクトについての位置・回転情報のパラメータに従って、ＧＰＵメモリに格納されたモデルデータを移動及び回転させる。具体的にはサーバＧＰＵ２０４は、選択された描画オブジェクトの拡張点に対し、位置・回転情報のパラメータに対応する空間座標を定義する。
【００６１】
Ｓ５０４で、サーバＧＰＵ２０４はサーバＣＰＵ２０１の制御のもと、Ｓ５０３において移動及び回転されたモデルデータの各ポリゴンに対して、ＧＰＵメモリに格納したテクスチャデータを用いてテクスチャマッピングを行う。
【００６２】
Ｓ５０５で、サーバＧＰＵ２０４はサーバＣＰＵ２０１の制御のもと、Ｓ５０４においてテクスチャマッピングがなされた描画オブジェクトのモデルに対して、光源データを考慮したシェーディング処理を適用し、サーバＶＲＡＭ２０５のフレームバッファに描画する。
【００６３】
Ｓ５０６で、サーバＣＰＵ２０１は、描画範囲に含まれる前景オブジェクトの全てについて、サーバＧＰＵ２０４によるサーバＶＲＡＭ２０５への描画が完了したか否かを判断する。サーバＣＰＵ２０１は、全ての描画オブジェクトのサーバＶＲＡＭ２０５への描画が完了したと判断した場合は処理をＳ５０７に移し、完了していないと判断した場合は処理をＳ５０２に戻す。
【００６４】
Ｓ５０７で、サーバＧＰＵ２０４はサーバＣＰＵ２０１の制御のもと、生成した第２の画面に対応するマスクデータを生成する。即ち、図９に示されるように、上述のＳ５０６までの処理によりサーバＶＲＡＭ２０５に描画された第２の画面９００には、背景オブジェクトが描画されていないため、画面内のピクセルには描画がなされていないピクセル９０１が存在する。本実施形態では最終的にＰＣ１００において表示装置に表示されるゲーム画面は、ＰＣ１００において後述する画面生成処理を実行することで、背景オブジェクトを描画して得られた第１の画面と第２の画面とを合成することにより生成される。この際、背景を描画した第１の画面上に、第２の画面に描画された前景オブジェクトを重畳することになる。
【００６５】
このため本実施形態では、第２の画面に含まれる、前景オブジェクトが描画されていないピクセルをＰＣ１００に通知するために、図９に示されるような第２の画面のマスクデータ９１０を生成してＰＣ１００に送信する。マスクデータは、画素値が合成時の第２の画像の透過値を示しており、例えば各ピクセルの画素値は０〜１の範囲に正規化されている。即ち、前景オブジェクトの描画処理において描画がなされていないピクセル９０１の位置の画素値は０となり、描画がなされたピクセル９０２の位置の画素値は１となる。なお、前景オブジェクトに半透明オブジェクトが含まれる場合等は、マスクデータは各ピクセルについて設定されたα値を参照して生成されればよい。
【００６６】
このように、本実施形態のサーバ側描画処理を実行することにより、ＰＣ１００に対して提供するゲーム画面に含まれる描画オブジェクトのうち、背景オブジェクトを除いた前景ボブジェクトを描画した第２の画面の生成を行う。提供するゲームコンテンツにもよるが、一般的に前景オブジェクトとして描画される描画オブジェクトについては、上述したようにモデルデータの移動及び回転に係る処理の実行、さらにテクスチャリングやシェーディングの適用等、計算負荷が高い処理の実行が必要となる。本実施形態では、これらの前景オブジェクトに係る描画処理の実行を描画サーバ２００において実行することで、ＰＣ１００及び描画サーバ２００間における、描画処理のロードバランシングを行う。
【００６７】
マスクデータの生成が完了すると、サーバＣＰＵ２０１は本サーバ側描画処理を完了し、処理をゲーム処理に戻す。
【００６８】
Ｓ４０６で、サーバＣＰＵ２０１は、ＰＣ１００に対して第２の画面及び第２の画面に対応するマスクデータを送信する。具体的にはサーバＣＰＵ２０１は、第２の画面及びマスクデータをサーバＶＲＡＭ２０５から読み出し、サーバ通信部２０７に伝送してＰＣ１００に対して送信させる。送信後、サーバＣＰＵ２０１は、本フレームに係るゲーム処理を完了する。
【００６９】
＜画面生成処理＞
一方、本実施形態のＰＣ１００において実行される、ゲーム画面の生成を行う画面生成処理について、図６のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、ＣＰＵ１０１が、例えば記録媒体１０６に記録されている対応する処理プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本画面生成処理は、ＰＣ１００において描画サーバ２００が提供するゲームコンテンツに対応するアプリケーションの実行指示がなされた際に開始されるものとして説明する。
【００７０】
Ｓ６０１で、ＣＰＵ１０１は、描画サーバ２００から描画する第１の画面（背景オブジェクトを描画した画面）の生成に用いる、描画内容を決定するための情報である描画カメラパラメータを受信したか否かを判断する。具体的にはＣＰＵ１０１は、描画サーバ２００から本フレームの描画カメラパラメータを通信部１０７が受信したか否かを判断する。ＣＰＵ１０１は、描画カメラパラメータを受信したと判断した場合は描画カメラパラメータをＲＡＭ１０３に格納した後、処理をＳ６０２に移す。またＣＰＵ１０１は、描画カメラパラメータを受信していないと判断した場合は本ステップの処理を繰り返す。
【００７１】
Ｓ６０２で、ＣＰＵ１０１は、描画カメラパラメータとともに背景テクスチャ及び天球モデルの少なくともいずれかを受信したか否かを判断する。ＣＰＵ１０１は、背景テクスチャ及び天球モデルの少なくともいずれかを受信したと判断した場合は処理をＳ６０３に移し、背景テクスチャモデル及び天球モデルのいずれも受信していないと判断した場合は処理をＳ６０４に移す。
【００７２】
Ｓ６０３で、ＣＰＵ１０１は、新たに受信した背景テクスチャ及び天球モデルの少なくともいずれかを用いて、ＲＡＭ１０３に格納されている既に受信した対応するデータを更新して格納する。
【００７３】
Ｓ６０４で、ＣＰＵ１０１は、ＲＡＭ１０３に格納されている描画カメラパラメータ、背景テクスチャ、及び天球モデルを用いて、第１の画面の描画を行う。具体的にはＣＰＵ１０１は、天球モデル及び背景テクスチャをＲＡＭ１０３から読み出し、ＧＰＵ１０４転送する。ＧＰＵ１０４は、天球モデルに対して背景テクスチャを適用し、描画カメラパラメータに従って、画面内に含まれる範囲を第１の画面としてＶＲＡＭ１０５に描画する。
【００７４】
Ｓ６０５で、ＣＰＵ１０１は、描画サーバ２００から第２の画面及び第２の画面のマスクデータを受信したか否かを判断する。ＣＰＵ１０１は、第２の画面及びマスクデータを受信したと判断した場合は、該データをＲＡＭ１０３に格納した後、処理をＳ６０６に移す。またＣＰＵ１０１は、第２の画面及びマスクデータを受信していないと判断した場合は本ステップの処理を繰り返す。
【００７５】
Ｓ６０６で、ＣＰＵ１０１は、第１の画面と第２の画面とを合成して、表示部１０８に表示する最終的なゲーム画面を例えばＶＲＡＭ１０５に生成する。具体的には、ＣＰＵ１０１は第２の画面のデータとマスクデータとをＲＡＭ１０３から読み出してＧＰＵ１０４に伝送し、ＧＰＵ１０４はマスクデータを参照しながらＶＲＡＭ１０５上の第１の画面に対して第２の画面を例えば重畳合成してゲーム画面を生成する。
【００７６】
Ｓ６０７で、ＣＰＵ１０１はＳ６０６において生成した最終的なゲーム画面を、表示部１０８に転送して表示画面に表示させる。
【００７７】
このように、本実施形態の描画システムは、ゲーム画面の描画処理を、ゲーム画面に含まれる描画オブジェクトのうち、背景オブジェクトのみを描画する第１の画面の描画処理と、背景オブジェクト以外の描画オブジェクトを描画する第２の画面の描画処理とに分けて生成することができる。つまり、描画処理において描画性能が要求される複雑な３次元モデルや光源計算が必要となる前景オブジェクトの描画した第１の画面と、簡素な３次元モデルへの背景テクスチャの適用を行う第２の画面とに分けて生成することができる。つまり、描画処理において描画性能が要求される第１の画面の生成については描画サーバに割り当てることで、クライアント機器の描画性能によらず、品質の高いゲーム画面の提供を行うことが可能である。
【００７８】
なお、本実施形態ではゲーム画面の描画を背景オブジェクトであるか否かで、描画オブジェクト単位でＰＣ１００及び描画サーバ２００で分担して行うものとして説明したが、本発明の実施はこれに限られるものではない。本発明は、ゲーム画面の描画処理を、該ゲーム画面に含まれる描画オブジェクト単位に分類して実行し、得られた複数の画面を単純な合成処理で合成することでゲーム画面を生成可能な描画システムであれば適用可能である。
【００７９】
本実施形態のように、ゲーム画面に含まれる描画オブジェクトを背景オブジェクトであるか否かにより分類した場合、背景オブジェクトは前景オブジェクトの描画における隠面処理に影響しない。即ち、前景オブジェクトの全ての描画オブジェクトは背景オブジェクトよりも手前に存在するため、前景オブジェクトの描画は、背景オブジェクトとの前後関係により生じる遮蔽を考慮する必要がない。このため、背景オブジェクトを描画して得られた第２の画面と、前景オブジェクトを描画して得られた第１の画面とは、描かれている描画オブジェクトについての前後関係を保っている。つまり、単純に両者を重畳合成することで、全ての描画オブジェクトを一度に描画した場合と等価なゲーム画面を生成することができる。
【００８０】
一方、例えば第２の画面に含まれる描画オブジェクトが第１の画面に含まれる描画オブジェクトよりも、カメラに近い位置に存在する場合は、第１の画面と第２の画面との合成には各ピクセルの深度値を考慮する必要がある。即ち、ゲーム画面の生成において各ピクセルについての深度値の比較が必要となってしまうため、ＰＣ１００における画面合成処理に要する処理時間が増大してしまう。本実施形態の描画システムでは、このような合成処理における計算量を低減することも目的として、背景オブジェクトであるかによってゲーム画面に含まれる描画オブジェクトを分類して描画を行うものとした。
【００８１】
このように本発明は、ゲーム画面に含まれる描画オブジェクトを、第１の画面の描画処理において、第２の画面に含まれる描画オブジェクトの隠面処理を考慮する必要がないように分類して描画する場合に適用可能である。即ち、本発明は、背景オブジェクトに限らず、カメラとの距離に応じて、隠面処理が生じないように描画オブジェクトを分類し、複数の機器で分類された描画オブジェクトをそれぞれ描画し、得られた画面を合成して１つの画面を生成するものであれば適用可能である。またこの場合、描画性能の低いＧＰＵを有する機器の描画処理能力に応じて、分類する描画オブジェクトの数を増減させてもよい。
【００８２】
以上説明したように、本発明の描画システムは、１つの画面についての描画処理を、複数の機器間で分担して効率的に実行することができる。具体的には描画システムは、表示する画面の描画処理を、第１の機器と第２の機器とに分担して実行する。第１の機器は、表示する画面の描画内容を決定するための情報に基づいて、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを描画した第１の画面を生成する。また第２の機器は、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを除いた描画オブジェクトを描画した第２の画面を生成する。第１の機器は、第２の機器から第２の画面を受信し、第１の画面と第２の画面とを合成することで、表示する画面を生成する。
【００８３】
このように１つの画面についての描画処理を、描画オブジェクト単位で分離して複数の機器で実行することができるため、クライアント機器の描画性能によらず、安定した品質のゲーム画面の提供を行うことができる。
【図１】
2013099511.tif 000003
【図２】
2013099511.tif 000004
【図３】
2013099511.tif 000005
【図４】
2013099511.tif 000006
【図５】
2013099511.tif 000007
【図６】
2013099511.tif 000008
【図７】
2013099511.tif 000009
【図８】
2013099511.tif 000010
【図９】
2013099511.tif 000011