説明

プログラム、情報記憶媒体及び画像生成システム

【課題】各状況に応じた適切な画質の立体視用画像の生成を可能にするプログラム、情報記憶媒体、画像生成システム等の提供。
【解決手段】画像生成システムは、第1の描画モードと第2の描画モードの切り替え処理を行う描画モード切り替え部と、立体視における第1視点から見える第1視点画像と第2視点から見える第2視点画像を立体視用画像として生成する画像生成部を含む。画像生成部は、第1の描画モードでは、第Kのフレームにおけるオブジェクトの描画処理により、第1視点画像を生成し、第Kのフレームの次の第K+1のフレームにおけるオブジェクトの描画処理により、第1視点画像に対応する第2視点画像を生成し、第2の描画モードでは、同じ第Lのフレームにおけるオブジェクトの描画処理により、第1視点画像及び第2視点画像の両方を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システム等に関する。
【背景技術】
【0002】
近年、映画やゲーム等の分野において、より臨場感が溢れる画像を生成・表示するシステムとして、立体視画像の生成・表示システムが脚光を浴びている。例えばこの立体視画像生成・表示システムの1つである2眼式の立体視画像生成・表示システムでは、左眼用画像と右眼用画像を生成・表示する。そして例えばプレーヤが立体視用の眼鏡を装着して、左眼は左眼用画像のみを見て、右眼は右眼用画像のみを見るようにすることで、立体視を実現する。このような立体視を実現する画像生成・表示システムの従来技術としては、例えば特許文献1、2等に開示される技術がある。
【0003】
このような立体視用画像をCG(Computer Graphics)で生成する場合には、左眼用仮想カメラに対応する左眼用ビューボリューム(左眼用視錐台)を視界に設定して、描画処理を行い、左眼用画像を生成する。また右眼用仮想カメラに対応する右眼用ビューボリューム(右眼用視錐台)を視界に設定して、描画処理を行い、右眼用画像を生成する。
【0004】
このため、立体視用画像を生成する場合には、立体視用ではない通常の画像を生成する場合に比べて、約2倍の描画負荷が必要になってしまう。
【0005】
この場合に、例えば左眼用画像、右眼用画像の解像度(画素数)を、通常の画像に比べて低くする手法も考えられる。
【0006】
しかしながら、この手法では、画像の解像度が低くなることで画質が低下してしまう。特にゲームのキャラクタの映像等を、近い視点の仮想カメラにより鑑賞するようなモードなどでは、キャラクタの画像が綺麗に描かれなくなり、プレーヤの仮想現実感等を低下させてしまう。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−126902号公報
【特許文献2】特開2005−229560号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の幾つかの態様によれば、各状況に応じた適切な画質の立体視用画像の生成を可能にするプログラム、情報記憶媒体、画像生成システム等を提供できる。
【課題を解決するための手段】
【0009】
本発明の一態様は、第1の描画モードと第2の描画モードの切り替え処理を行う描画モード切り替え部と、立体視における第1視点から見える第1視点画像と第2視点から見える第2視点画像を立体視用画像として生成する画像生成部とを含み、前記画像生成部は、前記第1の描画モードでは、第Kのフレームにおけるオブジェクトの描画処理により、前記第1視点画像を生成し、前記第Kのフレームの次の第K+1のフレームにおける前記オブジェクトの描画処理により、前記第1視点画像に対応する前記第2視点画像を生成し、前記第2の描画モードでは、同じ第Lのフレームにおける前記オブジェクトの描画処理により、前記第1視点画像及び前記第2視点画像の両方を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0010】
本発明の一態様によれば、第1の描画モードに設定されると、第Kのフレームにおけるオブジェクトの描画処理により第1視点画像が生成され、次の第K+1のフレームにおけるオブジェクトの描画処理により、第2視点画像が生成される。一方、第2の描画モードに設定されると、同じ第Lのフレームにおけるオブジェクトの描画処理により、第1視点画像と第2視点画像の両方が生成される。例えば第1の描画モードではフレーム毎に交互に第1視点画像、第2視点画像が生成され、第2の描画モードでは同じフレームで第1視点画像と第2視点画像が生成される。これにより、各状況に応じた適切な画質の立体視用画像の生成が可能になり、これまでにない立体視用画像の生成システムを実現できる。
【0011】
また本発明の一態様では、前記画像生成部は、前記第1の描画モードでは、高解像度の第1の解像度の前記第1視点画像、前記第2視点画像を生成し、前記第2の描画モードでは、前記第1の解像度よりも低解像度の第2の解像度の前記第1視点画像、前記第2視点画像を生成してもよい。
【0012】
このようにすれば、第1の描画モードでは、フレーム毎に交互に第1視点画像、第2視点画像が生成されるが、生成される第1視点画像、第2視点画像は高解像度になる。一方、第2の描画モードでは、低解像度の第1視点画像、第2視点画像になるが、これらが同じフレームで生成されることで、画像のチラツキ等を抑制することが可能になる。
【0013】
また本発明の一態様では、前記画像生成部は、第Mのフレームにおいて前記第2の描画モードから前記第1の描画モードに切り替わった場合に、前記第1の描画モードであっても、前記オブジェクトの描画処理により、高解像度の前記第1視点画像及び前記第2視点画像の両方を生成してもよい。
【0014】
このようにすれば、第Mのフレームでの第2の描画モードから第1の描画モードへの切り替わりの際に、不自然な立体視用画像が生成されるなどの事態を防止できる。
【0015】
また本発明の一態様では、画像が書き込まれる描画バッファを含み(描画バッファとしてコンピュータを機能させ)、前記描画バッファは、書き込み用バッファ又は表示用バッファに設定される第1のバッファと、前記第1のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第1のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第2のバッファと、前記オブジェクトの描画処理が行われる第3のバッファとを含み、前記画像生成部は、前記第2の描画モードでは、低解像度の前記第2の解像度の前記第1視点画像、前記第2視点画像の画素数を増やすための画素補間処理を行い、前記画素補間処理後の前記第1視点画像、前記第2視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定されたバッファに対して書き込んでもよい。
【0016】
このようにすれば、例えば第1の描画モード用の画素数に第1、第2のバッファの第1視点画像、第2視点画像の領域が設定されており、第2の描画モードで低解像度の第1視点画像、第2視点画像が生成される場合にも、これに適正に対応して、第1、第2の描画モードの切り替え処理を実現できるようになる。
【0017】
また本発明の一態様では、前記第1、第2、第3のバッファの各々は、第1視点用領域と第2視点用領域を有し、前記画像生成部は、前記第1の描画モードでは、前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定された一方のバッファの前記第1視点用領域に対して書き込み、前記第Kのフレームの前の第K−1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記一方のバッファの前記第2視点用領域に対して書き込み、前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記他方のバッファの前記第1視点用領域に対して書き込み、前記第K+1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記他方のバッファの前記第2視点用領域に対して書き込んでもよい。
【0018】
このようにすれば、第1、第2のバッファのダブルバッファの動作と、第1、第2の描画モードの切り替え処理とを、両立して実現できるようになる。
【0019】
また本発明の一態様では、前記描画モード切り替え部は、操作部からの操作情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行ってもよい。
【0020】
このようにすれば、操作部の操作情報を利用して、描画モードを、第1の描画モードから第2の描画モードに切り替えたり、第2の描画モードから第1の描画モードに切り替えることが可能になる。
【0021】
また本発明の一態様では、前記描画モード切り替え部は、前記操作部からの前記操作情報に基づいて、前記オブジェクトのモーションが、前記第1の描画モードに対応する第1のモーションから、前記第2の描画モードに対応する第2のモーションに切り替わったと判断した場合に、前記第1の描画モードから前記第2の描画モードに描画モードを切り替えてもよい。
【0022】
このようにすれば、第1のモーションから第2のモーションへの切り替えを検出することで、第1の描画モードから第2の描画モードに描画モードを切り替えることが可能になり、描画モードの切り替え処理を簡素な処理で実現することが可能になる。
【0023】
また本発明の一態様では、前記第1のモーションは、前記オブジェクトであるキャラクタの立ちモーションであり、前記第2のモーションは、前記キャラクタが前記立ちモーションから動くモーションであってもよい。
【0024】
但し、本発明の一態様での第1、第2のモーションはこのようなモーションには限定されず、種々の変形実施が可能である。
【0025】
また本発明の一態様では、前記描画モード切り替え部は、画像の動き情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行ってもよい。
【0026】
このようにすれば、例えば画像の動きが小さい場合には第1の描画モードに切り替え、画像の動きが大きい場合には第2の描画モードに切り替えるなどの描画モードの切り替え処理を実現できる。
【0027】
また本発明の一態様では、前記描画モード切り替え部は、前記オブジェクトの動き情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行ってもよい。
【0028】
このようにすれば、例えばオブジェクトのモデルとしての動きを検出して、第1、第2の描画モードの切り替え処理を行うことなどが可能になり、切り替え処理の処理負荷の軽減等を図れる。
【0029】
また本発明の一態様では、前記描画モード切り替え部は、前記オブジェクトのモーション処理に使用される骨の動き情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行ってもよい。
【0030】
このようにすれば、モーション処理に使用される骨の動き情報を検出して、第1の描画モードと第2の描画モードの切り替え処理を実現できるようにため、更なる処理負荷の軽減や処理の簡素化を図れる。
【0031】
また本発明の一態様では、前記描画モード切り替え部は、前記オブジェクトが静止状態であると判断される場合又はポーズ処理時に、描画モードを前記第1の描画モードに切り替えてもよい。
【0032】
このようにすれば、オブジェクトが静止状態である場合やポーズ処理時に、第1の描画モードで第1視点画像、第2視点画像を生成することで、例えば第1の描画モードによる高品質の立体視用画像を生成できるようになる。
【0033】
また本発明の一態様では、前記描画モード切り替え部は、リプレイ画像生成時におけるスロー再生時又はポーズ処理時に、描画モードを前記第1の描画モードに切り替えてもよい。
【0034】
このようにすれば、リプレイ画像生成時におけるスロー再生時又はポーズ処理時に、例えば第1の描画モードによる高品質の立体視用画像を生成できるようになる。
【0035】
また本発明の一態様では、画像が書き込まれる描画バッファを含み(描画バッファとしてコンピュータを機能させ)、前記描画バッファは、書き込み用バッファ又は表示用バッファに設定される第1のバッファと、前記第1のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第1のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第2のバッファと、前記オブジェクトの描画処理が行われる第3のバッファとを含み、前記第1、第2、第3のバッファの各々は、第1視点用領域と第2視点用領域を有し、前記画像生成部は、前記第1の描画モードでは、前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定された一方のバッファの前記第1視点用領域に対して書き込み、前記第Kのフレームの前の第K−1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記一方のバッファの前記第2視点用領域に対して書き込み、前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記他方のバッファの前記第1視点用領域に対して書き込み、前記第K+1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記他方のバッファの前記第2視点用領域に対して書き込んでもよい。
【0036】
このようにすれば、第1、第2のバッファのダブルバッファの動作と、第1の描画モードの画像生成処理とを、両立して実現できるようになる。
【0037】
また本発明の一態様では、前記画像生成部は、前記第2の描画モードでは、前記第Lのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定された一方のバッファの前記第1視点用領域に対して書き込み、前記第Lのフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記一方のバッファの前記第2視点用領域に対して書き込んでもよい。
【0038】
このようにすれば、第1、第2のバッファのダブルバッファの動作と、第1、第2の描画モードの画像生成処理や描画モードの切り替え処理とを、両立して実現できるようになる。
【0039】
また本発明の一態様では、前記第1視点画像は、二眼式立体視における左眼用画像、右眼側画像の一方の画像であり、前記第2視点画像は、前記一方とは異なる他方の画像であってもよい。
【0040】
但し、第1視点画像、第2視点画像は多眼式立体視や空間像方式立体視における第1視点画像、第2視点画像であってもよい。
【図面の簡単な説明】
【0041】
【図1】本実施形態の画像生成システムの構成例。
【図2】本実施形態の手法を説明するフローチャート。
【図3】図3(A)、図3(B)は第1、第2の描画モードの説明図。
【図4】第2の描画モードから第1の描画モードに切り替わる際の画像生成手法についての説明図。
【図5】図5(A)、図5(B)は第1の描画モード時に生成されるゲーム画像の例。
【図6】図6(A)、図6(B)は第2の描画モード時に生成されるゲーム画像の例。
【図7】図7(A)、図7(B)も第2の描画モード時に生成されるゲーム画像の例。
【図8】図8(A)、図8(B)は第1の描画モードでの画像生成手法の詳細例の説明図。
【図9】図9(A)、図9(B)は第2の描画モードでの画像生成手法の詳細例の説明図。
【図10】図10(A)、図10(B)は第2の描画モードから第1の描画モードに切り替わる際の画像生成手法の詳細例の説明図。
【図11】図11(A)、図11(B)は描画モードの切り替え手法の説明図。
【図12】モーションデータを用いるモーション処理の説明図。
【図13】モーション処理に使用される骨の動き情報に基づいて描画モードを切り替える手法の説明図。
【図14】図14(A)、図14(B)はポーズ処理時やスロー再生時に描画モードを第1の描画モードに切り替える手法の説明図。
【発明を実施するための形態】
【0042】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0043】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0044】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0045】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0046】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0047】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、各種プロジェクタ型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。また、これらは、タッチパネル等と一体型であってもよい。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0048】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【0049】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0050】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0051】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0052】
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、仮想カメラ制御部108、描画モード切り替え部110、動き情報検出部112、リプレイ処理部114、画像生成部120、音生成部130を含む。
【0053】
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0054】
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ(人、動物、ロボット、車、船舶、飛行機等)、マップ(地形)、建物、コース(道路)、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
【0055】
移動体演算部106は、キャラクタ等の移動体を移動させるための演算を行う。また移動体(移動体オブジェクト)を動作させるための演算も行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒等)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0056】
移動体演算部106は、モーション処理部107を有する。モーション処理部107は、キャラクタ等のモデルオブジェクトにモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。
【0057】
具体的にはモーションデータ記憶部173には、キャラクタ(モデルオブジェクト)のスケルトンを構成する各骨(キャラクタを構成する各パーツオブジェクト)の位置又は回転角度(親の骨に対する子の骨の3軸周りの回転角度)等を含むモーションデータが記憶されている。モーション処理部107は、このモーションデータをモーションデータ記憶部173から読み出し、読み出されたモーションデータに基づいてスケルトンを構成する各骨(パーツオブジェクト)を動かすことで(スケルトン形状を変形させることで)、キャラクタのモーションを再生する。
【0058】
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0059】
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置(視点位置)や方向(視線方向)を制御する。この場合には、移動体演算部106で得られたキャラクタの位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0060】
描画モード切り替え部110は描画モードの切り替え処理を行う。動き情検出部112は画像の動き情報を検出する。これらの描画モード切り替え部110の描画モードの切り替え処理や、動き情報検出部112の動き情報の検出処理の詳細については後述する。
【0061】
リプレイ処理部114は、リプレイデータ記憶部174に記憶されているリプレイデータを読み出し、リプレイ画像を生成するためのリプレイ処理を行う。例えばリプレイデータ記憶部174は、ゲーム時の各タイミングにおけるプレーヤの操作情報(キー入力情報、操作履歴情報)を、リプレイデータとして記憶している。なお、操作情報に加えて、キャラクタの位置情報、方向情報等をリプレイデータとして記憶してもよい。リプレイモードになると、このリプレイデータがリプレイデータ記憶部174から読み出される。そしてリプレイ処理部114は、このリプレイデータに基づいて、ゲーム時の動作と同じ動作を行うようにキャラクタを制御する。そして画像生成部120が、リプレイ用の仮想カメラから見える画像を生成することで、リプレイ画像が生成される。
【0062】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ176(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0063】
画像生成部120は第1視点画像生成部122、第2視点画像生成部124を含む。第1視点画像生成部122は立体視における第1視点から見える画像を生成し、第2視点画像生成部124は立体視における第2視点から見える画像を生成する。二眼式立体視を例にとれば、第1視点画像生成部122は、オブジェクト空間内において左眼用仮想カメラから見える左眼用画像を生成し、第2視点画像生成部124は、オブジェクト空間内において右眼用仮想カメラから見える右眼用画像を生成する。
【0064】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0065】
そして本実施形態では、描画モード切り替え部110が、第1の描画モードと第2の描画モードの切り替え処理を行う。また画像生成部120は、立体視における第1視点(狭義には、左眼用仮想カメラ及び右眼用仮想カメラの一方のカメラ)から見える第1視点画像(狭義には、左眼用画像及び右用画像の一方の画像)を、立体視用画像として生成する。また、立体視における第2視点(狭義には、左眼用仮想カメラ及び右眼用仮想カメラの他方のカメラ)から見える第2視点画像(狭義には、左眼用画像及び右用画像の他方の画像)を、立体視用画像として生成する。これらの第1視点画像、第2視点画像は、第1視点画像生成部122、第2視点画像生成部124が生成する。
【0066】
そして画像生成部120は、第1の描画モードでは、第K(Kは自然数)のフレームにおけるオブジェクトの描画処理により、第1視点画像を生成し、第Kのフレームの次の第K+1のフレームにおけるオブジェクトの描画処理により、第2視点画像を生成する。この第2視点画像は、第Kのフレームの描画処理により生成された第1視点画像に対応する画像である。二眼式立体視を例にとれば、第Kのフレームの第1視点画像が左眼用画像である場合には、第2視点画像は、この左眼用画像に対応する右眼側画像である。即ち、第Kのフレームで生成された第1視点画像(左眼用画像)と第K+1のフレームで生成された第2視点画像(右眼用画像)により、物体が立体的に見える立体視用画像の表示が可能になる。
【0067】
一方、画像生成部120は、第2の描画モードでは、同じ第L(Lは自然数)のフレームにおけるオブジェクトの描画処理により、第1視点画像及び第2視点画像の両方を生成する。即ち、第1の描画モードでは、フレーム毎に交互に第1視点画像、第2視点画像を生成しているが、第2の描画モードでは、同じフレームで第1視点画像と第2視点画像の両方を生成する。
【0068】
このように本実施形態では、第1の描画モードでは第1視点画像、第2視点画像をフレーム単位で交互に生成し、第2の描画モードでは第1視点画像、第2視点画像を同じフレームで同時に生成しているため、各状況に応じた適切な画質の立体視用画像の生成が可能になる。
【0069】
更に具体的には画像生成部120は、第1の描画モードでは、高解像度の第1の解像度の第1視点画像、第2視点画像を生成する。一方、第2の描画モードでは、第1の解像度よりも低解像度の第2の解像度の第1視点画像、第2視点画像を生成する。即ち、第1の描画モードでは、高解像度の第1視点画像、第2視点画像が、フレーム毎に交互に生成される。一方、第2の描画モードでは、低解像度の第1視点画像、第2視点画像が、同じフレームで生成される。このようにすれば、第1の描画モードでは、画像のチラツキ等は発生しやすいが、高解像度の立体視用画像を生成できるようになる。一方、第2の描画モードでは、画像の解像度は落ちるが、例えば動きが大きい画像等において画像のチラツキ等を低減できるようになり、各状況に応じた適切な画質の立体視用画像の生成が可能になる。なお、第1の描画モードと第2の描画モードとで、第1視点画像と第2視点画像の解像度を変更しない変形実施も可能である。
【0070】
また画像生成部120は、第M(Mは自然数)のフレームにおいて第2の描画モードから第1の描画モードに切り替わった場合に、第1の描画モードであっても、オブジェクトの描画処理により、高解像度の第1視点画像と第2視点画像の両方を生成してもよい。即ち、第2の描画モードから第1の描画モードに切り替わった場合には、通常の第1の描画モードのように、高解像度の第1視点画像と第2視点画像をフレーム毎に交互に生成するのが原則である。しかしながら、第2の描画モードから第1の描画モードに切り替わった際に、原則通りに画像を生成すると、低解像度の第1視点画像及び第2視点画像の一方を画素補間処理した画像と、高解像度の第1視点画像及び第2視点画像の他方が混在してしまい、不自然な立体視表示になるおそれがある。この点、第2の描画モードから第1の描画モードに切り替わった際に、高解像度の第1視点画像と第2視点画像の両方を同じフレームで生成するようにすれば、このような事態の発生を防止できる。
【0071】
また図1の画像生成システムの記憶部170は、画像が書き込まれる描画バッファ176を含む。そして、この描画バッファ176は、第1のバッファ177、第2のバッファ178、第3のバッファ179を含む。
【0072】
ここで、第1のバッファ177は、書き込み用バッファ又は表示用バッファに設定されるバッファ(画像記憶領域)である。また、第2のバッファ178は、第1のバッファ177が書き込み用バッファに設定される場合に表示用バッファに設定され、第1のバッファ177が表示用バッファに設定される場合に書き込み用バッファに設定されるバッファである。即ち、第1のバッファ177、第2のバッファ178により、VRAMにおけるダブルバッファ動作が実現される。
【0073】
また、第3のバッファ179は、オブジェクトの描画処理が行われるバッファである。即ち、実際のオブジェクトの描画書き込みは、第3のバッファ179(一時バッファ、中間バッファ)に対して行われる。そして、ダブルバッファを構成する第1のバッファ177、第2のバッファ178のうち、書き込み用バッファに設定されたバッファに対して、第3のバッファ179の画像(RGBデータ等)がコピーされて書き込まれる。
【0074】
そして画像生成部120は、第2の描画モードでは、低解像度の第2の解像度の第1視点画像、第2視点画像の画素数を増やすための画素補間処理を行う。そして、画素補間処理後の第1視点画像、第2視点画像を、第1、第2のバッファ177、178のうち書き込み用バッファに設定されたバッファに対して書き込む。ここで画素補間処理は、例えば第iの画素の画素値(RGB値)と、第iの画素に隣接する第i+1の画素の画素値の補間処理を行って、第iの画素の画素値と第i+1の画素の画素値の間の画素値を求める処理などである。このようにすることで、低解像度の画像を、高解像度の画像と同じ画素数の画像に変換できるようになる。従って、例えば第1、第2のバッファ177、178が、高解像度用の画素数のバッファである場合にも、第3のバッファ179に書き込まれた低解像度の第1視点画像、第2視点画像を、第1、第2のバッファ177、178に適切に書き込めるようになる。
【0075】
また、例えば第1、第2、第3のバッファ177、178、179の各々は、第1視点用領域と第2視点用領域を有する。そして画像生成部120は、第1の描画モードでは、第Kのフレームで生成されて第3のバッファ179の第1視点用領域に書き込まれた第1視点画像を、第1、第2のバッファ177、178のうち書き込み用バッファに設定された一方のバッファの第1視点用領域に対して書き込む。また、第Kのフレームの前の第K−1のフレームで生成されて第3のバッファ179の第2視点用領域に書き込まれた第2視点画像を、上述の一方のバッファの第2視点用領域に対して書き込む。
【0076】
また画像生成部120は、第1、第2のバッファ177、178のうち、上述の一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、第Kのフレームで生成されて第3のバッファ179の第1視点用領域に書き込まれた第1視点画像を、他方のバッファの第1視点用領域に対して書き込む。また、第K+1のフレームで生成されて第3のバッファ179の第2視点用領域に書き込まれた第2視点画像を、他方のバッファの第2視点用領域に対して書き込む。
【0077】
例えば第1のバッファ177が、一方のバッファとして書き込み用バッファに設定されたとする。この場合に画像生成部120は、第1の描画モードでは、第Kのフレームで生成されて第3のバッファ179の第1視点用領域に書き込まれた第1視点画像を、第1のバッファ177の第1視点用領域に対して書き込み、第K−1のフレームで生成されて第3のバッファ179の第2視点用領域に書き込まれた第2視点画像を、第1のバッファ177の第2視点用領域に対して書き込む。
【0078】
次に、第2のバッファ178が、他方のバッファとして書き込み用バッファに設定されたとする。この場合には、画像生成部120は、第Kのフレームで生成されて第3のバッファ179の第1視点用領域に書き込まれた第1視点画像を、第2のバッファ178の第1視点用領域に対して書き込み、第K+1のフレームで生成されて第3のバッファ179の第2視点用領域に書き込まれた第2視点画像を、第2のバッファ178の第2視点用領域に対して書き込む。
【0079】
このようにすることで、第1視点画像と第2視点画像をフレーム毎に交互に生成する第1の描画モードと、第1、第2のバッファ177、178のダブルバッファ動作とを両立して実現できるようになる。
【0080】
また画像生成部120は、第2の描画モードでは、第Lのフレームで生成されて第3のバッファ179の第1視点用領域に書き込まれた第1視点画像を、第1、第2のバッファ177、178のうち書き込み用バッファに設定された一方のバッファの第1視点用領域に対して書き込む。一方、第Lのフレームで生成されて第3のバッファ179の第2視点用領域に書き込まれた第2視点画像を、上述の一方のバッファの第2視点用領域に対して書き込む。
【0081】
このようにすることで、同じ第Lのフレームにおけるオブジェクトの描画処理により第1視点画像及び第2視点画像の両方を生成する第2の描画モードと、第1、第2のバッファ177、178のダブルバッファ動作とを両立して実現できるようになる。
【0082】
また描画モード切り替え部110は、種々の情報に基づいて、第1、第2の描画モードの切り替え処理を行う。例えば描画モード切り替え部110は、操作部160からの操作情報に基づいて、第1、第2の描画モードの切り替え処理を行う。具体的には、操作部160からの操作情報(キー入力)に基づいて、オブジェクト(キャラクタ)のモーションが、第1の描画モードに対応する第1のモーションから、第2の描画モードに対応する第2のモーションに切り替わったと判断したとする。この場合に、描画モード切り替え部110は、第1の描画モードから第2の描画モードに描画モードを切り替える。一方、操作部160からの操作情報に基づいて、オブジェクトのモーションが、第2のモーションから第1のモーションに切り替わったと判断した場合に、描画モードを第2の描画モードから第1の描画モードに切り替える。
【0083】
ここで、第1のモーションは、例えばオブジェクトであるキャラクタの立ちモーションである。一方、第2のモーションは、例えばキャラクタが立ちモーションから動くモーションである。従って、この場合には、キャラクタのモーションが、立ちモーションから、動くモーションになった場合に、第1の描画モードから第2の描画モードに切り替わる。一方、動くモーションから立ちモーションになると、第2の描画モードから第1の描画モードに切り替わる。ここで、立ちモーションは、例えば格闘技ゲーム等で基本姿勢モーションと呼ばれるモーションであり、キャラクタが立ちながら微妙に動いているモーションである。また、立ちモーションから動くモーションとは、立っているキャラクタが、足を動かして走ったり歩くモーションや、手などの体の一部を大きく動かすモーションなどである。
【0084】
また描画モード切り替え部110は、画像の動き情報に基づいて、第1の描画モードと第2の描画モードの切り替え処理を行ってもよい。ここで、画像の動き情報(動きベクトル、オプティカルフロー等)は、公知の動き検出処理で検出される情報であり、この動き情報の検出は動き情報検出部112により実行される。そして描画モード切り替え部110は、検出された動き情報に基づいて、例えば画像の動き量が所定のしきい値以上であると判断した場合に、第1の描画モードから第2の描画モードに切り替える。一方、画像の動き量が所定のしきい値よりも小さいと判断した場合に、第2の描画モードから第1の描画モードに切り替える。
【0085】
例えば、画像の動き情報は、画像に映るオブジェクトの動き情報であってもよい。この場合には、描画モード切り替え部110は、このオブジェクトの動き情報に基づいて、第1、第2の描画モードの切り替え処理を行う。
【0086】
このオブジェクトの動き情報は、画像自体で検出されるものであってもよいし、オブジェクトを動作させるために使用されるモーションデータに基づいて検出されるものであってもよい。具体的には、描画モード切り替え部110は、オブジェクトのモーション処理に使用される骨(スケルトン)の動き情報に基づいて、第1、第2の描画モードの切り替え処理を行う。例えばオブジェクトのスケルトンを構成する複数の骨のうちの特定の骨(例えば手、足、腰の骨等)の動き情報に基づいて、第1、第2の描画モードの切り替え処理を行う。例えば、その特定の骨の動き量が、所定のしきい値以上である場合に、第1の描画モードから第2の描画モードに切り替える。
【0087】
また、描画モード切り替え部110は、オブジェクトが静止状態であると判断される場合又はポーズ処理時に、描画モードを第1の描画モードに切り替えてもよい。例えば、オブジェクトであるキャラクタが止まっていると判断される場合や、ゲーム映像のポーズ処理が行われた場合には、描画モードを第2の描画モードから第1の描画モードに切り替える。ここで、静止状態は、完全に停止している状態である必要はなく、例えばオブジェクトの動き量が所定のしきい値より小さくなる状態である。また、ポーズ処理は、ゲーム中にプレーヤが所定の操作等を行うことで実行されるモードである。
【0088】
また描画モード切り替え部110は、リプレイ画像生成時におけるスロー再生時又はポーズ処理時に、描画モードを第1の描画モードに切り替えてもよい。即ち、前述のようにゲーム後に、リプレイ処理部114がリプレイデータ記憶部174のリプレイデータに基づいてリプレイ処理を行うことで、リプレイ画像が生成される。そして、生成されたリプレイ画像の表示中に、プレーヤがスロー再生やポーズ処理の指示を行った場合に、描画モードを第2の描画モードから第1の描画モードに切り替える。
【0089】
なお、第1視点画像は、例えば、二眼式立体視における左眼用画像、右眼側画像の一方の画像であり、第2視点画像は、この一方とは異なる他方の画像である。即ち、第1視点画像を生成する第1視点は、例えば二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの一方の視点であり、第2視点画像を生成する第2視点は、二眼式立体視における左眼側仮想カメラ、右眼側仮想カメラの他方の視点である。或いは、第1視点、第2視点は、多眼式立体視における視点、又は空間像方式立体視における観者の位置を想定した視点であってもよい。例えば多眼式立体視における視点群のうちの2つの視点、又は空間像方式立体視における設定観察範囲内の任意の2視点であってもよい。
【0090】
なお仮想カメラ制御部108は、例えば第1視点(左眼用仮想カメラ)、第2視点(右眼用仮想カメラ)を設定するための基準となる基準視点(基準仮想カメラ、センターカメラ)の制御を行う。例えば基準視点は第1視点と第2視点の間に位置する視点である。そして、得られた基準視点の位置情報、方向情報と、設定された視点間距離(カメラ間距離)の情報に基づいて、第1視点、第2視点(左眼用、右眼用仮想カメラ)の位置情報(視点位置)、方向情報(視線方向)を求める。なお仮想カメラ制御部108が、第1視点、第2視点(左眼用、右眼用仮想カメラ)を直接制御するようにしてもよい。
【0091】
また立体視方式としては、2眼分離眼鏡方式や、パララックスバリアやレンティキュラーレンズや、その他、光線の方向を制御することができる光学素子を用いた裸眼方式などの様々な方式を想定できる。2眼分離眼鏡方式としては、例えば偏光眼鏡方式、継時分離方式、色分離方式などがある。偏光眼鏡方式では、例えば表示部190の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡(例えば左眼に水平方向の偏光フィルタ、右眼に垂直方向の偏光フィルタを付けた眼鏡)で見ることで立体視を実現する。或いは左眼用画像と右眼用画像を特殊な偏光フィルタを有するプロジェクタで投影し、投影画像を偏光眼鏡で見ることで立体視を実現してもよい。また継時分離方式(ページ・フリップ方式)では、表示部190に左眼用画像、右眼用画像を所定期間毎(例えば1/120秒毎、1/60秒毎)に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。色分離方式では、例えばアナグリフ画像を生成し、赤青眼鏡等で見ることで、立体視を実現する。
【0092】
また左眼用画像と右眼用画像から立体用視画像を生成する機能は、画像生成部120に持たせてもよいし、表示部190(テレビ等)に持たせてもよい。例えば画像生成部120が、サイドバイサイド方式の画像信号を出力する。すると表示部190が、このサイドバイサイドの画像信号に基づいて、奇数ラインと偶数ラインに左眼用画像と右眼用画像が交互に割り当てられるフィールドシーケンシャル方式の画像を表示する。或いは、左眼用画像と右眼用画像が所定期間毎に交互に切り替えられるフレームシーケンシャル方式の画像を表示する。或いは画像生成部120の方が、フィールドシーケンシャル方式やフレームシーケンシャル方式の画像を生成して、表示部190に出力するようにしてもよい。
【0093】
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。なお、以下では、立体式方式が二眼式立体視であり、左眼用画像が第1視点画像、右眼用画像が第2視点画像である場合について主に例にとり説明するが、本実施形態の手法はこれに限定されず、多眼式立体視、空間像方式立体等にも適用可能である。
【0094】
2.1 第1、第2の描画モード
本実施形態では、立体視用画像を生成するための描画モードとして、第1、第2の描画モードを用意している。図2は、この第1、第2の描画モードにより立体視用画像を生成する本実施形態の手法を説明するフローチャートである。
【0095】
まず、操作部160からの操作情報又は画像の動き情報を取得する(ステップS1)。そして、取得された操作情報や動き情報に基づいて描画モードの切り替え判定処理を行う(ステップS2)。
【0096】
例えば、操作部160からの操作情報に基づいて、プレーヤが操作するキャラクタのモーションが、第1の描画モードが対応づけられた第1のモーション(立ちモーション等)から、第2の描画モードが対応づけられた第2のモーション(走りモーション、手の振りモーション等)に切り替わったと判断した場合には、第1の描画モードから第2の描画モードに切り替える。例えばキャラクタの第1のモーションの再生中に、第2のモーションへの発動条件が満たされると、キャラクタのモーションを第2のモーションに切り替えると共に、描画モードも第2の描画モードに切り替える。モーションの発動条件が満たされたか否かは、例えば、当該モーションを発動するための操作入力が所与の期間内に行われたか否か等を判断することで判定できる。一方、操作部160からの操作情報に基づいて、第2のモーションから第1のモーションに切り替わった場合には、第2の描画モードから第1の描画モードに切り替える。
【0097】
また、画像の動き情報に基づいて、画像に映るキャラクタ等の動きが大きくなった(動きベクトルが大きくなった)と判断された場合には、描画モードを第1の描画モードから第2の描画モードに切り替える。一方、画像に映るキャラクタ等の動きが小さくなったと判断された場合には、描画モードを第2の描画モードから第1の描画モードに切り替える。この場合の画像の動き情報は、表示部190に表示されるフレーム画像に対して公知の動き検出処理(動きベクトルの検出処理)を行うことで検出してもよいし、キャラクタのモーションデータの骨(スケルトン)の動きに基づいて検出してもよい。
【0098】
ステップS2の描画モードの切り替え判定処理において、描画モードが第1の描画モードであると判断した場合には(ステップS3)、フレーム毎に交互に高解像度の左眼用画像(広義には第1視点画像)、右眼用画像(広義には第2視点画像)を生成する(ステップS4)。例えば、あるフレームで左眼用画像を生成した場合には、それに続く次のフレームでは右眼用画像を生成し、その次のフレームでは左眼用画像を生成し、更にその次のフレームでは右眼用画像を生成する。
【0099】
一方、ステップS2の描画モードの切り替え判定処理において、描画モードが第2の描画モードであると判断した場合には(ステップS3)、同じフレームで低解像度の左眼用画像と右眼用画像の両方を生成する(ステップS5)。例えば、あるフレームで左眼用画像及び右眼用画像の両方を生成し、その次のフレームでも左眼用画像及び右眼用画像の両方を生成し、更にその次のフレームでも左眼用画像及び右眼用画像の両方を生成する。そして、ステップS4、S5で生成された左眼用画像、右眼用画像を立体視用画像として表示する(ステップS6)。
【0100】
図3(A)、図3(B)は、第1、第2の描画モードを説明するための図である。図3(A)の第1の描画モードでは、フレームK(第1のフレーム)において、高解像度の左眼用画像LX1が生成され、次のフレームK+1(第2のフレーム)において、高解像度の右眼用画像RX1が生成される。同様に、次のフレームK+2(第3のフレーム)において、高解像度の左眼用画像LX2が生成され、次のフレームK+3(第4のフレーム)において、高解像度の右眼用画像RX2が生成される。以降のフレームも同様である。
【0101】
このように第1の描画モードでは、フレーム毎に交互に高解像(第1の解像度)の左眼用画像(第1視点画像)と右眼用画像(第2視点画像)が生成される。即ち、第1の描画モードでは、フレームK(第Kのフレーム)におけるオブジェクトの描画処理により、左眼用画像LX1(第1視点画像)を生成し、次のフレームK+1(第K+1のフレーム)におけるオブジェクトの描画処理により、左眼用画像LX1に対応する右眼用画像RX1(第2視点画像)を生成する。これらの対応する左眼用画像LX1、右眼用画像RX1により、二眼式の立体視が実現される。
【0102】
ここで、第1の描画モードでフレーム毎に交互に生成される画像LX1、RX1、LX2、RX2の解像度は、例えば1280×720の画素数の解像度となる。即ち、第1の描画モードでは、高解像度の第1の解像度の左眼用画像、右眼用画像を生成する。
【0103】
一方、図3(B)の第2の描画モードでは、フレームL(第1のフレーム)において、低解像度の左眼用画像LY1、右眼用画像RY1の両方が生成され、次のフレームL+1(第2のフレーム)において、低解像度の左眼用画像LY2、右眼用画像RY2の両方が生成される。同様に、次のフレームL+2(第3のフレーム)において、低解像度の左眼用画像LY3、右眼用画像RY3の両方が生成され、更に次のフレームL+3(第4のフレーム)において、低解像度の左眼用画像LY4、右眼用画像RY4の両方が生成される。以降のフレームの同様である。
【0104】
このように第2の描画モードでは、同じフレームにおいて低解像度(第2の解像度)の左眼用画像(第1視点画像)、右眼用画像(第2視点画像)の両方が生成される。即ち、第2の描画モードでは、同じフレームL(第Lのフレーム)におけるオブジェクトの描画処理により、左眼用画像、右眼用画像の両方を生成する。
【0105】
ここで、第2の描画モードにおいて同じフレームで生成される画像LY1、RY1、LY2、RY2等の解像度は、例えば720×576の画素数の解像度となっており、第1の描画モードでの1280×720の画素数の解像度よりも低い解像度となっている。即ち、第2の描画モードでは、第1の解像度(1280×720)よりも低解像度の第2の解像度(720×576)の左眼用画像、右眼用画像を生成する。なお、第1、第2の描画モードの解像度は、このような画素数(1280×720、720×576)の解像度に限定されるものではなく、種々の変形実施が可能である。
【0106】
図4は、第2の描画モードから第1の描画モードに切り替わる際の画像生成手法を示す図である。
【0107】
図4では、フレームM(第Mのフレーム)において、第2の描画モードから第1の描画モードに切り替わっている。後述するモーション切り替えにより描画モードの切り替わりの場合には、フレームMにおいて、走りモーションや手の振りモーションから、立ちモーション(基本姿勢モーション)に切り替わっている。
【0108】
このようにフレームMにおいて、第2の描画モードから第1の描画モードに切り替わった場合には、フレームMが第1の描画モードであっても、オブジェクトの描画処理により、高解像度の左眼用画像、右眼用画像(第1視点画像、第2視点画像)の両方を同時に生成する。
【0109】
例えば図4では、フレームM−1は第2の描画モードに設定されているため、フレームM−1では、低解像度の左眼用画像LY10、右眼用画像RY10の両方が生成されている。前のフレームM−2においても同様である。
【0110】
そして、フレームMにおいて、第2の描画モードから第1の描画モードに切り替わった場合には、フレームMは第1の描画モードに設定されているため、原則は、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成すべきである。
【0111】
しかしながら、このようにフレームMにおいて直ぐに第1の描画モードの画像生成処理を行うと、不自然な画像が生成されてしまうおそれがある。具体的には、フレームMで生成される高解像度の左眼用画像と対となる右眼用画像を、例えば第2の描画モードで生成された低解像度の右眼用画像から、画素補間処理等により生成しなければならなくなる。そして、このように、高解像度の左眼用画像と、低解像度の右眼用画像から画素補間処理等により生成した右眼用画像とが混在した立体視表示が行われると、不自然な立体視表示になってしまうおそれがある。
【0112】
そこで本実施形態では、図4に示すように、第2の描画モードから第1の描画モードに切り替わった際のフレームMでは、第1の描画モードであっても、高解像度の左眼用画像LX1、右眼用画像RX1の両方を生成する。これにより、高解像度の左眼用画像と、低解像度の右眼用画像から画素補間処理等により生成した右眼用画像とが混在して不自然な立体視表示が行われてしまう事態を防止できる。
【0113】
そして、このように、フレームMにおいて、高解像度の左眼用画像LX1、右眼用画像RX1の両方を生成すると、描画処理が間に合わなくなってフレーム落ちしてしまうおそれがある。即ち、1フレームの時間内に、左眼用画像LX1、右眼用画像RX1の両方の描画処理を完了できないおそれがある。しかしながら、第1の描画モードは、元々、キャラクタの動き(画像の動き)が少ない時に適用される描画モードであるため、このようなフレーム落ちが生じても、それほど目立つことがない。また、1フレームだけのフレーム落ちでは、プレーヤに気づかれるおそれも少ない。このため本実施形態では、上述のような不自然な立体視を防止することを優先して、図4の画像生成手法を採用している。そして、以降のフレームM+1、M+2(フレーム落ち発生の場合のフレームM+2、M+3)では、通常の第1の描画モードにより、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成するようにする。
【0114】
図5(A)、図5(B)は、第1の描画モード時に本実施形態により生成されるゲーム画像の例である。図5(A)、図5(B)は、キャラクタCHが、立ちモーションを行っている場合のゲーム画像の例である。ここで、LXは左眼用画像であり、RXは右眼用画像であり、両画像間には立体視表示のための視差が設定されている。また、第1の描画モードであるため、左眼用画像LX、右眼用画像RXは高解像度の画像になっている。
【0115】
図5(A)、図5(B)の立ちモーションは、格闘技ゲーム等において、キャラクタCHの基本姿勢となるモーションである。キャラクタCHは、基本姿勢である立ちモーションから次のモーションを開始し、開始したモーションが終了すると、基本姿勢である立ちモーションに戻る。
【0116】
この立ちモーションでは、キャラクタCHの体は微妙に動いているが、その動きは小さく、静止状態であると見なすことができる。従って、この場合には、画像のチラツキ防止よりも、画像の解像度の方を優先して、図3(A)で説明したように、高解像度の左眼用画像LX、右眼用画像RXをフレーム毎に交互に生成するようにする。
【0117】
このようにすれば、プレーヤは、図5(A)、図5(B)のような立ちモーションのキャラクタCHを、解像度の高い画像で見ることができ、細部が高精度に描かれた画像を見ながらゲームプレイできるようになる。これによりプレーヤの仮想現実感等を向上できる。また、例えばキャラクタの鑑賞モード(ビューアーモード)に本実施形態の手法を適用した場合には、プレーヤは、細部が高精細に描かれたキャラクタCHを鑑賞できるようになり、鑑賞モードの画像の品質を向上できる。
【0118】
図6(A)、図6(B)、図7(A)、図7(B)は、第2の描画モード時に本実施形態により生成されるゲーム画像の例である。図6(A)、図6(B)は、キャラクタCHが、走りモーションを行っている場合のゲーム画像の例であり、図7(A)、図7(B)は、キャラクタCHが、手の振りモーションを行っている場合のゲーム画像の例である。ここで、LYは左眼用画像であり、RYは右眼用画像であり、両画像間には立体視表示のための視差が設定されている。また、第2の描画モードであるため、左眼用画像LY、右眼用画像RYは低解像度の画像になっている。
【0119】
図6(A)、図6(B)の走りモーションや、図7(A)、図7(B)の手の振りモーションは、図5(A)、図5(B)の立ちモーションから動くモーションであり、プレーヤが走りや手の振りに相当する操作情報を入力すると、立ちモーションから、これらの走りモーション、手の振りモーションが行われるようになる。そして、これらの走りモーションや手の振りモーションが終了すると、例えば基本姿勢である立ちモーションに戻る。
【0120】
そして、これらの走りモーション、手の振りモーションでは、図5(A)、図5(B)の立ちモーションに比べて、キャラクタCHの体の全部又は一部の動き(仮想カメラに対する相対的な動き)が大きくなっている。従って、この場合には、画像の解像度よりも、画像のチラツキ防止の方を優先して、図3(B)で説明したように、低解像度の左眼用画像LY、右眼用画像RYを同じフレームで同時に生成するようにする。
【0121】
このようにすれば、プレーヤは、図6(A)〜図7(B)のようにキャラクタCHの体の全部又は一部が大きく動いた場合にも、チラツキの少ない画像を見ながらゲームプレイできるようになる。また、鑑賞モードにおいて、プレーヤの操作指示によりキャラクタCHに走りモーションや手の振りモーションを行わせた場合にも、プレーヤは、チラツキの少ない画像でキャラクタCHを鑑賞できるようになる。
【0122】
以上の本実施形態の手法によれば、第1の描画モードでは左眼用画像、右眼用画像を交互に生成し、第2の描画モードでは左眼用画像、右眼用画像を同じフレームで生成しているため、各状況に応じた適切な画質の立体視用画像の生成が可能になる。
【0123】
例えば図5(A)、図5(B)のように高画質の画像が要求される状況では、第1の描画モードに設定してキャラクタ等のオブジェクトを描画して、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成する。こうすることで、図5(A)、図5(B)のようにキャラクタが静止状態であり、画像のチラツキが少ないと考えられる状況では、高解像度の左眼用画像、右眼用画像を生成することで、当該状況に応じた適切な画質の立体視用画像を生成できるようになる。
【0124】
一方、図6(A)〜図7(B)のように画像のチラツキの抑制が要求される状況では、第2の描画モードに設定してキャラクタ等のオブジェクトを描画して、同じフレームで低解像度の左眼用画像、右眼用画像の両方を生成する。こうすることで、図6(A)〜図7(B)のようにキャラクタの動きが大きく、画像のチラツキが生じ易いと考えられる状況では、低解像度の左眼用画像、右眼用画像を同じフレームで生成することで、当該状況に応じた適切な画質の立体視用画像を生成できるようになる。
【0125】
2.2 画像生成手法の詳細例
次に、本実施形態の画像生成手法の詳細例について説明する。図8(A)、図8(B)は、第1の描画モードでの画像生成手法の詳細例を示す図であり、図9(A)、図9(B)は、第2の描画モードでの画像生成手法の詳細例を示す図である。
図8(A)〜図9(B)では、画像が書き込まれる描画バッファ176が、第1のバッファBF1、第2のバッファBF2、第3のバッファBF3(第1、第2、第3の描画領域)を有する。
【0126】
第1、第2のバッファBF1、BF2(図1の177、178)は、いわゆるダブルバッファ構成となっている。即ち、第1のバッファBF1が書き込み用バッファに設定される場合に、第2のバッファBF2は表示用バッファに設定される。一方、第1のバッファBF1が表示用バッファに設定される場合に、第2のバッファBF2は書き込み用バッファに設定される。これらの第1、第2のバッファBF1、BF2は、フレームバッファとなるVRAMに確保される領域である。そして図1の表示部190には、表示用バッファに設定された方のバッファの画像が表示される。
【0127】
第3のバッファBF3(図1の179)は、オブジェクトの描画処理が行われるバッファである。即ち画像生成部120は、この第3のバッファBF3に対してオブジェクトの描画処理を行って、左眼用画像、右眼用画像を生成する。
【0128】
そして第1、第2、第3のバッファBF1、BF2、BF3の各々は、左眼用領域(広義には第1視点用領域)と右眼用領域(広義には第2視点用領域)を有する。例えば図8(A)の第1のバッファBF1の領域AL1、AR1が、各々、BF1の左眼用領域、右眼用領域であり、第2のバッファBF2の領域AL2、AR2が、各々、BF2の左眼用領域、右眼用領域である。また第3のバッファBF3の領域AL3、AR3が、各々、BF3の左眼用領域、右眼用領域である。これらの各領域は、各バッファの記憶領域として確保される領域である。
【0129】
図8(A)では、第1、第2のバッファBF1、BF2のうちの一方のバッファであるBF1が書き込み用バッファに設定され、他方のバッファであるBF2が表示用バッファに設定されている。
【0130】
そして図8(A)に示すように、第1の描画モードでは、フレームKにおいてオブジェクトOBが第3のバッファBF3の左眼用領域AL3に描画されて、左眼用画像が生成される。そして、この左眼用画像が、書き込み用バッファに設定された第1のバッファBF1の左眼用領域AL1にコピーされて書き込まれる。
【0131】
一方、前のフレームK−1で生成されて第3のバッファBF3の右眼用領域AR3に書き込まれた右眼用画像が、書き込み用バッファに設定された第1のバッファBF1の右眼用領域AR1にコピーされて書き込まれる。
【0132】
このようにすることで、フレームKでの高解像度(1280×720)の左眼用画像、右眼用画像が、書き込み用バッファに設定された第1のバッファBF1の左眼用領域AL1、右眼用領域AR1に書き込まれるようになる。
【0133】
次のフレームでは、図8(B)に示すように、一方のバッファBF1と異なる他方のバッファであるBF2が、書き込み用バッファに設定されている。即ち図8(A)と図8(B)とでは、書き込み用バッファと表示用バッファがお互いに入れ替わっている。
【0134】
そして図8(B)に示すように、第1の描画モードでは、フレームK+1において、オブジェクトOBが第3のバッファBF3の右眼用領域AR3に描画されて、右眼用画像が生成される。そして、この右眼用画像が、書き込み用バッファに設定された第2のバッファBF2の右眼用領域AR2にコピーされて書き込まれる。
【0135】
一方、前のフレームKで生成されて第3のバッファBF3の左眼用領域AL3に書き込まれた左眼用画像が、書き込み用バッファに設定された第2のバッファBF2の左眼用領域AL2にコピーされて書き込まれる。
【0136】
このようにすることで、フレームK+1での高解像度の左眼用画像、右眼用画像が、書き込み用バッファに設定された第2のバッファBF2の左眼用領域AL2、右眼用領域AR2に書き込まれるようになる。
【0137】
以上のように本実施形態では、第1の描画モードでは、フレームKで生成されて第3のバッファBF3の左眼用領域AL3(第1視点用領域)に書き込まれた左眼用画像(第1視点画像)を、BF1、BF2のうち書き込み用バッファに設定された一方のバッファBF1の左眼用領域AL1(第1視点用領域)に対して書き込む。また、前のフレームK−1で生成されて第3のバッファBF3の右眼用領域AR3(第2視点用領域)に書き込まれた右眼用画像(第2視点画像)を、一方のバッファBF1の右眼用領域AR1(第2視点用領域)に対して書き込む。
【0138】
また図8(B)に示すように、一方とは異なる他方のバッファBF2が書き込み用バッファに設定された場合には、フレームKで生成されて第3のバッファBF3の左眼用領域AL3(第1視点用領域)に書き込まれた左眼用画像(第1視点画像)を、他方のバッファBF2の左眼用領域AL2(第1視点用領域)に対して書き込む。また、フレームK+1で生成されて第3のバッファBF3の右眼用領域AR3(第2視点用領域)に書き込まれた右眼用画像(第2視点画像)を、他方のバッファBF2の右眼用領域AR2(第2視点用領域)に対して書き込む。
【0139】
このようにすることで、ダブルバッファ構成の第1、第2のバッファBF1、BF2を用いる場合に、フレーム毎に交互に左眼用画像、右眼用画像を生成して、生成された左眼用画像、右眼用画像を、BF1、BF2のうちの書き込み用バッファに設定されたバッファに対して、適切に書き込むことが可能になる。従って、第1の描画モードの画像生成手法と、第1、第2のバッファBF1、BF2によるダブルバッファ動作とを両立して実現できるようになる。
【0140】
図9(A)、図9(B)は、第2の描画モードの画像生成手法の詳細を説明する図である。図9(A)では、BF1、BF2のうちの一方のバッファBF1が書き込み用バッファに設定され、他方のバッファBF2が表示用バッファに設定されている。
【0141】
そして図9(A)に示すように、第2の描画モードでは、フレームLにおいて、オブジェクトOBが第3のバッファBF3の左眼用領域AL3に描画されて、左眼用画像が生成される。そして、この左眼用画像が、書き込み用バッファに設定された第1のバッファBF1の左眼用領域AL1にコピーされて書き込まれる。
【0142】
また、同じフレームLにおいて、オブジェクトOBが第3のバッファBF3の右眼用領域AR3に描画されて、右眼用画像が生成される。そして、この右眼用画像が、書き込み用バッファに設定された第1のバッファBF1の右眼用領域AR1にコピーされて書き込まれる。
【0143】
このようにすることで、フレームLでの低解像度(720×576)の左眼用画像、右眼用画像が、書き込み用バッファに設定された第1のバッファBF1の左眼用領域AL1、右眼用領域AR1に書き込まれるようになる。
【0144】
次のフレームでは、図9(B)に示すように、一方のバッファBF1と異なる他方のバッファBF2が、書き込み用バッファに設定されている。
【0145】
そして図9(B)に示すように、第2の描画モードでは、フレームL+1において、オブジェクトOBが第3のバッファBF3の左眼用領域AL3に描画されて、左眼用画像が生成される。そして、この左眼用画像が、書き込み用バッファに設定された第2のバッファBF2の左眼用領域AL2にコピーされて書き込まれる。
【0146】
また、同じフレームL+1において、オブジェクトOBが第3のバッファBF3の右眼用領域AR3に描画されて、右眼用画像が生成される。そして、この右眼用画像が、書き込み用バッファに設定された第2のバッファBF2の右眼用領域AR2にコピーされて書き込まれる。
【0147】
このようにすることで、フレームL+1での低解像度の左眼用画像、右眼用画像が、書き込み用バッファに設定された第2のバッファBF2の左眼用領域AL2、右眼用領域AR2に書き込まれるようになる。
【0148】
以上のように本実施形態では、図9(A)に示すように、第2の描画モードでは、フレームLで生成されて第3のバッファBF3の左眼用領域AL3(第1視点用領域)に書き込まれた左眼用画像(第1視点画像)を、BF1、BF2のうち書き込み用バッファに設定された一方のバッファBF1の左眼用領域AL1(第1視点用領域)に対して書き込む。また、フレームLで生成されて第3のバッファBF3の右眼用領域AR3(第2視点用領域)に書き込まれた右眼用画像(第2視点画像)を、一方のバッファBF1の右眼用領域AR1(第2視点用領域)に対して書き込む。
【0149】
そして、図9(B)に示すように、一方とは異なる他方のバッファBF2が書き込み用バッファに設定された場合にも、図9(A)と同様に、フレームL+1で生成されて第3のバッファBF3の左眼用領域AL3に書き込まれた左眼用画像を、書き込み用バッファに設定された他方のバッファBF2の左眼用領域AL2に対して書き込む。また、フレームL+1で生成されて第3のバッファBF3の右眼用領域AR3に書き込まれた右眼用画像を、他方のバッファBF2の右眼用領域AR2に対して書き込む。
【0150】
このようにすることで、ダブルバッファ構成の第1、第2のバッファBF1、BF2を用いる場合に、同じフレームで左眼用画像、右眼用画像を生成して、生成された左眼用画像、右眼用画像を、BF1、BF2のうちの書き込み用バッファに設定されたバッファに対して、適切に書き込むことが可能になる。従って、第2の描画モードの画像生成手法と、第1、第2のバッファBF1、BF2によるダブルバッファ動作とを両立して実現できるようになる。
【0151】
更に本実施形態では図9(A)、図9(B)に示すように、第2の描画モードでは、低解像度の左眼用画像、右眼用画像(第1視点画像、第2視点画像)の画素数を増やすための画素補間処理を行い、画素補間処理後の左眼用画像、右眼用画像を、BF1、BF2のうち書き込み用バッファに設定されたバッファに対して書き込んでいる。
【0152】
即ち、図9(A)では、第3のバッファBF3に生成される左眼用画像、右眼用画像は、低解像度(720×576)の画像になっており、第1、第2のバッファBF1、BF2の各領域の画素数と一致していない。
【0153】
そこで図9(A)では、第3のバッファBF3の低解像度の左眼用画像、右眼用画像の画素補間処理を行っている。例えば720×576の画素数から1280×720の画素数に増やす画素補間処理を行って、画素補間処理後の左眼用画像、右眼用画像を、第1のバッファBF1の左眼用領域AL1、右眼用領域AR1に書き込んでいる。次のフレームL+1においても、図9(B)に示すように同様の画素補間処理を行っている。
【0154】
このようにすれば、例えば第1の描画モード用に、第1、第2のバッファBF1、BF2の左眼用領域、右眼用領域の画素数が、高解像度の1280×720になっており、第2の描画モードで生成される左眼用画像、右眼用画像の画素数が、低解像度の720×576である場合にも、これに適正に対応できるようになる。従って、第1、第2のバッファBF1、BF2のダブルバッファ動作と、第1、第2の描画モードを切り替えながら行う本実施形態の画像生成手法とを、両立して実現することが可能になる。
【0155】
図10(A)、図10(B)は、図4で説明した第2の描画モードから第1の描画モードに切り替わる際の画像生成手法の詳細例を示す図である。
【0156】
図10(A)、図10(B)では、フレームM−1では、描画モードが第2の描画モードに設定されており、フレームMにおいて第2の描画モードから第1の描画モードに切り替わっている。
【0157】
そして図10(A)のフレームM−1では、第2の描画モードであるため、図9(A)、図9(B)と同様の手法で第2の描画モードの画像生成処理が行われる。即ち、オブジェクトOBが第3のバッファBF3の左眼用領域AL3、右眼用領域AR3に書き込まれて、左眼用画像、右眼用画像が生成される。そして、これらの左眼用画像、右眼用画像の画素補間処理が行われ、画素補間処理後の左眼用画像、右眼用画像が、書き込み用バッファに設定された第1のバッファBF1の左眼用領域AL1、右眼用領域AR1にコピーして書き込まれる。
【0158】
次に図10(B)に示すようにフレームMになって、第2の描画モードから第1の描画モードに切り替わると、第1の描画モードであっても、図8(A)、図8(B)とは異なる手法で画像生成処理が行われる。即ち、オブジェクトOBが第3のバッファBF3の左眼用領域AL3、右眼用領域AR3の両方に書き込まれて、左眼用画像、右眼用画像の両方が生成される。つまり、第1の描画モードでは左眼用画像、右眼用画像をフレーム毎に交互に生成するのが原則であるが、図10(B)では、第1の描画モードであっても左眼用画像、右眼用画像の両方を生成する。そして、生成された左眼用画像、右眼用画像を、書き込み用バッファに設定された第2のバッファBF2の左眼用領域AL2、右眼用領域AR2にコピーして書き込む。
【0159】
このようにすることで、第2の描画モードから第1の描画モードに切り替わった場合にも、適正な左眼用画像、右眼用画像を、BF1、BF2のうちの書き込み用バッファに設定されたバッファに対して適切に書き込むことが可能になる。
【0160】
例えば本実施形態の比較例の手法として、図10(B)のフレームMにおいて、第3のバッファBF3の左眼用領域AL3へのオブジェクトOBの描画により、左眼用画像だけを生成して、第2のバッファBF2の左眼用領域AL2に書き込む手法が考えられる。この比較例の手法では、右眼用画像については、図10(A)の右眼用領域AR3の低解像度(720×576)の右眼用画像に対して画素補間処理を行い、画素補間処理後の画像を、図10(B)において、第2のバッファBF2の右眼用領域AR2に書き込む。
【0161】
しかしながら、この比較例の手法では、高解像度の左眼用画像と、低解像度の右眼用画像を画素補間処理することで生成された右眼用画像とが混在して、立体視表示が行われてしまう。従って、プレーヤにとって不自然に見える画像が生成されるおそれがある。
【0162】
この点、本実施形態では、図10(B)に示すように、第1の描画モードに切り替わったフレームMにおいて、第2のバッファBF2の左眼用領域AL2、右眼用領域AR2には、同じ高解像度(1280×720)の左眼用画像、右眼用画像が書き込まれるようになる。従って、上述のように、高解像度の左眼用画像と、低解像度の右眼用画像を画素補間処理した右眼用画像とが混在するような立体視表示を防止でき、プレーヤにとってより自然に見える立体視用画像を生成できるようになる。
【0163】
2.3 第1、第2の描画モードの切り替え手法
次に、第1、第2の描画モードの切り替え手法の詳細について説明する。第1、第2の描画モードの切り替え手法としては、操作部160の操作情報に基づいて切り替える手法や、画像の動き情報に基づいて切り替える手法などを想定できる。
【0164】
例えば図11(A)では、図5(A)、図5(B)で説明した立ちモーション(基本姿勢モーション)に対しては、描画モードフラグFL1が1にセットされ、描画モードフラグFL2が0にセットされる。一方、図6(A)〜図7(B)で説明した走りモーションや手の振りモーションに対しては、描画モードフラグFL1が0にセットされ、描画モードフラグFL2が1にセットされる。
【0165】
ここで描画モードフラグFL1は第1の描画モードを指示するフラグであり、描画モードフラグFL2は第2の描画モードを指示するフラグである。これらのフラグFL1、FL2は、例えばキャラクタのモーション処理に使用される各モーションデータに対応づけてモーションデータ記憶部173に記憶される。
【0166】
そして、図5(A)、図5(B)の立ちモーションの再生時においては、立ちモーションのモーションデータに関連づけられた描画モードフラグFL1が1にセットされているため、図3(A)の第1の描画モードで画像生成処理が行われるようになる。一方、図6(A)〜図7(B)の走りモーションや手の振りモーションの再生時においては、走りモーションや手の振りモーションのモーションデータに関連づけられた描画モードフラグFL2が1にセットされているため、図3(B)の第2の描画モードで画像生成処理が行われるようになる。
【0167】
このようにすれば、操作部160からの操作情報に基づいて、オブジェクトのモーションが、第1の描画モードに対応する第1のモーション(立ちモーション)から、第2の描画モードに対応する第2のモーション(走りモーション、手の振りモーション)に切り替わったと判断した場合に、第1の描画モードから第2の描画モードに描画モードを切り替えることが可能になる。第2の描画モードから第1の描画モードへの切り替えも同様である。
【0168】
なお、図11(A)では、上述の第1のモーションが、キャラクタの立ちモーションであり、第2のモーションが、キャラクタが立ちモーションから動くモーションである走りモーションや手の振りモーションである場合について例示しているが、本実施形態はこれに限定されるものではない。例えば第1、第2のモーションは図11(A)に例示されるものに限定されず、種々の変形実施が可能である。
【0169】
また、画像の動き情報に基づいて、第1、第2の描画モードの切り替え処理を行う場合には、公知の動き情報検出処理を用いて、画像の動き情報を検出すればよい。例えば図11(B)では、画像(フレーム画像)をブロック分割し、各ブロックでの動きベクトルを検出することで、画像の動き情報を検出する。そして、動き情報で表される画像の動きが、所与のしきい値よりも小さく、動きが小さいと判断された場合には、描画モードを第1の描画モードに設定する。一方、動き情報で表される画像の動きが、所与のしきい値以上であり、動きが大きいと判断された場合には、描画モードを第2の描画モードに切り替える。
【0170】
このようにすれば、画像の動きが小さい場合には、フレーム毎に交互に高解像度の左眼用画像、右眼用画像を生成して、高解像度の立体視用画像を表示し、画像の動きが大きい場合には、低解像度の左眼用画像、右眼用画像を同じフレームで生成して、画像のチラツキの少ない立体視用画像を表示することが可能になる。
【0171】
また、画像の動き情報は、図11(B)のように画像自体の動き情報を検出する手法には限定されず、例えばオブジェクトの動き情報に基づいて、第1、第2の描画モードの切り替え処理を行ってもよい。即ち、オブジェクトのモデルとしての動きを検出して、第1、第2の描画モードの切り替え処理を行う。具体的には、オブジェクトのモーション処理に使用される骨の動き情報に基づいて、第1、第2の描画モードの切り替え処理を行う。
【0172】
例えば図12に、キャラクタ等を表すモデルオブジェクトMOBのスケルトンの情報であるモーションデータの例を示す。図12に示すように、モデルオブジェクトMOBは、複数のパーツオブジェクトPB0〜PB15により構成される。そして、これらのパーツオブジェクト(部位)の位置や回転角度(方向)は、モデルオブジェクトMOBのスケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)や回転角度(親の骨に対する子の骨の相対的な回転角度)により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【0173】
モデルオブジェクトMOBのスケルトンを構成する骨(モーション骨、関節、パーツオブジェクト)は、親子(階層)構造を有している。例えば、手の骨B7、B11の親は前腕の骨B6、B10になり、B6、B10の親は上腕の骨B5、B9になり、B5、B9の親は肩の骨B4、B8になる。足、脛(すね)、大腿、腰、胸、頭の骨も同様である。
【0174】
図1のモーションデータ記憶部173には、これらの骨(パーツオブジェクト、関節)の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨(アーク)の位置(関節の位置)についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【0175】
例えば、歩きモーションが、M0、M1、M2・・・・MNという基準モーション(各フレームでのモーション)により構成されているとする。するとこれらの各基準モーションM0、M1、M2・・・・MNでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションM0の各骨(各パーツオブジェクト)の位置、回転角度を読み出し、次に基準モーションM1の各骨の位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理(モーション再生)が実現される。
【0176】
なお、モーションデータ記憶部173に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度(3軸周りの回転角度)で表される。具体的には、親の骨に対する子の骨のX軸、Y軸、Z軸回りの回転角度(相対的な回転角度)が、モーションデータとして記憶される。なお親の骨に対する子の骨の相対的な位置(相対距離)は、例えばモデルオブジェクト(キャラクタ)のモデルデータに含ませてもよい。
【0177】
本実施形態では、図12のようなスケルトンを構成する骨の動き情報に基づいて、第1、第2の描画モードの切り替え処理を行ってもよい。具体的には、例えば図13のA1、A2、A3に示すように、腰の骨B0の動き情報や、手の骨B7、B11の動き情報を検出する。即ち、これらの骨B0、B7、B11の位置や回転角度等をモニターして、これらの骨B0、B7、B11の動き情報を検出する。そして、骨の動きが大きくなったことが検出された場合には、描画モードを第1の描画モードから第2の描画モードに切り替える。例えば図6(A)、図6(B)では、キャラクタCHが走ることで、腰の骨B0が大きく動くことが検出され、図7(A)、図7(B)では、キャラクタCHが手を振ることで、手の骨B7、B11が大きく動くことが検出される。従って、これらの場合には、第1の描画モードから第2の描画モードに切り替えて、同じフレームで左眼用画像、右眼用画像の両方を生成して、画像のチラツキの発生等を抑制する。
【0178】
このように骨の動き情報に基づいて描画モードを切り替える手法によれば、キャラクタの様々な動きを自動的に検出して、第1、第2の描画モードの切り替え処理を行うことが可能になる。また、仮想カメラが動いて、画像上のキャラクタが相対的に動いた場合にも、第1の描画モードから第2の描画モードに切り替えることが可能になり、様々な状況に対応できるようになる。そして、骨の動き情報を用いる手法は、図11(B)のようにブロック分割して動き情報を検出する手法に比べて、処理負荷を軽くできるという利点がある。従って、少ない処理負荷で、様々な状況に対応した第1、第2の描画モードの切り替え処理を実現できるようになる。
【0179】
なお、第1、第2の描画モードの切り替え手法は、上述した手法に限定されず、種々の変形実施が可能である。例えば仮想カメラの動きを検出して、第1、第2の描画モードの切り替え処理を行ってもよい。
【0180】
或いは、オブジェクトが静止状態であると判断される場合や、ポーズ処理時に、描画モードを第1の描画モードに切り替えるようにしてもよい。例えば図14(A)では、キャラクタCHの手の振りモーションの再生時に、プレーヤの指示によりポーズ処理が行われている。例えば、鑑賞モード時に、プレーヤが操作部160を用いて所定の操作を行うことで、表示画像のポーズ処理が行われて、手を振っていたキャラクタCHが静止状態になる。
【0181】
そして、このようにキャラクタCHが、手の振りモーションからポーズ指示により静止状態になった場合に、図3(B)のように低解像度の左眼用画像、右眼用画像が生成される第2の描画モードのままになっていると、表示画像が低解像度であることがプレーヤに認識されてしまう。また、ポーズ処理等により静止状態になっている場合には、画像中の動きもないため、画像のチラツキも目立たない。
【0182】
そこで、このように、キャラクタ等のオブジェクトが静止状態であると判断される場合や、ポーズ処理時には、描画モードを第1の描画モードに切り替える。そして、高解像度の左眼用画像、右眼用画像を、フレーム毎に交互に生成するようにする。このようにすれば、静止状態時やポーズ処理時に高解像度の表示画像が生成されるようになり、各状況に応じた適切な画質の画像を表示できるようになる。
【0183】
図14(B)は、リプレイ時に生成される画像の例である。本実施形態では、このようなリプレイ画像生成時におけるスロー再生時やポーズ処理時に、描画モードを第1の描画モードに切り替えてもよい。例えばリプレイ時に、図14(B)に示すような操作パネルオブジェクト90が表示され、プレーヤが、この操作パネルオブジェクトによりスロー再生やポーズを指示すると、描画モードが第1の描画モードに切り替わる。そして、高解像度の左眼用画像、右眼用画像がフレーム毎に交互に生成されるリプレイ画像を表示するようにする。
【0184】
このようにすることで、プレーヤがリプレイ時に、ゲーム中でのキャラクタの動き等を鑑賞する場合に、高解像度で高精細に描かれたキャラクタの静止画像を鑑賞できるようになり、リプレイモードでの画像の品質の向上等を図れるようになる。
【0185】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(第1視点画像、第2視点画像、第1視点用領域、第2視点用領域等)と共に記載された用語(左眼用画像、右眼用画像、左眼用領域、右眼用領域等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、第1の描画モードでの画像生成処理、第2の描画モードでの画像生成処理、第1、第2の描画モードの切り替え処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、サーバシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【符号の説明】
【0186】
100 処理部、102 ゲーム演算部、104 オブジェクト空間設定部、
106 移動体演算部、107 モーション処理部、108 仮想カメラ制御部、
110 描画モード切り替え部、112 動き情報検出部、114 リプレイ処理部、
120 画像生成部、122 第1視点画像生成部、124 第2視点画像生成部、
130 音生成部、160 操作部、170 記憶部、
172 オブジェクトデータ記憶部、173 モーションデータ記憶部、
174 リプレイデータ記憶部、176 描画バッファ、177 第1のバッファ、
178 第2のバッファ、179 第3のバッファ、180 情報記憶媒体、
190 表示部、192 音出力部、194 補助記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
第1の描画モードと第2の描画モードの切り替え処理を行う描画モード切り替え部と、
立体視における第1視点から見える第1視点画像と第2視点から見える第2視点画像を立体視用画像として生成する画像生成部として、
コンピュータを機能させ、
前記画像生成部は、
前記第1の描画モードでは、第Kのフレームにおけるオブジェクトの描画処理により、前記第1視点画像を生成し、前記第Kのフレームの次の第K+1のフレームにおける前記オブジェクトの描画処理により、前記第1視点画像に対応する前記第2視点画像を生成し、
前記第2の描画モードでは、同じ第Lのフレームにおける前記オブジェクトの描画処理により、前記第1視点画像及び前記第2視点画像の両方を生成することを特徴とするプログラム。
【請求項2】
請求項1において、
前記画像生成部は、
前記第1の描画モードでは、高解像度の第1の解像度の前記第1視点画像、前記第2視点画像を生成し、
前記第2の描画モードでは、前記第1の解像度よりも低解像度の第2の解像度の前記第1視点画像、前記第2視点画像を生成することを特徴とするプログラム。
【請求項3】
請求項2において、
前記画像生成部は、
第Mのフレームにおいて前記第2の描画モードから前記第1の描画モードに切り替わった場合に、前記第1の描画モードであっても、前記オブジェクトの描画処理により、高解像度の前記第1視点画像及び前記第2視点画像の両方を生成することを特徴とするプログラム。
【請求項4】
請求項2又は3において、
画像が書き込まれる描画バッファとして、
コンピュータを機能させ、
前記描画バッファは、
書き込み用バッファ又は表示用バッファに設定される第1のバッファと、
前記第1のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第1のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第2のバッファと、
前記オブジェクトの描画処理が行われる第3のバッファとを含み、
前記画像生成部は、
前記第2の描画モードでは、低解像度の前記第2の解像度の前記第1視点画像、前記第2視点画像の画素数を増やすための画素補間処理を行い、前記画素補間処理後の前記第1視点画像、前記第2視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定されたバッファに対して書き込むことを特徴とするプログラム。
【請求項5】
請求項4において、
前記第1、第2、第3のバッファの各々は、第1視点用領域と第2視点用領域を有し、
前記画像生成部は、
前記第1の描画モードでは、
前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定された一方のバッファの前記第1視点用領域に対して書き込み、前記第Kのフレームの前の第K−1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記一方のバッファの前記第2視点用領域に対して書き込み、
前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記他方のバッファの前記第1視点用領域に対して書き込み、前記第K+1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記他方のバッファの前記第2視点用領域に対して書き込むことを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記描画モード切り替え部は、
操作部からの操作情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項7】
請求項6において、
前記描画モード切り替え部は、
前記操作部からの前記操作情報に基づいて、前記オブジェクトのモーションが、前記第1の描画モードに対応する第1のモーションから、前記第2の描画モードに対応する第2のモーションに切り替わったと判断した場合に、前記第1の描画モードから前記第2の描画モードに描画モードを切り替えることを特徴とするプログラム。
【請求項8】
請求項7において、
前記第1のモーションは、前記オブジェクトであるキャラクタの立ちモーションであり、前記第2のモーションは、前記キャラクタが前記立ちモーションから動くモーションであることを特徴とするプログラム。
【請求項9】
請求項1乃至5のいずれかにおいて、
前記描画モード切り替え部は、
画像の動き情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項10】
請求項9において、
前記描画モード切り替え部は、
前記オブジェクトの動き情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項11】
請求項10において、
前記描画モード切り替え部は、
前記オブジェクトのモーション処理に使用される骨の動き情報に基づいて、前記第1の描画モードと前記第2の描画モードの切り替え処理を行うことを特徴とするプログラム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記描画モード切り替え部は、
前記オブジェクトが静止状態であると判断される場合又はポーズ処理時に、描画モードを前記第1の描画モードに切り替えることを特徴とするプログラム。
【請求項13】
請求項1乃至12のいずれかにおいて、
画像が書き込まれる描画バッファとして、
コンピュータを機能させ、
前記描画バッファは、
書き込み用バッファ又は表示用バッファに設定される第1のバッファと、
前記第1のバッファが書き込み用バッファに設定される場合に表示用バッファに設定され、前記第1のバッファが表示用バッファに設定される場合に書き込み用バッファに設定される第2のバッファと、
前記オブジェクトの描画処理が行われる第3のバッファとを含み、
前記第1、第2、第3のバッファの各々は、第1視点用領域と第2視点用領域を有し、
前記画像生成部は、
前記第1の描画モードでは、
前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定された一方のバッファの前記第1視点用領域に対して書き込み、前記第Kのフレームの前の第K−1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記一方のバッファの前記第2視点用領域に対して書き込み、
前記一方とは異なる他方のバッファが書き込み用バッファに設定された場合には、前記第Kのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記他方のバッファの前記第1視点用領域に対して書き込み、前記第K+1のフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記他方のバッファの前記第2視点用領域に対して書き込むことを特徴とするプログラム。
【請求項14】
請求項13において、
前記画像生成部は、
前記第2の描画モードでは、
前記第Lのフレームで生成されて前記第3のバッファの前記第1視点用領域に書き込まれた前記第1視点画像を、前記第1、第2のバッファのうち書き込み用バッファに設定された一方のバッファの前記第1視点用領域に対して書き込み、
前記第Lのフレームで生成されて前記第3のバッファの前記第2視点用領域に書き込まれた前記第2視点画像を、前記一方のバッファの前記第2視点用領域に対して書き込むことを特徴とするプログラム。
【請求項15】
請求項1乃至14のいずれかにおいて、
前記第1視点画像は、二眼式立体視における左眼用画像、右眼側画像の一方の画像であり、前記第2視点画像は、前記一方とは異なる他方の画像であることを特徴とするプログラム。
【請求項16】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至15のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項17】
第1の描画モードと第2の描画モードの切り替え処理を行う描画モード切り替え部と、
立体視における第1視点から見える第1視点画像と第2視点から見える第2視点画像を立体視用画像として生成する画像生成部と、
を含み、
前記画像生成部は、
前記第1の描画モードでは、第Kのフレームにおけるオブジェクトの描画処理により、前記第1視点画像を生成し、前記第Kのフレームの次の第K+1のフレームにおける前記オブジェクトの描画処理により、前記第1視点画像に対応する前記第2視点画像を生成し、
前記第2の描画モードでは、同じ第Lのフレームにおける前記オブジェクトの描画処理により、前記第1視点画像及び前記第2視点画像の両方を生成することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2013−62731(P2013−62731A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−200747(P2011−200747)
【出願日】平成23年9月14日(2011.9.14)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】