説明

プログラム、情報記憶媒体及び画像生成装置

【課題】3DCG生成に係る処理負荷を軽減する新しい手法を提供すること。
【解決手段】画像生成タイミング毎に、奇数ラインのみを描いた奇数ラインインターレース画像と、偶数ラインインターレース画像を交互に生成し、それぞれの画像中の高速移動部分にモーションブラー処理を施し、奇数ラインブラー合成画像、偶数ラインブラー合成画像を生成する。そして、それらをフレームバッファの奇数ライン、偶数ラインにそれぞれ書き込む。フレームバッファへの書込処理では、ブラー合成画像(18)の仮想カメラに対して相対速度が高い部分をモーションブラー処理の際に利用した速度マップを利用して作成した合成速度マップ(19)を参照して抽出し、抽出された部分は隣接するピクセルの色と半透明合成してから書き込み、相対速度が低い部分は、ブラー合成画像の色をそのまま書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、所与の視点から見た仮想三次元空間の画像を生成させるためのプログラム等に関する。
【背景技術】
【0002】
3DCG(3次元コンピュータグラフィックス)を用いたビデオゲームを作成する場合、CGとしての品質向上に努める一方で、画像生成の処理負荷低減に努めなければならない。3DCGを生成するための処理負荷が大きすぎると、新たな画像生成がビデオモニタのリフレッシュレートに間に合わなくなり、ゲーム画面の動きがギクシャクしたり、操作応答性が劣化するなどの影響が出てしまうからである。
【0003】
従来、画像生成の処理負荷を軽減するために様々な観点からさまざまな工夫がなされてきた。例えば、ゲーム内の演出効果を高めるためのエフェクトの一つである「集中線エフェクト」の制御に着目し、複数のポリゴンを環状に配置して集中線を表現する代わりに、集中線全体を表すモデルを用いる技術が知られている(例えば、特許文献1を参照)。当該技術によれば、環状に配置されたポリゴンモデルを一つずつ変形・移動することによる膨大な処理負荷を、一つの集中線全体を表すモデルのスケーリング処理や回転処理で代用することで、集中線エフェクトに関する処理負荷を大きく低減することが可能になる。
【0004】
また、炎や煙や閃光などのパーティクルを表現するエフェクト画像に着目し、原画像(仮想三次元空間を仮想カメラで撮影した画像、エフェクト処理が施されていない撮ったままの画像)の奥行き値とエフェクト画像の奥行き値とに基づいてステンシル画像を描画する技術も知られる(例えば、特許文献2を参照)。当該技術によれば、仮想カメラから見てエフェクト画像の手前にオブジェクトが重なる場合に、当該オブジェクトに対応するピクセルについては描画しないピクセルとして指定し、当該オブジェクトと重ならないエフェクト画像に対応するピクセルについては描画するピクセルとして指定するステンシル画像がつくられるので、エフェクト画像を描画する際の処理負荷を軽減しつつ、原画像の劣化を回避することができるとされる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−140370号公報
【特許文献2】特開2010−134671号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
このように画像生成の処理負荷軽減の手法はさまざまであるが、近年の表示装置や表示素子の高画素化に伴い、1枚の画像を構成する総画素数が増加している。そのため、仮想カメラで仮想三次元空間を撮影した3DCG原画像のレンダリングに要する処理負荷が大きくなる傾向にある。また、フレームレートが高くなると更にこの問題が大きくなり、特に1枚の画像を生成する時間間隔に制約のあるビデオゲーム等においては大きな問題となる。
その為、上述のように特定のエフェクト効果に着目した処理負荷の軽減だけでは十分と言えないケースが散見されるようになった。
【0007】
本発明はこうした事情を鑑みてなされたものであり、その目的とするところは、3DCG生成に係る処理負荷を軽減する新しい手法を実現することである。
【課題を解決するための手段】
【0008】
以上の課題を解決するための第1の形態は、コンピュータに、所与の視点(例えば、図2の仮想カメラ8)から見た仮想三次元空間の画像を生成させるためのプログラムであって、
所定の時間間隔で到来する画像生成タイミング毎に、1ラインおきに飛び越した飛び越し画像である奇数ライン画像(例えば、図3の奇数ラインインターレース画像11)又は偶数ライン画像(例えば、図3の偶数ラインインターレース画像12)を交互に生成する飛び越し画像生成手段(例えば、図6の処理部200、画像生成部260、飛び越し画像生成部261、図9のステップS34,S38)、
前記飛び越し画像生成手段によって生成された第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを用いて、第n画像生成タイミングの全体画像を生成する全体画像生成手段(例えば、図6の処理部200、画像生成部260、全体画像生成部265、図10のフレームバッファ書込処理)、として前記コンピュータを機能させるとともに、
前記飛び越し画像生成手段が、
前記飛び越し画像中の部分毎の動きの大きさを判定する動き判定手段(例えば、図6の処理部200、画像生成部260、動き判定部263、図9のステップS54)と、
前記動き判定手段により判定された動きの大きさに基づき、所定のモーションブラー処理を施すモーションブラー処理手段(例えば、図6の処理部200、画像生成部260、モーションブラー処理部264、図9のステップS62,S64)と、を有し、
前記全体画像生成手段が、前記動き判定手段の判定結果を用いて、当該判定された動きの大きさに対応づけて定められた合成方法で、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを合成することで、第n画像生成タイミングの全体画像を生成する(例えば、図10のステップS84)、ように前記コンピュータを機能させるためのプログラムである。
【0009】
また、別形態として、所与の視点から見た仮想三次元空間の画像を生成する画像生成装置であって、
所定の時間間隔で到来する画像生成タイミング毎に、1ラインおきに飛び越した飛び越し画像である奇数ライン画像又は偶数ライン画像を交互に生成する飛び越し画像生成手段(例えば、図1の制御ユニット1450、図6の処理部200、画像生成部260、飛び越し画像生成部261、図9のステップS34,S38)と、
前記飛び越し画像生成手段によって生成された第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを用いて、第n画像生成タイミングの全体画像を生成する全体画像生成手段(例えば、図1の制御ユニット1450、図6の処理部200、画像生成部260、全体画像生成部265、図10のフレームバッファ書込処理)と、を備え、
前記飛び越し画像生成手段が、
前記飛び越し画像中の部分毎の動きの大きさを判定する動き判定手段(例えば、図1の制御ユニット1450、図6の処理部200、画像生成部260、動き判定部263、図9のステップS54)と、
前記動き判定手段により判定された動きの大きさに基づき、所定のモーションブラー処理を施すモーションブラー処理手段(例えば、図1の制御ユニット1450、図6の処理部200、画像生成部260、モーションブラー処理部264、図9のステップS62,S64)と、を有し、
前記全体画像生成手段が、前記動き判定手段の判定結果を用いて、当該判定された動きの大きさに対応づけて定められた合成方法で、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを合成することで、第n画像生成タイミングの全体画像を生成する画像生成装置(例えば、図1の携帯型ゲーム装置1400)を構成することができる。
【0010】
所定の時間間隔で到来する画像生成タイミングは、ゲーム画面を表示する画像表示装置や画像表示素子のリフレッシュレートに対応し、いわゆる「フレーム」としてカウントされる。また、ここで言う「ライン」とは、最終的にゲーム画面として表示される3DCGのピクセルの画面上下方向の段に相当する。よって、飛び越し画像は、最終的にゲーム画面として表示される3DCGに対するインターレース画像とも呼べる。
第1の形態によると、画像生成タイミング毎に生成するのは、最終的にゲーム画面として表示される3DCGをフルサイズとするならば、奇数ライン又は偶数ラインのみを描いたハーフサイズの画像になる。よって、大幅な処理負荷の軽減を実現できる。画像サイズをハーフサイズにするといった根本的なところでの対応なので、従来技術のように特定条件下でのみ処理負荷が軽減されるのではなく、ゲーム実行中において常に有効とすることができる。
【0011】
しかも、異なる画像生成タイミングで生成された奇数ライン画像と偶数ライン画像とで全体画像を生成しても、画像品質の劣化を抑制できるようになっている。すなわち、仮想カメラに対して相対移動の大きくなる部分は、ライン間のズレがジャギー状に現れ画像の品質を劣化させる可能性がある。しかし、飛び越し画像中の部分毎の動きの大きさを判定し、その動きの大きさに基づき所定のモーションブラー処理を施すとともに、同じ動き判定手段の判定結果を用いて、当該判定された動きの大きさに対応づけて定められた合成方法で、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを合成することで、ライン間のズレ(画像生成タイミングのズレに起因したズレでもある)を低減できる。
よって、画像品質の劣化を抑制しつつ処理負荷の低減を実現できる。
【0012】
第2の形態は、前記全体画像生成手段が、前記動き判定手段により判定された動きの大きさが所定の大きさ以上の部分について、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを半透明合成処理する(例えば、図10のステップS84)、ように前記コンピュータを機能させるための第1の形態のプログラムである。
【0013】
第2の形態によれば、第1の形態と同様の効果が得られるとともに、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを半透明合成することで、ライン間のズレ部分を目立たなくすることができる。見方によれば、動きの大きさが所定の大きさ以上の部分の輪郭が曖昧になるとも言えるが、同じ部分にはモーションブラー処理が施されるので、むしろモーションブラー処理の施された部分とそうでない部分との境界を目立たなくする効果を発揮するという効果もある。
【0014】
第3の形態は、前記全体画像生成手段が、第n画像生成タイミングの飛び越し画像に関する前記動き判定手段の判定結果と、第(n−1)画像生成タイミングの飛び越し画像に関する前記動き判定手段の判定結果とを用いて、第n画像生成タイミングの飛び越し画像と第(n−1)画像生成タイミングの飛び越し画像とに共通適用する動き判定用マスク(例えば、図4の合成速度マップ19)を作成するマスク作成手段(例えば、図1の制御ユニット1450、図6の処理部200、画像生成部260、マスク作成部266、図9のステップS66)と、
第n画像生成タイミングの飛び越し画像から前記動き判定用マスクを用いて抽出した抽出画像部分と、第(n−1)画像生成タイミングの飛び越し画像から前記動き判定用マスクを用いて抽出した抽出画像部分とを、前記動き判定用マスクに対応づけて定められた合成方法で合成するマスク部分合成手段(例えば、図1の制御ユニット1450、図6の処理部200、画像生成部260、マスク部分合成部267、図10のステップS84)と、を有するように前記コンピュータを機能させるための第1又は第2の形態のプログラムである。
【0015】
第3の形態によれば、第1又は第2の形態と同様の効果が得られるとともに、奇数ライン画像を生成したタイミングにおける動きの大きい部分と、偶数ライン画像を生成したタイミングにおける動きの大きい部分とを、ともに漏らさず抽出して動き判定用マスクに対応づけて定められた合成方法で合成することができる。つまり、ライン間のズレ部分を漏れなく目立たなくできる。
【0016】
第4の形態は、前記仮想三次元空間には、プレーヤキャラクタ及び/又はノンプレーヤキャラクタ(以下、包括的に「キャラクタ」という。)が存在し、
前記動き判定手段が、前記キャラクタの動きに基づいて、前記モーションブラー処理の対象となる動きの大きさ条件を満たすかを判定するキャラクタ動き判定手段(例えば、図1の制御ユニット1450、図12の処理部200、画像生成部260、キャラクタ動作判定部280、図14のステップS48)を有し、
前記モーションブラー処理手段が、前記キャラクタ動き判定手段の判定結果に基づいて、前記飛び越し画像中の前記キャラクタの画像部分に前記モーションブラー処理を施し、
前記マスク作成手段が、前記キャラクタ動き判定手段の判定結果を用いて、第(n−1)画像生成タイミング及び第n画像生成タイミングの何れかで、前記モーションブラー処理の対象となり、且つ、前記キャラクタの動きが所定の大きさ以上の部分を抽出するための動き判定用マスクを作成する手段(例えば、図12の処理部200、画像生成部260、マスク作成部266、図14のステップS67)を有する、ように前記コンピュータを機能させるための第3の形態のプログラムである。
【0017】
第4の形態によれば、第3の形態と同様の効果が得られるとともに、キャラクタを単位として、モーションブラー処理を施す部分、並びに動き判定用マスクに対応づけて定められた合成方法でライン間のズレ部分を漏れなく目立たなくできる。
【0018】
動きの大きさを判定に関しては、第5の形態として、前記視点の位置、視線方向および画角のうちの少なくとも1つの変化を検出する視点変化検出手段(例えば、図12の視点変化検出部282)として前記コンピュータを機能させ、
前記動き判定手段が、前記視点変化検出手段の検出結果に基づき、前記飛び越し画像中の背景画像部分の動きの大きさを判定するように前記コンピュータを機能させるための第1〜第4の何れかの形態のプログラムを構成することができる。
【0019】
第5の形態によれば、第1〜第4の形態の何れかと同様の効果が得られるとともに、背景が複数のオブジェクトの集合であっても一括して動きの大きさを判定できるので、更に処理負荷を軽減できる。
【0020】
第6の形態は、第1〜第5の何れかの形態のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第6の形態によれば、第1〜第5の何れかの形態のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第5の形態の何れかと同様の効果を発揮させることができる。
【図面の簡単な説明】
【0021】
【図1】携帯型ゲーム装置のシステム構成例を説明するための外観図。
【図2】画像生成の手法の説明における仮想三次元空間におけるオブジェクトと仮想カメラの配置条件を示す図。
【図3】画像生成の手法を説明するための概念図。
【図4】画像生成の手法を説明するための概念図。
【図5】画像生成の手法を説明するための概念図。
【図6】機能構成の一例を示す機能ブロック図。
【図7】オブジェクト制御データのデータ構成の一例を示す図。
【図8】主たる処理の流れを説明するためのフローチャート。
【図9】ゲーム空間画像生成処理の流れを説明するためのフローチャート。
【図10】フレームバッファ書込処理の流れを説明するためのフローチャート。
【図11】画像生成装置の変形例を示す斜視外観図。
【図12】機能構成の変形例を示す図。
【図13】動き判定テーブルのデータ構成の一例を示す図。
【図14】変形例のゲーム空間画像生成処理の流れを説明するためのフローチャート。
【発明を実施するための形態】
【0022】
〔第1実施形態〕
本発明を適用した実施形態として、画像生成装置でもある携帯型ゲーム装置において3DCG(3次元コンピュータグラフィックス)を用いたビデオゲームを実行する例について説明する。
【0023】
[ゲーム装置のシステム構成]
図1は、携帯型ゲーム装置のシステム構成例を説明するための外観図である。本実施形態における携帯型ゲーム装置1400は、方向入力キー1402及びボタンスイッチ1404と、第1液晶ディスプレイ1406と、第2液晶ディスプレイ1408と、スピーカ1410と、制御ユニット1450とを、ヒンジ1414で開閉自在な折り畳み型の装置本体1401に備えており、いわゆるコンピュータシステムを構成する。
そして、第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408の表示面上には、スタイラスペン1416などで触れることによって表示画面の任意位置を接触入力することのできるタッチパネル1407、1409がそれぞれ装着されている。
【0024】
また、装置本体1401には、コンピュータ読み取り可能な情報記憶媒体であるメモリカード1440からデータを読み書きできるメモリカード読取装置1418が備えられている。メモリカード1440には、携帯型ゲーム装置1400の制御ユニット1450がゲームプレイに係る各種演算処理を実行するために必要なプログラムや各種設定データが記憶されている。またその他、装置本体1401には、図示されていない内蔵バッテリーや電源ボタン、音量調節ボタン等が設けられている。
【0025】
タッチパネル1407、1409は、表示画面を遮蔽することなくそれぞれ第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408の表示画面のほぼ全域を被い、プレーヤがスタイラスペン1416(或いは指など)で触れる接触操作を行うと、左上を原点とする直交座標系における接触位置座標を制御ユニット1450へ出力する。
【0026】
制御ユニット1450は、ゲーム装置の制御基板に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、VRAMやRAM,ROM等の各種ICメモリを搭載する。
また、制御ユニット1450は、無線通信モジュール1412や、第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408のドライバ回路、タッチパネル1407及びタッチパネル1409のドライバ回路、方向入力キー1402及びボタンスイッチ1404からの信号を受信する回路、スピーカ1410へ音声信号を出力するためのアンプ回路、メモリカード読取装置1418への信号入出力回路といった所謂I/F回路(インターフェース回路)を搭載する。これら制御ユニット1450に搭載されている各要素は、それぞれバス回路を介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。
【0027】
そして制御ユニット1450は、メモリカード読取装置1418によってメモリカード1440に格納されているプログラムやデータを読み出して、搭載するICメモリにこれらを一時記憶する。そして、読み出したプログラムを実行して演算処理を実行し、方向入力キー1402やボタンスイッチ1404、タッチパネル1407及び1409からの操作入力に応じて携帯型ゲーム装置1400の各部を制御して、3DCGを生成し、ゲームを実行する。
【0028】
尚、本実施形態では、携帯型ゲーム装置1400は必要なプログラムや各種設定データをメモリカード1440から読み出す構成としているが、制御ユニット1450に搭載されている主要なプログラムやデータをICメモリに予め記憶している構成とすることができる。或いは、無線通信モジュール1412を介して、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)などの有線/無線の通信回線1に接続して外部装置からダウンロードして取得する構成としても良い。
【0029】
[画像生成の手法の説明]
本実施形態では、1フレーム(画像生成タイミングの単位)当たりに生成する画面のサイズを、最終的なゲーム画面のフルサイズ(例えば、横1280ピクセル×縦720ピクセル)の半分とすることで処理負荷の軽減を実現する。つまり、毎フレーム、フルサイズの画像を生成するのでは無く、奇数ラインのみ飛び越し描画した奇数ラインインターレース画像と、偶数ラインのみ飛び越し描画した偶数ラインインターレース画像とを、フレーム毎に交互に生成し、それぞれフレームバッファの奇数ライン、偶数ラインに書き込むこととする。
【0030】
但し、そのままでは、ゲーム空間を撮影する仮想カメラとの相対速度が大きいオブジェクトの輪郭線部分に奇数ラインと偶数ラインとのライン間のズレがジャギー状に表れ、視認され易い状態となるので、相対速度が大きいオブジェクトが描画されている部分については、ライン間のズレを生じ難くする合成処理を施してからフレームバッファへの書き込みを行うこととする。
【0031】
では、画像生成の手法を具体的に説明する。
図2は、画像生成の手法の説明における仮想三次元空間におけるオブジェクトと仮想カメラの配置条件を示す図である。仮想三次元空間には、背景オブジェクト2が設置されてゲーム空間3が形成される。そして、そのゲーム空間にプレーヤキャラクタであったり、NPC(ノンプレーヤキャラクタ)であったりのキャラクタオブジェクトが配置される。図2の高速移動オブジェクト4及び低速移動オブジェクト6がそれに該当する。プレーヤキャラクタやNPCが、早い動きをすればこれから説明する中での高速移動オブジェクト4に相当し、停止していたり緩い動きしかしていなければ、低速移動オブジェクト6に相当することとなる。尚、背景オブジェクト2、高速移動オブジェクト4、並びに低速移動オブジェクト6などのオブジェクトは、ポリゴンモデルにより表現されるものとする。
【0032】
また、ゲーム空間には、プレーヤキャラクタを撮影するための仮想カメラ8が設置される。実際にビデオゲームを実行する場合には、公知の3DCGを用いたビデオゲームがそうであるように、適宜、仮想カメラ8も撮影画角が変更されたり、姿勢が変更されたり、ゲーム空間3内を移動制御されるが、ここでは原理の理解を容易にするために仮想カメラ8は固定されているものとする。
高速移動オブジェクト4及び低速移動オブジェクト6それぞれの移動速度V4及びV6は、それらのオブジェクトと、仮想カメラ8の相対速度に相当する。
【0033】
図3〜図5は、本実施形態における画像生成の手法を説明するための概念図である。
制御ユニット1450では、ゲーム画面の画像生成タイミングがフレーム数fn(n=0,1,2,…)として逐次カウントされている。上述のように、本実施形態では仮想カメラ8で撮影されるゲーム空間3の様子を、各フレームにおいて、第1液晶ディスプレイ1406の全画素を使うフルサイズ画面10(10a,10b,…;図3参照)では生成しない。
【0034】
図3に示すように、フレーム数fnが奇数の場合には、フルサイズ画面の縦方向奇数ライン(上から奇数番目の段)のピクセルのみをレンダリングして奇数ラインインターレース画像11を生成する。換言すると、偶数ラインを飛び越した「偶数ライン飛び越し画像」を生成する。尚、図中では、描画されない偶数ラインの部分を黒く塗り潰してフルサイズ画面10と同じサイズで表示しているが、データとしてのサイズはフルサイズ画面10の半分である。図中には、描画されない偶数ラインを圧縮した奇数ラインインターレース画像11(縦につぶれた画面)を並べて示している。
【0035】
同様にして、フレーム数fnが偶数の場合(図中では、fn+1に相当)、フルサイズ画面の縦方向奇数ラインのピクセルのみをレンダリングして偶数ラインインターレース画像12を生成する。換言すると、奇数ラインを飛び越した「奇数ライン飛び越し画像」を生成する。
【0036】
そして、奇数ラインインターレース画像11及び偶数ラインインターレース画像12を生成するのに伴って、移動するオブジェクトにモーションブラー処理を施すために、それぞれに対応する奇数ライン速度マップ15と、偶数ライン速度マップ16とを生成する。
【0037】
本実施形態ではモーションブラー処理を、「移動軌跡ボリューム法」に分類される手法により実現する。本明細書で言うところの「速度マップ」は移動軌跡ボリューム法におけるものであり、「ベロシティーマップ」「引き延ばしマップ」と呼ばれる場合も有る。
【0038】
具体的には、フレーム数fnにおける奇数ライン速度マップ15を生成するには、先ず、各オブジェクトのポリゴンの各頂点について、一つ前のフレーム数fn−1の時点における頂点の画面座標位置と、今回のフレーム数fnの時点における頂点の画面座標位置とを比較して差分を求め、両フレーム間の時間差から移動速度の方向と移動速度の大きさ、即ち速度ベクトルを求める。つまり、求められた速度ベクトルは仮想カメラに対する相対速度を表しており、仮想カメラ(視点)の位置、視線方向および画角のうちの少なくとも1つの変化の影響が包含されていると言える。
【0039】
次に、各頂点の法線ベクトルと、求めた速度ベクトルとの向きを比較し、両ベクトルの向きが近い場合には今回のフレーム数fnにおける頂点を採用し、両ベクトルの向きが離れている場合には、前回のフレーム数fn−1における頂点を採用したポリゴンを形成する。つまり、ポリゴンを過去の位置から現在の位置まで引き伸ばした移動軌跡ボリュームを投影したポリゴンを生成し、当該ポリゴンを色の代わりの情報として求めた速度ベクトルでレンダリングする。これが奇数ライン速度マップ15となる。
偶数ラインインターレース画像12からも同様にして偶数ライン速度マップ16を生成する。
【0040】
そして、図4に示すように、奇数ラインインターレース画像11と奇数ライン速度マップ15とから奇数ラインブラー合成画像17を生成し、偶数ラインインターレース画像12と偶数ライン速度マップ16とからは偶数ラインブラー合成画像18を生成する。
【0041】
例えば、奇数ラインブラー合成画像17を生成するには、この奇数ライン速度マップ15から奇数ラインブラー合成画像17の各ピクセル位置での速度ベクトルの情報を読み出し、奇数ラインインターレース画像11をシーンテクスチャと見なし、速度ベクトル分だけずらしてサンプリングする。即ち、奇数ラインブラー合成画像17のあるピクセルについて、奇数ライン速度マップ15から速度ベクトルを読み出し、当該速度ベクトル分だけ戻った位置のシーンテクスチャのテクセルをサンプリングし、薄く半透明合成する。
勿論、当該あるピクセルからサンプリングするテクセルとの間のテクセルにも重み付けしてサンプリングする。重み付けは、現在位置に近いほど重くするので、過去の位置ほど薄く残像が残っているように表現された、所謂モーションブラーとなる。
【0042】
偶数ラインブラー合成画像18も、同様にして偶数ライン速度マップ16と、偶数ラインインターレース画像12とから生成される。
【0043】
奇数ラインブラー合成画像17と、偶数ラインブラー合成画像18が、それぞれの画像生成タイミングにおける最終的なゲーム空間画像となるので、前者のブラー合成画像のピクセルをフレームバッファの奇数ラインに、後者のブラー合成画像のピクセルをフレームバッファの偶数ラインにそれぞれの画像生成タイミングで書き込めば、1フレーム違いの奇数ラインブラー合成画像17と偶数ラインブラー合成画像18とが混じった一枚の最終画像が形成され、第1液晶ディスプレイ1406に表示されることとなる。
【0044】
但し、前述のようにライン別にフレームバッファへの書き込みを行ったのでは、高速移動オブジェクト4の輪郭部で、奇数ラインと偶数ラインとのズレ(時間的なズレに起因する。)が目立ち、毛羽立ったように見える可能性がある。そこで、本実施形態では、奇数ラインブラー合成画像17や、偶数ラインブラー合成画像18をフレームバッファに書き込む際、書き込み対象とするピクセルが、仮想カメラ8に対して、奇数ラインと偶数ラインとのズレが目立つ恐れがあるほど高速移動しているオブジェクトを示しているか否かに応じて書き込み時の処理を変えて、奇数ラインと偶数ラインとのズレを抑制することとする。
【0045】
その為に、本実施形態では、奇数ライン速度マップ15と、偶数ライン速度マップ16とを参照し、両速度マップにおいて所定の高速移動条件(動きの大きさの条件)を満たす速度のピクセルを抽出して白く描き、それ以外を黒く描いたフルサイズの合成速度マップ19を生成する。合成速度マップ19が、動き判定用マスクの一例である。
【0046】
図5は、本実施形態におけるラインブラー合成画像をフレームバッファに書き込むときの原理を説明するための概念図である。
奇数ラインブラー合成画像17又は偶数ラインブラー合成画像18をフレームバッファに書き込む際には、合成速度マップ19を参照して、書き込み対象のピクセルP2が、高速移動点と見なされなければ、ラインブラー合成画像の色をそのまま書き込む(P2’)。つまり、全体画像20を描画する。
【0047】
もし、書き込み対象とするピクセルP1が、高速移動点と見なされれば、当該書き込み対象ピクセルP1のラインより一つ上のラインで同じ画面座標系Y座標の上方隣接ピクセルPu、及び書き込み対象ピクセルのラインより一つ下のラインで同じ画面座標系Y座標の下方隣接ピクセルPd(上方隣接ピクセルと下方隣接ピクセルは、前のフレームの時に既に書き込まれている。)の色を半透明合成してブレンドして、書き込み対象ピクセルの色P1’を決定する。
【0048】
具体的には、書き込み対象とするピクセルP1と、上方隣接ピクセルPuの色を50%ずつで合成して第1合成色を求める。また、書き込み対象とするピクセルと、下方隣接ピクセルPdの色を50%ずつで合成して第2合成色を求める。そして、第1合成色と第2合成色を再び50%ずつ合成して、最終的な書き込み対象ピクセルの色(P1’)とする。こうした手法を「インターレースα合成」と呼ぶこととする。
【0049】
結果、フレームバッファ上の画像、すなわち全体画像20に着目すると、高速移動点と見なされて「インターレースα合成」された所は、周囲のピクセルの情報を半分とりこむので、ラインブラー合成画像の色をそのまま書き込まれたところ(P2’)よりもボケた感じを与えやすい。しかし、そもそも高速移動点と見なされるオブジェクトの部分にはモーションブラー処理が施されており、残像感の残ったぼやけた感じとなるので、インターレースα合成によるネガティブな印象はむしろポジティブな効果を生むこととなる。
【0050】
一方、高速移動点と見なされずに、ラインブラー合成画像の色をそのまま書き込まれたところは、そもそも対象となるオブジェクトの部分がほとんど動いていないので、異なるフレームにおける奇数ラインインターレース画像11と、偶数ラインインターレース画像12が上下交互に描画されていてもその輪郭部のジャギー感は極めて小さく、プレーヤが違和感を感じる事は無く、むしろ輪郭部が強調され、コントラストのはっきりした高品位な感じを与える。
よって、画像品質の劣化を抑制しつつ、画像生成の処理負荷の軽減を実現することができる。
【0051】
[機能ブロックの説明]
次に、上述のようなゲームを実行するための機能構成例について説明する。
図6は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0052】
操作入力部100は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。例えば、ボタンスイッチや、ジョイスティック、タッチパッド、トラックボールといった直接プレーヤが指で操作する素子はもちろん、加速度センサや角速度センサ、傾斜センサ、地磁気センサなど、運動や姿勢を検知する素子などによっても実現できる。図1の方向入力キー1402やボタンスイッチ1404、タッチパネル1407,1409がこれに該当する。
【0053】
処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ASIC、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500を含む携帯型ゲーム装置1400の各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、携帯型ゲーム装置1400の動作を制御する。図1では制御ユニット1450が処理部200に該当する。
そして、本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0054】
ゲーム演算部210は、3DCGによるビデオゲームを実行するための各種処理を実行する。例えば、プレーヤキャラクタとNPCとが対戦する格闘ゲームを実行するならば、(1)仮想3次元空間内に背景オブジェクト2を配置してゲーム空間3を形成し、そこにプレーヤキャラクタやNPCとなるオブジェクトを配置する処理、(2)プレーヤキャラクタのオブジェクトを操作入力部100からの操作入力に応じて動作させる処理、(3)NPCのオブジェクトを自動的に移動及び動作させるいわゆるAI制御をする処理、(4)プレーヤキャラクタとNPCの攻撃や接触の判定処理、(5)攻撃によるダメージの反映処理、(6)プレーヤキャラクタ及びNPCの様子を撮影する仮想カメラの位置や姿勢、画角など撮影パラメータを自動制御する処理、(7)勝敗の判定処理、などを実行する。その他、適宜カウンタ、タイマー、フラグ設定など格闘ゲームの実行に必要な各種処理を実行する。こうした処理は、公知の格闘ゲームに関する演算処理と同様にして実現できる。
【0055】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)や、音声合成ICなどのプロセッサ、音声ファイル再生可能なオーディオコーデック等によって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0056】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではスピーカ1410がこれに該当する。
【0057】
画像生成部260は、例えば、GPU(Graphics Processing Unit)、デジタルシグナルプロセッサ(DSP)などのプロセッサ、ビデオ信号IC、ビデオコーデックなどのプログラム、フレームバッファ等の描画フレーム用ICメモリ、テクスチャデータの展開用に使用されるICメモリ等によって実現される。画像生成部260は、ゲーム演算部210による処理結果に基づいて、1フレーム時間(所定の時間間隔で到来する画像生成タイミング毎;例えば1/60秒)で1枚のゲーム画面を生成し、生成したゲーム画面の画像信号を画像表示部360に出力する。
【0058】
そして、本実施形態の画像生成部260は、飛び越し画像生成部261と、速度マップ生成部262と、モーションブラー処理部264と、全体画像生成部265とを備える。
【0059】
飛び越し画像生成部261は、所与の視点(図2の仮想カメラ8)から見た仮想三次元空間の画像を所定の時間間隔で到来する画像生成タイミング(図3のフレーム数fn−1、fn、fn+1、…)毎に、1ラインおきに飛び越した飛び越し画像である奇数ラインインターレース画像11又は偶数ラインインターレース画像12を交互に生成する。
【0060】
速度マップ生成部262は、仮想カメラ8で撮影されるオブジェクトについて、第n画像生成タイミング(例えば、図3のフレーム数fn)のときのポリゴンの頂点の画像座標位置と、第n−1画像生成タイミング(例えば、図3のフレー数fn−1)のときの頂点の画像位置との差分、すなわち仮想カメラ8と頂点との相対速度に基づいて、奇数ライン速度マップ15又は偶数ライン速度マップ16を生成する。奇数ライン速度マップ15及び偶数ライン速度マップ16は、画像生成タイミングが到来する毎に交互に生成される。速度マップ生成部262は、速度マップを生成するにあたり、飛び越し画像中の部分毎の動きの大きさを判定する動き判定部263としての機能を有するとも言える。
【0061】
モーションブラー処理部264は、飛び越し画像にモーションブラー効果を施す為の処理を実行する。本実施形態では、移動軌跡ボリューム法を用いて実現する。
一枚のブラー合成画像を生成するには、飛び越し画像と、それから生成された速度マップを参照する。先ず、ライン速度マップから各ピクセル位置の速度ベクトルの情報を読み出し、先に生成されている飛び越し画像をシーンテクスチャと見なし、速度ベクトル分だけ戻った位置のシーンテクスチャのテクセルをサンプリングし、薄く合成する。
【0062】
全体画像生成部265は、飛び越し画像生成部261によって生成された第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを用いて、第n画像生成タイミングの全体画像を生成する。具体的には、モーションブラー処理部264によりモーションブラー効果が施された第n画像生成タイミングの飛び越し画像を、画像生成タイミングが奇数番目であれば、フレームバッファの奇数ラインへ書き込み、画像生成タイミングが偶数番目であれば、フレームバッファの偶数ラインへ書き込む。
【0063】
そして、本実施形態の全体画像生成部265は、フレームバッファへの書き込みに際して、速度マップを参照し、仮想カメラ8に対する相対速度の大きい部分(ドット)を書き込む際には輪郭部にジャギーのような乱れが生じるのを抑制する合成処理を施してから書き込みを行う。そのために、マスク作成部266と、マスク部分合成部267と、を含む。
【0064】
マスク作成部266は、フレームバッファへの書き込みに際して、画像生成タイミングが相前後する奇数ライン速度マップ15(すなわち、第n画像生成タイミングの飛び越し画像に関する動き判定結果)と、偶数ライン速度マップ16(すなわち、第(n−1)画像生成タイミングの飛び越し画像に関する動き判定手結果)とから、それぞれにおいて所定の高速度基準を満たす速度を有する部分(ドット)を抽出し、第n画像生成タイミングの飛び越し画像と第(n−1)画像生成タイミングの飛び越し画像とに共通適用する動き判定用マスク(本実施形態の合成速度マップ19)を作成する。即ち、マスク作成部266は、合成速度マップ19を生成するにあたり、飛び越し画像中の部分毎の動きの大きさを判定する動き判定部としての機能を果たす。
【0065】
マスク部分合成部267は、第n画像生成タイミングの飛び越し画像から動き判定用マスクを用いて抽出した抽出画像部分と、第(n−1)画像生成タイミングの飛び越し画像から同じ動き判定用マスクを用いて抽出した抽出画像部分とを、動き判定用マスク(本実施形態における合成速度マップ19)に対応づけて定められた合成方法で合成する。
ここでいう「定められた合成方法」として、本実施形態では、書き込みの対象とするピクセルと、当該対象とするピクセルより一つ上のラインに有って画面座標系Y座標が同じになる上方隣接ピクセルと、当該対象とするピクセルより一つ下のラインに有って画面座標系Y座標が同じになる下方隣接ピクセルとのそれぞれの色情報をブレンドして、当該処理対象(書込対象)のピクセルの色を決定し、決定した色でオフセット522の設定値に応じたラインに書き込みする(図5参照)。つまり、奇数ラインブラー合成画像17ならばフレームバッファの奇数ラインへ、偶数ラインブラー合成画像18ならば偶数ラインへ書き込む。
【0066】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。
本実施形態では、図1の第1液晶ディスプレイ1406及び第2液晶ディスプレイ1408が該当する。
【0067】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0068】
通信部370は、通信回線1と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1の無線通信モジュール1412がこれに該当する。
【0069】
記憶部500は、処理部200に携帯型ゲーム装置1400を統合的に制御させるための諸機能を実現するためのプログラムや、ビデオゲームを実行するために必要なプログラム、それらを実行するに当たり必要とする各種データ等を記憶する。
また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。従って、記憶部500の一部は、いわゆるフレームバッファ560としても利用されることとなる。こうした機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。図1では制御ユニット1450が搭載するICメモリやメモリカード1440がこれに該当する。
【0070】
本実施形態では、記憶部500はシステムプログラム501と、ゲームプログラム502とを記憶している。システムプログラム501は、携帯型ゲーム装置1400のコンピュータとしての入出力の基本機能を実現するためのプログラムである。ゲームプログラム502は、処理部200が読み出して実行することによってゲーム演算部210としてゲーム進行を制御するための諸機能を実現させるためのアプリケーションソフトであるが、システムプログラム501の一部として組み込まれた構成であっても良い。
【0071】
画像生成プログラム503は、処理部200に画像生成部260として機能させるためのプログラムである。画像生成部260を構成する演算処理装置等がプログラマブルシェーダとしての機能を実装している場合、当該プログラムを所謂「シェーディングプログラム」などにより実現できる。尚、画像生成部260の機能の全てをハードウェアにより実現する構成の場合には、画像生成プログラム503を省略することができる。
【0072】
また、記憶部500には、本発明に関して予め用意されるデータとして、背景オブジェクト設定データ510と、キャラクタオブジェクト設定データ512と、が記憶されている。
【0073】
背景オブジェクト設定データ510は、仮想三次元空間にゲーム空間3を構成するための背景オブジェクト2のモデルデータや、テクスチャデータ、モーションデータ、配置位置座標、などの情報をオブジェクト毎に格納する。
【0074】
キャラクタオブジェクト設定データ512は、プレーヤキャラクタやNPCなどのキャラクタとなるオブジェクトのモデルデータや、テクスチャデータ、様々な動作を実現するための複数のモーションデータセット(例えば、モーションIDとそれに対応するモーションデータを含む)、配置位置座標、移動パターンなどの情報をオブジェクト毎に格納する。
【0075】
また、記憶部500には、ゲームの準備や進行、並びに画像生成に伴って随時生成や更新が行われるデータとして、オブジェクト制御データ514と、仮想カメラ制御データ518と、フレーム数520と、オフセット522と、奇数ラインインターレース画像11と、偶数ラインインターレース画像12と、奇数ライン速度マップ15と、偶数ライン速度マップ16と、奇数ラインブラー合成画像17と、偶数ラインブラー合成画像18と、合成速度マップ19と、全体画像20と、を記憶する。
尚、図の例では、全体画像20のみをフレームバッファ560に格納する構成として図示しているが、これに限らない。奇数ラインインターレース画像11と、偶数ラインインターレース画像12と、奇数ライン速度マップ15と、偶数ライン速度マップ16と、奇数ラインブラー合成画像17と、偶数ラインブラー合成画像18とを、適宜格納することもできる。何れのデータを格納するかは、画像生成部260の仕様による。
【0076】
オブジェクト制御データ514には、ゲーム空間3に配置されている各オブジェクト毎に用意され、対応するオブジェクトの位置や姿勢、運動状態、表示色などを示す各種パラメータ値が格納されている。ゲーム開始とともにゲーム演算部210により生成され、ゲーム進行にともなって逐次書き換えられる。
例えば、図7に示すように、一つのオブジェクト制御データ514は、対応するオブジェクトの識別情報を格納するオブジェクトID514aと、当該オブジェクトのローカル座標原点のワールド座標位置を格納するローカル座標原点位置座標514bと、当該オブジェクトが特定のモーションデータに従って動作される場合にその実行中のモーションの識別情報を格納する実行中モーションID514cと、当該実行中のモーションの制御パラメータ値を格納するモーション制御データ514dとを含む。更に、オブジェクト制御データ514は、対応するオブジェクトの各頂点情報を格納する第1頂点情報セット515及び第2頂点情報セット516を含む。
【0077】
第1頂点情報セット515と第2頂点情報セット516は、ゲーム演算部210や画像生成部260により画像生成タイミング毎に交互に更新される。例えば、前者がフレーム数が奇数のタイミングで更新され、後者が偶数のタイミングで更新される。
【0078】
第1頂点情報セット515及び第2頂点情報セット516は、共に更新時のフレーム数を格納する更新タイミング517aを含む。また、対応するオブジェクトのポリゴン頂点を識別する頂点ID517bと対応づけて、ゲーム演算部210によって画像生成タイミング毎に実行されるオブジェクトの移動や動作制御の結果である頂点位置座標517cと、画像生成部260により決定された頂点カラー517dとを格納する。その他、法線ベクトル517eや頂点速度ベクトルなどを適宜対応づけて格納する。
つまり、常に今回の画像生成タイミングにおける状態と、一つ前の画像生成タイミングにおけるオブジェクトの状態を示す情報が保存されている。
【0079】
仮想カメラ制御データ518は、仮想カメラ8の位置、画角、姿勢、移動ベクトル、移動軌跡などの情報を格納する。
【0080】
フレーム数520は、画像生成部260によりカウントされるフレーム数fn(n=1,2,…)を格納する。
【0081】
オフセット522は、インターレース画像を生成する際に参照されるパラメータであって、ラインのオフセット数を格納する。オフセット522が「0」ならば奇数ライン、「1」ならば偶数ラインとなる。画像生成部260によりインターレース画像を生成する都度、値が交互に変更される。
【0082】
尚、記憶部500には、ゲームの進行や画像生成に係る処理を実行するにあたり必要となる各種データ(例えば、タイマー値やカウンタ、座標変換行列、テクスチャ、Zバッファなど)も適宜記憶されるものとする。
【0083】
[処理の流れの説明]
次に、本実施形態における処理の流れについて説明する。ここで説明する一連の処理の流れは、処理部200がシステムプログラム501を読み出して実行中に、ゲームプログラム502と画像生成プログラム503とを読み出して実行することによって、実現される。尚、ビデオゲームの進行そのものに関する処理や、ヒットポイントの表示やプレイ可能時間の表示、ラウンド数の表示など各種情報表示の合成に係る処理、ゲーム音の生成に関する説明は省略するが、公知のビデオゲームと同様にして適宜行われるものとする。
【0084】
図8は、本実施形態における主たる処理の流れを説明するためのフローチャートである。処理部200は先ず、背景オブジェクト設定データ510、キャラクタオブジェクト設定データ512を参照して、仮想三次元空間に背景やプレーヤキャラクタ、NPC等のオブジェクトを初期配置し、配置したオブジェクト毎にオブジェクト制御データ514を生成して逐次更新を開始する(ステップS2)。
次いで、仮想三次元空間内に仮想カメラ8を配置し、仮想カメラ制御データ518を生成して逐次更新を開始する(ステップS4)。そして、フレーム数520を初期化する(ステップS6)。
【0085】
ゲームが開始されたならば(ステップS8)、以降、処理部200はステップS10〜S104を画像生成タイミング周期、つまり1フレーム周期で繰り返し実行する。
具体的には、処理部200はオブジェクト毎の動作制御を実行する(ステップS10)。例えば、操作入力100からの操作入力信号に応じてプレーヤキャラクタのオブジェクトの動作を制御し、所謂AI制御によりNPCの動作を制御する。その結果、プレーヤキャラクタやNPCのオブジェクトは、図3における高速移動オブジェクト4であったり、低速移動オブジェクト6に相当する状況となる。尚、背景オブジェクト2についても、予め動作を設定されているものについては、当該ステップにて動作制御されるものとする。
【0086】
次に、処理部200は、仮想カメラ8の自動制御を行う(ステップS12)。例えば、プレーヤキャラクタとなるターゲットオブジェクトを常に撮影画角内に納めるように、仮想カメラ8の位置、姿勢(視線方向等)、画角などを制御する。或いは、ゲーム画面を演出意図に基づいて効果的に見せるために、所与のタイミング(例えば、プレーヤキャラクタが特定の技を発動した場合など)に所定の移動軌跡(例えば、プレーヤキャラクタを中心にぐるり1周するなど)で移動させる場合も含まれる。
ここまでで、各オブジェクトと仮想カメラ8との新しい位置が決定したことになるので、処理部200、具体的には画像生成部260は、当該画像生成タイミング、つまり当該フレームにおけるゲーム空間画像を生成するためにゲーム空間画像生成処理を実行する(ステップS14)。
【0087】
図9は、本実施形態におけるゲーム空間画像生成処理の流れを説明するためのフローチャートである。同処理において、画像生成部260は先ず、フレーム数520を参照し、フレーム数fn(n=0,1,2,・・・)が偶数か奇数かを判定する(ステップS30)。
【0088】
もし、奇数であれば(ステップS30の奇数)、オフセット522を「0」に設定し(ステップS32)、奇数ラインインターレース画像11を生成する(ステップS34)。つまり、画像座標系X座標(縦方向座標)が奇数のピクセルをレンダリングし、X座標が偶数のピクセルはレンダリングしない。当該インターレース画像は、後のモーションブラー処理におけるシーンテクスチャとしても利用するので、記憶部500に一時記憶しておく。
【0089】
もし、現在のフレーム数fn(n=0,1,2,・・・)が偶数であれば(ステップS30の偶数)、画像生成部260はオフセット522を「1」に設定し(ステップS36)、偶数ラインインターレース画像12を生成する(ステップS38)。つまり、画像座標系X座標が偶数のピクセルをレンダリングし、X座標が奇数のピクセルはレンダリングしない。
【0090】
次に、現在のフレーム数fn(n=0,1,2,・・・)が「1」未満であれば(ステップS50のNO)、画像生成部260は今回生成したインターレース画像をフレームバッファに、オフセット522の設定に応じたラインに書き込こむ(ステップS52)。つまり、奇数ラインインターレース画像11であればフレームバッファ560の奇数ライン、偶数ラインインターレース画像12であれれば偶数ラインに、インターレース画像のピクセルがそのまま書き込まれ、全体画像20の奇数/偶数何れか一方のラインが更新されることになる。そして、ゲーム空間画像生成処理を終了する。現在のフレーム数fnが「1」未満の場合は、基本的に最初の1回目の処理のみである。
【0091】
一方、現在のフレーム数fn(n=0,1,2,・・・)が「1」以上である場合(ステップS50のYES)、つまり少なくとも1フレーム前の画像が既に生成されている場合には、画像生成部260は、オフセット522の設定値に応じた奇数ライン速度マップ15又は偶数ライン速度マップ16を生成する(ステップS54)。
【0092】
次に、もしオフセット522の設定値が「0」である場合、すなわち今回の画像生成タイミングで奇数ラインインターレース画像11を生成した場合には(ステップS60の「0」)、画像生成部260は、ステップS52で生成した速度マップを元に、今回生成した奇数ラインインターレース画像11にモーションブラー処理を施し、奇数ラインブラー合成画像17を生成する(ステップS62)。
【0093】
反対に、オフセット522の設定値が「1」の場合、すなわち今回の画像生成タイミングで偶数ラインインターレース画像12を生成した場合には(ステップS60の「1」)、処理部200は、ステップS52で生成した速度マップを元に、今回生成した偶数ラインインターレース画像12にモーションブラー処理を施し、偶数ラインブラー合成画像18を生成する(ステップS64)。
【0094】
そして、画像生成部260は、奇数ライン速度マップ15と、偶数ライン速度マップ16とから合成速度マップ19を生成する(ステップS66)。つまり、全体画像20のうち、仮想カメラ8に対する相対移動速度がインターレース画像をそのままフレームバッファに書き込んだのではジャギーの視認可能性が高いと判断される程度に高速である部分を選別するためのマスクを生成する。そして、画像生成部260は、フレームバッファ書込処理をする(ステップS68)。
【0095】
図10は、本実施形態におけるフレームバッファ書込処理の流れを説明するためのフローチャートである。同処理では、画像生成部260は、ループA(ステップS80〜S88)を、今回の画像生成タイミングに合わせてステップS62及びS64で生成されたブラー合成画像の全ピクセルについて実行する。
【0096】
具体的には、同処理において、画像生成部260は、先ずループAの処理対象のピクセル、すなわちフレームバッファへの書き込み対象とするピクセルが、合成速度マップ19に白く描画されているかを判定する(ステップS82)。つまり、処理対象ピクセルが、仮想カメラ8に対して高速移動している部分で有るかを判定する。
【0097】
そして、もし肯定ならば(ステップS82のYES)、当該ピクセルは仮想カメラ8に対する相対速度が高い部分に相当すると判断できるので、画像生成部260は、ループAの処理対象ピクセルと、当該ピクセルより一つ上のラインに有って画面座標系Y座標(横方向座標)が同じになる上方隣接ピクセルと、及び当該対象とするピクセルより一つ下のラインに有って画面座標系Y座標が同じになる下方隣接ピクセルとのそれぞれの色を、半透明合成でブレンドすることで当該処理対象ピクセルの色を決定し、決定した色でオフセット522の設定値に応じたラインに書き込みする(図5参照)。つまり、奇数ラインブラー合成画像17ならばフレームバッファの奇数ラインへ、偶数ラインブラー合成画像18ならば偶数ラインへ書き込みする(ステップS84)。そして、処理対象ピクセルへのループAを終了する(ステップS88)。
【0098】
反対に、もし処理対象ピクセルの仮想カメラ8に対する相対移動速度が高いと判断されなければ(ステップS82のNO)、画像生成部260は処理対象ピクセルの色をそのままオフセット522の設定値に応じたラインに書き込みをし(ステップS86)、処理対象ピクセルへのループAを終了する(ステップS88)。
【0099】
今回生成されたブラー合成画像の全てのピクセルについてループAを実行したら、フレームバッファ書込処理を終了する。
【0100】
図9のフローチャートに戻って、フレームバッファ書込処理を終了したならば、ゲーム空間画像生成処理を終了する。尚、本処理には適宜フレーム待ちのステップ、つまり画像生成タイミングとの同期をとるための待機ステップを設けることができる。
【0101】
図8のフローチャートに戻って、ゲーム空間画像生成処理を終了したならば、処理部200はフレーム520を「1」アップし(ステップS100)、当該フレームにおけるオブジェクトの移動に伴うゲーム結果の判定処理を実行する(ステップS102)。例えば、ビデオゲームが格闘ゲームであれば、プレーヤキャラクタやNPCの攻撃や防御を判定し、相手方の攻撃がヒットしたと判定される場合には、ヒットポイントを減ずるなどの処理を行う。プレイ時間に制限が設けられている場合には、制限時間を減ずることもする。
【0102】
その結果、もしゲーム終了条件を満たしていなければ(ステップS104のNO)、ステップS10に戻る。ゲーム終了条件を満たしていれば(ステップS104のYES)、一連の処理を終了する。
【0103】
以上、本実施形態によれば、一の画像生成タイミングで生成する画像を、フルサイズ画面の画像ではなく、ハーフサイズの奇数ライン又は偶数ラインを飛び越したインターレース画像(飛び越し画像)とすることで、画像生成に係る処理負荷を削減することが可能となる。
【0104】
しかも、本実施形態では、生成したインターレース画像の中で仮想カメラ8に対して高速移動するオブジェクトの部分を識別し、フレームバッファに書き込む際、該当部分をジャギーの発生が抑制できる合成処理を適用して書き込むことができる。よって、ハーフサイズのインターレース画像を用いても、ゲーム画面の品質を十分維持することができる。
【0105】
更に述べるならば、仮想カメラ8に対して高速移動するオブジェクトの部分を識別するのに、モーションブラー処理で使用する速度マップを流用することにより、別途識別のための処理負荷を削減することができる。
【0106】
〔変形例〕
以上、本発明を適用した実施形態について説明したが、本発明の適用可能な実施形態が上述の実施形態に限定されるものではなく、適宜、構成要素の追加・省略・変更を施すことができる。
【0107】
[その1]
例えば、上記実施形態では画像生成装置として携帯型ゲーム装置1400を例示したが、据え置き型の家庭用ゲーム装置や業務用ゲーム装置として実現しても良い。更には“ゲーム装置”とされる電子機器(コンピュータ)に限らず、アプリケーションソフトが実行可能な携帯電話機や情報端末装置、コンパクトデジタルカメラ、音楽プレーヤ、パソコン、カーナビと言った電子機器も、プログラムを実行可能なコンピュータを内蔵している、或いはコンピュータそのものと言えるため、本発明を実現する画像生成装置の一形態とすることができる。
【0108】
例えば、図11は、本発明が適用された画像生成装置である業務用ゲーム装置1300の構成例を示す図である。
業務用ゲーム装置1300は、ゲーム装置本体1301の前方に突設された操作台1304に、プレーヤが各種操作入力をするためのジョイスティック1306や複数のプッシュスイッチ1308といった入力デバイスを備える。また、ゲーム装置本体1301の上部には、ゲーム画像を表示させるための液晶パネルディスプレイやCRTといったビデオモニタ1322と、ゲーム音や効果音を放音するスピーカ1324とを備える。そして、ゲーム装置本体1301の下部及び内部には、コインカウンタ1340と、制御ユニット1310と、図示されない電源装置とを備える。更には、携行型の情報記憶媒体で、事前にプレーヤ登録をしたり過去のプレイ履歴データを記憶できるゲームカード1332からのデータ読み出しや書き込みをするゲームカードリーダライター1330を備えるとしても良い。
【0109】
制御ユニット1310は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)及びDSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、ICメモリなどの電気電子機器を備えたいわゆるコンピュータ基板を構成する。また、制御ユニット1310は通信装置1312を備え、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)と言った通信回線1と有線又は無線接続し、外部装置(特に同型の他の業務用ゲーム装置やマッチングサーバ)との間でデータ通信を実現する。そして、制御ユニット1310は、搭載されているICメモリやハードディスクなどの情報記憶媒体からシステムプログラムやゲームプログラムを読み出して演算処理し、業務用ゲーム装置1300の各部を制御する。
【0110】
コインカウンタ1340で所定額のコインの投入を検出したならば、制御ユニット1310がゲームプログラムを読み出して実行し、業務用ゲーム装置1300は本発明を実現する画像生成装置として機能する。そして、業務用ゲーム装置1300は、他ゲーム装置から受信した操作入力コードと自ゲーム装置への操作入力に基づく操作入力コードとに基づいて、仮想3次元空間内に形成されたゲーム空間に配置されたプレーヤキャラクタ等のオブジェクトの動作等を制御する。そして、その様子を仮想カメラで撮影した画像をレンダリングする際に、液状体が流れる様子を描画して、ゲーム空間画像を生成する。そして、ゲーム空間画像に各種情報表示を合成してゲーム画面として生成する。また、適当なタイミングでBGMや効果音などのゲーム音を生成する。
そして、生成されたゲーム画面はビデオモニタ1322で表示され、生成されたゲーム音はスピーカ1324で放音される。プレーヤはビデオモニタ1322に映し出されるゲーム画面を見つつ、スピーカ1324から放音されるゲーム音を聞きつつゲームをプレイする。
【0111】
更には、ビデオゲームが実行可能な装置を本発明の画像生成装置として実現する場合、専用のゲームプログラムを実行する形態に限らない。例えば、専用のゲームプログラムに代えて、ウェブブラウザプログラム、及びスクリプト制御によりウェブブラウザ上でインタラクティブな表示を実現するためのプラグインを実行し、いわゆるブラウザゲームとしてビデオゲームを実現する構成でも同様に適用できる。すなわち、この場合には、端末装置に対してブラウザゲームを実行するためのプログラムや画像データを提供するサーバシステムが本発明の画像生成装置となる。
【0112】
[その2]
また、上記実施形態では、速度マップから仮想カメラ8に対して高速移動するオブジェクトの部分を識別する構成としたが、プレーヤキャラクタやNPCのキャラクタオブジェクトの動作制御の結果から識別する構成としても良い。
【0113】
具体的には、第1実施形態を次のように変更する。
先ず、図12に示すように、画像生成部260に、キャラクタ動き判定部280を追加する。また、記憶部500には、動き判定テーブル524を予め記憶しておく。
【0114】
動き判定テーブル524は、図13に示すように、ビデオゲームに登場するキャラクタに適用されるモーションを識別するモーションID524aに対応づけて、当該モーションがモーションブラー処理の対象とするかを指定するブラー適用フラグ524bを格納する。
【0115】
そして、図14に示すゲーム空間画像生成処理のように、画像生成部260のキャラクタ動き判定部280が、ステップS50の前に、キャラクタオブジェクト設定データ512の実行中モーションID514cを参照し、これを動き判定テーブル524と照会して、今回の画像生成タイミングにおけるキャラクタオブジェクト毎にモーションブラー処理の要否を判定する(ステップS48)。そして、マスク作成部266が、第1実施形態のステップS54に代えて、ステップS55を実行する。
【0116】
当該ステップでは、ステップS48においてモーションブラー処理が必要なほど動きが大きいキャラクタとして判定されたキャラクタの部分を識別可能に描画して速度マップを生成する(ステップS55)。よって、ステップS62及びS64では、単純に対応する速度マップをマスクとして見なし、当該速度マップで識別可能に描画されたキャラクタの部分にモーションブラー処理を実行すれば良い。
【0117】
また、マスク作成部266が、第1実施形態のステップS66に代えてステップS67を実行し、「動き判定用マスク」を、第1実施形態の合成速度マップ19の代わりとして生成する。
【0118】
動き判定用マスクは、第(n−1)画像生成タイミング及び第n画像生成タイミングの何れかで、モーションブラー処理の対象となり、且つ、キャラクタの動きが仮想カメラに対して所定の大きさ以上の部分を抽出するためのマスクである。
具体的には、ステップS48で判定されたモーションブラー処理が必要なキャラクタの部分が、奇数ライン速度マップ及び偶数ライン速度マップに反映されているので、これら両速度マップを単純合成することで、連続する画像生成タイミングにおける仮想カメラに対する動きの大きな部分をもれなく抽出することができる。
【0119】
そして、ステップS67に続くフレームバッファ書込処理では、ステップS82(図10参照)の判定を、ステップS67で生成した「動き判定用マスク」で行うこととすれば良い。尚、この変形例に関しては、キャラクタ単位でオブジェクトの動きを判定するに限らず、キャラクタの腕や足といった部位単位で動きを判定する構成としても良い。
【0120】
[その3]
また、上記実施形態では、背景とキャラクタのオブジェクトを区別することなく速度マップを生成する構成としている。つまり、背景オブジェクトが複数あればそれらを個別に扱って速度マップを生成しているが、これに限らない。
例えば、図12に示すように、画像生成部260に、仮想カメラ8(視点)の位置、視線方向および画角のうちの少なくとも1つの変化を検出する視点変化検出部282を設ける。そして、動き判定部263が、視点変化検出部の検出結果に基づき、飛び越し画像中の背景画像部分の動きの大きさを判定し、背景オブジェクトを一括して取り扱う構成としても良い。例えば、視線方向の変化と、背景部分画像の動きの大きさとを予め定義しておき、視線方向の変化に応じて、背景部分画像の動きの大きさを判定する。
【0121】
[その4]
また、上記実施形態では、モーションブラー処理を「移動軌跡ボリューム法」で実現することとして説明したが、この手法に限らず、適宜公知のブラー処理手法を適用することとしてよい。
また、上記実施形態では、図5を参照して、ラインブラー合成画像の半透明合成を、書き込み対象ピクセルP1の1つ上のピクセル及び1つ下のピクセルとそれぞれ50%半透明合成し、合成色を更に50%ずつ合成することとして説明したが、これに限らない。例えば、書き込み対象ピクセルP1の1つ上のピクセルとのみ半透明合成して最終的な書き込み対象ピクセルの色を決定することしてもよい。また、50%ではなく、書き込み対象ピクセルP1の色の割合を多め(例えば75%)としてもよい。また、半透明合成処理ではなく、書き込み対象ピクセル及び周囲のピクセルの色情報を用いたぼかし処理(例えばバイリニアフィルタ処理)を行って、書き込み対象ピクセルを含む周辺ピクセルの色情報を更新・決定することとしてもよい。
【符号の説明】
【0122】
2…背景オブジェクト
3…ゲーム空間
4…高速移動オブジェクト
6…低速移動オブジェクト
8…仮想カメラ
10…フルサイズ画面
11…奇数ラインインターレース画像
12…偶数ラインインターレース画像
15…奇数ライン速度マップ
16…偶数ライン速度マップ
17…奇数ラインブラー合成画像
18…偶数ラインブラー合成画像
19…合成速度マップ
20…全体画像
200…処理部
210…ゲーム演算部
260…画像生成部
262…速度マップ生成部
263…動き判定部
264…モーションブラー処理部
265…全体画像生成部
266…マスク作成部
267…マスク部分合成部
280…キャラクタ動作判定部
282…視点変化検出部
360…画像表示部
500…記憶部
501…システムプログラム
502…ゲームプログラム
503…画像生成プログラム
510…背景オブジェクト設定データ
512…キャラクタオブジェクト設定データ
514…オブジェクト制御データ
515…第1頂点情報セット
516…第2頂点情報セット
517a…更新タイミング
517b…頂点ID
517c…頂点位置座標
517d…頂点カラー
517e…法線ベクトル
518…仮想カメラ制御データ
520…フレーム数
522…オフセット
524…動き判定テーブル
560…フレームバッファ
1400…携帯型ゲーム装置
1406…第1液晶ディスプレイ
1408…第2液晶ディスプレイ
1450…制御ユニット

【特許請求の範囲】
【請求項1】
コンピュータに、所与の視点から見た仮想三次元空間の画像を生成させるためのプログラムであって、
所定の時間間隔で到来する画像生成タイミング毎に、1ラインおきに飛び越した飛び越し画像である奇数ライン画像又は偶数ライン画像を交互に生成する飛び越し画像生成手段、
前記飛び越し画像生成手段によって生成された第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを用いて、第n画像生成タイミングの全体画像を生成する全体画像生成手段、
として前記コンピュータを機能させるとともに、
前記飛び越し画像生成手段が、
前記飛び越し画像中の部分毎の動きの大きさを判定する動き判定手段と、
前記動き判定手段により判定された動きの大きさに基づき、所定のモーションブラー処理を施すモーションブラー処理手段と、
を有し、
前記全体画像生成手段が、前記動き判定手段の判定結果を用いて、当該判定された動きの大きさに対応づけて定められた合成方法で、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを合成することで、第n画像生成タイミングの全体画像を生成する、
ように前記コンピュータを機能させるためのプログラム。
【請求項2】
前記全体画像生成手段が、前記動き判定手段により判定された動きの大きさが所定の大きさ以上の部分について、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを半透明合成処理する、
ように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記全体画像生成手段が、
第n画像生成タイミングの飛び越し画像に関する前記動き判定手段の判定結果と、第(n−1)画像生成タイミングの飛び越し画像に関する前記動き判定手段の判定結果とを用いて、第n画像生成タイミングの飛び越し画像と第(n−1)画像生成タイミングの飛び越し画像とに共通適用する動き判定用マスクを作成するマスク作成手段と、
第n画像生成タイミングの飛び越し画像から前記動き判定用マスクを用いて抽出した抽出画像部分と、第(n−1)画像生成タイミングの飛び越し画像から前記動き判定用マスクを用いて抽出した抽出画像部分とを、前記動き判定用マスクに対応づけて定められた合成方法で合成するマスク部分合成手段と、
を有するように前記コンピュータを機能させるための請求項1又は2に記載のプログラム。
【請求項4】
前記仮想三次元空間には、プレーヤキャラクタ及び/又はノンプレーヤキャラクタ(以下、包括的に「キャラクタ」という。)が存在し、
前記動き判定手段が、前記キャラクタの動きに基づいて、前記モーションブラー処理の対象となる動きの大きさ条件を満たすかを判定するキャラクタ動き判定手段を有し、
前記モーションブラー処理手段が、前記キャラクタ動き判定手段の判定結果に基づいて、前記飛び越し画像中の前記キャラクタの画像部分に前記モーションブラー処理を施し、
前記マスク作成手段が、前記キャラクタ動き判定手段の判定結果を用いて、第(n−1)画像生成タイミング及び第n画像生成タイミングの何れかで、前記モーションブラー処理の対象となり、且つ、前記キャラクタの動きが所定の大きさ以上の部分を抽出するための動き判定用マスクを作成する手段を有する、
ように前記コンピュータを機能させるための請求項3に記載のプログラム。
【請求項5】
前記視点の位置、視線方向および画角のうちの少なくとも1つの変化を検出する視点変化検出手段として前記コンピュータを機能させ、
前記動き判定手段が、前記視点変化検出手段の検出結果に基づき、前記飛び越し画像中の背景画像部分の動きの大きさを判定するように前記コンピュータを機能させる、
ための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
請求項1〜5の何れか一項に記載のプログラムを記憶したコンピュータ読取可能な情報記憶媒体。
【請求項7】
所与の視点から見た仮想三次元空間の画像を生成する画像生成装置であって、
所定の時間間隔で到来する画像生成タイミング毎に、1ラインおきに飛び越した飛び越し画像である奇数ライン画像又は偶数ライン画像を交互に生成する飛び越し画像生成手段と、
前記飛び越し画像生成手段によって生成された第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを用いて、第n画像生成タイミングの全体画像を生成する全体画像生成手段と、
を備え、
前記飛び越し画像生成手段が、
前記飛び越し画像中の部分毎の動きの大きさを判定する動き判定手段と、
前記動き判定手段により判定された動きの大きさに基づき、所定のモーションブラー処理を施すモーションブラー処理手段と、
を有し、
前記全体画像生成手段が、前記動き判定手段の判定結果を用いて、当該判定された動きの大きさに対応づけて定められた合成方法で、第n画像生成タイミングの飛び越し画像と、第(n−1)画像生成タイミングの飛び越し画像とを合成することで、第n画像生成タイミングの全体画像を生成する、
画像生成装置。

【図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


【公開番号】特開2012−173784(P2012−173784A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−32203(P2011−32203)
【出願日】平成23年2月17日(2011.2.17)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】