(57)【特許請求の範囲】
【請求項１】
複数の描画手段に接続された１以上のコンピュータに、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する処理と、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得する処理において取得された前記複数の画面の各々に対応する前記ステータスに基づいて決定する処理と、
を実行させるプログラムであって、
前記ステータスは、対応する画面に描画される描画オブジェクトを示す情報を含み、
前記決定する処理は、共通の前記描画オブジェクトを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定するプログラム。
【請求項２】
前記ステータスは、対応する画面の描画に係りコンテンツにおいて設定される、該画面に対応する描画範囲を示す情報を含み、
前記決定する処理は、互いに重複する前記描画範囲を示す情報を含む前記ステータスに対応する複数の画面を、前記同一の描画手段に描画を割り当てる画面として決定する請求項１に記載のプログラム。
【請求項３】
前記描画範囲を示す情報は、画面の描画に係り設定される視点パラメータであり、
前記決定する処理は、所定の関係を満たす前記視点パラメータを含む前記ステータスに対応する複数の画面を、前記同一の描画手段に描画を割り当てる画面として決定する請求項２に記載のプログラム。
【請求項４】
前記決定する処理は、前記ステータスに基づいて対応する画面に含まれる描画オブジェクトの描画に必要な詳細情報を取得し、該詳細情報の組み合わせの一致度に応じて、前記同一の描画手段に描画を割り当てる画面を決定する請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記ステータスは、対応する画面の描画に係りコンテンツにおいて発生しているイベントを示す情報を含み、
前記決定する処理は、共通の前記発生しているイベントを示す情報を含む前記ステータスに対応する複数の画面を、前記同一の描画手段に描画を割り当てる画面として決定する請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記ステータスは、対応する画面の描画に係るコンテンツの進行状況が、該コンテンツについて予め定められた進行状況の分類のいずれに該当するかを示す情報を含み、
前記決定する処理は、共通の前記進行状況の分類に該当することを示す情報を含む前記ステータスに対応する複数の画面を、前記同一の描画手段に描画を割り当てる画面として決定する請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
前記決定する処理は、前記ステータスの類似度に基づいて前記同一の描画手段に描画を割り当てる画面を決定する請求項１乃至６のいずれか１項に記載のプログラム。
【請求項８】
前記並行して描画を行わせる複数の画面は、前記１以上のコンピュータに接続された外部機器に提供される画面である請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記決定する処理は、前記複数の描画手段の各々の処理能力に基づいて、前記複数の描画手段の各々に描画を割り当てる画面の数を決定する請求項１乃至８のいずれか１項に記載のプログラム。
【請求項１０】
複数の描画手段に接続された１以上のコンピュータに、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する処理と、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得する処理において取得された前記複数の画面の各々に対応する前記ステータスに基づいて決定する処理と、
を実行させるプログラムであって、
前記ステータスは、対応する画面の描画に係りコンテンツにおいて発生しているイベントを示す情報を含み、
前記決定する処理は、共通の前記発生しているイベントを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定するプログラム。
【請求項１１】
複数の描画手段に接続された１以上のコンピュータに、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する処理と、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得する処理において取得された前記複数の画面の各々に対応する前記ステータスに基づいて決定する処理と、
を実行させるプログラムであって、
前記ステータスは、対応する画面の描画に係るコンテンツの進行状況が、該コンテンツについて予め定められた進行状況の分類のいずれに該当するかを示す情報を含み、
前記決定する処理は、共通の前記進行状況の分類に該当することを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定するプログラム。
【請求項１２】
複数の描画手段に接続された情報処理装置であって、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する取得手段と、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得手段により取得された前記複数の画面の各々に対応する前記ステータスに基づいて決定する決定手段と、を有し、
前記ステータスは、対応する画面に描画される描画オブジェクトを示す情報を含み、
前記決定手段は、共通の前記描画オブジェクトを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定する情報処理装置。
【請求項１３】
複数の描画手段に接続された情報処理装置であって、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する取得手段と、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得手段により取得された前記複数の画面の各々に対応する前記ステータスに基づいて決定する決定手段と、を有し、
前記ステータスは、対応する画面の描画に係りコンテンツにおいて発生しているイベントを示す情報を含み、
前記決定手段は、共通の前記発生しているイベントを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定する情報処理装置。
【請求項１４】
複数の描画手段に接続された情報処理装置であって、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する取得手段と、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得手段により取得された前記複数の画面の各々に対応する前記ステータスに基づいて決定する決定手段と、を有し、
前記ステータスは、対応する画面の描画に係るコンテンツの進行状況が、該コンテンツについて予め定められた進行状況の分類のいずれに該当するかを示す情報を含み、
前記決定手段は、共通の前記進行状況の分類に該当することを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定する情報処理装置。
【請求項１５】
複数の描画手段に接続された情報処理装置の制御方法であって、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得し、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得した前記複数の画面の各々に対応する前記ステータスに基づいて決定し、
前記ステータスは、対応する画面に描画される描画オブジェクトを示す情報を含み、
共通の前記描画オブジェクトを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定する制御方法。
【請求項１６】
複数の描画手段に接続された情報処理装置の制御方法であって、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得し、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得した前記複数の画面の各々に対応する前記ステータスに基づいて決定し、
前記ステータスは、対応する画面の描画に係りコンテンツにおいて発生しているイベントを示す情報を含み、
共通の前記発生しているイベントを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定する制御方法。
【請求項１７】
複数の描画手段に接続された情報処理装置の制御方法であって、
並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得し、
描画要求がなされた前記複数の画面の各々の描画を前記複数の描画手段のいずれの描画手段に割り当てるかを、前記取得した前記複数の画面の各々に対応する前記ステータスに基づいて決定し、
前記ステータスは、対応する画面の描画に係るコンテンツの進行状況が、該コンテンツについて予め定められた進行状況の分類のいずれに該当するかを示す情報を含み、
共通の前記進行状況の分類に該当することを示す情報を含む前記ステータスに対応する複数の画面を、同一の前記描画手段に描画を割り当てる画面として決定する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、記録媒体、情報処理装置及び制御方法に関し、特にネットワーク接続されたクライアント機器に対して、描画した画面を提供する技術に関する。
【背景技術】
【０００２】
ネットワーク接続可能なパーソナルコンピュータ（ＰＣ）等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【０００３】
ネットワークユーザに対するサービスの１つとして、ＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバ機器に接続することで、該サーバ機器に接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【０００４】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバ機器との間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバ機器に送信され、サーバ機器における演算処理に使用されたり、サーバ機器に接続された他のクライアント機器に伝送されたりする。
【０００５】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中は、ユーザが十分な描画性能を行うＰＣや専用のゲーム機の使用が必要となるものがある。このため、ネットワークゲーム（１コンテンツ）のユーザ数は、コンテンツが要求するクライアント機器の性能に依存してしまう。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【０００６】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームも提供されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００９／１３８８７８号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１のようなゲームでは、サーバ機器はクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。即ち、クライアント機器においてなされた操作に応じて描画処理をサーバ機器において行う場合、ユーザがストレスなくプレイを行うためにはレスポンスを速く、つまり操作を反映したゲーム画面の提供を速くする必要がある。
【０００９】
特に、多人数同時参加型のネットワークゲームでは、サーバ機器は複数のクライアント機器に対して提供するゲーム画面を同時に生成するため、複数のゲーム画面の描画処理に要する時間を低減することが望まれる。しかしながら、特許文献１にはゲーム画面の描画処理の効率化についての具体的な方法については言及されていなかった。
【００１０】
本発明は、上述の問題点に鑑みてなされたものであり、１以上のクライアント機器に対してゲーム画面を提供する描画システムにおいて、応答性に優れた効率的な描画処理を行うことを目的とする。
【課題を解決するための手段】
【００１１】
前述の目的を達成するために、本発明のプログラムは、複数の描画手段に接続された１以上のコンピュータに、並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する処理と、描画要求がなされた複数の画面の各々の描画を複数の描画手段のいずれの描画手段に割り当てるかを、取得する処理において取得された複数の画面の各々に対応するステータスに基づいて決定する処理と、を実行させるプログラムであって、ステータスは、対応する画面に描画される描画オブジェクトを示す情報を含み、決定する処理は、共通の描画オブジェクトを示す情報を含むステータスに対応する複数の画面を、同一の描画手段に描画を割り当てる画面として決定する。
【００１２】
また前述の目的を達成するために、本発明の情報処理装置は、複数の描画手段に接続された情報処理装置であって、並行して描画を行わせる複数の画面の描画要求と、該複数の画面の各々に対応するコンテンツのステータスとを取得する取得手段と、描画要求がなされた複数の画面の各々の描画を複数の描画手段のいずれの描画手段に割り当てるかを、取得手段により取得された複数の画面の各々に対応するステータスに基づいて決定する決定手段と、を有し、ステータスは、対応する画面に描画される描画オブジェクトを示す情報を含み、決定手段は、共通の描画オブジェクトを示す情報を含むステータスに対応する複数の画面を、同一の描画手段に描画を割り当てる画面として決定する。
【発明の効果】
【００１３】
このような構成により本発明によれば、１以上のクライアント機器に対してゲーム画面を提供する描画システムにおいて、応答性に優れた効率的な描画処理を行うことが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る描画システムのシステム構成を示した図
【図２】本発明の実施形態に係る描画サーバ１００の機能構成を示したブロック図
【図３】本発明の実施形態に係るセンタサーバ２００の機能構成を示したブロック図
【図４】本発明の実施形態に係るセンタサーバ２００のゲーム処理を例示したフローチャート
【図５】本発明の実施形態に係る操作入力の情報及び描画命令のデータ構造を例示した図
【図６】本発明の実施形態に係る描画サーバ１００の描画処理を例示したフローチャート
【図７】本発明の実施形態に係る描画サーバ１００の描画順決定処理を例示したフローチャート
【図８】本発明の実施形態に係る描画順決定処理を説明するための図
【図９】本発明の実施形態に係る描画順決定処理を説明するための別の図
【図１０】本発明の実施形態に係る描画順決定処理により決定された描画順を説明するための図
【図１１】本発明の変形例に係る描画サーバ１００の描画順決定処理を例示したフローチャート
【発明を実施するための形態】
【００１５】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、描画システムの一例としての、１以上のクライアント機器の接続を受け付け可能なセンタサーバと、１以上のクライアント機器の各々に提供する画面を同時に生成可能な描画サーバとに、本発明を適用した例を説明する。しかし、本発明は、１以上のクライアント機器に提供する画面を同時に作成することが可能な任意の機器及びシステムに適用可能である。
【００１６】
また、本明細書において、センタサーバがクライアント機器に対して提供する「サービス」とは、上述したような多人数同時参加型のネットワークゲームであるものとする。描画システムでは、クライアント機器に対して提供するゲーム画面が描画サーバにおいて生成され、該ゲーム画面はセンタサーバを介してクライアント機器に配信されるものとする。しかしながら、描画システムはこのようなサービスの提供に限らず、クライアント機器に対して、画面を描画して配信する構成であればよい。
【００１７】
＜描画システムの構成＞
図１は、本発明の実施形態に係る描画システムのシステム構成を示す図である。
【００１８】
図示されるように、サービス提供を受けるクライアント機器３００ａ乃至ｅと、サービス提供を行うセンタサーバ２００とは、インターネット等のネットワーク４００を介して接続されている。また同様にクライアント機器３００に対して提供する画面を描画する描画サーバ１００は、ネットワーク４００を介してセンタサーバ２００に接続されている。なお、以下の説明では特に指定のない限り「クライアント機器３００」と称した場合は、クライアント機器３００ａ乃至ｅの全てを指すものとする。
【００１９】
クライアント機器３００は、例えばＰＣ、家庭用ゲーム機、携帯ゲーム機に限らず、携帯電話、ＰＤＦ、タブレット等の機器であってよい。本実施形態の描画システムは、クライアント機器においてなされた操作入力に応じたゲーム画面を描画サーバ１００が生成し、センタサーバ２００がクライアント機器３００に配信する。このため、クライアント機器３００はゲーム画面の生成を行う描画機能を有するものでなくてよい。即ち、クライアント機器３００は、操作入力を行うユーザインタフェース及び画面の表示を行う表示装置を有する機器、あるいは該ユーザインタフェース及び表示装置が接続可能な機器であって、受信したゲーム画面を、表示装置を用いて表示可能な機器であればよい。つまり本発明は、ゲーム画面の生成に係る描画処理がビデオストリームのデコードに係る処理に比べて多くのハードウェアリソースを使用することに着目し、サーバ側で生成したゲーム画面をクライアント機器に送信することで、クライアント機器の有する描画性能に依存しないゲームの提供を行う。
【００２０】
センタサーバ２００は、ゲーム処理プログラムの実行及び管理、描画サーバ１００への描画処理命令、クライアント機器３００とのデータ送受信を行う。具体的にはセンタサーバ２００では、クライアント機器３００に対して提供するサービスである、多人数同時参加型ネットワークゲームのゲーム処理が実行される。
【００２１】
センタサーバ２００は、例えば各クライアント機器のユーザが操作するキャラクタのマップ上の位置や方向、各キャラクタに対して提供するイベント等の情報を管理する。そしてセンタサーバ２００は、管理しているキャラクタの状態に応じたゲーム画面の生成を描画サーバ１００に実行させる。例えばセンタサーバ２００に対して、接続されている各クライアント機器においてなされたユーザの操作入力の情報がネットワーク４００を介して入力されると、センタサーバ２００では該情報を管理しているキャラクタの情報に反映させる処理が実行される。そしてセンタサーバ２００は、操作入力の情報が反映されたキャラクタの情報に基づいてゲーム画面に描画する描画オブジェクトを決定し、描画サーバ１００に対して描画命令を行う。
【００２２】
描画サーバ１００は、描画処理の実行を担うサーバであり、本実施形態では後述するように４つのＧＰＵを有する。描画サーバ１００は、センタサーバ２００より受けた描画命令に応じてゲーム画面の描画を行い、生成したゲーム画面をセンタサーバ２００に出力する。なお、描画サーバ１００は、複数のゲーム画面を同時に作成可能であるものとする。描画サーバ１００は、各ゲーム画面について描画サーバ１００から受信した、ゲーム画面に含まれる描画オブジェクトの識別情報、及び各描画オブジェクトの描画に必要なデータを示す詳細情報に基づいて、ＧＰＵでゲーム画面の描画処理を実行する。
【００２３】
本実施形態では、「描画オブジェクトの描画に必要なデータを示す詳細情報」には次の属性のデータを示す情報が含まれるものとする。
・モデルデータを特定する識別情報
・テクスチャデータを特定する識別情報
・使用する描画用プログラムの指定情報（シェーダ等）
・描画用プログラムで用いられる演算用データの指定情報（光源強度、光源ベクトル、
回転行列等）
【００２４】
なお、本実施形態では上記の情報を含む詳細情報がセンタサーバ２００から描画サーバ１００に伝送されるものとして説明するが、詳細情報に含まれる情報は上記に限られない。例えば、詳細情報には上記の５つの情報の少なくともいずれかが含まれていてもよいし、上記以外に描画オブジェクトの描画処理において用いられる情報が含まれていてもよい。また演算用データとは、描画処理において演算に用いられる定数や変数等の数値を含むものとして、以下説明する。
【００２５】
センタサーバ２００は、送信した描画オブジェクトの識別情報及び詳細情報を含む描画命令に応じて描画サーバ１００から受信したゲーム画面を、対応するクライアント機器に対して配信する。このようにすることで、本実施形態の描画システムはクライアント機器においてなされた操作入力に応じたゲーム画面を生成し、クライアント機器の表示装置を介してユーザにゲーム画面を提供することができる。
【００２６】
なお、本実施形態では描画システムは、１つの描画サーバ１００と１つのセンタサーバ２００とで構成されるものとして説明するが、本発明の実施はこれに限られない。例えば、複数のセンタサーバ２００に対して１つの描画サーバ１００が割り当てられている構成であってもよいし、複数のセンタサーバ２００に対して複数の描画サーバ１００が割り当てられている構成であってもよい。またセンタサーバ２００は、描画サーバ１００あるいは描画サーバ１００の各ＧＰＵにおいて同時生成しているゲーム画面の数の情報に応じて、描画命令を行う描画サーバ１００あるいは描画サーバ１００のＧＰＵを指定してもよい。
【００２７】
＜描画サーバ１００の構成＞
図２は、本発明の実施形態に係る描画サーバ１００の機能構成を示すブロック図である。
【００２８】
ＣＰＵ１０１は、描画サーバ１００が有する各ブロックの動作を制御する。具体的にはＣＰＵ１０１は、例えばＲＯＭ１０２や記録媒体１０４に記憶されている描画処理の動作プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより、各ブロックの動作を制御する。
【００２９】
ＲＯＭ１０２は、例えば書き換え可能な不揮発性メモリである。ＲＯＭ１０２は、描画処理の動作プログラムに加え、他の動作プログラムや描画サーバ１００が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【００３０】
ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、動作プログラムの展開領域としてだけでなく、描画サーバ１００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００３１】
記録媒体１０４は、例えばＨＤＤ等の、描画サーバ１００に着脱可能に接続される記録装置である。本実施形態では記録媒体１０４には、描画処理において画面の生成に用いる、以下のデータが記憶されているものとする。
・モデルデータ
・テクスチャデータ
・描画用プログラム
・描画用プログラムで用いられる演算用データ
【００３２】
通信部１１３は、描画サーバ１００が備える通信インタフェースである。通信部１１３は、ネットワーク４００を介して接続したセンタサーバ２００等の、他の機器間でのデータ送受信を行う。データ送信時には通信部１１３は、ネットワーク４００あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部１１３は、ネットワーク４００を介して受信したデータを、描画サーバ１００において読み取り可能な任意のデータ形式に変換し、例えばＲＡＭ１０３に記憶させる。
【００３３】
第１ＧＰＵ１０５、第２ＧＰＵ１０６、第３ＧＰＵ１０７、及び第４ＧＰＵ１０８は、描画処理においてクライアント機器３００に対して提供するゲーム画面の生成を行う。ＧＰＵの各々は、ゲーム画面の描画領域としてビデオメモリ（第１ＶＲＡＭ１０９、第２ＶＲＡＭ１１０、第３ＶＲＡＭ１１１、及び第４ＶＲＡＭ１１２）が接続されている。また各ＧＰＵはキャッシュメモリを有している。各ＧＰＵは、接続されたＶＲＡＭに対して描画を行う場合、描画オブジェクトのキャッシュメモリへの展開を行なった後、該展開後の描画オブジェクトを対応するＶＲＡＭに書き込む。なお、本実施形態では１つのＧＰＵに対して１つのビデオメモリが接続されるものとして説明するが、本発明の実施はこれに限られない。即ち、ＧＰＵに対して接続されるビデオメモリの数は、任意の数であってよい。
【００３４】
＜センタサーバ２００の構成＞
また、本実施形態のセンタサーバ２００の機能構成について説明する。図３は、本発明の実施形態に係るセンタサーバ２００の機能構成を示すブロック図である。
【００３５】
センタＣＰＵ２０１は、センタサーバ２００が有する各ブロックの動作を制御する。具体的にはセンタＣＰＵ２０１は、例えばセンタＲＯＭ２０２やセンタ記録媒体２０４からゲーム処理のプログラムを読み出し、センタＲＡＭ２０３に展開して実行することにより各ブロックの動作を制御する。
【００３６】
センタＲＯＭ２０２は、例えば書き換え可能な不揮発性メモリである。センタＲＯＭ２０２は、ゲーム処理のプログラムに限らず他のプログラムが記憶されていてもよい。またセンタＲＯＭ２０２は、センタサーバ２００が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【００３７】
センタＲＡＭ２０３は、揮発性メモリである。センタＲＡＭ２０３は、ゲーム処理のプログラムの展開領域としてだけでなく、センタサーバ２００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００３８】
センタ記録媒体２０４は、例えばＨＤＤ等の、センタサーバ２００に着脱可能に接続される記録装置である。本実施形態ではセンタ記録媒体２０４は、ゲームを利用するユーザやクライアント機器を管理するデータベース、接続された各クライアント機器に提供するゲーム画面の生成に必要となるゲーム上の各種情報を管理するデータベース等として用いられる。
【００３９】
センタ通信部２０５は、センタサーバ２００が備える通信インタフェースである。センタ通信部２０５は、ネットワーク４００を介して接続した描画サーバ１００やクライアント機器３００との間で、データ送受信を行う。なお、センタ通信部２０５は通信部１１３と同様に、通信仕様に従ったデータ形式の変換を行う。
【００４０】
＜ゲーム処理＞
このような構成をもつ本実施形態の描画システムのセンタサーバ２００において実行される基本的なゲーム処理について、図４のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、センタＣＰＵ２０１が、例えばセンタ記録媒体２０４に記憶されている対応する処理プログラムを読み出し、センタＲＡＭ２０３に展開して実行することにより実現することができる。
【００４１】
なお、本ゲーム処理は、例えばセンタサーバ２００が起動された際に開始され、提供するゲームの１フレームごとに繰り返し実行されるものとして説明する。また、以下の説明ではクライアント機器３００ａ乃至ｅは既にセンタサーバ２００に対して接続しているものとする。センタサーバ２００は本ゲーム処理において、各クライアント機器に対してゲーム画面の提供を行う。
【００４２】
Ｓ４０１で、センタＣＰＵ２０１は、各クライアント機器３００においてなされた操作入力の情報を受信したか否かを判断する。具体的にはセンタＣＰＵ２０１は、センタ通信部２０５において受信されてセンタＲＡＭ２０３に記憶された情報が、クライアント機器３００においてなされた操作入力の情報であるか否かを判断する。
【００４３】
クライアント機器３００においてなされた操作入力の情報は、例えば図５（ａ）に示されるようなデータ構造であってよい。本実施形態では操作入力の情報は、図５（ａ）に示されるように、
・操作入力がなされたクライアント機器の識別情報（ＩＰアドレスやユーザ識別情報等
）
・操作入力により入力された移動量及び移動方向
・選択されたアクションの識別情報
・ゲーム画面の描画範囲（カメラパラメータ等）
・クライアント機器の表示装置における表示設定（画面表示解像度、色数等）
等の情報が含まれるものとする。なお、センタサーバ２００が各クライアント機器３００においてなされた操作入力として受信する情報のデータ構造はこれに限られるものではなく、ゲームによって予め定められたデータ構造であってよい。
【００４４】
また本実施形態では、クライアント機器３００において例えばユーザによりなされた操作を、ゲーム内での数値やパラメータに変換した情報がセンタサーバ２００に送信されるものとして説明するが、これに限られるものではない。即ち、操作入力の情報は、ユーザがボタン等を操作することによりクライアント機器で検出された入力信号を示す情報であってもよい。この場合、センタＣＰＵ２０１が受信した入力信号を示す情報と、クライアント機器の種類に応じて、ゲーム内での数値やパラメータに変換する処理を行えばよい。
【００４５】
センタＣＰＵ２０１は、クライアント機器３００においてなされた操作入力の情報を受信したと判断した場合は処理をＳ４０２に移し、受信していないと判断した場合は処理をＳ４０３に移す。
【００４６】
Ｓ４０２で、センタＣＰＵ２０１は、Ｓ４０２で受信したクライアント機器３００における操作入力の情報に基づいて、ゲーム情報を更新する。具体的にはセンタＣＰＵ２０１は、例えば該クライアント機器３００のユーザの操作対象であるゲーム内のキャラクタに対応する状態情報をセンタ記録媒体２０４から読み出す。キャラクタの状態情報は、例えばマップ上のキャラクタの位置（座標情報）やキャラクタの視線方向、キャラクタ動作等、ユーザの操作により変更可能なキャラクタの動作や容姿の情報を指すものとする。
【００４７】
センタＣＰＵ２０１は受信した操作入力の情報を参照し、状態情報に含まれるパラメータのうちの操作入力により変化するパラメータを、受信した操作入力の情報で更新する。このようにすることで、センタＣＰＵ２０１は、クライアント機器３００においてなされた操作入力の情報を、ゲームに反映させることができる。
【００４８】
なお、センタＣＰＵ２０１は、Ｓ４０２で受信したクライアント機器３００における操作入力の情報のうち、キャラクタの状態情報の更新に用いられない情報については、クライアント機器の識別情報に関連付けて例えばセンタ記録媒体２０４に記録するものとする。
【００４９】
Ｓ４０３で、センタＣＰＵ２０１は、各クライアント機器３００のユーザの操作対象のキャラクタ以外の、ゲーム内で状態を管理する描画オブジェクトの状態情報を更新する。ゲーム内で状態を管理する描画オブジェクトは、例えばＮＰＣ（Non Player Character）と呼ばれるユーザの操作非対象のキャラクタ、地形等の背景オブジェクト等である。ゲーム内で状態を管理する描画オブジェクトは、時間経過やユーザの操作対象のキャラクタの動作によって変化する。このためセンタＣＰＵ２０１は、本ステップにおいて時間経過やＳ４０２で更新したキャラクタの状態情報に応じて、ゲーム内で状態を管理する描画オブジェクトの状態情報を更新する。
【００５０】
Ｓ４０４で、センタＣＰＵ２０１は、各クライアント機器３００に対して提供するゲーム画面に含まれる描画オブジェクトを特定する。ゲーム画面に含まれる描画オブジェクトは、上述したゲーム内で状態を管理する描画オブジェクト、及びユーザの操作対象のキャラクタの描画オブジェクトである。
【００５１】
具体的にはセンタＣＰＵ２０１は、現在センタサーバ２００に接続されているクライアント機器３００を１つずつ選択し、該クライアント機器３００の識別情報が関連付けられたゲーム画面の描画範囲の情報を、センタ記録媒体２０４から読み出す。上述したようにゲーム画面の描画範囲の情報は、ゲーム画面についてのカメラパラメータを含んでいる。センタＣＰＵ２０１は該カメラパラメータを参照し、該カメラによる描画範囲に状態情報の座標情報が含まれるキャラクタ等の描画オブジェクトを、ゲーム画面に含まれる描画オブジェクトとして特定する。なお、描画オブジェクトには識別情報が割り当てられており、センタＣＰＵ２０１は、特定したゲーム画面に含まれる描画オブジェクトの識別情報を、クライアント機器の識別情報に関連付けてセンタ記録媒体２０４に記録する。
【００５２】
Ｓ４０５で、センタＣＰＵ２０１は、全クライアント機器３００に対して提供するゲーム画面の描画命令を描画サーバ１００に送信し、描画サーバ１００に描画処理を実行させる。具体的にはまずセンタＣＰＵ２０１は、各クライアント機器３００の識別情報に関連付けてセンタ記録媒体２０４に記録されている、該クライアント機器３００に提供するゲーム画面に含まれる描画オブジェクトの識別情報を読み出す。またセンタＣＰＵ２０１は、ゲーム画面に含まれる描画オブジェクトの各々に設定されている詳細情報をセンタ記録媒体２０４より読み出す。そしてセンタＣＰＵ２０１は、各クライアント機器３００に提供するゲーム画面に含まれる描画オブジェクトの識別情報、及び各描画オブジェクトの詳細情報を、クライアント機器３００の識別情報に関連付け、描画命令としてセンタ通信部２０５を介してセンタサーバ２００に送信する。このとき、センタＣＰＵ２０１は、各クライアント機器の識別情報に関連付けられた、ゲーム画面の描画範囲の情報及びクライアント機器の表示装置における表示設定の情報をセンタ記録媒体２０４より読み出し、同様に描画サーバ１００に送信するものとする。
【００５３】
即ち、１つのクライアント機器に対して提供するゲーム画面の描画のためにセンタサーバ２００に対して送信される描画命令は、図５（ｂ）に示されるように、該クライアント機器の識別情報に関連付けられた、
・ゲーム画面に含まれる各描画オブジェクトの識別情報
・ゲーム画面に含まれる各描画オブジェクトについての詳細情報
・ゲーム画面に含まれる各描画オブジェクトの状態情報
・ゲーム画面の描画範囲及び表示設定の情報
を含んでいる。なお、ゲーム画面の描画範囲となるカメラパラメータや表示設定の情報等は、例えばカメラ位置が変化しないゲームや表示解像度が固定のゲームの場合、描画命令に含まれなくてもよい。
【００５４】
なお、本実施形態ではクライアント機器３００ごとに描画命令が描画サーバ１００に送信されるものとして説明するが、複数あるいは全てのクライアント機器３００についての描画命令が同時に送信されてもよいことは容易に理解されよう。
【００５５】
Ｓ４０６で、センタＣＰＵ２０１は、描画命令に応じて描画サーバ１００が生成したゲーム画面を、描画サーバ１００から受信したか否かを判断する。具体的にはセンタＣＰＵ２０１は、描画サーバ１００が生成して出力した各クライアント機器３００のゲーム画面を、センタ通信部２０５が受信したか否かを判断する。センタＣＰＵ２０１は、ゲーム画面を受信したと判断した場合は処理をＳ４０７に移し、受信していないと判断した場合は本ステップの処理を繰り返す。即ち、本ステップでは各クライアント機器３００のゲーム画面を受信するまで待機する。
【００５６】
なお、本ステップにおいて受信するゲーム画面は、直前のＳ４０４において描画サーバ１００に送信された描画命令によって生成されたゲーム画面であることが好ましいが、これに限られなくてもよい。即ち、本ゲーム処理は１フレームごとに実行されるため、ゲーム画面の描画が提供するゲームのフレームレートで規定される１フレーム時間内に完了しない場合、本ステップで受信されるゲーム画面は、現フレームよりも数フレーム前のフレームで送信された描画命令に応じて生成された画面であってもよい。
【００５７】
Ｓ４０７で、センタＣＰＵ２０１は、Ｓ４０６で受信したゲーム画面を対応するクライアント機器３００に対して配信する。具体的にはセンタＣＰＵ２０１は、センタ通信部２０５が受信してセンタＲＡＭ２０３に記憶されたゲーム画面の例えばヘッダ部に含まれるクライアント機器３００の識別情報を参照する。そしてセンタＣＰＵ２０１は、該識別情報で示されるクライアント機器３００に対して、センタ通信部２０５を介してゲーム画面を送信し、本ゲーム処理を完了する。
【００５８】
このように、センタサーバ２００は描画サーバ１００に対して描画命令を行うことで、各クライアント機器３００においてなされた操作入力が反映されたゲーム画面を生成させ、得られたゲーム画面を各クライアント機器３００に配信することができる。
【００５９】
しかしながら、クライアント機器３００の数や描画範囲に含まれる描画オブジェクトの数によっては、クライアント機器３００においてなされた操作入力が反映されたゲーム画面の生成に時間を要することになる。このことは、クライアント機器３００のユーザに対してゲームのレスポンスが悪いという印象を与えてしまうことにつながる。本実施形態では、以下に示すように描画命令に含まれる描画オブジェクトの詳細情報を判断することで、描画サーバ１００における描画処理に要する時間を短縮する方法について説明する。
【００６０】
描画処理では、各描画オブジェクトについて、詳細情報に含まれる「モデルデータを特定する識別情報」、「テクスチャデータを特定する識別情報」、「描画用プログラムの指定情報」、及び「描画用プログラムで用いられる演算用データ」を読み出して描画処理を行う。即ち、ゲーム画面に含まれる描画オブジェクトが複数存在する場合、描画オブジェクトを１つずつ選択して詳細情報を読み出し、該詳細情報に応じて描画を行なった後、次の描画オブジェクトについての描画が行われる。つまり、描画サーバ１００では描画処理中、描画する描画オブジェクトを切り替える度に、モデルデータやテクスチャデータのＧＰＵへの転送及びコンバート、描画用プログラムの読み出し、演算用データの設定等、初期化に係る処理が実行されることになる。このように１つのゲーム画面の描画処理においては、１つの描画オブジェクトの描画における初期化に係る処理の時間（切り替えコスト）が、ゲーム画面の描画範囲に含まれる描画オブジェクトの数だけ必要となる。また複数のクライアント機器３００に配信するゲーム画面を同時に生成する場合は、切り替えコストはさらに多くなる。
【００６１】
一方、ゲーム画面の生成においては、特に背景等に、詳細情報により示される少なくとも一部のデータが共通である描画オブジェクトが存在することがある。例えばゲーム画面内に含まれる樹木のオブジェクト等は、数パターンのモデルデータに対して１つのテクスチャデータを使い回して描画されている。また、例えば共通の材質や質感を有するオブジェクトや、同一の光源下に存在するオブジェクトについては、同一の描画用プログラムや演算用データが使用されている。また、異なるクライアント機器に提供されるゲーム画面であっても、例えばゲーム内のマップ上におけるカメラ位置や方向が類似するゲーム画面については、描画範囲に存在する描画オブジェクトは共通しており、詳細情報も同一である可能性がある。
【００６２】
本実施形態の描画処理では、このように詳細情報により示される少なくとも一部のデータが共通する描画オブジェクトについては連続する描画順を割り当てることで、描画処理中の切り替えコストを抑える。即ち、描画する描画オブジェクトを切り替える際に、先に描画した描画オブジェクトについて行われた演算結果や読み出されたデータを利用することで、共通する処理に要する時間を短縮し、切り替えコストを低減する。
【００６３】
＜描画処理＞
以下、本実施形態の描画サーバ１００の描画処理について、図６のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、ＣＰＵ１０１が、例えばＲＯＭ１０２に記憶されている対応する処理プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本描画処理は、例えばセンタサーバ２００からの描画命令を受信した際に開始されるものとして説明する。なお、以下の説明では、上述のゲーム処理と同様に５台のクライアント機器３００ａ乃至ｅに提供するゲーム画面の生成を、描画サーバ１００が行うものとして説明する。
【００６４】
Ｓ６０１で、ＣＰＵ１０１は、クライアント機器３００ａ乃至ｅに提供するゲーム画面の生成を、描画サーバ１００が有するＧＰＵに分類する。即ち、本ステップにおいてＣＰＵ１０１は受信した描画命令を、第１ＧＰＵ１０５、第２ＧＰＵ１０６、第３ＧＰＵ１０７、及び第４ＧＰＵ１０８のうち、いずれのＧＰＵで処理するかを決定する。
【００６５】
１つのＧＰＵに対してゲーム画面の生成を割り当てるクライアント機器の分類方法については、例えば以下の方法が考えられる。
【００６６】
１．ゲーム画面を規定するカメラパラメータ（描画範囲）
各クライアント機器３００に提供するゲーム画面は、カメラパラメータによりゲーム画面の描画範囲（視野）が規定される。１つのカメラについての視野は、通常四角錐あるいは四角錐台で規定されるが、該視野が重複するゲーム画面については、同一の描画オブジェクトが含まれると考えられる。このため、同一のＧＰＵにゲーム画面の生成を割り当てるクライアント機器は、視野の重複を考慮して分類することで描画処理の効率化が望める。具体的には、例えば視野で規定される四角錐を２次元平面に投影した三角形を、各クライアント機器に提供するゲーム画面を規定するカメラの座標及び方向に従って算出し、該三角形の範囲が所定の割合以上重複するゲーム画面を１つのグループとして分類し、同一のＧＰＵに描画処理を割り当てればよい。
【００６７】
また簡易的には、ゲーム画面を規定するカメラ座標が近いクライアント機器については、ゲーム画面の描画内容が類似することが期待される。このため、ゲーム画面を規定するカメラ座標の距離が所定距離以内のゲーム画面を１つのグループとして分類し、同一のＧＰＵに描画処理を割り当ててもよい。
【００６８】
またゲーム内のマップでは、例えば、山、森、海等、同様の背景オブジェクトが使用されるエリアが存在する。即ち、ゲーム画面を規定するカメラの座標が、このような背景オブジェクトが配置された特定のエリアに存在する、あるいはカメラの方向が該特定のエリアの方向を向いている場合、生成されるゲーム画面には共通の背景オブジェクトが含まれる。つまり、共通の背景オブジェクトが含まれるゲーム画面については１つのグループとして、同一のＧＰＵに描画処理を割り当てることで、描画処理の効率化が望める。
【００６９】
また、背景についてはゲーム内のマップの様々なエリアにおいて同一の描画オブジェクトが使用される可能性がある。即ち、ゲーム画面を規定するカメラの座標及び方向が異なっていたとしても、同一の背景オブジェクトが描画範囲に含まれることもあるため、１つのＧＰＵで生成するゲーム画面のカメラ位置等は必ずしも近接していなくてもよい。
【００７０】
割り当てるＧＰＵの情報は、例えばカメラの座標及び方向情報の組み合わせについて、描画処理を行うＧＰＵを予め定めた情報が、ルックアップテーブルとして記録媒体１０４に記録されていてもよい。また割り当てるＧＰＵの情報は、例えばカメラの位置及び方向の値を引数とする関数によって、処理を行うＧＰＵの情報が得られるように構成されてもよい。
【００７１】
２．描画範囲に含まれる描画オブジェクトの詳細情報の組み合わせ
描画処理における切り替えコストは、描画順が連続する描画オブジェクトについて、詳細情報の一致度が高いほど低減される。このためセンタＣＰＵ２０１は、全クライアント機器３００に提供するゲーム画面の各々について、ゲーム画面に含まれる全描画オブジェクトの詳細情報を参照し、ゲーム画面間での描画オブジェクトの一致度を詳細情報レベルで算出する。そして該一致度が高いゲーム画面の生成を１つのグループに分類し、同一のＧＰＵに描画処理を割り当てればよい。
【００７２】
なお、詳細情報の一致度については、例えば各ゲーム画面に含まれる描画オブジェクトを、詳細情報のうちのテクスチャデータやモデルデータ等の組み合わせで分布をとり、該分布の類似性として求めてもよい。また、例えば各ゲーム画面に含まれる描画オブジェクトのうち、詳細情報により示される特定の属性のデータについて分類し、各集合に属する描画オブジェクトの数が閾値以上の分類についてのみ、ゲーム画面間において総当たりで詳細情報を比較することで、詳細情報の一致度を算出してもよい。
【００７３】
３．ユーザの操作対象のキャラクタのイベント参加有無
ゲームにおいては、マップ上の特定のポイントに存在する等、特定の条件を満たした場合にイベントが発生し、ゲーム画面が通常とは異なる画面に強制的に遷移することがある。例えば敵キャラクタ等との戦闘イベントでは、ユーザの操作対象のキャラクタは戦闘専用のフィールドにおいて敵キャラクタとの戦闘を行うことになる。このようなイベントは、マップ上の任意の位置において同時発生することが考えられるため、同一種類のイベントが発生しているクライアント機器３００に提供するゲーム画面については１つのグループとして、同一のＧＰＵに描画処理を割り当てることで、切り替えコストの低減が見込める。
【００７４】
４．ゲーム進行状況
またストーリー進行が定められている種類のゲームについては、ゲーム進行状況によって描画されるオブジェクトの種類が限定されることが考えられる。例えばフィールドが建物内→広場→草原→森のように進行するストーリーの場合、フィールドが切り替わるごとにグループを分類しなおし、異なるＧＰＵにゲーム画面の描画を割り当ててもよい。
【００７５】
このように、ゲーム画面に含まれる描画オブジェクトの類似性を判断基準として、描画内容が類似する複数のグループに分類し、１つのグループについてゲーム画面の描画を同一のＧＰＵに割り当てる。そして、後述する描画順決定処理を実行することにより、各ＧＰＵにおけるゲーム画面の生成をより効率的に行うことができる。なお、上記のクライアント機器３００に提供するゲーム画面の生成を行うＧＰＵの決定方法は例示を目的としたものであり、これ以外にも描画内容が類似していると思われるゲーム画面の描画を同一のＧＰＵに割り当てることで描画処理の効率化が望める方法が用いられてよい。
【００７６】
本実施形態では、ゲーム画面を規定するカメラの位置及び座標情報に応じて描画処理を行うＧＰＵを決定する、上記１の方法を使用するものとして説明する。また以下では、５つのクライアント機器３００ａ乃至ｅに提供するゲーム画面の生成は１つのグループに分類され、第１ＧＰＵ１０５で全て行われるものとする。なお、１つのグループに分類されるゲーム画面の数（クライアント機器の数）は、ＧＰＵの処理能力及びＶＲＡＭの容量により決定される。また各グループに分類されたクライアント機器の情報は、例えば１つのグループＩＤを有するテーブルに、クライアント機器の識別情報が追加されてＲＡＭ１０３に記憶されることにより管理されればよい。
【００７７】
Ｓ６０２で、ＣＰＵ１０１は、各ＧＰＵに割り当てられたグループの各々について、描画する全てのゲーム画面に含まれる描画オブジェクトを対象として、描画オブジェクトの描画順を決定する描画順決定処理を実行する。
【００７８】
（描画順決定処理）
ここで、本実施形態の描画順決定処理について、図７のフローチャートを用いて詳細を説明する。なお、以下の説明では第１ＧＰＵ１０５で描画を行う１つのグループのゲーム画面を対象として、該ゲーム画面に含まれる描画オブジェクトに対して描画順を決定する処理について説明するが、他のＧＰＵについても同様に処理すればよいことは容易に理解されよう。
【００７９】
Ｓ７０１で、ＣＰＵ１０１は、第１ＧＰＵ１０５で描画を行う１つのグループのゲーム画面に含まれる全描画オブジェクトについて、２つの描画オブジェクトで構成される全ての組み合わせのペアを作成する。
【００８０】
Ｓ７０２で、ＣＰＵ１０１は、Ｓ７０１で作成された全てのペアについて、詳細情報の優先度が高い属性の順に傾斜配分された得点を用いて、２つの描画オブジェクトの詳細情報の一致度をスコアリングする。本実施形態では詳細情報により示される各データの属性について、以下の順番で優先度が設けられる。
１．テクスチャデータを特定する識別情報
２．モデルデータを特定する識別情報
３．使用する描画用プログラムの指定情報
４．描画用プログラムで用いられる演算用データの指定情報
【００８１】
詳細情報により示される各データの属性の優先度は、該属性のデータを読み出してキャッシュメモリに展開した際の、メモリ上のデータサイズに応じて定められている。上位の属性のデータほどデータサイズが大きく、異なるデータに切り替えた際にキャッシュメモリへの展開、キャッシュメモリからの新規読み出し、及びパラメータの設定等に時間を要する、即ち切り替えコストが高い属性のデータとなる。つまり、優先度の高い属性のデータについて切り替え頻度を低くする（再利用頻度を高くする）描画順で描画を行うことで、切り替えコストを効率的に低減することができる。
【００８２】
即ち、本ステップのスコアリングにより、詳細情報の一致度が高い、即ち優先度の高い属性データについて最利用頻度を高くすることで切り替えコストが低くなる描画オブジェクトのペアほど、高いスコアが付される。
【００８３】
Ｓ７０３で、ＣＰＵ１０１は、全てのペアについての一致度のスコアを参照し、第１ＧＰＵ１０５で描画を行う１つのグループのゲーム画面に含まれる全描画オブジェクトの描画順を決定する。具体的にはＣＰＵ１０１は、全描画オブジェクトを描画順に並べた場合に連続する描画オブジェクトの組み合わせについてのスコアの総和が最も高くなる描画順を決定する。
【００８４】
ここで、具体的な描画順の決定手順について図を用いて詳細を説明する。なお、以下では説明を簡単にするために、上述した詳細情報の４つの属性のうち、テクスチャデータ及びモデルデータの一致度を考慮して描画順を決定する方法について説明する。
【００８５】
図８は、Ｓ７０３における描画オブジェクトの描画順決定手順の例に用いられる、各クライアント機器に提供するゲーム画面に含まれる描画オブジェクトを示している。図８の例では３つのクライアント機器に提供するゲーム画面を同一のＧＰＵで生成する場合を示しており、各ゲーム画面に２つの描画オブジェクト、計６つの描画オブジェクトの描画をＧＰＵが行う。
【００８６】
ＣＰＵ１０１により、全てのオブジェクトについて組み合わせ可能なペアを生成すると、その数は６Ｃ２＝１５になる。即ち、ＣＰＵ１０１は１５通りのペアの全てについて、一致度のスコアリングを行う。本実施形態では、詳細情報の各属性が一致した場合の加点は、テクスチャデータの一致を２点、モデルデータの一致を１点として計算する。このとき、各ペアのスコアは図９のようになる。
【００８７】
ＣＰＵ１０１は、まず最高点３のスコアを有するペアに着目する。本例では、最高点３を有するペアは（Ａ−１，Ｂ−１）、（Ａ−１，Ｃ−２）、及び（Ｂ−１，Ｃ−２）の３つである。このとき最高点を有するペアの数と、該ペアを構成する描画オブジェクト（３点オブジェクト）の数が等しいため、該ペアは全て同一の詳細情報を有する３点オブジェクトで構成されていることがわかる。そしてＣＰＵ１０１は、３点オブジェクトの各々について、該オブジェクトを含む他のペアのスコアを参照し、まず３点オブジェクトの描画順を決定する。
【００８８】
３点オブジェクトを含む他のペアのスコアは、図９に示されるように次点の２か、Ａ−２とのペアのスコア０である。即ち、描画順において３点オブジェクトに続く描画オブジェクトとして、Ａ−２以外の描画オブジェクトを割り当てる場合は、描画オブジェクトに依らず切り替えコストは同一になる。このためＣＰＵ１０１は、上述した３つの３点オブジェクトの描画順を特に考慮せず、例えば識別情報のソート順で順番を決定する。
なお、このとき次点を有するペアが１つしかなかった場合は、３つの３点オブジェクトのうち、該ペアに含まれる描画オブジェクトが３点オブジェクトの描画順において最後である３番目に決定され、４番目に該ペアに含まれる他方の描画オブジェクトが割り当てられる。
【００８９】
同様にＣＰＵ１０１は、次点のペアに含まれる３点オブジェクト以外の描画オブジェクト（２点オブジェクトＢ−２，Ｃ−１）についての描画順を決定する。図９に示されるように、２点オブジェクトを含む次点以下のペアは、描画オブジェクトＡ−２とのペアのみである。図示されるように描画オブジェクトＡ−２は２点オブジェクトのＢ−２とのペアのスコアのみ１である。このため、２点オブジェクトのうち描画オブジェクトＢ−２は、２点オブジェクトの中で最後の描画順である５番目に決定され、描画オブジェクトＡ−２は６番目に決定される。
【００９０】
ＣＰＵ１０１は、このような判断を繰り返すことにより、１つのグループのゲーム画面に含まれる全ての描画オブジェクトについて、描画順を決定できる。本例では、最終的には図１０に示されるようにＡ−１→Ｂ−１→Ｃ−２→Ｃ−１→Ｂ−２→Ａ−２として、ＣＰＵ１０１は描画順を決定する。
【００９１】
このようにすることで、１つのグループに分類されたゲーム画面に含まれる全描画オブジェクトに対して、切り替えコストを抑えた描画順を割り当てることができる。なお、描画順の割り当てについては、例えば描画順に描画オブジェクトの識別情報を関連付け、リストとして例えばＲＡＭ１０３に記憶すればよい。
【００９２】
Ｓ６０２における描画順決定処理が完了した後、ＣＰＵ１０１はＳ６０３で、決定した描画順に従って描画オブジェクトの描画を行い、各クライアント機器３００に提供するゲーム画面を生成する。具体的にはＣＰＵ１０１は、描画順に従って描画オブジェクトの詳細情報を参照し、該詳細情報により特定されるデータを記録媒体１０４から読み出して描画を行うＧＰＵに転送する。このときＣＰＵ１０１は、既に展開領域に展開されているデータと異なるデータのみを読み出して転送し、既に展開されているデータと共通のデータについては読み出しを行わず、既に展開されているデータを利用する。
【００９３】
なお、ゲーム画面の生成には、各描画オブジェクトの座標情報や動作情報を含む状態情報、及びカメラパラメータを含むゲーム画面の描画範囲及び表示設定の情報が使用されるが、これらの使用は公知の処理内容であるため説明を省略する。
【００９４】
Ｓ６０４で、ＣＰＵ１０１は、各ＧＰＵが生成したゲーム画面について、ヘッダ部に提供するクライアント機器の識別情報を付し、通信部１１３を介してセンタサーバ２００に送信する。
【００９５】
このようにすることで、切り替えコストを抑えて描画処理を行えるため、ユーザの操作入力に対して、より応答性に優れたゲーム画面を、クライアント機器を操作するユーザに提供することができる。
【００９６】
なお、本実施形態では単に「ゲーム画面」をセンタサーバ２００からクライアント機器３００に対して送信するものとして説明した。しかしながら「ゲーム画面」は、単に静止画像データであってもよいが、フレーム間予測等の更にデータサイズを減少させる符号化処理が適用された、動画データのフレーム画像データとして送信されてもよい。符号化処理については、描画サーバ１００及びセンタサーバ２００のいずれで行われてもよいことは言うまでもない。
【００９７】
また、本実施形態では多人数同時参加型のネットワークゲームを例に、本発明の実施を説明した。しかしながら上述したように、本発明は１以上のクライアント機器に提供する画面を同時に作成することが可能な任意の機器及びシステムに適用可能なものであり、本発明の実施はこれに限られるものではない。例えば、描画システムにおいて、各クライアント機器に対してシングルユーザ対応のゲームコンテンツを独立して提供する場合、複数のクライアント機器には類似するゲーム画面が出力される可能性がある。即ち、マップ上の位置や方向が類似する、ゲームの進行が類似する、あるいは同一の動作を実行している場合に提供されるゲーム画面内には、共通する描画オブジェクトが含まれると考えられるため、本発明の適用により描画処理に係る効率化が図れる。
【００９８】
また、本実施形態では描画システムにおいて描画サーバ１００とセンタサーバ２００とは分離されているものとして説明したが、本発明の実施はこれに限られない。即ち、本発明は描画サーバ１００及びセンタサーバ２００の機能を有する１つのサーバによって実施されてもよい。
【００９９】
以上説明したように、本実施形態の描画制御装置は、１以上のクライアント機器に対してゲーム画面を提供する描画システムにおいて、応答性に優れた効率的な描画処理を行うことができる。具体的には描画制御装置は、クライアント機器に対して提供する画面の生成に用いられる複数の描画オブジェクトの各々について、識別情報と描画に必要となるデータを示す詳細情報とを取得する。そして複数の描画オブジェクトの各々の詳細情報を参照して、詳細情報により示される少なくとも一部のデータが共通である描画オブジェクトに対して連続する描画順を割り当てるように、全描画オブジェクトの描画順を決定する。描画制御装置は、描画順に従って描画オブジェクトの詳細情報により示されるデータを読み出し、ＧＰＵに転送する。このとき、描画順において連続する描画オブジェクトの詳細情報により示されるデータのうち、既にＧＰＵに転送されたデータと共通でないデータについてのみ読み出して転送する。
【０１００】
このようにすることで、ゲーム画面の描画処理に要する時間を低減し、効率的な描画を行うことができる。
【０１０１】
［変形例］
上述した実施形態では、１つのグループに分類されたゲーム画面に含まれる全ての描画オブジェクトについて、全組み合わせのペアを作ってスコアリングした上で、描画順を決定する描画順決定処理について説明した。本変形例では、詳細情報の優先度が高い属性の順に描画オブジェクトをソートして分類することにより、簡易的にスコアリングを行う方法について説明する。
【０１０２】
（描画順決定処理）
以下、本変形例の描画順決定処理について、図１１のフローチャートを用いて詳細を説明する。なお、以下の説明では第１ＧＰＵ１０５で描画を行う１つのグループのゲーム画面を対象として、該ゲーム画面に含まれる描画オブジェクトに対して描画順を決定する処理について説明するが、他のＧＰＵについても同様に処理すればよいことは容易に理解されよう。
【０１０３】
Ｓ１１０１で、ＣＰＵ１０１は、第１ＧＰＵ１０５で描画を行う１つのグループのゲーム画面に含まれる全描画オブジェクトについて、詳細情報により示される、優先度が高い属性の順に傾斜配分された得点によるスコアリングを１番高い属性のデータで分類する。本変形例でも詳細情報により示される各データの属性については、以下の順番で優先度が設けられる。
１．テクスチャデータを特定する識別情報
２．モデルデータを特定する識別情報
３．使用する描画用プログラムの指定情報
４．描画用プログラムで用いられる演算用データの指定情報
【０１０４】
即ち、本ステップではＣＰＵ１０１は、テクスチャデータを特定する識別情報で全描画オブジェクトを分類する。
【０１０５】
Ｓ１１０２で、ＣＰＵ１０１は、Ｓ１１０１での分類により生成された同一のテクスチャデータを使用する描画オブジェクトの各集合について属するメンバ数を参照し、メンバ数が１である集合を特定する。そしてＣＰＵ１０１は、メンバ数が１である集合の描画オブジェクトを１つの集合（テクスチャ不一致集合）に統合する。
【０１０６】
Ｓ１１０３で、ＣＰＵ１０１は、同一のテクスチャデータを使用する描画オブジェクトの集合及びテクスチャ不一致集合について、優先度が２番目に高いモデルデータを特定する識別情報で各集合の描画オブジェクトを分類する。即ち、本ステップにより、同一のテクスチャデータを使用する描画オブジェクトの集合及びテクスチャ不一致集合の各々に属する描画オブジェクトは、同一のモデルデータを使用する描画オブジェクトの子集合に分類される。
【０１０７】
Ｓ１１０４で、ＣＰＵ１０１は、Ｓ１１０３での分類により生成された同一のモデルデータを使用する描画オブジェクトの各集合について属するメンバ数を参照し、メンバ数が１である集合を特定する。そしてＣＰＵ１０１は、同一のテクスチャデータを使用する描画オブジェクトの集合及びテクスチャ不一致集合の各々において、メンバ数が１である集合の描画オブジェクトを１つの集合（モデル不一致集合）に統合する。
【０１０８】
Ｓ１１０５で、ＣＰＵ１０１は、集合分類が行われていない属性が存在するか否かを判断する。集合分類が行われていない属性が存在する場合、ＣＰＵ１０１は集合分類が行われていない属性を優先度順に選択し、処理をＳ１１０３に戻す。即ち、次は同一のモデルデータを使用する描画オブジェクトの集合及びモデル不一致集合について、描画用プログラムの指定情報で各集合の描画オブジェクトを分類する。
【０１０９】
このように、Ｓ１１０１、Ｓ１１０２、及びＳ１１０３乃至Ｓ１１０５の繰り返し処理を行うことで詳細情報により示される各データの属性ごとに分類を行い、最終的に詳細情報により示されるデータのうち、少なくともいずれかのデータが一致する描画オブジェクトを集合にまとめることができる。
【０１１０】
なお、本ステップにおいてＣＰＵ１０１は、集合分類が行われていない属性が存在しないと判断した場合は、処理をＳ１１０６に移す。
【０１１１】
Ｓ１１０６で、ＣＰＵ１０１は、第１ＧＰＵ１０５で描画を行う１つのグループのゲーム画面に含まれる、全描画オブジェクトに対して描画順を決定する。つまりＣＰＵ１０１は、Ｓ１１０１乃至Ｓ１１０５で行われた描画オブジェクトの分類の情報に従い、切り替えコストが低い描画順を決定する。
【０１１２】
具体的にはＣＰＵ１０１は、まず優先度が１番高い「テクスチャデータを特定する識別情報」について分類された集合のうち、テクスチャ不一致集合以外の１つの集合を選択する。そして該集合に含まれる子集合を順に選択して、該子集合内の描画オブジェクトに描画順を割り当てていく。このとき子集合の選択順は、例えば２進数を用いて集合を表し、該値の降順に集合を選択すればよい。例えば、優先度が２番目に高い属性が同一である集合については２３、優先度が３番目に高い属性が同一である集合については２２、優先度が４番目に高い属性が同一である集合については２１、優先度が１番低い属性が同一である集合については２０を加点するスコアリングを行い、スコアの降順で描画順を決定すればよい。
【０１１３】
また、１つの「テクスチャデータを特定する識別情報」について分類された集合に対して、描画オブジェクトの描画順の決定が完了した場合、次の同一のテクスチャデータを使用する集合について同様に描画順を決定する。また、テクスチャ不一致集合以外の集合に対して、描画オブジェクトの描画順の決定が完了した場合、テクスチャ不一致集合に含まれる描画オブジェクトについても同様に描画順を決定する。
【０１１４】
このようにすることで、全描画オブジェクトに対して、切り替えコストを抑えた描画順を割り当てることができる。
【図１】
0005937711.tif 000002
【図２】
0005937711.tif 000003
【図３】
0005937711.tif 000004
【図４】
0005937711.tif 000005
【図５】
0005937711.tif 000006
【図６】
0005937711.tif 000007
【図７】
0005937711.tif 000008
【図８】
0005937711.tif 000009
【図９】
0005937711.tif 000010
【図１０】
0005937711.tif 000011
【図１１】
0005937711.tif 000012