(57)【要約】【課題】主オブジェクトＭ１に直接的にピントを合わせるのではなく、副オブジェクトにピントを合わせた後に、主オブジェクトＭ１にピントを合わせることにより、突発的に発生する事象、たとえばピントブレのような事象を、リアリティのある映像で、提供する。【解決手段】本プログラムでは、まず、主オブジェクトＭ１として設定する。次に、主オブジェクトＭ１を基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する。最後に、最終的にピントを合わせるオブジェクトが、主オブジェクトＭ１となるように、少なくとも１つの副オブジェクト、主オブジェクトＭ１の順に、ピント順序が設定される。【選択図】図２
2011156061.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内のオブジェクトを仮想カメラによって撮影した状況を、表示可能なコンピュータの制御部に、
前記オブジェクトの中から、前記仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する主オブジェクト設定機能と、
前記主オブジェクトに前記仮想カメラのピントを合わせる際の前記仮想カメラの視野内において、前記主オブジェクトを基準として、前記仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および前記仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する副オブジェクト選択機能と、
前記主オブジェクト、および前記少なくとも１つの副オブジェクトに対する、前記仮想カメラのピントを合わせるピント順序を、設定するピント順序設定機能と、
を実現させ、
前記ピント順序設定機能では、最終的にピントを合わせるオブジェクトが、前記主オブジェクトとなるように、前記少なくとも１つの副オブジェクト、前記主オブジェクトの順に、前記ピント順序が設定される、
ゲームプログラム。
【請求項２】
前記コンピュータの制御部に、
前記副オブジェクトにピントを設定するためのピント設定用のシート画像を、生成する設定画像生成機能と、
前記ピント設定用のシート画像を複数の小画像に分割し、複数の前記小画像それぞれのコントラスト情報を調査することによって、前記ピント設定用のシート画像のコントラストを設定する画像情報設定機能と、
をさらに実現させ、
前記副オブジェクト選択機能では、前記ピント設定用のシート画像のコントラストに基づいて、前記副オブジェクトが選択される、
請求項１に記載のゲームプログラム。
【請求項３】
前記コンピュータの制御部に、
前記仮想空間に前記オブジェクトを配置するオブジェクト配置機能と、
前記仮想空間における前記仮想カメラの視野内の領域を、視錐領域として設定する視錐領域設定機能と、
前記仮想カメラの位置を基準として前記仮想カメラから離れる方向に、前記視錐領域を複数の区分領域に分割する視錐領域分割機能と、
を実現させ、
前記主オブジェクト設定機能では、複数の前記区分領域それぞれの内部に配置された前記オブジェクトの中から、前記主オブジェクトが設定され、
前記設定画像生成機能では、前記主オブジェクトを含む前記区分領域を除いた各区分領域の内部に配置されたオブジェクトを、前記視錐領域の仮想カメラ側の境界面に、投影することによって、前記ピント設定用のシート画像が生成される、
請求項２に記載のゲームプログラム。
【請求項４】
前記画像情報設定機能では、複数の前記小画像それぞれにおいて、隣接する前記小画像のコントラスト値の差を計算し、前記コントラスト値の差の最大値が、前記ピント設定用のシート画像のコントラストとして設定される、
請求項２又は３に記載のゲームプログラム。
【請求項５】
前記画像情報設定機能では、複数の前記小画像それぞれのコントラスト値を平均し、前記コントラスト値の平均の最大値が、前記ピント設定用のシート画像のコントラストとして設定される、
請求項２又は３に記載のゲームプログラム。
【請求項６】
前記副オブジェクト選択機能では、前記ピント設定用のシート画像のコントラストが所定の範囲内である場合に、前記副オブジェクトが選択される、
請求項２から５のいずれかに記載のゲームプログラム。
【請求項７】
前記副オブジェクト選択機能では、前記ピント設定用のシート画像のコントラストに基づいて、前記ピント設定用のシート画像における複数の前記小画像の中から、前記副オブジェクトのピント位置を設定するためのピント用の小画像が、特定され、前記視錐領域の仮想カメラ側の境界面上における前記ピント用の小画像の位置が、特定され、仮想カメラから、前記境界面上における前記ピント用の小画像の位置へと延びる直線が衝突するオブジェクトが、前記副オブジェクトとして選択される、
請求項２から６のいずれかに記載のゲームプログラム。
【請求項８】
前記コンピュータの制御部に、
前記ピント順序に基づいて、前記副オブジェクトおよび前記主オブジェクトのいずれか一方のオブジェクトを、対象オブジェクトとして設定するピント合わせ機能と、
前記対象オブジェクトにピントを合わせた状態で、表示用のシート画像を生成する表示画像生成機能と、
前記ピント順序に基づいて生成された前記表示用のシート画像を連続的に出力する命令を、発行することによって、仮想カメラによって撮影した状況を、表示する画像表示機能と、
をさらに実現させるための請求項１から７のいずれかに記載のゲームプログラム。
【請求項９】
前記コンピュータの制御部に、
前記仮想空間に前記オブジェクトを配置するオブジェクト配置機能と、
前記仮想空間における前記仮想カメラの視野内の領域を、視錐領域として設定する視錐領域設定機能と、
前記仮想カメラの位置を基準として前記仮想カメラから離れる方向に、前記視錐領域を複数の区分領域に分割する視錐領域分割機能と、
をさらに実現させ、
前記主オブジェクト設定機能では、複数の前記区分領域それぞれの内部に配置された前記オブジェクトの中から、前記主オブジェクトが設定され、
前記副オブジェクト選択機能では、前記主オブジェクトを含む前記区分領域を除いた他の前記区分領域に含まれる前記オブジェクトが、前記副オブジェクトとして選択され、
前記表示画像生成機能では、前記対象オブジェクトにピントを合わせた状態で、前記視錐領域の内部に配置されたオブジェクトを、前記視錐領域の仮想カメラ側の境界面に、投影することによって、前記表示用のシート画像が生成される、
請求項８に記載のゲームプログラム。
【請求項１０】
前記コンピュータの制御部に、
最も高いコントラストを、基準コントラストとして設定する基準コントラスト設定機能と、
をさらに実現させ、
前記ピント順序設定機能では、前記基準コントラストと前記ピント設定用のシート画像のコントラストとの差が小さい順に、前記副オブジェクトに対する前記ピント順序が設定され、最終的にピントを合わせるオブジェクトが前記主オブジェクトとなるように、前記主オブジェクトに対する前記ピント順序が設定される、
請求項２から９のいずれかに記載のゲームプログラム。
【請求項１１】
前記副オブジェクト選択機能では、前記仮想カメラと前記主オブジェクトとを結ぶラインの延長線に対して最も近いオブジェクト、および前記仮想カメラと前記オブジェクトとの間において前記ラインに最も近いオブジェクトの中の少なくともいずれか１つのオブジェクトが、前記副オブジェクトとして選択される、
請求項１から３のいずれかに記載のゲームプログラム。
【請求項１２】
仮想空間内のオブジェクトを仮想カメラによって撮影した状況を表示可能なゲーム装置であって、
前記ゲーム装置の制御部が、
前記オブジェクトの中から、前記仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する主オブジェクト設定手段と、
前記主オブジェクトに前記仮想カメラのピントを合わせる際の前記仮想カメラの視野内において、前記主オブジェクトを基準として、前記仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および前記仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する副オブジェクト選択手段と、
前記主オブジェクト、および前記少なくとも１つの副オブジェクトに対する、前記仮想カメラのピントを合わせるピント順序を、設定するピント順序設定手段と、
を備え、
前記ピント順序設定手段では、最終的にピントを合わせるオブジェクトが、前記主オブジェクトとなるように、前記少なくとも１つの副オブジェクト、前記主オブジェクトの順に、前記ピント順序が設定される、
ゲーム装置。
【請求項１３】
仮想空間内のオブジェクトを仮想カメラによって撮影した状況を表示可能なコンピュータにより、制御可能なゲーム制御方法であって、
前記コンピュータの制御部が、
前記オブジェクトの中から、前記仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する主オブジェクト設定ステップと、
前記主オブジェクトに前記仮想カメラのピントを合わせる際の前記仮想カメラの視野内において、前記主オブジェクトを基準として、前記仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および前記仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する副オブジェクト選択ステップと、
前記主オブジェクト、および前記少なくとも１つの副オブジェクトに対する、前記仮想カメラのピントを合わせるピント順序を、設定するピント順序設定ステップと、
を実行し、
前記ピント順序設定ステップでは、最終的にピントを合わせるオブジェクトが、前記主オブジェクトとなるように、前記少なくとも１つの副オブジェクト、前記主オブジェクトの順に、前記ピント順序が設定される、
ゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラム、特に、仮想空間内のオブジェクトを仮想カメラによって撮影した状況を、表示可能なゲームプログラムに関する。また、このゲームプログラムを実行可能なゲーム装置、およびこのゲームプログラムに基づいてコンピュータにより制御されるゲーム制御方法に関する。
【背景技術】
【０００２】
従来から、仮想空間の内部に配置されたオブジェクトを、仮想カメラによって撮影することによって、仮想空間の内部の状況を表示するゲームプログラムが、提案されている。このようなゲームプログラムは、たとえば、コンピュータやゲーム装置等のようなゲーム装置において、実行される。ゲーム装置は、たとえば、モニタと、モニタとは別体の装置本体と、装置本体とは別体の入力装置（ex. キーボード、マウス、およびコントローラ等）とを、有している。入力装置には、たとえば、複数の入力釦が配置されている。
【０００３】
このようなゲーム装置において上記のゲームプログラムを実行した場合、たとえば、仮想空間の内部に配置されたあるオブジェクト（第１オブジェクト）にピントを合わせた状態において、仮想空間の内部が仮想カメラによって撮影される。すると、この第１オブジェクトにピントが合った状態の画像が生成され、この画像がモニタに表示される。次の瞬間に、他のオブジェクト（第２オブジェクト）にピントが切り換えられた場合、第２オブジェクトにピントが合った状態の画像が生成され、この画像がモニタに表示される。たとえば、このゲームプログラムを野球ゲームに適用した場合、投手オブジェクトから打者オブジェクトへとピントが移動すると、打者オブジェクトにピントが合った画面から、投手オブジェクトにピントが合った画面へと切り換えられる（非特許文献１を参照）。
【０００４】
なお、仮想カメラで仮想空間の情景を映すときに、仮想カメラ自体が振動等の影響を受ける結果、映像にブレが生じることをゲームに反映したものは知られている。
【０００５】
例えば、特許文献１には、移動体（自転車）に追従してその移動体（自転車）の動きを撮影する仮想カメラが開示されており、この仮想カメラは振動を受けた画像を表現することで、移動体（自転車）が凹凸のある道路を走行している臨場感を演出するものである。
【０００６】
また、特許文献２には、コースに沿って走行する自動車を撮影する仮想カメラが開示されており、軸に沿って回転または移動することで自動車を追う画像が表現されるものであるが、仮想カメラに揺らぎが与えられることで、現実のカメラのような臨場感がもたらされることの開示がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−１７５７６６
【特許文献２】特開２０００−３３１１８４
【非特許文献】
【０００８】
【非特許文献１】プロ野球スピリッツ６、コナミデジタルエンタテインメント、ＰＳ３版、２００９年７月１６日
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のゲームプログラム、たとえば非特許文献１のゲームプログラムを、ゲーム装置において実行した場合、ピントを合わせる対象であるオブジェクト（第１オブジェクトや第２オブジェクト等）に確実にピントが合った画像が、モニタに表示されていた。
【００１０】
たとえば、野球ゲームにおいて、投手オブジェクトがモニタに表示されている状態で、打者オブジェクトがウェイティングサークルから打席に向かう場合、仮想カメラのピントが、投手オブジェクトから打者オブジェクトへと切り換えられる。すると、打者オブジェクトにピントが合った状態の画像が、モニタに表示される。すると、この後は、打者オブジェクトにピントが合った状態で、打者オブジェクトがウェイティングサークルから打席に向かう状況が、モニタに表示される。
【００１１】
一方で、現実世界の野球では、たとえば、投手を表示した映像から、打者を表示する映像へと切り換えた場合、カメラマンの手ぶれ等によるミスや、オートフォーカスの誤作動・誤認識等によって、映像を切り換えた瞬間に、カメラのピントのブレが生じることがある。そして、このブレが発生した場合、最終的には、カメラマンが手動で対象にピントを合わせることによって、このブレは修正される。そして、対象たとえば打者にピントが合った状態の画像が、モニタに表示される。
【００１２】
このように、野球ゲームのような仮想世界の映像と現実世界の映像とを比較すると、ピントを合わせた対象をモニタに確実に表示することは、従来の技術で再現できていた。しかしながら、対象を切り換えたときに発生する人為的なミスや誤認識等の事象、たとえば突発的に発生するピントブレのような事象をも含めて、仮想世界の映像を、現実世界の映像と同じように再現することは、従来の技術では困難であった。
【００１３】
なお、上記の特許文献１および特許文献２は、仮想空間内の仮想カメラ自体の振動を、単に映像のブレで表現し、カメラ映像に関するリアリティを追及するものではある。しかしながら、これらの文献は、前述のような、仮想カメラの対象を切り換えたときに発生する人為的なミスや誤認識等の事象、たとえば突発的に発生するピントブレのような事象に関するものではない。
【００１４】
本発明は、上記のような議論に鑑みてなされたものであり、本発明の目的は、現実世界において突発的に発生する事象を、仮想世界の映像において再現することによって、リアリティのある映像を提供できるようにすることにある。
【課題を解決するための手段】
【００１５】
請求項１に係るゲームプログラムは、仮想空間内のオブジェクトを仮想カメラによって撮影した状況を、表示可能なコンピュータの制御部に、以下の機能を実現させるためのプログラムである。
（１）オブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する主オブジェクト設定機能。
（２）主オブジェクトに仮想カメラのピントを合わせる際の仮想カメラの視野内において、主オブジェクトを基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する副オブジェクト選択機能。
（３）主オブジェクト、および少なくとも１つの副オブジェクトに対する、仮想カメラのピントを合わせるピント順序を、設定するピント順序設定機能。
【００１６】
このゲームプログラムでは、主オブジェクト設定機能において、オブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトが、主オブジェクトとして設定される。副オブジェクト選択機能においては、主オブジェクトに仮想カメラのピントを合わせる際の仮想カメラの視野内において、主オブジェクトを基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトが、副オブジェクトとして選択される。ピント順序設定機能においては、主オブジェクトおよび副オブジェクトに仮想カメラのピントを合わせるピント順序が、設定される。また、ピント順序設定機能では、最終的にピントを合わせるオブジェクトが、主オブジェクトとなるように、副オブジェクト、主オブジェクトの順に、ピント順序が設定される。
【００１７】
この場合、仮想カメラのピントを最終的に合わせる主オブジェクトが、設定されると、この主オブジェクトを基準として、仮想カメラに近接する側のオブジェクト、および仮想カメラから離反する側のオブジェクトが、副オブジェクトとして設定される。すると、最終的にピントを合わせるオブジェクトが、主オブジェクトとなるように、副オブジェクト、主オブジェクトの順に、ピント順序が設定される。
【００１８】
ここでは、まず、主オブジェクトを基準として、仮想カメラに近接する側の副オブジェクト、および仮想カメラから離反する側の副オブジェクトの少なくともいずれか一方の副オブジェクトにピントが合わせられ、次に、主オブジェクトにピントが合わせられる。このことを具体的に説明すると、主オブジェクトが、ある場面においてピントを合わせる対象である場合、ピント順序に基づいて、まず、仮想カメラ側に近づく側の副オブジェクト（or 仮想カメラ側から離れる側の副オブジェクト）にピントが合わせられる。次に、仮想カメラ側から離れる側の副オブジェクト（or 仮想カメラ側に近づく側の副オブジェクト）にピントが合わせられる。最後に、この場面でピントを合わせる対象である主オブジェクトに、ピントが合わせられる。
【００１９】
このように、主オブジェクトに対して、最初から直接的にピントを合わせるのではなく、まず、副オブジェクトにピントを合わせ、その後に、主オブジェクトにピントを合わせることにより、現実世界において突発的に発生する事象、たとえばカメラのピントブレのような事象を、映像上で再現することができる。これにより、リアリティのある映像を提供することができる。
【００２０】
なお、ここで用いる「オブジェクト」という文言は、仮想空間に配置される、たとえば、空、雲、太陽等のような自然に関するオブジェクト、建物、スタジアム、橋等のような建造物に関するオブジェクト、車、バイク、自転車等のような移動体に関するオブジェクト、および人間、鳥、犬、猫等のような動物に関するオブジェクトを総称する文言である。すなわち、「オブジェクト」という文言は、画像を表示するために用いられる全てのオブジェクトに対応する文言である。また、主オブジェクトおよび副オブジェクトは、この「オブジェクト」に含まれる。
【００２１】
請求項２に係るゲームプログラムは、請求項１に記載のゲームプログラムにおいて、コンピュータの制御部に、以下の機能をさらに実現させるためのプログラムである。
（４）副オブジェクトにピントを設定するためのピント設定用のシート画像を、生成する設定画像生成機能。
（５）ピント設定用のシート画像を複数の小画像に分割し、複数の小画像それぞれのコントラスト情報を調査することによって、ピント設定用のシート画像のコントラストを設定する画像情報設定機能。
【００２２】
このゲームプログラムでは、設定画像生成機能において、副オブジェクトにピントを設定するためのピント設定用のシート画像が、生成される。画像情報設定機能においては、ピント設定用のシート画像を複数の小画像に分割し、複数の小画像それぞれのコントラスト情報を調査することによって、ピント設定用のシート画像のコントラストが設定される。副オブジェクト選択機能においては、ピント設定用のシート画像のコントラストに基づいて、副オブジェクトが選択される。
【００２３】
この場合、副オブジェクトにピントを設定するためのピント設定用のシート画像が、複数の小画像に分割され、これら複数の小画像それぞれのコントラスト情報が調査される。これにより、ピント設定用のシート画像のコントラストが設定され、このコントラストに基づいて、副オブジェクトが選択される。このように、ピント設定用のシート画像のコントラストに基づいて副オブジェクトを選択することによって、コントラスト情報に基づいたピント設定を、副オブジェクトに対して行うことができる。このように、コントラスト情報に基づいたピント設定を、副オブジェクトに対して行うことによって、ピントブレが発生したときの画像、すなわち副オブジェクトにピントが合った画像を、よりリアリティのあるものにすることができる。
【００２４】
請求項３に係るゲームプログラムは、請求項２に記載のゲームプログラムにおいて、コンピュータの制御部に、以下の機能をさらに実現させるためのプログラムである。
（６）仮想空間にオブジェクトを配置するオブジェクト配置機能。
（７）仮想空間における仮想カメラの視野内の領域を、視錐領域として設定する視錐領域設定機能。
（８）仮想カメラの位置を基準として仮想カメラから離れる方向に、視錐領域を複数の区分領域に分割する視錐領域分割機能。
【００２５】
このゲームプログラムでは、オブジェクト配置機能において、仮想空間にオブジェクトが配置される。視錐領域設定機能においては、仮想空間における仮想カメラの視野内の領域が、視錐領域として設定される。視錐領域分割機能においては、視錐領域が、仮想カメラの位置を基準として仮想カメラから離れる方向に、複数の区分領域に分割される。主オブジェクト設定機能においては、複数の区分領域それぞれの内部に配置されたオブジェクトの中から、主オブジェクトが設定される。設定画像生成機能では、主オブジェクトを含む区分領域を除いた各区分領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に、投影することによって、ピント設定用のシート画像が生成される。
【００２６】
この場合、主オブジェクトを含む区分領域を除いた各区分領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に、投影することによって、ピント設定用のシート画像が生成される。たとえば、視錐領域が、仮想カメラから離れる方向に３つに分割され、各区分領域が、仮想カメラに近い方から、第１区分領域、第２区分領域、および第３区分領域であり、第２区分領域に主オブジェクトが含まれる場合、第１区分領域だけに含まれるオブジェクトが、視錐領域の仮想カメラ側の境界面に、投影される。また、第３区分領域だけに含まれるオブジェクトが、視錐領域の仮想カメラ側の境界面に、投影される。このようにして、第１区分領域に対応するシート画像（ピント設定用のシート画像）、および第３区分領域に対応するシート画像（ピント設定用のシート画像）が、生成される。
【００２７】
このように、各区分領域（ex. 第１区分領域又は第３区分領域）の内部に配置されるオブジェクトだけを用いて、シート画像を生成することによって、１つの区分領域内のオブジェクトだけを対象としたコントラストを、シート画像に反映することができる。そして、シート画像に反映されたコントラストに基づいて、副オブジェクトを選択することによって、ピントブレが発生したときにピントを合わせるオブジェクトすなわち副オブジェクトを、正確に特定することができる。
【００２８】
請求項４に係るゲームプログラムでは、請求項２又は３に記載のゲームプログラムにおいて、複数の小画像それぞれにおいて、隣接する小画像のコントラスト値の差を計算し、コントラスト値の差の最大値が、ピント設定用のシート画像のコントラストとして設定される。この機能は、画像情報設定機能において実現される。
【００２９】
この場合、ピント設定用のシート画像において、隣接する小画像のコントラスト値の差の最大値が、ピント設定用のシート画像のコントラストとして設定される。このコントラストを用いて、副オブジェクトを選択することによって、ピントブレが発生したときに、主オブジェクトとは異なる副オブジェクトにピントを合わせたとしても、この副オブジェクトにピントを合わせた画像を、現実世界の画像と比較して違和感のない画像にすることができる。
【００３０】
請求項５に係るゲームプログラムでは、請求項２又は３に記載のゲームプログラムにおいて、複数の小画像それぞれのコントラスト値を平均し、コントラスト値の平均の最大値が、ピント設定用のシート画像のコントラストとして設定される。この機能は、画像情報設定機能において実現される。
【００３１】
この場合、ピント設定用のシート画像において、小画像のコントラスト値の平均の最大値が、ピント設定用のシート画像のコントラストとして設定される。このコントラストを用いて、副オブジェクトを選択することによって、ピントブレが発生したときに、主オブジェクトとは異なる副オブジェクトにピントを合わせたとしても、この副オブジェクトにピントを合わせた画像を、現実世界の画像と比較して違和感のない画像にすることができる。
【００３２】
請求項６に係るゲームプログラムでは、請求項２から５のいずれかに記載のゲームプログラムにおいて、ピント設定用のシート画像のコントラストが所定の範囲内である場合に、副オブジェクトが選択される。この機能は、副オブジェクト選択機能において実現される。
【００３３】
この場合、ピント設定用のシート画像のコントラストが所定の範囲内である場合に、副オブジェクトが選択される。すなわち、ここでは、コントラストが所定の範囲内である場合には副オブジェクトが選択され、コントラストが所定の範囲外である場合には副オブジェクトは選択されない。これにより、たとえば、コントラストが高い場合にのみ、副オブジェクトを選択し、コントラストが低い場合は、副オブジェクトを選択しないように制御することができる。すなわち、コントラストが高い部分が存在する場合にのみ、ピントブレを発生させるための副オブジェクトを、選択することができる。
【００３４】
請求項７に係るゲームプログラムでは、請求項２から６のいずれかに記載のゲームプログラムにおいて、ピント設定用のシート画像のコントラストに基づいて、ピント設定用のシート画像における複数の小画像の中から、副オブジェクトのピント位置を設定するためのピント用の小画像が、特定される。すると、視錐領域の仮想カメラ側の境界面上におけるピント用の小画像の位置が、特定される。そして、仮想カメラから、視錐領域の仮想カメラ側の境界面上におけるピント用の小画像の位置へと延びる直線が衝突するオブジェクトが、副オブジェクトとして選択される。
【００３５】
この場合、まず、仮想カメラから、視錐領域の仮想カメラ側の境界面上におけるピント用の小画像の位置へと延びる直線が、設定される。そして、各区分領域の内部において、この直線が衝突したオブジェクトが、副オブジェクトとして選択される。たとえば、隣接する小画像のコントラスト値の差の最大値や、小画像のコントラスト値の平均の最大値等が、ピント設定用のシート画像のコントラストとして設定された場合、この値を有する小画像を上記の直線が通過し衝突したオブジェクトが、副オブジェクトとして選択される。このように、コントラスト情報に基づいて、ピントを合わせるオブジェクトすなわち副オブジェクトを、確実に特定することができる。
【００３６】
請求項８に係るゲームプログラムは、請求項１から７のいずれかに記載のゲームプログラムにおいて、コンピュータの制御部に、以下の機能をさらに実現させるためのプログラムである。
（８）ピント順序に基づいて、副オブジェクトおよび主オブジェクトのいずれか一方のオブジェクトを、対象オブジェクトとして設定するピント合わせ機能。
（９）対象オブジェクトにピントを合わせた状態で、表示用のシート画像を生成する表示画像生成機能。
（１０）ピント順序に基づいて生成された表示用のシート画像を連続的に出力する命令を、発行することによって、仮想カメラによって撮影した状況を、表示する画像表示機能。
【００３７】
このゲームプログラムでは、ピント合わせ機能において、ピント順序に基づいて、副オブジェクトおよび主オブジェクトのいずれか一方のオブジェクトが、対象オブジェクトとして設定される。表示画像生成機能においては、対象オブジェクトにピントを合わせた状態で、表示用のシート画像が生成される。画像表示機能においては、ピント順序に基づいて生成された表示用のシート画像を連続的に出力する命令を、発行することによって、仮想カメラによって撮影した状況が、表示される。
【００３８】
この場合、ピント順序に基づいて、対象オブジェクト（副オブジェクトおよび主オブジェクトのいずれか一方のオブジェクト）にピントを合わせ、この対象オブジェクトに対応する表示用のシート画像を生成することによって、対象を切り換えたときに発生する人為的なミスや誤認識等の事象、たとえば突発的に発生するピントブレのような事象を、リアリティのある映像で表示することができる。
【００３９】
請求項９に係るゲームプログラムは、請求項８に記載のゲームプログラムにおいて、コンピュータの制御部に、以下の機能をさらに実現させるためのプログラムである。
（１１）仮想空間にオブジェクトを配置するオブジェクト配置機能。
（１２）仮想空間における仮想カメラの視野内の領域を、視錐領域として設定する視錐領域設定機能。
（１３）仮想カメラの位置を基準として仮想カメラから離れる方向に、視錐領域を複数の区分領域に分割する視錐領域分割機能。
【００４０】
このゲームプログラムでは、オブジェクト配置機能において、仮想空間にオブジェクトが配置される。視錐領域設定機能においては、仮想空間における仮想カメラの視野内の領域が、視錐領域として設定される。視錐領域分割機能においては、視錐領域が、仮想カメラの位置を基準として仮想カメラから離れる方向に、複数の区分領域に分割される。主オブジェクト設定機能においては、複数の区分領域それぞれの内部に配置されたオブジェクトの中から、主オブジェクトが設定される。副オブジェクト選択機能においては、主オブジェクトを含む区分領域を除いた他の区分領域に含まれるオブジェクトが、副オブジェクトとして選択される。表示画像生成機能においては、対象オブジェクトにピントを合わせた状態で、視錐領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に、投影することによって、表示用のシート画像が生成される。
【００４１】
この場合、ある区分領域おいて主オブジェクトが設定され、この区分領域を除いた他の区分領域において副オブジェクトが設定される。そして、副オブジェクトおよび主オブジェクトのいずれか一方のオブジェクト（対象オブジェクト）にピントを合わせた状態で、視錐領域（全ての区分領域）の内部に配置されたオブジェクトが、視錐領域の仮想カメラ側の境界面に、投影される。これにより、副オブジェクトにピントを合わせた状態のシート画像（表示用の副シート画像）、および主オブジェクトにピントを合わせた状態のシート画像（表示用の主シート画像）が生成される。これらシート画像は、ピント位置が互いに異なるので、これらシート画像を、表示用の副シート画像、表示用の主シート画像の順に表示することによって、対象を切り換えたときに発生する人為的なミスや誤認識等の事象、たとえば突発的に発生するピントブレのような事象を、リアリティのある映像で表示することができる。
【００４２】
請求項１０に係るゲームプログラムは、請求項２から９のいずれかに記載のゲームプログラムにおいて、コンピュータの制御部に、以下の機能をさらに実現させるためのプログラムである。
（１４）最も高いコントラストを、基準コントラストとして設定する基準コントラスト設定機能。
【００４３】
このゲームプログラムでは、基準コントラスト設定機能において、最も高いコントラストが、基準コントラストとして設定される。ピント順序設定機能おいては、基準コントラストとピント設定用のシート画像のコントラストとの差が小さい順に、副オブジェクトに対するピント順序が設定され、最終的にピントを合わせるオブジェクトが主オブジェクトとなるように、主オブジェクトに対するピント順序が設定される。
【００４４】
この場合、基準コントラスト（最も高いコントラスト）とピント設定用のシート画像のコントラストとの差が小さい順に、副オブジェクトに対するピント順序が設定される。また、このピント順序では、最終的にピントを合わせるオブジェクトが主オブジェクトとなっている。これにより、副オブジェクトにピントを合わせた画像は、コントラストの高い順に表示され、主オブジェクトにピントを合わせた画像は、最後に表示される。これにより、対象を切り換えたときに発生する人為的なミスや誤認識等の事象、たとえば突発的に発生するピントブレのような事象を、現実世界におけるカメラが撮影した映像と比較して違和感のない映像で、表示することができる。
【００４５】
請求項１１に係るゲームプログラムでは、請求項１に記載のゲームプログラムにおいて、仮想カメラと主オブジェクトとを結ぶラインの延長線に対して最も近いオブジェクト、および仮想カメラとオブジェクトとの間においてラインに最も近いオブジェクトの中の少なくともいずれか１つのオブジェクトが、副オブジェクトとして選択される。この機能は、副オブジェクト選択機能において実現される。
【００４６】
この場合、仮想カメラと主オブジェクトとを結ぶラインの延長線に最も近いオブジェクトを第１オブジェクト、仮想カメラとオブジェクトとの間においてラインに最も近いオブジェクトを第２オブジェクトとすると、これら第１オブジェクトおよび第２オブジェクトの中の少なくともいずれか１つのオブジェクトが、副オブジェクトとして選択される。これにより、仮想カメラの視線を基準として、この視線に近いオブジェクトを副オブジェクトとして選択することができるので、対象を切り換えたときに発生する人為的なミスや誤認識等の事象、たとえば突発的に発生するピントブレのような事象を、ピントが左右に大きく移動することのない映像で、表示することができる。
【００４７】
請求項１２に係るゲーム装置は、仮想空間内のオブジェクトを仮想カメラによって撮影した状況を表示可能なゲーム装置である。このゲーム装置では、ゲーム装置の制御部が、オブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する主オブジェクト設定手段と、主オブジェクトに仮想カメラのピントを合わせる際の仮想カメラの視野内において、主オブジェクトを基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する副オブジェクト選択手段と、主オブジェクト、および少なくとも１つの副オブジェクトに対する、仮想カメラのピントを合わせるピント順序を、設定するピント順序設定手段と、を備えている。ここでは、ピント順序設定手段において、最終的にピントを合わせるオブジェクトが、主オブジェクトとなるように、少なくとも１つの副オブジェクト、主オブジェクトの順に、ピント順序が設定される。
【００４８】
請求項１３に係るゲーム制御方法は、仮想空間内のオブジェクトを仮想カメラによって撮影した状況を表示可能なコンピュータにより、制御可能なゲーム制御方法である。このゲーム制御方法では、コンピュータの制御部が、オブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する主オブジェクト設定ステップと、主オブジェクトに仮想カメラのピントを合わせる際の仮想カメラの視野内において、主オブジェクトを基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する副オブジェクト選択ステップと、主オブジェクト、および少なくとも１つの副オブジェクトに対する、仮想カメラのピントを合わせるピント順序を、設定するピント順序設定ステップと、を実行する。ここでは、ピント順序設定ステップにおいて、最終的にピントを合わせるオブジェクトが、主オブジェクトとなるように、少なくとも１つの副オブジェクト、主オブジェクトの順に、ピント順序が設定される。
【発明の効果】
【００４９】
本発明では、主オブジェクトに直接的にピントを合わせるのではなく、副オブジェクトにピントを合わせた後に、主オブジェクトにピントを合わせることにより、現実世界において突発的に発生する事象、たとえばカメラのピントブレのような事象を、映像上で再現することができる。これにより、リアリティのある映像を提供することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態によるゲーム装置の基本構成図。
【図２】前記ゲーム装置の一例としての機能ブロック図。
【図３】視錐領域を説明するための図。
【図４】区分領域および主オブジェクトを説明するための図。
【図５】ピント設定用のシート画像を説明するための図。
【図６】コントラストの一設定形態を説明するための図。
【図７】副オブジェクトの一設定形態を説明するための図。
【図８】ピントブレが発生したときのモニタ画像を示す図。
【図９】他の実施形態を説明するための図。
【図１０】野球ゲームの全体概要を説明するためのフロー
【図１１】野球ゲームにおけるピントブレ再現システムを示すフロー。
【発明を実施するための形態】
【００５１】
〔ゲーム装置の構成および動作〕
以下では、ゲーム装置をゲーム装置として用いる場合の例を、一例として説明を行う。図１は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ゲーム装置の一例として、家庭用ゲーム装置をとりあげて説明を行うこととする。家庭用ゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体１０が装填可能となっており、記録媒体１０からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
【００５２】
家庭用ゲーム装置は、制御部１と、記憶部２と、画像表示部３と、音声出力部４と、操作入力部５とからなっており、それぞれがバス６を介して接続される。このバス６は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部１、記憶部２、音声出力部４および操作入力部５は、家庭用ゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部３は家庭用テレビジョンに含まれている。
【００５３】
制御部１は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部１は、たとえば、ＣＰＵ（Central Processing Unit）７と、信号処理プロセッサ８と、画像処理プロセッサ９とから構成されている。ＣＰＵ７と信号処理プロセッサ８と画像処理プロセッサ９とは、それぞれがバス６を介して互いに接続されている。ＣＰＵ７は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、ＣＰＵ７は、信号処理プロセッサ８に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ８は、主に、３次元空間上における計算と、３次元空間上から擬似３次元空間上への位置変換計算と、光源計算処理と、画像および音声データの生成加工処理とを行っている。画像処理プロセッサ９は、主に、信号処理プロセッサ８の計算結果および処理結果に基づいて、描画すべき画像データをＲＡＭ１２に書き込む処理を行っている。
【００５４】
記憶部２は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部２は、たとえば、記録媒体１０と、インターフェース回路１１と、ＲＡＭ（Random Access Memory）１２とから構成されている。記録媒体１０には、インターフェース回路１１が接続されている。そして、インターフェース回路１１とＲＡＭ１２とはバス６を介して接続されている。記録媒体１０は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体１０は、たとえば、ＲＯＭ（Read Only Memory）カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体１０にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。ＲＡＭ１２は、記録媒体１０から読み出された各種データを一時的に格納したり、制御部１からの処理結果を一時的に記録したりするために用いられる。このＲＡＭ１２には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
【００５５】
画像表示部３は、主に、画像処理プロセッサ９によってＲＡＭ１２に書き込まれた画像データや、記録媒体１０から読み出される画像データなどを画像として出力するために設けられている。この画像表示部３は、たとえば、テレビジョンモニタ２０と、インターフェース回路２１と、Ｄ／Ａコンバータ（Digital-To-Analogコンバータ）２２とから構成されている。テレビジョンモニタ２０にはＤ／Ａコンバータ２２が接続されており、Ｄ／Ａコンバータ２２にはインターフェース回路２１が接続されている。そして、インターフェース回路２１にバス６が接続されている。ここでは、画像データが、インターフェース回路２１を介してＤ／Ａコンバータ２２に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ２０に画像として出力される。
【００５６】
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ８により、ポリゴンアドレスデータの示す３次元空間上のポリゴンデータ（３次元ポリゴンデータ）が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、２次元空間上のポリゴンデータ（２次元ポリゴンデータ）に置換される。そして、複数の２次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータが書き込まれる。
【００５７】
音声出力部４は、主に、記録媒体１０から読み出される音声データを音声として出力するために設けられている。音声出力部４は、たとえば、スピーカー１３と、増幅回路１４と、Ｄ／Ａコンバータ１５と、インターフェース回路１６とから構成されている。スピーカー１３には増幅回路１４が接続されており、増幅回路１４にはＤ／Ａコンバータ１５が接続されており、Ｄ／Ａコンバータ１５にはインターフェース回路１６が接続されている。そして、インターフェース回路１６にバス６が接続されている。ここでは、音声データが、インターフェース回路１６を介してＤ／Ａコンバータ１５に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路１４によって増幅され、スピーカー１３から音声として出力される。音声データには、たとえば、ＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）データやＰＣＭ（Pulse Code Modulation）データなどがある。ＡＤＰＣＭデータの場合、上述と同様の処理方法で音声をスピーカー１３から出力することができる。ＰＣＭデータの場合、ＲＡＭ１２においてＰＣＭデータをＡＤＰＣＭデータに変換しておくことで、上述と同様の処理方法で音声をスピーカー１３から出力することができる。
【００５８】
操作入力部５は、主に、コントローラ１７と、操作情報インターフェース回路１８と、インターフェース回路１９とから構成されている。コントローラ１７には、操作情報インターフェース回路１８が接続されており、操作情報インターフェース回路１８にはインターフェース回路１９が接続されている。そして、インターフェース回路１９にバス６が接続されている。
【００５９】
コントローラ１７は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をＣＰＵ７に送出する。コントローラ１７には、第１ボタン１７ａ、第２ボタン１７ｂ、第３ボタン１７ｃ、第４ボタン１７ｄ、上方向キー１７Ｕ、下方向キー１７Ｄ、左方向キー１７Ｌ、右方向キー１７Ｒ、Ｌ１ボタン１７Ｌ１、Ｌ２ボタン１７Ｌ２、Ｒ１ボタン１７Ｒ１、Ｒ２ボタン１７Ｒ２、スタートボタン１７ｅ、セレクトボタン１７ｆ、左スティック１７ＳＬ及び右スティック１７ＳＲが設けられている。
【００６０】
上方向キー１７Ｕ、下方向キー１７Ｄ、左方向キー１７Ｌ及び右方向キー１７Ｒは、例えば、キャラクタやカーソルをテレビジョンモニタ２０の画面上で上下左右に移動させるコマンドをＣＰＵ７に与えるために使用される。
【００６１】
スタートボタン１７ｅは、記録媒体１０からゲームプログラムをロードするようにＣＰＵ７に指示するときや、実行中のゲームプログラムを一時停止するときなどに使用される。
【００６２】
セレクトボタン１７ｆは、記録媒体１０からロードされたゲームプログラムに対して、各種選択をＣＰＵ７に指示するときなどに使用される。
【００６３】
左スティック１７ＳＬ及び右スティック１７ＳＲは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む３６０°方向に亘って、傾倒可能な構成になっている。左スティック１７ＳＬ及び右スティック１７ＳＲは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするｘ座標及びｙ座標の値を、操作信号として操作情報インターフェース回路１８とインターフェース回路１９とを介してＣＰＵ７に送出する。
【００６４】
第１ボタン１７ａ、第２ボタン１７ｂ、第３ボタン１７ｃ、第４ボタン１７ｄ、Ｌ１ボタン１７Ｌ１、Ｌ２ボタン１７Ｌ２、Ｒ１ボタン１７Ｒ１及びＲ２ボタン１７Ｒ２には、記録媒体１０からロードされるゲームプログラムに応じて種々の機能が割り振られている。
【００６５】
なお、左スティック１７ＳＬ及び右スティック１７ＳＲを除くコントローラ１７の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
【００６６】
通信部２３は、通信制御回路２４および通信インターフェース２５を有している。通信制御回路２４および通信インターフェース２５は、ゲーム装置をサーバや他のゲーム装置等に接続するために用いられる。通信制御回路２４および通信インターフェース２５は、バス６を介してＣＰＵ７に接続されている。通信制御回路２４および通信インターフェース２５は、ＣＰＵ７からの命令に応じて、ゲーム装置をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路２４および通信インターフェース２５は、インターネットを介してゲーム装置をサーバや他のゲーム装置に接続するための接続信号を制御し発信する。
【００６７】
以上のような構成からなる家庭用ゲーム装置の概略動作を、以下に説明する。電源スイッチ（図示省略）がオンにされゲームシステムに電源が投入されると、ＣＰＵ７が、記録媒体１０に記憶されているオペレーティングシステムに基づいて、記録媒体１０から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、ＲＡＭ１２に格納される。そして、ＣＰＵ７が、ＲＡＭ１２に格納されたプログラムデータに基づいて、ＲＡＭ１２に格納された画像データや音声データにコマンドを発行する。
【００６８】
画像データの場合、ＣＰＵ７からのコマンドに基づいて、まず、信号処理プロセッサ８が、３次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ９が、信号処理プロセッサ８の計算結果に基づいて、描画すべき画像データのＲＡＭ１２への書き込み処理などを行う。そして、ＲＡＭ１２に書き込まれた画像データが、インターフェース回路２１を介してＤ／Ａコンバータ２２に供給される。ここで、画像データがＤ／Ａコンバータ２２でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ２０に供給され画像として表示される。
【００６９】
音声データの場合、まず、信号処理プロセッサ８が、ＣＰＵ７からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ８から出力されて、インターフェース回路１６を介してＤ／Ａコンバータ１５に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路１４を介してスピーカー１３から音声として出力される。
【００７０】
〔ゲーム装置における各種処理概要〕
本ゲーム装置において実行されるゲームは、たとえば、野球ゲームである。本ゲーム装置では、３次元ゲーム空間内のオブジェクトを仮想カメラによって撮影した状況が、表示可能になっている。図２は、以下に示す、本発明で主要な役割を果たす機能を、説明するための機能ブロック図である。なお、以下の各手段は、主に制御部１において制御される。
【００７１】
基準コントラスト設定手段５０は、最も高いコントラストを、基準コントラストとして設定する機能を備えている。
【００７２】
この手段では、最も高いコントラストを、基準コントラストとして設定する処理が、制御部１において実行される。たとえば、記憶部２に格納された所定のコントラスト値、すなわち最大コントラストを表現するコントラスト値が、基準コントラスト値として認識する処理が、制御部１において実行される。ここでは、グレースケールのコントラスト値が用いられ、このグレースケールのコントラスト値が、０以上２５６以下の範囲のコントラスト値で表現される。この場合、最大コントラストを表現するコントラスト値、すなわち基準コントラスト値は、１２８に設定される。このようなグレースケールのコントラスト値を規定する各種データは、記憶部２に格納されており、これらの各種データは、必要に応じて、記憶部２から読み出され、処理に利用される。
【００７３】
オブジェクト配置手段５１は、３次元ゲーム空間にオブジェクトを配置する機能を備えている。
【００７４】
この手段では、３次元ゲーム空間にオブジェクトを配置する処理が、制御部１において実行される。たとえば、野球ゲームでテレビジョンモニタ２０にされるオブジェクト、たとえば、スタジアム、選手、審判、観客、空、雲、太陽、月等のようなオブジェクトを、３次元ゲーム空間に配置する処理が、制御部１において実行される。より具体的には、各オブジェクトを、３次元ゲーム空間に配置するための位置座標データが、記憶部２から読み出され、この位置座標データが示す位置に、各オブジェクトを配置する処理が、制御部１において実行される。
【００７５】
なお、ここでは、各ポリゴンにテクスチャが貼り付けられた３次元の物体を、オブジェクト（モデル）と定義している。このオブジェクトを定義するための各種データは、記憶部２に格納されており、これら各種データは、必要に応じて、記憶部２から読み出され、処理に利用される。また、各オブジェクトを３次元ゲーム空間に配置するための位置座標データも、記憶部２に格納されており、これら各種データも、必要に応じて、記憶部２から読み出され、処理に利用される。
【００７６】
視錐領域設定手段５２は、３次元ゲーム空間における仮想カメラの視野内の領域を、視錐領域として設定する機能を備えている。
【００７７】
この手段では、３次元ゲーム空間における仮想カメラの視野内の領域を、視錐領域として設定する処理が、制御部１において実行される。
【００７８】
たとえば、まず、仮想カメラを３次元ゲーム空間の所定の位置に配置する処理、すなわち仮想カメラの視点を設定する処理が、制御部１において実行される。次に、この仮想カメラの位置を基準として、仮想カメラの注視点を３次元ゲーム空間の所定の位置に配置する処理が、制御部１において実行される。続いて、仮想カメラの画角を設定する処理が、制御部１において実行される。続いて、カメラ視点側の面（ニアー面）およびカメラ視点から離反する側の面（ファー面）を設定する処理が、制御部１において実行される。これにより、ニアー面とファー面との間の領域が、視錐領域として、３次元ゲーム空間の内部に設定される。
【００７９】
なお、仮想カメラの視点位置を規定するための位置座標データ、画角を規定するための画角データ、第１面および第２面を規定するための位置座標データは、記憶部２に格納されており、これら各種データは、必要に応じて、記憶部２から読み出され、処理に利用される。
【００８０】
視錐領域分割手段５３は、仮想カメラの位置を基準として仮想カメラから離れる方向に、視錐領域を複数の区分領域に分割する機能を備えている。
【００８１】
この手段では、仮想カメラの位置を基準として仮想カメラから離れる方向に、視錐領域を複数の区分領域に分割する処理が、制御部１において実行される。たとえば、視錐領域を仮想カメラから離れる方向に３つに分割する場合、まず、ニアー面とファー面との間において仮想カメラの視線方向に沿った距離を、３つに等分割する処理が、制御部１において実行される。次に、ニアー面を基準として、ニアー面からファー面に向かう方向へ所定の距離を隔てた位置に、第１面を設定する処理が、制御部１において実行される。続いて、この第１面を基準として、ニアー面からファー面に向かう方向へ所定の距離を隔てた位置に、第２面を設定する処理が、制御部１において実行される。これにより、視錐領域を仮想カメラから離れる方向に３つに分割することができる。ここでは、ニアー面と第１面との間の領域を、第１区分領域と表記し、第１面と第２面との間の領域を、第２区分領域と表記し、第２面とファー面との間の領域を、第３区分領域と表記する。すなわち、各区分領域を、仮想カメラに近い方から、第１区分領域、第２区分領域、および第３区分領域と表記する。
【００８２】
主オブジェクト設定手段５４は、オブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する機能を備えている。また、主オブジェクト設定手段５４は、複数の区分領域それぞれの内部に配置されたオブジェクトの中から、主オブジェクトを設定する機能を備えている。
【００８３】
この手段では、３次元ゲーム空間の視錐領域の内部に配置されたオブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトを、主オブジェクトとして設定する処理が、制御部１において実行される。たとえば、複数の区分領域から構成される視錐領域の内部に配置されたオブジェクトの中から、主オブジェクトを設定する処理が、制御部１において実行される。より具体的には、第１区分領域、第２区分領域、および第３区分領域から構成される視錐領域の内部に配置されたオブジェクトの中から、主オブジェクトを選択し、この主オブジェクトにおいてピントを合わせる位置を設定する処理が、制御部１において実行される。
【００８４】
なお、主オブジェクトに対するピント位置は、ゲームプログラムにおいて予め規定されており、この位置を定義するための位置座標データは、記憶部２に格納されている。以下では、たとえば、第２区分領域の内部に配置された打者オブジェクトが、主オブジェクトとして設定された場合を、一例として、説明を行う。
【００８５】
設定画像生成手段５５は、副オブジェクトにピントを設定するためのピント設定用のシート画像を、生成する機能を備えている。詳細には、設定画像生成手段５５は、主オブジェクトを含む区分領域を除いた各区分領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に、投影することによって、ピント設定用のシート画像を生成する機能を備えている。
【００８６】
この手段では、主オブジェクトを含む区分領域を除いた各区分領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に投影する処理が、制御部１において実行される。たとえば、第１区分領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に投影する処理が、制御部１において実行される。これにより、副オブジェクトにピントを設定するためのピント設定用のシート画像（ピント設定用の第１シート画像）が、生成される。このピント設定用の第１シート画像は、主オブジェクトを基準として仮想カメラ側に配置された副オブジェクトに対して、ピントを設定するためのものである。また、第３区分領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に投影する処理が、制御部１において実行される。これにより、副オブジェクトにピントを設定するためのピント設定用のシート画像（ピント設定用の第２シート画像）が、生成される。このピント設定用の第２シート画像は、主オブジェクトを基準として仮想カメラから離反する側に配置された副オブジェクトに対してピントを設定するためのものである。
【００８７】
画像情報設定手段５６は、ピント設定用のシート画像を複数の小画像に分割し、複数の小画像それぞれのコントラスト情報を調査することによって、ピント設定用のシート画像のコントラストを設定する機能を備えている。詳細には、画像情報設定手段５６は、複数の小画像それぞれにおいて、隣接する小画像のコントラスト値の差を計算し、コントラスト値の差の最大値を、ピント設定用のシート画像のコントラストとして設定する機能を備えている。
【００８８】
この手段では、複数の小画像それぞれにおいて、隣接する小画像のコントラスト値の差を計算し、コントラスト値の差の最大値を、ピント設定用のシート画像のコントラストとして設定する処理が、制御部１において実行される。具体的には、隣接する小画像のコントラスト値の差を計算し、この差に基づいて、ピント設定用のシート画像のコントラストを設定する処理が、制御部１において実行される。
【００８９】
副オブジェクト選択手段５７は、主オブジェクトに仮想カメラのピントを合わせる際の仮想カメラの視野内において、主オブジェクトを基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトを、副オブジェクトとして選択する機能を備えている。
【００９０】
この手段では、主オブジェクトに仮想カメラのピントを合わせる際の仮想カメラの視野内において、主オブジェクトを基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトが、副オブジェクトとして選択する処理が、制御部１において実行される。
【００９１】
たとえば、主オブジェクトを含む第２区分領域をより仮想カメラ側に位置する第１区分領域に含まれるオブジェクトを、副オブジェクトとして選択する処理が、制御部１において実行される。また、第２区分領域を基準として、仮想カメラから離反する方向に位置する第３区分領域に含まれるオブジェクトを、副オブジェクトとして選択する処理が、制御部１において実行される。
【００９２】
ここで、副オブジェクトを選択する処理は、ピント設定用のシート画像のコントラストに基づいて、制御部１において実行される。なお、ここで用いるピント設定用のシート画像は、上記の設定画像生成手段５５において、既に生成されている。具体的には、ピント設定用のシート画像（ピント設定用の第１シート画像、ピント設定用の第２シート画像）のコントラストに基づいて、ピント設定用のシート画像における複数の小画像の中から、副オブジェクトのピント位置を設定するためのピント用の小画像（ピント設定用の第１小画像、ピント設定用の第２小画像）を、特定する処理が、制御部１において実行される。そして、視錐領域の仮想カメラ側の境界面上におけるピント用の小画像の位置を特定する処理が、制御部１において実行される。すると、仮想カメラから、境界面上におけるピント用の第１小画像の位置へと延びる直線が第１区分領域の内部で衝突するオブジェクトを、副オブジェクトとして選択する処理が、制御部１において実行される。同様に、仮想カメラから、境界面上におけるピント用の第２小画像の位置へと延びる直線が第３区分領域の内部で衝突するオブジェクトを、副オブジェクトとして選択する処理が、制御部１において実行される。
【００９３】
なお、ピント設定用のシート画像のコントラストが所定の範囲内である場合に、副オブジェクトを選択する処理が、制御部１において実行されるようにしても良い。
【００９４】
ピント順序設定手段５８は、主オブジェクト、および少なくとも１つの副オブジェクトに対する、仮想カメラのピントを合わせるピント順序を、設定する機能を備えている。詳細には、ピント順序設定手段５８は、最終的にピントを合わせるオブジェクトが、主オブジェクトとなるように、少なくとも１つの副オブジェクト、主オブジェクトの順に、ピント順序を設定する機能を備えている。
【００９５】
この手段では、最終的にピントを合わせるオブジェクトが、主オブジェクトとなるように、少なくとも１つの副オブジェクト、主オブジェクトの順に、ピント順序を設定する処理が、制御部１において実行される。ここでは、基準コントラストとピント設定用のシート画像のコントラストとの差が小さい順に、副オブジェクトに対するピント順序を設定する処理が、制御部１において実行される。また、最終的にピントを合わせるオブジェクトが主オブジェクトとなるように、ピント順序を設定する処理が、制御部１において実行される。
【００９６】
ピント合わせ手段５９は、ピント順序に基づいて、副オブジェクトおよび主オブジェクトのいずれか一方のオブジェクトを、対象オブジェクトとして設定する機能を備えている。
【００９７】
この手段では、上記のピント順序に基づいて、副オブジェクトおよび主オブジェクトのいずれか一方のオブジェクトを、対象オブジェクトとして設定する処理が、制御部１において実行される。具体的には、上記のピント順序を用いると、副オブジェクト、主オブジェクトの順に、各オブジェクトを対象オブジェクトとして設定する処理が、制御部１において実行される。また、副オブジェクトが複数存在する場合は、コントラストの高い順に副オブジェクトを対象オブジェクトとして設定し、最後に、主オブジェクトを対象オブジェクトとして設定する処理が、制御部１において実行される。なお、ここで対象オブジェクトを設定する処理では、対象オブジェクトに設定されたピント位置を認識する処理も、実行される。
【００９８】
表示画像生成手段６０は、対象オブジェクトにピントを合わせた状態で、表示用のシート画像を生成する機能を備えている。詳細には、表示画像生成手段６０は、対象オブジェクトにピントを合わせた状態で、視錐領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に、投影することによって、表示用のシート画像を生成する機能を備えている。
【００９９】
この手段では、対象オブジェクトにピントを合わせた状態で、視錐領域の内部に配置されたオブジェクトを、視錐領域の仮想カメラ側の境界面に投影する処理が、制御部１において実行される。具体的には、まず、副オブジェクトにピントを合わせた状態で、視錐領域の内部に配置された全オブジェクトを、視錐領域の仮想カメラ側の境界面に投影する処理が、制御部１において実行される。すると、副オブジェクトにピントを合わせた状態の表示用のシート画像が、生成される。すると、このシート画像は、記憶部２に格納される。次に、主オブジェクトにピントを合わせた状態で、視錐領域の内部に配置された全オブジェクトを、視錐領域の仮想カメラ側の境界面に投影する処理が、制御部１において実行される。すると、主オブジェクトにピントを合わせた状態の表示用のシート画像が、生成される。すると、このシート画像は、記憶部２に格納される。
【０１００】
画像表示手段６１は、ピント順序に基づいて生成された表示用のシート画像を連続的に出力する命令を、発行することによって、仮想カメラによって撮影した状況を、表示する機能を備えている。
【０１０１】
この手段では、ピント順序に基づいて生成された表示用のシート画像を連続的に出力する命令を、発行することによって、仮想カメラによって撮影した状況を表示する処理が、画像表示部３において実行される。具体的には、副オブジェクトにピントを合わせた状態の表示用のシート画像、主オブジェクトにピントを合わせた状態の表示用のシート画像を、連続的に出力する命令が、制御部１から発行されると、仮想カメラによって撮影した状況を表示する処理が、画像表示部３において実行される。
【０１０２】
〔野球ゲームにおけるピントブレ再現システムの概要〕
次に、野球ゲームにおけるピントブレ再現システムの具体的な内容について説明する。また、図１０および図１１に示すフローについても同時に説明する。なお、図１０は野球ゲームの全体概要を説明するためのフローであり、図１１は上記システムを説明するためのフローである。
【０１０３】
まず、ゲーム装置の電源が投入され、ゲーム装置が起動されると、野球ゲームプログラムが、記録媒体１０からＲＡＭ１２にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体１０からＲＡＭ１２にロードされ格納される（Ｓ１）。
【０１０４】
たとえば、基本ゲームデータには、３次元ゲーム空間用の各種の画像に関するデータが含まれている。３次元ゲーム空間用の各種の画像に関するデータには、たとえば、各種のオブジェクトのモデルデータ、たとえば、スタジアム用のモデルデータ、選手キャラクタ用のモデルデータ、および観客用のモデルデータ等が、含まれている。また、基本ゲームデータには、３次元ゲーム空間用のモデルデータを３次元ゲーム空間に配置するための位置座標データが、含まれている。また、基本ゲームデータには、３次元ゲーム空間に配置されたモデル（オブジェクト）を、テレビジョンモニタ２０に表示するための画像データが、含まれている。画像データは、３次元ゲーム空間に配置されたモデルを、仮想カメラにより撮影することにより、生成される。さらに、基本ゲームデータには、上記システムで用いられる各種のデータも、含まれている。
【０１０５】
なお、各モデルは、各モデルに対して固有に設定される識別データを用いて、ＣＰＵ７により管理される。言い換えると、この識別データをＣＰＵ７に認識させることによって、モデル（オブジェクト）を特定したり、モデル用の画像データを、ＲＡＭ１２から読み出したりすることができる。
【０１０６】
続いて、ＲＡＭ１２に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、ＣＰＵ７により実行される（Ｓ２）。すると、野球ゲームの起動画面がテレビジョンモニタ２０に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ２０に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ２０に表示される（図示しない）。このモード選択画面において、プレイヤがコントローラ１７を操作することにより、プレイモードが決定される（Ｓ３）。プレイモードには、たとえば、１２球団の中からチームを選択して１試合の対戦を楽しむ対戦モード、１２球団の中からチームを選択してペナントレースを戦うペナントモード、プレイヤが監督の立場でチームの選手キャラクタを育成する育成モード、プレイヤがある１人の選手キャラクタの立場になって野球ゲームを体感する成長体感モード等が、用意されている。
【０１０７】
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、ＣＰＵ７により実行される（Ｓ４）。ここで実行される各種のイベントには、たとえば、自動制御プログラム（ＡＩプログラム、Artificial Intelligence Program）に基づいてＣＰＵ７により自動制御されるイベントや、コントローラ１７からの入力信号に基づいてプレイヤにより手動制御されるイベントがある。また、選手キャラクタの制御には、自動制御プログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ１７からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ１７からの指示や自動制御プログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
【０１０８】
なお、ここに示す自動制御プログラムとは、プレイヤに代わって、イベントに関する命令および選手キャラクタに対する命令を自動的に制御するためのプログラムである。この自動制御プログラムは、ゲームプログラムにおいて予め用意されている。
【０１０９】
続いて、選択されたプレイモードが終了したか否かが、ＣＰＵ７により判断される（Ｓ５）。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、ＣＰＵ７により判断される。そして、プレイモードが終了したことを示す命令が発行されたとＣＰＵ７により判断された場合（Ｓ５でＹｅｓ）、ゲーム継続用のデータをＲＡＭ１２に格納する処理が、ＣＰＵ７により実行される。そして、ゲーム継続用のデータがＲＡＭ１２に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ２０に表示される（Ｓ６）。そして、この選択画面において、プレイヤがコントローラ１７を操作することにより、野球ゲームの終了を示す項目が選択されると（Ｓ６でＹｅｓ）、野球ゲームを終了するための処理がＣＰＵ７により実行される（Ｓ７）。一方で、この選択画面において、プレイヤがコントローラ１７を操作することにより、野球ゲームの継続を示す項目が選択されると（Ｓ６でＮｏ）、ステップ３（Ｓ３）のモード選択画面が、テレビジョンモニタ２０に再表示される。
【０１１０】
なお、プレイモードが終了するための命令が発行されたとＣＰＵ７に判断されない限り（Ｓ５でＮｏ）、モード選択画面で選択されたプレイモードにおいて、各種のイベントがＣＰＵ７により実行される（Ｓ４）。
【０１１１】
次に、野球ゲームにおけるピントブレ再現システムの具体的な内容について説明する。
【０１１２】
ここでは、試合中の各種イベントの実行中に、本システムが実行される場合の例が、示される。
【０１１３】
モード選択画面で選択されたプレイモードにおいて、試合が開始されると（Ｓ４０１）、まず、基準コントラストが、設定される（Ｓ４０２）。基準コントラストは、基本ゲームデータに含まれている。ここでは、最も高いコントラストが、基準コントラストとして設定される。たとえば、所定のコントラスト値、すなわち最大コントラストを表現するコントラスト値が、ＲＡＭ１２から読み出され、このコントラスト値が、基準コントラスト値として、ＣＰＵ７に認識される。所定のコントラスト値は、２５６階調のグレースケール用のコントラスト値であり、１２８に設定されている。このコントラスト値は、予めＲＡＭ１２に格納されており、必要に応じて、ＲＡＭ１２から読み出され、ＣＰＵ７に認識される。
【０１１４】
続いて、３次元ゲーム空間ＧＳにオブジェクトを配置する命令が、ＣＰＵ７から発行される（Ｓ４０３）。すると、野球ゲームでテレビジョンモニタ２０に表示されるオブジェクト、たとえば、スタジアム、選手、審判、観客、空、雲、月等のようなオブジェクトが、３次元ゲーム空間ＧＳに配置される。具体的には、各オブジェクト用の画像データ、および各オブジェクトを３次元ゲーム空間ＧＳに配置するための位置座標データを、ＲＡＭ１２から読み出し、この位置座標データをＣＰＵ７に認識させることにより、各オブジェクトが、３次元ゲーム空間ＧＳにおける上記の位置座標データが示す位置に配置される。
【０１１５】
なお、各オブジェクトの画像データ、および各オブジェクトの初期位置を示す位置座標データは、基本ゲームデータに含まれており、ＲＡＭ１２に格納されている。また、たとえば、オブジェクトが移動した場合は、移動後のオブジェクトの位置を示す位置座標データが計算され、この移動後の位置座標データが、ＲＡＭ１２に格納される。そして、この移動後の位置座標データを用いて、各オブジェクトが、３次元ゲーム空間ＧＳに配置される。
【０１１６】
続いて、図３に示すように、３次元ゲーム空間ＧＳにおける仮想カメラの視野内の領域、すなわち視錐領域Ｖｓが、設定される（Ｓ４０４）。ここでは、仮想カメラが、３次元ゲーム空間ＧＳの所定の位置Ｐｃに配置される。すなわち、仮想カメラの視点位置Ｐｃが、設定される。たとえば、仮想カメラの視点位置Ｐｃを示す位置座標データを、ＲＡＭ１２から読み出し、この位置座標データをＣＰＵ７に認識させることにより、仮想カメラが、３次元ゲーム空間ＧＳにおける上記の位置座標データが示す位置Ｐｃに配置される。なお、仮想カメラの初期の視点位置Ｐｃを示す位置座標データは、基本ゲームデータに含まれており、ＲＡＭ１２に格納されている。また、仮想カメラを移動する命令がＣＰＵ７から発行された場合は、移動後の位置座標データがＣＰＵ７に認識され、この位置座標データが示す位置が、仮想カメラの視点位置Ｐｃとして設定される。
【０１１７】
なお、ここでは、３次元ゲーム空間ＧＳにおける水平面が、Ｘ軸およびＹ軸によって定義され、３次元ゲーム空間ＧＳにおける垂直上方が、Ｚ軸が向く方向に定義されている。また、原点、Ｘ軸が向く方向、およびＹ軸が向く方向は、ゲームプログラムにおいて予め規定されている。
【０１１８】
次に、仮想カメラの視点位置Ｐｃを基準として、仮想カメラの注視点Ｐｆが、３次元ゲーム空間ＧＳの所定の位置に配置される。たとえば、仮想カメラの視点位置Ｐｃから所定の距離を隔てた位置に、仮想カメラの注視点Ｐｆが配置される。言い換えると、仮想カメラの視点位置Ｐｃから所定の距離を隔てた位置を規定するための位置座標データを、ＲＡＭ１２から読み出し、この位置座標データをＣＰＵ７に認識させることにより、仮想カメラの注視点Ｐｆが、３次元ゲーム空間ＧＳにおける上記の位置座標データが示す位置に配置される。なお、仮想カメラの初期の注視点Ｐｆを示す位置座標データは、基本ゲームデータに含まれており、ＲＡＭ１２に格納されている。
【０１１９】
このようにして、仮想カメラの注視点Ｐｆが設定されると、仮想カメラの視点位置Ｐｃとカメラの注視点Ｐｆとを結ぶ直線（基準線）を基準として、仮想カメラの画角αが、設定される。たとえば、仮想カメラの画角αは、基準線を中心とした水平方向の画角αｘｙと、基準線を中心とした垂直方向の画角αｙｚとから構成されている。これらの画角αｘｙ，αｙｚに対応する角度データを、ＲＡＭ１２から読み出し、この角度データをＣＰＵ７に認識させることにより、画角αが設定される。すると、仮想カメラの画角内の領域（画角内領域）が、決定される。なお、仮想カメラの画角に対応する角度データは、基本ゲームデータに含まれており、ＲＡＭ１２に格納されている。
【０１２０】
続いて、画角内領域において、カメラ視点側の面（ニアー面）Ｓ１およびカメラ視点から離反する側の面（ファー面）Ｓ２が、設定される。これにより、ニアー面Ｓ１とファー面Ｓ２との間の領域が、視錐領域Ｖｓとして、３次元ゲーム空間ＧＳに設定される。たとえば、基準線上において仮想カメラの位置Ｐｃから所定の第１距離を隔てた位置の位置座標データを、ＣＰＵ７に認識させることにより、ニアー面Ｓ１が設定される。また、基準線上において仮想カメラの位置Ｐｃから所定の第２距離を隔てた位置の位置座標データを、ＣＰＵ７に認識させることにより、ファー面Ｓ２が設定される。すると、画角内領域におけるニアー面Ｓ１とファー面Ｓ２との間の領域が、視錐領域Ｖｓとして定義される。
【０１２１】
なお、ここでは、第１距離とこの第１距離より長い第２距離とは、ゲームプログラムにおいて予め規定されている。そして、この第１距離および第２距離に基づいて、第１位置の位置座標データおよび第２位置の位置座標データが、ＣＰＵ７により算出され、ＲＡＭ１２に格納される。これにより、ニアー面Ｓ１およびファー面Ｓ２が設定される。
【０１２２】
このようにして、視錐領域Ｖｓが設定されると、この視錐空間Ｖｓの８つの隅角部ｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８の位置を示す位置座標データが、ＣＰＵ７に認識され、ＲＡＭ１２に格納される。ここでは、これら隅角部ｖ１，ｖ２，ｖ３，ｖ４，ｖ５，ｖ６，ｖ７，ｖ８の位置を示す位置座標データを、ＣＰＵ７に認識させることによって、３次元ゲーム空間ＧＳにおける視錐空間Ｖｓの位置および範囲が、定義される。
【０１２３】
続いて、図４に示すように、仮想カメラの視点位置Ｐｃを基準として仮想カメラから離れる方向に、視錐領域Ｖｓが、複数の区分領域Ｖｋ１，Ｖｋ２，Ｖｋ３に分割される（Ｓ４０５）。ここでは、たとえば、視錐領域Ｖｓが、仮想カメラから離れる方向に３つに分割される。この場合、まず、ニアー面Ｓ１とファー面Ｓ２との間における基準線の長さを等間隔で３分割する処理が、ＣＰＵ７により実行される。次に、ニアー面Ｓ１を基準として、ニアー面Ｓ１からファー面Ｓ２に向かう方向へ所定の距離を隔てた位置（３分割された１分割目の位置）に対応する位置座標データを、ＣＰＵ７に認識させることにより、第１区分領域Ｖｋ１を定義するための第１面ｄ１が、設定される。そして、この第１面ｄ１を基準として、ニアー面Ｓ１からファー面Ｓ２に向かう方向へ所定の距離を隔てた位置（３分割された２分割目の位置）に、第２区分領域Ｖｋ２を定義するための第２面ｄ２が、設定される。すると、視錐領域Ｖｓを、仮想カメラから離れる方向に３つに分割した区分領域、すなわち第１区分領域Ｖｋ１、第２区分領域Ｖｋ２、および第３区分領域Ｖｋ３が、形成される。
【０１２４】
なお、各区分領域Ｖｋ１，Ｖｋ２，Ｖｋ３は、上述した視錐領域Ｖｓと同様に、各区分領域Ｖｋ１，Ｖｋ２，Ｖｋ３の８つの隅角部の位置を示す位置座標データを、ＣＰＵ７に認識させることにより、３次元ゲーム空間ＧＳにおける各区分領域Ｖｋ１，Ｖｋ２，Ｖｋ３の位置および範囲が、定義される。
【０１２５】
続いて、図４に示すように、仮想カメラのピントを最終的に合わせる主オブジェクトＭ１が、設定される（Ｓ４０６）。たとえば、３次元ゲーム空間ＧＳの視錐領域Ｖｓの内部に配置されたオブジェクトの中から、仮想カメラのピントを最終的に合わせるオブジェクトが、主オブジェクトＭ１として設定される。また、ここでは、主オブジェクトＭ１にピントを合わせるためのピント位置Ｐ１が、設定される。たとえば、主オブジェクトＭ１の所定の位置にピントを合わせるための位置座標データを、ＲＡＭ１２から読み出し、この位置座標データをＣＰＵ７に認識させることにより、主オブジェクトＭ１のピント位置Ｐ１が、設定される。なお、主オブジェクトＭ１、および主オブジェクトＭ１のピント位置Ｐ１は、場面ごとに、ゲームプログラムにおいて予め規定される。
【０１２６】
上記のように、視錐領域Ｖｓが設定され、主オブジェクトＭ１にピントが設定されると、副オブジェクトにピントを設定するためのピント設定用のシート画像ＳＰ１，ＳＰ２が、生成される（Ｓ４０７）。詳細には、図５に示すように、主オブジェクトＭ１を含む区分領域（第２区分領域Ｖｋ２）を除いた他の区分領域（第１区分領域Ｖｋ１、第３区分領域Ｖｋ３）の内部に配置されたオブジェクトを、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１（投影面）に、投影することによって、ピント設定用のシート画像ＳＧ１，ＳＧ２が、生成される。この場合、まず、第１区分領域Ｖｋ１の内部（図５（ａ）の斜線部）に配置された全てのオブジェクトを、投影面Ｓ１に投影する処理を、ＣＰＵ７に実行させることにより、ピント設定用の第１シート画像ＳＧ１が、生成される。すると、このピント設定用の第１シート画像ＳＧ１が、ＲＡＭ１２に格納される。次に、第３区分領域Ｖｋ３の内部（図５（ｂ）の斜線部）に配置された全てのオブジェクトを、投影面Ｓ１に投影する処理を、ＣＰＵ７に実行させることにより、ピント設定用の第２シート画像ＳＧ２が、生成される。すると、このピント設定用の第２シート画像ＳＧ２が、ＲＡＭ１２に格納される。
【０１２７】
ここでＲＡＭ１２に格納されたピント設定用のシート画像（ピント設定用の第１シート画像ＳＧ１、ピント設定用の第２シート画像ＳＧ２）は、主オブジェクトＭ１を基準として、仮想カメラ側および仮想カメラから離反する側に配置された副オブジェクトに対して、ピントを設定するためのものである。
【０１２８】
続いて、ピント設定用のシート画像を複数の小画像に分割し（Ｓ４０８）、複数の小画像それぞれのコントラスト情報を調査することによって、ピント設定用のシート画像のコントラストＣｐが設定される（Ｓ４０９）。この場合、まず、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれのカラーの色情報を、グレースケールの色情報に変換する処理が、ＣＰＵ７により実行される。これにより、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれが、ＲＧＢ階調の画像から、２５６階調のグレースケールの画像へと変換される。
【０１２９】
次に、図６（ａ）に示すように、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれを、所定数の小画像に区分する処理が、ＣＰＵ７により実行される。たとえば、図６（ｂ）に示すように、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれの各小画像が、「２ピクセル×２ピクセル」から構成されるように、各ピント設定用のシート画像は区分される。ここでは、「１ピクセル×１ピクセル」に対して、０以上２５６以下の値を有するグレースケールの色情報データが割り当てられている。このため、１つの小画像は、４つのグレースケールの色情報データを有する（図６（ｂ）を参照）。ここでは、１つの小画像に含まれる４つのグレースケールの色情報データを平均する処理が、ＣＰＵ７により実行される。そして、この平均値が、この小画像のコントラスト値Ｃ（ｉ，ｊ）として設定される。
【０１３０】
なお、図６は、説明を容易にするために、１つ１つの小画像を拡大して、描いている。図６（ａ）では、横方向ｉに９分割、縦方向ｊに８分割された図を、描いている。
【０１３１】
続いて、複数の小画像それぞれにおいて、隣接する小画像のコントラスト値Ｃ（ｉ，ｊ）の差を計算する処理が、全ての隣接する１組の小画像に対して実行される。ここでは、たとえば、隣接する小画像のコントラスト値の差が、「ｄＣ（ｊ）＝Ｃ（ｍ＋１，ｊ）−Ｃ（ｍ，ｊ）；ｍは、１から８までの自然数」と表記される。図６（ｃ）では、ｊ＝４におけるコントラスト値Ｃ（ｉ，４）が、示されている。この場合、隣接する小画像のコントラスト値の差ｄＣ（４）は、「Ｃ（ｍ＋１，４）−Ｃ（ｍ，４）；ｍは、１から８までの自然数」となる。
【０１３２】
そして、全てのコントラスト値Ｃ（ｉ，ｊ）の差の絶対値｜ｄＣ（ｊ）｜の中から最大値｜ｄＣ（ｊ）｜ｍａｘを検出する処理が、ＣＰＵ７により実行される。そして、この最大値を有する１組の小画像の２つのコントラスト値Ｃ（ｍ＋１，ｊ），Ｃ（ｍ，ｊ）の中で、値が小さい方のコントラスト値が、ＣＰＵ７に認識される。すると、このコントラスト値が、ピント設定用のシート画像のコントラストＣｐとして設定される。たとえば、図６（ｃ）では、隣接する２つのコントラスト値の差の絶対値の最大は、「｜ｄＣ（４）｜ｍａｘ＝｜Ｃ（７，４）−Ｃ（６，４）｜」である。このため、この場合は、コントラストＣ（７，４）（＜Ｃ（６，４））が、ＣＰＵ７に認識され、ピント設定用のシート画像のコントラストＣｐとして設定される。
【０１３３】
なお、説明を容易にするために、図６（ｃ）では、「ｊ＝４」の場合だけを用いて、ピント設定用のシート画像のコントラストＣｐを設定する場合の例を示したが、実際には、「ｊ＝１〜８」全てに対して上記の処理を実行し、これらの最大値｜ｄＣ（ｊ）｜ｍａｘに基づいて、ピント設定用のシート画像のコントラストＣｐが設定される。
【０１３４】
具体的には、隣接する２つの小画像におけるコントラスト値の落差の値｜ｄＣ（ｊ）｜が、最も大きいものが、ピント設定用のシート画像のコントラストＣｐとして設定される。この処理は、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれに対して実行され、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれに対して、コントラストが設定される。なお、以下では、コントラスト値の落差｜ｄＣ（ｊ）｜が最も大きい２つの小画像の中で、コントラスト値Ｃ（ｉ，ｊ）が小さい方の小画像を、ピント用の小画像と呼ぶ。
【０１３５】
ここでは、水平方向に隣接する小画像のコントラスト値Ｃ（ｉ，ｊ）の差の絶対値｜ｄＣ（ｊ）｜を計算することによって、ピント設定用のシート画像のコントラストＣｐが設定される。なお、ここでは、水平方向に隣接する小画像のコントラスト値Ｃ（ｉ，ｊ）の差ｄＣ（ｊ）を用いる場合の例を示しているが、垂直方向に隣接する小画像のコントラスト値Ｃ（ｉ，ｊ）の差ｄＣ（ｉ）を用いたり、水平方向に隣接する小画像のコントラスト値の差ｄＣ（ｊ）と、垂直方向に隣接する小画像のコントラスト値Ｃ（ｉ，ｊ）の差ｄＣ（ｉ）との両方を同時に用いたりしても良い。
【０１３６】
また、ここでは、隣接する２つの小画像におけるコントラスト値の落差｜ｄＣ（ｉ）｜が、最も大きいものを、ピント設定用のシート画像のコントラストＣｐとして用いる場合の例が示されるが、ピント設定用のシート画像のコントラストＣｐの設定形態は、この実施形態に限定されず、どのようにしても良い。たとえば、複数の小画像に対する複数のコントラスト値Ｃ（ｉ，ｊ）の中の最大コントラスト値Ｃ（ｉ，ｊ）_ｍａｘを、ピント設定用のシート画像のコントラストＣｐに設定するようにしても良い。
【０１３７】
続いて、ピント設定用のシート画像のコントラストＣｐ、たとえば上記のコントラスト値の差の最大絶対値｜ｄＣ（ｊ）｜ｍａｘが、所定の範囲内であるか否かが、ＣＰＵ７により判断される（Ｓ４１０）。この判断処理は、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれに対して、実行される。具体的には、ピント設定用の第１シート画像ＳＧ１およびピント設定用の第２シート画像ＳＧ２それぞれの最大絶対値｜ｄＣ（ｊ）｜ｍａｘが、この範囲の下限値以上且つ上限値以下であるか否かが、ＣＰＵ７により判断される。この判断で用いられる所定の範囲は、ゲームプログラムにおいて予め規定されている。すなわち、範囲の下限値および上限値が、ＲＡＭ１２に格納されており、判断処理時には、ＲＡＭ１２から読み出される。
【０１３８】
このような判別処理を行うことによって、コントラストが高い部分が存在する場合にのみ、ピントブレを発生させることができる。また、この判別処理は、ピントブレを発生させるか否かの判別にも用いることができる。たとえば、この判別処理において、ピント設定用の第１シート画像ＳＧ１のコントラスト、およびピント設定用の第２シート画像ＳＧ２のコントラストが、所定の範囲内である場合は、ピントブレを発生させる。一方で、両者のコントラストが、所定の範囲外である場合は、ピントブレを発生させない。このように処理することによって、ピントブレの発生の有無を、自動制御することができる。
【０１３９】
続いて、ピント設定用の第１シート画像ＳＧ１のコントラストＣｐ１（第１シート画像ＳＧ１のコントラスト値の差の最大絶対値｜ｄＣ１（ｊ）｜ｍａｘ）、およびピント設定用の第２シート画像ＳＧ２のコントラストＣｐ２（第２シート画像ＳＧ２のコントラスト値の差の最大絶対値｜ｄＣ２（ｊ）｜ｍａｘ）の少なくともいずれか一方が、所定の範囲内であった場合（Ｓ４１０でＹｅｓ）、ピントズレが発生したときにピントを合わせる対象、すなわち副オブジェクトＨ１，Ｈ２が、設定される（Ｓ４１１）。ここでは、主オブジェクトＭ１を基準として、仮想カメラ側に所定の距離以上近接した位置に存在するオブジェクト、および仮想カメラから所定の距離以上離反した位置に存在するオブジェクトの中の少なくとも１つのオブジェクトが、副オブジェクトＨ１，Ｈ２として選択される。以下では、仮想カメラ側の副オブジェクトを「Ｈ１」と表記し、仮想カメラ側から離反する側の副オブジェクトを「Ｈ２」と表記する。
【０１４０】
なお、ここでは、主オブジェクトＭ１から、仮想カメラ側に存在するオブジェクトまでの所定の距離は、主オブジェクトＭ１から第１面ｄ１までの距離であり、主オブジェクトＭ１から、仮想カメラから離反する側のオブジェクトまでの所定の距離は、主オブジェクトＭ１から第２面ｄ２までの距離である。
【０１４１】
たとえば、ピント設定用の第１シート画像ＳＧ１のコントラストＣｐ１が、所定の範囲内であった場合、ピント設定用の第１シート画像ＳＧ１のコントラストＣｐ１を規定したときに用いられた小画像が、ＣＰＵ７に再認識され、この小画像の位置座標データが、ＣＰＵ７に認識される。これにより、ピント用の第１小画像の位置ＰＳ１が設定される。このピント用の第１小画像の位置ＰＳ１を規定するための上記の位置座標データは、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１上（投影面上）に定義される。また、ピント用の第１小画像の位置ＰＳ１は、小画像の重心に定義される。
【０１４２】
同様に、ピント設定用の第２シート画像ＳＧ２のコントラストＣｐ２が、所定の範囲内であった場合、ピント設定用の第２シート画像ＳＧ２のコントラストＣｐ２を規定したときに用いられた小画像が、ＣＰＵ７に再認識され、この小画像の位置座標データが、ＣＰＵ７に認識される。これにより、ピント用の第２小画像の位置ＰＳ２が設定される。このピント用の第２小画像の位置ＰＳ２を規定するための上記の位置座標データは、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１上（投影面上）に定義される。また、ピント用の第２小画像の位置ＰＳ２は、小画像の重心に定義される。
【０１４３】
次に、図７に示すように、仮想カメラの位置から、境界面Ｓ１上におけるピント用の第１小画像の位置ＰＳ１へと延びる直線ＣＬ１が、３次元ゲーム空間ＧＳに設定される。この直線ＣＬ１は、仮想カメラの位置座標データおよびピント用の小画像の位置座標データに基づいて、定義される。そして、この直線ＣＬ１が第１区分領域Ｖｋ１の内部で衝突するオブジェクトの位置座標データが、ＣＰＵ７に認識される。また、この位置座標データは、ＲＡＭ１２に格納され、ピントズレが発生したときのピント位置Ｐ２の位置座標データとして用いられる。さらに、この位置座標データに基づいて、直線ＣＬ１が衝突したオブジェクトが特定され、このオブジェクトの識別データが、ＣＰＵ７に認識される。このようにして、ピントズレが発生したときのピント位置Ｐ２、および主オブジェクトＭ１を基準として仮想カメラ側に位置する副オブジェクトＨ１が、設定される。以下では、このピントズレ用のピント位置Ｐ２を、第１区分領域内のピント位置Ｐ２と呼び、この副オブジェクトを、第１区分領域内の副オブジェクトＨ１と呼ぶ。
【０１４４】
また、以下では、第３区分領域Ｖｋ３におけるピントズレ用のピント位置Ｐ３を、第３区分領域内のピント位置Ｐ３と呼び、このピントズレ用のピント位置Ｐ３が設定されるオブジェクトを、第３区分領域内の副オブジェクトＨ２と呼ぶ。すると、図７に示すように、第３区分領域内のピント位置Ｐ３、および第３区分領域内の副オブジェクトＨ２も、第１区分領域内の副オブジェクトＨ１と同様の形態で、設定される。たとえば、仮想カメラの位置Ｐｃから、境界面Ｓ１上におけるピント用の第２小画像の位置ＰＳ２へと延びる直線ＣＬ２が、第３区分領域Ｖｋ３の内部で衝突するオブジェクトの位置が、第３区分領域内のピント位置Ｐ３として設定される。また、ここで直線ＣＬ２が衝突したオブジェクトが、第３区分領域内の副オブジェクトＨ２として設定される。詳細については、第１区分領域内の副オブジェクトＨ１の設定と同じであるので、ここでは省略する。なお、第３区分領域内の副オブジェクトＨ２は、主オブジェクトＭ１を基準として仮想カメラから離反する側に位置するオブジェクトである。
【０１４５】
なお、ピント設定用の第１シート画像ＳＧ１のコントラストＣｐ１（第１シート画像ＳＧ１のコントラスト値の差の最大絶対値｜ｄＣ１（ｊ）｜ｍａｘ）、およびピント設定用の第２シート画像ＳＧ２のコントラストＣｐ２（第２シート画像ＳＧ２のコントラスト値の差の最大絶対値｜ｄＣ２（ｊ）｜ｍａｘ）が、所定の範囲外であった場合（Ｓ４１０でＮｏ）、副オブジェクトＨ１，Ｈ２は設定されず、ピントブレは発生しない。この場合は、ピントがブレることのない画像が、テレビジョンモニタ２０に表示され、ステップ４０３（Ｓ４０３）の処理が、ＣＰＵ７により実行される。
【０１４６】
続いて、上記のように副オブジェクトＨ１，Ｈ２が設定された場合、主オブジェクトＭ１、および少なくとも１つの副オブジェクトＨ１，Ｈ２に対する、仮想カメラのピントを合わせるピント順序ＰＪが、設定される（Ｓ４１２）。詳細には、最終的にピントを合わせるオブジェクトが、主オブジェクトＭ１となるように、少なくとも１つの副オブジェクトＨ１，Ｈ２、主オブジェクトＭ１の順に、ピント順序ＰＪが設定される。
【０１４７】
たとえば、第１区分領域内の副オブジェクトＨ１が存在する場合、基準コントラストと、ピント設定用の第１シート画像ＳＧ１のコントラストＣｐ１との差の絶対値を計算する処理が、ＣＰＵ７により実行される。また、第３区分領域内の副オブジェクトＨ２が存在する場合、基準コントラストと、ピント設定用の第２シート画像ＳＧ２のコントラストＣｐ２との差の絶対値を計算する処理が、ＣＰＵ７により実行される。そして、前者の計算結果と後者の計算結果とを比較することにより、上記の差の絶対値が小さい順に、ピントを合わせる順序が上位になるように、ピント順序ＰＪが設定される。
【０１４８】
たとえば、前者の計算結果が後者の計算結果より小さい場合、第１区分領域内の副オブジェクトＨ１にピントを合わせる順序は、第３区分領域内の副オブジェクトＨ２にピントを合わせる順序より、上位になる。一方で、前者の計算結果が後者の計算結果より大きい場合、第１区分領域内の副オブジェクトＨ１にピントを合わせる順序は、第３区分領域内の副オブジェクトＨ２にピントを合わせる順序より、下位になる。このようにして、各副オブジェクトＨ１，Ｈ２に対するピント順序ＰＪが設定されると、主オブジェクトＭ１にピントを合わせる順序が最下位になるように、ピント順序ＰＪが設定される。このようにして、最終的にピントを合わせるオブジェクトが主オブジェクトＭ１となるように、ピント順序ＰＪが設定される。
【０１４９】
なお、ここでは、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２が存在する場合の例を示したが、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２のいずれか一方だけが存在する場合は、ピント順序ＰＪは、第１区分領域内の副オブジェクトＨ１および第３区分領域内の副オブジェクトＨ２のいずれか一方、主オブジェクトＭ１の順になる。
【０１５０】
続いて、このピント順序ＰＪに基づいて、副オブジェクトＨ１，Ｈ２および主オブジェクトＭ１のいずれか一方のオブジェクトが、対象オブジェクトＴＪとして設定される（Ｓ４１３）。そして、この対象オブジェクトＴＪのピント位置に対して、仮想カメラのピントが設定される。なお、仮想カメラのピントが設定される対象オブジェクトのピント位置は、主オブジェクトのピント位置Ｐ１、および副オブジェクトＨ１，Ｈ２のピント位置Ｐ２，Ｐ３のいずれか１つのピント位置である。
【０１５１】
この場合、まず、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２のいずれか一方の副オブジェクトが、対象オブジェクトＴＪに設定される。そして、この対象オブジェクトＴＪのピント位置Ｐ２（Ｐ３）に対して、仮想カメラのピントが設定される。次に、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２のいずれか他方の副オブジェクトが、対象オブジェクトＴＪに設定される。そして、この対象オブジェクトＴＪのピント位置Ｐ３（Ｐ２）に対して、仮想カメラのピントが設定される。最後に、主オブジェクトＭ１のピント位置Ｐ１に対して、仮想カメラのピントが設定される。
【０１５２】
このように、ピント順序ＰＪに基づいて仮想カメラのピントを各オブジェクトＨ１，Ｈ２，Ｍ１に設定することによって、副オブジェクトＨ１，Ｈ２については、コントラストの高い順に、仮想カメラのピントが合わせられる。そして、最後に、主オブジェクトＭ１に対して、仮想カメラのピントが設定される。そして、最後に、主オブジェクトＭ１に対して、仮想カメラのピントが合わせられる。
【０１５３】
なお、ここでは、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２が存在する場合の例を示したが、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２のいずれか一方だけが存在する場合は、第１区分領域内の副オブジェクトＨ１および第３区分領域内の副オブジェクトＨ２のいずれか一方のピント位置に対してのみ、仮想カメラのピントが設定される。
【０１５４】
続いて、対象オブジェクトＴＪにピントを合わせた状態で、表示用のシート画像が生成される（Ｓ４１４）。詳細には、対象オブジェクトＴＪにピントを合わせた状態で、視錐領域Ｖｓの内部に配置された全てのオブジェクトを、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１（投影面）に、投影することによって、表示用のシート画像が生成される。
【０１５５】
この場合、対象オブジェクトＴＪにピントを合わせた状態で、視錐領域Ｖｓの内部に配置された全てのオブジェクトを、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１に投影する処理が、ＣＰＵ７において実行される。
【０１５６】
具体的には、まず、第１区分領域内の副オブジェクトＨ１にピントを合わせた状態で、視錐領域Ｖｓの内部に配置された全オブジェクトを、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１（投影面）に投影する処理が、ＣＰＵ７により実行される。すると、副オブジェクトＨ１にピントを合わせた状態の表示用の第１シート画像が、生成される。すると、このシート画像が、ＲＡＭ１２に格納される。同様に、第３区分領域内の副オブジェクトＨ２にピントを合わせた状態で、視錐領域Ｖｓの内部に配置された全オブジェクトを、投影面Ｓ１に投影する処理が、ＣＰＵ７により実行される。すると、副オブジェクトＨ２にピントを合わせた状態の表示用の第２シート画像ＳＧ２が、生成される。すると、このシート画像が、ＲＡＭ１２に格納される。
【０１５７】
なお、ここでは、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２が存在する場合の例を示したが、第１区分領域内の副オブジェクトＨ１、および第３区分領域内の副オブジェクトＨ２のいずれか一方だけが存在する場合は、第１区分領域内の副オブジェクトＨ１および第３区分領域内の副オブジェクトＨ２のいずれか一方のピントを合わせた表示用のシート画像が、生成される。
【０１５８】
次に、主オブジェクトＭ１にピントを合わせた状態で、視錐領域Ｖｓの内部に配置された全オブジェクトを、視錐領域Ｖｓの仮想カメラ側の境界面Ｓ１に投影する処理が、ＣＰＵ７により実行される。すると、主オブジェクトＭ１にピントを合わせた状態の表示用の第２シート画像ＳＧ２が、生成される。すると、このシート画像が、ＲＡＭ１２に格納される。
【０１５９】
続いて、ピント順序ＰＪに基づいて生成された表示用のシート画像を連続的に出力する命令が、ＣＰＵ７から発行されると、表示用のシート画像が、ＲＡＭ１２から読み出され、テレビジョンモニタ２０に供給される。具体的には、副オブジェクトＨ１，Ｈ２にピントを合わせた状態の表示用のシート画像、主オブジェクトＭ１にピントを合わせた状態の表示用のシート画像が、ＲＡＭ１２から読み出され、テレビジョンモニタ２０に供給される。これにより、図８に示すように、ピントブレを再現した画像が、テレビジョンモニタ２０に表示される（Ｓ４１５）。
【０１６０】
図８では、ピントが合った画像は実線で示し、ピントが合っていない画像は破線で示している。図８では、第１区分領域内の副オブジェクトＨ１が、ベンチの選手オブジェクトであり、第２区分領域Ｖｋ２の主オブジェクトＭ１が、打者オブジェクトであり、第３区分領域内の副オブジェクトＨ２が、観客席の観客オブジェクトである場合の例が、示されている。また、図８では、観客席の観客オブジェクトＨ２については、簡略化して１つだけ表示されている。たとえば、図８では、３次元ゲーム空間ＧＳに配置された、ベンチの選手オブジェクトＨ１（第１区分領域内の副オブジェクト）、観客席の観客オブジェクトＨ２（第３区分領域内の副オブジェクト）、打者オブジェクトＭ１（第２区分領域Ｖｋ２の主オブジェクト）の順に、仮想カメラのピントを合わせることにより、ピントブレが再現されている。すなわち、ここでは、ピントが打者オブジェクトを基準として、この打者オブジェクトの前後にブレた後に、ピントを合わせる対象である打者オブジェクトにピントが合う状態が、テレビジョンモニタ２０に表示される。
【０１６１】
なお、図８では、ベンチの選手オブジェクト（第１区分領域内の副オブジェクト）に対応する画像、観客席の観客オブジェクト（第３区分領域内の副オブジェクト）に対応する画像、および打者オブジェクト（第２区分領域Ｖｋ２の主オブジェクト）に対応する画像それぞれに対して、記号「Ｈ１」、記号「Ｈ２」、記号「Ｍ１」を付している。これは、図８の説明を容易に行うためのものである。このため、実際には、これら記号Ｈ１，Ｈ２，Ｍ１が示すオブジェクトは、３次元ゲーム空間ＧＳに定義されている。
【０１６２】
上記のように、本実施形態では、副オブジェクトＨ１，Ｈ２にピントを設定するためのピント設定用のシート画像ＳＧ１，ＳＧ２が、複数の小画像に分割され、これら複数の小画像それぞれのコントラスト情報Ｃ（ｉ，ｊ）が調査される。これにより、ピント設定用のシート画像ＳＧ１，ＳＧ２のコントラストＣｐが設定され、このコントラストＣｐに基づいて、副オブジェクトＨ１，Ｈ２が選択される。このように、ピント設定用のシート画像ＳＧ１，ＳＧ２のコントラストＣｐに基づいて副オブジェクトＨ１，Ｈ２を選択することによって、コントラスト情報に基づいたピント設定を、副オブジェクトＨ１，Ｈ２に対して行うことができる。
【０１６３】
また、主オブジェクトＭ１が、ある場面においてピントを合わせる対象である場合、ピント順序ＰＪに基づいて、まず、仮想カメラ側の副オブジェクトＨ１（or 仮想カメラ側から離れる側の副オブジェクトＨ２）にピントが合わせられる。次に、仮想カメラ側から離れる側の副オブジェクトＨ２（or 仮想カメラ側の副オブジェクトＨ１）にピントが合わせられる。最後に、この場面でピントを合わせる対象である主オブジェクトＭ１に、ピントが合わせられる。
【０１６４】
このように、主オブジェクトＭ１に直接的にピントを合わせるのではなく、まず、コントラスト情報に基づいて選択された副オブジェクトＨ１，Ｈ２にピントを合わせ、その後に、主オブジェクトＭ１にピントを合わせることにより、突発的に発生する事象、たとえばピントブレのような事象を、映像上で再現することができ、リアリティのある映像を提供することができる。
【０１６５】
〔他の実施形態〕
（ａ）前記実施形態では、ピント設定用のシート画像のコントラストＣｐに基づいて、副オブジェクトＨ１，Ｈ２が選択される場合の例が示されたが、副オブジェクトＨ１，Ｈ２の選択形態は、前記実施形態に限定されず、どのようにしても良い。たとえば、図９に示すように、仮想カメラと主オブジェクトＭ１とを結ぶ直線ＣＬ３の延長線に対して最も近いオブジェクト、および仮想カメラとオブジェクトとの間において上記の直線ＣＬ３に最も近いオブジェクトの中の少なくともいずれか１つのオブジェクトを、副オブジェクトＨ１，Ｈ２として選択するようにしても良い。
【０１６６】
この場合、まず、仮想カメラの位置座標データと、主オブジェクトＭ１のピント位置Ｐ１の位置座標データとに基づいて、仮想カメラから主オブジェクトＭ１のピント位置Ｐ１へと延びる直線ＣＬ３が、ＣＰＵ７により算出される。そして、この直線ＣＬ３と、第１区分領域内の全てのオブジェクトそれぞれとの距離を計算する処理が、ＣＰＵ７により実行される。そして、この計算結果に基づいて、この直線に最も近い位置に位置するオブジェクトが、第１区分領域内の副オブジェクトＨ１’として選択される。同様に、上記の直線と、第３区分領域内の全てのオブジェクトそれぞれとの距離を計算する処理が、ＣＰＵ７により実行される。そして、この計算結果に基づいて、この直線に最も近い位置のオブジェクトが、第３区分領域内の副オブジェクトＨ２’として選択される。
【０１６７】
なお、各オブジェクトには、オブジェクトの位置を定義するための位置座標データが割り当てられており、この位置座標データを用いて、上記の直線と各オブジェクトとの間の距離たとえば垂直距離が、算出される。
（ｂ）前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての開発用のゲーム装置を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
（ｃ）本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ＲＯＭカセット、その他のものが挙げられる。
【産業上の利用可能性】
【０１６８】
本発明は、仮想空間内のオブジェクトを仮想カメラによって撮影した状況を表示可能なゲームプログラム、ゲーム装置、およびゲーム制御方法において、利用可能である。
【符号の説明】
【０１６９】
１  制御部
３  画像表示部
５  操作入力部
７  ＣＰＵ
１２  ＲＡＭ
１７  コントローラ
２０  テレビジョンモニタ
５０  基準コントラスト設定手段
５１  オブジェクト配置手段
５２  視錐領域設定手段
５３  視錐領域分割手段
５４  主オブジェクトＭ１設定手段
５５  設定画像生成手段
５６  画像情報設定手段
５７  副オブジェクト選択手段
５８  ピント順序設定手段
５９  ピント合わせ手段
６０  表示画像生成手段
６１  画像表示手段
Ｍ１  主オブジェクト
Ｈ１，Ｈ２  副オブジェクト
Ｖｓ  視錐領域
Ｖｋ１，Ｖｋ２，Ｖｋ３  区分領域
Ｐｃ  仮想カメラの視点位置
Ｐ１，Ｐ２，Ｐ３  ピント位置
ＳＧ１，ＳＧ２  ピント設定用のシート画像
Ｃｐ  コントラスト
Ｃ（ｉ，ｊ）  コントラスト値
ｄＣ（ｊ）  コントラスト値の差
【図１】
2011156061.tif 000003
【図２】
2011156061.tif 000004
【図３】
2011156061.tif 000005
【図４】
2011156061.tif 000006
【図５】
2011156061.tif 000007
【図６】
2011156061.tif 000008
【図７】
2011156061.tif 000009
【図８】
2011156061.tif 000010
【図９】
2011156061.tif 000011
【図１０】
2011156061.tif 000012
【図１１】
2011156061.tif 000013