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

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

Info

Publication number
JP2011215724A
JP2011215724A JP2010081199A JP2010081199A JP2011215724A JP 2011215724 A JP2011215724 A JP 2011215724A JP 2010081199 A JP2010081199 A JP 2010081199A JP 2010081199 A JP2010081199 A JP 2010081199A JP 2011215724 A JP2011215724 A JP 2011215724A
Authority
JP
Japan
Prior art keywords
information
image
speed information
pixel
calculation unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010081199A
Other languages
English (en)
Inventor
Yoshiki Domae
嘉樹 堂前
Kei Kudo
径 工藤
Koichiro Watanabe
耕一郎 渡辺
Go Achira
剛 阿知良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bandai Namco Entertainment Inc
Original Assignee
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Bandai Games Inc filed Critical Namco Bandai Games Inc
Priority to JP2010081199A priority Critical patent/JP2011215724A/ja
Publication of JP2011215724A publication Critical patent/JP2011215724A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

【課題】比較的小さい処理負荷でモーションブラーを実現可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】今回のフレームの原画像を生成し、オブジェクトの前回のフレームにおける位置情報と今回のフレームにおける位置情報に基づいて、オブジェクトの移動軌跡を算出し、当該移動軌跡に含まれる各ピクセルに対応づけて速度情報を算出し、オブジェクトの移動軌跡に含まれる各ピクセルに対して、算出した速度情報に応じた位置にある複数のピクセルに基づいて色情報を算出し、原画像において、オブジェクトの移動軌跡に含まれる各ピクセルを算出した色情報に更新し、今回のフレームの画像を生成する。
【選択図】図16

Description

本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
このような画像生成システム(ゲームシステム)において、キャラクタなどのオブジェクトの動きを強調したり滑らかな動きを表現するために、その動きに合わせてオブジェクトがぶれたような画像を生成する「モーションブラー」と呼ばれる手法が知られている。
特開2001−13952号公報
しかしながら、モーションブラーの処理が非常に重くなると描画処理の高速化が妨げられ、オブジェクトのリアルな動きを再現することが難しくなる。
本発明は、以上のような課題に鑑みてなされたものであり、本発明のいくつかの態様によれば、比較的小さい処理負荷でモーションブラーを実現可能なプログラム、情報記憶媒体及び画像生成システムを提供することができる。
(1)本発明は、
画像を生成するためのプログラムであって、
今回のフレームの原画像を生成する原画像生成部と、
所与のオブジェクトの前回のフレームにおける位置情報を記憶する位置情報記憶部と、
前記オブジェクトの前回のフレームにおける位置情報と今回のフレームにおける位置情報に基づいて、前記オブジェクトの移動軌跡を算出し、当該移動軌跡に含まれる各ピクセルに対応づけて速度情報を算出する速度情報算出部と、
前記移動軌跡に含まれる各ピクセルに対して、算出した前記速度情報に応じた位置にある複数のピクセルに基づいて色情報を算出する色情報算出部と、
前記原画像において、前記オブジェクトの移動軌跡に含まれる各ピクセルを算出した前記色情報に更新し、今回のフレームの画像を生成するフレーム画像生成部としてコンピュータを機能させることを特徴とする。
また、本発明は、コンピュータに読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶している情報記憶媒体に関する。また、本発明は、上記各部を含む画像生成システムに関する。
位置情報は、オブジェクトの位置を特定可能な情報であればよく、例えば、オブジェクトに含まれる各ポリゴンの頂点の位置(座標)であってもよい。
速度情報は、ピクセルの速度を特定可能な情報であればよく、例えば、移動ベクトル(移動量と移動方向)であってもよいし、速度ベクトル(速度の大きさと向き)であってもよい。
本発明によれば、原画像をぼかしながら複数回描画するのではなく、原画像のオブジェクトの移動軌跡に含まれるピクセルの色情報を1回更新すればよいので、比較的小さい処理負荷でモーションブラーを実現することができる。
(2)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
前記速度情報を算出したピクセルに対応づけて所定のステンシル値を設定し、
前記色情報算出部は、
前記所定のステンシル値が設定されたピクセルに対して前記色情報を算出するようにしてもよい。
このようにすれば、速度情報を算出したピクセルだけ色情報を計算すればよく、モーションブラーの対象でないオブジェクトや背景については色情報を計算する必要がない。従って、モーションブラーの処理負荷を軽減することができる。
(3)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
前記速度情報を算出したピクセルのうち速度が0のピクセルに対応づけて前記所定のステンシル値と異なるステンシル値を設定するようにしてもよい。
このようにすれば、速度が0でないピクセルだけ色情報を計算すればよいので、モーションブラーの処理負荷をさらに軽減することができる。
(4)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
前記原画像のN個のピクセル毎に1つの代表ピクセルを選択して前記移動軌跡に含まれる代表ピクセルの前記速度情報を算出し、
前記色情報算出部は、
前記移動軌跡に含まれる各々の前記代表ピクセルの前記速度情報を当該代表ピクセルにより代表される前記N個のピクセルの速度情報として、当該N個のピクセルの色情報を算出するようにしてもよい。
このようにすれば、速度情報の算出回数を1/Nに減らすことができる。
(5)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記原画像のN個のピクセル毎に1つの代表ピクセルを選択して前記原画像の1/Nのサイズの縮小画像を生成する縮小画像生成部としてさらにコンピュータを機能させ(縮小画像生成部をさらに含み)、
前記速度情報算出部は、
前記縮小画像において前記移動軌跡を算出して前記代表ピクセルの前記速度情報を算出し、
前記色情報算出部は、
前記移動軌跡に含まれる各々の前記代表ピクセルの色情報を算出し、算出した各々の前記代表ピクセルの色情報を当該代表ピクセルにより代表される前記N個のピクセルに設定するようにしてもよい。
このようにすれば、速度情報の算出回数を1/Nに減らすとともに、色情報の算出回数も1/Nに減らすことができる。
(6)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色情報算出部は、
算出した前記色情報を前記速度情報に応じて変化させるようにしてもよい。
このようにすれば、ピクセルの移動量(速度)に応じて原画像の色からの変化の度合いが異なるモーションブラーをかけることができる。例えば、計算した色情報のR成分とG成分からピクセルの移動量(速度)に比例する値を減算することにより、移動量(速度)の大きいピクセルほど青に近づくようなモーションブラーをかけることができる。
(7)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
前記移動軌跡に含まれる一部のピクセルに対して、当該移動軌跡に含まれる他の一部のピクセルと異なる演算処理を行って前記速度情報を算出するようにしてもよい。
このようにすれば、一部のピクセルと他の一部のピクセルで原画像からの色の変化の度合いが異なるモーションブラーをかけることができる。例えば、当該一部のピクセルの移動量(速度)を固定値(例えば0)とする演算処理を行ってもよい。
(8)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
所与の模様の形状に配置されたピクセルに対して前記演算処理を行うようにしてもよい。
このようにすれば、所与の模様の形状を浮き上がらせたマンガ的な効果を狙ったモーションブラーをかけることができる。
(9)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記原画像において前記オブジェクトを当該オブジェクトよりも簡易な形状の簡易モデルに置き換えた画像を生成する簡易モデル画像生成部としてさらにコンピュータを機能させ(簡易モデル画像生成部をさらに含み)、
前記位置情報記憶部は、
前記位置情報として前記簡易モデルの前回のフレームにおける位置情報を記憶し、
前記速度情報算出部は、
前記移動軌跡として前記簡易モデルの移動軌跡を算出するようにしてもよい。
このようにすれば、速度情報を算出する処理の負荷を軽減することができる。
(10)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトの1つがエフェクトオブジェクトであるようにしてもよい。
このようにすれば、キャラクタなどのオブジェクトだけでなく、エフェクトオブジェクトにもモーションブラーをかけることができる。
(11)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトの1つがキャラクタオブジェクトであり、
前記エフェクトオブジェクトが前記キャラクタオブジェクトにヒットしたか否かを判定するヒット判定部としてさらにコンピュータを機能させ(ヒット判定部をさらに含み)、
前記色情報算出部は、
前記エフェクトオブジェクトが前記キャラクタオブジェクトにヒットした場合、前記エフェクトオブジェクトの属性情報をさらに用いて、前記キャラクタオブジェクトの移動軌跡に含まれる各ピクセルの前記色情報を算出するようにしてもよい。
エフェクトオブジェクトの属性情報は、例えば、色、形状、模様、材質、光沢などに関する情報であってもよい。
このようにすれば、エフェクトオブジェクトの属性に連動させてキャラクタオブジェクトにモーションブラーをかけることができる。
(12)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
前記オブジェクトの所与の可動部に含まれるピクセルに対して、当該可動部の先端部分から根元部分に向かう方向に前記速度情報を徐々に大きくするようにしてもよい。
このようにすれば、可動部の先端部分ではモーションブラーがかからず、可動部の根元部分に近づくにつれてより強くなるモーションブラー(軌跡のようなブラー)をかけることができる。
(13)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
今回のフレームにおける前記オブジェクトの状態に応じて、当該オブジェクトに対して、前記速度情報を増加若しくは減少させて算出し、又は、前記速度情報を算出する処理を停止するようにしてもよい。
このようにすれば、オブジェクトの状態に応じてブラーを強めたり弱めたりすることができる。例えば、キャラクタオブジェクトが攻撃を受けている状態では移動量(速度)を本来よりも増加させて強めのブラーにすることで衝撃を強調し、キャラクタオブジェクトが立ち構えているような状態のような待機ループモーション中は、速度情報を減少させて弱めのブラーにすることで画像が不鮮明になり過ぎるのを避けることができる。
また、例えば、オブジェクトが所定の閾値以上の衝撃を受けた直後のフレームでは、当該衝撃を受けたオブジェクトについては速度情報を算出する処理を停止してブラーをオフにすれば、ブラーがかかりすぎて画像が不鮮明になり過ぎるのを避けることができる。
(14)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記コンピュータは、描画プロセッサを含み、
前記速度情報算出部は、
前記描画プロセッサの処理負荷に応じて、前記速度情報を算出する処理を停止するようにしてもよい。
例えば、描画プロセッサの処理負荷が所定の閾値よりも高い場合、速度情報を算出する処理を停止するようにしてもよい。このようにすれば、描画負荷が重すぎる場合はモーションブラー処理を停止して描画速度の低下を軽減することができる。
(15)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記速度情報算出部は、
今回のフレームにおける仮想カメラの位置、向き及び画角の少なくとも1つの前回のフレームに対する変化量に応じて、今回のフレームでは前記速度情報を算出する処理を停止するようにしてもよい。
例えば、前記変化量が所定の閾値よりも大きい場合、今回のフレームでは速度情報を算出する処理を停止するようにしてもよい。このようにすれば、画面が大きく切り替わった時に、不要なモーションブラーがかかって画像が不鮮明になるのを避けることができる。
本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す図。 モーションブラーがかかった画像の一例を示す図。 ベロシティマップの一例を示す図。 本実施形態のベロシティマップの作成手法について説明するための図。 本実施形態の色情報の算出手法について説明するための図。 変形例1の手法について説明するための図。 変形例2の手法について説明するための図。 変形例3の手法について説明するための図。 変形例3の手法について説明するための図。 変形例4の手法について説明するための図。 変形例5の手法について説明するための図。 変形例6の手法について説明するための図。 変形例6の手法について説明するための図。 変形例7の手法について説明するための図。 変形例8の手法について説明するための図。 本実施形態のモーションブラー処理の一例を示すフローチャート図。 変形例1のモーションブラー処理の一例を示すフローチャート図。 変形例2のモーションブラー処理の一例を示すフローチャート図。 変形例8におけるブラーの強弱又はオフを選択する処理の一例を示すフローチャート図。 変形例9におけるモーションブラー処理を停止するか否かを選択する処理の一例を示すフローチャート図。 本実施形態を実現できるハードウェア構成の例を示す図。
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤがオブジェクト(プレーヤキャラクタ、移動体)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
なお、操作部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
例えば、入力機器に備えられた加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、5msec毎に加速度を検出している。また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
また、入力機器に備えられた撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。赤外線フィルタは、入力装置の前方に配置され、表示部190に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶される描画バッファ174と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部176と、各オブジェクトに対応付けられたテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
通信部196は外部(例えば他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
オブジェクト空間設定部110は、雪、雨、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ライン(線)、ラインポリゴン、ポリゴン、多角形、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
移動・動作処理部112は、オブジェクト(キャラクタ、移動体等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。例えば、仮想カメラ制御部114は、仮想カメラを移動体オブジェクトの移動に追従させる制御を行うようにしてもよい。すなわち、仮想カメラによりオブジェクト(例えばキャラクタ、移動体)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
特に本実施形態では、処理部100は、ヒット判定部116を含むようにしてもよい。ヒット判定部116は、エフェクトオブジェクトがキャラクタオブジェクトにヒットしたか否かを判定する。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(視点を基準とした透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(フレームバッファや中間バッファ(ワークバッファ)などのピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
特に本実施形態では、描画部120は、原画像生成部121、位置情報記憶部122、速度情報算出部123、色情報算出部124、フレーム画像生成部125を含む。
原画像生成部121は、今回のフレームの原画像を生成する。
位置情報記憶部122は、モーションブラー処理の対象となる所与のオブジェクト(処理対象オブジェクト)の前回のフレームにおける位置情報を記憶する。
速度情報算出部123は、処理対象オブジェクトの前回のフレームにおける位置情報と今回のフレームにおける位置情報に基づいて、処理対象オブジェクトの移動軌跡を算出し、当該移動軌跡に含まれる各ピクセルに対応づけて速度情報を算出する。例えば、速度情報算出部123は、処理対象オブジェクトの移動軌跡に含まれる一部のピクセルに対して、当該移動軌跡に含まれる他の一部のピクセルと異なる演算処理を行って速度情報を算出するようにしてもよい。この場合、速度情報算出部123は、所与の模様の形状に配置されたピクセルに対してこの演算処理を行うようにしてもよい。また、例えば、速度情報算出部123は、処理対象オブジェクトの所与の可動部に含まれるピクセルに対して、当該可動部の先端部分から根元部分に向かう方向に速度情報を徐々に大きくするようにしてもよい。また、例えば、速度情報算出部123は、今回のフレームにおける処理対象オブジェクトの状態に応じて、当該オブジェクトに対して、速度情報を増加若しくは減少させて算出し、又は、速度情報を算出する処理を停止するようにしてもよい。また、例えば、速度情報算出部123は、描画プロセッサの処理負荷に応じて、速度情報を算出する処理を停止するようにしてもよい。また、例えば、速度情報算出部123は、今回のフレームにおける仮想カメラの位置、向き及び画角の少なくとも1つの前回のフレームに対する変化量に応じて、今回のフレームでは前記速度情報を算出する処理を停止するようにしてもよい。
色情報算出部124は、処理対象オブジェクトの移動軌跡に含まれる各ピクセルに対して、算出した速度情報に応じた位置にある複数のピクセルに基づいて色情報を算出する。例えば、色情報算出部124は、算出した色情報を速度情報に応じて変化させるようにしてもよい。また、例えば、処理対象オブジェクトがエフェクトオブジェクトやキャラクタオブジェクトであり、色情報算出部124は、エフェクトオブジェクトがキャラクタオブジェクトにヒットした場合、エフェクトオブジェクトの属性情報をさらに用いて、キャラクタオブジェクトの移動軌跡に含まれる各ピクセルの色情報を算出するようにしてもよい。
また、例えば、速度情報算出部123は、速度情報を算出したピクセルに対応づけて所定のステンシル値を設定し、色情報算出部124は、所定のステンシル値が設定されたピクセルに対して色情報を算出するようにしてもよい。この場合さらに、速度情報算出部123は、速度情報を算出したピクセルのうち速度が0のピクセルに対応づけて所定のステンシル値と異なるステンシル値を設定するようにしてもよい。
また、例えば、速度情報算出部123は、原画像のN個のピクセル毎に1つの代表ピクセルを選択して処理対象オブジェクトの移動軌跡に含まれる代表ピクセルの速度情報を算出し、色情報算出部124は、処理対象オブジェクトの移動軌跡に含まれる各々の代表ピクセルの速度情報を当該代表ピクセルにより代表されるN個のピクセルの速度情報として、当該N個のピクセルの色情報を算出するようにしてもよい。
フレーム画像生成部125は、原画像において、処理対象オブジェクトの移動軌跡に含まれる各ピクセルを算出した色情報に更新し、今回のフレームの画像を生成する。
また、描画部120は、縮小画像生成部126を含むようにしてもよい。縮小画像生成部126は、原画像のN個のピクセル毎に1つの代表ピクセルを選択して原画像の1/Nのサイズの縮小画像を生成する。そして、速度情報算出部123は、この縮小画像において処理対象オブジェクトの移動軌跡を算出して代表ピクセルの速度情報を算出し、色情報算出部124は、処理対象オブジェクトの移動軌跡に含まれる各々の代表ピクセルの色情報を算出し、算出した各々の代表ピクセルの色情報を当該代表ピクセルにより代表される前記N個のピクセルに設定するようにしてもよい。
また、描画部120は、簡易モデル画像生成部127を含むようにしてもよい。簡易モデル画像生成部127は、原画像において処理対象オブジェクトを当該オブジェクトよりも簡易な形状の簡易モデルに置き換えた画像を生成する。そして、位置情報記憶部122は、位置情報として簡易モデルの前回のフレームにおける位置情報を記憶し、速度情報算出部124は、処理対象オブジェクトの移動軌跡として簡易モデルの移動軌跡を算出するようにしてもよい。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
(1)概要
本実施形態は、フレーム間のオブジェクトの移動量(速度)に応じて、フレームの原画像に対してモーションブラーを施した画像を生成する処理を行うものである。例えば、図2は、キャラクタC1とC2に対してモーションブラーがかかった画像の一例である。キャラクタC1は1つ前のフレームでは破線の位置に右腕を縮めているのに対して現在のフレームでは実線の位置に右腕を伸ばしており、キャラクタC1の右腕が2つのフレームの間で移動している。一方、キャラクタC2は静止している。そのため、画像200は、フレーム間で移動したキャラクタC1の右腕のみがぶれた画像になっている。このような、モーションブラーをかけることで、キャラクタなどのオブジェクトの動きを強調したり滑らかな動きを表現した画像が得られる。以下、本実施形態の手法について説明する。
(2)ベロシティマップの作成手法
本実施形態では、1フレーム分の各ピクセルの移動方向と移動量の情報(速度情報)を含むベロシティマップ(速度マップ)と呼ばれるテクスチャを作成し、このベロシティマップを用いてモーションブラー処理を施した画像を生成する。
図3に、図2の画像200を生成するために用いるベロシティマップの一例を示す。正確には、図3はベロシティマップの各ピクセルの移動量(速度)をグレースケールに変換して描画した画像であり、各ピクセルの移動方向(速度の向き)の情報が欠落しているが、以下ではこのような画像による表現も、単に「ベロシティマップ」と呼ぶことにする。図3のベロシティマップ210では、移動量(速度)が0のピクセルは白色であり、移動量(速度)が大きいピクセルほど濃度が高いグレー色になっている。例えば、背景やキャラクタC2は静止しているので白色になっている。一方、キャラクタC1の右腕の先端部分(右拳)は移動量(速度)が大きいので濃いグレー色になっており、右腕の根元部分(右肩)は移動量(速度)が小さいので薄いグレー色になっている。また、キャラクタC1の右腕以外の部分は動いていないので白色になっている。なお、図2では、便宜上キャラクタC1とC2の輪郭を実線で表記しているが、キャラクタC1は右腕以外は動いておらず、キャラクタC2は静止しているので、キャラクタC1の右腕を除く輪郭部分に位置するピクセルの移動量(速度)は0である。
次に、本実施形態のベロシティマップの作成手法について図4(A)及び図4(B)を用いて説明する。
まず、モーションブラー処理の対象となるオブジェクトOB1に対して、オブジェクトOB1がフレーム間で移動した軌跡領域を表す引き伸ばしモデルを作成する。具体的には、今回のフレームの位置から前回のフレームの位置まで各頂点を引き伸ばす処理を行うことで引き伸ばしモデルを作成することができる。例えば、図4(A)に示すように、今回のフレームの原画像300において、オブジェクトOB1は実線で示す位置にあり、3つの頂点A、B、Cの座標はそれぞれ(x,y)、(x,y)、(x,y)であるとする。一方、前回のフレームではオブジェクトOB1は破線で示す位置にあり、頂点A、B、Cの座標はそれぞれ(x,y)、(x,y)、(x,y)であったとする。その場合、座標(x,y)、(x,y)、(x,y)、(x,y)、(x,y)の5つの点を頂点とする引き伸ばしモデルを作成する。
次に、引き伸ばしモデルの各ピクセルに対して速度ベクトル(速度情報の一例)を計算し、ベロシティマップに書き込む。具体的には、モーションブラー処理の対象となるオブジェクトの各頂点について前回のフレームの座標を記憶しておき、各頂点について前回のフレームの座標を始点とし、今回のフレームの座標を終点とするベクトルを考え、このベクトルの始点を各頂点の今回の位置まで平行移動することで、各頂点の速度ベクトルが得られる。そして、頂点の速度ベクトルから引き伸ばしモデルの各ピクセルの速度ベクトルを計算する。
例えば、図4(A)に示すように、頂点Aの速度ベクトルvは、座標(x,y)を始点とし、座標(2x−x,2y−y)を終点とするベクトルになる。また、頂点Bの速度ベクトルvは、座標(x,y)を始点とし、座標(2x−x,2y−y)を終点とするベクトルになる。また、頂点Cの速度ベクトルvは、座標(x,y)を始点とし、座標(2x−x,2y−y)を終点とするベクトルになる。そして、引き伸ばしモデルのその他の各ピクセルについて、そのピクセルの位置を始点として、位置に応じた重み付けをして速度ベクトルv、v、vを合成することで速度ベクトルが得られる。例えば、オブジェクトOB1が等速直線運動をしている場合は、引き伸ばしモデルのすべてのピクセルについて速度ベクトルの向きと長さが同じになる。
このようにして得られた速度ベクトルを、ピクセルの座標に対応するテクスチャ座標に書き込むことで、図3(B)に示すベロシティマップ310を作成することができる。本実施形態では、1フレーム分のサイズのベロシティマップ310のすべてのピクセルを移動量(速度)が0の速度ベクトルに初期化しておき、斜線で示す引き伸ばしモデルの各ピクセルについて算出した速度ベクトルで更新(上書き)する。なお、各ピクセルについて、速度ベクトルの始点はそのピクセルの座標と一致するので、速度ベクトルの終点のみをベロシティマップ310に書き込むようにしてもよい。
また、本実施形態では、1フレーム分のサイズのステンシルバッファのすべてのステンシル値を0に初期化し、ベロシティマップを作成する際に、速度ベクトルを算出して書き込んだピクセル(すなわち、引き伸ばしモデルのピクセル)についてステンシルバッファに1を書き込む。すなわち、ベロシティマップの作成が終了すると、引き伸ばしモデルのピクセルについてはステンシル値が1になっており、その他のピクセルについてはステンシル値が0になっている。なお、Zバッファ179にZ値(奥行き情報)とともにステンシル情報を書き込むことで、Zバッファ179をステンシルバッファに兼用するようにしてもよい。
図2の例でいうと、キャラクタC1とC2のそれぞれの引き伸ばしモデルを作成し、2つの引き伸ばしモデルの各ピクセルについて速度ベクトルを算出し、図3のベロシティマップ210を作成する。また、ステンシルバッファは、キャラクタC1の引き伸ばしモデルとキャラクタC2の引き伸ばしモデルのピクセルのステンシル値が1になっており、背景のステンシル値は0になっている。
(3)色情報の計算手法
次に、本実施形態のモーションブラーをかける色情報の計算手法について説明する。本実施形態では、まず、今回のフレームの原画像の色情報とベロシティマップの速度情報から引き伸ばしモデルの各ピクセルについて色情報(RGB値)を計算し、テクスチャ(色情報テクスチャ)に書き込む。具体的には、引き伸ばしモデルの各ピクセルに対して、ベロシティマップから速度ベクトルを読み出し、速度ベクトルの始点と終点を結ぶ直線上にあるm個のピクセルの色情報を原画像からサンプリングし、必要に応じて重みづけをしてこれらの平均値を計算する。例えば、図4(B)に示したベロシティマップ310において、座標(x,y)のピクセルと座標(x,y)のピクセルの速度ベクトルがそれぞれvとvであったとする。その場合、図5(A)に示すように、座標(x,y)のピクセルについては、座標(x,y)の点(速度ベクトルvの始点)と座標(2x−x,2y−y)の点(速度ベクトルvの終点)を結ぶ直線上で等間隔に並ぶ8個のピクセルP〜Pの色情報をサンプリングしてこれらの平均値を計算し、座標(x,y)のピクセルの色情報とする。また、座標(x,y)のピクセルについては、座標(x,y)の点(速度ベクトルvの始点)と座標(x,y)の点(速度ベクトルvの終点)を結ぶ直線上で等間隔に並ぶ8個のピクセルQ〜Qの色情報をサンプリングしてこれらの平均値を計算し、座標(x,y)のピクセルの色情報とする。このようにして計算した色情報を書き込むことで図5(B)に示すような色情報テクスチャ320が作成される。
次に、作成した色情報テクスチャを用いて引き伸ばしモデルの各ピクセルの色情報を再計算する。具体的には、引き伸ばしモデルの各ピクセルに対して、前回サンプリングしたm個のピクセルのうちの直近の2つのピクセルを結ぶ直線上にあるn個のピクセルの色情報を色情報テクスチャからサンプリングし、必要に応じて重みづけをしてこれらの平均値を計算する。例えば、図5(A)の例では、図5(B)に示すように、座標(x,y)のピクセルについては、色情報テクスチャ320から、ピクセルPとPを結ぶ直線上で等間隔に並ぶ8個のピクセルの色情報をサンプリングしてこれらの平均値を計算し、座標(x,y)のピクセルの色情報とする。また、座標(x,y)のピクセルについては、色情報テクスチャ320から、ピクセルQとQを結ぶ直線上で等間隔に並ぶ8個のピクセルの色情報をサンプリングしてこれらの平均値を計算し、座標(x,y)のピクセルの色情報とする。
最後に、原画像に対して、引き伸ばしモデルの各ピクセルを計算した色情報に更新することによって最終画像を生成する。このようにすれば、各ピクセルについて、擬似的に、m×n個のピクセルのカラー情報の平均値を計算することができるので、少ない計算量でありながらより滑らかなモーションブラーがかかった画像を生成することができる。
なお、本実施形態では、今回のフレームのすべてのピクセルについて、順番に、前述したステンシルバッファからステンシル値を読み出し、ステンシル値が1のピクセル(引き伸ばしモデルのピクセル)についてのみ色情報の計算を行う。このようにすることで、モーションブラー処理の対象でないオブジェクトについては色情報の計算を省略することができる。
ただし、オブジェクトの引き伸ばしモデル毎にステンシル値が0か1のいずれかに設定されるので、オブジェクトの一部しか動いていない場合であっても、引き伸ばしモデル全体に対して色情報の計算を行うことになる。そこで、引き伸ばしモデルの各ピクセルについて移動量(速度)が0であれば、ステンシルバッファに1を書き込まない(0に初期化されたまま)ようにしてもよい。このようにすれば、モーションブラー処理の負荷を大幅に軽減することができる。
(4)変形例1
本実施形態において、1フレームの1/Nのサイズのベロシティマップを作成し、このベロシティマップを用いて原画像から色情報をサンプリングして色情報の計算を行い、最終画像を生成するようにしてもよい。
例えば、図6に示すように、原画像300の4つのピクセル毎に1つの代表ピクセルを選択し、当該代表ピクセルの速度ベクトルを計算することで、1フレームの縦(nピクセル)と横(nピクセル)をそれぞれ1/2に縮小した(1フレームの1/4のサイズの)ベロシティマップ312を作成する。例えば、原画像300において、座標が(2a,2b)、(2a+1,2b)、(2a,2b+1)、(2a+1,2b+1)の4つのピクセルについては、座標が(2a,2b)のピクセルを代表ピクセルとして選択し、この代表ピクセルの速度ベクトルを計算してベロシティマップ312の座標(a,b)に書き込むようにすればよい。
そして、各ピクセルに対して、ベロシティマップ312を用いて原画像300から色情報をサンプリングして色情報を計算し、最終画像322を生成する。例えば、座標が(2a,2b)、(2a+1,2b)、(2a,2b+1)、(2a+1,2b+1)の4つのピクセルに対して、ベロシティマップ312の座標(a,b)から速度ベクトルを読み出してそれぞれの色情報を計算し、最終画像322を生成する。
このようにすれば、速度ベクトルの計算回数を1/Nに減らせるとともに、ベロシティマップから速度ベクトルを読み出す回数も1/Nに減らすことができるので、モーションブラー処理を高速化することができる。
(5)変形例2
本実施形態において、原画像を1/Nに縮小した画像と1フレームの1/Nのサイズのベロシティマップを作成し、このベロシティマップを用いて、縮小した画像から色情報をサンプリングして色情報の計算を行い、最終画像を生成するようにしてもよい。
例えば、図7に示すように、原画像300の4つのピクセル毎に1つの代表ピクセルを選択し、1フレームの縦(nピクセル)と横(nピクセル)をそれぞれ1/2に縮小した(1フレームの1/4のサイズの)画像302を作成する。例えば、原画像300において、座標が(2a,2b)、(2a+1,2b)、(2a,2b+1)、(2a+1,2b+1)の4つのピクセルについては、座標が(2a,2b)のピクセルを代表ピクセルとして選択し、画像302の座標(a,b)に書き込むようにすればよい。
そして、この縮小した画像302に対して、1フレームの1/4のサイズのベロシティマップ312を作成する。例えば、画像302の座標が(a,b)のピクセルに対して、ベロシティマップ312の座標(a,b)に速度ベクトルを書き込む。なお、縮小サイズのベロシティマップ312は、変形例1の手法により、原画像300から直接的に作成するようにしてもよい。
そして、各代表ピクセルに対してベロシティマップ312を用いて画像302から色情報を計算し、各代表ピクセルを代表として選択した4つのピクセルに対して同じ色情報を書き込むことで最終画像324を生成する。例えば、ベロシティマップ312の座標(a,b)から速度ベクトルを読み出して、原画像302の座標が(a,b)の代表ピクセルに対して色情報を計算し、座標が(2a,2b)、(2a+1,2b)、(2a,2b+1)、(2a+1,2b+1)の4つのピクセルに対して、計算した色情報を書き込むことで、最終画像324を生成する。
このようにすれば、速度ベクトルの計算回数と色情報の計算回数をともに1/Nに減らせるとともに、ベロシティマップから速度ベクトルを読み出す回数と画像から色情報を読み出す回数もともに1/Nに減らすことができるので、モーションブラー処理を高速化することができる。
(6)変形例3
本実施形態において、算出した色情報をベロシティマップに書き込まれた移動量(速度)に応じて変化させるようにしてもよい。例えば、移動量(速度)が大きいピクセルほど、算出した色情報を変化させる(算出した色情報と異なる色情報にする)ようにしてもよい。
図3に示したベロシティマップ210では、キャラクタC1の右腕は、先端部分(右拳)に近いほど移動量(速度)が大きく、根元部分(右肩)に近いほど移動量(速度)が小さい。この場合、図8に示すように、例えば、キャラクタC1の右腕の先端部分(右拳)に近いピクセルほど、算出した色情報をより大きく変化させた画像204を生成するようにしてもよい。例えば、各ピクセルに対して、算出した色情報からR成分とG成分を移動量(速度)に応じた量だけ減らすようにすれば、移動量(速度)が小さいピクセルほどオリジナルの色に近く、移動量が大きいピクセルほど青色に近くなる(相対的にB成分の割合が大きくなる)モーションブラーを実現することができる。
(7)変形例4
本実施形態において、引き伸ばしモデルの一部のピクセル(例えば、所与の模様の形状に配置されたピクセル)に対して、他の一部のピクセルと異なる演算処理を行って速度情報を算出するようにしてもよい。
例えば、引き伸ばしモデルにおいて、一定間隔(例えば1行おき)で直線状に配置されたピクセルに対して速度を0とし、その他のピクセルに対しては速度情報を算出して図9に示すようなベロシティマップ214を作成するようにしてもよい。このベロシティマップ214を用いて各ピクセルの色情報を計算することで、例えば、図10に示すように、キャラクタC1の右腕に規則的な直線が強調された画像204が得られる。
このようにすれば、所与の模様の形状を浮き上がらせたマンガ的な視覚効果を有する画像を生成することができる。なお、描画する模様としては、規則的な直線の他にも、水玉模様、星模様、波線など様々な模様を考えることができる。
(8)変形例5
本実施形態において、原画像においてオブジェクトをより簡易な形状の簡易モデルに置き換えた画像を生成し、この画像を用いてベロシティマップを作成するようにしてもよい。具体的には、原画像のオブジェクトをより簡易な形状の簡易モデルに置き換えた画像を用いて、簡易モデルの前回のフレームにおける位置情報と今回のフレームにおける位置情報に基づいて簡易モデルの引き伸ばしモデルを作成し、この引き伸ばしモデルの各ピクセルの各ピクセルに対して速度ベクトルを算出し、ベロシティマップを作成する。そして、原画像の各ピクセルに対して、このベロシティマップを用いて色情報を算出し、算出した色情報に更新することで最終画像が得られる。
例えば、図11に示すように、キャラクタC1、C2について、頭部と拳を円で表現しその他の部分を矩形で表現した簡易モデルをそれぞれ用意し、原画像においてキャラクタC1とC2を簡易モデルに置き換えた画像220を生成する。そして、この画像220を用いてベロシティマップを作成し、原画像の各ピクセルに対して色情報を計算するようにすればよい。
このようにすれば、ベロシティマップの作成に要する処理負荷を軽減することができるので、モーションブラー処理を高速化することができる。
(9)変形例6
本実施形態において、キャラクタオブジェクトだけでなく、エフェクトオブジェクトに対してもモーションブラーをかけるようにしてもよい。
例えば、図12に示すように、キャラクタC1が右の掌から液体E1(エフェクトオブジェクト)を放射した場合、キャラクタC1、C2だけでなく、液体E1(エフェクトオブジェクト)にもモーションブラーがかかった画像206を生成する。この画像206は、キャラクタC1、C2とともに液体E1もモーションブラー処理の対象として、図13に示すようなベロシティマップ216を作成することで実現することができる。なお、液体以外にも、炎、光、煙などの様々なエフェクトオブジェクトを考えることができる。
さらに、エフェクトオブジェクトがキャラクタオブジェクトにヒットした場合、エフェクトオブジェクトの属性情報(色、形状、模様、材質、光沢等)をさらに用いて、ヒットを受けたキャラクタオブジェクトの引き伸ばしモデルに含まれる各ピクセルの色情報を算出するようにしてもよい。
例えば、図12の画像では、キャラクタC2は液体E1によるヒットを受けている。この場合、例えば、液体E1が紫色であれば、ヒットを受けたキャラクタC2の引き伸ばしモデルの各ピクセルに対して色情報を算出する際、液体E1の色情報を加えることで紫が混ざった色情報を算出する。こうすることにより、キャラクタC2に、液体E1の色と連動して紫がかった色のモーションブラーをかけることができる。
(10)変形例7
本実施形態において、各ピクセルの速度情報を算出する際に、オブジェクトの所与の可動部に含まれるピクセルに対して、当該可動部の先端部分から根元部分に向かう方向に前記速度情報を徐々に大きくするようにしてもよい。
このようにすれば、例えば、図14に示すように、キャラクタC1の右腕(可動部)の先端部分(右拳)はブラーがほとんどかからず、右腕の根元部分(右肩)に近づくにつれてより強くなるブラー(軌跡のようなブラー)がかかった画像208を得ることができる。
(11)変形例8
本実施形態において、モーションブラー処理の対象となる各オブジェクトの状態に応じて、オブジェクト毎に移動量(速度)を増加又は減少させるようにしてもよい。
例えば、図2に示した画像200において、キャラクタC2が微妙に揺れながら立ち構えているのであればキャラクタC2の移動量(速度)を実際よりも小さくして弱めのブラーをかけるようにしてもよい。このようにすれば、立ち構えなどの待機ループモーションの状態のオブジェクトのボケ感を抑えた画像を生成することができる。また、例えば、キャラクタC1の攻撃がキャラクタC2にヒットしたのであれば、キャラクタC2の移動量(速度)を実際よりも大きくして強めのブラーをかけるようにしてもよい。
図15(A)に示すように、オブジェクトOB1が、今回のフレームの原画像306では実線で示す位置(頂点A、B、Cの座標がそれぞれ(x,y)、(x,y)、(x,y))にあり、前回のフレームでは破線で示す位置(頂点A、B、Cの座標がそれぞれ(x,y)、(x,y)、(x,y))にあった場合でも、移動方向に沿って現在の位置により近い一点鎖線で示す位置(頂点A、B、Cの座標がそれぞれ(x,y)、(x,y)、(x,y))にあったものとしてオブジェクトOB1の引き伸ばしモデルを作成して速度ベクトルを計算する。例えば、頂点Aの速度ベクトルvは、座標(x,y)を始点とし、座標(2x−x,2y−y)を終点とするベクトルになる。また、頂点Bの速度ベクトルvは、座標(x,y)を始点とし、座標(2x−x,2y−y)を終点とするベクトルになる。また、頂点Cの速度ベクトルvは、座標(x,y)を始点とし、座標(2x−x,2y−y)を終点とするベクトルになる。このようにして算出した速度ベクトルから、図15(B)に示すようなベロシティマップ316が得られる。ベロシティマップ316では、引き伸ばしモデルに対応する領域(斜線領域)が実際よりも小さく、この領域のピクセルの移動量(速度)速度ベクトルも実際より小さい。従って、このベロシティマップ316を用いて色情報を算出することで、オブジェクトOB1に通常よりも弱いブラーをかけることができる。逆に、オブジェクトOB1の前回のフレームにおける位置を、移動方向に沿って破線で示す位置よりも現在の位置から遠い位置にあったものとしてベロシティマップを作成すれば、オブジェクトOB1に通常よりも強いブラーをかけることができる。
また、本実施形態において、モーションブラー処理の対象となる各オブジェクトの状態に応じて、オブジェクト毎にモーションブラー処理を停止するようにしてもよい。例えば、オブジェクトが所定の閾値以上の衝撃を受けた直後のフレームでは、当該衝撃を受けたオブジェクトについてはモーションブラー処理を停止するようにしてもよい。つまり、このオブジェクトについては引き伸ばしモデルを作成せずに速度ベクトルの算出処理を停止し、さらに色情報の算出処理も停止する。このようにすれば、オブジェクトが強い攻撃を受けた時にブラーがかかりすぎて画像が不鮮明になり過ぎるのを避けることができる。
(12)変形例9
本実施形態において、描画プロセッサの処理負荷に応じて、1フレーム全体に対してモーションブラー処理を停止するようにしてもよい。例えば、描画プロセッサの処理負荷が所定の閾値を越えたら、描画負荷が閾値を下回るまでモーションブラー処理を停止するようにしてもよい。このようにすれば、描画負荷が重すぎる場合はモーションブラー処理を停止して描画速度の低下を軽減することができる。
また、本実施形態において、今回のフレームにおける仮想カメラの位置、向き及び画角の少なくとも1つの前回のフレームに対する変化量に応じて、今回のフレームではモーションブラー処理を停止するようにしてもよい。例えば、この変化量が所定の閾値よりも大きい場合、今回のフレームではモーションブラー処理を停止するようにしてもよい。このようにすれば、画面が大きく切り替わった直後の1フレームはフレーム全体に不要なブラーがかからないので、画像が不鮮明になるのを避けることができる。
3.本実施形態の処理
図16は、本実施形態のモーションブラー処理の一例を示すフローチャート図である。以下、本実施形態のモーションブラー処理の一例について図16を用いて説明する。
まず、ステンシルバッファを0に初期化し(ステップS10)、今回のフレームの原画像を描画する(ステップS20)。
次に、ステップS20で描画した原画像に含まれるオブジェクトがモーションブラー処理の対象となるオブジェクトか否かを判定し(ステップS30)、処理対象のオブジェクトであれば(ステップS30でYの場合)、当該オブジェクトに含まれるポリゴンの各頂点の前回の座標を位置情報記憶部から読み出し、各頂点の前回の座標と今回の座標から、オブジェクトの移動軌跡を求めて引き伸ばしモデルを作成する(ステップS40)。
次に、各頂点の前回の座標と今回の座標から引き伸ばしモデルに含まれる各ピクセルの速度ベクトルを算出し、ベロシティマップに書き込む(ステップS50)。
次に、引き伸ばしモデルに含まれる各ピクセルに対してステンシルバッファに1を書き込む(ステップS60)。
次に、当該オブジェクトに含まれるポリゴンの各頂点の今回のフレームにおける座標を位置情報記憶部に書き込む(ステップS70)。
原画像に他のオブジェクトがあれば(ステップS80でYの場合)、当該オブジェクトに対してステップS30〜S70の処理を行う。
そして、モーションブラー処理の対象となるすべてのオブジェクトについて、ステップS40〜S70の処理が終了すると(ステップS80でNの場合)、ステンシルバッファに1が書き込まれた各ピクセルに対して、ベロシティマップから速度ベクトルを読み出し、速度ベクトルに応じた位置にある複数のピクセルから色情報を算出する(ステップS90)。
最後に、ステップS20で描画した今回のフレームの原画像を、算出した色情報に更新した画像を生成する(ステップS100)。
図17は、変形例1のモーションブラー処理の一例を示すフローチャート図である。以下、変形例1のモーションブラー処理の一例について図17を用いて説明する。
まず、ステンシルバッファを0に初期化し(ステップS10)、今回のフレームの原画像を描画する(ステップS20)。
次に、ステップS20で描画した原画像に含まれるオブジェクトがモーションブラー処理の対象となるオブジェクトか否かを判定し(ステップS30)、処理対象のオブジェクトであれば(ステップS30でYの場合)、当該オブジェクトに含まれるポリゴンの各頂点の前回の座標を位置情報記憶部から読み出し、各頂点の前回の座標と今回の座標から、オブジェクトの移動軌跡を求めて引き伸ばしモデルを作成する(ステップS40)。
次に、今回のフレーム画像のN個のピクセル毎に1つの代表ピクセルを選択し、引き伸ばしモデルに含まれる代表ピクセルの速度ベクトルを算出して1フレームの1/Nのサイズのベロシティマップに書き込む(ステップS52)。
次に、引き伸ばしモデルに含まれる各代表ピクセルに対して1フレームの1/Nのサイズのステンシルバッファに1を書き込む(ステップS62)。
次に、当該オブジェクトに含まれるポリゴンの各頂点の今回のフレームにおける座標を位置情報記憶部に書き込む(ステップS70)。
原画像に他のオブジェクトがあれば(ステップS80でYの場合)、当該オブジェクトに対してステップS30〜S70の処理を行う。
そして、モーションブラー処理の対象となるすべてのオブジェクトについて、ステップS40〜S70の処理が終了すると(ステップS80でNの場合)、ステンシルバッファに1が書き込まれた各代表ピクセルに対してベロシティマップから速度ベクトルを読み出し、各代表ピクセルにより代表されるN個のピクセルの各々に対して当該速度ベクトルに応じた位置にある複数のピクセルから色情報を算出する(ステップS92)。
最後に、ステップS20で描画した今回のフレームの原画像を、算出した色情報に更新した画像を生成する(ステップS100)。
図18は、変形例2のモーションブラー処理の一例を示すフローチャート図である。以下、変形例2のモーションブラー処理の一例について図18を用いて説明する。
まず、ステンシルバッファを0に初期化し(ステップS10)、今回のフレームの原画像を描画する(ステップS20)。
次に、ステップS20で描画した原画像を、N個のピクセル毎に1つの代表ピクセルを選択して1/Nのサイズに縮小した画像を生成する(ステップS22)。
次に、ステップS22で生成した縮小画像に含まれるオブジェクトがモーションブラー処理の対象となるオブジェクトか否かを判定し(ステップS30)、処理対象のオブジェクトであれば(ステップS30でYの場合)、当該オブジェクトに含まれるポリゴンの各頂点の前回の座標を位置情報記憶部から読み出し、各頂点の前回の座標と今回の座標から、オブジェクトの移動軌跡を求めて引き伸ばしモデルを作成する(ステップS40)。
次に、引き伸ばしモデルに含まれる代表ピクセルの速度ベクトルを算出して1フレームの1/Nのサイズのベロシティマップに書き込む(ステップS52)。
次に、引き伸ばしモデルに含まれる各代表ピクセルに対して1フレームの1/Nのサイズのステンシルバッファに1を書き込む(ステップS62)。
次に、当該オブジェクトに含まれるポリゴンの各頂点の今回のフレームにおける座標を位置情報記憶部に書き込む(ステップS70)。
縮小画像に他のオブジェクトがあれば(ステップS80でYの場合)、当該オブジェクトに対してステップS30〜S70の処理を行う。
そして、モーションブラー処理の対象となるすべてのオブジェクトについて、ステップS40〜S70の処理が終了すると(ステップS80でNの場合)、ステンシルバッファに1が書き込まれた各代表ピクセルに対して、ベロシティマップから速度ベクトルを読み出して速度ベクトルに応じた位置にある複数のピクセルから色情報を算出し、算出した各々の代表ピクセルの色情報を当該代表ピクセルにより代表されるN個のピクセルに設定する(ステップS94)。
最後に、ステップS20で描画した今回のフレームの原画像を、算出した色情報に更新した画像を生成する(ステップS100)。
図19は、変形例8のモーションブラー処理において、キャラクタオブジェクトにかけるブラーの強弱又はオフを選択する処理の一例を示すフローチャート図である。以下、この選択処理の一例について図19を用いて説明する。
まず、キャラクタが立ち構え状態か否かを判定し(ステップS110)、立ち構え状態であれば(ステップS110でYの場合)、当該キャラクタに対して弱めのモーションブラーをかける(ステップS112)。
一方、キャラクタが立ち構え状態でなければ(ステップS110でNの場合)、キャラクタがヒットされた直後のフレームか否かを判定し(ステップS120)、ヒットされた直後のフレームでなければ(ステップS120でNの場合)、当該キャラクタに対して通常のモーションブラーをかける(ステップS122)。
一方、キャラクタがヒットされた直後のフレームであれば(ステップS120でYの場合)、キャラクタが受けた衝撃が閾値以上であるか否かを判定し(ステップS130)、閾値以上であれば(ステップS130でYの場合)、当該キャラクタに対してモーションブラーをオフにする(ステップS132)。
一方、キャラクタが受けた衝撃が閾値未満であれば(ステップS130でNの場合)、
当該キャラクタに対して強めのモーションブラーをかける(ステップS134)。
図20は、変形例9のモーションブラー処理において、1フレーム全体に対してモーションブラー処理を停止するか否かを選択する処理の一例を示すフローチャート図である。以下、この選択処理の一例について図20を用いて説明する。
すべてのフレームの描画処理が終了でなければ(ステップS210でNの場合)、まず、描画プロセッサの処理負荷が閾値以上であるか否かを判定し(ステップS220)、閾値以上であれば(ステップS220でYの場合)、フレーム全体に対してモーションブラーをオフにする(ステップS240)。
一方、描画プロセッサの処理負荷が閾値未満であれば(ステップS220でNの場合)、仮想カメラの位置の変化量が閾値以上か否かを判定し(ステップS232)、閾値以上であれば(ステップS232でYの場合)、フレーム全体に対してモーションブラーをオフにする(ステップS240)。
一方、仮想カメラの位置の変化量が閾値未満であれば(ステップS232でNの場合)、仮想カメラの向きの変化量が閾値以上か否かを判定し(ステップS234)、閾値以上であれば(ステップS234でYの場合)、フレーム全体に対してモーションブラーをオフにする(ステップS240)。
一方、仮想カメラの向きの変化量が閾値未満であれば(ステップS234でNの場合)、仮想カメラの画角の変化量が閾値以上か否かを判定し(ステップS236)、閾値以上であれば(ステップS236でYの場合)、フレーム全体に対してモーションブラーをオフにする(ステップS240)。
一方、仮想カメラの画角の変化量が閾値未満であれば(ステップS236でNの場合)、フレーム全体に対してモーションブラーをオンにする(ステップS242)。
4.ハードウェア構成
次に、図21を用いて本実施形態を実現できるハードウェア構成について説明する。なお、図21は、本実施形態を実現できるハードウェア構成を示す一例である。
メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。
また、この描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
なお、上記各プロセッサの各機能は、ハードウェアとして別々のプロセッサにより実現してもよいし、1つのプロセッサにより実現してもよい。また、プロセッサとしてCPUとGPUを設けた場合でも、いずれのプロセッサによりいかなる機能を実現するかは、任意に設定することができる。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950には、システムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。
RAM960は、各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるDVD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお、本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして、本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
例えば、本実施形態では、色情報の計算を2回行っているが、例えば、2回目の計算で得られた色情報をテクスチャに書き込み、当該テクスチャから、2回目の計算時にサンプリングした複数の色情報のうちの直近の2つの色情報の間にある複数の色情報をサンプリングして3回目の色情報の計算を行うようにしてもよい。同様に色情報の計算を4回以上行うようにしてもよい。
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、114 仮想カメラ制御部、116 ヒット判定部116、120 描画部、121 原画像生成部、122 位置情報記憶部、123 速度情報算出部、124 色情報算出部、125 フレーム画像生成部、126 縮小画像生成部、127 簡易モデル画像生成部、130 音生成部、160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、176 オブジェクトデータ記憶部、178 テクスチャ記憶部、179 Zバッファ、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部、200,204,206,208 画像、210,214,216 ベロシティマップ、220 画像、300,302,306 原画像、310,312,316 ベロシティマップ、320 色情報テクスチャ、322,324 画像

Claims (17)

  1. 画像を生成するためのプログラムであって、
    今回のフレームの原画像を生成する原画像生成部と、
    所与のオブジェクトの前回のフレームにおける位置情報を記憶する位置情報記憶部と、
    前記オブジェクトの前回のフレームにおける位置情報と今回のフレームにおける位置情報に基づいて、前記オブジェクトの移動軌跡を算出し、当該移動軌跡に含まれる各ピクセルに対応づけて速度情報を算出する速度情報算出部と、
    前記移動軌跡に含まれる各ピクセルに対して、算出した前記速度情報に応じた位置にある複数のピクセルに基づいて色情報を算出する色情報算出部と、
    前記原画像において、前記オブジェクトの移動軌跡に含まれる各ピクセルを算出した前記色情報に更新し、今回のフレームの画像を生成するフレーム画像生成部としてコンピュータを機能させることを特徴とするプログラム。
  2. 請求項1において、
    前記速度情報算出部は、
    前記速度情報を算出したピクセルに対応づけて所定のステンシル値を設定し、
    前記色情報算出部は、
    前記所定のステンシル値が設定されたピクセルに対して前記色情報を算出することを特徴とするプログラム。
  3. 請求項2において、
    前記速度情報算出部は、
    前記速度情報を算出したピクセルのうち速度が0のピクセルに対応づけて前記所定のステンシル値と異なるステンシル値を設定することを特徴とするプログラム。
  4. 請求項1乃至3のいずれかにおいて、
    前記速度情報算出部は、
    前記原画像のN個のピクセル毎に1つの代表ピクセルを選択して前記移動軌跡に含まれる代表ピクセルの前記速度情報を算出し、
    前記色情報算出部は、
    前記移動軌跡に含まれる各々の前記代表ピクセルの前記速度情報を当該代表ピクセルにより代表される前記N個のピクセルの速度情報として、当該N個のピクセルの色情報を算出することを特徴とするプログラム。
  5. 請求項1乃至3のいずれかにおいて、
    前記原画像のN個のピクセル毎に1つの代表ピクセルを選択して前記原画像の1/Nのサイズの縮小画像を生成する縮小画像生成部としてさらにコンピュータを機能させ、
    前記速度情報算出部は、
    前記縮小画像において前記移動軌跡を算出して前記代表ピクセルの前記速度情報を算出し、
    前記色情報算出部は、
    前記移動軌跡に含まれる各々の前記代表ピクセルの色情報を算出し、算出した各々の前記代表ピクセルの色情報を当該代表ピクセルにより代表される前記N個のピクセルに設定することを特徴とするプログラム。
  6. 請求項1至5のいずれかにおいて、
    前記色情報算出部は、
    算出した前記色情報を前記速度情報に応じて変化させることを特徴とするプログラム。
  7. 請求項1至6のいずれかにおいて、
    前記速度情報算出部は、
    前記移動軌跡に含まれる一部のピクセルに対して、当該移動軌跡に含まれる他の一部のピクセルと異なる演算処理を行って前記速度情報を算出することを特徴とするプログラム。
  8. 請求項7において、
    前記速度情報算出部は、
    所与の模様の形状に配置されたピクセルに対して前記演算処理を行うことを特徴とするプログラム。
  9. 請求項1至8のいずれかにおいて、
    前記原画像において前記オブジェクトを当該オブジェクトよりも簡易な形状の簡易モデルに置き換えた画像を生成する簡易モデル画像生成部としてさらにコンピュータを機能させ、
    前記位置情報記憶部は、
    前記位置情報として前記簡易モデルの前回のフレームにおける位置情報を記憶し、
    前記速度情報算出部は、
    前記移動軌跡として前記簡易モデルの移動軌跡を算出することを特徴とするプログラム。
  10. 請求項1至9のいずれかにおいて、
    前記オブジェクトの1つがエフェクトオブジェクトであることを特徴とするプログラム。
  11. 請求項10において、
    前記オブジェクトの1つがキャラクタオブジェクトであり、
    前記エフェクトオブジェクトが前記キャラクタオブジェクトにヒットしたか否かを判定するヒット判定部としてさらにコンピュータを機能させ、
    前記色情報算出部は、
    前記エフェクトオブジェクトが前記キャラクタオブジェクトにヒットした場合、前記エフェクトオブジェクトの属性情報をさらに用いて、前記キャラクタオブジェクトの移動軌跡に含まれる各ピクセルの前記色情報を算出することを特徴とするプログラム。
  12. 請求項1至11のいずれかにおいて、
    前記速度情報算出部は、
    前記オブジェクトの所与の可動部に含まれるピクセルに対して、当該可動部の先端部分から根元部分に向かう方向に前記速度情報を徐々に大きくすることを特徴とするプログラム。
  13. 請求項1至12のいずれかにおいて、
    前記速度情報算出部は、
    今回のフレームにおける前記オブジェクトの状態に応じて、当該オブジェクトに対して、前記速度情報を増加若しくは減少させて算出し、又は、前記速度情報を算出する処理を停止することを特徴とするプログラム。
  14. 請求項1乃至13のいずれかにおいて、
    前記コンピュータは、描画プロセッサを含み、
    前記速度情報算出部は、
    前記描画プロセッサの処理負荷に応じて、前記速度情報を算出する処理を停止することを特徴とするプログラム。
  15. 請求項1乃至14のいずれかにおいて、
    前記速度情報算出部は、
    今回のフレームにおける仮想カメラの位置、向き及び画角の少なくとも1つの前回のフレームに対する変化量に応じて、今回のフレームでは前記速度情報を算出する処理を停止することを特徴とするプログラム。
  16. コンピュータにより読み取り可能な情報記憶媒体であって、請求項1乃至15のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体
  17. 画像を生成するための画像生成システムであって、
    今回のフレームの原画像を生成する原画像生成部と、
    所与のオブジェクトの前回のフレームにおける位置情報を記憶する位置情報記憶部と、
    前記オブジェクトの前回のフレームにおける位置情報と今回のフレームにおける位置情報に基づいて、前記オブジェクトの移動軌跡を算出し、当該移動軌跡に含まれる各ピクセルに対応づけて速度情報を算出する速度情報算出部と、
    前記移動軌跡に含まれる各ピクセルに対して、算出した前記速度情報に応じた位置にある複数のピクセルに基づいて色情報を算出する色情報算出部と、
    前記原画像において、前記オブジェクトの移動軌跡に含まれる各ピクセルを前記算出した色情報に更新し、今回のフレームの画像を生成するフレーム画像生成部と、を含むことを特徴とする画像生成システム。
JP2010081199A 2010-03-31 2010-03-31 プログラム、情報記憶媒体及び画像生成システム Withdrawn JP2011215724A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010081199A JP2011215724A (ja) 2010-03-31 2010-03-31 プログラム、情報記憶媒体及び画像生成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010081199A JP2011215724A (ja) 2010-03-31 2010-03-31 プログラム、情報記憶媒体及び画像生成システム

Publications (1)

Publication Number Publication Date
JP2011215724A true JP2011215724A (ja) 2011-10-27

Family

ID=44945410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010081199A Withdrawn JP2011215724A (ja) 2010-03-31 2010-03-31 プログラム、情報記憶媒体及び画像生成システム

Country Status (1)

Country Link
JP (1) JP2011215724A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014153893A (ja) * 2013-02-07 2014-08-25 Sony Computer Entertainment Inc 描画処理装置および描画処理方法
JP6416338B1 (ja) * 2017-07-13 2018-10-31 株式会社コロプラ 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置
JP2020089494A (ja) * 2018-12-04 2020-06-11 株式会社ミクシィ ゲームプログラム、ゲーム表示方法及びゲーム端末

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014153893A (ja) * 2013-02-07 2014-08-25 Sony Computer Entertainment Inc 描画処理装置および描画処理方法
US9652886B2 (en) 2013-02-07 2017-05-16 Sony Corporation Rendering processing device and rendering processing method using interpolation rendering result
JP6416338B1 (ja) * 2017-07-13 2018-10-31 株式会社コロプラ 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置
JP2019020516A (ja) * 2017-07-13 2019-02-07 株式会社コロプラ 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置
JP2020089494A (ja) * 2018-12-04 2020-06-11 株式会社ミクシィ ゲームプログラム、ゲーム表示方法及びゲーム端末

Similar Documents

Publication Publication Date Title
JP4804122B2 (ja) プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム
JP4717622B2 (ja) プログラム、情報記録媒体および画像生成システム
JP4305903B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3748451B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2011053737A (ja) プログラム、情報記憶媒体及び画像生成装置
JP4749198B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4754384B2 (ja) プログラム、情報記録媒体および画像生成システム
JP2011215724A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2008077408A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4743770B2 (ja) 画像生成システム、プログラム、及び情報記憶媒体
JP2006323512A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006252426A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4913399B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP4754385B2 (ja) プログラム、情報記録媒体および画像生成システム
JP4592087B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2009140371A (ja) プログラム、情報記憶媒体、画像生成システム
US20070115280A1 (en) Program, information storage medium, and image generation system
JP2011209864A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2009140370A (ja) プログラム、情報記憶媒体、画像生成システム
JP2010033302A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2010231364A (ja) 画像生成システム、プログラム及び情報記憶媒体
JP2006277488A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2006252423A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2011209865A (ja) プログラム、情報記憶媒体及び画像生成システム
JP4693153B2 (ja) 画像生成システム、プログラム及び情報記憶媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130604