特許文献1に記載の方法では、同一の画像処理装置で背景画像をレンダリングした後に移動物体のレンダリングを行う必要があり、プロセッサに高い処理能力が要求されるとともに、背景画像及び移動物体のモデリングデータ及びレンダリングデータを記憶するメモリに大きな容量が必要である。また、背景物体のスクリーン上でのイメージデータの全てのドットの奥行値を計算する必要があり、プロセッサに高い処理能力が要求されるとともに、奥行データを記憶するバッファメモリにも大きな容量が必要である。
また、仮想カメラの1視点から所定の画角を持って撮影した背景画像の部分をずらせて表示させることにより、背景画像のスクロールを行っているため、背景画像が回転するようにスクロールし、背景画像が平行に進むようにスクロールさせることができない。
また、この方法では、ポリゴンデータをレンダリングしたイメージデータをそのまま背景画像として用いているため、背景画像を精緻に表現しようとすると膨大な数のポリゴンを用いる必要がある。また、水彩画、筆タッチ等の微妙な濃淡を背景画像で表現することは、ポリゴンをレンダリングする方法では難しい。
特許文献2に記載の方法でも、背景物体のスクリーン上でのイメージデータの全てのドットの奥行値を計算する必要があり、プロセッサに高い処理能力が要求されるとともに、奥行データを記憶するバッファメモリにも大きな容量が必要である。
また、この方法でも、特許文献1の方法と同様に、背景画像を精緻に表現しようとすると膨大な数のポリゴンを用いる必要があり、水墨画等の微妙な濃淡を背景画像で表現することが難しい。
本発明は、画像処理において、プロセッサに要求される処理能力を軽減して背景画像等を含む静止画像に奥行き感を持たせることにある。
また、本発明は、画像処理において、背景画像が平行に進むように背景画像をスクロールさせることにある。
また、本発明は、画像処理において、精緻な背景画像の生成を可能にすることにある。
第1発明に係る画像処理システムは、第1レンダリング手段と、出力手段と、受信手段と、第2レンダリング手段と、画像生成手段とを備えている。第1レンダリング手段は、静止オブジェクトの3次元モデリングデータを所定の平面上を移動するオーソカメラの視点でレンダリングして、前記静止オブジェクトのレンダリングデータを生成する。出力手段は、前記静止オブジェクトのレンダリングデータと、移動オブジェクトの3次元モデリングデータとを、伝送媒体に出力する。受信手段は、前記伝送媒体から、前記静止オブジェクトのレンダリングデータと前記移動オブジェクトの3次元モデリングデータとを受信する。第2レンダリング手段は、前記移動オブジェクトの3次元モデリングデータを、前記移動オブジェクトの移動に従い前記所定の平面上を移動するオーソカメラの視点でレンダリングして、前記移動オブジェクトのレンダリングデータを生成する。画像生成手段は、前記受信手段で受信された前記静止オブジェクトのレンダリングデータと前記第2レンダリング手段で生成された前記移動オブジェクトのレンダリングデータを合成して2次元の画像を生成する。
上記発明によると、静止オブジェクトの3次元モデルを予めレンダリング処理をしておいて、移動オブジェクトの3次元モデルと共に伝送媒体に出力する。これにより、伝送媒体から読み出す側で静止オブジェクトをレンダリング処理する必要がなくなり、読み出す側での処理量を減少させる。尚、静止オブジェクトのレンダリングと移動オブジェクトのレンダリング両方を所定の平面上を移動するオーソカメラの視点で行うため、読み出す側において移動オブジェクトだけをリアルタイムでレンダリングしても、静止オブジェクトをリアルタイムでレンダリングする場合と同様な自然なレンダリング画像が得られる。さらには、移動オブジェクトが静止オブジェクトに対して移動する画像を表す際に、静止オブジェクトのレンダリングと移動オブジェクトのレンダリング両方を移動オブジェクトの移動に従い所定の平面上を移動するオーソカメラの視点で行うため、読み出す側において移動オブジェクトだけをリアルタイムでレンダリングしても、読み出す側で静止オブジェクトと移動オブジェクトの両方をレンダリングする場合と同様自然なレンダリング画像が得られる。さらに、所定の平面上を移動するオーソカメラにより静止オブジェクトをレンダリングするため、静止オブジェクトのレンダリングデータを画面上でスクロールさせる場合に、静止オブジェクトが画面上で平行に進むようにスクロールすることができる。
第2発明に係る記録媒体は、データ領域及びプログラム領域を含む。
データ領域には、静止オブジェクトの3次元モデリングデータを所定の平面上を移動するオーソカメラの視点でレンダリングしたレンダリングデータと、移動オブジェクトの3次元モデリングデータとが記憶されている。
プログラム領域には、読出手段と、第2レンダリング手段と、画像生成手段としてコンピュータを機能させる画像処理プログラムが記憶されている。読出手段は、前記データ領域から、前記静止オブジェクトのレンダリングデータと前記移動オブジェクトの3次元モデリングデータとを読出す。第2レンダリング手段は、前記移動オブジェクトの3次元モデリングデータを、前記移動オブジェクトの移動に従い前記所定の平面上を移動するオーソカメラの視点でレンダリングして、前記移動オブジェクトのレンダリングデータを生成する。画像生成手段は、前記読出手段で読出された前記静止オブジェクトのレンダリングデータと、前記第2レンダリング手段で生成された前記移動オブジェクトのレンダリングデータとを合成して2次元の画像を生成する。
上記発明によると、静止オブジェクトの3次元モデルを予めレンダリング処理をしておいて、移動オブジェクトの3次元モデルと共に記録媒体に記憶することによって、記録媒体を読み出す側で静止オブジェクトをレンダリング処理する必要がなくなり、読み出す側での処理量を減少させる。尚、静止オブジェクトのレンダリングと移動オブジェクトのレンダリング両方を所定の平面上を移動するオーソカメラの視点で行うため、読み出す側において移動オブジェクトだけをリアルタイムでレンダリングしても、静止オブジェクトをリアルタイムでレンダリングする場合と同様自然なレンダリング画像が得られる。さらには、移動オブジェクトが静止オブジェクトに対して移動する画像を表す際に、静止オブジェクトのレンダリングと移動オブジェクトのレンダリング両方を移動オブジェクトの移動に従い所定の平面上を移動するオーソカメラの視点で行うため、読み出す側において移動オブジェクトだけをリアルタイムでレンダリングしても、読み出す側で静止オブジェクトと移動オブジェクトの両方をレンダリングする場合と同様自然なレンダリング画像が得られる。さらに、所定の平面上を移動するオーソカメラにより静止オブジェクトをレンダリングするため、静止レンダリングデータを画面上でスクロールさせる場合に、静止オブジェクトが平行に進むようにスクロールすることができる。
第3発明に係る画像処理システムは、第1レンダリング手段と、出力手段と、受信手段と、第2レンダリング手段と、画像生成手段とを備えている。第1レンダリング手段は、静止オブジェクトの3次元モデリングデータを所定の平面上を移動するオーソカメラの視点でレンダリングして、第1イメージデータと奥行データとを含むレンダリングデータを生成する。出力手段は、前記第1イメージデータに基づいて生成された第2イメージデータと、前記奥行データと含む前記静止オブジェクトのレンダリングデータを、移動オブジェクトの3次元モデリングデータとともに伝送媒体に出力する。受信手段は、前記伝送媒体から、前記静止オブジェクトのレンダリングデータと前記移動オブジェクトの3次元モデリングデータとを受信する。第2レンダリング手段は、前記移動オブジェクトの3次元モデリングデータを、前記移動オブジェクトの移動に従い前記所定の平面上を移動するオーソカメラの視点でレンダリングして、前記移動オブジェクトのレンダリングデータを生成する。画像生成手段は、前記受信手段で受信された前記静止オブジェクトのレンダリングデータと、前記第2レンダリング手段で生成された前記移動オブジェクトのレンダリングデータを合成して2次元の画像を生成する。
上記発明によると、静止オブジェクトをレンダリングする際に、3次元モデリングデータをレンダリングして得られた第1イメージデータ(臨時イメージデータ)に基づいて、より詳細なイメージデータの生成が可能になり、3次元モデリングデータからレンダリングして通常得られるイメージデータより詳細な2次元画像を生成できる。尚、静止オブジェクトのイメージデータを別途生成するため、静止オブジェクトのモデリングの際、テクスチャデータの生成が不要になり、モデリング作業が簡単である。さらに、3次元モデリングデータからレンダリングして通常得られるイメージデータより詳細な2次元画像の生成が可能になるにもかかわらず、伝送媒体かに出力するデータの量及び伝送媒体から受信する側での処理量は殆ど変わらない。
第4発明に係る記録媒体は、データ領域とプログラム領域を含む。
データ領域には、静止オブジェクトの3次元モデリングデータを所定の平面上を移動するオーソカメラの視点でレンダリングして、第1イメージデータと奥行データとを含むレンダリングデータを生成し、前記第1イメージデータに基づいて生成された第2イメージデータと前記奥行データとを含む前記静止オブジェクトのレンダリングデータを、移動オブジェクトの3次元モデリングデータとともに書き込んだデータが記憶されている。
プログラム領域には、読出手段と、第2レンダリング手段と、画像生成手段としてコンピュータを機能させる画像処理プログラムが記憶されている。読出手段は、前記データ領域から、前記静止オブジェクトのレンダリングデータと、前記第移動オブジェクトの3次元モデリングデータを読出す。第2レンダリング手段は、前記移動オブジェクトの3次元モデリングデータを、前記移動オブジェクトの移動に従い前記所定の平面上を移動するオーソカメラの視点でレンダリングして、前記移動オブジェクトのレンダリングデータを生成する。画像生成手段は、前記読出手段で読出された前記静止オブジェクトのレンダリングデータと、前記第2レンダリング手段で生成された前記移動オブジェクトのレンダリングデータとを合成して2次元の画像を生成する。
上記発明によると、静止オブジェクトをレンダリングする際に、3次元モデリングデータをレンダリングして得られた第1イメージデータ(臨時イメージデータ)に基づいて、より詳細なイメージデータの生成が可能になり、3次元モデリングデータからレンダリングして通常得られるイメージデータより詳細な2次元画像を生成できる。尚、静止オブジェクトのイメージデータを別途生成するため、静止オブジェクトのモデリングの際、テクスチャデータの生成が不要になり、モデリング作業が簡単である。さらに、3次元モデリングデータからレンダリングして通常得られるイメージデータより詳細な2次元画像の生成が可能になるにもかかわらず、記録媒体に書き込むデータの量及び記録媒体から読み出す側での処理量は殆ど変わらない。
第5発明に係る画像処理システムは、第1レンダリング手段と、イメージデータ生成手段と、奥行データ生成手段と、出力手段と、受信手段と、第2レンダリング手段と、画像生成手段とを備えている。第1レンダリング手段は、第1静止オブジェクト及び第2静止オブジェクト各々の3次元モデリングデータを所定の平面上を移動するオーソカメラの視点でレンダリングして、前記第1静止オブジェクトに対してはイメージデータを含むレンダリングデータを、前記第2静止オブジェクトに対してはイメージデータと奥行データとを含むレンダリングデータを生成する。イメージデータ生成手段は、前記第1静止オブジェクトの前記イメージデータと前記第2静止オブジェクトの前記イメージデータを合成し、静止オブジェクトのイメージデータを生成する。奥行データ生成手段は、前記第2静止オブジェクトの前記奥行データを用いて、静止オブジェクトの奥行データを生成する。出力手段は、前記静止オブジェクトのイメージデータと前記奥行データとを含む前記静止オブジェクトのレンダリングデータを、移動オブジェクトの3次元モデリングデータとともに伝送媒体に出力する。受信手段は、前記伝送媒体から、前記静止オブジェクトのレンダリングデータと前記移動オブジェクトの3次元モデリングデータとを受信する。第2レンダリング手段は、前記移動オブジェクトの3次元モデリングデータを、前記移動オブジェクトの移動に従い前記所定の平面上を移動するオーソカメラの視点でレンダリングして、前記移動オブジェクトのレンダリングデータを生成する。画像生成手段は、前記奥行データ生成手段で生成された前記静止オブジェクトの奥行データと前記第2レンダリング手段で生成された前記移動オブジェクトの奥行データとを比較し、その比較結果を用いて、前記受信手段で受信された前記静止オブジェクトのレンダリングデータと、前記第2レンダリング手段で生成された前記移動オブジェクトのレンダリングデータとを合成して2次元の画像を生成する。
上記発明によると、静止オブジェクトを第1及び第2静止オブジェクトに分けて、第1静止オブジェクトの奥行データは省略でき、伝送媒体に出力するデータの量を減らすことができる。尚、静止オブジェクトの大部分を占める第1静止オブジェクトは粗いポリゴン(第1の数のポリゴン)を用い、比較的小さな領域を占める第2静止オブジェクトのみ細かいポリゴン(第1の数よりも大きい第2の数のポリゴン)を用いてモデリングするために、モデリングの負担を抑制できる。又、第2静止オブジェクトはより細かいモデリングが可能になり、静止オブジェクトを3次元モデリングして通常得られる画像より詳細な画像がえられる。
第6発明に係る記録媒体は、データ領域とプログラム領域を含む。
データ領域には、第1静止オブジェクト及び第2静止オブジェクト各々の3次元モデリングデータを所定の平面上を移動するオーソカメラの視点でレンダリングして、前記第1静止オブジェクトに対してはイメージデータを含むレンダリングデータを、前記第2静止オブジェクトに対してはイメージデータと奥行データとを含むレンダリングデータを第1レンダリング手段により生成し、前記第1静止オブジェクトの前記イメージデータと前記第2静止オブジェクトの前記イメージデータとをイメージデータ生成手段により合成し静止オブジェクトのイメージデータを生成し、前記第2静止オブジェクトの前記奥行データを用いて、静止オブジェクトの奥行データを奥行データ生成手段により生成し、前記静止オブジェクトのイメージデータと前記奥行データとを含む前記静止オブジェクトのレンダリングデータを、移動オブジェクトの3次元モデリングデータとともに書き込んだデータが記憶されている。
プログラム領域には、読出手段と、第2レンダリング手段と、画像処理手段としてコンピュータを機能させる画像処理プログラムが記憶されている。読出手段は、前記データ領域から、前記静止オブジェクトのレンダリングデータと前記移動オブジェクトの3次元モデリングデータを読出す。第2レンダリング手段は、前記移動オブジェクトの3次元モデリングデータを、前記移動オブジェクトの移動に従い前記所定の平面上を移動するオーソカメラの視点でレンダリングして、前記移動オブジェクトのレンダリングデータを生成する。画像処理手段は、前記静止オブジェクトの奥行データと前記第2レンダリング手段で生成された前記移動オブジェクトの奥行データとを比較し、その比較結果を用いて、前記読出手段で読出された前記静止オブジェクトのレンダリングデータと、前記第2レンダリング手段で生成された前記移動オブジェクトのレンダリングデータとを合成して2次元の画像を生成する。
上記発明によると、静止オブジェクトを第1及び第2静止オブジェクトに分けて、第1静止オブジェクトの奥行データは省略でき、記録媒体に書き込むデータの量を減らすことができる。尚、静止オブジェクトの大部分を占める第1静止オブジェクトは粗いポリゴン(第1の数のポリゴン)を用い、比較的小さな領域を占める第2静止オブジェクトのみ細かいポリゴン(第1の数よりも大きい第2の数のポリゴン)を用いてモデリングするために、モデリングの負担を抑制できる。又、第2静止オブジェクトはより細かいモデリングが可能になり、静止オブジェクトを3次元モデリングして通常得られる画像より詳細な画像がえられる。
第7発明に係る記録媒体は、第6発明に係る記録媒体において、前記データ領域に記憶された前記静止オブジェクトのイメージデータは、前記第1レンダリング手段により生成された前記第1静止オブジェクト及び/又は前記第2静止オブジェクトのレンダリングデータが、前記第1静止オブジェクト及び/又は前記第2静止オブジェクトの各イメージデータに基づいて生成されたイメージデータに入れ替えられた各イメージデータである。
上記発明によると、第6発明の効果に加えて、第4発明の効果を得ることができる。
第8発明に係るデータ転送媒体は、第6発明に係るデータ転送媒体において、前記第1レンダリング手段は、(a)前記第1静止オブジェクト及び第2静止オブジェクト各々の3次元モデリングデータから、仮想の2次元画面を構成する複数のドットのドット毎に、オーソカメラの視点で見たカラー値及び奥行値を演算する手段と、(b)前記第1静止オブジェクトに対しては前記演算された複数のカラー値を含むイメージデータを有するレンダリングデータを、前記第2静止オブジェクトに対しては前記演算された複数のカラー値を含むイメージデータ及び複数の奥行値を含む奥行データを有するレンダリングデータを生成する手段とを含む。また、前記イメージデータ生成手段は、(a)前記複数のドットのドット毎に、前記第1静止オブジェクト及び前記第2静止オブジェクトのイメージデータの両方共にカラー値を持つドットに対しては前記第2静止オブジェクトのイメージデータのカラー値をメモリに書き込み、前記第1又は第2静止オブジェクト何れか一方のイメージデータにのみカラー値を持つドットに対しては当該カラー値を前記メモリに書き込む第1記録手段と、(b)前記第1記録手段による処理の終了後、前記メモリに記録されているデータを前記イメージデータとして出力する手段とを含む。また、前記奥行データ生成手段は、(a)前記複数のドットのドット毎に、前記第2静止オブジェクトの奥行データの奥行値を前記メモリに書き込み、前記第2静止オブジェクトのイメージデータのカラー値を持つドット以外のドットに対しては所定値を前記メモリに書き込む第2記録手段と、(b)前記第2記録手段による処理の終了後、前記メモリに記憶されているデータを前記奥行データとして出力する手段とを含む。
上記発明によれば、第2静止オブジェクトのイメージデータのカラー値を持つドットのみ奥行値を記録媒体に書き込み、それ以外のドットに対しては所定値を書き込むため、奥行データを効率よく圧縮することが可能である。
第9発明に係る記録媒体は、第6発明に係る記録媒体において、前記画像処理プログラムは、前記仮想の2次元画面上における前記移動オブジェクトの位置及び方向を決定する決定手段をさらに含む。また、前記第1レンダリング手段は、(a)前記第1移動オブジェクト及び第2移動オブジェクト各々の3次元モデリングデータから、仮想の2次元画面を構成する複数のドットのドット毎に、オーソカメラの視点で見たカラー値及び奥行値を演算する手段と、(b)前記第1移動オブジェクトに対しては前記演算された複数のカラー値を含むイメージデータを有するレンダリングデータを、前記第2移動オブジェクトに対しては前記演算された複数のカラー値を含むイメージデータ及び複数の奥行値を含む奥行データを有するレンダリングデータを生成する手段とを含む。また、前記第2レンダリング手段は、(a)移動オブジェクトの3次元モデリングデータから、仮想の2次元画面を構成する複数のドットのドット毎に、前記移動オブジェクトを前記決定手段で決められた位置及び方向に変位してオーソカメラの視点で見たカラー値及び奥行値を演算する手段と、(b)前記演算された複数のカラー値を含むイメージデータと複数の奥行値を含む奥行データとを有するレンダリングデータを生成する手段とを含む。また、前記画像生成手段は、前記複数のドットのドット毎に、(a)前記静止オブジェクト及び前記移動オブジェクトの奥行値を比較し、どちらが手前かを決める奥行比較手段、(b)前記静止オブジェクト及び前記移動オブジェクトのイメージデータの両方共にカラー値を持つドットに対しては、前記奥行比較手段で決められた手前のオブジェクトのイメージデータのカラー値をメモリに書き込み、前記静止オブジェクト又は移動オブジェクトの何れか一方のオブジェクトのイメージデータにのみカラー値を持つドットに対しては当該カラー値を前記メモリに書き込む第3記録手段と、(c)前記奥行比較手段及び前記第3記録手段による処理が前記複数のドットの全てに対して終了後、前記メモリに記録されているデータを画像として出力する手段とを含む。
上記発明によると、コントローラからの操作入力に対応して移動オブジェクトの位置及び方向によってリアルタイムでレンダリングする一方、静止オブジェクトのレンダリングをしなくても良いので、演算量を減らすことができる。
第10発明に係る記録媒体は、第6発明に係る記録媒体において、前記画像処理プログラムは、前記仮想の2次元画面上における前記移動オブジェクトの位置及び方向を決定する決定手段をさらに含む。また、前記第1レンダリング手段は、(a)前記第1静止オブジェクト及び第2静止オブジェクト各々の3次元モデリングデータから、仮想の2次元画面を構成するドット毎に、オーソカメラの視点で見たカラー値及び奥行値を演算する手段と、(b)前記第1静止オブジェクトに対しては前記演算された複数のカラー値を含むイメージデータを有するレンダリングデータを、前記第2静止オブジェクトに対しては前記演算された複数のカラー値を含むイメージデータ及び複数の奥行値を含む奥行データを有するレンダリングデータを生成する手段とを含む。また、前記第2レンダリング手段は、(a)前記移動オブジェクトの3次元モデリングデータから、仮想の2次元画面を構成する複数のドットのドット毎に、前記移動オブジェクトを前記決定手段で決められた位置及び方向に変位してオーソカメラの視点で見たカラー値及び奥行値を演算する手段と、(b)前記演算された複数のカラー値を含むイメージデータと複数の奥行値を含む奥行データとを有するレンダリングデータを生成する手段とを含む。また、前記画像生成手段は、(a)前記静止オブジェクトのイメージデータをフレームバッファに記録する手段と、(b)前記移動オブジェクトのイメージデータ中カラー値を持つドットに対して、前記静止オブジェクト及び前記移動オブジェクトの奥行値を比較し、どちらが手前かを決める比較手段と、(c)前記比較手段で前記移動オブジェクトが前記静止オブジェクトより手前であると判断された場合、前記ドットに該当する移動オブジェクトのイメージデータのカラー値を前記フレームバッファに記憶する手段と、を含む。
上記発明によると、静止オブジェクトをフレームバッファに書き込んでおいて、移動オブジェクトを上書きするため、画像生成際の計算量、書込回数を減らすことができる。
本発明によれば、画像処理において、プロセッサに要求される処理能力を低減して静止オブジェクトに奥行き感を持たせることができる。
また、本発明によれば、画像処理において、静止オブジェクトが平行に進むように背景画像をスクロールさせることができる。
また、本発明によれば、画像処理において、精緻な静止オブジェクトの生成が可能になる。
(1)全体構成
図1は、本発明の一実施形態に係る画像処理システムに適用されるゲーム機1の外観図である。
ここでは、ゲーム機1は、例えば、図1(a)及び(b)に示すようなゲーム機を例に挙げて説明する。図1(a)のゲーム機1は、筐体の前面に配置されたLCD2と、コントローラ3とを備えている。LCD2は、後述するゲームプログラムの処理によるゲーム画面を表示する。コントローラ3は、十字キー3aと、入力キー3bとを備えている。十字キー3aは、主にゲーム画面中の画像を移動させるために用いられる。入力キー3bは、例えば、ゲーム画面中での画像の選択を決定する場合や、キャラクタの動作を命令するために用いられる。図1(b)のゲーム機1は、筐体が折り畳み式になっており、開いた状態では同図に示すように、折り畳み部によって区画された筐体の2つの部分にそれぞれLCD2a,2bを備えている。
図2は、図1(a),(b)に示すゲーム機1のハードウェアの構成例を示すブロック図である。
ゲーム機1は、CPU21と、画像処理ユニット22と、メモリ23と、通信ユニット24と、コントローラ・インターフェイス(I/F)部25と、外部メモリ・インターフェイス(I/F)部26と、LCDドライバ27とを備えている。
ゲーム機本体1は、さらにバス28を備え、バス28は、CPU21と、画像処理ユニット22と、メモリ23と、通信ユニット24と、コントローラI/F部25と、外部メモリI/F部26と、LCDドライバ27との間のデータ転送を行う。
CPU21は、バス28を介して画像処理ユニット22、メモリ23、通信ユニット24、コントローラI/F部25、外部メモリI/F部26、LCDドライバ27に制御信号を送信及びこれらの構成からデータを受信することにより、これらを制御する。
画像処理ユニット22は、CPU21からの制御信号に従い、画像データの生成処理を行う。画像処理ユニット22は、3次元のモデルリングデータに基づいて、3次元仮想空間におけるオブジェクトの位置決定及びオブジェクトのレンダリング処理を行うことによって、3次元のモデルリングデータからLCD2に表示すべき2次元画像を生成する。
メモリ23は、揮発性のメモリ及び/又は不揮発性のメモリであり、LCD2に表示すべき画像及びその画像を生成する途中の画像を一時的に記憶する。メモリ23は、例えば、後述する静止オブジェクトのイメージデータをフレーム単位で記憶する第1フレームバッファ領域、後述する静止オブジェクトのデプスオブジェクトの奥行データを記憶する第1デプスバッファ領域、後述する移動オブジェクトのイメージデータをフレーム単位で記憶する第2フレームバッファ領域、後述する移動オブジェクトの奥行データを記憶する第2デプスバッファ領域、外部メモリI/F26を介して外部メモリ5から読み出され又は通信ユニット24を介して伝送媒体から読み出されたゲームプログラムを記憶するプログラム領域を含む。
通信ユニット24は、有線及び/又は無線の伝送媒体によって外部の通信機器と通信するための構成である。外部の通信機器としては、後述するゲームプログラムが記憶されたサーバに搭載された通信部等である。伝送媒体は、有線の場合には、LAN回線、公衆電話回線、インターネット等であり、無線の場合には、無線LAN回線、携帯電話回線、PHS回線等である。コントローラI/F25は、コントローラ3と接続されており、コントローラ3からの入力をCPU21に転送する。外部メモリI/F26は、カートリッジ等の形態で構成される外部メモリがゲーム機1に装着された場合に、CPU21からの制御信号に基づいて外部メモリ5に記憶された内容を読み出し、外部メモリ5から読み出されたデータをCPU21に転送する。LCDドライバ27は、メモリ23のフレームバッファに書き込まれている画像データに基づいてLCD2を駆動し、フレームバッファの画像データをLCD2に出力する。
本発明は、CPU21と画像処理ユニット22の処理能力が従来の小型携帯ゲーム機より相対的に高いゲーム機1に適用された場合により効果がある。すなわち、CPU21及び画像処理ユニット22の処理能力が従来の小型携帯ゲーム機より高い小型携帯ゲーム機において、奥行き感の有る画像を表示させるような場合により有効である。
図3は、外部メモリ5のメモリ空間を図解的に示したメモリマップである。
外部メモリ5は、プログラム領域31と、データ領域32とを有する。
プログラム領域31には、LCD2に表示するための画像処理を行ってゲームを実行するためのゲームプログラムが記憶されている。
データ領域32には、ゲームプログラムの画像処理に使用される画像データ、ゲームプログラムの音声処理に使用される音声データ、その他ゲームプログラムの実行に使用される各種パラメータが記憶されている。画像データは、静止オブジェクトデータ33と、移動オブジェクトデータ34とを含む。静止オブジェクトデータ33は、イメージデータ331と、奥行データ332とを含む。イメージデータ331は、LCD2に表示する画面のドット毎に割り当てられるテクスチャデータである。奥行データ332は、静止オブジェクトのうち後述するデプスオブジェクトのテクスチャデータが割り当てられるドット毎に割り当てられた奥行を表すデータである。移動オブジェクトデータ34は、3次元のポリゴンデータ341と、各ポリゴンに割り当てられたテクスチャデータ342とを含む。
ゲームプログラム及び画像データは、予め外部メモリ5に記憶しておき、ゲーム機1の外部メモリI/F26を介して読み込まれる。また、ゲームプログラム及び画像データを外部のサーバ等の記録媒体に記憶しておき、サーバから有線又は無線の伝送媒体を介してゲーム機1の通信ユニット24で受信し、ゲーム機1のメモリ23に記憶するようにしても良い。以下の説明では、ゲームプログラム及び画像データが記憶される外部メモリ5等のゲーム機1に装着される記録媒体、ゲームプログラム及び画像データが出力される伝送媒体を含めて転送媒体という。
(2)全体処理
(2−1)第1の実施形態
本発明は、3次元のオブジェクトのデータを生成し記録媒体に記憶(記録)する第1画像処理と、記録媒体からデータを読み込んで画像を生成する第2画像処理とで構成される。
図4及び図5は、本発明の第1の実施形態に係る処理のフローチャ―トである。図4は、3次元のオブジェクトからデータを生成し転送媒体に書き込む第1画像処理のフローチャートである。図5は、記録媒体からデータを読み出し、画像を生成する第2画像処理のフローチャートである。
〔第1画像処理〕
図4では、まず、表示しようとする3次元オブジェクトをモデリングする(S11,S13)。3次元オブジェクトは、移動オブジェクトと、静止オブジェクトとを含む。移動オブジェクトは、コントローラ3の操作又はゲームプログラムの命令に従って、LCD2の画面上又は静止オブジェクトに対して移動するオブジェクトであり、例えばゲーム上のキャラクタ等である。静止オブジェクトは、移動オブジェクトに対して相対的に静止するオブジェクトであり、ゲーム上の地面、壁、壁の手前の物体などである。本実施形態では、移動オブジェクトと、静止オブジェクトとを別々にモデリングする。
S11では、静止オブジェクトをモデリングする。静止オブジェクトをモデリングすることによって、3次元のポリゴンデータ及びテクスチャデータを含む静止オブジェクトのモデリングデータを生成する。図10(a)は、静止オブジェクトのモデリングデータ中ポリゴンデータを示す。図12(a)は、他の静止オブジェクトのモデリングデータ中ポリゴンデータを示す。
ここで生成されるモデリングデータは、例えば「当たりモデル」のモデリングデータである。当たりモデルとは、プレーヤや敵のキャラクタが立つ為の地面や壁などの3次元のモデルであり、キャラクタの行動範囲を制限する為のモデルである。従って、ゲーム画面には何も無い空間として表示されている場所にキャラクタの行動範囲を制限するために壁を作ることもある。当たりモデルは、モデリング処理軽減の為、非常にざっくりとしたポリゴン(粗いポリゴン)で構成されるのが一般的である。例えば、壺などの物体は、その物体を覆うような立方体でモデリングされる。但し、後述するようなデプスオブジェクトのように精密な奥行データが必要な場合には、上記の粗いポリゴンよりも細かいポリゴンを用いる。
S12では、オーソカメラを用いて静止オブジェクトの3次元のモデリングデータをレンダリングし、図10(b)に示すような2次元の画像データを含む静止オブジェクトのイメージデータと奥行データとをレンダリングデータとして生成する。
モデリングデータは、仮想の3次元空間座標系における複数のポリゴンの座標データと、当該複数のポリゴンの色や材質などを表すテクスチャデータとして構成される。レンダリング処理によって、仮想の3次元空間座標系上の所定の方向及び位置で特定される仮想のカメラで撮影した、当該仮想カメラから見た画像を2次元座標系で表すイメージデータと当該2次元座標系画像のドット毎の仮想カメラから距離を表す奥行データが得られる。
本発明では、3次元オブジェクトのレンダリングを行う際に、仮想カメラの視点を設定する。本実施形態では、仮想カメラの視点をオーソカメラとして設定する。オーソカメラは、3次元オブジェクトを2次元データに平行投影するカメラであり、画角を持たない。さらに、本実施形態では、オーソカメラがカメラベクトル(カメラから撮像ドットに向かうベクトル)を法線に持つ平面上のみを移動するように設定する。また、オーソカメラの回転角度を固定する。すなわち、静止オブジェクト撮影時のオーソカメラの回転角と、移動オブジェクトのレンダリング時のオーソカメラの回転角とを同一に設定する。
図13(a)は、オーソカメラ40によるレンダリングを説明する説明図である。オーソカメラ40は、前述したように、3次元オブジェクトを2次元データに平行投影するカメラであり、画角を持たない。さらに、本実施形態では、オーソカメラ40は、図13(a)に示すように、仮想の3次元空間座標系で特定される所定の平面S1上のみを移動可能とする。オーソカメラが移動可能な平面S1をオーソ平面S1と称する。オーソカメラ40によるレンダリングにより、静止オブジェクトSOの奥行データは、オーソ平面S1からの距離として計算される。このようにオーソカメラ40を用いてレンダリング処理することにより、例えば、カメラの視点で移動オブジェクトとともに静止オブジェクトを表示する場合に、予めすべての静止オブジェクトをレンダリングしておけば、移動オブジェクトが移動したとしても、静止オブジェクトを再びレンダリングする必要がない。
S13では、移動オブジェクトをモデリングする。移動オブジェクトのモデリングデータは、仮想の3次元空間座標系におけるポリゴンデータ及びテクスチャデータ(図示せず)を含む。図11は、移動オブジェクトのモデリングデータ中ポリゴンデータを示す。
S17では、静止オブジェクトのレンダリングデータと、移動オブジェクトのモデリングデータとを、転送媒体(記録媒体又は伝送媒体)に書き込む。
第1画像処理は、コンピュータなどの情報処理装置で行われるのが望ましい。各々のステップはプログラムによって実行される。また、各々のステップは外部のプログラムモジュールの組み合わせで実行されることも可能である。S11のモデリングは、モデリング用の3次元デザインソフト等のプログラムを用いて行うことができる。S12のレンダリング処理は、レンダリング用のソフト、例えばAlias Wavefront社のMaya等のプログラムを用いて行うことができる。また、第1画像処理の主なステップは、Maya等のレンダリングプログラムのプラグインプログラムとして具現することもできる。
〔第2画像処理〕
図5では、ゲーム機1が転送媒体から、静止オブジェクトのレンダリングデータ(イメージデータ及び奥行データ)と、移動オブジェクトのモデリングデータを受信し、移動オブジェクトのモデリングデータをオーソカメラでレンダリングし、移動オブジェクトのレンダリングデータを生成する。そして、静止オブジェクトのレンダリングデータ及び移動オブジェクトのレンダリングデータを合成し、LCD2に出力する画像を生成する。
S18では、ゲーム機1が転送媒体から、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータを読み出す。転送媒体が外部メモリ5である場合には、ゲーム機1は、外部メモリI/F26を介して外部メモリ5から、静止オブジェクトのレンダリングデータと、移動オブジェクトのモデリングデータとを読み出す。転送媒体が有線又は無線の伝送媒体である場合には、ゲーム機1は、通信ユニット24を介して伝送媒体から、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータを受信し、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータをメモリ23に書き込む。
S19では、移動オブジェクトのモデリングデータをオーソカメラでレンダリングし、移動オブジェクトのレンダリングデータを生成する。具体的には、ゲーム機1の画像処理ユニット22が、移動オブジェクトの3次元ポリゴンデータを読み込み、3次元ポリゴンデータをオーソカメラでレンダリングする。
移動オブジェクトの3次元ポリゴンデータのオーソカメラによるレンダリングを図13(a)及び(b)を用いて説明する。図13(a)及び(b)には、仮想の3次元空間座標系における移動オブジェクトDOと静止オブジェクトSOとの位置関係を表す。図13(a)に示されたように、仮想の3次元空間座標系で特定の位置に(3次元ポリゴンデータによって特定される)移動オブジェクトDOが在る場合には、オーソ平面S1において移動オブジェクトDOが在る位置に対応する位置(移動オブジェクトDOの撮像対象の画素までの距離が最短距離である位置)でのオーソカメラ40により、移動オブジェクトDOがレンダリングされる。具体的には、仮想の3次元空間座標系で特定の位置にある移動オブジェクトDOを、オーソ平面S1上のオーソカメラ40によって撮影した画像を表すイメージデータを演算によって獲得するとともに、当該イメージデータのドット毎のオーソカメラ40(オーソ平面S1)からの距離を表す奥行値Zを計算することにより、当該イメージデータのドット毎の奥行値Zを含む奥行データがえられる。イメージデータは、オーソカメラ40から見た画面上の2次元座標系の画像である。
移動オブジェクトDOが図13(a)の位置から図13(b)の位置に移動した場合には、オーソカメラ40がオーソ平面S1上で移動オブジェクトDOの移動に従い移動しながらレンダリングが行われる。例えば、移動オブジェクトDOが図13(a)の位置の場合は、オーソカメラIから演算された移動オブジェクトDOのドットが、移動オブジェクトDOが図13(b)の位置の場合は、オーソカメラIIから演算される。具体的には、図13(a)の位置の場合は、オーソカメラIからの距離が計算された移動オブジェクトDOのドットは、図13(b)の位置の場合には、オーソカメラIIからの距離が計算される。
S20では、静止オブジェクトのレンダリングデータと、移動オブジェクトのレンダリングデータとを合成し、LCD2に出力するための画像を生成する。レンダリングデータ画像の生成については、図9において後述する。
第2画像処理は、ゲーム機などの情報処理装置で行われるのが望ましい。各々のステップはプログラムによって実行される。S19のレンダリング処理は、レンダラー等のグラフィック処理機能を持つ画像処理ユニット22で行うことができる。また、第2画像処理の主なステップは、CPU21の指示に従って画像処理ユニット22で実行できる。
〔作用効果〕
本実施形態によれば、静止オブジェクトの3次元モデルを予めレンダリング処理をしておいて、移動オブジェクトの3次元モデルと共に転送媒体に記憶(記録)することによって、転送媒体を読み出すゲーム機1において、静止オブジェクトをレンダリング処理する必要がなくなり、ゲーム機1での処理量を減少させる。従って、携帯型ゲーム機等の小型ゲーム機に適している。また、静止オブジェクトの処理に要するプロセッサの処理能力を節約できるため、移動オブジェクトの画像処理を向上させることができる。
尚、静止オブジェクトのレンダリングと移動オブジェクトのレンダリング両方をオーソカメラの視点で行うため、ゲーム機1において移動オブジェクトだけをリアルタイムでレンダリングしても、静止オブジェクトをリアルタイムでレンダリングする場合と同様自然なレンダリング画像が得られる。また、これにより、移動オブジェクトが静止オブジェクトに対して移動する画像を表す際に、ゲーム機1で静止オブジェクトと移動オブジェクトの両方をレンダリングする場合と同様自然なレンダリング画像がえられる。
さらに、オーソカメラにより静止オブジェクトをレンダリングするため、静止オブジェクトのレンダリングデータを画面上でスクロールさせる場合に、静止が平行に進むようにスクロールすることができる。
(2−2)第2の実施形態
図6は、3次元のオブジェクトのデータを生成し転送媒体に転送する第1画像処理のフローチャートである。第2画像処理については第1の実施形態の図5と同様の処理を行う。
第2の実施形態は、静止オブジェクトのモデリングデータをレンダリングしたレンダリングデータのイメージデータを臨時イメージデータとし、臨時イメージデータに基づいて生成されたイメージデータを静止オブジェクトのイメージデータとして入れ替える点が第1の実施形態と異なる。
〔第1画像処理〕
S11では、静止オブジェクトをモデリングする。静止オブジェクトをモデリングすることによって、3次元のポリゴンデータ及びテクスチャデータを含む静止オブジェクトのモデリングデータを生成する。図10(a)は、静止オブジェクトのモデリングデータ中ポリゴンデータを示す。図12(a)は、他の静止オブジェクトのモデリングデータ中ポリゴンデータを示す。
第2実施形態では、静止オブジェクトのモデリングデータを後述するレンダリングデータのイメージデータに基づいて、新たなイメージデータを生成し、元々のイメージデータと入れ替えるため、静止オブジェクトのモデリングデータはテクスチャデータを持たなくても良い。静止オブジェクトのモデリングデータは、前述した当たりモデルとしての機能をすれば足り、後述するイメージデータ生成処理S121の基本となるポリゴンデータだけを持ち、テクスチャデータは持たなくても良いのは、第2実施形態の持つ効果である。
S12では、オーソカメラ40を用いて静止オブジェクトのモデリングデータをレンダリングし、図10(b)に示すような2次元の画像データを含む静止オブジェクトのイメージデータと奥行データとをレンダリングデータとして生成する。本実施形態では、S121で、S12で得られたレンダリングデータのイメージデータに基づいて、さらに詳細なイメージデータを生成し、元々のイメージデータと入れ替えるため、S12で得られるイメージデータを臨時イメージデータという。
本発明では、3次元オブジェクトのレンダリングを行う際に、仮想カメラの視点をオーソカメラとして設定する。オーソカメラによるレンダリング処理の詳細は、第1実施形態を参照する。
S121では、臨時イメージデータに基づいて、さらに詳細なイメージを描画し、イメージデータを生成する。具体的には、3次元モデリングデータ(図10(a))をレンダリングした臨時イメージデータ(図10(b))に基づいて、細かい物体や道具などが加わえた新たなイメージデータを生成する。図10(c)の例では、レンダリング処理で得られた臨時イメージデータ(b)に基づいて、壁に窓が付いているようなイメージが生成される。イメージデータの生成ステップS121は、2次元描画ソフトなどを使った手作業で行うことができる。
S13では、移動オブジェクトをモデリングする。移動オブジェクトのモデリングデータは、仮想の3次元空間座標系におけるポリゴンデータ及びテクスチャデータ(図示せず)からなる。図11は、移動オブジェクトのモデリングデータ中ポリゴンデータを示す。
S17では、S121で生成された静止オブジェクトのレンダリングデータと、S13で生成された移動オブジェクトのモデリングデータとを、転送媒体(記録媒体又は伝送媒体)に書き込む。
第2画像処理については第1の実施形態の図5と同様の処理を行う。但し、静止オブジェクトのレンダリングデータ中のイメージデータは、S12で得られたレンダリングデータのイメージデータに基づいてS121で生成されたイメージデータがレンダリングデータ使用される。
〔作用効果〕
本実施形態によると、静止オブジェクトをレンダリングする際に、3次元モデリングデータをレンダリングして得られた臨時イメージデータに基づいて、より詳細なイメージデータの生成が可能になり、3次元モデリングデータからレンダリングして通常得られるイメージデータより詳細な2次元画像を生成できる。尚、静止オブジェクトのイメージデータを別途生成するため、静止オブジェクトのモデリングの際、テクスチャデータの生成が不要になり、モデリング作業が簡単である。さらに、通常のレンダリングより詳細な2次元画像の生成が可能になるにもかかわらず、転送媒体に書き込むデータの量と転送媒体を読み出すゲーム機1での処理量は殆ど変わらない。
(2−3)第3の実施形態
図7及び図8は、第3の実施形態に係る処理のフローチャ―トである。図7は、3次元のオブジェクトからデータを生成し転送媒体に転送する第1画像処理のフローチャートである。図8は、転送媒体からデータを読み出し、画像を生成する第2画像処理のフローチャートである。
〔第1画像処理〕
第3の実施形態は、静止オブジェクトが背景オブジェクトとデプスオブジェクトからなる。背景オブジェクトは、レンダリング処理後、レンダリングデータが奥行データを持たずイメージデータのみからなり、デプスオブジェクトは、レンダリング処理後、レンダリングデータがイメージデータと奥行データとを持つ点において、第1の実施形態と異なる。
又、第3実施形態においても、第2実施形態のようにレンダリング処理後のイメージデータを臨時イメージデータとし、それに基づいて新たなイメージデータを生成し、元々のイメージデータと入れ替えるのも可能である。以下では、第2実施形態のイメージ生成処理が含まれた実施形態に基づいて説明する。
S11では、静止オブジェクトをモデリングする。静止オブジェクトをモデリングすることによって、3次元のポリゴンデータ及びテクスチャデータを含む静止オブジェクトのモデリングデータを生成する。ここでは、第2実施形態のようにイメージ生成処理を行うため、静止オブジェクトのモデリングデータは、テクスチャデータを持たなくても良い。
静止オブジェクトは、背景オブジェクトとデプスオブジェクトとを含む。図10(a)及び図12(a)は、それぞれ背景オブジェクト及びデプスオブジェクトのモデリングデータ中ポリゴンデータを示す。
背景オブジェクトのモデリングデータは、第1実施形態の説明で述べた「当たりモデル」のモデリングデータである。背景オブジェクトのモデリングデータは、当たりモデルとしての機能をすれば足り、ポリゴンデータだけを持ち、テクスチャデータは持たなくても良いのは、第2実施形態と同様である。
一方、デプスオブジェクトのモデリングデータは、図12(a)に示すように背景オブジェクトを構成するポリゴン(図10(a))よりも細かいポリゴンから構成され、レンダリング後の臨時イメージデータの形状が精細なものとなる。また、臨時イメージデータの奥行データも、細かいポリゴンを基に生成されるので、精度の高いデータである。静止オブジェクト全体を細かいポリゴンを用いてモデリングすると、イメージデータの生成及びゲーム機1でのイメージデータの表示処理に必要なプロセッサの負担が大きい。一方、本実施形態のように、静止オブジェクトのうち大部分を占める背景オブジェクトについては粗いポリゴンを用い、比較的小さな領域を占めるデプスオブジェクトのみ細かいポリゴンを用いてモデリングするために、静止オブジェクト全体を細かいポリゴンを用いてモデリングする場合に比較して、静止オブジェクトのモデリング処理に要するプロセッサの負担を軽減できる。背景オブジェクトが粗いポリゴンで良いのは、上述したように、背景オブジェクトは移動オブジェクトの移動範囲を規制するオブジェクトであり、当たりモデルで構成できるからである。一方、デプスオブジェクトは、後述するように移動オブジェクトが回り込むことができるオブジェクトであり、細かいポリゴンにより、詳細な形状とする必要があるからである。本実施形態では、デプスオブジェクトへの移動オブジェクトの回り込みを実現することにより、静止オブジェクトに奥行き感を持たせることができる。
図16は、デプスオブジェクトの構成例である。デプスオブジェクト201は、床に置かれた釜、釜の後ろの薪、並びに釜の上方の鍋及び鍋掛を含むオブジェクトである。デプスオブジェクト202は、床に開いた穴を表現するためのオブジェクトである。デプスオブジェクト202では、穴の開口部の下方に位置する画像に奥行データを持たせることにより、奥行データを持った画像の後ろに移動物体が隠れ、移動物体が穴に入り込んだように表現することができる。このようなデプスオブジェクト201、202を生成することにより、図15(b)に示すように移動オブジェクトDOの足下がデプスオブジェクト201の薪に隠れたり、図15(d)に示すように移動オブジェクトDOの体が床の穴に入り込んだりする画像を表示することができる。
S12aでは、オーソカメラを用いて背景オブジェクトの3次元のモデリングデータをレンダリングする。図10(b)は、背景オブジェクトをレンダリングして得られるレンダリングデータ中2次元の画像データを含むイメージデータ奥行データを示す。本実施形態では、レンダリングデータのイメージデータに基づいてS121aで生成するさらに詳細なイメージデータに入れ替えるため、レンダリングデータのイメージデータを臨時イメージデータという。背景オブジェクトの臨時イメージデータは、3次元モデリングデータから生成される2次元のイメージデータである。
S12bでは、オーソカメラを用いてデプスオブジェクトの3次元のモデリングデータをレンダリングする。図12(b)、(c)は、それぞれデプスオブジェクトをレンダリングして得られるレンダリングデータのイメージデータ及び奥行データを示す。ここでも、S121bで生成するさらに詳細なイメージデータに入れ替えるため、レンダリングデータのイメージデータを臨時イメージデータという。デプスオブジェクトの臨時イメージデータは、3次元モデリングデータから生成される2次元のイメージデータである。
本発明では、3次元オブジェクトのレンダリングを行う際に、仮想カメラの視点をオーソカメラとして設定する。オーソカメラによるレンダリング処理の詳細は、第1実施形態を参照する。
S121aでは、背景オブジェクトの臨時イメージデータに基づいて、さらに詳細なイメージを描画し、イメージデータを生成する。具体的には、当たりモデル等から生成された3次元モデリングデータ(図10(a))をレンダリングした臨時イメージデータ(図10(b))に基づいて、壁に窓が付いているようなイメージを生成する(図10(c))。
S121bでは、デプスオブジェクトの臨時イメージデータに基づいて、さらに詳細なイメージを描画し、イメージデータを生成する。具体的には、3次元ポリゴンのデプスモデルから生成された3次元モデリングデータ(図12(a))をレンダリングした臨時イメージデータ(図12(b))に、さらに詳細な書き込みを行い、図12(d)に示すようなイメージデータを生成する。
S122aでは、背景オブジェクトのイメージデータ(図10(c))及びデプスオブジェクトのイメージデータ(図12(d))を合成し、静止オブジェクトのイメージデータを生成する。図15(a)〜(d)は、静止オブジェクトのイメージデータと共に移動オブジェクトが表示された画面を示す。背景オブジェクト及びデプスオブジェクトのイメージデータの合成は、背景オブジェクトのイメージデータにデプスオブジェクトのイメージデータを上書きすることによって行うことができる。即ち、2次元座標上の画面を構成する複数のドットの各ドット毎に、背景オブジェクト及びデプスオブジェクトのイメージデータのカラー値をメモリに書き込む。ただし背景オブジェクト及びデプスオブジェクトのイメージデータの両方共にカラー値を持つドットに対しては、デプスオブジェクトのイメージデータのカラー値を、メモリに書き込む。そして、メモリに書き込まれたイメージデータを静止オブジェクトのイメージデータとする。
S122bでは、デプスオブジェクトの奥行きデータを用いて、静止オブジェクトの奥行きデータを生成する。デプスオブジェクトのイメージデータのうちカラー値が割り当てられているドットに奥行値Zを割り当て、カラー値が割り当てられていないドットには所定値を割り当てることにより、静止オブジェクト(背景オブジェクト及びデプスオブジェクト)の奥行データを生成する。ここでは、所定値として、臨界値(far:オーソカメラ40から無限大の距離値)を割り当てる。即ち、2次元座標で表されたデプスオブジェクトのイメージデータうちカラー値が割り当てられているドット(実際に表示されるドット)にはデプスオブジェクトの奥行値Zを割り当て、その以外のドットにはfarを割り当てる。即ち、2次元座標上の画面を構成する複数のドットの各ドット毎に、前記デプスオブジェクトの奥行きデータの奥行値をメモリに書き込む。但し、前記デプスオブジェクトのイメージデータ中カラー値を持つドット以外のドットに対しては臨界値farを、メモリに書き込む。そして、メモリに記憶されているデータを静止オブジェクトの奥行きデータとする。このようなfarが割り当てられたドットは、オーソカメラ40からの距離が無限大であるので、有限の奥行値を持つ3次元ポリゴンデータを含む移動オブジェクトとともに画面に表示される場合には、必ず移動オブジェクトが手前に表示される。
図14は、静止オブジェクトの奥行データの割り当てを説明する説明図である。図14に示すように、静止オブジェクトのうちデプスオブジェクトSO2はカラーデータが割り当てられるドットに対応し、これらのドットには奥行値Zが割り当てられる。デプスオブジェクトのうちカラーデータが割り当てられないドット、即ち背景オブジェクトのみのドットには、所定値としてのの臨界値farが割り当てられる。
S13では、移動オブジェクトをモデリングする。移動オブジェクトのモデリングデータは、仮想の3次元空間座標系におけるポリゴンデータ及びテクスチャデータ(図示せず)を含む。図11は、移動オブジェクトのモデリングデータ中ポリゴンデータを示す。
S17では、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータを転送媒体(記録媒体又は伝送媒体)に書き込む。
〔第2画像処理〕
図8では、ゲーム機1が転送媒体から、静止オブジェクトのレンダリングデータ(イメージデータ及び奥行データ)と、移動オブジェクトのモデリングデータを読み出し、移動オブジェクトのモデリングデータをオーソカメラでレンダリングし、移動オブジェクトのレンダリングデータを生成する。そして、静止オブジェクトのレンダリングデータと、移動オブジェクトのレンダリングデータを合成し、LCD2に出力する画像を生成する。
S18では、ゲーム機1が転送媒体から、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータを読み出す。転送媒体が外部メモリ5である場合には、ゲーム機1は、外部メモリI/F26を介して外部メモリ5から、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータと、移動オブジェクトのモデリングデータとを読み出す。転送媒体が有線又は無線の伝送媒体である場合には、ゲーム機1は、通信ユニット24を介して伝送媒体から、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータを受信し、静止オブジェクトのレンダリングデータ及び移動オブジェクトのモデリングデータをメモリ23に書き込む。
S19では、移動オブジェクトのモデリングデータをオーソカメラでレンダリングし、移動オブジェクトのレンダリングデータを生成する。具体的には、ゲーム機1の画像処理ユニット22が、移動オブジェクトの3次元ポリゴンデータを読み込み、3次元ポリゴンデータをオーソカメラでレンダリングする。
移動オブジェクトの3次元ポリゴンデータのオーソカメラによるレンダリングの詳細は、第1実施形態の説明を参照する。又、後述するようにコントローラ3の操作入力によって移動オブジェクトの位置及び方向(移動先の位置及び移動先での方向)に変化がある場合は、移動オブジェクトの位置及び方向を決定し、移動オブジェクトを2次元座標上において決定された位置及び方向に変位して、オーソカメラの視点で見たカラー値及び奥行値を演算する。
S20では、静止オブジェクトのレンダリングデータと、移動オブジェクトのレンダリングデータとを合成し、LCD2に出力するための画像を生成する。画像の生成については図9において後述する。
〔画像生成処理〕
図9は、S20の画像生成処理を詳細に説明したフローチャートである。
ゲーム進行中に、ゲーム機1のCPU21がコントローラI/F25を介してコントローラ3の操作入力を受け付ける(S101)。CPU21は、その移動オブジェクトの移動先の位置及び移動先での移動オブジェクトの方向を決定する(S102)。
CPU21は、移動オブジェクトの移動先の位置及び移動先での方向を決定すると、画像処理ユニット22に移動オブジェクトの3次元モデリングデータ、即ちポリゴンデータ及びテクスチャデータを用いて、当該位置及び方向での移動オブジェクトをレンダリングするように制御信号を出力する。画像処理ユニット22は、移動オブジェクトのポリゴンデータ及びテクスチャデータを用いて移動オブジェクトをレンダリングする(S19)。このレンダリングによって、S102で決定された移動オブジェクトの位置や方向での移動オブジェクトのレンダリングデータ(イメージデータ、奥行データ)を生成する。
また、画像処理ユニット22は、移動オブジェクトのイメージデータ及び奥行データをメモリ23の第2フレームバッファ領域及び第2デプスバッファ領域に書き込む(S103)。
一方、CPU21は、所定の周期で外部メモリI/Fを介して外部メモリ5から静止オブジェクトのイメージデータを第1フレームバッファ領域に書き込むとともに、静止オブジェクトの奥行データをメモリ23の第1デプスバッファ領域に書き込む(S18)。
S104では、移動オブジェクト及び静止オブジェクトの奥行きデータを比較し、移動オブジェクト及び静止オブジェクトのイメージデータを合成して、LCD2の画面に表示させる画像を生成する。CPU21は、画面の全ドット全てに対してドットごとに、第1デプスバッファ領域に書き込まれている静止オブジェクトの奥行値Zと、第2デプスバッファ領域に書き込まれている移動オブジェクトの奥行値Zとを比較し、奥行値Zが小さい方のオブジェクトのイメージデータを表示するように第1フレームバッファ領域のデータを書き換える。即ち、移動オブジェクトの奥行値Zが小さい(移動オブジェクトが手前にある)場合には、第1フレームバッファ領域の当該ドットの値を、静止オブジェクトのイメージデータ(カラーデータ値)から移動オブジェクトのイメージデータ(カラーデータ値)に上書きして書き換える。一方、移動オブジェクトの奥行値Zが大きい(移動オブジェクトが奥側にある)場合には、第1フレームバッファ領域の当該ドットのカラーデータ値を静止オブジェクトのカラーデータ値のままとする。
以下、図17を参照しながらS104を詳細に説明する。図17は、S102で決定された移動オブジェクトの位置及び方向によってレンダリングされた移動オブジェクトのイメージが静止オブジェクトのイメージと合成された一例を示す。図17(a)は、合成イメージの一部、(b1)はデプスオブジェクトが移動オブジェクトの手前にある部分の拡大図、(b2)は移動オブジェクトが背景オブジェクトの手前にある部分の拡大図、(c1)(c2)はそれぞれ(b1)及び(b2)部分の静止ブジェクトの奥行きデータを、(d1)(d2)はそれぞれ(b1)及び(b2)部分の移動ブジェクトの奥行きデータを表す。
S105では、現在のドットnに対して、静止オブジェクトの奥行きデータ中ドットnに対応する奥行値Zと移動オブジェクトの奥行きデータ中ドットnに対応する奥行値Zとを比較する。図17(b1)に属するドットは、静止オブジェクトの奥行値Z(c1)が移動オブジェクトの奥行値Z(d1)より小さい。図17(b2)に属するドットは、静止オブジェクトの奥行値Z(c2)がすべて臨界値(F)になっているため、移動オブジェクトの奥行値Z(d2)が小さい。
S106では、現在のドットnに対して、移動オブジェクトの奥行値Zが静止オブジェクトの奥行値Zよりも小さいか否かを判別することにより、移動オブジェクトが静止オブジェクトよりも手前か否かを判別する。移動オブジェクトの奥行値Zが静止オブジェクトの奥行値Zよりも小さい(移動オブジェクトが静止オブジェクトよりも手前に在る)場合には、S107に移行する。図17(b2)の場合、S107に移動する。
S107では、第2フレームバッファ領域の当該ドットに対応する位置に記憶されている当該ドットの移動オブジェクトのイメージデータ値を、静止オブジェクトのイメージデータ値が書き込まれている第1フレームバッファ領域の当該ドットに対応する位置に上書きする。
一方、S106において移動オブジェクトが静止オブジェクトよりも手前では無い場合には、当該ドットについて第1フレームバッファ領域の上書きは行わずに、次のドットに対してS105からの処理を繰り返す。図17(b1)の場合、次のドットに対してS105からの処理を繰り返す。
S105からS107の処理は、表示しようとする画面の全ドットについてドット毎に繰り返し実行する。全ドットについてS105からS107の処理が終了した後に、静止オブジェクトのスクロール量を決定する。
〔作用効果〕
本実施形態によれば、静止オブジェクトを背景及びデプスオブジェクトに分けて、背景オブジェクトの奥行データは省略でき、転送媒体に書き込むデータの量を減らすことができる。尚、静止オブジェクトの大部分を占める背景オブジェクトは粗いポリゴンを用い、比較的小さな領域を占めるデプスオブジェクトのみ細かいポリゴンを用いてモデリングするために、モデリングの負担を抑制できる。又、デプスオブジェクトはより細かいモデリングが可能になり、静止オブジェクトを3次元モデリングして通常得られる画像より詳細な画像がえられる。
また、第2実施形態と同様に、静止オブジェクトをレンダリングする際に、3次元モデリングデータをレンダリングして得られた臨時イメージデータに基づいて、より詳細なイメージデータの生成が可能になり、3次元モデリングデータからレンダリングして通常得られるレンダリング処理より詳細な2次元画像を生成できる。また、静止オブジェクトのイメージデータを別途生成するため、静止オブジェクトのモデリングの際、テクスチャデータの生成が不要になり、モデリング作業が簡単である。さらに、通常のレンダリングより詳細な2次元画像の生成が可能になるにもかかわらず、転送媒体に書き込むデータの量、及び転送媒体を読み出すゲーム機1での処理量は殆ど変わらない。
本実施形態よれば、第2オブジェクトのイメージデータのカラー値を持つドットのみ奥行値を記録媒体に書き込み、それ以外のドットに対しては所定値(臨界値far)を書き込むため、例えば、farの値を少ないビット数で表現すれば奥行データのデータ量を低減することができる。また、第2オブジェクトのイメージデータのカラー値を持つドットのみ奥行値を持てば良く、その他のドットにはfarを割り当てれば良いので、奥行データを効率よく圧縮することが可能である。
第1乃至第3実施形態によれば、コントローラ3からの操作入力に対応して移動オブジェクトの位置及び方向によってリアルタイムでレンダリングする一方、静止オブジェクトのレンダリングをしなくても良いので、演算量を減らすことができる。
第1乃至第3本実施形態によれば、静止オブジェクトをフレームバッファに書き込んでおいて、移動オブジェクトを上書きするため、画像生成際の計算量を減らすことができる。