(57)【要約】 【課題】ゲーム世界を表す仮想空間に配置されるオブジェクトの輪郭を描画する。【解決手段】ゲーム装置２０１において、生成部２０２は、ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する。抽出部２０３は、第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る。描画部２０４は、第１画像を背景として、第３画像により表される輪郭を描画することにより、第４画像を得る。【選択図】図２
2013050895.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、前記複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の前記視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する生成部、
前記第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る抽出部、
前記第１画像を背景として、前記第３画像により表される輪郭を描画することにより、第４画像を得る描画部
を備えることを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置であって、
前記生成部は、
前記第２画像の画素値がとりうる最大値を、当該第２画像における各画素位置の画素値の初期値とし、
前記複数のオブジェクトのそれぞれについて、
（ａ）当該オブジェクトが投影される領域を求め、
（ｂ）前記求められた領域内の画素位置のそれぞれについて、当該画素位置の前記第２画像における画素値が当該オブジェクトの当該画素位置に投影される箇所に対する奥行値よりも小さければ、当該箇所が当該画素位置に投影される画素値を求めて、前記第１画像における当該画素位置の画素値を当該求められた画素値に更新し、前記第２画像における当該画素位置の画素値を当該オブジェクトの奥行値に更新する
処理を繰り返すことにより、前記第１画像と、前記第２画像と、を生成する
ことを特徴とするゲーム装置。
【請求項３】
請求項２に記載のゲーム装置であって、
前記各画素位置に対する奥行値は、前記視点から前記オブジェクトのうち当該画素位置に投影される箇所へのベクトルと、前記視線方向の単位ベクトルと、の内積に、前記第２画像の画素値がとりうる範囲の整数を値域とする単調増加関数を適用することにより得られる
ことを特徴とするゲーム装置。
【請求項４】
請求項３に記載のゲーム装置であって、
前記輪郭抽出フィルタは、
前記第３画像における各画素位置の画素値の初期値を０とし、
前記第２画像における各画素位置を左から右に、隣り合う画素位置を走査して、左の画素位置の画素値が右の画素位置の画素値より大きければ、当該左の画素位置の画素値と当該右の画素位置の画素値との差で、前記第３画像における当該左の画素位置の画素値を更新し、
前記第２画像における各画素位置を右から左に、隣り合う画素位置を走査して、右の画素位置の画素値が左の画素位置の画素値より大きければ、当該右の画素位置の画素値と当該左の画素位置の画素値との差で、前記第３画像における当該右の画素位置の画素値を更新する
ことを特徴とするゲーム装置。
【請求項５】
請求項４に記載のゲーム装置であって、
前記輪郭抽出フィルタは、さらに、
前記第２画像における各画素位置を上から下に、隣り合う画素位置を走査して、上の画素位置の画素値が下の画素位置の画素値より大きければ、当該上の画素位置の画素値と当該下の画素位置の画素値との差で、前記第３画像における当該上の画素位置の画素値を更新し、
前記第２画像における各画素位置を下から上に、隣り合う画素位置を走査して、下の画素位置の画素値が上の画素位置の画素値より大きければ、当該下の画素位置の画素値と当該上の画素位置の画素値との差で、前記第３画像における当該下の画素位置の画素値を更新する
ことを特徴とするゲーム装置。
【請求項６】
請求項４または５に記載のゲーム装置であって、
前記輪郭抽出フィルタは、前記隣り合う画素位置の画素値の差にかえて、当該差に前記第３画像の画素値がとりうる範囲の整数を値域とする単調増加関数を適用することにより得られる値で、前記第３画像における画素値を更新する
ことを特徴とするゲーム装置。
【請求項７】
請求項４から６のいずれか１項に記載のゲーム装置であって、
前記描画部は、前記第４画像の各画素位置について、
（ａ）当該画素位置の前記第３画像における画素値が０であれば、当該画素位置の前記第１画像における画素値を、前記第４画像における当該画素位置の画素値とし、
（ｂ）当該画素位置の前記第３画像における画素値が０でなければ、所定の色相ならびに彩度を有し、当該画素位置の前記第３画像における画素値を暗度とする色を表す画素値を、前記第４画像における当該画素位置の画素値とする
ことを特徴とするゲーム装置。
【請求項８】
請求項４から６のいずれか１項に記載のゲーム装置であって、
前記描画部は、前記第４画像の各画素位置について、当該画素位置の前記第１画像における画素値により表される色を、当該画素位置の前記第３画像における画素値により表される強さで暗くした色を表す画素値を、前記第４画像における当該画素位置の画素値とする
ことを特徴とするゲーム装置。
【請求項９】
生成部、抽出部、描画部を有するゲーム装置が実行する制御方法であって、
前記生成部が、ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、前記複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の前記視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する生成工程、
前記抽出部が、前記第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る抽出工程、
前記描画部が、前記第１画像を背景として、前記第３画像により表される輪郭を描画することにより、第４画像を得る描画工程
を備えることを特徴とする制御方法。
【請求項１０】
コンピュータを、
ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、前記複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の前記視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する生成部、
前記第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る抽出部、
前記第１画像を背景として、前記第３画像により表される輪郭を描画することにより、第４画像を得る描画部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム世界を表す仮想空間に配置されるオブジェクトの輪郭を描画するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、各種のキャラクターや物体等のオブジェクトが登場するゲーム世界を、仮想空間に配置されるポリゴンや、制御点の位置や重みにより形状が定められるサーフェスを組み合わせることによって表現し、仮想空間を見た様子を表す画像を生成する技術が提案されている。
【０００３】
これらの技術では、仮想空間内に配置される視点と視線方向に基づいて仮想空間内に投影面が設定される。
【０００４】
そして、ポリゴンやサーフェスの各箇所と視点とを結ぶ線分が投影面と交差する交差点に当該箇所を投影する透視投影の技術や、ポリゴンやサーフェスの各箇所から視線方向に平行に視点に近付くように伸ばした半直線が投影面と交差する交差点に当該箇所を投影する平行投影の技術を用いて、仮想空間内の様子を表す画像が生成される。
【０００５】
ここで、透視投影や平行投影を用いるだけでは、仮想空間内の様子を表す画像では、オブジェクトの輪郭が線画として描画されることはない。
【０００６】
そこで、視点の位置や視線方向が変化した場合であっても、オブジェクトの輪郭を得る技術が提案されている。
【０００７】
ここで、特許文献１には、画像の輪郭をエッジ抽出フィルタにより抽出して２値化する際の閾値を動的に定める技術が開示されている。本技術は、輪郭で区切られる２つの領域が異なる色であることを前提としている。
【０００８】
特許文献２には、オブジェクトを表す立体モデルと、当該立体モデルを拡大しポリゴンの法線ベクトルを反転させた裏モデルと、を用意して、視点方向から見えるポリゴンのみを描画することにより輪郭を描画する技術が開示されている。本技術は、オブジェクトの周囲の輪郭を描くのに好適である。
【０００９】
これらの技術によれば、仮想空間内の様子を表す画像において、オブジェクトと背景を区切る輪郭を描画することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平５−１６５９６３号公報
【特許文献２】特開２００５−２５７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記の先行技術よりも簡易に輪郭を描画できるような技術が強く求められている。
【００１２】
さらに、前景と背景の色が類似している場合であっても、輪郭を描けるようにしたいという要望がある。たとえば、白色のキャラクターを前景とし、白色の仮想世界を背景とする場合や、キャラクターの肌色の顎を前景とし、肌色の首を背景とする場合等である。
【００１３】
本発明は、上記のような課題を解決するもので、ゲーム世界を表す仮想空間に配置されるオブジェクトの輪郭を描画するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１５】
本発明の第１の観点に係るゲーム装置は、
ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、前記複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の前記視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する生成部、
前記第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る抽出部、
前記第１画像を背景として、前記第３画像により表される輪郭を描画することにより、第４画像を得る描画部
を備えるように構成する。
【００１６】
また、本発明のゲーム装置において、
前記生成部は、
前記第２画像の画素値がとりうる最大値を、当該第２画像における各画素位置の画素値の初期値とし、
前記複数のオブジェクトのそれぞれについて、
（ａ）当該オブジェクトが投影される領域を求め、
（ｂ）前記求められた領域内の画素位置のそれぞれについて、当該画素位置の前記第２画像における画素値が当該オブジェクトの当該画素位置に投影される箇所に対する奥行値よりも小さければ、当該箇所が当該画素位置に投影される画素値を求めて、前記第１画像における当該画素位置の画素値を当該求められた画素値に更新し、前記第２画像における当該画素位置の画素値を当該オブジェクトの奥行値に更新する
処理を繰り返すことにより、前記第１画像と、前記第２画像と、を生成する
ように構成することができる。
【００１７】
また、本発明のゲーム装置において、
前記各画素位置に対する奥行値は、前記視点から前記オブジェクトのうち当該画素位置に投影される箇所へのベクトルと、前記視線方向の単位ベクトルと、の内積に、前記第２画像の画素値がとりうる範囲の整数を値域とする単調増加関数を適用することにより得られる
ように構成することができる。
【００１８】
また、本発明のゲーム装置において、
前記輪郭抽出フィルタは、
前記第３画像における各画素位置の画素値の初期値を０とし、
前記第２画像における各画素位置を左から右に、隣り合う画素位置を走査して、左の画素位置の画素値が右の画素位置の画素値より大きければ、当該左の画素位置の画素値と当該右の画素位置の画素値との差で、前記第３画像における当該左の画素位置の画素値を更新し、
前記第２画像における各画素位置を右から左に、隣り合う画素位置を走査して、右の画素位置の画素値が左の画素位置の画素値より大きければ、当該右の画素位置の画素値と当該左の画素位置の画素値との差で、前記第３画像における当該右の画素位置の画素値を更新する
ように構成することができる。
【００１９】
また、本発明のゲーム装置において、
前記輪郭抽出フィルタは、さらに、
前記第２画像における各画素位置を上から下に、隣り合う画素位置を走査して、上の画素位置の画素値が下の画素位置の画素値より大きければ、当該上の画素位置の画素値と当該下の画素位置の画素値との差で、前記第３画像における当該上の画素位置の画素値を更新し、
前記第２画像における各画素位置を下から上に、隣り合う画素位置を走査して、下の画素位置の画素値が上の画素位置の画素値より大きければ、当該下の画素位置の画素値と当該上の画素位置の画素値との差で、前記第３画像における当該下の画素位置の画素値を更新する
ように構成することができる。
【００２０】
また、本発明のゲーム装置において、
前記輪郭抽出フィルタは、前記隣り合う画素位置の画素値の差にかえて、当該差に前記第３画像の画素値がとりうる範囲の整数を値域とする単調増加関数を適用することにより得られる値で、前記第３画像における画素値を更新する
ように構成することができる。
【００２１】
また、本発明のゲーム装置において、
前記描画部は、前記第４画像の各画素位置について、
（ａ）当該画素位置の前記第３画像における画素値が０であれば、当該画素位置の前記第１画像における画素値を、前記第４画像における当該画素位置の画素値とし、
（ｂ）当該画素位置の前記第３画像における画素値が０でなければ、所定の色相ならびに彩度を有し、当該画素位置の前記第３画像における画素値を暗度とする色を表す画素値を、前記第４画像における当該画素位置の画素値とする
ように構成することができる。
【００２２】
また、本発明のゲーム装置において、
前記描画部は、前記第４画像の各画素位置について、当該画素位置の前記第１画像における画素値により表される色を、当該画素位置の前記第３画像における画素値により表される強さで暗くした色を表す画素値を、前記第４画像における当該画素位置の画素値とする
ように構成することができる。
【００２３】
本発明の第２の観点に係る制御方法は、生成部、抽出部、描画部を有するゲーム装置が実行し、
前記生成部が、ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、前記複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の前記視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する生成工程、
前記抽出部が、前記第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る抽出工程、
前記描画部が、前記第１画像を背景として、前記第３画像により表される輪郭を描画することにより、第４画像を得る描画工程
を備えるように構成する。
【００２４】
本発明の第３の観点に係るプログラムは、コンピュータを、
ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す第１画像と、前記複数のオブジェクトのうち当該第１画像における各画素位置に描画されている箇所の前記視点に対する奥行を表す奥行値を各画素位置における画素値とする第２画像と、を生成する生成部、
前記第２画像に輪郭抽出フィルタを適用することにより、第３画像を得る抽出部、
前記第１画像を背景として、前記第３画像により表される輪郭を描画することにより、第４画像を得る描画部
として機能させるように構成する。
【００２５】
本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００２６】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２７】
本発明によれば、ゲーム世界を表す仮想空間に配置されるオブジェクトの輪郭を描画するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】典型的な情報処理装置の概要構成を示す模式図である。
【図２】本実施形態に係るゲーム装置の概要構成を示す説明図である。
【図３】仮想空間内に配置されるオブジェクトの例を示す説明図である。
【図４】第１画像の例を示す説明図である。
【図５】第１画像に対して、輪郭抽出フィルタを適用した従来例を示す説明図である。
【図６】第２画像の様子を示す説明図である。
【図７】第２画像に輪郭抽出フィルタを適用して得られる第３画像の様子を表す説明図である。
【図８】第３画像により表された輪郭を、第１画像に上書きして描画することにより得られる第４画像の様子を示す説明図である。
【図９】実施例１に係る処理の制御の流れを示すフローチャートである。
【図１０】実施例２に係る第１画像と第２画像との生成処理の制御の流れを示すフローチャートである。
【図１１】閾値比較により左右から輪郭を抽出した第３画像を示す説明図である。
【図１２】閾値比較により上下から輪郭を抽出した第３画像を示す説明図である。
【図１３】閾値比較により上下左右から輪郭を抽出した第３画像を示す説明図である。
【図１４】閾値比較により上下左右から抽出した輪郭を用いて得られる第４画像を示す説明図である。
【図１５】上下左右から濃さを考慮しつつ抽出した輪郭の様子を示す説明図である。
【図１６】濃さのある不透明な輪郭を用いて生成された第４画像の様子を表す説明図である。
【発明を実施するための形態】
【００２９】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００３０】
（情報処理装置）
図１は、プログラムを実行することにより、本実施形態のゲーム装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３１】
本図に示す情報処理装置１００は、いわゆるコンシューマゲーム機に相当するもので、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、インターフェース１０４、コントローラ１０５、外部メモリ１０６、画像処理部１０７、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８、ＮＩＣ（Network Interface Card）１０９、音声処理部１１０、マイク１１１、ハードディスク（Hard Disk；ＨＤ）１２１、カメラ１３１を有する。各種の入出力装置は、適宜省略することができる。
【００３２】
情報処理装置１００を典型的なコンシューマゲーム機として機能させる場合には、まず、ユーザは、ゲーム用プログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着する。ついで、ユーザが電源を投入すると、当該ゲームプログラムが実行され、ユーザはゲームをプレイすることができるようになる。
【００３３】
ただし、本実施形態においては、典型的には、ＤＶＤ−ＲＯＭから、アプリケーションがＨＤ  １２１にインストールされる。なお、ＤＶＤ−ＲＯＭは、ＤＶＤ−ＲＯＭドライブ１０８に装着される。そして、当該ＨＤ  １２１に記憶されたプログラムを実行することによって、ゲームを含む各種のアプリケーションが実行されることとする。
【００３４】
なお、携帯型のゲーム装置においては、携帯可能とするために、ＨＤ  １２１を省略することも可能である。この場合、ＤＶＤ−ＲＯＭドライブ１０８は利用されない。そして、ユーザは、ＲＯＭカセット用スロットにＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）カセットを装着する。ＥＥＰＲＯＭカセットには、アプリケーション用プログラムが書き込まれている。そして、当該プログラムが実行されることとなる。このほか、外部メモリ１０６にアプリケーション用プログラムをインストールすることも可能である。
【００３５】
さて、ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域を備える。ＣＰＵ  １０１は、レジスタに対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて、各種演算を行うことができる。行われる演算は、例えば、加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などである。さらに、ＣＰＵ  １０１は、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように構成されていてもよい。また、ＣＰＵ  １０１は、コプロセッサを備えることにより、このような高速演算を実現してもよい。
【００３６】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録されている。ＩＰＬが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムは、ＲＡＭ  １０３に読み出される。ついで、ＣＰＵ  １０１による当該プログラムの実行が開始される。また、ＲＯＭ  １０２には、オペレーティングシステムのプログラムや各種のデータが記録されている。オペレーティングシステムは、情報処理装置１００全体の動作を制御するために必要とされる。
【００３７】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶する。ＲＡＭ  １０３には、ＨＤ  １２１やＤＶＤ−ＲＯＭ等から読み出されたプログラムやデータ、その他通信対戦ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設ける。ＣＰＵ  １０１は、当該変数に格納された値に対して直接ＡＬＵを作用させて演算してもよい。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻してもよい。
【００３８】
コントローラ１０５は、インターフェース１０４を介して接続される。コントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００３９】
なお、コントローラ１０５は、必ずしも情報処理装置１００に対して外付けにされている必要はなく、一体に形成されていても良い。携帯可能な画像処理装置のコントローラ１０５は、各種のボタンやスイッチから構成される。コントローラ１０５は、当該ボタンやスイッチに対する押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置１００では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。
【００４０】
外部メモリ１０６は、インターフェース１０４を介して着脱自在に接続される。外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが記憶される。外部メモリ１０６は書き換え可能である。ユーザがコントローラ１０５を介して必要な指示入力を行うと、これらのデータは適宜外部メモリ１０６に記録される。
【００４１】
上述の通り、アプリケーションプログラムを外部メモリ１０６にインストールして実行するような形態を採用することもできる。これは、外部メモリ１０６が大容量である場合に好適である。
【００４２】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出す。読み出されたプログラムやデータは、ＲＡＭ  １０３等に一時的に記憶される。
【００４３】
画像処理部１０７は、まず、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理する。ついで、画像処理部１０７は、加工処理により得た画像情報を、フレームメモリ（図示せず）に記録する。フレームメモリは、画像処理部１０７に搭載されている。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４４】
携帯可能な画像処理装置のモニタとしては、小型の液晶ディスプレイを利用するのが典型的である。コントローラ１０５としてタッチスクリーンが利用される場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶためのゲーム装置のモニタとしては、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やプラズマディスプレイなどの表示装置を利用することも可能である。
【００４５】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４６】
また、レンダリング画像を得る演算を高速実行することも可能である。レンダリング画像は、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰した画像である。レンダリング画像は、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法などによりレンダリングすることにより得られる。
【００４７】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、フォント情報にしたがって、文字列を２次元画像として描画することが可能である。なお、フォント情報は、文字の形状を定義する。文字列を表す画像は、フレームメモリや各ポリゴン表面へ描画される。
【００４８】
ＮＩＣ  １０９は、インターネット接続機器（図示せず）と、ＣＰＵ  １０１との仲立ちを行うインターフェースである。ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続する際に用いられる。インターネット接続機器は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）モデム、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等であっても良い。
【００４９】
また、ＮＩＣ  １０９経由でコンピュータ通信網から入手した情報を元に、ＨＤ  １２１等にアプリケーションプログラムをインストールすることも可能である。
【００５０】
音声処理部１１０は、ＨＤ  １２１やＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、音声処理部１１０は、ゲームの進行の中で発生させるべき効果音や楽曲データを生成する。そして、音声処理部１１０は、生成した効果音や楽曲データに対応した音声をスピーカや、ヘッドホン（図示せず）、イヤフォン（図示せず）から出力させる。
【００５１】
音声処理部１１０は、ＨＤ  １２１やＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。なお、音声処理部１１０は、ＭＩＤＩ音源データを有する。また、当該音声データがＡＤＰＣＭ形式やＯｇｇ  Ｖｏｒｂｉｓ形式等の圧縮済音声データである場合には、音声処理部１１０は、これを展開してＰＣＭデータに変換する。ＰＣＭデータを、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ）変換し、スピーカに出力することにより、音声出力が可能となる。
【００５２】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、情報処理装置１００は、適当なサンプリング周波数でＡ／Ｄ変換を行う。すなわち、マイク１１１からの音声信号は、ＰＣＭ形式のディジタル信号に変換される。したがって、音声処理部１１０でミキシング等の処理を行うことが可能となる。
【００５３】
本実施形態で利用する情報処理装置１００は、上述のように、ＨＤ  １２１等の大容量外部記憶装置を用いるのが典型的である。ＨＤ  １２１は、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすこともできる。
【００５４】
さらに、本実施形態で利用する情報処理装置１００には、カメラ１３１が接続されている。このカメラ１３１は、現実世界の様子を動画ならびに静止画で撮影する。カメラ１３１によりユーザの顔の表情や体の姿勢を撮影し、ＣＰＵ  １０１や専用ハードウェア（図示せず）を利用して画像認識を行うことにより、ユーザの顔の位置や表情、体の各部位の位置を取得することができる。コントローラ１０５に対する指示操作にかえて、画像認識により得られた各種の情報を利用することも可能である。
【００５５】
このほか、キーボードや、マウスなどを接続する形態も採用することができる。キーボードは、ユーザからの文字列の編集入力を受け付ける。そして、マウスは、各種の位置の指定および選択入力を受け付ける。また、本実施形態の情報処理装置１００にかえて、汎用のパーソナルコンピュータやサーバ用コンピュータ等を利用することもできる。
【００５６】
以上で説明した情報処理装置１００は、コンシューマ向けゲーム装置に相当するものである。しかしながら、各種の入出力処理が可能な電子機器であれば、本発明のゲーム装置を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明のゲーム装置を実現することが可能である。
【００５７】
たとえば、ビジネス用コンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣ、ＨＤを構成要素として有する。また、ビジネス用コンピュータは、情報処理装置１００よりも簡易な機能を備えた画像処理部を備える。そして、ビジネス用コンピュータにおいては、外部記憶装置としてフレキシブルディスク、光磁気ディスク、磁気テープ等が利用できる。ビジネス用コンピュータにおいては、コントローラ１０５ではなく、キーボードやマウスなどが入力装置として利用されるのが典型的である。
【００５８】
本発明に係るゲーム装置は、情報処理装置１００において、ＤＶＤ−ＲＯＭやハードディスク１２１に記録されたゲーム用のプログラムを、ＣＰＵ  １０１が実行し、情報処理装置１００の各部を制御することによって実現することが可能である。
【００５９】
また、専用の電子回路、あるいは、ＦＰＧＡ（Field Programmable Gate Array）等のような再構成可能な電子回路により、本発明に係るゲーム装置の各部を実現することも可能である。
【００６０】
以下、本発明に係る各種の態様について説明する。以下では、理解を容易にするため、情報処理装置１００にてゲーム用のプログラムを実現する場合を例として取り上げる。
【実施例１】
【００６１】
図２は、本実施形態に係るゲーム装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００６２】
本実施形態に係るゲーム装置２０１は、生成部２０２、抽出部２０３、描画部２０４を備え、以下のように構成する。
【００６３】
本実施形態に係るゲーム装置２０１は、ゲーム世界を表す仮想空間内に配置される複数のオブジェクトを当該仮想空間内に設定される視点から当該仮想空間内に設定される視線方向に見た様子を表す画像を画面に表示する際に、当該画像において、当該複数のオブジェクトに適切な輪郭線を描くものである。
【００６４】
以下、理解を容易にするため、仮想空間内のオブジェクトや処理の対象となる画像を例示しながら説明するが、本発明の原理は、これらのオブジェクトや画像に限定されるものではなく、適宜変更が可能である。
【００６５】
図３は、仮想空間内に配置されるオブジェクトの例を示す説明図である。以下、本図を参照して説明する。なお、本図は、製図における通常の規則を適用して描いているため、輪郭線が描かれているが、実際には、仮想空間内に輪郭線そのものは存在しない。
【００６６】
本図に示す例では、仮想空間３０１内に、キャラクターの頭部を表す球オブジェクト３０２と、キャラクターの頸部を表す円柱オブジェクト３０３と、キャラクターの背景に配置される板オブジェクト３０４と、が配置されている。
【００６７】
本例では、円柱オブジェクト３０３は、球オブジェクト３０２と交差しており、球オブジェクト３０２の中心３０５からずれた箇所を円柱オブジェクト３０３の中心軸３０６が通過している。
【００６８】
円柱オブジェクト３０３と、球オブジェクト３０２と、は、いずれも白色であるが、板オブジェクト３０４は、これらとは異なる色彩である。そこで、板オブジェクト３０４の色彩は、ハッチングにより描かれている。
【００６９】
これらのオブジェクト３０２、３０３、３０４を、仮想空間３０１内に設定された視点３０７から視線３０８の方向へ、見た様子を、透視投影もしくは平行投影によって描画することにより、仮想空間内の様子を表す画像を得ることができる。
【００７０】
なお、本例では、理解を容易にするため、あらゆる方向から光が当たる環境光源を想定しているが、１つもしくは複数の点光源や平行光源を仮想空間３０１内に配置したり、これら各種の光源を組み合わせて利用することも可能である。
【００７１】
また、本例では、オブジェクトとして球や円柱、板を採用しているが、オブジェクトとして、多角形（ポリゴン）を採用したり、曲面を表すサーフェスを採用することも可能である。
【００７２】
オブジェクト３０２、３０３、３０４の位置や向き、色彩や、視点３０７の位置や、視線３０８の向き等の情報は、ＲＡＭ  １０３内に記憶される。
【００７３】
すなわち、生成部２０２は、ゲーム世界を表す仮想空間３０１内に配置される複数のオブジェクトを当該仮想空間３０１内に設定される視点から当該仮想空間３０１内に設定される視線方向に見た様子を表す第１画像を生成する。
【００７４】
図４は、第１画像の例を示す説明図である。以下、本図を参照して説明する。
【００７５】
第１画像４０１は、縦横に桝目状に画素が並んだビットマップ形式の画像である。本図では、理解を容易にするため、画素数を極めて少なく設定しているが、画素数は任意に変更が可能である。また、本図では、理解を容易にするため、第１画像４０１の外周に枠線を描いているが、画素同士の境界線は描いていない（以下同様）。
【００７６】
第１画像４０１の中央には、球オブジェクト３０２と円柱オブジェクト３０３とが白色で描画されている。上記のように、環境光源を想定しているため、両者の境界線は、描画されていない。このため、キャラクターの顎の輪郭がわかりにくくなっている。
【００７７】
また、第１画像４０１の周縁には、板オブジェクト３０４が見えている。すなわち、視点３０６から視線３０７の方向に仮想空間３０１を見たときに、その視界は板オブジェクト３０４で覆われている。
【００７８】
また、球オブジェクト３０２ならびに円柱オブジェクト３０３と、板オブジェクト３０４と、は、白色か、ハッチングがなされているか、の差があるため、その境界はわかるが、やはり輪郭線は描かれていない。
【００７９】
従来、第１画像４０１に対して輪郭線を施す際には、第１画像４０１に対して、輪郭抽出フィルタを適用していた。この輪郭抽出フィルタとは、ハイパスフィルタに相当するものである。
【００８０】
最も単純な輪郭抽出フィルタは、ある画素と、当該画素に隣接する画素と、の画素値の差が、閾値を超えた場合に、当該ある画素を輪郭であるとみなすものである。
【００８１】
輪郭抽出フィルタには、どの画素同士を比較するか、閾値をどのように設定するか、によって、各種のバリエーションが提案されている。また、輪郭抽出フィルタには、画素値の差を輪郭の色の濃さとして採用する手法もある。
【００８２】
図５は、第１画像４０１に対して、輪郭抽出フィルタを適用した従来例を示す説明図である。以下、本図を参照して説明する。
【００８３】
本例の輪郭抽出フィルタは、ある画素と、当該ある画素の右側もしくは下側の画素と、の画素値の差があらかじめ定めた閾値を超えた場合に、当該ある画素を輪郭とするものである。
【００８４】
本図には、示す第１画像４０１に単純に輪郭抽出フィルタを適用して得られる従来例の画像４５１を示す。従来例の画像４５１では、球オブジェクト３０２と板オブジェクト３０４との境界、ならびに、円柱オブジェクト３０３と板オブジェクト３０４との境界を表す輪郭４５２が描かれている。上記の境界においては、第１画像４０１で描画される色彩が異なるからである。
【００８５】
なお、輪郭４５２が左右非対称となっているのは、本例で適用した輪郭抽出フィルタが左右非対称であるからである。
【００８６】
一方、球オブジェクト３０２と円柱オブジェクト３０３とは、第１画像４０１で同じ色彩で描かれているため、その境界は、輪郭抽出フィルタを単純に適用するだけでは得られない。
【００８７】
そこで、本実施形態では、以下のような技術を採用する。すなわち、生成部２０２は、複数のオブジェクトのうち当該第１画像４０１における各画素位置に描画されている箇所の視点３０７に対する奥行を表す奥行値を各画素位置における画素値とする第２画像を生成する。
【００８８】
図６は、第２画像の様子を示す説明図である。以下、本図を参照して説明する。
【００８９】
本図に示すように、第２画像５０１は第１画像４０１と幅、高さとも同じサイズの画像である。第１画像４０１は、カラー画像とすることも、グレイスケール画像とすることも可能であるが、第２画像５０１は、グレイスケール画像とするのが典型的である。
【００９０】
本図においては、理解を容易にするため、グレイスケール画像における白、灰色、黒を、各画素のハッチングの濃さによって表現している。
【００９１】
第２画像５０１における各画素は、画素値として、その画素に描かれているオブジェクトの部分の、視点３０７に対する奥行が採用されている。視点３０７に対する奥行としては、以下のようなものを採用することができる。
（ａ）視点３０７を原点、視線方向に伸びる座標軸をＺ軸としたときの、その画素に描かれているオブジェクトの部分の、Ｚ軸における座標値。いわゆるＺ値である。
（ｂ）視点３０７と、その画素に描かれているオブジェクトの部分と、の距離。
（ｃ）上記（ａ）（ｂ）において、その画素に描かれているオブジェクトの部分ではなく、オブジェクトの代表点（中心点や重心等、仮想空間３０１内におけるオブジェクトの位置を定める点。）を採用する態様。すなわち、その画素に描かれているオブジェクトの代表点のＺ値や、当該オブジェクトの代表点と視点３０７との距離。
【００９２】
すなわち、奥行としては、視点３０７に対して、各オブジェクトがどの程度離れているか、あるいは、どの程度近いか、を表す数値パラメータであれば、任意のものを採用することができる。
【００９３】
各画素値は、８ビットで明暗を表現するグレイスケール画像では、０〜２５５の何れかの整数値をとり、１６ビットで明暗を表現するグレイスケール画像では、０〜６５５３５の何れかの整数値をとる。他のビット数により第２画像５０１を表現する場合にも、各画素値は、０〜上限値の間のいずれかの値をとるのが一般的である。
【００９４】
そこで、視点３０７から視線３０８の方向に見えるオブジェクトの奥行を、上記の０〜上限値の間に適切にマッピングする。
【００９５】
最も単純には、視点３０７から視線３０８の方向に見えるオブジェクトの各部のうち、視点に最も近い最近点から、視点から最も遠い最遠点までの奥行を、上記の０〜上限値の間に均等に割り振るという手法が考えられる。
【００９６】
また、３次元グラフィックスの技術を利用して第１画像４０１を生成する際には、仮想空間内に配置されるオブジェクトのうち、描画対象となるオブジェクトを、奥行の範囲で選択することがある。この場合に、当該奥行の範囲の下限から上限までを、画素値の０から上限値までに均等に割り振ることとしても良い。
【００９７】
本図では、上記（ａ）を採用した例を表示している。したがって、板オブジェクト３０４は、視点３０７から遠いから、白色に近い、薄いハッチングで描かれており、球オブジェクト３０２や円柱オブジェクト３０３は、視点３０７に近いから、板オブジェクト３０４に比べて黒色に近い、濃いハッチングで描かれている。
【００９８】
また、球オブジェクト３０２は、円柱オブジェクト３０３よりも視点３０７に近いから、両者の間にもハッチングの濃さに差がある。
【００９９】
そこで、本実施形態は、この奥行の差を用いて、輪郭を得るのである。
【０１００】
すなわち、本実施形態では、抽出部２０３が、第２画像５０１に輪郭抽出フィルタを適用することにより、第３画像を得る。
【０１０１】
図７は、第２画像５０１に輪郭抽出フィルタを適用して得られる第３画像の様子を表す説明図である。以下、本図を参照して説明する。
【０１０２】
上記のように、輪郭抽出フィルタは、画素値に大きな差があるところを輪郭とみなすフィルタである。したがって、図４の従来例で利用した輪郭抽出フィルタを第２画像５０１に適用すると、視点３０７に対する奥行が異なる箇所が、輪郭として抽出されることになる。
【０１０３】
本図に示すように、第３画像６０１で抽出されている輪郭６０２は、球オブジェクト３０２、円柱オブジェクト３０３、板オブジェクト３０４の三者の間のすべての境界を描くものである。
【０１０４】
すなわち、本図の第３画像６０１では、輪郭６０２として、キャラクターの頭部の輪郭６０２ａ、キャラクターの頸部の輪郭６０２ｂのほか、キャラクターの顎部の輪郭６０２ｃが描かれている。
【０１０５】
このように、従来例では不可能であって輪郭抽出が、本実施形態では簡単な画像処理を行うことで可能となるのである。
【０１０６】
最後に、描画部２０４は、第１画像４０１を背景として、第３画像６０１により表される輪郭６０２を描画することにより、第４画像を得る。
【０１０７】
図８は、第３画像６０１により表された輪郭６０２を、第１画像４０１に上書きして描画することにより得られる第４画像の様子を示す説明図である。以下、本図を参照して説明する。
【０１０８】
本図に示すように、第４画像７０１では、第１画像４０１に描かれていた球オブジェクト３０２、円柱オブジェクト３０３、板オブジェクト３０４の境界に、輪郭６０２が描画されている。
【０１０９】
本図では、輪郭６０２として、黒色を採用して描画しているが、本例のように、画素が輪郭６０２に相当するか否かのみを判定する手法では、第１画像４０１に対して輪郭６０２を描画する際の色は、任意の色とすることができる。
【０１１０】
このほか、輪郭６０２の濃さを設定する態様では、輪郭６０２の濃さに応じて第１画像４０１の画素値の明度を暗くする、という手法により、輪郭を描くこともできる。すなわち、遠近の差が大きいところは暗くなり、遠近の差が小さいところは色にほとんど変化がない、という態様である。
【０１１１】
さらに、輪郭６０２の濃さを設定する態様では、第４画像７０１において輪郭６０２を描く際に、あらかじめ、輪郭６０２の色を定めておき、輪郭６０２の濃さを「不透明度」として採用して、第１画像４０１とαブレンディングすることにより、輪郭を描くこととしても良い。
【０１１２】
なお、上記の、輪郭の濃さに応じて画素の明度を暗くする、という手法は、輪郭６０２の色を黒と定めて、第１画像４０１とαブレンディングする手法に相当する。
【０１１３】
図９は、本実施形態に係る処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１１４】
本処理は、情報処理装置が本実施形態に係るゲーム装置２０１を実現するためのプログラムを実行することによって開始される。
【０１１５】
本処理が開始されると、ゲーム装置２０１の生成部２０２は、ＲＡＭ  １０３等に記憶された仮想空間内の種々の情報から、第１画像４０１と、第２画像５０１と、を生成する（ステップＳ８０１）。
【０１１６】
生成部２０２は、まず第１画像４０１を生成し、次に第２画像５０１を生成することとしても良いが、第１画像４０１と第２画像５０１を並行して生成するのが典型的である。
【０１１７】
本実施形態では、生成部２０２は、ＣＰＵ  １０１の制御の下、画像処理部１０７が動作することによって実現され、ＲＡＭ  １０３に、第１画像４０１と、第２画像５０１と、が出力される。
【０１１８】
なお、情報処理装置１００の構成によっては、第１画像４０１や第２画像５０１等、画像処理部１０７により出力される画像の出力先は、ＲＡＭ  １０３のうち、画像処理部１０７との連携が密に構成されている画像処理専用のビデオＲＡＭ領域やフレームバッファ領域とすることで、処理の高速化を図ることができる。
【０１１９】
ついで、ゲーム装置２０１の抽出部２０３は、第２画像５０１に対して輪郭抽出フィルタを適用して、第３画像６０１を得る（ステップＳ８０２）。
【０１２０】
ここで、抽出部２０３は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３内に記憶された第２画像５０１に対して、画像処理部１０７が動作することにより実現され、輪郭抽出フィルタの適用結果である第３画像６０１は、ＲＡＭ  １０３に出力される。
【０１２１】
最後に、ゲーム装置２０１の描画部２０４は、第１画像４０１に対して、第３画像６０１により表される輪郭６０２を描画することにより、第４画像７０１を得る（ステップＳ８０３）。
【０１２２】
本実施形態では、描画部２０４は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３内に記憶された第１画像４０１と第３画像６０１を参照して、画像処理部１０７が第１画像４０１に輪郭６０２を描画することにより実現され、描画の結果得られる第４画像７０１は、ＲＡＭ  １０３に出力される。
【０１２３】
本実施形態によれば、簡易な画像処理によって、従来は抽出することができなかった輪郭を、適切に抽出することができるようになる。
【実施例２】
【０１２４】
本実施例は、上記の実施例において、第１画像４０１と第２画像５０１とを並行して生成する好適実施形態である。
【０１２５】
図１０は、本実施例に係る第１画像４０１と第２画像５０１との生成処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１２６】
本図に示す生成処理は、図９に示すフローチャートのステップＳ８０１に相当するものである。
【０１２７】
本処理が開始されると、ＣＰＵ  １０１は、ＲＡＭ  １０３内に、第１画像４０１用の第１画像バッファと、第２画像５０１用の第２画像バッファと、を確保する（ステップＳ８１１）。
【０１２８】
たとえば、第１画像４０１を２４ビットカラー、第２画像５０１を８ビットグレイスケールとし、大きさを横ｗドット、縦ｈドットとした場合には、第１画像４０１用に３×ｗ×ｈバイト、第２画像５０１用にｗ×ｈバイトのメモリ領域が必要となる。
【０１２９】
ついで、ＣＰＵ  １０１は、第１画像バッファと第２画像バッファをクリアする（ステップＳ８１２）。
【０１３０】
第１画像バッファは、所定の背景色、たとえば、無限遠方を表す色等を表す画素値で初期化される。第２画像バッファは、最も遠い奥行を表す値、すなわち、第２画像５０１の画素値の最大値で初期化される。たとえば、第２画像５０１を８ビットグレイスケールで描く場合、第２画像５０１の画素値の最大値は２５５である。
【０１３１】
そして、ＲＡＭ  １０３内に記憶されている情報に基づいて、仮想空間３０１内に配置されている描画対象となるオブジェクトのそれぞれにつき、次の処理を繰り返す（ステップＳ８１３）。
【０１３２】
まず、視点３０６の位置、視線３０７の方向に基づいて、当該オブジェクトが第１画像４０１内に投影される領域を計算する（ステップＳ８１４）。
【０１３３】
次に当該領域内の画素の画素位置のそれぞれについて、次の処理を繰り返す（ステップＳ８１５）。
【０１３４】
まず、当該オブジェクトのうち、繰り返しにおいて現在注目している画素の画素位置に投影されている部分の奥行を取得する（ステップＳ８１６）。
【０１３５】
上記のように、当該オブジェクトの投影部分の奥行としては、投影部分のＺ値、投影部分と視点３０６との距離、当該オブジェクトの代表点のＺ値、あるいは、当該オブジェクトの代表点と視点３０６との距離などを採用することができる。
【０１３６】
そして、得られた奥行を、０から、第２画像５０１における画素値の最大値までの、整数値にマッピングして、奥行値を得る（ステップＳ８１７）。
【０１３７】
ついで、第２画像バッファにおける当該画素位置の画素値を取得する（ステップＳ８１８）。
【０１３８】
そして、マッピングの結果得られた奥行値が、取得された第２画像バッファ内の画素値より、小さいかを判定する（ステップＳ８１９）。
【０１３９】
マッピング値の方が小さければ（ステップＳ８１９；Ｙｅｓ）、当該オブジェクトは、今までに描画されたオブジェクトよりも視点に近いことになる。そこで、第１画像バッファ内の当該画素位置に、当該オブジェクトの色の画素値を書き込み（ステップＳ８２０）、第２画像バッファ内の当該画素位置に、奥行値を書き込み（ステップＳ８２１）、ステップＳ８２２に進む。
【０１４０】
一方、マッピングの結果得られた値が、取得された第２画像バッファ内の画素値以上である場合（ステップＳ８１９；Ｎｏ）、当該オブジェクトは、今までに描画されたオブジェクトよりも視点に近いとはいえない。そこで、そのままステップＳ８２２に進む。
【０１４１】
この処理を、当該領域内の全画素の画素位置について繰り返す（ステップＳ８２２）。
【０１４２】
ステップＳ８１５〜ステップＳ８２２の繰り返し処理が終わると、当該オブジェクトの描画が完了したこととなる。
【０１４３】
そこで、ここまでの処理を、描画対象となるオブジェクトのすべてについて繰り返す（ステップＳ８２３）。
【０１４４】
ステップＳ８１３〜ステップＳ８２３の繰り返し処理が終わると、全オブジェクトの描画が完了したこととなり、第１画像バッファには第１画像４０１が、第２画像バッファには第２画像５０１が、それぞれ生成されている。
【０１４５】
３次元グラフィックスでは、奥行値に相当する情報を用いてあらかじめオブジェクトをＺ軸方向にソートし、遠い順に描画する、という手法を用いることもあるが、本実施形態は、この態様と組み合わせることも可能である。また、オブジェクトをＺ軸方向の遠近に基づいてソートしない場合であっても、どのオブジェクトがどのオブジェクトを隠すか、を適切に判定することが可能である。
【０１４６】
本態様によれば、画素に投影されるオブジェクトの部分ごとに遠近を判定した場合は特に、オブジェクトを適切に第１画像４０１に描画することができる。
【０１４７】
また、第１画像４０１の描画の際の遠近判定に用いる情報を、そのまま第２画像５０１として利用することができるため、メモリならびに計算時間の節約が可能となる。
【実施例３】
【０１４８】
本実施形態は、上記実施例における奥行値の計算の好適実施形態の一つに相当するものである。
【０１４９】
すなわち、本実施例では、各画素位置に対する奥行値として、視点３０７からオブジェクトのうち当該画素位置に投影される箇所へのベクトルと、視線方向の単位ベクトルと、の内積に、第２画像５０１の画素値がとりうる範囲の整数を値域とする単調増加関数を適用することにより得られる。
【０１５０】
ここで、視点３０７からオブジェクトの投影部分へ向かうベクトルと、視線３０８の方向の単位ベクトルと、の内積は、いわゆるＺ値に相当するものである。
【０１５１】
また、Ｚ値を、０〜２５５の整数値や、０〜６５５３５の整数値にマッピングする手法としては、一般的な３次元グラフィックスの手法では、視点に近い側は細かく、視点に遠い側は荒く割り振るのが一般的である。
【０１５２】
一方で、オブジェクトの色彩が近似し、近い位置に配置されている場合には、Ｚ値も近い値になる。そこで、このような場合には、描画対象となるオブジェクトの奥行範囲を設定し、最も近い奥行から最も遠い奥行までを均等に割り振ることもできる。
【０１５３】
このほか、特定のキャラクターを綺麗に描画したい場合等には、当該キャラクターを構成するオブジェクトと、それ以外のオブジェクトを分類して、キャラクターを構成するオブジェクトが含まれる奥行範囲を求める。たとえば、キャラクターの代表点のＺ値から前後の所定範囲を、当該奥行範囲とする。
【０１５４】
そして、当該奥行範囲内については、細かく割り振り、それ以外の範囲については荒く割り振る、等の手法を採用しても良い。
【０１５５】
いずれの手法においても、奥行値は、視点３０７から遠ければ遠いほど、すなわち、Ｚ値が大きければ大きいほど、大きくなるような値である。したがって、Ｚ値から奥行値への変換は、単調増加関数（単調な非減少関数）を適用することによって得られる。
【０１５６】
さて、上記のように、奥行値は、３次元グラフィックスによりオブジェクトを描画する際に使用するものである。このため、画像処理部１０７が専用ハードウェアで実現されている場合には、オブジェクトや視点３０６、視線３０７の情報、マッピングの割り振りの情報を与えると、第１画像４０１がＲＡＭ  １０３内に生成され、その副作用として、第２画像５０１が生成されることがある。
【０１５７】
このような態様では特に、高速に、第１画像４０１と第２画像５０１とを生成することができる。
【実施例４】
【０１５８】
上記実施例の説明では、輪郭抽出フィルタとして、第２画像５０１におけるある画素と、当該ある画素の右側もしくは下側の画素と、の画素値の差があらかじめ定めた閾値を超えた場合に、当該ある画素を輪郭とするものを採用していた。
【０１５９】
以下、理解を容易にするため、第１画像４０１、第２画像５０１第３画像６０１、第４画像７０１の大きさが、いずれも、幅w、高さhであるとし、横方向の座標値x (0≦x<w)、縦方向の座標値y (0≦y<h)の位置(x,y)における画素値を、それぞれ、s[x,y]、d[x,y]、r[x,y]、g[x,y]とし、x軸は左から右へ、y軸は上から下へ、それぞれ伸びるものとする。
【０１６０】
ただし、態様によっては、軸の方向は逆向きにしても良い。
【０１６１】
第１画像４０１と第４画像７０１がカラー画像の場合には、s[x,y]およびg[x,y]は、ＲＧＢ表現による３要素のベクトル値とするのが典型的である。
【０１６２】
また、第２画像５０１は、グレイスケール画像であるから、d[x,y]は、スカラー値とするのが典型的である。
【０１６３】
また、第３画像６０１の画素値s[x,y]も、スカラー値とするのが典型的である。
【０１６４】
また、グレイスケール画像における画素値の最大値をＭとする。８ビットグレイスケールでは、M=255であり、１６ビットグレイスケールでは、M=65535である。
【０１６５】
グレイスケール画像のある画素の画素値がvである場合、ネガポジ変換をした画素値はM-vであるから、第３画像６０１として、輪郭の画素をネガ表現（画素値が大きい、暗い画素）とするか、ポジ表現（画素値が小さい、明るい画素）とするか、は任意に選択が可能である。なお、図７においては、ネガ表現を採用し、黒（暗い画素）で輪郭６０２が描かれている。
【０１６６】
以下では、理解を容易にするため、ネガ表現で説明を行うが、上記の変換式により、ポジ表現で実施をすることも容易である。
【０１６７】
さて、上記実施例で採用されている輪郭抽出フィルタは、第２画像５０１の画素値d[-,-]から、第３画像６０１の画素値r[-,-]を、以下のように求めるものである。
【０１６８】
すなわち、0≦x<w-1かつ0≦y<h-1について、
r[x,y] = M   (|d[x,y]-d[x+1,y]|>T あるいは |d[x,y]-d[x,y+1]|>T)
= 0   (上記以外)
0≦y<hについて、
r[w-1,y] = 0,
0≦x<wかつy=h-1について、
r[x,h-1] = 0,
ただし、Tは、所定の閾値である。
【０１６９】
これは、まず最初に、0≦x<wかつ0≦y<hのすべてについて、
r[x,y] ← 0
と初期化してから、次に、0≦x<w-1かつ0≦y<h-1のそれぞれについて、「|d[x,y]-d[x+1,y]|>T あるいは |d[x,y]-d[x,y+1]|>T」が成立した場合に
r[x,y] ← M
のように代入したものと同じである。
【０１７０】
この輪郭抽出フィルタでは、あるオブジェクトの描画結果に対する輪郭の大きさは、当該オブジェクトの描画結果の大きさとほぼ同じであるが、輪郭は、図７、図８に示すように、当該オブジェクトの描画結果から、すこしだけ左上にずれた状態で抽出される。
【０１７１】
このほか、輪郭をオブジェクトの描画結果の外側に描く手法もある。第１の手法は、オブジェクトの左右の輪郭を抽出するものである。すなわち、0≦x<wかつ0≦y<hのすべてについて、
r[x,y] ← 0
と初期化してから、0≦x<w-1かつ0≦y<hのそれぞれについて、d[x,y]>d[x+1,y]+Tが成立した場合に
r[x,y] ← M
のように代入し、d[x,y]+T<d[x+1,y]が成立した場合に
r[x+1,y] ← M
のように代入したものである。
【０１７２】
この手法は、左右方向の操作のみを行うものであり、オブジェクトの描画領域の左右外側に、そのオブジェクトの輪郭が抽出される。
【０１７３】
図１１は、閾値比較により左右から輪郭を抽出した第３画像６０１を示す説明図である。以下、本図を参照して説明する。
【０１７４】
本図のように、第３画像６０１では、水平方向に輪郭６０２が抽出されており、キャラクターの頭頂部や顎底部などの上下で、輪郭６０２が途切れている。
【０１７５】
第２の手法は、オブジェクトの上下の輪郭を抽出するものである。すなわち、0≦x<wかつ0≦y<hのすべてについて、
r[x,y] ← 0
と初期化してから、0≦x<wかつ0≦y<h-1のそれぞれについて、d[x,y]>d[x,y+1]+Tが成立した場合に
r[x,y] ← M
のように代入し、d[x,y]+T<d[x,y+1]が成立した場合に
r[x,y+1] ← M
のように代入したものである。
【０１７６】
この手法は、上下方向の操作のみを行うものであり、オブジェクトの描画領域の上下外側に、そのオブジェクトの輪郭が抽出される。
【０１７７】
図１２は、閾値比較により上下から輪郭を抽出した第３画像６０１を示す説明図である。以下、本図を参照して説明する。
【０１７８】
本図のように、第３画像６０１では、垂直方向に輪郭６０２が抽出されており、キャラクターの左右で、輪郭６０２が途切れている。
【０１７９】
第３の手法は、上記の第１の手法と第２の手法を両方とも適用するものである。
【０１８０】
図１３は、閾値比較により上下左右から輪郭を抽出した第３画像６０１を示す説明図であり、図１４は、上下左右から抽出された輪郭を用いて得られる第４画像７０１を示す説明図である。以下、本図を参照して説明する。
【０１８１】
本図のように、第３画像６０１では、水平、垂直の両方向で輪郭６０２が抽出されており、輪郭６０２の途切れはない。
【０１８２】
また、第４画像７０１においては、輪郭６０２は、左右対象に、球オブジェクト３０２や円柱オブジェクト３０３の外側に付されることになっている。
【０１８３】
なお、上記の手法では、左右外側、上下外側に輪郭が抽出されるようにするため、大小関係の比較の結果に基づいて、輪郭を表す画素値の代入先を、r[x,y]とr[x+1,y]の間で、あるいは、r[x,y]とr[x,y+1]の間で、それぞれ切り替えることとしているが、画像処理部１０７の構成によっては、代入先をすべてr[x,y]とすることによって、高速な計算が可能となる場合もある。代入先は、以下の各態様においても、同様に選択が可能である。
【０１８４】
これらの手法は、隣接する画素の奥行の差が閾値Tよりも大きい場合に、視点３０７から遠い側の画素に、最大値Mを与えることにより、輪郭を抽出する。
【０１８５】
これらの輪郭を第４画像７０１において描く色をc（ＲＧＢのベクトル値）とする。すると、0≦x<wかつ0≦y<hのすべてについて、
g[x,y] = s[x,y]   (r[x,y] = 0)；
= c        (r[x,y] > 0)
を実行することによって、第４画像７０１を生成することができる。
【０１８６】
また、第１画像４０１が記憶されている第１画像バッファに対して(r[x,y] = M)の場合に画素位置(x,y)に色cを上書きすることによって、第４画像７０１を生成することとしても良い。
【０１８７】
このほか、0≦x<wかつ0≦y<hのすべてについて、
g[x,y] = (M-r[x,y])/M×s[x,y] + r[x,y]/M×c
のように、透明度を表すパラメータとして(M-r[x,y])/Mやr[x,y]/Mを利用することによって、第４画像７０１を生成しても良い。
【０１８８】
上記第１の手法から第３の手法までは、用途や計算量、オブジェクトが移動する方向やオブジェクトにより構成されるキャラクターの形状などに応じて、適宜選択することが可能である。
【実施例５】
【０１８９】
上記実施例では、画素値の差と閾値とを比較して輪郭を抽出していたが、輪郭に濃さを想定することも可能である。
【０１９０】
すなわち、まず、実施例４と同様に、第３画像６０１における各画素位置の画素値の初期値を０とする。
【０１９１】
この後に、実施例４の第１の手法に類似する手法として、
第２画像５０１における各画素位置を左から右に、隣り合う画素位置を走査して、左の画素位置の画素値が右の画素位置の画素値より大きければ、当該左の画素位置の画素値と当該右の画素位置の画素値との差で、第３画像６０１における当該左の画素位置の画素値を更新し、
第２画像５０１における各画素位置を右から左に、隣り合う画素位置を走査して、右の画素位置の画素値が左の画素位置の画素値より大きければ、当該右の画素位置の画素値と当該左の画素位置の画素値との差で、第３画像６０１における当該右の画素位置の画素値を更新する
手法がある。
【０１９２】
この手法では、0≦x<w-1かつ0≦y<hのそれぞれについて、d[x,y]>d[x+1,y]が成立した場合に
r[x,y] ← d[x,y]-d[x+1,y]
のように代入し、d[x,y]<d[x+1,y]が成立した場合に
r[x+1,y] ← d[x+1,y]-d[x,y]
のように代入する。
【０１９３】
また、実施例４の第２の手法に類似する手法として、
第２画像５０１における各画素位置を上から下に、隣り合う画素位置を走査して、上の画素位置の画素値が下の画素位置の画素値より大きければ、当該上の画素位置の画素値と当該下の画素位置の画素値との差で、第３画像６０１における当該上の画素位置の画素値を更新し、
第２画像５０１における各画素位置を下から上に、隣り合う画素位置を走査して、下の画素位置の画素値が上の画素位置の画素値より大きければ、当該下の画素位置の画素値と当該上の画素位置の画素値との差で、第３画像６０１における当該下の画素位置の画素値を更新する
手法もある。
【０１９４】
この手法では、0≦x<wかつ0≦y<h-1のそれぞれについて、d[x,y]>d[x,y+1]が成立した場合に
r[x,y] ← d[x,y]-d[x,y+1]
のように代入し、d[x,y]<d[x,y+1]が成立した場合に
r[x,y+1] ← d[y+1]-d[x,y]
のように代入する。
【０１９５】
さらに、実施例４の第３の手法と同様に、これらを組み合わせることもできる。
【０１９６】
これらの手法では、輪郭の濃さが、０〜Ｍまでの多段階で表現される。
【０１９７】
このほか、隣接する画素の差が所定の閾値よりも小さい場合には、差の代入を実行しない、という手法を採用しても良い。
【０１９８】
このような閾値としては、たとえば、第２画像５０１内で最も大きい奥行値と最も小さい奥行値との差を、所定の定数（たとえば、２、３、４、５等）で割った結果等を採用することができる。
【０１９９】
なお、差に対して閾値を採用しない場合には、第３画像３０１は、オブジェクトの凹凸に基づいた濃淡のある影に類似することとなり、差に対して閾値を採用する場合には、第３画像３０１は、ある程度濃い部分のみ、影として描いたものに類似することになる。
【０２００】
図１５は、上下左右から濃さを考慮しつつ抽出した輪郭の様子を示す説明図である。以下、本図を参照して説明する。なお、本図では、色の濃さ（暗さ）を、ハッチングの濃さで表現している。
【０２０１】
本図に示すように、球オブジェクト３０２と板オブジェクト３０４の間は大きく離れ、円柱オブジェクト３０３と板オブジェクト３０４の間は大きく離れているから、輪郭６０２のうち、球オブジェクト３０２と板オブジェクト３０４の境界ならびに円柱オブジェクト３０３と板オブジェクト３０４の境界は、濃くて暗くなっている。
【０２０２】
また、輪郭６０２のうち、球オブジェクト３０２と円柱オブジェクト３０３の間の顎は、薄くて明るくなっている。
【０２０３】
さらに、本例では、差に閾値を設けており、球オブジェクト３０２内や円柱オブジェクト３０３内では、奥行値の差が閾値よりも小さいため、輪郭としては認識されず、白色で描かれている。
【０２０４】
このように、濃さが得られた輪郭６０２を利用する場合、輪郭６０２の基本色をc（ＲＧＢのベクトル値）としたときに、0≦x<wかつ0≦y<hのすべてについて、
g[x,y] = (M-r[x,y])×s[x,y] + r[x,y]×c
を実行することによって、半透明な輪郭を描いた第４画像７０１を生成することができる。
【０２０５】
ここで、c=(0,0,0)、すなわち、輪郭６０２の基本色を黒とした場合には、第４画像７０１の各画素位置(x,y)について、当該画素位置(x,y)の第１画像４０１における画素値s[x,y]により表される色を、当該画素位置の第３画像６０１における画素値r[x,y]により表される強さで暗くした色を表す画素値(M-r[x,y])×s[x,y]を、第４画像における当該画素位置の画素値としたことになる。
【０２０６】
このほか、
g[x,y] = s[x,y]          (r[x,y] = 0)；
= (M-r[x,y])×c   (r[x,y] > 0)
として、不透明な輪郭を描いた第４画像７０１を生成しても良い。
【０２０７】
これは、第４画像７０１の各画素位置について、
（ａ）当該画素位置(x,y)の第３画像６０１における画素値r[x,y]が０であれば、当該画素位置(x,y)の第１画像４０１における画素値s[x,y]を、第４画像７０１における当該画素位置の画素値s[x,y]とし、
（ｂ）当該画素位置(x,y)の第３画像６０１における画素値r[x,y]が０でなければ、所定の色相ならびに彩度を有し、当該画素位置の第３画像６０１における画素値r[x,y]を暗度とする色を表す画素値(M-r[x,y])×cを、第４画像７０１における当該画素位置の画素値g[x,y]とする
ことに相当する。
【０２０８】
図１６は、濃さのある不透明な輪郭を用いて生成された第４画像７０１の様子を表す説明図である。以下、本図を参照して説明する。
【０２０９】
本図に示す第４画像７０１の輪郭６０２は、図１３のうち、白色の部分（r[x,y] = 0に相当）は、第１画像４０１上に描画せず、有色の部分（r[x,y] > 0に相当）は、第１画像４０１上にそのまま描画したものであり、輪郭６０２に濃淡が付されている。
【０２１０】
本手法によると、輪郭の濃淡を簡易な計算に自然に表現することができるようになる。
【０２１１】
なお、本実施例においては、隣り合う画素の画素値の差を、そのまま第３画像６０１における輪郭６０２の濃さとして採用したが、当該差に０からＭまでの整数を値域とする単調増加関数（単調非増加関数）を適用することにより得られる値を、第３画像６０１における輪郭６０２の濃さとして採用しても良い。
【０２１２】
このほか、画像処理部１０７が用意している画像処理演算機能を利用する場合等には、以下のように輪郭を描く手法を採用しても良い。すなわち、
clamp01(x) = 0   (x≦0)；
= x   (0<x<1)；
= 1   (1≦x)
なる関数clamp01(x)、パラメータK、閾値threshold、パラメータc_scaleに基づいて、
opacity = clamp01(clamp01(K×(|d[x,y]-d[x+1,y]| + 
|d[x,y]-d[x,y+1]|) - 
threshold)×c_scale
により、パラメータopacityを計算する。
【０２１３】
ここで、パラメータKは、画素値の差をどれだけ強調するかを調整するものであり、閾値thresholdは輪郭を描くか否かを決める値であり、パラメータc_scaleは、０以上１以下の範囲で輪郭の濃さを調整するものである。
【０２１４】
そして、計算されたopacityを用いて、
g[x,y] = (1-opacity)×s[x,y] + opacity×c
とする。
【０２１５】
このように、画素値の差に応じて輪郭に濃さを設ける際には、差が大きくなるほど輪郭が濃くなるような種々の濃さの設定手法を採用することができる。
【産業上の利用可能性】
【０２１６】
以上説明したように、本発明によれば、ゲーム世界を表す仮想空間に配置されるオブジェクトの輪郭を描画するのに好適なゲーム装置、ゲーム装置の制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【符号の説明】
【０２１７】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
１２１  ＨＤ
１３１  カメラ
２０１  ゲーム装置
２０２  生成部
２０３  抽出部
２０４  描画部
３０１  仮想空間
３０２  球オブジェクト
３０３  円柱オブジェクト
３０４  板オブジェクト
３０５  球オブジェクトの中心
３０６  円柱オブジェクトの中心軸
３０７  視点
３０８  視線
４０１  第１画像
４５１  従来例の画像
４５２  従来例の輪郭
５０１  第２画像
６０１  第３画像
６０２  輪郭
７０１  第４画像
【図１】
2013050895.tif 000003
【図２】
2013050895.tif 000004
【図３】
2013050895.tif 000005
【図４】
2013050895.tif 000006
【図５】
2013050895.tif 000007
【図６】
2013050895.tif 000008
【図７】
2013050895.tif 000009
【図８】
2013050895.tif 000010
【図９】
2013050895.tif 000011
【図１０】
2013050895.tif 000012
【図１１】
2013050895.tif 000013
【図１２】
2013050895.tif 000014
【図１３】
2013050895.tif 000015
【図１４】
2013050895.tif 000016
【図１５】
2013050895.tif 000017
【図１６】
2013050895.tif 000018