プログラム、情報記憶媒体および画像生成システム
【課題】複数の仮想カメラによって種々の画像を生成することができる画像生成システムを提供すること。
【解決手段】ゲームシステム10は、制限範囲が設定されることにより第1の仮想カメラ212が撮影することができない範囲のオブジェクト空間200を第2の仮想カメラ214が撮影するように、第1の仮想カメラ212と第2の仮想カメラ214とを連動させて制御する。そしてゲームシステム10は、第1の仮想カメラ212と第2の仮想カメラ214とを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画する。
【解決手段】ゲームシステム10は、制限範囲が設定されることにより第1の仮想カメラ212が撮影することができない範囲のオブジェクト空間200を第2の仮想カメラ214が撮影するように、第1の仮想カメラ212と第2の仮想カメラ214とを連動させて制御する。そしてゲームシステム10は、第1の仮想カメラ212と第2の仮想カメラ214とを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体および画像生成システムに関する。
【背景技術】
【0002】
従来から、オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を生成する画像生成システムが知られている。このような画像生成システムには、オブジェクト空間に複数の仮想カメラを設定し、オブジェクト空間を各仮想カメラから見た画像を表示部に同時に表示させるものがある。このような画像生成システムとして、例えば車の運転者から見たオブジェクト空間を撮影する仮想カメラと、車のバックミラーに写り込むオブジェクト空間を撮影する仮想カメラとを設定するものがある。
【特許文献1】特開2000−105533号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし従来の画像生成システムでは、各仮想カメラの向きが前方向と後ろ方向に固定されつつ、各仮想カメラの位置、画角の関係も固定されていたため、複数の仮想カメラを設定しても、生成される画像を応用する場面が少ないという問題があった。
【0004】
本発明はこのような問題に鑑みてなされたものであり、その目的は、複数の仮想カメラによって種々の画像を生成することができる画像生成システムを提供することにある。
【課題を解決するための手段】
【0005】
(1)本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
前記第1の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値に制限範囲を設定することにより、前記制限範囲内の値で前記第1の制御情報を演算するとともに、前記第2の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値が前記制限範囲外の値となるように前記第1の制御情報に基づいて第2の制御情報を演算することを特徴とする画像生成システムに関係する。
【0006】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0007】
本発明では、制限範囲が設定されることにより第1の仮想カメラが撮影することができない範囲のオブジェクト空間を第2の仮想カメラが撮影するように、第1の仮想カメラと第2の仮想カメラとを連動させて制御することができる。従って本発明によれば、第1の仮想カメラと第2の仮想カメラとを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画することができる。
【0008】
(2)また本発明は、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部と、
を更に含み、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、
前記描画部は、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画するようにしてもよい。
【0009】
このようにすれば、特定オブジェクトの位置情報に基づいて第1の制御情報を演算することにより第2の描画領域に特定オブジェクトが描画されない場合に、特殊画像を第2の描画領域に描画することができる。
【0010】
(3)また本発明は、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部と、
を更に含み、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、前記第1の制御情報に基づかない制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うようにしてもよい。
【0011】
このようにすれば、特定オブジェクトの位置情報に基づいて第1の制御情報を演算することにより第2の描画領域に特定オブジェクトが描画されない場合に、第2の仮想カメラを第1の仮想カメラと連動させずに制御することによる画像を第2の描画領域に描画することができる。
【0012】
(4)また本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する位置変換処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する向き変換処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する画角変換処理の少なくとも1つを行うことを特徴とする画像生成システムに関係する。
【0013】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0014】
本発明において「第1の仮想カメラの位置と第2の仮想カメラの位置との関係」とは、例えば第1の仮想カメラの位置と第2の仮想カメラの位置との間の距離とすることができ、「第1の仮想カメラの向きと第2の仮想カメラの向きとの関係」とは、例えば第1の仮想カメラの向きと第2の仮想カメラの向きとがなす角度とすることができ、「第1の仮想カメラの画角と第2の仮想カメラの画角との関係」とは、例えば第1の仮想カメラの画角と第2の仮想カメラの画角との比とすることができる。
【0015】
本発明によれば、位置変換処理、向き変換処理、画角変換処理の少なくとも1つを行うことにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画することができる。
【0016】
(5)また本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係を変化させる位置変更処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係を変化させる向き変更処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係を変化させる画角変更処理の少なくとも1つを行うことを特徴とする画像生成システムに関係する。
【0017】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0018】
本発明において「第1の仮想カメラの位置と第2の仮想カメラの位置との関係」とは、例えば第1の仮想カメラの位置と第2の仮想カメラの位置との間の距離とすることができ、「第1の仮想カメラの向きと第2の仮想カメラの向きとの関係」とは、例えば第1の仮想カメラの向きと第2の仮想カメラの向きとがなす角度とすることができ、「第1の仮想カメラの画角と第2の仮想カメラの画角との関係」とは、例えば第1の仮想カメラの画角と第2の仮想カメラの画角との比とすることができる。
【0019】
本発明によれば、位置変更処理、向き変更処理、画角変更処理の少なくとも1つを行うことにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画することができる。
【0020】
(6)また本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記特定オブジェクトの位置情報に基づいて第1の制御情報を演算し、前記第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記特定オブジェクトの位置情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部と、
を含むことを特徴とする画像生成システムに関係する。
【0021】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0022】
本発明によれば、第1の仮想カメラと第2の仮想カメラとを特定オブジェクトに向けることにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御することができる。
【0023】
(7)また本発明は、
前記仮想カメラ制御部は、
前記特定オブジェクトの第1の部位の位置情報に基づいて第1の制御情報を演算し、前記特定オブジェクトの第2の部位の位置情報に基づいて第2の制御情報を演算するようにしてもよい。
【0024】
このようにすれば、第1の仮想カメラを第1の部位に向け、第2の仮想カメラを第2の部位に向けることにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御することができる。
【0025】
(8)また本発明は、
前記特定オブジェクトに設定された仮想的な音発生源の位置と、前記第1の仮想カメラおよび前記第2の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部に出力させる音を生成する音生成部を更に含むようにしてもよい。
【0026】
このようにすれば、第1の描画領域に描画される画像と第2の描画領域に描画される画像の変化に連動させて音を変化させることができる。
【0027】
(9)また本発明は、
仮想的な音発生源が設定されたオブジェクトの前記第1の描画領域における描画割合と前記第2の描画領域における描画割合とに応じて、音出力部に出力させる音を生成する音生成部を更に含むようにしてもよい。
【0028】
このようにすれば、第1の描画領域に描画される画像と第2の描画領域に描画される画像の変化に連動させて音を変化させることができる。
【0029】
(10)また本発明は、
前記仮想カメラ制御部は、
所与の条件が満たされた場合に、前記特定オブジェクトの位置情報に基づいて、前記第1の仮想カメラの角錐台形状の視界範囲の側面と前記第2の仮想カメラの角錐台形状の視界範囲の側面との交線が、前記特定オブジェクトの位置に対応するように前記第1の仮想カメラと前記第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うようにしてもよい。
【0030】
このようにすれば、第1の描画領域と第2の描画領域の各描画領域において特定オブジェクトを部分的に描画しつつ、第1の描画領域に描画された画像と第2の描画領域に描画された画像とを隣接させると各描画領域に部分的に描画された特定オブジェクトが接合されるように特定オブジェクトを描画することができる。
【発明を実施するための最良の形態】
【0031】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0032】
1.外観構成
図1に本実施形態のゲームシステム10(画像生成システムの一例)の外観図を示す。図1に示すゲームシステム10は、プレーヤ(操作者、観者)が携帯可能な大きさに形成されており、プレーヤがゲームシステム10を手で持ってゲームをプレーすることができるようになっている。そしてゲームシステム10は、本体下部12と本体上部14とがヒンジ部16により連結されており、本体下部12と本体上部14とがヒンジ部16の軸回りに回動可能となっている。そして本体下部12の中央部には画像を出力する第1の表示部18が設けられており、本体下部12の第1の表示部18の周囲には、プレーヤが操作情報を入力するための十字キー20、第1ボタン22〜第4ボタン28の4つのボタン、スタートボタン30、セレクトボタン32が設けられている。また本体上部14の中央部には画像を出力する第2の表示部34が設けられ、第2の表示部34の左右側には音を出力するスピーカ36(音出力部44の一例)が設けられている。またヒンジ部16には、プレーヤが音入力(音声入力)を行うためのマイク38(音入力部42の一例)が設けられている。
【0033】
本体下部12の第1の表示部18は、液晶ディスプレイとタッチパネルとが積層された構造を有しており、第1の表示部18の表示領域に対してプレーヤが行った接触操作の位置を検出できるようになっている。例えばプレーヤが、図1に示すようなタッチペンの先端を第1の表示部18に接触させると、ゲームシステム10はタッチペンの先端が第1の表示部18に接触した位置を検出する。従ってプレーヤは、第1の表示部18に接触することによっても操作情報を入力することができる。
【0034】
そしてゲームシステム10は、仮想的な3次元空間であるオブジェクト空間を仮想カメラから見た画像を第1の表示部18と第2の表示部34とに表示するとともに、プレーヤから十字キー20や第1ボタン22〜第4ボタン28や第1の表示部18に対する操作情報の入力を受け付けて、オブジェクト空間に配置設定されたキャラクタ(特定オブジェクトの一例)を育成する育成ゲームを実行する。特にゲームシステム10は、オブジェクト空間に第1の仮想カメラと第2の仮想カメラとを設定し、オブジェクト空間を第1の仮想カメラから見た画像を第1の表示部18に表示させ、それと同時に、オブジェクト空間を第2の仮想カメラから見た画像を第2の表示部34に表示させる。
【0035】
2.機能ブロック
図2は、本実施形態におけるゲームシステム10の機能ブロック図の一例である。なお、本実施形態のゲームシステム10は、図2の構成要素(各部)の一部を省略した構成としてもよい。
【0036】
操作部40は、プレーヤが操作データを入力するためのものであり、その機能は十字キー20、第1ボタン22〜第4ボタン28、レバー、ステアリングなどにより実現できる。
【0037】
音入力部42は、プレーヤが音声や手拍子などの音を入力するためのものであり、その機能はマイク38などにより実現できる。
【0038】
第1の表示部18および第2の表示部34は、ゲームシステム10により生成された画像を出力するものであり、その機能はCRTディスプレイ、液晶ディスプレイ、プラズマディスプレイ、プロジェクタ、HMD(ヘッドマウントディスプレイ)などにより実現できる。ここで本実施形態では第1の表示部18が、液晶ディスプレイと、接触位置を検出するタッチパネルとが積層された構造を有するタッチパネルディスプレイにより実現されている。従って本実施形態では、第1の表示部18が操作部40としても機能する。ここでタッチパネルは、液晶ディスプレイに積層しても画像の視認性が維持されるように光の透過率が高い素材により構成されており、例えば抵抗膜方式(4線式、5線式など)、静電容量方式などによりタッチパネルに対する接触位置を電気的に検出する。なおタッチパネルは、図1で示したタッチペンなどの入力器具による接触操作や、プレーヤの指先による接触操作を検出することができる。
【0039】
音出力部44は、ゲームシステム10により生成された音を出力するものであり、その機能は、スピーカ36、或いはヘッドフォンなどにより実現できる。
【0040】
情報記憶媒体46(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、メモリカード、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープなどにより実現できる。
【0041】
この情報記憶媒体46には、処理部100において種々の処理を行うためのプログラムやデータが記憶されている。即ち、この情報記憶媒体46には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶されている。また情報記憶媒体46には、キャラクタオブジェクトなどの種々のオブジェクトのモデルデータや、キャラクタオブジェクトの属性パラメータなどの各種データが格納されている。
【0042】
記憶部50は、処理部100や通信部60などのワーク領域となるもので、その機能はRAMやVRAMなどにより実現できる。そして、本実施形態の記憶部50は、処理部100のワーク領域として使用される主記憶部51と、第1の表示部18に表示させる画像が描画される第1の描画バッファ52(第1の描画領域の一例)と、第2の表示部34に表示させる画像が描画される第2の描画バッファ53(第2の描画領域の一例)と、オブジェクトのモデルデータが読み込まれるオブジェクトデータ記憶部54と、を含む。
【0043】
通信部60は、外部(例えばサーバや他の携帯端末)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用の集積回路(ASIC)などのハードウェアや、プログラムなどにより実現できる。
【0044】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部60を介して情報記憶媒体46(記憶部50)に配信してもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0045】
処理部100(プロセッサ)は、操作部40、音入力部42、第1の表示部18などからの操作情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの処理を行う。この処理部100は、記憶部50をワーク領域として各種処理を行い、その機能は各種プロセッサ(CPU、DSP等)、各種集積回路(IC、ASIC)などのハードウェアや、プログラムにより実現できる。
【0046】
特に、本実施形態の処理部100は、ゲーム処理部102、表示制御部104、オブジェクト空間設定部106、仮想カメラ制御部108、移動・動作制御部110、判定部112、通信制御部114、描画部120、音生成部130を含む。なお、これらの一部を省略する構成としてもよい。
【0047】
ゲーム処理部102は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。特にゲーム処理部102は、ゲームの進行を制御する処理として、オブジェクト空間(ゲーム空間)における時間の経過を計測する処理や、キャラクタオブジェクトに設定される属性パラメータを更新する処理などを行う。
【0048】
表示制御部104は、第1の表示部18および第2の表示部34に表示される画像(オブジェクト画像)の表示制御を行う。具体的には、表示すべきオブジェクト(キャラクタ(特定オブジェクトの一例)、移動体(特定オブジェクトの一例)、コース、建物、樹木、柱、壁、マップ、背景)を発生させたり、オブジェクトの表示や表示位置を指示したり、オブジェクトを消滅させたりするなどの表示制御を行う。即ち発生したオブジェクトをオブジェクトリストに登録したり、オブジェクトリストを描画部120等に転送したり、消滅したオブジェクトをオブジェクトリストから削除したりするなどの表示制御を行う。
【0049】
また表示制御部104は、プレーヤからの操作情報やプログラムなどにより、オブジェクトの移動や動作が発生した場合に、発生した移動や動作の様子を示す画像を表示するための制御を行う。特に本実施形態のゲームシステム10では、3次元のオブジェクト空間にオブジェクトを設定するようになっており、表示制御部104は、オブジェクト空間設定部106と仮想カメラ制御部108とを含む。
【0050】
オブジェクト空間設定部106は、キャラクタ、移動体、コース、建物、樹木、柱、壁、マップ、背景などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0051】
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、向きあるいは画角を制御する処理)を行う。
【0052】
例えば仮想カメラによりキャラクタを撮影する場合には、仮想カメラの向きを規定する注視点(特定オブジェクトの位置情報の一例)をキャラクタに設定し、キャラクタの位置又は回転の変化に応じて変化する注視点を仮想カメラが向くように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、後述する移動・動作制御部110で求められたキャラクタ(注視点)の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための予め決められた制御情報に基づいて仮想カメラを制御する。
【0053】
特に本実施形態の仮想カメラ制御部108は、操作部40、音入力部42、第1の表示部18などからの操作情報や、特定オブジェクトの位置情報や、所与のアルゴリズムなどに基づいて変化する第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、第1の制御情報を第2の制御情報に変換し、第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う。すなわち仮想カメラ制御部108は、第1の制御情報が変化すると直ちに第2の制御情報が変化するように、第1の仮想カメラと第2の仮想カメラについて上記の制御処理を連動させて行う。
【0054】
移動・動作制御部110は、特定オブジェクトの移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部40、音入力部42、第1の表示部18などからの操作情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、特定オブジェクトをオブジェクト空間内で移動させたり、特定オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、特定オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(移動体を構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、特定オブジェクトの移動・動作処理(シミュレーション処理)や描画処理を行う時間の単位である。
【0055】
特に本実施形態では、複数の特定オブジェクトの各特定オブジェクトに属性パラメータや行動パターンデータなどが設定されているとともに、各特定オブジェクトに移動・動作アルゴリズムやモーションデータが設定されている。そして移動・動作制御部110は、操作部40、音入力部42、第1の表示部18などからの操作情報や、属性パラメータや行動パターンデータなどに基づいて特定オブジェクトを移動・動作させる制御を開始し、その特定オブジェクトに設定された移動・動作アルゴリズムやモーションデータや操作情報に基づいてフレーム単位での移動量(移動体の移動速度)を算出するとともにフレーム単位での移動体の回転量(移動体の回転速度)を算出して移動体の座標変換マトリクスMを求める。そして第K−1のフレームでの移動体の頂点座標PK−1に座標変換マトリクスMを乗算して第Kのフレームでの移動体の頂点座標PK(=PK−1×M)を求めている。
【0056】
判定部112は、第2の仮想カメラの画角内に、特定オブジェクトあるいは特定オブジェクトの特定部位が存在するか否かを判定する。具体的には判定部112は、第2の仮想カメラの位置と特定オブジェクトの代表点とを結ぶベクトルが、第2の仮想カメラの画角内に入るか否かを判定する。あるいは判定部112は、第2の仮想カメラの位置と特定部位の代表点とを結ぶベクトルが、第2の仮想カメラの画角内に入るか否かを判定する。
【0057】
更に判定部112は、第2の仮想カメラの位置と特定オブジェクトの代表点とを結ぶベクトルと、特定オブジェクトの代表点に設定された法線ベクトルとの内積を求め、特定オブジェクトの代表点が第2の仮想カメラから見えているか否かを判定するようにしてもよい。あるいは判定部112は、第2の仮想カメラの位置と特定部位の代表点とを結ぶベクトルと、特定部位の代表点に設定された法線ベクトルとの内積を求め、特定部位の代表点が第2の仮想カメラから見えているか否かを判定するようにしてもよい。
【0058】
通信制御部114は、他のゲームシステム10に送信するパケットを生成する処理、パケット送信先のゲームシステム10のネットワークアドレスを指定する処理、受信したパケットを記憶部50に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する通信部60の制御処理等を行う。特に本実施形態では、育成ゲームをネットワーク(例えば、インターネット)を利用して実行するために必要なデータパケット及びコマンドパケットを生成する制御や、通信部60を介してデータパケット及びコマンドパケットを送受信させる制御を行う。
【0059】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、第1の表示部18および第2の表示部34に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を、ピクセル単位で画像情報を記憶できる描画バッファ(VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【0060】
特に本実施形態では描画部120は、第1の仮想カメラの位置、向き、画角に基づいて頂点処理を行い、第1の仮想カメラから見た画像を第1の描画バッファ52(第1の描画領域の一例)に描画すると同時に、第2の仮想カメラの位置、向き、画角に基づいて頂点処理を行い、第2の仮想カメラから見た画像を第2の描画バッファ53(第2の描画領域の一例)に描画する。
【0061】
なお描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0062】
そして描画部120は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0063】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部51に保存される。
【0064】
テクスチャマッピングは、記憶部50に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部50からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0065】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0066】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
【0067】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0068】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部44に出力する。特に本実施形態では、特定オブジェクトに仮想的な音発生源が設定されているとともに、音発生源ごとに音発生源から発生する音データが設定されている。そして音生成部130は、プレーヤからの操作情報やプログラムなどにより音を発生させるイベントが発生した場合に、オブジェクトに設定された仮想的な音発生源の位置と、第1の仮想カメラおよび第2の仮想カメラの少なくとも一方の位置、向き、画角の少なくとも1つとに基づいて、音出力部44に出力させる音を生成する。
【0069】
詳細には音生成部130は、仮想カメラの位置と音発生源とを結ぶベクトルや音発生源に設定されている法線ベクトルに基づいて、仮想カメラと音発生源との位置の関係、相対的な向きの関係、画角内に音発生源が存在するか否かなどに応じて、各音発生源の音データを音出力部44から出力する際の音量や、左右の音出力部44のそれぞれから出力する音量のバランスなど、各音発生源の音データを合成する際の各音発生源の音データの値や割合を決定する。この場合には音生成部130は、例えば特定オブジェクトに設定された仮想的な音発生源に対する第1の仮想カメラとの距離と第2の仮想カメラとの距離との比に応じて、各音発生源の音データの音量の割合を決定することができる。
【0070】
また音生成部130は、例えば、第1の仮想カメラに対応する位置、向き、画角において音を集音する第1の仮想マイクと、第2の仮想カメラに対応する位置、向き、画角において音を集音する第2の仮想マイクとを設定し、各仮想マイクについて各音発生源の音データを合成した上で、各仮想マイクについて合成された音データを合成して音出力部44から音を出力させるようにしてもよい。
【0071】
また音生成部130は、仮想的な音発生源が設定されたオブジェクトの第1の描画バッファ52における描画割合と第2の描画バッファ53における描画割合とに応じて、各音発生源の音データを合成する際の各音発生源の音データの値や割合を決定し、音出力部に出力させる音を生成するようにしてもよい。この場合には音生成部130は、例えば、第1の描画バッファ52に特定オブジェクトが大きく描画されている場合は、特定オブジェクトに設定された仮想的な音発生源の音データの第1の仮想マイクにおける音量を大きくし、第2の描画バッファ53に特定オブジェクトが描画されていない場合は、特定オブジェクトに設定された仮想的な音発生源の音データの第2の仮想マイクにおける音量を小さくするあるいは0にして、音データを合成するようにしてもよい。
【0072】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0073】
3.本実施形態の手法
以下、本実施形態のゲームシステム10の手法について詳細に説明する。本実施形態のゲームシステム10は、オブジェクト空間に第1の仮想カメラと第2の仮想カメラとを設定し、第1の仮想カメラと第2の仮想カメラとを種々の態様で連動させて制御する。これによりゲームシステム10は、1つのオブジェクト空間を第1の仮想カメラから見た画像と第2の仮想カメラ見た画像とを、種々の態様で連動させて表示することができる。
【0074】
3−1.キャラクタの位置情報に応じた連動制御
図3は、本実施形態のゲームシステム10により設定される3次元のオブジェクト空間200の一例を示す図である。図3では、図中の左右方向の軸がX軸、上下方向の軸がY軸、斜め手前奥方向の軸がZ軸となっている。図3に示すようにゲームシステム10は、一定の範囲のオブジェクト空間200に、複数のキャラクタ202や、木オブジェクト204や、地面オブジェクト206などの種々のオブジェクトを設定する。またゲームシステム10は、地面オブジェクト206を覆うように、半球形状の天球オブジェクト208をオブジェクト空間200に設定し、天球オブジェクト208の内側面に空の様子が描かれたテクスチャをマッピングする。
【0075】
更にゲームシステム10は、天球オブジェクト208の内側において地面オブジェクト206を囲むように、円筒形状の背景オブジェクト210をオブジェクト空間200に設定し、背景オブジェクト210の内側面に木々や山々などの背景の様子が描かれたテクスチャをマッピングする。そしてゲームシステム10は、背景オブジェクト210の内側に仮想カメラを設定し、オブジェクト空間200を仮想カメラから見た画像を描画することにより、一定の範囲のオブジェクト空間200を、実際の範囲よりも広大な空間であるかのように見せている。
【0076】
そしてゲームシステム10は、図3に示すように、オブジェクト空間200において人間の身長に合わせて地面オブジェクト206から1.6m(「m」はオブジェクト空間200における仮想的な長さの単位)程度の高さに、第1の仮想カメラ212を設定する。そしてゲームシステム10は、いずれかのキャラクタ202に第1の仮想カメラ212の注視点を設定し、注視点を設定したキャラクタ202から1.0m程度離れた位置から注視点を向くように第1の仮想カメラ212の位置と向きとを制御する。
【0077】
ここで各キャラクタ202は、移動・動作アルゴリズムなどにより自動的に地面オブジェクト206上を歩き回るように移動・動作が制御され、高さが0.6m〜1.0m程度とされ、各キャラクタ202の中央付近に注視点が設定される。従って図1で示したように、第1の仮想カメラ212から見た画像が表示される第1の表示部18には、地面オブジェクト206から1.6m程度の高さから水平に対して45°程度の角度で見下ろすようにキャラクタ202を見た画像が表示される。
【0078】
また各キャラクタ202は、通常は地面オブジェクト206上で移動・動作が制御されるが、所定の条件が満たされると、図3に示す木オブジェクト204を登るように移動・動作が制御される。ここで、木オブジェクト204を登るキャラクタ202とともに第1の仮想カメラ212の位置を移動させ、木オブジェクト204を登るキャラクタ202の上方から第1の仮想カメラ212の向きを下方に向けると、背景オブジェクト210に背景用のテクスチャがマッピングされていることが明らかとなる不自然な画像が表示されてしまう。一方、かかる事態を防止するために第1の仮想カメラ212の位置の高さを変化させずに、木オブジェクト204を登るキャラクタ202に第1の仮想カメラ212の注視点を設定し続けると、第1の仮想カメラ212の向きが上方に向くため、地面オブジェクト206上に存在する他のキャラクタ202が表示されなくなってしまう。
【0079】
そこでゲームシステム10は、図3に示すように、第1の仮想カメラ212の上方に第2の仮想カメラ214をオブジェクト空間200に設定しつつ、第1の仮想カメラ212を制御するための第1の制御情報がとり得る値に制限範囲を設定する。そしてゲームシステム10は、制限範囲内の値で第1の制御情報を演算するとともに、第2の仮想カメラ214を制御するための第2の制御情報が第1の制御情報の制限範囲外の値となるように第1の制御情報に基づいて第2の制御情報を演算する。
【0080】
図4は、第1の制御情報と第2の制御情報の関係の一例を説明するための図である。図4では、図中の手前奥方向の軸がX軸、上下方向の軸がY軸、左右方向の軸がZ軸となっている。図4に示すようにゲームシステム10は、第1の仮想カメラ212の位置の上方1m(地面オブジェクト206から2.6m)の高さに第2の仮想カメラ214を設定し、第1の仮想カメラ212の向きの90°上方を向くように第2の仮想カメラ214の向きを制御する。従って図1で示したように、第2の仮想カメラ214から見た画像が表示される第2の表示部34には、地面オブジェクト206から2.6m程度の高さから水平に対して45°程度の角度で見上げるようにオブジェクト空間200を見た画像が表示される。
【0081】
そしてゲームシステム10は、注視点を設定したキャラクタ202が移動すると、第1の仮想カメラ212がキャラクタ202の移動に追従するように、移動後の注視点の位置座標に基づいて、第1の仮想カメラ212を制御するための第1の制御情報を演算する。そしてゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214を制御するための第2の制御情報を演算する。具体的にはゲームシステム10は、第1の仮想カメラ212の位置情報(第1の制御情報の構成要素)のうち高さを示すY座標の値に1.0m分の座標値αを加算することにより、第2の仮想カメラ214の位置情報(第2の制御情報の構成要素)を演算し、第2の仮想カメラ214のX軸回りの回転角度が第1の仮想カメラ212のX軸回りの回転角度から90°上向きとなるように第2の仮想カメラ214の向き(第2の制御情報の構成要素)を演算する。すなわちゲームシステム10は、第1の制御情報を第2の制御情報に変換することにより、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0082】
そして図5に示すように、第1の仮想カメラ212の注視点を設定したキャラクタ202が木オブジェクト204を登ることにより、そのキャラクタ202の位置が第1の仮想カメラ212の位置よりも高い位置に移動した場合であっても、ゲームシステム10は、第1の仮想カメラ212の位置の高さを変化させないように制御するとともに、第1の仮想カメラ212の向きを水平方向よりも上方に向けないように制御する。すなわちゲームシステム10は、第1の仮想カメラ212の位置の高さと上方の向きに制限範囲を設定しつつ、制限範囲が設定されることにより第1の仮想カメラ212が撮影することができない(画角に入らない)範囲のオブジェクト空間200を第2の仮想カメラ214が撮影するように、第1の仮想カメラ212と第2の仮想カメラ214とを制御している。これによりゲームシステム10は、不自然な画像が表示されない範囲で、地面オブジェクト206上に存在する他のキャラクタ202の様子を示す画像を第1の表示部18に表示させつつ、木を登るキャラクタ202の様子を示す画像を第2の表示部34に表示させることができる。
【0083】
3−2.第2の描画領域の描画
このようにゲームシステム10は、第1の仮想カメラ212に関してはいずれかのキャラクタ202に注視点を設定して位置、向きを制御しているが、第2の仮想カメラ214に関しては第1の仮想カメラ212の位置、向きの変化に連動するように位置、向きを制御しているため、第2の仮想カメラ214の画角内にキャラクタ202が存在しないことが多い。従って、図1で示したように、第2の表示部34にキャラクタ202が表示されないことが多い。そこでゲームシステム10は、第1の仮想カメラ212と第2の仮想カメラ214とを連動させて制御しているときに、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過すると、図6(A)に示すように、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画し、第2の表示部34に特殊画像を表示させる。
【0084】
ここでゲームシステム10は、予め描画された画像データとして、過去のゲームの進行中において第1の表示部18の描画領域である第1の描画領域または第2の表示部34の描画領域である第2の描画領域に描画された画像データを用いている。そのためゲームシステム10は、キャラクタ202が木に登るなどの特定のイベントが発生した場合に、第1の描画領域または第2の描画領域に描画された画像データの複製を保存データとして記憶部に記憶させる。またゲームシステム10は、第2の仮想カメラ214の画角内にキャラクタ202が存在する場合に、第2の描画領域に描画された画像データの複製を保存データとして記憶部に記憶させる。
【0085】
これによりゲームシステム10は、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過した場合に、過去のゲームの進行中において描画された画像を第2の表示部34に表示させることにより、例えば育成対象であるキャラクタ202の過去の様子を顧みるような演出を行うことができる。そしてゲームシステム10は、第2の表示部34に特殊画像を表示させている間にキャラクタ202が木に登るイベントが発生すると、第2の仮想カメラ214から見た画像を第2の描画領域に描画する処理を再開し、第2の表示部34に第2の仮想カメラ214から見た画像を表示させる。
【0086】
ここでゲームシステム10は、過去のゲームの進行中において描画された画像データが未だない場合には、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過すると、第1の仮想カメラ212と第2の仮想カメラ214の連動制御を中断して、第1の制御情報に依らずに第2の制御情報を演算する。例えばゲームシステム10は、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過すると、第1の仮想カメラ212の注視点が設定されているキャラクタ202に第2の仮想カメラ214の注視点を設定する、または図6(B)に示すように、第1の仮想カメラ212の注視点が設定されていない他のキャラクタ202に第2の仮想カメラ214の注視点を設定する。そしてゲームシステム10は、第2の仮想カメラ214がキャラクタ202の移動に追従するように、移動後の注視点の位置座標に基づいて、第2の仮想カメラ214を制御するための第2の制御情報を演算する。またゲームシステム10は、所与のイベントの発生に基づいて、発生したイベントに対応するオブジェクトに注視点を設定して第2の仮想カメラ214の制御を行うようにしてもよい。あるいは発生したイベントに対応する予め定められた制御情報を用いて第2の仮想カメラ214の制御を行うようにしてもよい。
【0087】
3−3.操作情報に応じた連動制御
本実施形態のゲームシステム10は、上述した相対的に狭いオブジェクト空間200の他に、相対的に広いオブジェクト空間200のオブジェクトデータを情報記憶媒体に格納している。そしてゲームシステム10は、プレーヤからの操作情報やプログラムなどに基づいて、情報記憶媒体から相対的に広いオブジェクト空間200のオブジェクトデータを読み出し、第1の仮想カメラ212と第2の仮想カメラ214とを設定するオブジェクト空間200を、比較的狭いオブジェクト空間200から比較的広いオブジェクト空間200に変更する。
【0088】
ここで複数のキャラクタ202は、相対的に広いオブジェクト空間200においても移動・動作アルゴリズムなどにより自動的に地面オブジェクト206上を歩き回るように移動・動作が制御されているが、第1の仮想カメラ212と第2の仮想カメラ214とは、各キャラクタ202の位置とは無関係にこのオブジェクト空間200に設定される。従って第1の仮想カメラ212と第2の仮想カメラ214とを設定するオブジェクト空間200が、比較的狭いオブジェクト空間200から比較的広いオブジェクト空間200に変更されると、第1の仮想カメラ212および第2の仮想カメラ214のいずれの画角内にもキャラクタ202が存在しないことが多い。そこでこのような場合にはゲームシステム10は、プレーヤからの操作情報に基づいて、第1の仮想カメラ212および第2の仮想カメラ214の位置、向き、画角を制御することにより、プレーヤにキャラクタ202を探させるようにしている。
【0089】
図7は、このような場合における第1の制御情報と第2の制御情報の関係の一例を説明するための図である。図7では、図中の左右方向の軸がX軸、上下方向の軸がY軸、手前奥方向の軸がZ軸となっている。図7に示すようにゲームシステム10は、まず第1の仮想カメラ212の位置の上方1mの高さに第2の仮想カメラ214を設定する。そしてゲームシステム10は、例えば図1で示した十字キー20に対してプレーヤが右方向を指定する操作を行うと、図7に示すように、第1の仮想カメラ212の向きが右方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の向きが左方向に変化するように第2の制御情報を演算する。またゲームシステム10は、十字キー20に対してプレーヤが下方向を指定する操作を行うと、図8に示すように、第1の仮想カメラ212の向きが下方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の向きが上方向に変化するように第2の制御情報を演算する。
【0090】
すなわちゲームシステム10は、プレーヤからの操作情報に基づいて第1の制御情報を演算すると、第1の仮想カメラ212の向きと第2の仮想カメラ214の向きとが平行になる状態の向きを基準向きとして、第1の仮想カメラ212の向きと第2の仮想カメラ214の向きとが異なる方向に変化するように、第1の制御情報を第2の制御情報に変換する(向き変換処理の一例)。これによりゲームシステム10は、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0091】
具体的にはゲームシステム10は、第1の仮想カメラ212と第2の仮想カメラ214の向きをそれぞれの注視点の位置座標により設定しており、操作情報に基づいてそれぞれの注視点の位置座標を変化させることにより、第1の仮想カメラ212と第2の仮想カメラ214の向きを変化させている。そしてゲームシステム10は、操作情報に基づいて第1の仮想カメラ212の注視点の位置座標を変化させると、第1の仮想カメラ212の基準向きにおける注視点の位置座標からの各座標値の変化量を、第2の仮想カメラ214の基準向きにおける注視点の位置座標から減算することにより第2の仮想カメラ214の注視点の位置座標を演算する。例えば第1の仮想カメラ212の注視点の位置座標の変化量が(5,−4,−2)である場合には、第2の仮想カメラ214の基準向きにおける注視点の位置座標から(5,−4,−2)を減算することにより変化後の第2の仮想カメラ214の注視点の位置座標を求める。
【0092】
なおゲームシステム10は、プレーヤが十字キー20に対して向きを指定する操作を行っている間、第1の仮想カメラ212の向きに対する第2の仮想カメラ214の向きを変化させ、プレーヤが十字キー20に対して向きを指定する操作を終了すると、変化後の第1の仮想カメラ212の向きに平行となるように第2の仮想カメラ214の向きを変化させる。またはゲームシステム10は、プレーヤが十字キー20に対して向きを指定する操作を終了すると、第1の仮想カメラ212と第2の仮想カメラ214の向きを変化前の基準向きに戻すようにしてもよい。
【0093】
またゲームシステム10は、図1で示した第1の表示部18に対してプレーヤが中心よりも右側を指定する接触操作を行うと、図9に示すように、第1の仮想カメラ212の位置が右方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の位置が左方向に変化するように第2の制御情報を演算する。
【0094】
またゲームシステム10は、図1で示した第3ボタン26を押下する操作を行うと、第1の仮想カメラ212の位置が前方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の位置が後ろ方向に変化するように第2の制御情報を演算する。
【0095】
すなわちゲームシステム10は、プレーヤからの操作情報に基づいて第1の制御情報を演算すると、第2の仮想カメラ214の位置が第1の仮想カメラ212の位置の真上となる状態(X座標値とZ座標値とが同一である状態)の位置を基準位置として、第1の仮想カメラ212の位置と第2の仮想カメラ214の位置とが異なる方向に変化するように、第1の制御情報を第2の制御情報に変換する(位置変換処理の一例)。これによりゲームシステム10は、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0096】
具体的にはゲームシステム10は、操作情報に基づいて第1の仮想カメラ212の位置座標を変化させると、第1の仮想カメラ212の基準位置の位置座標からの各座標値の変化量を、第2の仮想カメラ214の基準位置の位置座標から減算することにより第2の仮想カメラ214の位置座標を演算する。例えば第1の仮想カメラ212の位置座標の変化量が(5,−4,−2)である場合には、第2の仮想カメラ214の基準位置の位置座標から(5,−4,−2)を減算することにより第2の仮想カメラ214の位置座標を求める。
【0097】
なおゲームシステム10は、プレーヤが第1の表示部18に対して位置を指定する接触操作を行っている間、第1の仮想カメラ212の位置に対する第2の仮想カメラ214の位置を変化させ、プレーヤが第1の表示部18に対して位置を指定する接触操作を終了すると、変化後の第1の仮想カメラ212の位置の真上となる位置に第2の仮想カメラ214の位置を移動させる。またはゲームシステム10は、プレーヤが第1の表示部18に対して位置を指定する接触操作を終了すると、第1の仮想カメラ212と第2の仮想カメラ214の位置を変化前の基準位置に戻すようにしてもよい。
【0098】
またゲームシステム10は、図1で示した第1ボタン22を押下する操作を行うと、図10に示すように、第1の仮想カメラ212の画角が広くなるように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の画角が狭くなるように第2の制御情報を演算する。一方ゲームシステム10は、第2ボタン24を押下する操作を行うと、第1の仮想カメラ212の画角が狭くなるように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の画角が広くなるように第2の制御情報を演算する。
【0099】
すなわちゲームシステム10は、プレーヤからの操作情報に基づいて第1の制御情報を演算すると、第1の仮想カメラ212と第2の仮想カメラ214の画角がいずれも45°となる状態を基準画角として、第1の仮想カメラ212の画角と第2の仮想カメラ214の画角との比が変化するように、第1の制御情報を第2の制御情報に変換する(画角変換処理の一例)。これによりゲームシステム10は、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0100】
具体的にはゲームシステム10は、操作情報に基づいて第1の仮想カメラ212の画角を変化させると、第1の仮想カメラ212の基準画角からの変化量を、第2の仮想カメラ214の画角から減算することにより第2の制御情報を演算する。例えば第1の仮想カメラ212の画角の変化量が5°である場合には、第2の仮想カメラ214の基準画角から5°を減算することにより第2の仮想カメラ214の画角を求める。
【0101】
なおゲームシステム10は、プレーヤが第1ボタン22または第2ボタン24に対して押下操作を行っている間、第1の仮想カメラ212の画角と第2の仮想カメラ214の画角との比を変化させ、プレーヤが第1ボタン22または第2ボタン24に対して押下操作を終了すると、第1の仮想カメラ212と第2の仮想カメラ214の画角を変化前の基準画角に戻す。
【0102】
そしてゲームシステム10は、プレーヤが第1の仮想カメラ212の画角内にキャラクタ202を収めることにより、第1の表示部18にキャラクタ202が表示されている状態で、プレーヤが第1の表示部18に対してキャラクタ202が表示されている位置を指定する接触操作を行うと、接触操作を行ったキャラクタ202に第1の仮想カメラ212の注視点を設定する。そしてゲームシステム10は、上述したようなキャラクタ202の位置情報に応じた第1の仮想カメラ212と第2の仮想カメラ214の連動制御を行う。
【0103】
3−4.イベント発生に応じた連動制御
本実施形態のゲームシステム10は、相対的に広いオブジェクト空間200においても、キャラクタ202が木オブジェクト204に登るイベントが発生する。ここで相対的に広いオブジェクト空間200では、上述した相対的に狭いオブジェクト空間200よりも、木オブジェクト204を登るキャラクタ202の上方から第2の仮想カメラ214の向きを下方に向けることにより不自然な画像が表示されるおそれが少なくなる。そこでゲームシステム10は、相対的に広いオブジェクト空間200に第1の仮想カメラ212と第2の仮想カメラ214とが設定されている場合には、キャラクタ202が木オブジェクト204に登るイベントが発生すると、第1の仮想カメラ212がキャラクタ202の下方からキャラクタ202を見上げるように、第2の仮想カメラ214がキャラクタ202の上方からキャラクタ202を見下ろすように、第1の仮想カメラ212と第2の仮想カメラ214の位置と向きとを制御する。
【0104】
詳細にはゲームシステム10は、相対的に広いオブジェクト空間200においても、キャラクタ202が木オブジェクト204に登るイベントが発生するまでは、図4で示したように、第1の仮想カメラ212の位置の上方1mの高さに第2の仮想カメラ214を設定し、第1の仮想カメラ212の向きの90°上方を向くように第2の仮想カメラ214の向きを制御する。そして相対的に広いオブジェクト空間200においては、キャラクタ202が木オブジェクト204に登るイベントが発生すると、図11に示すように、ゲームシステム10は第1の仮想カメラ212の位置と第2の仮想カメラ214の位置との間の距離を1mから3mに変更する(位置変更処理の一例)。
【0105】
そしてゲームシステム10は、第1の仮想カメラ212の注視点と第2の仮想カメラ214の注視点とを同一のキャラクタ202に設定する(向き変更処理の一例)。特にゲームシステム10は、図11に示すように、第1の仮想カメラ212の注視点をキャラクタ202の臀部に設定し、第2の仮想カメラ214の注視点をキャラクタ202の頭部に設定する。
【0106】
更にゲームシステム10は、キャラクタ202が木オブジェクト204に登るイベントが発生する前よりも第1の仮想カメラ212の画角と第2の仮想カメラ214の画角とが狭くなるように変更する(画角変更処理の一例)。これにより木オブジェクト204を登るキャラクタ202の上方から第2の仮想カメラ214を下方に向けても、画角を狭くすることにより背景オブジェクト210が第2の仮想カメラ214の画角に入ることを防止することができ、不自然な画像が表示されることを防止することができる。
【0107】
そしてゲームシステム10は、キャラクタ202の位置が変化すると、第1の仮想カメラ212の位置と第2の仮想カメラ214の位置との関係を、第2の仮想カメラ214が第1の仮想カメラ212の真上であって互いの距離が3mである状態に保ちつつ、第1の仮想カメラ212が第1の仮想カメラ212の注視点を向き、第2の仮想カメラ214が第2の仮想カメラ214の注視点を向くように第1の制御情報と第2の制御情報を演算する(向き変更処理の一例)。これにより図12に示すように、第1の仮想カメラ212から見た画像が表示される第1の表示部18には、木オブジェクト204に登るキャラクタ202に追従しつつキャラクタ202の下方から臀部を見上げる画像が表示され、第2の仮想カメラ214から見た画像が表示される第2の表示部34には、木オブジェクト204に登るキャラクタ202に追従しつつキャラクタ202の上方から頭部を見下ろす画像が表示される。
【0108】
またゲームシステム10は、第1の仮想カメラ212の注視点をキャラクタ202の臀部に設定し、第2の仮想カメラ214の注視点をキャラクタ202の頭部に設定する場合には、第1の仮想カメラ212の注視点にキャラクタ202の臀部用の第1の音発生源を設定し、第2の仮想カメラ214の注視点にキャラクタ202の頭部用の第2の音発生源を設定する。そしてゲームシステム10は、プレーヤからの操作情報やプログラムなどにより第1の音発生源から音を発生させるイベントが発生した場合に、第1の音発生源の位置と第1の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部44に出力させる音を生成する。またゲームシステム10は、プレーヤからの操作情報やプログラムなどにより第2の音発生源の音を発生させるイベントが発生した場合に、第2の音発生源の位置と第2の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部44に出力させる音を生成する。これによりゲームシステム10では、第1の表示部18に表示する画像と第2の表示部34に表示する画像の変化に連動させて出力音を変化させることができる。
【0109】
またゲームシステム10では、キャラクタ202が木オブジェクト204の上端まで登ると、相対的に広いオブジェクト空間200であっても、木オブジェクト204の上端まで登ったキャラクタ202の上方から第2の仮想カメラ214の向きを下方に向けると不自然な画像が表示されるおそれがある。そこでゲームシステム10は、キャラクタ202が木オブジェクト204の先端まで登る特殊イベントが発生すると、図13に示すように、第1の仮想カメラ212の位置と第2の仮想カメラ214の位置との間の距離を3mから1mに変更する(位置変更処理の一例)。そしてゲームシステム10は、第1の仮想カメラ212の向きと第2の仮想カメラ214の向きとを水平方向に変更する(向き変更処理の一例)。更にゲームシステム10は、キャラクタ202の位置情報に基づいて、第1の仮想カメラ212の角錐台形状の視界範囲の上側の側面と、第2の仮想カメラ214の角錐台形状の視界範囲の下側の側面との交線が、キャラクタ202の位置に対応するように画角を変更する(画角変更処理の一例)。これによりゲームシステム10は、不自然な画像が表示されることを防止しつつ、第1の表示部18に表示された画像と第2の表示部34に表示された画像とを隣接させると各表示部に部分的に描画されたキャラクタ202が接合されるようにキャラクタ202を描画することができる。
【0110】
4.本実施形態の処理の流れ
図14は、本実施形態のゲームシステム10において、特殊画像を描画する場合に行われる特殊画像描画処理の詳細を示すフローチャートである。図14に示すように特殊画像描画処理では、ゲームシステム10は、1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていたか否かを判断し(ステップS10)、第2の描画領域にキャラクタ202が描画されていた場合には(ステップS10でY)、第2の仮想カメラ214から見た画像を描画する(ステップS12)。また、1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていない場合には(ステップS10でN)、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過していないか否かを判断し(ステップS14)、所定期間が経過していない場合には(ステップS14でY)、第2の仮想カメラ214から見た画像を描画する(ステップS12)。また、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過した場合には(ステップS14でN)、特定イベントが発生したか否かを判断し(ステップS16)、特定イベントが発生した場合には(ステップS16でY)、第2の仮想カメラ214から見た画像を描画する(ステップS12)。一方、特定イベントが発生していない場合には(ステップS16でN)、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画する(ステップS18)。
【0111】
図15は、本実施形態のゲームシステム10において、特殊画像用の画像データが未だない場合に行われる仮想カメラ制御処理1の詳細を示すフローチャートである。図15に示すように仮想カメラ制御処理1では、ゲームシステム10は、キャラクタ202が移動することにより注視点が移動すると(ステップS20でY)、注視点の位置情報に基づいて第1の制御情報を演算する(ステップS22)。そして第1の制御情報を用いて第1の仮想カメラ212を制御する(ステップS24)。ここで1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていた場合には(ステップS26でY)、第1の制御情報を第2の制御情報に変換する(ステップS28)。そして第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS30)。
【0112】
また、1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていない場合には(ステップS26でN)、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過していないか否かを判断し(ステップS32)、所定期間が経過していない場合には(ステップS32でY)、第1の制御情報を第2の制御情報に変換する(ステップS28)。また、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過した場合には(ステップS32でN)、特定イベントが発生したか否かを判断し(ステップS34)、特定イベントが発生した場合には(ステップS34でY)、第1の制御情報を第2の制御情報に変換する(ステップS28)。
【0113】
一方、特定イベントが発生していない場合には(ステップS34でN)、他のキャラクタ202に第2の仮想カメラ214の注視点を設定する(ステップS36)。そして注視点の位置座標に基づいて第2の制御情報を演算し(ステップS38)、第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS30)。
【0114】
図16は、本実施形態のゲームシステム10において、操作情報に応じて行われる仮想カメラ制御処理2の詳細を示すフローチャートである。図16に示すように仮想カメラ制御処理2では、ゲームシステム10は、操作情報が入力されると(ステップS50でY)、操作情報に基づいて第1の制御情報を演算する(ステップS52)。そして第1の制御情報を用いて第1の仮想カメラ212を制御する(ステップS54)。そして、第1の制御情報を、上述した位置変換処理、向き変換処理、画角変換処理を行うことにより第2の制御情報に変換する(ステップS56)。そして第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS58)。そして、第1の描画領域にキャラクタ202が描画されている状態で、プレーヤがキャラクタ202の表示位置に対して接触操作を行うことによりキャラクタ202に第1の仮想カメラ212の注視点が設定されると(ステップS60でY)、仮想カメラの制御を上述した仮想カメラ制御処理1に切り替える(ステップS62)。
【0115】
図17は、本実施形態のゲームシステム10において、特定イベントが発生した場合に行われる仮想カメラ制御処理3の詳細を示すフローチャートである。図17に示すように仮想カメラ制御処理3では、ゲームシステム10は、特定イベントが発生していない場合には(ステップS70でY)、キャラクタ202が移動することにより注視点が移動すると(ステップS72でY)、注視点の位置情報に基づいて第1の制御情報を演算する(ステップS74)。そして第1の制御情報を用いて第1の仮想カメラ212を制御する(ステップS76)。そして第1の制御情報を第2の制御情報に変換し(ステップS78)、第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS80)。
【0116】
一方、特定イベントが発生した場合には(ステップS70でN)、上述した位置変更処理、向き変更処理、画角変更処理を行う(ステップS82)。そしてキャラクタ202が移動することにより注視点が移動すると(ステップS84でY)、第1の仮想カメラ212の注視点の位置情報に基づいて、第1の制御情報の構成要素である第1の位置情報と第1の向き情報とを演算する(ステップS86)。そして第1の位置情報と第1の向き情報(第1の制御情報)を用いて第1の仮想カメラ212を制御する(ステップS88)。そして第1の制御情報のうち第1の位置情報を第2の制御情報の構成要素である第2の位置情報に変換する(ステップS90)。そしてキャラクタ202が移動することにより移動した第2の仮想カメラ214の注視点の位置情報に基づいて、第2の制御情報の構成要素である第2の向き情報を演算する(ステップS92)。そして第2の位置情報と第2の向き情報(第2の制御情報)を用いて第2の仮想カメラ214を制御する(ステップS94)。そして特定イベントが終了した場合は(ステップS96でY)処理を終了し、特定イベントが終了しない場合は(ステップS96でN)、ステップS84からステップS96までの処理を繰り返す。
【0117】
5.変形例
上記実施形態で説明した手法は、一例を示したに過ぎず、上記実施形態の手法と同様の効果を奏する均等な手法を採用した場合においても本発明の範囲に含めることができる。また本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。そして上記実施形態の手法や、変形例として後述する各種の手法は、本発明を実現する手法として適宜組み合わせて採用することができる。
【0118】
例えば上述した実施形態では、第1の表示部18が操作部40としても機能する例を挙げて説明したが、第2の表示部34も操作部40として機能するようにしてもよい。また上述した実施形態では、第1の描画領域に対応して第1の表示部18が設けられ、第2の描画領域に対応して第2の表示部34が設けられている例を挙げて説明したが、1つの表示部の表示領域を、第1の描画領域に対応する表示領域と第2の描画領域に対応する表示領域とに分割するようにしてもよい。また第1の描画領域と第2の描画領域とは、それぞれ個別の記憶装置として設けられるようにしてもよいし、1つの記憶装置のメモリ領域を分割した各領域として設けられるようにしてもよい。
【0119】
また上述した実施形態では、予め描画された画像データとして過去のゲームの進行中において描画された画像データを用いる例を挙げて説明したが、例えばゲームシステム10のソフトウェアの作成時に情報記憶媒体に格納されたものとしてもよい。
【0120】
また本発明は、携帯型のゲームシステムの他に、業務用ゲームシステム、据え置き型の家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0121】
【図1】本実施形態のゲームシステム10の外観を示す図。
【図2】本実施形態のゲームシステム10の機能ブロック図。
【図3】本実施形態のゲームシステム10のオブジェクト空間を示す図。
【図4】本実施形態のゲームシステム10の制御手法の説明図。
【図5】本実施形態のゲームシステム10の制御手法の説明図。
【図6】本実施形態のゲームシステム10で生成される画像を示す図。
【図7】本実施形態のゲームシステム10の制御手法の説明図。
【図8】本実施形態のゲームシステム10の制御手法の説明図。
【図9】本実施形態のゲームシステム10の制御手法の説明図。
【図10】本実施形態のゲームシステム10の制御手法の説明図。
【図11】本実施形態のゲームシステム10の制御手法の説明図。
【図12】本実施形態のゲームシステム10で生成される画像を示す図。
【図13】本実施形態のゲームシステム10の制御手法の説明図。
【図14】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【図15】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【図16】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【図17】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【符号の説明】
【0122】
10 ゲームシステム、12 本体下部、14 本体上部、16 ヒンジ部、
18 第1の表示部、20 十字キー、22 第1ボタン、24 第2ボタン、
28 第4ボタン、30 スタートボタン、32 セレクトボタン、
34 第2の表示部、36 スピーカ、38 マイク、
40 操作部、42 音入力部、44 音出力部、46 情報記憶媒体、50 記憶部、
60 通信部、100 処理部、102 ゲーム処理部、104 表示制御部、
106 オブジェクト空間設定部、108 仮想カメラ制御部、
110 移動・動作制御部、112 判定部、114 通信制御部、
200 オブジェクト空間、202 キャラクタ、204 木オブジェクト、
206 地面オブジェクト、208 天球オブジェクト、210 背景オブジェクト、
212 第1の仮想カメラ、214 第2の仮想カメラ、
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体および画像生成システムに関する。
【背景技術】
【0002】
従来から、オブジェクトが配置されたオブジェクト空間を仮想カメラから見た画像を生成する画像生成システムが知られている。このような画像生成システムには、オブジェクト空間に複数の仮想カメラを設定し、オブジェクト空間を各仮想カメラから見た画像を表示部に同時に表示させるものがある。このような画像生成システムとして、例えば車の運転者から見たオブジェクト空間を撮影する仮想カメラと、車のバックミラーに写り込むオブジェクト空間を撮影する仮想カメラとを設定するものがある。
【特許文献1】特開2000−105533号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし従来の画像生成システムでは、各仮想カメラの向きが前方向と後ろ方向に固定されつつ、各仮想カメラの位置、画角の関係も固定されていたため、複数の仮想カメラを設定しても、生成される画像を応用する場面が少ないという問題があった。
【0004】
本発明はこのような問題に鑑みてなされたものであり、その目的は、複数の仮想カメラによって種々の画像を生成することができる画像生成システムを提供することにある。
【課題を解決するための手段】
【0005】
(1)本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
前記第1の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値に制限範囲を設定することにより、前記制限範囲内の値で前記第1の制御情報を演算するとともに、前記第2の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値が前記制限範囲外の値となるように前記第1の制御情報に基づいて第2の制御情報を演算することを特徴とする画像生成システムに関係する。
【0006】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0007】
本発明では、制限範囲が設定されることにより第1の仮想カメラが撮影することができない範囲のオブジェクト空間を第2の仮想カメラが撮影するように、第1の仮想カメラと第2の仮想カメラとを連動させて制御することができる。従って本発明によれば、第1の仮想カメラと第2の仮想カメラとを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画することができる。
【0008】
(2)また本発明は、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部と、
を更に含み、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、
前記描画部は、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画するようにしてもよい。
【0009】
このようにすれば、特定オブジェクトの位置情報に基づいて第1の制御情報を演算することにより第2の描画領域に特定オブジェクトが描画されない場合に、特殊画像を第2の描画領域に描画することができる。
【0010】
(3)また本発明は、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部と、
を更に含み、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、前記第1の制御情報に基づかない制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うようにしてもよい。
【0011】
このようにすれば、特定オブジェクトの位置情報に基づいて第1の制御情報を演算することにより第2の描画領域に特定オブジェクトが描画されない場合に、第2の仮想カメラを第1の仮想カメラと連動させずに制御することによる画像を第2の描画領域に描画することができる。
【0012】
(4)また本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する位置変換処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する向き変換処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する画角変換処理の少なくとも1つを行うことを特徴とする画像生成システムに関係する。
【0013】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0014】
本発明において「第1の仮想カメラの位置と第2の仮想カメラの位置との関係」とは、例えば第1の仮想カメラの位置と第2の仮想カメラの位置との間の距離とすることができ、「第1の仮想カメラの向きと第2の仮想カメラの向きとの関係」とは、例えば第1の仮想カメラの向きと第2の仮想カメラの向きとがなす角度とすることができ、「第1の仮想カメラの画角と第2の仮想カメラの画角との関係」とは、例えば第1の仮想カメラの画角と第2の仮想カメラの画角との比とすることができる。
【0015】
本発明によれば、位置変換処理、向き変換処理、画角変換処理の少なくとも1つを行うことにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画することができる。
【0016】
(5)また本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係を変化させる位置変更処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係を変化させる向き変更処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係を変化させる画角変更処理の少なくとも1つを行うことを特徴とする画像生成システムに関係する。
【0017】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0018】
本発明において「第1の仮想カメラの位置と第2の仮想カメラの位置との関係」とは、例えば第1の仮想カメラの位置と第2の仮想カメラの位置との間の距離とすることができ、「第1の仮想カメラの向きと第2の仮想カメラの向きとの関係」とは、例えば第1の仮想カメラの向きと第2の仮想カメラの向きとがなす角度とすることができ、「第1の仮想カメラの画角と第2の仮想カメラの画角との関係」とは、例えば第1の仮想カメラの画角と第2の仮想カメラの画角との比とすることができる。
【0019】
本発明によれば、位置変更処理、向き変更処理、画角変更処理の少なくとも1つを行うことにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御しつつ、第1の描画領域と第2の描画領域とに種々の画像を描画することができる。
【0020】
(6)また本発明は、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記特定オブジェクトの位置情報に基づいて第1の制御情報を演算し、前記第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記特定オブジェクトの位置情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部と、
を含むことを特徴とする画像生成システムに関係する。
【0021】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0022】
本発明によれば、第1の仮想カメラと第2の仮想カメラとを特定オブジェクトに向けることにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御することができる。
【0023】
(7)また本発明は、
前記仮想カメラ制御部は、
前記特定オブジェクトの第1の部位の位置情報に基づいて第1の制御情報を演算し、前記特定オブジェクトの第2の部位の位置情報に基づいて第2の制御情報を演算するようにしてもよい。
【0024】
このようにすれば、第1の仮想カメラを第1の部位に向け、第2の仮想カメラを第2の部位に向けることにより、第1の仮想カメラと第2の仮想カメラとを連動させて制御することができる。
【0025】
(8)また本発明は、
前記特定オブジェクトに設定された仮想的な音発生源の位置と、前記第1の仮想カメラおよび前記第2の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部に出力させる音を生成する音生成部を更に含むようにしてもよい。
【0026】
このようにすれば、第1の描画領域に描画される画像と第2の描画領域に描画される画像の変化に連動させて音を変化させることができる。
【0027】
(9)また本発明は、
仮想的な音発生源が設定されたオブジェクトの前記第1の描画領域における描画割合と前記第2の描画領域における描画割合とに応じて、音出力部に出力させる音を生成する音生成部を更に含むようにしてもよい。
【0028】
このようにすれば、第1の描画領域に描画される画像と第2の描画領域に描画される画像の変化に連動させて音を変化させることができる。
【0029】
(10)また本発明は、
前記仮想カメラ制御部は、
所与の条件が満たされた場合に、前記特定オブジェクトの位置情報に基づいて、前記第1の仮想カメラの角錐台形状の視界範囲の側面と前記第2の仮想カメラの角錐台形状の視界範囲の側面との交線が、前記特定オブジェクトの位置に対応するように前記第1の仮想カメラと前記第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うようにしてもよい。
【0030】
このようにすれば、第1の描画領域と第2の描画領域の各描画領域において特定オブジェクトを部分的に描画しつつ、第1の描画領域に描画された画像と第2の描画領域に描画された画像とを隣接させると各描画領域に部分的に描画された特定オブジェクトが接合されるように特定オブジェクトを描画することができる。
【発明を実施するための最良の形態】
【0031】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0032】
1.外観構成
図1に本実施形態のゲームシステム10(画像生成システムの一例)の外観図を示す。図1に示すゲームシステム10は、プレーヤ(操作者、観者)が携帯可能な大きさに形成されており、プレーヤがゲームシステム10を手で持ってゲームをプレーすることができるようになっている。そしてゲームシステム10は、本体下部12と本体上部14とがヒンジ部16により連結されており、本体下部12と本体上部14とがヒンジ部16の軸回りに回動可能となっている。そして本体下部12の中央部には画像を出力する第1の表示部18が設けられており、本体下部12の第1の表示部18の周囲には、プレーヤが操作情報を入力するための十字キー20、第1ボタン22〜第4ボタン28の4つのボタン、スタートボタン30、セレクトボタン32が設けられている。また本体上部14の中央部には画像を出力する第2の表示部34が設けられ、第2の表示部34の左右側には音を出力するスピーカ36(音出力部44の一例)が設けられている。またヒンジ部16には、プレーヤが音入力(音声入力)を行うためのマイク38(音入力部42の一例)が設けられている。
【0033】
本体下部12の第1の表示部18は、液晶ディスプレイとタッチパネルとが積層された構造を有しており、第1の表示部18の表示領域に対してプレーヤが行った接触操作の位置を検出できるようになっている。例えばプレーヤが、図1に示すようなタッチペンの先端を第1の表示部18に接触させると、ゲームシステム10はタッチペンの先端が第1の表示部18に接触した位置を検出する。従ってプレーヤは、第1の表示部18に接触することによっても操作情報を入力することができる。
【0034】
そしてゲームシステム10は、仮想的な3次元空間であるオブジェクト空間を仮想カメラから見た画像を第1の表示部18と第2の表示部34とに表示するとともに、プレーヤから十字キー20や第1ボタン22〜第4ボタン28や第1の表示部18に対する操作情報の入力を受け付けて、オブジェクト空間に配置設定されたキャラクタ(特定オブジェクトの一例)を育成する育成ゲームを実行する。特にゲームシステム10は、オブジェクト空間に第1の仮想カメラと第2の仮想カメラとを設定し、オブジェクト空間を第1の仮想カメラから見た画像を第1の表示部18に表示させ、それと同時に、オブジェクト空間を第2の仮想カメラから見た画像を第2の表示部34に表示させる。
【0035】
2.機能ブロック
図2は、本実施形態におけるゲームシステム10の機能ブロック図の一例である。なお、本実施形態のゲームシステム10は、図2の構成要素(各部)の一部を省略した構成としてもよい。
【0036】
操作部40は、プレーヤが操作データを入力するためのものであり、その機能は十字キー20、第1ボタン22〜第4ボタン28、レバー、ステアリングなどにより実現できる。
【0037】
音入力部42は、プレーヤが音声や手拍子などの音を入力するためのものであり、その機能はマイク38などにより実現できる。
【0038】
第1の表示部18および第2の表示部34は、ゲームシステム10により生成された画像を出力するものであり、その機能はCRTディスプレイ、液晶ディスプレイ、プラズマディスプレイ、プロジェクタ、HMD(ヘッドマウントディスプレイ)などにより実現できる。ここで本実施形態では第1の表示部18が、液晶ディスプレイと、接触位置を検出するタッチパネルとが積層された構造を有するタッチパネルディスプレイにより実現されている。従って本実施形態では、第1の表示部18が操作部40としても機能する。ここでタッチパネルは、液晶ディスプレイに積層しても画像の視認性が維持されるように光の透過率が高い素材により構成されており、例えば抵抗膜方式(4線式、5線式など)、静電容量方式などによりタッチパネルに対する接触位置を電気的に検出する。なおタッチパネルは、図1で示したタッチペンなどの入力器具による接触操作や、プレーヤの指先による接触操作を検出することができる。
【0039】
音出力部44は、ゲームシステム10により生成された音を出力するものであり、その機能は、スピーカ36、或いはヘッドフォンなどにより実現できる。
【0040】
情報記憶媒体46(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、メモリカード、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープなどにより実現できる。
【0041】
この情報記憶媒体46には、処理部100において種々の処理を行うためのプログラムやデータが記憶されている。即ち、この情報記憶媒体46には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶されている。また情報記憶媒体46には、キャラクタオブジェクトなどの種々のオブジェクトのモデルデータや、キャラクタオブジェクトの属性パラメータなどの各種データが格納されている。
【0042】
記憶部50は、処理部100や通信部60などのワーク領域となるもので、その機能はRAMやVRAMなどにより実現できる。そして、本実施形態の記憶部50は、処理部100のワーク領域として使用される主記憶部51と、第1の表示部18に表示させる画像が描画される第1の描画バッファ52(第1の描画領域の一例)と、第2の表示部34に表示させる画像が描画される第2の描画バッファ53(第2の描画領域の一例)と、オブジェクトのモデルデータが読み込まれるオブジェクトデータ記憶部54と、を含む。
【0043】
通信部60は、外部(例えばサーバや他の携帯端末)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用の集積回路(ASIC)などのハードウェアや、プログラムなどにより実現できる。
【0044】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部60を介して情報記憶媒体46(記憶部50)に配信してもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0045】
処理部100(プロセッサ)は、操作部40、音入力部42、第1の表示部18などからの操作情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの処理を行う。この処理部100は、記憶部50をワーク領域として各種処理を行い、その機能は各種プロセッサ(CPU、DSP等)、各種集積回路(IC、ASIC)などのハードウェアや、プログラムにより実現できる。
【0046】
特に、本実施形態の処理部100は、ゲーム処理部102、表示制御部104、オブジェクト空間設定部106、仮想カメラ制御部108、移動・動作制御部110、判定部112、通信制御部114、描画部120、音生成部130を含む。なお、これらの一部を省略する構成としてもよい。
【0047】
ゲーム処理部102は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。特にゲーム処理部102は、ゲームの進行を制御する処理として、オブジェクト空間(ゲーム空間)における時間の経過を計測する処理や、キャラクタオブジェクトに設定される属性パラメータを更新する処理などを行う。
【0048】
表示制御部104は、第1の表示部18および第2の表示部34に表示される画像(オブジェクト画像)の表示制御を行う。具体的には、表示すべきオブジェクト(キャラクタ(特定オブジェクトの一例)、移動体(特定オブジェクトの一例)、コース、建物、樹木、柱、壁、マップ、背景)を発生させたり、オブジェクトの表示や表示位置を指示したり、オブジェクトを消滅させたりするなどの表示制御を行う。即ち発生したオブジェクトをオブジェクトリストに登録したり、オブジェクトリストを描画部120等に転送したり、消滅したオブジェクトをオブジェクトリストから削除したりするなどの表示制御を行う。
【0049】
また表示制御部104は、プレーヤからの操作情報やプログラムなどにより、オブジェクトの移動や動作が発生した場合に、発生した移動や動作の様子を示す画像を表示するための制御を行う。特に本実施形態のゲームシステム10では、3次元のオブジェクト空間にオブジェクトを設定するようになっており、表示制御部104は、オブジェクト空間設定部106と仮想カメラ制御部108とを含む。
【0050】
オブジェクト空間設定部106は、キャラクタ、移動体、コース、建物、樹木、柱、壁、マップ、背景などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0051】
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、向きあるいは画角を制御する処理)を行う。
【0052】
例えば仮想カメラによりキャラクタを撮影する場合には、仮想カメラの向きを規定する注視点(特定オブジェクトの位置情報の一例)をキャラクタに設定し、キャラクタの位置又は回転の変化に応じて変化する注視点を仮想カメラが向くように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、後述する移動・動作制御部110で求められたキャラクタ(注視点)の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための予め決められた制御情報に基づいて仮想カメラを制御する。
【0053】
特に本実施形態の仮想カメラ制御部108は、操作部40、音入力部42、第1の表示部18などからの操作情報や、特定オブジェクトの位置情報や、所与のアルゴリズムなどに基づいて変化する第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、第1の制御情報を第2の制御情報に変換し、第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う。すなわち仮想カメラ制御部108は、第1の制御情報が変化すると直ちに第2の制御情報が変化するように、第1の仮想カメラと第2の仮想カメラについて上記の制御処理を連動させて行う。
【0054】
移動・動作制御部110は、特定オブジェクトの移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部40、音入力部42、第1の表示部18などからの操作情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、特定オブジェクトをオブジェクト空間内で移動させたり、特定オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、特定オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(移動体を構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、特定オブジェクトの移動・動作処理(シミュレーション処理)や描画処理を行う時間の単位である。
【0055】
特に本実施形態では、複数の特定オブジェクトの各特定オブジェクトに属性パラメータや行動パターンデータなどが設定されているとともに、各特定オブジェクトに移動・動作アルゴリズムやモーションデータが設定されている。そして移動・動作制御部110は、操作部40、音入力部42、第1の表示部18などからの操作情報や、属性パラメータや行動パターンデータなどに基づいて特定オブジェクトを移動・動作させる制御を開始し、その特定オブジェクトに設定された移動・動作アルゴリズムやモーションデータや操作情報に基づいてフレーム単位での移動量(移動体の移動速度)を算出するとともにフレーム単位での移動体の回転量(移動体の回転速度)を算出して移動体の座標変換マトリクスMを求める。そして第K−1のフレームでの移動体の頂点座標PK−1に座標変換マトリクスMを乗算して第Kのフレームでの移動体の頂点座標PK(=PK−1×M)を求めている。
【0056】
判定部112は、第2の仮想カメラの画角内に、特定オブジェクトあるいは特定オブジェクトの特定部位が存在するか否かを判定する。具体的には判定部112は、第2の仮想カメラの位置と特定オブジェクトの代表点とを結ぶベクトルが、第2の仮想カメラの画角内に入るか否かを判定する。あるいは判定部112は、第2の仮想カメラの位置と特定部位の代表点とを結ぶベクトルが、第2の仮想カメラの画角内に入るか否かを判定する。
【0057】
更に判定部112は、第2の仮想カメラの位置と特定オブジェクトの代表点とを結ぶベクトルと、特定オブジェクトの代表点に設定された法線ベクトルとの内積を求め、特定オブジェクトの代表点が第2の仮想カメラから見えているか否かを判定するようにしてもよい。あるいは判定部112は、第2の仮想カメラの位置と特定部位の代表点とを結ぶベクトルと、特定部位の代表点に設定された法線ベクトルとの内積を求め、特定部位の代表点が第2の仮想カメラから見えているか否かを判定するようにしてもよい。
【0058】
通信制御部114は、他のゲームシステム10に送信するパケットを生成する処理、パケット送信先のゲームシステム10のネットワークアドレスを指定する処理、受信したパケットを記憶部50に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する通信部60の制御処理等を行う。特に本実施形態では、育成ゲームをネットワーク(例えば、インターネット)を利用して実行するために必要なデータパケット及びコマンドパケットを生成する制御や、通信部60を介してデータパケット及びコマンドパケットを送受信させる制御を行う。
【0059】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、第1の表示部18および第2の表示部34に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を、ピクセル単位で画像情報を記憶できる描画バッファ(VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【0060】
特に本実施形態では描画部120は、第1の仮想カメラの位置、向き、画角に基づいて頂点処理を行い、第1の仮想カメラから見た画像を第1の描画バッファ52(第1の描画領域の一例)に描画すると同時に、第2の仮想カメラの位置、向き、画角に基づいて頂点処理を行い、第2の仮想カメラから見た画像を第2の描画バッファ53(第2の描画領域の一例)に描画する。
【0061】
なお描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0062】
そして描画部120は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0063】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部51に保存される。
【0064】
テクスチャマッピングは、記憶部50に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部50からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0065】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0066】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
【0067】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0068】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部44に出力する。特に本実施形態では、特定オブジェクトに仮想的な音発生源が設定されているとともに、音発生源ごとに音発生源から発生する音データが設定されている。そして音生成部130は、プレーヤからの操作情報やプログラムなどにより音を発生させるイベントが発生した場合に、オブジェクトに設定された仮想的な音発生源の位置と、第1の仮想カメラおよび第2の仮想カメラの少なくとも一方の位置、向き、画角の少なくとも1つとに基づいて、音出力部44に出力させる音を生成する。
【0069】
詳細には音生成部130は、仮想カメラの位置と音発生源とを結ぶベクトルや音発生源に設定されている法線ベクトルに基づいて、仮想カメラと音発生源との位置の関係、相対的な向きの関係、画角内に音発生源が存在するか否かなどに応じて、各音発生源の音データを音出力部44から出力する際の音量や、左右の音出力部44のそれぞれから出力する音量のバランスなど、各音発生源の音データを合成する際の各音発生源の音データの値や割合を決定する。この場合には音生成部130は、例えば特定オブジェクトに設定された仮想的な音発生源に対する第1の仮想カメラとの距離と第2の仮想カメラとの距離との比に応じて、各音発生源の音データの音量の割合を決定することができる。
【0070】
また音生成部130は、例えば、第1の仮想カメラに対応する位置、向き、画角において音を集音する第1の仮想マイクと、第2の仮想カメラに対応する位置、向き、画角において音を集音する第2の仮想マイクとを設定し、各仮想マイクについて各音発生源の音データを合成した上で、各仮想マイクについて合成された音データを合成して音出力部44から音を出力させるようにしてもよい。
【0071】
また音生成部130は、仮想的な音発生源が設定されたオブジェクトの第1の描画バッファ52における描画割合と第2の描画バッファ53における描画割合とに応じて、各音発生源の音データを合成する際の各音発生源の音データの値や割合を決定し、音出力部に出力させる音を生成するようにしてもよい。この場合には音生成部130は、例えば、第1の描画バッファ52に特定オブジェクトが大きく描画されている場合は、特定オブジェクトに設定された仮想的な音発生源の音データの第1の仮想マイクにおける音量を大きくし、第2の描画バッファ53に特定オブジェクトが描画されていない場合は、特定オブジェクトに設定された仮想的な音発生源の音データの第2の仮想マイクにおける音量を小さくするあるいは0にして、音データを合成するようにしてもよい。
【0072】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0073】
3.本実施形態の手法
以下、本実施形態のゲームシステム10の手法について詳細に説明する。本実施形態のゲームシステム10は、オブジェクト空間に第1の仮想カメラと第2の仮想カメラとを設定し、第1の仮想カメラと第2の仮想カメラとを種々の態様で連動させて制御する。これによりゲームシステム10は、1つのオブジェクト空間を第1の仮想カメラから見た画像と第2の仮想カメラ見た画像とを、種々の態様で連動させて表示することができる。
【0074】
3−1.キャラクタの位置情報に応じた連動制御
図3は、本実施形態のゲームシステム10により設定される3次元のオブジェクト空間200の一例を示す図である。図3では、図中の左右方向の軸がX軸、上下方向の軸がY軸、斜め手前奥方向の軸がZ軸となっている。図3に示すようにゲームシステム10は、一定の範囲のオブジェクト空間200に、複数のキャラクタ202や、木オブジェクト204や、地面オブジェクト206などの種々のオブジェクトを設定する。またゲームシステム10は、地面オブジェクト206を覆うように、半球形状の天球オブジェクト208をオブジェクト空間200に設定し、天球オブジェクト208の内側面に空の様子が描かれたテクスチャをマッピングする。
【0075】
更にゲームシステム10は、天球オブジェクト208の内側において地面オブジェクト206を囲むように、円筒形状の背景オブジェクト210をオブジェクト空間200に設定し、背景オブジェクト210の内側面に木々や山々などの背景の様子が描かれたテクスチャをマッピングする。そしてゲームシステム10は、背景オブジェクト210の内側に仮想カメラを設定し、オブジェクト空間200を仮想カメラから見た画像を描画することにより、一定の範囲のオブジェクト空間200を、実際の範囲よりも広大な空間であるかのように見せている。
【0076】
そしてゲームシステム10は、図3に示すように、オブジェクト空間200において人間の身長に合わせて地面オブジェクト206から1.6m(「m」はオブジェクト空間200における仮想的な長さの単位)程度の高さに、第1の仮想カメラ212を設定する。そしてゲームシステム10は、いずれかのキャラクタ202に第1の仮想カメラ212の注視点を設定し、注視点を設定したキャラクタ202から1.0m程度離れた位置から注視点を向くように第1の仮想カメラ212の位置と向きとを制御する。
【0077】
ここで各キャラクタ202は、移動・動作アルゴリズムなどにより自動的に地面オブジェクト206上を歩き回るように移動・動作が制御され、高さが0.6m〜1.0m程度とされ、各キャラクタ202の中央付近に注視点が設定される。従って図1で示したように、第1の仮想カメラ212から見た画像が表示される第1の表示部18には、地面オブジェクト206から1.6m程度の高さから水平に対して45°程度の角度で見下ろすようにキャラクタ202を見た画像が表示される。
【0078】
また各キャラクタ202は、通常は地面オブジェクト206上で移動・動作が制御されるが、所定の条件が満たされると、図3に示す木オブジェクト204を登るように移動・動作が制御される。ここで、木オブジェクト204を登るキャラクタ202とともに第1の仮想カメラ212の位置を移動させ、木オブジェクト204を登るキャラクタ202の上方から第1の仮想カメラ212の向きを下方に向けると、背景オブジェクト210に背景用のテクスチャがマッピングされていることが明らかとなる不自然な画像が表示されてしまう。一方、かかる事態を防止するために第1の仮想カメラ212の位置の高さを変化させずに、木オブジェクト204を登るキャラクタ202に第1の仮想カメラ212の注視点を設定し続けると、第1の仮想カメラ212の向きが上方に向くため、地面オブジェクト206上に存在する他のキャラクタ202が表示されなくなってしまう。
【0079】
そこでゲームシステム10は、図3に示すように、第1の仮想カメラ212の上方に第2の仮想カメラ214をオブジェクト空間200に設定しつつ、第1の仮想カメラ212を制御するための第1の制御情報がとり得る値に制限範囲を設定する。そしてゲームシステム10は、制限範囲内の値で第1の制御情報を演算するとともに、第2の仮想カメラ214を制御するための第2の制御情報が第1の制御情報の制限範囲外の値となるように第1の制御情報に基づいて第2の制御情報を演算する。
【0080】
図4は、第1の制御情報と第2の制御情報の関係の一例を説明するための図である。図4では、図中の手前奥方向の軸がX軸、上下方向の軸がY軸、左右方向の軸がZ軸となっている。図4に示すようにゲームシステム10は、第1の仮想カメラ212の位置の上方1m(地面オブジェクト206から2.6m)の高さに第2の仮想カメラ214を設定し、第1の仮想カメラ212の向きの90°上方を向くように第2の仮想カメラ214の向きを制御する。従って図1で示したように、第2の仮想カメラ214から見た画像が表示される第2の表示部34には、地面オブジェクト206から2.6m程度の高さから水平に対して45°程度の角度で見上げるようにオブジェクト空間200を見た画像が表示される。
【0081】
そしてゲームシステム10は、注視点を設定したキャラクタ202が移動すると、第1の仮想カメラ212がキャラクタ202の移動に追従するように、移動後の注視点の位置座標に基づいて、第1の仮想カメラ212を制御するための第1の制御情報を演算する。そしてゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214を制御するための第2の制御情報を演算する。具体的にはゲームシステム10は、第1の仮想カメラ212の位置情報(第1の制御情報の構成要素)のうち高さを示すY座標の値に1.0m分の座標値αを加算することにより、第2の仮想カメラ214の位置情報(第2の制御情報の構成要素)を演算し、第2の仮想カメラ214のX軸回りの回転角度が第1の仮想カメラ212のX軸回りの回転角度から90°上向きとなるように第2の仮想カメラ214の向き(第2の制御情報の構成要素)を演算する。すなわちゲームシステム10は、第1の制御情報を第2の制御情報に変換することにより、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0082】
そして図5に示すように、第1の仮想カメラ212の注視点を設定したキャラクタ202が木オブジェクト204を登ることにより、そのキャラクタ202の位置が第1の仮想カメラ212の位置よりも高い位置に移動した場合であっても、ゲームシステム10は、第1の仮想カメラ212の位置の高さを変化させないように制御するとともに、第1の仮想カメラ212の向きを水平方向よりも上方に向けないように制御する。すなわちゲームシステム10は、第1の仮想カメラ212の位置の高さと上方の向きに制限範囲を設定しつつ、制限範囲が設定されることにより第1の仮想カメラ212が撮影することができない(画角に入らない)範囲のオブジェクト空間200を第2の仮想カメラ214が撮影するように、第1の仮想カメラ212と第2の仮想カメラ214とを制御している。これによりゲームシステム10は、不自然な画像が表示されない範囲で、地面オブジェクト206上に存在する他のキャラクタ202の様子を示す画像を第1の表示部18に表示させつつ、木を登るキャラクタ202の様子を示す画像を第2の表示部34に表示させることができる。
【0083】
3−2.第2の描画領域の描画
このようにゲームシステム10は、第1の仮想カメラ212に関してはいずれかのキャラクタ202に注視点を設定して位置、向きを制御しているが、第2の仮想カメラ214に関しては第1の仮想カメラ212の位置、向きの変化に連動するように位置、向きを制御しているため、第2の仮想カメラ214の画角内にキャラクタ202が存在しないことが多い。従って、図1で示したように、第2の表示部34にキャラクタ202が表示されないことが多い。そこでゲームシステム10は、第1の仮想カメラ212と第2の仮想カメラ214とを連動させて制御しているときに、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過すると、図6(A)に示すように、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画し、第2の表示部34に特殊画像を表示させる。
【0084】
ここでゲームシステム10は、予め描画された画像データとして、過去のゲームの進行中において第1の表示部18の描画領域である第1の描画領域または第2の表示部34の描画領域である第2の描画領域に描画された画像データを用いている。そのためゲームシステム10は、キャラクタ202が木に登るなどの特定のイベントが発生した場合に、第1の描画領域または第2の描画領域に描画された画像データの複製を保存データとして記憶部に記憶させる。またゲームシステム10は、第2の仮想カメラ214の画角内にキャラクタ202が存在する場合に、第2の描画領域に描画された画像データの複製を保存データとして記憶部に記憶させる。
【0085】
これによりゲームシステム10は、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過した場合に、過去のゲームの進行中において描画された画像を第2の表示部34に表示させることにより、例えば育成対象であるキャラクタ202の過去の様子を顧みるような演出を行うことができる。そしてゲームシステム10は、第2の表示部34に特殊画像を表示させている間にキャラクタ202が木に登るイベントが発生すると、第2の仮想カメラ214から見た画像を第2の描画領域に描画する処理を再開し、第2の表示部34に第2の仮想カメラ214から見た画像を表示させる。
【0086】
ここでゲームシステム10は、過去のゲームの進行中において描画された画像データが未だない場合には、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過すると、第1の仮想カメラ212と第2の仮想カメラ214の連動制御を中断して、第1の制御情報に依らずに第2の制御情報を演算する。例えばゲームシステム10は、第2の表示部34にキャラクタ202が表示されない状態で所定期間が経過すると、第1の仮想カメラ212の注視点が設定されているキャラクタ202に第2の仮想カメラ214の注視点を設定する、または図6(B)に示すように、第1の仮想カメラ212の注視点が設定されていない他のキャラクタ202に第2の仮想カメラ214の注視点を設定する。そしてゲームシステム10は、第2の仮想カメラ214がキャラクタ202の移動に追従するように、移動後の注視点の位置座標に基づいて、第2の仮想カメラ214を制御するための第2の制御情報を演算する。またゲームシステム10は、所与のイベントの発生に基づいて、発生したイベントに対応するオブジェクトに注視点を設定して第2の仮想カメラ214の制御を行うようにしてもよい。あるいは発生したイベントに対応する予め定められた制御情報を用いて第2の仮想カメラ214の制御を行うようにしてもよい。
【0087】
3−3.操作情報に応じた連動制御
本実施形態のゲームシステム10は、上述した相対的に狭いオブジェクト空間200の他に、相対的に広いオブジェクト空間200のオブジェクトデータを情報記憶媒体に格納している。そしてゲームシステム10は、プレーヤからの操作情報やプログラムなどに基づいて、情報記憶媒体から相対的に広いオブジェクト空間200のオブジェクトデータを読み出し、第1の仮想カメラ212と第2の仮想カメラ214とを設定するオブジェクト空間200を、比較的狭いオブジェクト空間200から比較的広いオブジェクト空間200に変更する。
【0088】
ここで複数のキャラクタ202は、相対的に広いオブジェクト空間200においても移動・動作アルゴリズムなどにより自動的に地面オブジェクト206上を歩き回るように移動・動作が制御されているが、第1の仮想カメラ212と第2の仮想カメラ214とは、各キャラクタ202の位置とは無関係にこのオブジェクト空間200に設定される。従って第1の仮想カメラ212と第2の仮想カメラ214とを設定するオブジェクト空間200が、比較的狭いオブジェクト空間200から比較的広いオブジェクト空間200に変更されると、第1の仮想カメラ212および第2の仮想カメラ214のいずれの画角内にもキャラクタ202が存在しないことが多い。そこでこのような場合にはゲームシステム10は、プレーヤからの操作情報に基づいて、第1の仮想カメラ212および第2の仮想カメラ214の位置、向き、画角を制御することにより、プレーヤにキャラクタ202を探させるようにしている。
【0089】
図7は、このような場合における第1の制御情報と第2の制御情報の関係の一例を説明するための図である。図7では、図中の左右方向の軸がX軸、上下方向の軸がY軸、手前奥方向の軸がZ軸となっている。図7に示すようにゲームシステム10は、まず第1の仮想カメラ212の位置の上方1mの高さに第2の仮想カメラ214を設定する。そしてゲームシステム10は、例えば図1で示した十字キー20に対してプレーヤが右方向を指定する操作を行うと、図7に示すように、第1の仮想カメラ212の向きが右方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の向きが左方向に変化するように第2の制御情報を演算する。またゲームシステム10は、十字キー20に対してプレーヤが下方向を指定する操作を行うと、図8に示すように、第1の仮想カメラ212の向きが下方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の向きが上方向に変化するように第2の制御情報を演算する。
【0090】
すなわちゲームシステム10は、プレーヤからの操作情報に基づいて第1の制御情報を演算すると、第1の仮想カメラ212の向きと第2の仮想カメラ214の向きとが平行になる状態の向きを基準向きとして、第1の仮想カメラ212の向きと第2の仮想カメラ214の向きとが異なる方向に変化するように、第1の制御情報を第2の制御情報に変換する(向き変換処理の一例)。これによりゲームシステム10は、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0091】
具体的にはゲームシステム10は、第1の仮想カメラ212と第2の仮想カメラ214の向きをそれぞれの注視点の位置座標により設定しており、操作情報に基づいてそれぞれの注視点の位置座標を変化させることにより、第1の仮想カメラ212と第2の仮想カメラ214の向きを変化させている。そしてゲームシステム10は、操作情報に基づいて第1の仮想カメラ212の注視点の位置座標を変化させると、第1の仮想カメラ212の基準向きにおける注視点の位置座標からの各座標値の変化量を、第2の仮想カメラ214の基準向きにおける注視点の位置座標から減算することにより第2の仮想カメラ214の注視点の位置座標を演算する。例えば第1の仮想カメラ212の注視点の位置座標の変化量が(5,−4,−2)である場合には、第2の仮想カメラ214の基準向きにおける注視点の位置座標から(5,−4,−2)を減算することにより変化後の第2の仮想カメラ214の注視点の位置座標を求める。
【0092】
なおゲームシステム10は、プレーヤが十字キー20に対して向きを指定する操作を行っている間、第1の仮想カメラ212の向きに対する第2の仮想カメラ214の向きを変化させ、プレーヤが十字キー20に対して向きを指定する操作を終了すると、変化後の第1の仮想カメラ212の向きに平行となるように第2の仮想カメラ214の向きを変化させる。またはゲームシステム10は、プレーヤが十字キー20に対して向きを指定する操作を終了すると、第1の仮想カメラ212と第2の仮想カメラ214の向きを変化前の基準向きに戻すようにしてもよい。
【0093】
またゲームシステム10は、図1で示した第1の表示部18に対してプレーヤが中心よりも右側を指定する接触操作を行うと、図9に示すように、第1の仮想カメラ212の位置が右方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の位置が左方向に変化するように第2の制御情報を演算する。
【0094】
またゲームシステム10は、図1で示した第3ボタン26を押下する操作を行うと、第1の仮想カメラ212の位置が前方向に変化するように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の位置が後ろ方向に変化するように第2の制御情報を演算する。
【0095】
すなわちゲームシステム10は、プレーヤからの操作情報に基づいて第1の制御情報を演算すると、第2の仮想カメラ214の位置が第1の仮想カメラ212の位置の真上となる状態(X座標値とZ座標値とが同一である状態)の位置を基準位置として、第1の仮想カメラ212の位置と第2の仮想カメラ214の位置とが異なる方向に変化するように、第1の制御情報を第2の制御情報に変換する(位置変換処理の一例)。これによりゲームシステム10は、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0096】
具体的にはゲームシステム10は、操作情報に基づいて第1の仮想カメラ212の位置座標を変化させると、第1の仮想カメラ212の基準位置の位置座標からの各座標値の変化量を、第2の仮想カメラ214の基準位置の位置座標から減算することにより第2の仮想カメラ214の位置座標を演算する。例えば第1の仮想カメラ212の位置座標の変化量が(5,−4,−2)である場合には、第2の仮想カメラ214の基準位置の位置座標から(5,−4,−2)を減算することにより第2の仮想カメラ214の位置座標を求める。
【0097】
なおゲームシステム10は、プレーヤが第1の表示部18に対して位置を指定する接触操作を行っている間、第1の仮想カメラ212の位置に対する第2の仮想カメラ214の位置を変化させ、プレーヤが第1の表示部18に対して位置を指定する接触操作を終了すると、変化後の第1の仮想カメラ212の位置の真上となる位置に第2の仮想カメラ214の位置を移動させる。またはゲームシステム10は、プレーヤが第1の表示部18に対して位置を指定する接触操作を終了すると、第1の仮想カメラ212と第2の仮想カメラ214の位置を変化前の基準位置に戻すようにしてもよい。
【0098】
またゲームシステム10は、図1で示した第1ボタン22を押下する操作を行うと、図10に示すように、第1の仮想カメラ212の画角が広くなるように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の画角が狭くなるように第2の制御情報を演算する。一方ゲームシステム10は、第2ボタン24を押下する操作を行うと、第1の仮想カメラ212の画角が狭くなるように第1の制御情報を演算する。するとゲームシステム10は、演算した第1の制御情報を変換して、第2の仮想カメラ214の画角が広くなるように第2の制御情報を演算する。
【0099】
すなわちゲームシステム10は、プレーヤからの操作情報に基づいて第1の制御情報を演算すると、第1の仮想カメラ212と第2の仮想カメラ214の画角がいずれも45°となる状態を基準画角として、第1の仮想カメラ212の画角と第2の仮想カメラ214の画角との比が変化するように、第1の制御情報を第2の制御情報に変換する(画角変換処理の一例)。これによりゲームシステム10は、第1の仮想カメラ212から見た画像の変化に連動させて第2の仮想カメラ214から見た画像を変化させる。
【0100】
具体的にはゲームシステム10は、操作情報に基づいて第1の仮想カメラ212の画角を変化させると、第1の仮想カメラ212の基準画角からの変化量を、第2の仮想カメラ214の画角から減算することにより第2の制御情報を演算する。例えば第1の仮想カメラ212の画角の変化量が5°である場合には、第2の仮想カメラ214の基準画角から5°を減算することにより第2の仮想カメラ214の画角を求める。
【0101】
なおゲームシステム10は、プレーヤが第1ボタン22または第2ボタン24に対して押下操作を行っている間、第1の仮想カメラ212の画角と第2の仮想カメラ214の画角との比を変化させ、プレーヤが第1ボタン22または第2ボタン24に対して押下操作を終了すると、第1の仮想カメラ212と第2の仮想カメラ214の画角を変化前の基準画角に戻す。
【0102】
そしてゲームシステム10は、プレーヤが第1の仮想カメラ212の画角内にキャラクタ202を収めることにより、第1の表示部18にキャラクタ202が表示されている状態で、プレーヤが第1の表示部18に対してキャラクタ202が表示されている位置を指定する接触操作を行うと、接触操作を行ったキャラクタ202に第1の仮想カメラ212の注視点を設定する。そしてゲームシステム10は、上述したようなキャラクタ202の位置情報に応じた第1の仮想カメラ212と第2の仮想カメラ214の連動制御を行う。
【0103】
3−4.イベント発生に応じた連動制御
本実施形態のゲームシステム10は、相対的に広いオブジェクト空間200においても、キャラクタ202が木オブジェクト204に登るイベントが発生する。ここで相対的に広いオブジェクト空間200では、上述した相対的に狭いオブジェクト空間200よりも、木オブジェクト204を登るキャラクタ202の上方から第2の仮想カメラ214の向きを下方に向けることにより不自然な画像が表示されるおそれが少なくなる。そこでゲームシステム10は、相対的に広いオブジェクト空間200に第1の仮想カメラ212と第2の仮想カメラ214とが設定されている場合には、キャラクタ202が木オブジェクト204に登るイベントが発生すると、第1の仮想カメラ212がキャラクタ202の下方からキャラクタ202を見上げるように、第2の仮想カメラ214がキャラクタ202の上方からキャラクタ202を見下ろすように、第1の仮想カメラ212と第2の仮想カメラ214の位置と向きとを制御する。
【0104】
詳細にはゲームシステム10は、相対的に広いオブジェクト空間200においても、キャラクタ202が木オブジェクト204に登るイベントが発生するまでは、図4で示したように、第1の仮想カメラ212の位置の上方1mの高さに第2の仮想カメラ214を設定し、第1の仮想カメラ212の向きの90°上方を向くように第2の仮想カメラ214の向きを制御する。そして相対的に広いオブジェクト空間200においては、キャラクタ202が木オブジェクト204に登るイベントが発生すると、図11に示すように、ゲームシステム10は第1の仮想カメラ212の位置と第2の仮想カメラ214の位置との間の距離を1mから3mに変更する(位置変更処理の一例)。
【0105】
そしてゲームシステム10は、第1の仮想カメラ212の注視点と第2の仮想カメラ214の注視点とを同一のキャラクタ202に設定する(向き変更処理の一例)。特にゲームシステム10は、図11に示すように、第1の仮想カメラ212の注視点をキャラクタ202の臀部に設定し、第2の仮想カメラ214の注視点をキャラクタ202の頭部に設定する。
【0106】
更にゲームシステム10は、キャラクタ202が木オブジェクト204に登るイベントが発生する前よりも第1の仮想カメラ212の画角と第2の仮想カメラ214の画角とが狭くなるように変更する(画角変更処理の一例)。これにより木オブジェクト204を登るキャラクタ202の上方から第2の仮想カメラ214を下方に向けても、画角を狭くすることにより背景オブジェクト210が第2の仮想カメラ214の画角に入ることを防止することができ、不自然な画像が表示されることを防止することができる。
【0107】
そしてゲームシステム10は、キャラクタ202の位置が変化すると、第1の仮想カメラ212の位置と第2の仮想カメラ214の位置との関係を、第2の仮想カメラ214が第1の仮想カメラ212の真上であって互いの距離が3mである状態に保ちつつ、第1の仮想カメラ212が第1の仮想カメラ212の注視点を向き、第2の仮想カメラ214が第2の仮想カメラ214の注視点を向くように第1の制御情報と第2の制御情報を演算する(向き変更処理の一例)。これにより図12に示すように、第1の仮想カメラ212から見た画像が表示される第1の表示部18には、木オブジェクト204に登るキャラクタ202に追従しつつキャラクタ202の下方から臀部を見上げる画像が表示され、第2の仮想カメラ214から見た画像が表示される第2の表示部34には、木オブジェクト204に登るキャラクタ202に追従しつつキャラクタ202の上方から頭部を見下ろす画像が表示される。
【0108】
またゲームシステム10は、第1の仮想カメラ212の注視点をキャラクタ202の臀部に設定し、第2の仮想カメラ214の注視点をキャラクタ202の頭部に設定する場合には、第1の仮想カメラ212の注視点にキャラクタ202の臀部用の第1の音発生源を設定し、第2の仮想カメラ214の注視点にキャラクタ202の頭部用の第2の音発生源を設定する。そしてゲームシステム10は、プレーヤからの操作情報やプログラムなどにより第1の音発生源から音を発生させるイベントが発生した場合に、第1の音発生源の位置と第1の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部44に出力させる音を生成する。またゲームシステム10は、プレーヤからの操作情報やプログラムなどにより第2の音発生源の音を発生させるイベントが発生した場合に、第2の音発生源の位置と第2の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部44に出力させる音を生成する。これによりゲームシステム10では、第1の表示部18に表示する画像と第2の表示部34に表示する画像の変化に連動させて出力音を変化させることができる。
【0109】
またゲームシステム10では、キャラクタ202が木オブジェクト204の上端まで登ると、相対的に広いオブジェクト空間200であっても、木オブジェクト204の上端まで登ったキャラクタ202の上方から第2の仮想カメラ214の向きを下方に向けると不自然な画像が表示されるおそれがある。そこでゲームシステム10は、キャラクタ202が木オブジェクト204の先端まで登る特殊イベントが発生すると、図13に示すように、第1の仮想カメラ212の位置と第2の仮想カメラ214の位置との間の距離を3mから1mに変更する(位置変更処理の一例)。そしてゲームシステム10は、第1の仮想カメラ212の向きと第2の仮想カメラ214の向きとを水平方向に変更する(向き変更処理の一例)。更にゲームシステム10は、キャラクタ202の位置情報に基づいて、第1の仮想カメラ212の角錐台形状の視界範囲の上側の側面と、第2の仮想カメラ214の角錐台形状の視界範囲の下側の側面との交線が、キャラクタ202の位置に対応するように画角を変更する(画角変更処理の一例)。これによりゲームシステム10は、不自然な画像が表示されることを防止しつつ、第1の表示部18に表示された画像と第2の表示部34に表示された画像とを隣接させると各表示部に部分的に描画されたキャラクタ202が接合されるようにキャラクタ202を描画することができる。
【0110】
4.本実施形態の処理の流れ
図14は、本実施形態のゲームシステム10において、特殊画像を描画する場合に行われる特殊画像描画処理の詳細を示すフローチャートである。図14に示すように特殊画像描画処理では、ゲームシステム10は、1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていたか否かを判断し(ステップS10)、第2の描画領域にキャラクタ202が描画されていた場合には(ステップS10でY)、第2の仮想カメラ214から見た画像を描画する(ステップS12)。また、1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていない場合には(ステップS10でN)、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過していないか否かを判断し(ステップS14)、所定期間が経過していない場合には(ステップS14でY)、第2の仮想カメラ214から見た画像を描画する(ステップS12)。また、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過した場合には(ステップS14でN)、特定イベントが発生したか否かを判断し(ステップS16)、特定イベントが発生した場合には(ステップS16でY)、第2の仮想カメラ214から見た画像を描画する(ステップS12)。一方、特定イベントが発生していない場合には(ステップS16でN)、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画する(ステップS18)。
【0111】
図15は、本実施形態のゲームシステム10において、特殊画像用の画像データが未だない場合に行われる仮想カメラ制御処理1の詳細を示すフローチャートである。図15に示すように仮想カメラ制御処理1では、ゲームシステム10は、キャラクタ202が移動することにより注視点が移動すると(ステップS20でY)、注視点の位置情報に基づいて第1の制御情報を演算する(ステップS22)。そして第1の制御情報を用いて第1の仮想カメラ212を制御する(ステップS24)。ここで1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていた場合には(ステップS26でY)、第1の制御情報を第2の制御情報に変換する(ステップS28)。そして第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS30)。
【0112】
また、1フレーム前の描画処理において第2の描画領域にキャラクタ202が描画されていない場合には(ステップS26でN)、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過していないか否かを判断し(ステップS32)、所定期間が経過していない場合には(ステップS32でY)、第1の制御情報を第2の制御情報に変換する(ステップS28)。また、第2の描画領域にキャラクタ202が描画されていない状態で所定期間が経過した場合には(ステップS32でN)、特定イベントが発生したか否かを判断し(ステップS34)、特定イベントが発生した場合には(ステップS34でY)、第1の制御情報を第2の制御情報に変換する(ステップS28)。
【0113】
一方、特定イベントが発生していない場合には(ステップS34でN)、他のキャラクタ202に第2の仮想カメラ214の注視点を設定する(ステップS36)。そして注視点の位置座標に基づいて第2の制御情報を演算し(ステップS38)、第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS30)。
【0114】
図16は、本実施形態のゲームシステム10において、操作情報に応じて行われる仮想カメラ制御処理2の詳細を示すフローチャートである。図16に示すように仮想カメラ制御処理2では、ゲームシステム10は、操作情報が入力されると(ステップS50でY)、操作情報に基づいて第1の制御情報を演算する(ステップS52)。そして第1の制御情報を用いて第1の仮想カメラ212を制御する(ステップS54)。そして、第1の制御情報を、上述した位置変換処理、向き変換処理、画角変換処理を行うことにより第2の制御情報に変換する(ステップS56)。そして第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS58)。そして、第1の描画領域にキャラクタ202が描画されている状態で、プレーヤがキャラクタ202の表示位置に対して接触操作を行うことによりキャラクタ202に第1の仮想カメラ212の注視点が設定されると(ステップS60でY)、仮想カメラの制御を上述した仮想カメラ制御処理1に切り替える(ステップS62)。
【0115】
図17は、本実施形態のゲームシステム10において、特定イベントが発生した場合に行われる仮想カメラ制御処理3の詳細を示すフローチャートである。図17に示すように仮想カメラ制御処理3では、ゲームシステム10は、特定イベントが発生していない場合には(ステップS70でY)、キャラクタ202が移動することにより注視点が移動すると(ステップS72でY)、注視点の位置情報に基づいて第1の制御情報を演算する(ステップS74)。そして第1の制御情報を用いて第1の仮想カメラ212を制御する(ステップS76)。そして第1の制御情報を第2の制御情報に変換し(ステップS78)、第2の制御情報を用いて第2の仮想カメラ214を制御する(ステップS80)。
【0116】
一方、特定イベントが発生した場合には(ステップS70でN)、上述した位置変更処理、向き変更処理、画角変更処理を行う(ステップS82)。そしてキャラクタ202が移動することにより注視点が移動すると(ステップS84でY)、第1の仮想カメラ212の注視点の位置情報に基づいて、第1の制御情報の構成要素である第1の位置情報と第1の向き情報とを演算する(ステップS86)。そして第1の位置情報と第1の向き情報(第1の制御情報)を用いて第1の仮想カメラ212を制御する(ステップS88)。そして第1の制御情報のうち第1の位置情報を第2の制御情報の構成要素である第2の位置情報に変換する(ステップS90)。そしてキャラクタ202が移動することにより移動した第2の仮想カメラ214の注視点の位置情報に基づいて、第2の制御情報の構成要素である第2の向き情報を演算する(ステップS92)。そして第2の位置情報と第2の向き情報(第2の制御情報)を用いて第2の仮想カメラ214を制御する(ステップS94)。そして特定イベントが終了した場合は(ステップS96でY)処理を終了し、特定イベントが終了しない場合は(ステップS96でN)、ステップS84からステップS96までの処理を繰り返す。
【0117】
5.変形例
上記実施形態で説明した手法は、一例を示したに過ぎず、上記実施形態の手法と同様の効果を奏する均等な手法を採用した場合においても本発明の範囲に含めることができる。また本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。そして上記実施形態の手法や、変形例として後述する各種の手法は、本発明を実現する手法として適宜組み合わせて採用することができる。
【0118】
例えば上述した実施形態では、第1の表示部18が操作部40としても機能する例を挙げて説明したが、第2の表示部34も操作部40として機能するようにしてもよい。また上述した実施形態では、第1の描画領域に対応して第1の表示部18が設けられ、第2の描画領域に対応して第2の表示部34が設けられている例を挙げて説明したが、1つの表示部の表示領域を、第1の描画領域に対応する表示領域と第2の描画領域に対応する表示領域とに分割するようにしてもよい。また第1の描画領域と第2の描画領域とは、それぞれ個別の記憶装置として設けられるようにしてもよいし、1つの記憶装置のメモリ領域を分割した各領域として設けられるようにしてもよい。
【0119】
また上述した実施形態では、予め描画された画像データとして過去のゲームの進行中において描画された画像データを用いる例を挙げて説明したが、例えばゲームシステム10のソフトウェアの作成時に情報記憶媒体に格納されたものとしてもよい。
【0120】
また本発明は、携帯型のゲームシステムの他に、業務用ゲームシステム、据え置き型の家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0121】
【図1】本実施形態のゲームシステム10の外観を示す図。
【図2】本実施形態のゲームシステム10の機能ブロック図。
【図3】本実施形態のゲームシステム10のオブジェクト空間を示す図。
【図4】本実施形態のゲームシステム10の制御手法の説明図。
【図5】本実施形態のゲームシステム10の制御手法の説明図。
【図6】本実施形態のゲームシステム10で生成される画像を示す図。
【図7】本実施形態のゲームシステム10の制御手法の説明図。
【図8】本実施形態のゲームシステム10の制御手法の説明図。
【図9】本実施形態のゲームシステム10の制御手法の説明図。
【図10】本実施形態のゲームシステム10の制御手法の説明図。
【図11】本実施形態のゲームシステム10の制御手法の説明図。
【図12】本実施形態のゲームシステム10で生成される画像を示す図。
【図13】本実施形態のゲームシステム10の制御手法の説明図。
【図14】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【図15】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【図16】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【図17】本実施形態のゲームシステム10の処理の流れを示すフローチャート図。
【符号の説明】
【0122】
10 ゲームシステム、12 本体下部、14 本体上部、16 ヒンジ部、
18 第1の表示部、20 十字キー、22 第1ボタン、24 第2ボタン、
28 第4ボタン、30 スタートボタン、32 セレクトボタン、
34 第2の表示部、36 スピーカ、38 マイク、
40 操作部、42 音入力部、44 音出力部、46 情報記憶媒体、50 記憶部、
60 通信部、100 処理部、102 ゲーム処理部、104 表示制御部、
106 オブジェクト空間設定部、108 仮想カメラ制御部、
110 移動・動作制御部、112 判定部、114 通信制御部、
200 オブジェクト空間、202 キャラクタ、204 木オブジェクト、
206 地面オブジェクト、208 天球オブジェクト、210 背景オブジェクト、
212 第1の仮想カメラ、214 第2の仮想カメラ、
【特許請求の範囲】
【請求項1】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させ、
前記仮想カメラ制御部は、
前記第1の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値に制限範囲を設定することにより、前記制限範囲内の値で前記第1の制御情報を演算するとともに、前記第2の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値が前記制限範囲外の値となるように前記第1の制御情報に基づいて第2の制御情報を演算することを特徴とするプログラム。
【請求項2】
請求項1において、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部としてコンピュータを更に機能させ、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、
前記描画部は、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画することを特徴とするプログラム。
【請求項3】
請求項1において、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部としてコンピュータを更に機能させ、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、前記第1の制御情報に基づかない制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うことを特徴とするプログラム。
【請求項4】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させ、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する位置変換処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する向き変換処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する画角変換処理の少なくとも1つを行うことを特徴とするプログラム。
【請求項5】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させ、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係を変化させる位置変更処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係を変化させる向き変更処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係を変化させる画角変更処理の少なくとも1つを行うことを特徴とするプログラム。
【請求項6】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記特定オブジェクトの位置情報に基づいて第1の制御情報を演算し、前記第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記特定オブジェクトの位置情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させることを特徴とするプログラム。
【請求項7】
請求項6において、
前記仮想カメラ制御部は、
前記特定オブジェクトの第1の部位の位置情報に基づいて第1の制御情報を演算し、前記特定オブジェクトの第2の部位の位置情報に基づいて第2の制御情報を演算することを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
オブジェクトに設定された仮想的な音発生源の位置と、前記第1の仮想カメラおよび前記第2の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部に出力させる音を生成する音生成部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項9】
請求項1〜7のいずれかにおいて、
仮想的な音発生源が設定されたオブジェクトの前記第1の描画領域における描画割合と前記第2の描画領域における描画割合とに応じて、音出力部に出力させる音を生成する音生成部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかにおいて、
前記仮想カメラ制御部は、
所与の条件が満たされた場合に、前記特定オブジェクトの位置情報に基づいて、前記第1の仮想カメラの角錐台形状の視界範囲の側面と前記第2の仮想カメラの角錐台形状の視界範囲の側面との交線が、前記特定オブジェクトの位置に対応するように前記第1の仮想カメラと前記第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うことを特徴とするプログラム。
【請求項11】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項1〜10のいずれかに記載されたプログラムを記憶することを特徴とする情報記憶媒体。
【請求項12】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
前記第1の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値に制限範囲を設定することにより、前記制限範囲内の値で前記第1の制御情報を演算するとともに、前記第2の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値が前記制限範囲外の値となるように前記第1の制御情報に基づいて第2の制御情報を演算することを特徴とする画像生成システム。
【請求項13】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する位置変換処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する向き変換処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する画角変換処理の少なくとも1つを行うことを特徴とする画像生成システム。
【請求項14】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係を変化させる位置変更処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係を変化させる向き変更処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係を変化させる画角変更処理の少なくとも1つを行うことを特徴とする画像生成システム。
【請求項15】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記特定オブジェクトの位置情報に基づいて第1の制御情報を演算し、前記第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記特定オブジェクトの位置情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部と、
を含むことを特徴とする画像生成システム。
【請求項1】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させ、
前記仮想カメラ制御部は、
前記第1の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値に制限範囲を設定することにより、前記制限範囲内の値で前記第1の制御情報を演算するとともに、前記第2の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値が前記制限範囲外の値となるように前記第1の制御情報に基づいて第2の制御情報を演算することを特徴とするプログラム。
【請求項2】
請求項1において、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部としてコンピュータを更に機能させ、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、
前記描画部は、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、記憶部に記憶されている予め描画された画像データに基づいて、特殊画像を第2の描画領域に描画することを特徴とするプログラム。
【請求項3】
請求項1において、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記第2の仮想カメラの画角内に前記特定オブジェクトが存在するか否かを判定する判定部としてコンピュータを更に機能させ、
前記仮想カメラ制御部は、
前記特定オブジェクトの位置情報に基づいて前記第1の制御情報を演算し、前記第2の仮想カメラの画角内に前記特定オブジェクトが存在しない場合に、前記第1の制御情報に基づかない制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うことを特徴とするプログラム。
【請求項4】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させ、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する位置変換処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する向き変換処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する画角変換処理の少なくとも1つを行うことを特徴とするプログラム。
【請求項5】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させ、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係を変化させる位置変更処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係を変化させる向き変更処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係を変化させる画角変更処理の少なくとも1つを行うことを特徴とするプログラム。
【請求項6】
画像を生成するためのプログラムであって、
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記特定オブジェクトの位置情報に基づいて第1の制御情報を演算し、前記第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記特定オブジェクトの位置情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部としてコンピュータを機能させることを特徴とするプログラム。
【請求項7】
請求項6において、
前記仮想カメラ制御部は、
前記特定オブジェクトの第1の部位の位置情報に基づいて第1の制御情報を演算し、前記特定オブジェクトの第2の部位の位置情報に基づいて第2の制御情報を演算することを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
オブジェクトに設定された仮想的な音発生源の位置と、前記第1の仮想カメラおよび前記第2の仮想カメラの位置、向き、画角の少なくとも1つとに基づいて、音出力部に出力させる音を生成する音生成部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項9】
請求項1〜7のいずれかにおいて、
仮想的な音発生源が設定されたオブジェクトの前記第1の描画領域における描画割合と前記第2の描画領域における描画割合とに応じて、音出力部に出力させる音を生成する音生成部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかにおいて、
前記仮想カメラ制御部は、
所与の条件が満たされた場合に、前記特定オブジェクトの位置情報に基づいて、前記第1の仮想カメラの角錐台形状の視界範囲の側面と前記第2の仮想カメラの角錐台形状の視界範囲の側面との交線が、前記特定オブジェクトの位置に対応するように前記第1の仮想カメラと前記第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うことを特徴とするプログラム。
【請求項11】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項1〜10のいずれかに記載されたプログラムを記憶することを特徴とする情報記憶媒体。
【請求項12】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
前記第1の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値に制限範囲を設定することにより、前記制限範囲内の値で前記第1の制御情報を演算するとともに、前記第2の制御情報のうち位置の制御情報、向きの制御情報、画角の制御情報の少なくとも1つがとり得る値が前記制限範囲外の値となるように前記第1の制御情報に基づいて第2の制御情報を演算することを特徴とする画像生成システム。
【請求項13】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する位置変換処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する向き変換処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係が変化するように前記第1の制御情報に基づいて第2の制御情報を演算する画角変換処理の少なくとも1つを行うことを特徴とする画像生成システム。
【請求項14】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記第1の制御情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部とを含み、
前記仮想カメラ制御部は、
操作部からの操作情報または所与のプログラムに基づいて、前記第1の仮想カメラの位置と前記第2の仮想カメラの位置との関係を変化させる位置変更処理、前記第1の仮想カメラの向きと前記第2の仮想カメラの向きとの関係を変化させる向き変更処理、前記第1の仮想カメラの画角と前記第2の仮想カメラの画角との関係を変化させる画角変更処理の少なくとも1つを行うことを特徴とする画像生成システム。
【請求項15】
複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記複数のオブジェクトのうち特定オブジェクトの移動及び動作の少なくとも1つの制御を行う移動・動作制御部と、
前記特定オブジェクトの位置情報に基づいて第1の制御情報を演算し、前記第1の制御情報を用いて第1の仮想カメラの位置、向き、画角の少なくとも1つの制御を行うとともに、前記特定オブジェクトの位置情報に基づいて第2の制御情報を演算し、前記第2の制御情報を用いて第2の仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
前記オブジェクト空間を前記第1の仮想カメラから見た画像を第1の描画領域に描画すると同時に、前記オブジェクト空間を前記第2の仮想カメラから見た画像を第2の描画領域に描画する描画部と、
を含むことを特徴とする画像生成システム。
【図2】
【図3】
【図4】
【図5】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図1】
【図6】
【図3】
【図4】
【図5】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図1】
【図6】
【公開番号】特開2009−237680(P2009−237680A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−80025(P2008−80025)
【出願日】平成20年3月26日(2008.3.26)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願日】平成20年3月26日(2008.3.26)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]