(57)【特許請求の範囲】
【請求項１】
表示部及び処理部を備える電子装置において実行される、３次元仮想空間に配置された複数の３次元のオブジェクトをレンダリングする前記処理部のリソース配分を決定するためのプログラムであって、前記電子装置に、
前記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、
選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、
前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するステップと、
を実行させ、
前記イベント履歴情報は、発生したイベントの履歴における連続する２以上であってＮ（Ｎ≧２）個以下のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含み、
前記注目度スコアを決定するステップは、
それぞれの前記候補イベントについて、前記イベント頻度情報における前記候補イベント直前に発生したイベント又はイベント列及び前記候補イベントからなる連続するｎ個（２≦ｎ≦Ｎ）のイベント列の出現頻度に基づいて、前記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、前記候補オブジェクトのそれぞれの前記注目度スコアを算出するステップを含む、プログラム。
【請求項２】
前記注目度スコアを決定するステップは、
それぞれの前記候補イベントについて、前記スコアをｎ＝ｎ１〜ｎ２（２≦ｎ１＜ｎ２≦Ｎ）それぞれで算出し、算出されたスコアにｎの値の大きさに対応する所定の係数を掛け合わせて加算するステップを含む、請求項１に記載のプログラム。
【請求項３】
前記プログラムは、前記電子装置に、
発生したイベントを記憶するステップをさらに実行させる、請求項１又は２に記載のプログラム。
【請求項４】
前記電子装置は、ネットワークを介してサーバに接続され、
前記プログラムは、前記電子装置に、
前記サーバから前記イベント履歴情報を受信するステップと、
前記サーバに、発生したイベントを記憶させるために、前記サーバに対して発生したイベントを含む情報を送信するステップをさらに実行させる、請求項１から３のいずれか１項に記載のプログラム。
【請求項５】
前記処理部には複数のシェーダユニットが含まれ、前記処理部のリソース配分は、それぞれの前記候補オブジェクトの描画に使用する前記シェーダユニットの配分を含む、請求項１から４のいずれか１つに記載のプログラム。
【請求項６】
表示部及び処理部を備える電子装置であって、
前記表示部に描画される３次元仮想空間に配置された３次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、
選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、
前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するリソース配分決定手段と、
を備え、
前記イベント履歴情報は、発生したイベントの履歴における連続する２以上であってＮ（Ｎ≧２）個以下のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含み、
前記注目度スコア決定手段は、
それぞれの前記候補イベントについて、前記イベント頻度情報における前記候補イベント直前に発生したイベント又はイベント列及び前記候補イベントからなる連続するｎ個（２≦ｎ≦Ｎ）のイベント列の出現頻度に基づいて、前記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、前記候補オブジェクトのそれぞれの前記注目度スコアを算出する注目度スコア算出手段を備える、電子装置。
【請求項７】
サーバと、前記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムであって、
前記表示部に描画される３次元仮想空間に配置された３次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、
選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、
前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するリソース配分決定手段と、
の各手段を前記サーバ又は前記電子装置が備え、
前記イベント履歴情報は、発生したイベントの履歴における連続する２以上であってＮ（Ｎ≧２）個以下のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含み、
前記注目度スコア決定手段は、
それぞれの前記候補イベントについて、前記イベント頻度情報における前記候補イベント直前に発生したイベント又はイベント列及び前記候補イベントからなる連続するｎ個（２≦ｎ≦Ｎ）のイベント列の出現頻度に基づいて、前記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、前記候補オブジェクトのそれぞれの前記注目度スコアを算出する注目度スコア算出手段を備える、システム。
【請求項８】
前記システムは、
発生したイベントを記憶する記憶手段を前記サーバ又は前記電子装置がさらに備え、
前記記憶手段は、
前記記憶手段に記憶されたイベントの履歴における連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含むイベント履歴情報を作成する、請求項７に記載のシステム。
【請求項９】
サーバと、前記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムにおいて、３次元仮想空間に配置された複数の３次元のオブジェクトをレンダリングする前記処理部のリソース配分を決定するための方法であって、
前記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、
選択された前記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、前記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、前記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、
前記注目度スコア、及びプレイヤの視点からの前記候補オブジェクトの奥行き距離に基づいて、それぞれの前記候補オブジェクトをレンダリングするための前記処理部のリソース配分を決定するステップと、
を備え、各ステップは前記サーバ又は前記電子装置により実行され、
前記イベント履歴情報は、発生したイベントの履歴における連続する２以上であってＮ（Ｎ≧２）個以下のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含み、
前記注目度スコアを決定するステップは、
それぞれの前記候補イベントについて、前記イベント頻度情報における前記候補イベント直前に発生したイベント又はイベント列及び前記候補イベントからなる連続するｎ個（２≦ｎ≦Ｎ）のイベント列の出現頻度に基づいて、前記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、前記候補オブジェクトのそれぞれの前記注目度スコアを算出するステップを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、履歴に基づいてプレイヤの意図を予測することによりレンダリングするためのリソース配分を決定するプログラム、電子装置、システム及び方法に関する。
【背景技術】
【０００２】
従来、仮想の３次元空間内に配置された複数のポリゴンからなる３次元オブジェクトをレンダリングして３次元グラフィックスを描画する手法が知られている。このような３次元グラフィックスは、ゲームの分野において利用されることが多くなってきている。ゲームにおいては、仮想の３次元空間内に、コントローラにより操作可能なキャラクタや建物などのオブジェクトが配置され、設定された視点（視点カメラ）に基づいてこれらを描画した画像が生成される。当該画像はディスプレイなどの表示装置に表示される。
【０００３】
３次元の画像表示は、例えばプログラマブルなシェーダが実装されたＧＰＵなどにより実現される。ＧＰＵで３次元の画像表示を行う方法としては、ＣＰＵが描画に関するコマンドをメモリに書き込み、ＧＰＵが当該コマンドを参照し、ＧＰＵに実装されたプログラマブルなシェーダを通してオブジェクトに対してレンダリングを行う。例えばシェーダは、頂点に対して処理を行う頂点シェーダ、プリミティブを構成する頂点数を増減する処理を行うジオメトリシェーダやピクセルごとの処理を行うピクセルシェーダなどを含む。
【０００４】
このような３次元画像表示を行う３Ｄゲームにおいて、ゲーム内に表示されるオブジェクトの描画品質は、当該オブジェクトの描画に用いるシェーダユニットの数に大きく影響される。すなわち、より多くのシェーダユニットを用いて描画されたオブジェクトはプレイヤから見て高い品質を持ち、一方、より少ないシェーダユニットを用いて描画されたオブジェクトは相対的に低い品質となる。
【０００５】
したがって、プレイヤに訴求する画像品質を実現するためには、ゲーム内で注目されるオブジェクトに、より多くのシェーダユニットを割り当てることが望ましい。近年、プログラマブルシェーダやＧＰＧＰＵの普及に伴い、リアルタイムの３Ｄ画像のレンダリングにおいて、シェーダユニットの資源配分を動的に行うことが可能になっている。例えば、夕焼けのシーンにおいてはシェーダユニットの多くを色の計算を行うピクセルシェーダとして用い、多数のポリゴンが表示されるシーンにおいてはシェーダユニットの大多数を頂点シェーダとして用いるなどの資源配分方式がよく知られている。
【０００６】
スマートフォンなどの携帯機器には電源バッテリーの容量や実装面積の制限などがあるため、そのＧＰＵは、ＰＣやゲーム専用機と比較して、より限られた数のシェーダユニットしか搭載していない。そのため、携帯機器におけるシェーダユニットの的確な資源配分の重要性はより高い。
【０００７】
同様の観点で、例えば特許文献１は、プレイヤの視点位置に応じて表示するオブジェクトの画像解像度を変更することにより、端末の処理負荷を軽減する技術を達成している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２０１４／０９１８２４号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
３次元画像表示を行うにあたっては、すべてのオブジェクトを高精細に描画することができる程度のグラフィックス処理能力を有するのが好ましいが、前述のとおり、ＧＰＵのリソースは有限である。特にスマートフォン等の携帯機器はその傾向が顕著である。一方、人間の視覚の認識力は、中心視野に偏っており、周辺視野を詳細に認識することはできない。したがって、実際にプレイヤが細部を認識できるオブジェクトは、プレイヤが意識的に注目し、中心視野内で閲覧しているごく一部のオブジェクトのみである。そこで本発明者は、ゲームにおいては、３Ｄオブジェクトをモデルに忠実に描画する品質よりも、プレイヤが実感する３Ｄオブジェクトの品質を向上させることが重要であると考えた。すなわち、すべてのオブジェクトを一様の精度でレンダリングせずに、プレイヤからの注目度に応じたＧＰＵリソース配分の仕組みを実現することが、スマートフォン等のゲームの画像品質を向上させるために本質的に重要であると考えた。
【００１０】
特許文献１はプレイヤの注目領域を端末のカメラを用いて判定し、判定結果に応じて描画する画像の解像度の高／低を選択する技術を記載する。しかしながら当該技術はカメラなどの外部デバイスを必要とするため、適用が限定されるという問題があった。
【００１１】
本発明の目的は、例えばＧＰＵのシェーダユニットなどのグラフィックス処理に必要なリソースが限られている中で、プレイヤが次に取りうるアクションをカメラなどの外部デバイスを使用せずに予測することで、一般的な電子装置において、プレイヤから見た実質的な３Ｄオブジェクトの描画品質を向上させるための最適なリソース配分を実現することである。
【課題を解決するための手段】
【００１２】
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一態様としてのプログラムは、表示部及び処理部を備える電子装置において実行される、３次元仮想空間に配置された複数の３次元のオブジェクトをレンダリングする上記処理部のリソース配分を決定するためのプログラムであって、上記電子装置に、上記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するステップと、を実行させるプログラムである。
【００１３】
本発明の一態様として、上記イベント履歴情報は、発生したイベントの履歴における連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含む。
【００１４】
本発明の一態様として、上記イベント頻度情報は、連続するＮ（Ｎ≧２）個以下のイベントからなるイベント列のパターンごとの出現頻度を示す情報を含むものであり、上記注目度スコアを決定するステップは、それぞれの上記候補イベントについて、上記イベント頻度情報における上記候補イベント直前に発生したイベント又はイベント列及び上記候補イベントからなる連続するｎ個（２≦ｎ≦Ｎ）のイベント列の出現頻度に基づいて、上記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、上記候補オブジェクトのそれぞれの上記注目度スコアを算出するステップを含む。
【００１５】
本発明の一態様として、上記注目度スコアを決定するステップは、それぞれの上記候補イベントについて、上記スコアをｎ＝ｎ１〜ｎ２（２≦ｎ１＜ｎ２≦Ｎ）それぞれで算出し、算出されたスコアにｎの値の大きさに対応する所定の係数を掛け合わせて加算するステップを含む。
【００１６】
本発明の一態様として、上記プログラムは、上記電子装置に、発生したイベントを記憶するステップをさらに実行させる。
【００１７】
本発明の一態様として、上記電子装置は、ネットワークを介してサーバに接続され、上記プログラムは、上記電子装置に、上記サーバから上記イベント履歴情報を受信するステップと、上記サーバに、発生したイベントを記憶させるために、上記サーバに対して発生したイベントを含む情報を送信するステップをさらに実行させる。
【００１８】
本発明の一態様として、上記処理部には複数のシェーダユニットが含まれ、上記処理部のリソース配分は、それぞれの上記候補オブジェクトの描画に使用する上記シェーダユニットの配分を含む。
【００１９】
本発明の一態様としての電子装置は、表示部及び処理部を備える電子装置であって、上記表示部に描画される３次元仮想空間に配置された３次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するリソース配分決定手段と、を備える電子装置である。
【００２０】
本発明の一態様としてのシステムは、サーバと、上記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムであって、上記表示部に描画される３次元仮想空間に配置された３次元のオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択する候補オブジェクト選択手段と、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定する注目度スコア決定手段と、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するリソース配分決定手段と、の各手段を上記サーバ又は上記電子装置が備える、システムである。
【００２１】
本発明の一態様として、上記システムは、発生したイベントを記憶する記憶手段を上記サーバ又は上記電子装置がさらに備え、上記記憶手段は、上記記憶手段に記憶されたイベントの履歴における連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報を含むイベント履歴情報を作成するシステムである。
【００２２】
本発明の一態様として、上記イベント頻度情報は、連続するＮ（Ｎ≧２）個以下のイベントからなるイベント列のパターンごとの出現頻度を示す情報を含むものであり、上記注目度スコア決定手段は、それぞれの上記候補イベントについて、上記イベント頻度情報における上記候補イベント直前に発生したイベント又はイベント列及び上記候補イベントからなる連続するｎ個（２≦ｎ≦Ｎ）のイベント列の出現頻度に基づいて、上記候補イベントのそれぞれが次に発生する可能性を示すスコアを算出することにより、上記候補オブジェクトのそれぞれの上記注目度スコアを算出する注目度スコア算出手段を備える。
【００２３】
本発明の一態様としての方法は、サーバと、上記サーバにネットワークを介して接続され、表示部及び処理部を備える電子装置とを含むシステムにおいて、３次元仮想空間に配置された複数の３次元のオブジェクトをレンダリングする上記処理部のリソース配分を決定するための方法であって、上記表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、選択された上記候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、上記候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、上記候補オブジェクトのそれぞれのプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、上記注目度スコア、及びプレイヤの視点からの上記候補オブジェクトの奥行き距離に基づいて、それぞれの上記候補オブジェクトをレンダリングするための上記処理部のリソース配分を決定するステップと、を備え、各ステップは上記サーバ又は上記電子装置により実行される方法である。
【発明の効果】
【００２４】
上記のとおり本発明は、ゲームのイベント履歴を分析することによりプレイヤが次に取りうるアクションを予測し、予測したアクションが影響を及ぼすオブジェクトやアクションの実行主体となるオブジェクトを、プレイヤが注目する可能性が高いオブジェクトとして抽出し、注目する可能性が高い順に、レンダリング品質を決定するリソース（シェーダユニットなど）をより多く割り当てるものである。
【００２５】
したがって、例えばゲーム画面内に１０個の主要なオブジェクトが存在し、プレイヤが一時に注目できるオブジェクトの数は１〜３個程度であって、非注目オブジェクトのレンダリング品質を３０％程度低下させることが許容されるとき、同一のハードウェアを用いた場合、本発明を適用したゲームは、プレイヤから見たときのレンダリング品質を従来よりも１０〜３０％ほど向上させることができる。なおレンダリング品質とは、例えば１つのオブジェクトの描画に用いるポリゴン数（ＬＯＤ）及びピクセルシェーダによる色づけ処理の複雑さを意味する。
【００２６】
また本発明は、カメラなどの外部デバイスが不要であるため、標準的なスマートフォンにおいて実現することができる。カメラを用いた視線検出の方式と異なり、本発明はプレイヤの視線移動を予測するため、プレイヤの視線移動に先んじてレンダリング品質を制御することができる。
【００２７】
さらに本発明の１つの実施形態として、プレイヤの行動予測をサーバ側で実行することにより、スマートフォンに負荷をかけることなく、シェーダユニット等のＧＰＵリソース配分を実行することができる。
【図面の簡単な説明】
【００２８】
【図１ａ】本発明の１つの実施形態に係る電子装置のハードウェア構成を示す。
【図１ｂ】本発明の１つの実施形態に係るＣＰＵ及びＧＰＵを備える電子装置のハードウェア構成を示す。
【図２】本発明の１つの実施形態に係る電子装置のタッチパネルの座標軸を示す。
【図３】本発明の１つの実施形態に係る電子装置の機能ブロック図を示す。
【図４】本発明の１つの実施形態に係るＧＰＵが有するグラフィックスパイプラインを示す。
【図５】本発明の１つの実施形態に係る情報処理を示したフローチャートである。
【図６ａ】本発明の１つの実施形態に係る発生したイベントの履歴を示す。
【図６ｂ】本発明の１つの実施形態に係る発生したイベントの履歴をＮ個の連続する組み合わせに分割した様子を示す。
【図６ｃ】本発明の１つの実施形態に係る発生したイベントの履歴をＮ個の連続する組み合わせ毎に出現頻度を集計しインデックスを作成した様子を示す。
【図６ｄ】本発明の１つの実施形態に係るｓｃｏｒｅ関数に用いられるｗｉ関数の一例を示す。
【図７】本発明の１つの実施形態に係るＧＰＵリソース配分例を示す。
【図８】本発明の実施形態に係るシステムの全体構成の一例を示す。
【図９】本発明の実施形態に係るサーバのハードウェア構成を示す。
【図１０】本発明の１つの実施形態に係るシステムの機能ブロック図を示す。
【図１１】本発明の１つの実施形態に係るシステムのシステムアーキテクチャを示す。
【発明を実施するための形態】
【００２９】
以下、図面を参照して、本発明の実施形態を説明する。本実施形態に係るシステムは、ネットワークを介して複数の電子装置が接続されるシステムによって実現することができるが、一台の電子装置によっても実現することもできる。最初に一台の電子装置で実現する実施形態を説明し、その後ネットワークに接続されたシステムについて説明する。なお、ネットワークに接続されたシステムは、サーバ‐クライアントシステムを想定して説明しているが、ＰｔｏＰのようなサーバのないシステムで構成することもできる。
【００３０】
また本実施形態は主として３Ｄゲームのゲームシステムについて説明するが、他のシステムにおいて利用することもできる。本実施形態におけるゲームは、画面上に複数のオブジェクトが配置されるゲームである。例えばプレイヤは、タッチ操作によりオブジェクトを選択又は操作することができる。オブジェクトはイベントに関連するオブジェクトと、イベントに関連しないオブジェクトとを含む。特に言及がない限り、以下で単にオブジェクトという場合は、イベントに関連するオブジェクトを示すものとする。
【００３１】
イベントに関連するオブジェクトは、プレイヤが操作可能なオブジェクトと、当該プレイヤが操作可能なオブジェクトがイベントを発生させることができるオブジェクトと、当該プレイヤが操作可能なオブジェクトに対してイベントを発生させることができるオブジェクトとを含む。ここでイベントとは、ゲーム内でプレイヤの操作やゲームシステム側の処理により発生する、一つの意味とまとまりを持った処理または制御のことを示し、プレイヤの操作もしくは他のプレイヤの操作により、又はゲームの進行に伴って、イベントが発生すると、所定のゲーム処理又は制御が行われる。例えばプレイヤが操作可能な複数の味方キャラクタ（オブジェクト）や当該キャラクタと対峙する複数の敵キャラクタが画面に表示される場合、プレイヤは味方キャラクタＡ１を操作して敵キャラクタＢ１を「パンチする」というイベントを発生させることができるとすると、オブジェクトＡ１はオブジェクトＢ１を「パンチする」というイベントに関連するオブジェクトである。一方、敵キャラクタＢ２が味方キャラクタＡ２を「キックする」というイベントを発生させることができるとすると、オブジェクトＢ２はオブジェクトＡ２を「キックする」というイベントに関連するオブジェクトである。上記２つの例示に関しては、オブジェクトＢ１は「パンチする」というイベントに関連するオブジェクトであることができ、オブジェクトＡ２は「キックする」というイベントに関連するオブジェクトであることができる。このように、イベントは少なくとも１つのオブジェクトに関連するものであり、各オブジェクトは１つ以上のイベントに関連するものであることができる。また好ましくは、各オブジェクトは、それぞれを識別するための識別子が付けられる。
【００３２】
［電子装置により実現される実施形態］
図１ａは本発明の実施形態に係る電子装置１００のハードウェア構成を示すブロック図である。電子装置１００は処理部１０１、表示部１０２、接触型入力部１０３、記憶部１０４、及び通信部１０５を備える。これらの各構成部はバス１０８によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
【００３３】
電子装置１００は、好ましくはスマートフォンであるが、例えば、携帯電話、携帯型情報端末、タブレット型コンピュータ、ビデオゲーム機、携帯型ビデオゲーム機、タッチパッド等の接触型入力装置を備えるコンピュータも含まれる。
【００３４】
処理部１０１は、プログラム１０６、接触型入力部１０３からの入力データ、又は通信部１０５から受信したデータに基づいて、ゲーム処理や画像生成処理などの各種の処理を行う。処理部１０１は、電子装置１００が備える各部を制御するＣＰＵを備え、好ましくは描画処理を行うＧＰＵを備える。
【００３５】
記憶部１０４は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム１０６が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージであってもよい。着脱可能なものであっても構わない。例えば電子装置１００がスマートフォンである場合はＲＯＭ及びＲＡＭを含む。記憶部１０４には、プログラム１０６や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。当該プログラムは、オペレーティングシステム、ビデオゲーム若しくはウェブブラウザ等のユーザ入力を要求するあらゆるアプリケーションのためのプログラム、又はシェーダプログラムを含み、好ましくはゲームエンジンを含む。各種のデータには、例えばゲームに登場するオブジェクトなどの各種画像を表示するための画像データや、ゲーム中に記憶部１０４に書き込まれうる座標等のデータも含まれる。さらに記憶部１０４はイベントの履歴情報や連続的に発生したイベント履歴の頻度情報に関するデータベース１０７を含む。好ましくは、データベース１０７は、発生したイベントについての情報を含むイベント履歴情報に関するイベント履歴情報用データベースと、イベント履歴情報に基づいた連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報に関するイベント頻度情報用データベースとを有する。
【００３６】
通信部１０５はイーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク１０１へ接続する。
【００３７】
表示部（ディスプレイ）１０２は、実行されるプログラム１０６によって出力される画像を表示する。好ましくは液晶ディスプレイであるが、有機ＥＬを用いたディスプレイやプラズマディスプレイ等であってもよい。
【００３８】
処理部１０１がＣＰＵ及びＧＰＵを備える場合の１つの実施形態に係る電子装置１００のハードウェア構成を表すブロック図を図１ｂに示す。ＣＰＵ１０９はメインメモリ１１１に描画コマンドを書き込み、図示しない複数のシェーダユニットを備えているＧＰＵ１１０は描画コマンドを参照してビデオメモリ１１２上のフレームバッファに描画データを書き込み、フレームバッファから読み取った内容をそのまま表示部１０２に描画する。１つの実施例として、ＣＰＵ１０９は、プリミティブなどの描画データをメインメモリ１１１上のバッファに格納し、例えばＯｐｅｎＧＬ（登録商標）の管理下のビデオメモリ１１２上のバッファに描画データを転送し、ＧＰＵ１１０は、グラフィックスパイプラインにより処理した後、そのまま表示部１０２に描画する。
【００３９】
接触型入力部１０３は例えばタッチパッドのように、プレイヤがタッチした位置に基づいた入力を電子装置１００に与える。好ましくは表示部１０２と接触型入力部１０３は一体としたタッチパネルであるが、別の位置に配置される別個の形態であっても構わない。例えば表示部１０２と接触型入力部１０３が一体となったタッチパネルである場合は、表示部１０２へのプレイヤのタッチによる入力を受け付け、接触型入力部１０３はプレイヤがタッチした位置に対応する座標を検出し、電子装置１００に与える。検出方式は、例えばタッチパネルにおける静電容量方式などのあらゆる方式を含みうるが、接触型入力部１０３は、２以上の点を同時にプレイヤの指などがタッチしたことを検出し、検出した位置に対応する各座標情報を電子装置１００に与えられるものであることが好ましい。
【００４０】
ここでタッチとは、指などが接触型入力部１０３、本実施形態においてはタッチパネルに接触する動作や状態である。なお本実施形態においては、プレイヤによるタッチはプレイヤの指によるものとして説明するが、どの指によるタッチでもよく、又は例えばスタイラスペンのような、その他のものであってもよい。一方、リリースとは指などがタッチパネルから離れる動作や状態である。プレイヤは主に電子装置１００をタッチやリリースすることにより操作する。このようなタッチ操作には、タッチ、ロングタッチ、マルチタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、及びフリックなどを含むことができる。例えばタップは、タッチに続いて、タッチ位置を移動させずにリリースをする操作である。好ましくは、処理部１０１が、指などのタッチパネルへの接触、接触位置、接触時間又は接触回数に基づいてタッチ操作の種類の一部又は全部を判別する。
【００４１】
例えば電子装置１００としてスマートフォンを用いた場合、表示部１０２と接触型入力部１０３は一体となったタッチパネル１１３である。接触型入力部１０３は、第１軸及び第１軸に実質的に直交する第２軸からなる座標平面を用いて、座標により位置が指定される。好ましくは図２に示すように、第１軸は略長方形であるタッチパネル１１３（接触型入力部１０３）の短辺と、第２軸はタッチパネル１１３の長辺と、実質的に平行であって、第１軸方向の座標軸（横軸）及び第２軸方向の座標軸（縦軸）により座標（ｘ，ｙ）として表される。処理部１０１はプログラム等を用いて、タッチパネル１１３により検出するタッチ位置を当該座標（ｘ，ｙ）データとして取得することができる。例えばタッチパネル１１３の検出精度が６４０ドット×１，１３６ドットである場合は、横軸方向に６４０ドット、縦軸方向に１，１３６ドットの分解能を有することができる。この場合のドットは１つの点であってもよいし、一定の領域（セル）であっても構わない。ただしドット間の距離は、通常タッチパネル（電子装置）毎に異なることに注意が必要である。本明細書において、特に言及が無い限り、「距離」は座標上の距離を表すものとする。なお図２に示す座標設定はこの一例であり、座標軸はプログラムにより設定することもできる。また極座標を設定することもできるし、座標変換により他の座標系を設定することもできる。
【００４２】
また例えば、表示部１０２と接触型入力部１０３が別の位置に配置される別個の形態である場合、接触型入力部１０３には上記のように座標を設定し、表示部１０２には接触型入力部１０３の座標に対応する座標を設定することができる。
【００４３】
図３は本発明の電子装置の機能ブロック図の一例を示す。電子装置１００は、タッチ位置検出手段３０１、画面表示手段３０２、候補オブジェクト選択手段３０３、注目度スコア決定手段３０４、リソース配分決定手段３０５、記憶手段３０６、通信手段３０７、及び一時記憶手段３０８を備える。
【００４４】
タッチ位置検出手段３０１は、接触型位置入力部１０３上へのプレイヤによるタッチ位置を検出し、電子装置１００に与える機能を有する。
【００４５】
画面表示手段３０２は、電子装置１００による出力を表示部１０２へ表示する機能を有し、オブジェクトを表示部１０２へ表示する。例えば図１ｂに示すビデオメモリ上のフレームバッファに書き込まれたデータを表示部１０２に描画する。
【００４６】
候補オブジェクト選択手段３０３は、画面表示手段３０２により表示されるオブジェクトから、ゲームのイベントに関連するオブジェクトを選択する機能を有する。候補オブジェクト選択手段３０３は、イベントに関連するオブジェクトのうち、プレイヤが操作可能なオブジェクトのみを選択することもできるし、又はプレイヤが操作可能なオブジェクト及び当該プレイヤが操作可能なオブジェクトに対してイベントを発生させることができるオブジェクトのみを選択することもできる。
【００４７】
注目度スコア決定手段３０４は、選択された候補オブジェクト、直前に発生したイベント又はイベント列（２つ以上の連続したイベント）、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定することにより、それぞれの候補オブジェクトがプレイヤにより注目される度合いを示す注目度スコアを決定する機能を有する。なお直前に発生したイベントとは、プレイヤが操作している現時点までに発生したイベントのうち最新のイベントをいう。
【００４８】
発生に関する重みは、次に発生する可能性を示すスコアであることもできるし、発生に関する優先度であることもできる。例えば発生に関する重みが発生する可能性を示すスコアである場合は、候補イベントそれぞれの発生に関する重みとして候補イベントそれぞれのスコアを算出する。当該スコアは、例えばイベント履歴の頻度情報に基づいて算出されるものであり、候補イベントそれぞれが発生する可能性を数値で表したものである。この場合、候補オブジェクトそれぞれの注目度スコアは、当該スコアに基づいて算出されるものであり、好ましくは正規化されたものである。また前述のとおり、候補オブジェクトは２つ以上の候補イベントに関連することがある。この場合は、２つ以上の候補イベントに関連する候補オブジェクトの注目度スコアは、候補イベントそれぞれのスコアを加算した値に基づいて算出することができる。
【００４９】
リソース配分手段３０５は、決定又は算出された注目度スコア、及びプレイヤの視点からの候補オブジェクトの奥行き距離に基づいて、それぞれの候補オブジェクトをレンダリングするための処理部１０１のリソース配分を決定する機能を有する。オブジェクトをレンダリングするための処理部１０１のリソース配分とは、ＧＰＵ１１０におけるシェーダユニットの配分のことであり、この配分の結果、例えば当該オブジェクトの描画に用いるポリゴン数が変化する。またプレイヤの視点からのオブジェクトの奥行き距離に基づいたリソース配分としては、視点カメラからの距離に応じてポリゴン数を減少させるＬＯＤ（Ｌｅｖｅｌ  ｏｆ  Ｄｅｔａｉｌ）を含むことができる。なおレンダリングするための処理部１０１のリソースは、リソース配分手段３０５により動的に配分されるリソースと、静的に配分されるリソースとを含む。例えば、候補オブジェクト以外のオブジェクトは、静的に配分されるリソースを用いてレンダリングされるが、当該オブジェクトは、好ましくは、リソース配分手段３０５により各候補オブジェクトに配分されるリソースよりも少ないリソースでレンダリングされる。なお候補オブジェクトがない場合、処理部１０１のリソースはすべて静的に配分されるリソースとなる。
【００５０】
記憶手段３０６は、プログラムやデータ等を記憶部１０４へ格納する機能を有する。記憶手段３０６が含む一時記憶手段３０８は、一時的にデータを蓄えるバッファ機能を有し、オブジェクトと関連するイベントの発生した履歴をバッファに蓄積する。蓄積されたイベント履歴情報は、好ましくは一定期間が経過するまで又は一定個数が蓄積されるまで、プレイヤが操作している現在までのイベント履歴情報を蓄積した状態にある。記憶手段３０８は、バッファに蓄積されたイベント履歴情報を、好ましくは定期的に、イベント履歴情報用データベースへ蓄積する。さらに記憶手段３０８は、イベント履歴情報に基づいて連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を集計し、当該出現頻度を示すイベント頻度情報をイベント頻度情報用データベースへ格納する。注目度スコア決定手段３０４は、バッファに蓄積されたイベント履歴情報をクエリとしてデータベース１０７に照会することで、注目度スコア決定に必要なイベント履歴情報又はイベント頻度情報を取得することができる。なお、本実施形態においては、イベント履歴情報とイベント頻度情報はそれぞれ別々のデータベースに格納されることが好ましいが、イベント頻度情報はイベント履歴情報に基づき作成される情報ゆえ、イベント履歴情報はイベント頻度情報を包含する広い概念の構成要素として解釈することができる。ただし、イベント頻度情報が作成される際には、本発明が実施されるゲームの種類や性質なども考慮し、何らかの別の情報をイベント履歴情報に加味しながら作成してもよい。イベント頻度情報は必ずしもイベント履歴情報のみから作成される情報ではない。例えば、ゲーム内において重要な意味を持つイベントに強い重みをかけることにより、当該イベントを含む頻度情報を優先的に扱う処理を実現してもよい。
【００５１】
通信手段３０７は無線通信、有線通信を行う機能を有する。記憶手段３０８は、通信手段３０９を介して、サーバ、光学ディスク等からプログラム又はデータを取得して、格納することができる。
【００５２】
電子装置１００は、プログラム１０６が実行されることによってこれらの機能が実現される。したがって、一つの手段の一部の機能を他の手段が有してもよい。なお、これらの機能の一部は電子回路等を構成することによっても実現できる。
【００５３】
図４は、本発明の１つの実施形態に係る、ＧＰＵ１１０が有する３次元画像を演算するためのグラフィックスパイプラインを示す図であり、頂点シェーダ（バーテックスシェーダ）４０１、ジオメトリシェーダ４０２、ラスタライザ４０３、ピクセルシェーダ４０４、及び出力合成４０５を含む。グラフィックスパイプラインは説明の都合上例示したものであり、当該パイプラインは、より少ないステージであることもでき、さらなるステージを含むこともでき、又は代替的なステージを含むこともできる。
【００５４】
頂点シェーダ４０１は、頂点に対してその属性情報に変更を加えるものである。頂点の属性情報は位置、頂点カラー、法線、アニメーションのための情報やテクスチャマッピングのためのテクスチャ座標などにより構成される。頂点シェーダ４０１のステージで仮想カメラから見た座標系への変換などの座標系の変換やキャラクターアニメーションのための形状変換処理などが行われる。また、頂点シェーダ４０１でライティング演算が行われることもある。頂点シェーダ４０１で計算された頂点は通常はジオメトリシェーダ４０２に渡されるか、そのままピクセルシェーダ４０４に渡される。
【００５５】
ジオメトリシェーダ４０２は、ラスタライザ４０３やピクセルシェーダ４０４に渡されるオブジェクト内の頂点の集合を加工するために使用される。ジオメトリシェーダ４０２では実行時に頂点数を増減させることが可能となる。この場合入力されるプリミティブに属する頂点の数が、出力されるプリミティブでは変更されることもある。またジオメトリシェーダ４０２では、複数のステージを通じて処理が行われる場合も存在する。すなわち、一度ジオメトリシェーダ４０２にて処理を行われたプリミティブがＧＰＵのキャッシュなどに保存され、再度ジオメトリシェーダ４０２に入力されるような処理である。またグラフィックスパイプラインは、頂点シェーダ４０１又はジオメトリシェーダ４０２の出力をラスタライザ４０３やピクセルシェーダ４０４に渡さずに、ビデオメモリ上のバッファなどのメモリリソースに書き出した後、ＣＰＵを介することなく頂点シェーダ４０１又はジオメトリシェーダ４０２に再入力することもできる。
【００５６】
ラスタライザ４０３は、ピクセルシェーダ４０４のためにプリミティブを準備し、ピクセルの集まりに分割する処理を行う。例えば、頂点によって構成されるプリミティブ情報からフラグメントを生成する。各フラグメントには位置情報だけではなく法線やテクスチャ座標などの情報も付随する。これらの情報は頂点の位置情報を元に補間計算により求められる。
【００５７】
ピクセルシェーダ４０４は、ラスタライザ４０３で生成されたピクセルを順次処理していく。ここでは、ピクセルに対する最終的な色を決定するための処理（陰影付け）が行われる。陰影付けのための処理としてはテクスチャマッピング、ライティングなどの処理などが含まれる。また、その他フラグメント単位の処理として様々な処理が行われる。
【００５８】
出力合成４０５は、最終結果を生成するために（ピクセルシェーダ値、深さ及びステンシル情報などの）種々のタイプの出力データを組み合わせる。
【００５９】
一般的にグラフィックスパイプラインは、プログラマブルステージと、固定関数ステージとを含む。例えば、グラフィックスパイプラインのあるステージに関連するオペレーションはプラグラマブルシェーダによって実行され、グラフィックスパイプラインの他のステージに関連する他のオペレーションは固定関数ユニットなどの非プログラマブルな固定関数ハードウェアユニットによって実行される。
【００６０】
図４においては、例えば頂点シェーダ４０１、ジオメトリシェーダ４０２、及びピクセルシェーダ４０４はプログラマブルシェーダであり、これらのシェーダをそれぞれ個別に構成することもできるし、これらを統合して統合シェーダとして構成することもできる。
【００６１】
なお一般的にゲームなどのアプリケーションにおいては、ゲームエンジンがグラフィックスコマンドを予め想定された所定の時間間隔で生成してＧＰＵへ送る。例えば電子装置１００がスマートフォンである場合、一定時間（例えば１／３０秒、１／６０秒）毎に画面更新を行う。またゲームエンジンは、視点カメラからの距離に応じてポリゴン数を減少させる従来から知られているＬＯＤを実装することができるが、シェーダプログラムが実装することもできる。
【００６２】
図５は、本発明の１つの実施形態に係る情報処理を示したフローチャートである。本フローチャートの情報処理は、好ましくはシェーダプログラム（ＧＰＵ側）により実行される。ただし、一部又は全部のステップがアプリケーション（ＣＰＵ側）により実行されてもよい。
【００６３】
本フローチャート開始時においては、ＣＰＵ側が描画コマンドをメインメモリに書き込むとともに、頂点の属性情報をビデオメモリ内に確保したバッファオブジェクトに格納した状態にある。ステップ５０１において、表示部に描画されるオブジェクトからゲームのイベントに関連するオブジェクトである候補オブジェクトの有無を判定する。表示部に描画されるオブジェクトとは、これからＧＰＵにより描画されるオブジェクトである。候補オブジェクトが有る場合、ステップ５０２において候補オブジェクトを選択する。なお各候補オブジェクトは、バッファオブジェクトのＩＤを有することができる。候補オブジェクトが無い場合、当該フローは終了し、上記の既存のグラフィックスパイプラインにより処理が行われる。本フローは、好ましくは、前述した画面更新時間周期で実行する。
【００６４】
１つの実施例として、候補オブジェクトは、表示部に描画されるオブジェクトのうちゲームのイベントに関連するオブジェクトであって、かつプレイヤが操作可能なオブジェクトであることができる。この場合、プレイヤが操作するオブジェクトに対して重点的にレンダリングするためのリソース配分を行うことができる。
【００６５】
続いてステップ５０３において、候補オブジェクトに関連するイベントである候補イベントのそれぞれの発生に関する重みを決定する。本フローチャートにおいては、発生に関する重みは、次に発生する可能性を示すスコアであり、選択された候補オブジェクト、直前に発生したイベント又はイベント列、及び発生したイベントについての情報を含むイベント履歴情報に基づいて、候補イベントそれぞれのスコアを算出する。
【００６６】
本実施形態においては、図６ａに示すように発生したイベントの履歴を記憶する。記憶されるイベントの履歴はオブジェクトと関連するものである。１つの実施例として、候補オブジェクトが表示部に描画されるオブジェクトのうちゲームのイベントに関連するオブジェクトであって、かつプレイヤが操作可能なオブジェクトである場合、記憶されるイベントの履歴はプレイヤが操作可能なオブジェクトと関連するイベントの履歴である。一時記憶手段３０８は、発生したイベントの履歴をイベント履歴情報としてバッファに蓄積し、記憶手段３０８は、蓄積されたデータをイベント履歴情報用データベースに格納する。好ましくは定期的に蓄積されたデータをイベント履歴情報用データベースに格納する。記憶手段３０８は、イベント履歴情報から、連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を集計し、当該出現頻度を示すイベント頻度情報をイベント頻度情報用データベースに格納する。ただし前述のとおり、イベントはオブジェクトと関連するものであるため、実施形態によってはオブジェクトそのものと等価の概念を有することができる。この場合、例えば図６ａに示す記憶されるイベントの履歴はオブジェクトの履歴であることもできる。なお記憶手段３０８は、バッファに蓄積されたイベント履歴情報をイベント履歴情報用データベースに格納しないようにすることもできる。この場合イベント履歴情報用データベースには予め取得されたイベント履歴情報が格納される。
【００６７】
スコアの算出においては、バッファに蓄積されたイベント履歴情報の一部又は全部に候補イベントを加えたイベント列をクエリとしてイベント頻度情報用データベースに照会する。
【００６８】
ステップ５０３は、過去のイベント履歴情報又は過去のイベント履歴の頻度情報に基づいた行動予測方法の処理全般を含むものであるが、１つの実施形態としてｎ‐ｇｒａｍを用いたスコア算出方法を説明する。
【００６９】
最初にデータベース１０７がイベント頻度情報として格納するデータについて説明する。直前の（Ｎ−１）個のイベントログに基づいた次に発生するイベントを予測するモデルとして、１つ前（Ｎ＝２）、２つ前（Ｎ＝３）、３つ前（Ｎ＝４）、といったイベントログの結びつきを分析するために、遡及回数に応じてイベント頻度情報を蓄積するためのインデックスを作成する。前述のとおりイベントの履歴は、図６ａに示すように記憶されているが、図６ａの例では、Ａ→Ｂ→Ａ→Ｂ→Ｃ→Ｄという順序でイベントの履歴が記録されている。ｎ‐ｇｒａｍモデルでは、図６ｂに示すように、この操作履歴を、２‐ｇｒａｍ、３‐ｇｒａｍ、４‐ｇｒａｍ…というように、Ｎ個の連続する組み合わせ（イベント列）として分割し、それぞれの組み合わせの出現頻度を集計する。例えば、Ａ→Ｂ→Ａ→Ｂ→Ｃ→Ｄという操作履歴は、２‐ｇｒａｍでは、ＡＢ、ＢＡ、ＡＢ、ＢＣ、ＣＤという２要素の５種類の組み合わせに分割され、それぞれ対応する頻度情報に加えられる。３‐ｇｒａｍでは、ＡＢＡ、ＢＡＢ、ＡＢＣ、ＢＣＤという３要素の４種類の組み合わせに分割され、それぞれ対応する頻度情報に加えられる。このように、連続するＮ個の履歴を分割して出現頻度を計量することにより、図６ｃに示すように、出現頻度が高い組は頻繁に発生するイベントの組み合わせであることを意味するインデックスを作成することができる。例えば、図６ｃに示すインデックスのデータ構造Ｈは、次の通りである。
H:={<ngram1, frequency1>,<ngram2, frequency2>,…,<ngramk, frequencyk>}
ここで、ｎｇｒａｍｋはｋ種類目のｎ‐ｇｒａｍであり、ｆｒｅｑｕｅｎｃｙｋはそれに対応する頻度の値である。
【００７０】
続いてイベント頻度情報の照合方法について説明する。候補オブジェクトＸ、Ｙ、Ｚが選択されたときのスコア算出方法を示す。例えば、候補オブジェクトＸに関連するイベントは３つ（Ｘ１、Ｘ２、Ｘ３）あり、候補オブジェクトＹに関連するイベントは２つ（Ｙ１、Ｙ２）あり、候補オブジェクトＺに関連するイベントは１つ（Ｚ１）あるとすると、各候補オブジェクトに関連する候補イベントそれぞれを末尾に追加したｎ‐ｇｒａｍのキーを生成する。図６ａに示すように、Ａ→Ｂ→Ａ→Ｂ→Ｃ→Ｄという順序でプレイヤが操作を行ったとき、例えば候補イベントＸ１から生成されるｎ‐ｇｒａｍは、ＤＸ１（２‐ｇｒａｍ）、ＣＤＸ１（３‐ｇｒａｍ）、ＢＣＤＸ１（４‐ｇｒａｍ）、以下、Ｎ個の組み合わせまで繰り返し組み合わせを生成する。
【００７１】
本システムは、生成したｎ‐ｇｒａｍをクエリとして、これまでにイベント頻度情報用データベースが蓄積したすべての頻度情報との照合を行い、出現頻度が高ければ高いほど、また、ｎ‐ｇｒａｍのｎが大きければ大きいほど、候補イベントへ高いスコア付けを行う。１つの実施形態に係るスコア算出のための関数ｓｃｏｒｅを式（１）に示す。
0005899364.tif 000002
ここで、ｐはイベント履歴における現時点までの（Ｎ−１）個のイベント列であり、ｘは候補イベントであり、Ｈはこれまでに蓄積したすべての頻度情報のデータベースである。ｓｃｏｒｅ関数は、内部で２つの関数を用いている。１つ目の関数は、ｑｕｅｒｙ（ｐ，ｉ，ｘ）である。この関数Ｑ（ｑｕｅｒｙ（ｐ，ｉ，ｘ））は、イベント履歴における現時点までの（Ｎ−１）個のイベント列の末尾から、ｎ−１個の要素を取り出し、その取り出した要素の末尾にｘを追加した新しい組み合わせを生成する。これにより、前述のようなクエリとなるｇｒａｍを生成することができる。２つ目の関数はｆｒｅｑ（Ｈ，Ｑ）である。この関数は、ｑｕｅｒｙ（）関数により生成されたクエリが、頻度情報のデータベース内に出現する頻度を計算する関数である。また本実施形態においては、より長い組み合わせ（イベント列）にマッチすることは、プレイヤの意図により明確にマッチすると考え、インデックスのｎが大きいほど大きい係数を掛けることが好ましい。この係数が、数式中のｗｉである。ｉは、２からＮまで増加する変数であるため、ｉが増加すればするほど強くスコアに反映させる関数としてｗｉを実装することができる。例えば、図６ｄに示すように、ｗｉはｉが増加すればするほど非線形に上昇する関数であることができる。
【００７２】
ステップ５０４において、上記のとおり算出された候補イベントのスコアを用いて、各候補オブジェクトの注目度スコアを決定する。１つの実施例として、候補オブジェクトの注目度スコアは、各候補オブジェクトに関連する候補イベントのスコアを加算し、正規化することで、算出する。また他の１つの実施例として、候補オブジェクトの注目度スコアは、各候補オブジェクトに関連する候補イベントのスコアを加算し、加算した候補イベントの数に応じた所定の係数を掛けあわせ、正規化することで、算出する。
【００７３】
続いてステップ５０５において、決定又は算出された注目度スコアを用いて、３Ｄオブジェクトをレンダリングするためのリソース配分を決定するための指標値を算出する。本実施形態では、以下の式で定義されるＩｎｔｅｎｔｉｏｎ‐Ａｗａｒｅ  ＬＯＤを、リソース配分を決定するための指標値として用いる。
0005899364.tif 000003
ここで、ｉｎｔｅｎｔｉｏｎ‐ｓｃｏｒｅ関数は、式（１）のｓｃｏｒｅ関数に基づいて算出された、候補オブジェクトｘの注目度スコアを示すものである。ｄｉｓｔａｎｃｅ関数は、ゲーム空間上での視点カメラからの距離に応じた重み付けを示すものであって、従来のＬＯＤに対応したものである。これらを掛けあわせることにより、本発明のプレイヤの注目度と従来のＬＯＤに対応した新たな指標値を算出することができる。
【００７４】
続いてステップ５０６において、算出された指標値に基づいてＧＰＵリソース配分を行う。ＧＰＵリソース配分としては、例えば候補オブジェクトの描画に用いるポリゴン数の配分がある。具体的なリソース配分方法としては、例えばオブジェクトに付けられた識別子と、バッファオブジェクト内のＩＤとを結びつけるルックアップテーブルを用意し、当該ルックアップテーブルと算出された指標値を用いて、ジオメトリシェーダにおいてプリミティブを動的に増減することで実現される。ただし、前述のとおり、ステップ５０６において動的に配分されるリソースは、レンダリングするための処理部のリソースすべてではないことに留意する。なおプリミティブはポリゴン（典型的には三角形）、法線ベクトル、点などを含み、プリミティブが三角形の場合は、各三角形は３つの頂点によって画定されるものである。例えばバッファオブジェクトに最も高精細の３Ｄモデルの頂点データが格納される場合、ジオメトリシェーダにおいてプリミティブを動的に削減する。
【００７５】
ここで１つの実施例として、ＧＬＳＬを用いた実装方法について述べる。ＯｐｅｎＧＬ（登録商標）では、トランスフォームフィードバック機能として、頂点シェーダやジオメトリシェーダでの計算結果を、ＣＰＵを介さずに頂点バッファオブジェクト（ＶＢＯ）に格納する機能を提供している。頂点バッファオブジェクトの内容は頂点シェーダに入力する頂点属性として使えるため、このトランスフォームフィードバック機能により頂点属性をＧＰＵ単独で更新／削減することが出来るようになる。したがって、本発明による動的、かつ、リアルタイムの制御を、ＧＰＵ内に閉じて実装することができる。
【００７６】
１つの実施例としてのＧＰＵリソース配分例を図７に示す。図７のグラフは、一度に６０万ポリゴンを表示可能なＧＰＵを有するスマートフォンを用いて、ゲームキャラクタを描画したときの、従来のレンダリング方式（グラフ右）と、本発明によるレンダリング方式（グラフ左）を比較したものである。本発明と、従来方式は、両者が同一のハードウェアを用いるとき、１画面中に表示される総ポリゴン数は同一である。したがって、図７の積み上げグラフでは、両者の合計値はほぼ同一となっている。一方、１つのキャラクタの描画に用いるポリゴン数の最大値は大きく異なり、本発明によるレンダリングでは、プレイヤが注目するキャラクタのみを８万ポリゴンで描画可能である一方、従来のレンダリング方式では、すべてのキャラクタを一様に描画するため、ポリゴン数の最大値は６千となっている。すなわち、本発明により、同一のハードウェアにおいて、プレイヤが実感するレンダリング品質を従来方式の１０倍以上にすることができる。
【００７７】
［システムにより実現される実施形態］
図８は本発明の１つの実施形態に係るシステムの全体構成の一例を示す。システム８００は、複数の電子装置１００と、サーバ９００と、を含んで構成される。これらはネットワーク８０１によって互いに接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。また複数の電子装置のうちの一台をサーバとしても機能させる場合、システム８００はサーバ９００を含まない構成とすることもできる。またシステム８００は、さらにデータベース８０２を含むこともできる。システム８００がデータベース８０２を含む場合、データベース８０２はイベント履歴情報や連続的に発生したイベント履歴の頻度情報を格納し、電子装置１００又はサーバ９００はデータベース８０２に照会することで、所望のデータを取得することができる。以下では主としてサーバ９００内のデータベースの使用を想定しているが、ネットワークに直接接続されたデータベース８０２を使用した場合においても同様である。
【００７８】
図９は本発明の実施形態に係るサーバ９００のハードウェア構成を示すブロック図である。サーバ９００は、処理部９０１、表示部９０２、入力部９０３、記憶部９０４及び通信部９０５を備える。これらの各構成部はバス９０８によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
【００７９】
処理部９０１は、サーバ９００が備える各部を制御するプロセッサを備えており、記憶部９０４をワーク領域として各種処理を行う。表示部９０２は使用者に情報を表示する機能を有する。入力部９０３はキーボードやマウス等のように使用者からの入力を受け付ける機能を有するものである。
【００８０】
記憶部９０４は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム９０６が記憶される。ただしハードディスクについては、情報を格納できるものであればいかなる不揮発性ストレージであってもよい。着脱可能なものであっても構わない。記憶部９０４には、プログラム９０６や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。さらに記憶部９０４はイベント履歴情報や連続的に発生したイベント履歴の頻度情報に関するデータベース９０７を含むこともできる。この場合データベース９０７は、好ましくは、発生したイベントについての情報を含むイベント履歴情報に関するイベント履歴情報用データベースと、イベント履歴情報に基づいた連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を示すイベント頻度情報に関するイベント頻度情報用データベースとを有する。通信部９０５はイーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク９５０へ接続する。
【００８１】
サーバ９００は、プログラム９０６が実行されることによって様々な機能が実現されるが、これらの機能の一部は電子回路等を構成することによっても実現できる。
【００８２】
電子装置１００のハードウェア構成は図１ａに示すとおりである。
【００８３】
図１０は本発明のシステムの機能ブロック図の一例を示す。図１０が示す各機能は、図３に示すものと同等の機能を有する。電子装置１００及び／又はサーバ９００が図１０に示す各種機能を備えることにより、システム８００は、図１０に示す各種機能を実現することができる。以下の実施形態においては電子装置１００又はサーバ９００がデータベース１０７又は９０７を含む場合について説明するが、前述のとおり、システム８００は、電子装置１００やサーバ９００とは別に、ネットワークに接続されたデータベース８０２を含むことができ、この場合、電子装置１００やサーバ９００はデータベース８０２からデータを取得することができる。
【００８４】
１つの実施形態に係るシステムとして、電子装置１００は、タッチ位置検出手段１００１、画面表示手段１００２、候補オブジェクト選択手段１００３、リソース配分決定手段１００５、記憶手段１００６、通信手段１００７、及び一時記憶手段１００８を備え、サーバ９００は、注目度スコア決定手段３０４、記憶手段１００６、及び通信手段１００７を備える。本実施形態においては、データベース９０７を用いることを想定しており、データベース１０７及び８０２を含まない構成とすることが好ましい。例えばシステム８００は、図５のフローチャートに示す情報処理を実行することができるが、この場合、ステップ５０３及び５０４以外を電子装置１００が実行し、ステップ５０３及び５０４をサーバ９００が実行する。サーバ９００は、ステップ５０３及び５０４で決定された注目度スコアを電子装置１００へ送信し、電子装置１００は注目度スコアを受信することで、ステップ５０５以降の処理を継続して実行することができる。
【００８５】
ここでイベント履歴情報については、一時記憶手段１００８により電子装置１００のバッファに蓄積され、電子装置１００は通信手段１００７により蓄積されたデータをサーバ９００へ、好ましくは定期的に、送信し、記憶手段１００８は受信したデータをデータベース９０７が有するイベント履歴情報用データベースに格納する。さらに記憶手段１００６は、イベント履歴情報から、連続する２つ以上のイベントからなるイベント列のパターンごとの出現頻度を集計し、当該出現頻度を示すイベント頻度情報をデータベース９０７が有するイベント頻度情報用データベースに格納することができる。
【００８６】
他の１つの実施形態に係るシステムとして、電子装置１００はデータベース１０７を備えず、記憶手段１００６におけるデータベースに関する機能以外の各機能を備え、サーバ９００はデータベース９０７を備え、記憶手段１００６及び通信手段１００７の機能を備える。例えばシステム８００は、図５のフローチャートに示す情報処理を実行することができるが、この場合、電子装置１００がすべてのステップを実行する。ただしステップ５０４においては、イベント履歴情報及び／又はイベント頻度情報をデータベース９０７に照会し、所望のデータを取得することで注目度スコアを決定する。イベント履歴情報は、一時記憶手段１００８により電子装置１００のバッファに蓄積され、電子装置１００は通信手段１００７により蓄積されたデータをサーバ９００へ、好ましくは定期的に、送信し、記憶手段１００６は受信したデータをデータベース９０７が有するイベント履歴情報用データベースに格納する。
【００８７】
上記のとおり、本実施形態に係るシステムは、一台の電子装置によっても、ネットワークを介して複数の電子装置が接続されるシステムによっても実現することができる。当該システムは、図１０に示す機能を有するものであるが、１つの実施形態に係るシステムアーキテクチャ１１００は、図１１に示す６つのモジュールから構成することができる。このようにモジュール化を行うことにより、一部のモジュールを変更して各種のゲームに適用することが可能になる。
【００８８】
操作頻度データベース１１０１は、連続的に行われた操作の頻度情報又は連続的に発生したイベントの頻度情報を格納するデータベースであり、データベース９０７などに対応し、記憶手段１００６の一部に対応する機能を有するものである。
【００８９】
直近操作（イベント）バッファ１１０２は、プレイヤの直前の（Ｎ−１）個の操作履歴又はイベント履歴を記録するバッファである。本モジュールは、記憶部が含むバッファに対応し、前述した記憶手段９０８の一部や一時記憶手段９１１に対応する機能を有するものである。
【００９０】
候補オブジェクト選択１１０３は、画面上で注目度に応じたＬＯＤ制御の対象となるオブジェクトを選択するモジュールである。本モジュールは、例えば、背景の一部となる木々やゲームと関係の無いキャラクタではなく、プレイヤが操作するキャラクタやゲームに関わる敵キャラクタを、候補として選択するものであり、候補オブジェクト選択手段１００３に対応する機能を有するものである。ゲーム開発者は、これらの３Ｄオブジェクトをゲーム内に実装する際、本発明によるＬＯＤ制御の対象となるオブジェクトにタグ付けを行うことが望ましい。
【００９１】
行動予測エンジン１１０４は、プレイヤの次の行動を予測するソフトウェアモジュールであり、注目度スコア決定手段１００４の一部に対応する機能を有するものである。Ｉｎｔｅｎｔｉｏｎ-Ａｗａｒｅ  ＬＯＤ算出１１０５は、式２で示す指標値を算出するものであり、注目度スコア決定手段１００４の一部に対応する機能を有するものである。
【００９２】
ＧＰＵ資源配分（プリミティブ削減）は、ジオメトリシェーダを用いて、当該バッファ内のプリミティブを動的に削減するものであり、リソース配分決定手段１００５に対応する機能を有するものである。本発明の１つの実施形態では、バッファ内に、最も高精細の３Ｄモデルが格納されていることを前提としている。すなわち、本発明によるＩｎｔｅｎｔｉｏｎ-Ａｗａｒｅ  ＬＯＤの適用処理は、バッファ内の３Ｄモデルから、プリミティブを削減する処理として実現される。
【００９３】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００９４】
１００  電子装置
１０１、９０１  処理部
１０２、９０２  表示部
１０３、９０３  入力部
１０４、９０４  記憶部
１０５、９０５  通信部
１０６、９０６  プログラム
１０７、９０７  データベース
１０８、９０８  バス
１０９  ＣＰＵ
１１０  ＧＰＵ
１１１  メインメモリ
１１２  ビデオメモリ
１１３  タッチパネル
３０１、１００１  タッチ位置検出手段
３０２、１００２  画面表示手段
３０３、１００３  候補オブジェクト選択手段
３０４、１００４  注目度スコア決定手段
３０５、１００５  リソース配分決定手段
３０６、１００６  記憶手段
３０７、１００７  通信手段
３０８、１００８  一時記憶手段
４０１  頂点シェーダ
４０２  ジオメトリシェーダ
４０３  ラスタライザ
４０４  ピクセルシェーダ
４０５  出力合成
８００  システム
８０１  ネットワーク
８０２  データベース
９００  サーバ
１１００  システムアーキテクチャ
１１０１  操作履歴ＤＢ
１１０２  直近操作バッファ
１１０３  候補オブジェクト選択
１１０４  行動予測エンジン
１１０５  Ｉｎｔｅｎｔｉｏｎ-Ａｗａｒｅ  ＬＯＤ算出
１１０６  ＧＰＵ資源配分
【要約】
【課題】プレイヤが次に取りうるアクションを予測することで、プレイヤから見た実質的な３Ｄオブジェクトの描画品質を向上させるための最適なリソース配分を実現する。
【解決手段】本発明は、表示部及び処理部を備える電子装置に、表示部に描画されるオブジェクトから、ゲームのイベントに関連するオブジェクトを候補オブジェクトとして選択するステップと、選択された候補オブジェクト、直前に発生したイベント列、及びイベント履歴情報に基づいて、候補オブジェクトに関連するイベントである候補イベント各々の発生に関する重みを決定することにより、候補オブジェクト各々のプレイヤにより注目される度合いを示す注目度スコアを決定するステップと、注目度スコア及びプレイヤの視点からの候補オブジェクトの奥行き距離に基づいて、各候補オブジェクトをレンダリングするための処理部のリソース配分を決定するステップと、を実行させるプログラムである。
【選択図】図１ａ【図１ａ】
0005899364.tif 000004
【図１ｂ】
0005899364.tif 000005
【図２】
0005899364.tif 000006
【図３】
0005899364.tif 000007
【図４】
0005899364.tif 000008
【図５】
0005899364.tif 000009
【図６ａ】
0005899364.tif 000010
【図６ｂ】
0005899364.tif 000011
【図６ｃ】
0005899364.tif 000012
【図６ｄ】
0005899364.tif 000013
【図７】
0005899364.tif 000014
【図８】
0005899364.tif 000015
【図９】
0005899364.tif 000016
【図１０】
0005899364.tif 000017
【図１１】
0005899364.tif 000018