(57)【要約】【課題】  比較的少ない処理負荷でジャギーを除去できるプログラム、情報記憶媒体及び画像生成システムを提供する。【解決手段】  オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に９０度回転させた方向に設定するずらしベクトル設定部１１６と、第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部１２０と、を含む画像生成システムである。ずらしベクトル設定部１１６は、第１のずらしベクトルに対する第２のずらしベクトルのなす角が１８０度となるように各フレーム用の第１及び第２のずらしベクトルを設定する。【選択図】      図１
2006277489.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に９０度回転させた方向に設定するずらしベクトル設定部と、
前記第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、前記第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部として、
コンピュータを機能させ、
前記ずらしベクトル設定部が、
前記第１のずらしベクトルに対する前記第２のずらしベクトルのなす角が１８０度となるように各フレーム用の前記第１及び第２のずらしベクトルを設定することを特徴とするプログラム。
【請求項２】
画像を生成するためのプログラムであって、
オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に６０度あるいは１２０度回転させた方向に設定するずらしベクトル設定部と、
前記第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、前記第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部として、
コンピュータを機能させ、
前記ずらしベクトル設定部が、
前記第１ずらしベクトルに対する前記第２のずらしベクトルのなす角が１８０度となるように各フレーム用の前記第１及び第２のずらしベクトルを設定することを特徴とするプログラム。
【請求項３】
画像を生成するためのプログラムであって、
オブジェクトの描画位置をずらすための第１〜第３のずらしベクトルをフレーム更新毎に６０度あるいは１８０回転させた方向に設定するずらしベクトル設定部と、
前記第１〜第３のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１〜第３のずらし画像を生成し、前記第１〜第３のずらし画像をα合成してフレーム画像を生成する画像生成部として、
コンピュータを機能させ、
前記ずらしベクトル設定部が、
前記第１〜第３のずらしベクトルの各ずらしベクトルの間のなす角が１２０度となるように各フレーム用の前記第１〜第３のずらしベクトルを設定することを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記ずらしベクトル設定部が、
前記描画位置のずらし量が０．５ピクセル未満となるように、前記各ずらしベクトルの大きさを設定することを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記ずらしベクトル設定部が、
前記各ずらし画像における前記描画位置のずらし量が互いに異なるように、前記各ずらしベクトルの大きさを設定することを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記画像生成部が、
前記描画位置をずらさずに前記オブジェクトを描画した非ずらし画像を生成し、その非ずらし画像と前記各ずらし画像とをα合成してフレーム画像を生成することを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記各ずらし画像をα合成してフレーム画像を生成する第１の描画モードと、前記オブジェクトの描画位置をずらさずにフレーム画像を生成する第２の描画モードとを処理負荷に応じて切り替える描画モード切り替え部としてコンピュータを機能させることを特徴とするプログラム。
【請求項８】
画像を生成するためのプログラムであって、
オブジェクトの描画位置をずらすための第１〜第Ｌ（Ｌ≧２）のフレーム用の第１〜第Ｎ（Ｎ≧２）のずらしベクトルをフレーム更新毎に３６０／（Ｌ×Ｎ）度回転させた方向に設定するずらしベクトル設定部と、
前記第１〜第Ｎのずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１〜第Ｎのずらし画像を生成し、前記第１〜第Ｎのずらし画像をα合成して第１〜第Ｌのフレーム用のフレーム画像を生成する画像生成部として、
コンピュータを機能させ、
前記ずらしベクトル設定部が、
第Ｍ（１≦Ｍ≦Ｎ−１）のずらしベクトルに対する第Ｍ＋１のずらしベクトルのなす角が３６０／Ｎ度となるように第１〜第Ｌフレーム用の前記第１〜第Ｎのずらしベクトルを設定することを特徴とするプログラム。
【請求項９】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜８のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１０】
画像を生成するための画像生成システムであって、
オブジェクトの描画位置をずらすための第１〜第Ｌ（Ｌ≧２）のフレーム用の第１〜第Ｎ（Ｎ≧２）のずらしベクトルをフレーム更新毎に３６０／（Ｌ×Ｎ）度回転させた方向に設定するずらしベクトル設定部と、
前記第１〜第Ｎのずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１〜第Ｎのずらし画像を生成し、前記第１〜第Ｎのずらし画像をα合成して第１〜第Ｌのフレーム用のフレーム画像を生成する画像生成部と、
を含み、
前記ずらしベクトル設定部が、
第Ｍ（１≦Ｍ≦Ｎ−１）のずらしベクトルに対する第Ｍ＋１のずらしベクトルのなす角が３６０／Ｎ度となるように第１〜第Ｌフレーム用の前記第１〜第Ｎのずらしベクトルを設定することを特徴とする画像生成システム。
【請求項１１】
画像を生成するための画像生成システムであって、
オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に９０度回転させた方向に設定するずらしベクトル設定部と、
前記第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、前記第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部と、
を含み、
前記ずらしベクトル設定部が、
前記第１のずらしベクトルに対する前記第２のずらしベクトルのなす角が１８０度となるように各フレーム用の前記第１及び第２のずらしベクトルを設定することを特徴とする画像生成システム。
【請求項１２】
画像を生成するための画像生成システムであって、
オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に６０度あるいは１２０度回転させた方向に設定するずらしベクトル設定部と、
前記第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、前記第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部と、
を含み、
前記ずらしベクトル設定部が、
前記第１ずらしベクトルに対する前記第２のずらしベクトルのなす角が１８０度となるように各フレーム用の前記第１及び第２のずらしベクトルを設定することを特徴とする画像生成システム。
【請求項１３】
画像を生成するための画像生成システムであって、
オブジェクトの描画位置をずらすための第１〜第３のずらしベクトルをフレーム更新毎に６０度あるいは１８０回転させた方向に設定するずらしベクトル設定部と、
前記第１〜第３のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１〜第３のずらし画像を生成し、前記第１〜第３のずらし画像をα合成してフレーム画像を生成する画像生成部と、
を含み、
前記ずらしベクトル設定部が、
前記第１〜第３のずらしベクトルの各ずらしベクトルの間のなす角が１２０度となるように各フレーム用の前記第１〜第３のずらしベクトルを設定することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間における仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム（カーゲーム）を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（ステアリング、シフトレバー、アクセスペダル、ブレーキペダル等）を用いてプレーヤ移動体（車、バイク等のプレーヤオブジェクト）を操作し、コンピュータや他のプレーヤが操作する敵移動体（車、バイク等の敵オブジェクト）と競争することでゲームを楽しむ。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感を向上するために、より高品質な画像を生成することが望まれている。ところが、何ら工夫を行わずにレンダリング（描画）を行うと、画面に表示されるポリゴンの縁にジャギーが発生してしまうという問題がある。特に、垂直あるいは水平に近い角度で表示されるポリゴンでは、このジャギーが非常に目立ってしまい、高品質な画像を生成することが難しい。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上記事情に鑑みてなされたものであり、その目的は、比較的少ない処理負荷でジャギーを除去できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、画像を生成するための画像生成システムであって、オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に９０度回転させた方向に設定するずらしベクトル設定部と、前記第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、前記第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部と、を含み、前記ずらしベクトル設定部が、前記第１のずらしベクトルに対する前記第２のずらしベクトルのなす角が１８０度となるように各フレーム用の前記第１及び第２のずらしベクトルを設定する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータにより読取可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００６】
本発明によれば、第１及び第２のずらし画像を合成することによって、オブジェクトを本来の描画位置に描画した場合の描画ピクセルに周辺ピクセルの色情報が付加される。そして、第１及び第２のずらしベクトルは、互いに１８０度異なる方向成分を有しており、各ベクトルはフレーム更新ごとに９０度回転させた方向に設定されることによって、２フレームにわたるフレーム画像によって、視覚の残像効果を利用してジャギーを除去したように見える映像を提供することができる。このため、１フレーム内での処理負荷をあまり増やさずにジャギー対策を施すことができる。
【０００７】
（２）また本発明は、画像を生成するための画像生成システムであって、オブジェクトの描画位置をずらすための第１及び第２のずらしベクトルをフレーム更新毎に６０度あるいは１２０度回転させた方向に設定するずらしベクトル設定部と、前記第１及び第２のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１及び第２のずらし画像を生成し、前記第１及び第２のずらし画像をα合成してフレーム画像を生成する画像生成部と、を含み、前記ずらしベクトル設定部が、前記第１ずらしベクトルに対する前記第２のずらしベクトルのなす角が１８０度となるように各フレーム用の前記第１及び第２のずらしベクトルを設定する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータにより読取可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００８】
本発明によれば、第１及び第２のずらし画像を合成することによって、オブジェクトを本来の描画位置に描画した場合の描画ピクセルに周辺ピクセルの色情報が付加される。そして、第１及び第２のずらしベクトルは、互いに１８０度異なる方向成分を有しており、各ベクトルはフレーム更新ごとに６０度あるいは１２０度回転させた方向に設定されることによって、３フレームにわたるフレーム画像によって、視覚の残像効果を利用してジャギーを除去したように見える映像を提供することができる。このため、１フレーム内での処理負荷をあまり増やさずにジャギー対策を施すことができる。
【０００９】
（３）また本発明は、画像を生成するための画像生成システムであって、オブジェクトの描画位置をずらすための第１〜第３のずらしベクトルをフレーム更新毎に６０度あるいは１８０回転させた方向に設定するずらしベクトル設定部と、前記第１〜第３のずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１〜第３のずらし画像を生成し、前記第１〜第３のずらし画像をα合成してフレーム画像を生成する画像生成部と、を含み、前記ずらしベクトル設定部が、前記第１〜第３のずらしベクトルの各ずらしベクトルの間のなす角が１２０度となるように各フレーム用の前記第１〜第３のずらしベクトルを設定する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータにより読取可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１０】
本発明によれば、第１〜第３のずらし画像を合成することによって、オブジェクトを本来の描画位置に描画した場合の描画ピクセルに周辺ピクセルの色情報が付加される。そして、第１〜第３のずらしベクトルは、互いに１２０度異なる方向成分を有しており、各ベクトルはフレーム更新ごとに６０度あるいは１８０度回転させた方向に設定されることによって、２フレームにわたるフレーム画像によって、視覚の残像効果を利用してジャギーを除去したように見える映像を提供することができる。このため、１フレーム内での処理負荷をあまり増やさずにジャギー対策を施すことができる。
【００１１】
（４）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記ずらしベクトル設定部が、前記描画位置のずらし量が０．５ピクセル未満となるように、前記各ずらしベクトルの大きさを設定するようにしてもよい。このようにすれば、各ずらし画像によってフレーム画像の描画ピクセルに付加される周辺ピクセルの色情報が重複することがないため、処理の無駄を減らして効率の良いジャギー対策を行うことができる。
【００１２】
（５）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記ずらしベクトル設定部が、前記各ずらし画像における前記描画位置のずらし量が互いに異なるように、前記各ずらしベクトルの大きさを設定するようにしてもよい。このようにすれば、オブジェクトを本来の描画位置に描画した場合の描画ピクセルの本来の色情報の比重を周辺ピクセルの色情報の比重よりも高めることができ、本来の画像情報の喪失を防ぐことができる。
【００１３】
（６）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記描画位置をずらさずに前記オブジェクトを描画した非ずらし画像を生成し、その非ずらし画像と前記各ずらし画像とをα合成してフレーム画像を生成するようにしてもよい。このようにすれば、オブジェクトを本来の描画位置に描画した場合の描画ピクセルの本来の色情報の比重を周辺ピクセルの色情報の比重よりも高めることができ、本来の画像情報の喪失を防ぐことができる。
【００１４】
（７）また本発明の画像生成システムでは、前記各ずらし画像をα合成してフレーム画像を生成する第１の描画モードと、前記オブジェクトの描画位置をずらさずにフレーム画像を生成する第２の描画モードとを処理負荷に応じて切り替える描画モード切り替え部を含んでいてもよい。また本発明のプログラム及び情報記憶媒体では、上記モード切り替え部としてコンピュータを機能させるようにしてもよい。例えば、処理負荷が軽いときには第１のモードでフレーム画像の生成処理を行い、処理負荷が重いときには第２のモードでフレーム画像の生成処理を行うことができる。このようにすれば、システム全体の処理負荷が大きくなった場合に、フレーム画像の生成がフレーム更新に間に合わないような事態を防止することができる。
【００１５】
（８）また本発明は、画像を生成するための画像生成システムであって、オブジェクトの描画位置をずらすための第１〜第Ｌ（Ｌ≧２）のフレーム用の第１〜第Ｎ（Ｎ≧２）のずらしベクトルをフレーム更新毎に３６０／（Ｌ×Ｎ）度回転させた方向に設定するずらしベクトル設定部と、前記第１〜第Ｎのずらしベクトルの方向にずらした描画位置に前記オブジェクトを描画して第１〜第Ｎのずらし画像を生成し、前記第１〜第Ｎのずらし画像をα合成して第１〜第Ｌのフレーム用のフレーム画像を生成する画像生成部と、を含み、前記ずらしベクトル設定部が、第Ｍ（１≦Ｍ≦Ｎ−１）のずらしベクトルに対する第Ｍ＋１のずらしベクトルのなす角が３６０／Ｎ度となるように第１〜第Ｌフレーム用の前記第１〜第Ｎのずらしベクトルを設定する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータにより読取可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１６】
本発明によれば、第１〜第Ｎのずらし画像を合成することによって、オブジェクトを本来の描画位置に描画した場合の描画ピクセルに周辺ピクセルの色情報が付加される。そして、第１〜第Ｎのずらしベクトルは、第Ｋ（１≦Ｋ≦Ｎ−１）のずらしベクトルに対する第Ｋ＋１のずらしベクトルのなす角が３６０／Ｎ度異なる方向成分を有しており、各ベクトルはフレーム更新ごとに３６０／（Ｌ×Ｎ）度回転させた方向に設定されることによって、Ｌフレームにわたるフレーム画像によって、視覚の残像効果を利用してジャギーを除去したように見える映像を提供することができる。このため、１フレーム内での処理負荷をあまり増やさずにジャギー対策を施すことができる。
【発明を実施するための最良の形態】
【００１７】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１８】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１９】
操作部１６０は、プレーヤがプレーヤオブジェクト（プレーヤが操作するプレーヤキャラクタ）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２２】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２３】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２５】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、ずらしベクトル設定部１１６、描画モード切り替え部１１８、画像生成部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２６】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種モデルオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でモデルオブジェクトを配置する。モデルオブジェクトを定義するモデルデータは、モデルデータ記憶部１７６に記憶されている。
【００２７】
移動・動作処理部１１２は、モデルオブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルオブジェクトをオブジェクト空間内で移動させたり、モデルオブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、モデルオブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、モデルオブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２８】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００２９】
例えば仮想カメラによりモデルオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３０】
ずらしベクトル設定部１１６は、オブジェクトの描画位置をずらすための第１〜第Ｌ（Ｌ≧２）のフレーム用の第１〜第Ｎ（Ｎ≧２）のずらしベクトルをフレーム更新毎に３６０／（Ｌ×Ｎ）度回転させた方向に設定する。第Ｍ（１≦Ｍ≦Ｎ−１）のずらしベクトルに対する第Ｍ＋１のずらしベクトルのなす角が３６０／Ｎ度となるように第１〜第Ｌフレーム用の前記第１〜第Ｎのずらしベクトルを設定する。すなわち、第１のずらしベクトルと第２のずらしベクトルとのなす角、第２のずらしベクトルと第３のずらしベクトルとのなす角、・・・、第Ｎ−１のずらしベクトルと第Ｎのずらしベクトルとのなす角が、それぞれ３６０／Ｎ度に設定される。すなわち、ずらしベクトル設定部１１６は、Ｎ個のずらしベクトルが３６０／Ｎ度ずつ異なる向きに設定されたＮ個のずらしベクトルを、Ｌフレームを１周期としてフレーム更新ごとに異なる向きに設定する。
【００３１】
例えば、第１及び第２のずらしベクトルをフレーム更新毎に９０度回転させた方向に設定するようにしてもよい。このとき、第１のずらしベクトルに対する第２のずらしベクトルのなす角が１８０度となるように各フレーム用の第１及び第２のずらしベクトルを設定することができる。この場合、２フレームで１周期となる。
【００３２】
また例えば、第１及び第２のずらしベクトルをフレーム更新毎に６０度あるいは１２０度回転させた方向に設定するようにしてもよい。このとき、第１ずらしベクトルに対する第２のずらしベクトルのなす角が１８０度となるように各フレーム用の第１及び第２のずらしベクトルを設定することができる。この場合、３フレームで１周期となる。
【００３３】
また例えば、第１〜第３のずらしベクトルをフレーム更新毎に６０度あるいは１８０回転させた方向に設定するようにしてもよい。このとき、第１〜第３のずらしベクトルの各ずらしベクトルの間のなす角が１２０度となるように各フレーム用の第１〜第３のずらしベクトルを設定することができる。この場合、２フレームで１周期となる。
【００３４】
またずらしベクトル設定部１１６は、描画位置のずらし量が０．５ピクセル未満となるように、第１〜第Ｎのずらしベクトルの大きさを設定する。これにより処理の無駄を省いて、効率のよいジャギー対策を行うことができる。
【００３５】
またずらしベクトル設定部１１６は、第１〜第Ｎのずらし画像における描画位置のずらし量が互いに異なるように、第１〜第Ｎのずらしベクトルの大きさを設定する。これにより本来の描画位置に描画された場合のピクセルの画像情報の喪失を防ぐことができ、ジャギーが除去された高品質の画像を生成することができる。
【００３６】
描画モード切り替え部１１８は、第１〜第Ｎのずらし画像をα合成してフレーム画像を生成する第１の描画モードと、オブジェクトの描画位置をずらさずにフレーム画像を生成する第２の描画モードとを処理負荷に応じて切り替える。すなわち第１の描画モードでは、ジャギーを除去するための処理が行われ、第２の描画モードでは、オブジェクトを本来の描画位置に描画した非ずらし画像をフレーム画像として生成する。処理負荷としては、例えば、描画対象となるポリゴンの数、１フレームにおける描画面積、演算頂点数などの描画処理負荷やオブジェクトの移動・動作シミュレーション量などのゲーム演算処理負荷等が挙げられる。描画モードの切り替え処理は、描画処理に至る前の処理負荷（例えば、シミュレーション処理負荷）に応じて行われてもよいし、描画処理を含めた１フレーム内での総処理負荷を予測演算して、その総処理負荷に応じて行うようにしてもよい。
【００３７】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視投影変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（オブジェクトデータ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数のプリミティブ）を描画バッファ１７４（フレームバッファや中間バッファ（ワークバッファ）などのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように描画処理を行う。
【００３８】
画像生成部１２０は、描画処理として、例えば、ジオメトリ処理、テクスチャマッピング、αブレンディング（α合成）、陰面消去処理等を行う。
【００３９】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００４０】
テクスチャマッピングは、テクスチャ記憶部１７６に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７６からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００４１】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば通常αブレンディングの場合には下式（１）〜（３）の処理が行われる。
【００４２】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理が行われる。
【００４３】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理が行われる。
【００４４】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７４に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７４に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７８（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７８に格納されるＺ値を参照する。そして参照されたＺバッファ１７８のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７８のＺ値を新たなＺ値に更新する。
【００４６】
そして本実施形態では、画像生成部１２０が、第１〜第Ｎのずらしベクトルの方向にずらした描画位置にオブジェクトを描画して第１〜第Ｎのずらし画像を生成し、第１〜第Ｎのずらし画像をα合成することによりフレーム画像を生成する。すなわち、ずらしベクトル設定部１１６によって設定されたずらしベクトルに対応する数のずらし画像を生成し、各ずらし画像のα値を１／Ｎとしてα合成することによりフレーム画像を生成する。また画像生成部１２０は、描画位置をずらさずにオブジェクトを描画した非ずらし画像を生成することもできる。このとき、第１〜第Ｎのずらし画像と非ずらし画像とをα合成することによりフレーム画像を生成してもよい。このときの各画像のα値は１／（Ｎ＋１）に設定して均等に割り振ってもよいし、ずらし画像と非ずらし画像のα値配分を変えてもよい。また画像生成部１２０は、第１の描画モードが選択された場合、ずらし画像を生成し、第２の描画モードが選択された場合、非ずらし画像をフレーム画像として生成する。
【００４７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４８】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４９】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００５０】
本実施形態では、オブジェクトの描画位置をずらして描画処理を行ったずらし画像を１フレーム内で複数枚作成し、これらをα合成することによって、ジャギーが除去されたフレーム画像を生成する手法を採用する。
【００５１】
仮想カメラから見える画像を生成する場合には、まず図２に示すように、カメラ座標系（視点座標系）に設定される前方クリップ面と後方クリップ面との間のビューボリューム内に配置されるオブジェクトが描画対象となる。この描画対象のオブジェクトがビューボリューム内に設定される投影面（スクリーン面）に透視投影されるのだが、本実施形態の手法では、この投影面に設定される描画中心（広義には、基準点）をずらしベクトルの大きさに応じたずらし量だけずらすことで、描画対象のオブジェクトの描画位置（描画座標）を変更してずらし画像を生成する。なお、ずらしベクトルによって、その位置（座標）が変更されるのは、投影面の描画中心に限らず、任意の点とすることができる。例えば、４角のいずれかの点であってもよい。
【００５２】
そして、１フレーム内では、複数の異なる方向に設定されたずらしベクトルに基づいて、描画位置をずらした複数枚のずらし画像を作成する。これらをずらし画像の作成枚数（生成枚数）に応じたα値でα合成することで、ジャギーを除去したフレーム画像を生成することができるようになる。すなわち、本来の描画中心においてオブジェクトを描画した場合の描画ピクセルに対して、その周辺ピクセルの画像情報がピクセル補間により取り込まれることによって、ジャギー発生箇所の周辺の色差をなだらかに変化させて、ジャギーを除去することができる。
【００５３】
なお、ずらしベクトルの大きさに相当する投影面の描画中心のずらし量、すなわちオブジェクトの描画位置のずらし量は、０．５ピクセル未満となるように、ずらしベクトルを設定しておくことが好ましい。ずらし量が０．５ピクセル以上になると、１フレーム内において生成される複数のずらし画像の間で、フレーム画像の描画ピクセルに取り込まれる周辺ピクセルの画像情報が重複しやすくなり、α合成による線形補間の効果が十分に発揮されない。またずらし量が大きくなると、画像のぼかし効果が必要以上に強く働いて、本来得ようとしている画像と違ったものが生成されてしまう可能性もある。従って、描画位置のずらし量を０．５ピクセル未満とするようにずらしベクトルを設定しておくことで、処理の無駄を省き、効率よく周辺ピクセルの情報を付加することができるようになる。なお、描画位置のずらし量を０．５ピクセル以上としても本実施形態の手法を適用することができ、この場合であっても一定のジャギー除去効果が得られることはいうまでもない。
【００５４】
また１フレーム内で設定される複数のずらしベクトルは、互いにその大きさが異なっていてもよい。言い換えれば、各フレームにおいてα合成される複数のずらし画像のそれぞれにおいて、描画位置のずらし量が異なっていてもよい。このようにすれば、描画ピクセルの本来の画像情報の喪失を防ぎ、高品質な画像を生成することができる。
【００５５】
また本実施形態のジャギー除去手法では、描画位置をずらすためのずらしベクトルの設定方向は、毎フレーム同じ方向ではなく、フレーム更新毎に周期的に異なる方向に設定されるようにする。このようにすることで、様々な方向に配置されるポリゴンの縁部によって発生するジャギーを効果的に除去することができる。なお、ずらしベクトルの方向は、周期的に設定されなくてもジャギー除去に関して一定の効果を得ることができる。
【００５６】
例えば、図３に示すように、２フレームで１周期となるようにする場合には、以下のようにして各フレーム用のフレーム画像を生成することができる。１フレーム目（広義には、奇数フレームあるいは２Ｋ−１（Ｋ≧１）フレーム）では、左上方向及び右下方向に描画位置を変更する第１及び第２のずらしベクトルＶ１１，Ｖ２１を設定して第１及び第２のずらし画像Ｐ１１，Ｐ２１を生成し、これらのα値を１／２としてα合成して１フレーム目のフレーム画像を生成する。２フレーム目（広義には、偶数フレームあるいは２Ｋフレーム）では、右上方向及び左下方向に描画位置を変更する第１及び第２のずらしベクトルＶ１２，Ｖ２２を設定して第１及び第２のずらし画像Ｐ１２，Ｐ２２（第１及び第２のずらし画像）を生成し、これらのα値を１／２としてα合成して２フレーム目のフレーム画像を生成する。３フレーム目以降では、上述した１フレーム目及び２フレーム目で行った各ずらし画像の生成処理及び各ずらし画像のα合成処理を繰り返し行うことで各フレーム用のフレーム画像を生成することができる。
【００５７】
なお図３に示す例では、各フレームにおいて、２つのずらしベクトル（第１及び第２のずらしベクトル）は、Ｙ軸の正方向または負方向に対して４５度傾いた方向であって、かつ互いに１８０度異なる方向に設定され、さらに各ずらしベクトル（第１及び第２のずらしベクトル）は、その方向がフレーム更新毎に９０度回転させた方向に設定される。
【００５８】
具体的には、図４に示すようにして１フレーム目用の第１及び第２のずらしベクトルＶ１１，Ｖ２１および２フレーム目用の第１及び第２のずらしベクトルＶ１２，Ｖ２２を設定することができる。各フレームでは、まず始めに、Ｙ軸の正方向から４５度回転させた向きに基準ベクトルＶ０を設定する。この基準ベクトルＶ０を基準として、各フレーム用のずらしベクトルを設定する。
【００５９】
そして、１フレーム目（広義には、奇数フレームあるいは２Ｋ−１フレーム）では、基準ベクトルＶ０を右回り（時計回り、あるいはＹ軸の正方向からＸ軸の正方向へ向かう方向）に９０度回転させた方向に第１のずらしベクトルＶ１１を設定する。次に、第１のずらしベクトルＶ１１を右回りに１８０度回転させた方向に第２のずらしベクトルＶ２１を設定する。
【００６０】
次に、２フレーム目（広義には、偶数フレームあるは２Ｋフレーム）では、基準ベクトルＶ０を右回りに１８０度（２＊９０度）回転させた方向に第１のずらしベクトルＶ１２を設定する。次に、第１のずらしベクトルＶ１２をさらに右回りに１８０度回転させた方向に第２のずらしベクトルＶ２２を設定する。３フレーム目以降では、１フレーム目及び２フレーム目で行った処理を繰り返して各フレーム用のずらしベクトルの設定を行う。
【００６１】
また各フレーム用のフレーム画像は、例えば、図５に示すように、３フレームで１周期となるようにする場合であっても、本実施形態の手法を適用して生成することができる。まず、１フレーム目（広義には、３Ｋ−２（Ｋ≧１）フレーム）では、左下方向及び右上方向に描画位置を変更する第１及び第２のずらしベクトルＶ１１，Ｖ１２を設定して第１及び第２のずらし画像Ｐ１１，Ｐ１２を生成し、これらのα値を１／２としてα合成して１フレーム目のフレーム画像を生成する。２フレーム目（広義には、３Ｋ−１フレーム）では、右下方向及び左上方向に描画位置を変更する第１及び第２のずらしベクトルＶ１２，Ｖ２２を設定して第１及び第２のずらし画像Ｐ１２，Ｐ２２を生成し、これらのα値を１／２としてα合成して２フレーム目のフレーム画像を生成する。３フレーム目（広義には、３Ｋフレームでは、下方向及び上方向に描画位置を変更する第１及び第２のずらしベクトルＶ１３，Ｖ２３を設定して第１及び第２のずらし画像Ｐ１３，Ｐ２３を生成し、これらのα値を１／２としてα合成して３フレーム目のフレーム画像を生成する。そして、４フレーム目以降では、上述した１フレーム目〜３フレーム目で行った各ずらし画像の生成処理及び各ずらし画像のα合成処理を繰返し行うことで各フレーム用のフレーム画像を生成することができる。
【００６２】
なお図５に示す例では、各フレームにおいて設定される２つのずらしベクトル（第１及び第２のずらしベクトル）は、Ｙ軸の正方向または負方向に沿った方向、もしくはＹ軸の正方向または負方向に対して６０度傾いた方向であって、かつ互いに１８０度異なる方向に設定され、さらに各ずらしベクトル（第１及び第２のずらしベクトル）は、その方向がフレーム更新毎に６０度あるいは１２０度回転させた方向に設定される。
【００６３】
具体的には、図６に示すようにして１フレーム目用の第１及び第２のずらしベクトルＶ１１，Ｖ２１、２フレーム目用の第１及び第２のずらしベクトルＶ１２，Ｖ２２、及び３フレーム目用の第１及び第２のずらしベクトルＶ１３，Ｖ２３を設定することができる。各フレームでは、まず始めに、Ｙ軸の正方向に向いた基準ベクトルＶ０を設定する。この基準ベクトルＶ０を基準として、各フレーム用のずらしベクトルを設定する。
【００６４】
そして、１フレーム目（広義には、３Ｋ−２フレーム）では、基準ベクトルＶ０を右回り（時計回り、あるいはＹ軸の正方向からＸ軸の正方向へ向かう方向）に６０度回転させた方向に第１のずらしベクトルＶ１１を設定する。次に、第１のずらしベクトルＶ１１を右回りに１８０度回転させた方向に第２のずらしベクトルＶ２１を設定する。
【００６５】
次に、２フレーム目（広義には、３Ｋ−１フレーム）では、基準ベクトルＶ０を右回りに１２０度（２＊６０度）回転させた方向に第１のずらしベクトルＶ１２を設定する。次に、第１のずらしベクトルＶ１２をさらに右回りに１８０度回転させた方向に第２のずらしベクトルＶ２２を設定する。
【００６６】
次に、３フレーム目（広義には、３Ｋフレーム）では、基準ベクトルＶ０を右回りに１８０度（３＊６０度）回転させた方向に第１のずらしベクトルＶ１２を設定する。次に、第１のずらしベクトルＶ１２をさらに右回りに１８０度回転させた方向に第２のずらしベクトルＶ２２を設定する。４フレーム目以降では、１フレーム目〜３フレーム目で行った処理を繰り返して各フレーム用のずらしベクトルの設定を行う。
【００６７】
また図３及び図５では、１フレーム内で２枚のずらし画像を作成する例を紹介したが、１フレーム内で３枚以上のずらし画像を作成してもよい。例えば、２フレームを１周期として各フレームで３枚のずらし画像を作成する場合を図７に示す。
【００６８】
まず１フレーム目（広義には、奇数フレームあるいは２Ｋ−１フレーム）では、右下方向に描画位置を変更する第１のずらしベクトルＶ１１を設定して第１のずらし画像Ｐ１１を生成する。また左下方向に描画位置を変更する第２のずらしベクトルＶ２１を設定して第２のずらし画像Ｐ２１を生成する。また上方向に描画位置を変更する第３のずらしベクトルＶ３１を設定して第３のずらし画像Ｐ３１を生成する。そして、第１〜第３のずらし画像Ｐ１１，Ｐ２１，Ｐ３１を、それぞれのα値を１／３としてα合成して１フレーム目用のフレーム画像を生成することができる。
【００６９】
次に２フレーム目（広義には、偶数フレームあるいは２Ｋフレーム）では、下方向に描画位置を変更する第１のずらしベクトルＶ１２を設定して第１のずらし画像Ｐ１２を生成する。また左上方向に描画位置を変更する第２のずらしベクトルＶ２２を設定して第２のずらし画像Ｐ２２を生成する。また右上方向に描画位置を変更する第３のずらしベクトルＶ３２を設定して第３のずらし画像Ｐ３２を生成する。そして、第１〜第３のずらし画像Ｐ１２，Ｐ２２，Ｐ３２を、それぞれのα値を１／３としてα合成して２フレーム目用のフレーム画像を生成することができる。
【００７０】
なお図７に示す例では、各フレームにおいて設定される３つのずらしベクトル（第１〜第３のずらしベクトル）は、Ｙ軸の正方向または負方向に沿った方向、もしくはＹ軸の正方向または負方向に対して６０度傾いた方向であって、かつ互いのなす角が１２０度となる方向に設定され、さらに各ずらしベクトル（第１〜第３のずらしベクトル）は、その方向がフレーム更新毎に６０度あるいは１２０度回転させた方向に設定される。
【００７１】
具体的には、図８に示すようにして１フレーム目用の第１〜第３のずらしベクトルＶ１１，Ｖ２１，Ｖ３１及び２フレーム目用の第１〜第３のずらしベクトルＶ１２，Ｖ２２，Ｖ３２を設定することができる。各フレームでは、まず始めに、Ｙ軸の正方向から６０度回転させた向きに基準ベクトルＶ０を設定する。この基準ベクトルＶ０を基準として、各フレーム用のずらしベクトルを設定する。
【００７２】
そして、１フレーム目（広義には、２Ｋ−１フレーム）では、基準ベクトルＶ０を右回り（時計回り、あるいはＹ軸の正方向からＸ軸の正方向へ向かう方向）に６０度回転させた方向に第１のずらしベクトルＶ１１を設定する。次に、第１のずらしベクトルＶ１１を右回りに１２０度（３６０／３度）回転させた方向に第２のずらしベクトルＶ２１を設定する。次に、第２のずらしベクトルＶ２１を右回りに１２０度（３６０／３度）回転させた方向に第３のずらしベクトルＶ３１を設定する。
【００７３】
次に、２フレーム目（広義には、２Ｋフレーム）では、基準ベクトルＶ０を右回りに１２０度（２＊６０度）回転させた方向に第１のずらしベクトルＶ１２を設定する。次に、第１のずらしベクトルＶ１２をさらに右回りに１２０度（３６０／３度）回転させた方向に第２のずらしベクトルＶ２２を設定する。次に、第２のずらしベクトルＶ２２を右回りに１２０度（３６０度／３度）回転させた方向に第３のずらしベクトルＶ３２を設定する。３フレーム目以降では、１フレーム目及び２フレーム目で行った処理を繰り返して各フレーム用のずらしベクトルの設定を行う。
【００７４】
なお上述したものと異なる場合であっても本実施形態のジャギー除去手法は実現できる。例えば、４フレームで１周期となるようにしてもよい。この場合、フレーム更新毎に４５度ずつ回転させた向きに第１〜第４のずらしベクトルを設定し、第１〜第４のずらしベクトルは、第１のずらしベクトルと第２のずらしベクトルのなす角、第２のずらしベクトルと第３のずらしベクトルのなす角、および第３のずらしベクトルと第４のずらしベクトルとのなす角が、それぞれ９０度となるように設定することができる。
【００７５】
次に、図９〜図１１を用いて、本実施形態のジャギー除去手法の具体的な効果を説明する。まず図９（Ａ）に示す場合が、オブジェクトの描画位置をずらさずに描画した場合であるとする。図９（Ａ）に示す画像では、階段状のジャギーが発生している。図９（Ｂ）では、描画位置を左上方向に約１／３ピクセルずらして描画した第１のずらし画像が示されている。図９（Ｃ）では、描画位置を右下方向に約１／３ピクセルずらして描画した第２のずらし画像が示されている。そして第１及び第２のずらし画像をα値を１／２として合成したフレーム画像を図９（Ｄ）に示す。図９（Ｄ）に示したフレーム画像では、ジャギー発生箇所の周辺において色差が軽減されており、ジャギーが見えにくいようになっていることがわかる。そして図９（Ａ）〜図９（Ｃ）に示す画像をαを１／３としてα合成した画像を図９（Ｅ）に示す。このように本来の描画位置にオブジェクトを描画した画像をずらし画像に加えてα合成すると、本来の描画位置にオブジェクトを描画した場合の描画ピクセルの画像情報を多く取り込むことができるようになる。
【００７６】
また本実施形態の手法では、フレーム更新ごとにずらしベクトルの設定方向を異なる方向に変化させている。これは、図１０（Ａ）に示すように、図９（Ａ）に示す場合と、ジャギーの発生する方向が異なっている場合に有効である。例えば、ずらしベクトルの設定方向が固定されていると、図１０（Ｂ）に示すように、描画位置を左上方向に約１／３ピクセルずらしても、図１０（Ｃ）に示すように、描画位置を右下方向に約１／３ピクセルずらしても、オブジェクトの描画位置がほとんど変動しないことから、これらをα合成してもジャギー除去の効果が得られない。
【００７７】
一方で、前のフレームでは、左上方向及び右下方向に描画位置を変更するように設定されていたずらしベクトルを、フレーム更新に伴って右上方向及び左下方向に描画位置を変更するように設定したとすると、図１１（Ａ）に示すようなジャギーが発生している場合には、描画位置を右上方向に約１／３ピクセルずらすことによって図１１（Ｂ）に示すような第１のずらし画像が得られ、描画位置を左下方向に約１／３ピクセルずらすことによって図１１（Ｃ）に示すような第２のずらし画像が得られる。そして、第１及び第２のずらし画像をα値を１／２としてα合成すると、図９（Ｄ）に示した場合と同様に、ジャギー発生箇所の周辺において色差が軽減されたジャギーの見えにくいフレーム画像が生成される。また、図１１（Ａ）に示す本来の描画位置にオブジェクトを描画した画像を加えて、フレーム画像を生成すれば、図１１（Ｅ）に示すように本来の描画位置にオブジェクトを描画した場合の描画ピクセルの画像情報を多く取り込むことができるようになる。
【００７８】
このように本実施形態の手法では、２画面分、あるいは３画面分以上のずらし画像の描画処理を１フレーム内で行い、これらの画像をα合成する。そして複数のずらし画像において投影面の描画中心を対称にずらしたずらし画面群を合成することで、フレーム画像のピクセルの画像情報が、各ずらし画像のピクセルの平均の画像情報を持つようになる。さらに本実施形態の手法では、フレーム更新毎にずらしベクトルによって描画中心をずらす方向を変化させている。これにより、２倍あるいはそれ以上の処理負荷が必要になるが、フレーム間にまたがって４倍あるいはそれ以上の画像情報を含ませた映像表現が可能となる。
【００７９】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１２〜図１４のフローチャートを用いて説明する。
【００８０】
図１２は、２枚のずらし画像をα合成してフレーム画像を生成し、２フレームを１周期としてジャギー除去を行う場合のフローチャートである。
【００８１】
まず、累積フレーム数Ｌを初期化（Ｌ＝０）する（ステップＳ１００）。次に、ゲーム演算処理を行う（ステップＳ１０１）すなわち、オブジェクトの配置設定、移動・動作シミュレーション、仮想カメラ制御等を行う。次に、垂直帰線期間となったか否かを判断する（ステップＳ１０２）。すなわち、フレーム更新のタイミングであるかどうかを判断する。垂直帰線期間であると判断された場合には（ステップＳ１０２でＹ）、描画バッファと表示バッファとを切り替える（ステップＳ１０３）。すなわち、描画バッファに描画されたフレーム画像を表示部に出力し、表示バッファを描画バッファに切り替えて、次のフレーム用のフレーム画像の描画処理を行う準備をする。
【００８２】
次に、基準ベクトルＶ０をＹ軸から４５度だけＸ軸方向に回転させた向きに設定する（ステップＳ１０４）。そして、基準ベクトルＶ０をＬ＊９０度だけさらに回転させた向きのベクトルをずらしベクトルＶ１１（Ｖ２１）として設定する（ステップＳ１０５）。奇数フレームでは基準ベクトルＶ０を９０度回転させた向きのベクトルがずらしベクトルＶ１１として設定される。偶数フレームでは基準ベクトルＶ０を１８０度回転させた向きのベクトルがずらしベクトルＶ１２として設定される。
【００８３】
次に、累積フレーム数Ｌをインクリメントする（ステップＳ１０６）。すなわち累積フレーム数カウンタの値に１を加える処理（Ｌ＝Ｌ＋１）を行う。次に、累積フレーム数Ｌが２に達したかどうかを判断する（ステップＳ１０７）。すなわち、１周期が終了したかどうかを判断する。ここで累積フレーム数Ｌが２である場合（ステップＳ１０７でＹ）、すなわち偶数フレームである場合には、累積フレーム数Ｌを初期化（Ｌ＝０）してから（ステップＳ１０８）、描画バッファをクリアする（ステップＳ１０９）。一方で、累積フレーム数Ｌが２でない場合（ステップＳ１０７でＮ）、すなわち奇数フレームである場合には、ステップＳ１０９に移る。
【００８４】
次に、ずらし画像生成数Ｍを初期化（Ｍ＝０）する（ステップＳ１１０）。次に、スクリーン（投影面）の描画中心（基準座標）をずらしベクトルに応じて変更してオブジェクトを描画することによりずらし画像を生成する（ステップＳ１１１）。そして、ずらし画像をα値を１／２として、描画バッファに合成する（ステップＳ１１２）。次に、ずらしベクトルを１８０度回転させた向きに設定し（ステップＳ１１３）、ずらし画像生成数Ｍをインクリメント（Ｍ＝Ｍ＋１）する（ステップＳ１１４）。そして、ずらし画像生成数Ｍが２に達したかどうかを判断する（ステップＳ１１５）。Ｍ＝２でなければ（ステップＳ１１５でＮ）、ステップＳ１１１からステップＳ１１４までの処理を繰り返し行う。Ｍ＝２となった場合には（ステップＳ１１５でＹ）、次のフレームの処理に移る（ステップＳ１０１へ）。
【００８５】
図１３は、２枚のずらし画像をα合成してフレーム画像を生成し、３フレームを１周期としてジャギー除去を行う場合のフローチャートである。
【００８６】
まず、累積フレーム数Ｌを初期化（Ｌ＝０）する（ステップＳ２００）。次に、ゲーム演算処理を行う（ステップＳ２０１）。次に、垂直帰線期間となったか否かを判断する（ステップＳ２０２）。垂直帰線期間であると判断された場合には（ステップＳ２０２でＹ）、描画バッファと表示バッファとを切り替える（ステップＳ２０３）。
【００８７】
次に、基準ベクトルＶ０をＹ軸に沿った向きに設定する（ステップＳ２０４）。そして、基準ベクトルＶ０をＬ＊６０度だけさらに回転させた向きのベクトルをずらしベクトルＶ１１（Ｖ１２，Ｖ１３）として設定する（ステップＳ２０５）。３Ｋ−２フレームでは基準ベクトルＶ０を６０度回転させた向きのベクトルがずらしベクトルＶ１１として設定される。３Ｋ−１フレームでは基準ベクトルＶ０を１２０度回転させた向きのベクトルがずらしベクトルＶ１２として設定される。３Ｋフレームでは基準ベクトルＶ０を１８０度回転させた向きのベクトルがずらしベクトルＶ１３として設定される。
【００８８】
次に、累積フレーム数Ｌをインクリメント（Ｌ＝Ｌ＋１）する（ステップＳ２０６）。次に、累積フレーム数Ｌが３に達したかどうかを判断する（ステップＳ２０７）。すなわち、１周期が終了したかどうかを判断する。ここで累積フレーム数Ｌが３である場合（ステップＳ２０７でＹ）、すなわち３Ｋフレームである場合には、累積フレーム数Ｌを初期化（Ｌ＝０）してから（ステップＳ２０８）、描画バッファをクリアする（ステップＳ２０９）。一方で、累積フレーム数Ｌが３でない場合（ステップＳ２０７でＮ）、すなわち３Ｋ−２フレームあるいは３Ｋ−１フレームである場合には、ステップＳ２０９に移る。
【００８９】
次に、ずらし画像生成数Ｍを初期化（Ｍ＝０）する（ステップＳ２１０）。次に、スクリーン（投影面）の描画中心（基準座標）をずらしベクトルに応じて変更してオブジェクトを描画することによりずらし画像を生成する（ステップＳ２１１）。そして、ずらし画像をα値を１／３として、描画バッファに合成する（ステップＳ２１２）。次に、ずらしベクトルを１８０度回転させた向きに設定し（ステップＳ２１３）、ずらし画像生成数Ｍをインクリメント（Ｍ＝Ｍ＋１）する（ステップＳ２１４）。そして、ずらし画像生成数Ｍが２に達したかどうかを判断する（ステップＳ２１５）。Ｍ＝２でなければ（ステップＳ２１５でＮ）、ステップＳ２１１からステップＳ２１４までの処理を繰り返し行う。Ｍ＝２となった場合には（ステップＳ２１５でＹ）、次のフレームの処理に移る（ステップＳ２０１へ）。
【００９０】
図１４は、Ｎ枚のずらし画像をα合成してフレーム画像を生成し、Ｋフレームを１周期としてジャギー除去を行う場合のフローチャートである。
【００９１】
まず、累積フレーム数Ｌを初期化（Ｌ＝０）する（ステップＳ３００）。次に、ゲーム演算処理を行う（ステップＳ３０１）。次に、垂直帰線期間となったか否かを判断する（ステップＳ３０２）。垂直帰線期間であると判断された場合には（ステップＳ３０２でＹ）、描画バッファと表示バッファとを切り替える（ステップＳ３０３）。
【００９２】
次に、基準ベクトルＶ０をＹ軸からＸ軸方向に１８０／（Ｎ＊Ｋ）度だけ回転させた向きに設定する（ステップＳ３０４）。そして、基準ベクトルＶ０を（Ｌ＊３６０）／（Ｎ＊Ｋ）度だけさらに回転させた向きのベクトルを１フレーム目用のずらしベクトルＶ１１として設定する（ステップＳ３０５）。同様にして、２フレーム目〜Ｋフレーム目用のずらしベクトルＶ１２〜Ｖ１Ｋを設定することができる。
【００９３】
次に、累積フレーム数Ｌをインクリメント（Ｌ＝Ｌ＋１）する（ステップＳ３０６）。次に、累積フレーム数ＬがＫに達したかどうかを判断する（ステップＳ３０７）。すなわち、１周期が終了したかどうかを判断する。ここで累積フレーム数ＬがＫである場合（ステップＳ３０７でＹ）、すなわちＫフレーム目である場合には、累積フレーム数Ｌを初期化（Ｌ＝０）してから（ステップＳ３０８）、描画バッファをクリアする（ステップＳ３０９）。一方で、累積フレーム数ＬがＫでない場合（ステップＳ３０７でＮ）、すなわち１フレーム目〜Ｋ−１フレーム目である場合には、ステップＳ３０９に移る。
【００９４】
次に、ずらし画像生成数Ｍを初期化（Ｍ＝０）する（ステップＳ３１０）。次に、スクリーン（投影面）の描画中心（基準座標）をずらしベクトルに応じて変更してオブジェクトを描画することによりずらし画像を生成する（ステップＳ３１１）。そして、ずらし画像をα値を１／Ｎとして合成した画像を、描画バッファに合成する（ステップＳ３１２）。次に、ずらしベクトルを３６０／Ｎ度回転させた向きに設定し（ステップＳ３１３）、ずらし画像生成数Ｍをインクリメント（Ｍ＝Ｍ＋１）する（ステップＳ３１４）。そして、ずらし画像生成数ＭがＮに達したかどうかを判断する（ステップＳ３１５）。Ｍ＝Ｎでなければ（ステップＳ３１５でＮ）、ステップＳ３１１からステップＳ３１４までの処理を繰り返し行う。Ｍ＝Ｎとなった場合には（ステップＳ３１５でＹ）、次のフレームの処理に移る（ステップＳ３０１へ）。
【００９５】
４．ハードウェア構成
図１５に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００９６】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００９７】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データ（頂点データや他のパラメータ）を描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００９８】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００９９】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１００】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１０１】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１０２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（投影面、描画中心、描画位置など）として引用された用語（スクリーン面、基準点、描画座標など）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。またずらしベクトルの設定手法、ずらし画像の生成手法、ずらし画像の合成手法等は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１０３】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】本実施形態の手法の説明図。
【図３】本実施形態の手法の説明図。
【図４】本実施形態の手法の説明図。
【図５】本実施形態の手法の説明図。
【図６】本実施形態の手法の説明図。
【図７】本実施形態の手法の説明図。
【図８】本実施形態の手法の説明図。
【図９】本実施形態の手法の説明図。
【図１０】本実施形態の手法の説明図。
【図１１】本実施形態の手法の説明図。
【図１２】本実施形態の詳細な処理例を示すフローチャート。
【図１３】本実施形態の詳細な処理例を示すフローチャート。
【図１４】本実施形態の詳細な処理例を示すフローチャート。
【図１５】ハードウェア構成例。
【符号の説明】
【０１０５】
１００  処理部、
１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１１６  ずらしベクトル設定部、
１１８  描画モード切り替え部、１２０  画像生成部、１３０  音生成部、
１６０  操作部、１７０  記憶部、
１７２  主記憶部、１７４  描画バッファ、１７６  テクスチャ記憶部、
１７８  Ｚバッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006277489.tif 000003
【図２】
2006277489.tif 000004
【図３】
2006277489.tif 000005
【図４】
2006277489.tif 000006
【図５】
2006277489.tif 000007
【図６】
2006277489.tif 000008
【図７】
2006277489.tif 000009
【図８】
2006277489.tif 000010
【図１２】
2006277489.tif 000011
【図１３】
2006277489.tif 000012
【図１４】
2006277489.tif 000013
【図１５】
2006277489.tif 000014
【図９】
2006277489.tif 000015
【図１０】
2006277489.tif 000016
【図１１】
2006277489.tif 000017