(57)【要約】 【課題】所定の順序が付けられて表示されるオブジェクトを容易に選択できるようにするオブジェクト選択装置等を提供する。【解決手段】オブジェクト選択装置３０１の表示部３０６は、オブジェクトが重なる場合には、順序が前のものが順序が後のものを隠すように画面に表示し、方向指示入力受付部３０８は、画面のいずれかの位置を指定する位置指示入力を受け付け、出力部３０７は、当該画面に表示されるオブジェクトのうち、当該位置指示入力に指定される位置に表示されるオブジェクトが存在すれば、当該順序で最も前のオブジェクトを選択結果として出力し、当該位置指示入力に指定される位置に表示されるオブジェクトが存在せず、当該位置を含むように定められる二次元領域に重なる位置に表示されるオブジェクトが存在すれば、当該順序で最も前のオブジェクトを選択結果として出力する。【選択図】図３
2007148855.tif 000002
【特許請求の範囲】
【請求項１】
所定の順序で順序付けされるオブジェクトを画面に表示する表示部であって、当該順序において前のオブジェクトと当該順序において後のオブジェクトとを、重ねて表示する場合、当該前のオブジェクトが当該後のオブジェクトを隠すように表示する表示部、
当該画面のいずれかの位置を指定する位置指示入力を受け付ける位置指示入力受付部、
当該画面に表示されるオブジェクトのうち、
（ａ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在すれば、当該位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
（ｂ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在せず、当該位置を含むように定められる二次元領域に重なる位置に表示されるオブジェクトが存在すれば、当該重なる位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
それぞれ出力する出力部
を備えることを特徴とするオブジェクト選択装置。
【請求項２】
請求項１に記載のオブジェクト選択装置であって、
当該オブジェクトは、仮想空間に配置されるオブジェクトであり、
当該順序において前のオブジェクトは、当該順序において後のオブジェクトよりも、当該仮想空間に配置される視点に近く、
前記出力部は、当該仮想空間に配置される半直線であって、当該視点から伸びる半直線の方向を、当該位置指示入力に指定される位置により定め、
当該仮想空間に配置されるオブジェクトのうち、
（ａ）当該半直線が交叉するオブジェクトが存在すれば、当該半直線が交叉するオブジェクトのうち、当該視点に最も近いオブジェクトを選択結果として、
（ｂ）当該半直線が交叉するオブジェクトが存在せず、当該仮想空間において当該半直線を含むように定められる三次元領域であって当該画面における対応する領域が当該二次元領域である三次元領域に交叉するオブジェクトが存在すれば、当該三次元領域が交叉するオブジェクトのうち、当該視点に最も近いオブジェクトを選択結果として、
それぞれ出力する出力部
を備えることを特徴とするオブジェクト選択装置。
【請求項３】
請求項２に記載のオブジェクト選択装置であって、
当該三次元領域は、当該視点を頂点とし当該半直線を含み当該半直線に対する位置が固定された錐体であり、
前記表示部は、当該半直線と、当該錐体と、を当該視点から見た画像を当該画面にさらに表示し、
当該錐体が当該画像において表示される領域は、当該二次元領域である
ことを特徴とするオブジェクト選択装置。
【請求項４】
請求項３に記載のオブジェクト選択装置であって、
当該仮想空間に配置されるオブジェクトと、当該オブジェクトが当該画面において表示される範囲と、当該オブジェクトと当該視点との近さの順位と、の３つを対応付けて記憶する範囲順位記憶部をさらに備え、
前記出力部は、当該仮想空間に配置されるオブジェクトのうち、
（ａ）当該半直線が当該画面において表示される位置を含む範囲が前記範囲順位記憶部に記憶されている場合、当該半直線が当該画面において表示される位置を含む領域に対応付けられて前記範囲順位記憶部に記憶されているオブジェクトを選択結果として、
（ｂ）当該半直線が当該画面において表示される位置を含む範囲が前記範囲順位記憶部に記憶されておらず、当該錐体が当該画面において表示される範囲と交叉する範囲が前記範囲順位記憶部に記憶されている場合、当該錐体が当該画面において表示される範囲と交叉する範囲に対応付けられて前記範囲順位記憶部に記憶されているオブジェクトのうち、当該オブジェクトと当該視点との近さの順位が最も近いものとして記憶されているオブジェクトを選択結果として、
それぞれ出力する
ことを特徴とするオブジェクト選択装置。
【請求項５】
請求項４に記載のオブジェクト選択装置であって、
前記範囲順位記憶部は、画像バッファであり、
前記表示部が、当該仮想空間内に配置されるオブジェクトを、当該視点から遠い順に、当該オブジェクトと当該視点との近さの順位を画素値として、当該画像バッファに描画することによって、当該範囲順位記憶部に、当該オブジェクトが当該画面において表示される範囲と、当該オブジェクトと当該視点との近さの順位と、が対応付けて記憶される
ことを特徴とするオブジェクト選択装置。
【請求項６】
請求項３に記載のオブジェクト選択装置であって、
前記出力部は、当該半直線の方向ベクトルと、当該視点に対する当該オブジェクトの位置ベクトルと、のなす角により、当該半直線と当該オブジェクトの交叉ならびに当該錐体と当該オブジェクトの交叉を判定する
ことを特徴とするオブジェクト選択装置。
【請求項７】
請求項３から６のいずれか１項に記載のオブジェクト選択装置であって、前記位置指示入力受付部にかえて、
当該仮想空間内における当該半直線の方向を指定する方向指示入力の入力を受け付ける方向指示入力受付部、
前記入力を受け付けられた方向指示入力に指定される方向に、当該半直線の方向を変更して、当該錐体の方向を変更する方向変更部
を備え、
前記出力部は、当該仮想空間に配置される半直線であって、当該視点から伸びる半直線の方向として当該方向変更部により変更される方向を用いる
ことを特徴とするオブジェクト選択装置。
【請求項８】
請求項２から７のいずれか１項に記載のオブジェクト選択装置であって、
前記出力部が選択結果として出力するオブジェクトは、当該視点からの距離が所定の閾値以下である
ことを特徴とするオブジェクト選択装置。
【請求項９】
表示部、位置指示入力受付部、出力部を備えるオブジェクト選択装置にて実行されるオブジェクト選択方法であって、
前記表示部が、所定の順序で順序付けされるオブジェクトを画面に表示し、当該順序において前のオブジェクトと当該順序において後のオブジェクトとを、重ねて表示する場合、当該前のオブジェクトが当該後のオブジェクトを隠すように表示する表示工程、
前記位置指示入力受付部が、当該画面のいずれかの位置を指定する位置指示入力を受け付ける位置指示入力受付工程、
前記出力部が、当該画面に表示されるオブジェクトのうち、
（ａ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在すれば、当該位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
（ｂ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在せず、当該位置を含むように定められる二次元領域に重なる位置に表示されるオブジェクトが存在すれば、当該重なる位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
それぞれ出力する出力工程
を備えることを特徴とするオブジェクト選択方法。
【請求項１０】
コンピュータを、
所定の順序で順序付けされるオブジェクトを画面に表示する表示部であって、当該順序において前のオブジェクトと当該順序において後のオブジェクトとを、重ねて表示する場合、当該前のオブジェクトが当該後のオブジェクトを隠すように表示する表示部、
当該画面のいずれかの位置を指定する位置指示入力を受け付ける位置指示入力受付部、
当該画面に表示されるオブジェクトのうち、
（ａ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在すれば、当該位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
（ｂ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在せず、当該位置を含むように定められる二次元領域に重なる位置に表示されるオブジェクトが存在すれば、当該重なる位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
それぞれ出力する出力部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の順序が付けられて表示されるオブジェクトを容易に選択できるようにするオブジェクト選択装置、オブジェクト選択方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、仮想空間に配置される各種のオブジェクトを画面に表示するコンピュータグラフィックス技術が提案されている。このような技術は、以下の文献に開示されている。
【特許文献１】特許第３４９７８６０号公報
【０００３】
このようなコンピュータグラフィックス技術においては、仮想空間内に、視点と投射平面とを想定する。投射平面は、視点から所定の距離に配置されており、視点から投射平面に垂らした垂線が、視線の方向となる。そして、視点からオブジェクトに向かう半直線が投射平面に交わる位置を当該オブジェクトの表示位置に対応付ける透視投影によって、レンダリングを行う。
【０００４】
この際に、視点とオブジェクトとの距離によってオブジェクトをソートした情報（この情報が記憶される領域は「Ｚバッファ」と呼ばれる。）により、オブジェクトを視点から遠い順に投射平面に相当するフレームバッファに描画することによって、近いオブジェクトが遠いオブジェクトを隠す状況を描画するのが一般的である。
【０００５】
また、視点から伸びる半直線は、投射平面においては点に投射され、視点を頂点とする錐体（円錐、角錐等。）の表面は、投射平面においては、当該錐体の底面に相当する図形の境界線（円周、楕円周、多角形の辺等。）に投射される。
【０００６】
従来、仮想空間内に配置されたオブジェクトからいずれかを選択する際には、移動ボタンを押圧操作することによってあらかじめ定められた順序でオブジェクトからオブジェクトへ移動するカーソルを画面に表示し、所望のオブジェクトに達した時点で決定ボタンを押圧操作することによる技術が利用されてきた。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の技術では、カーソルが移動する順序がユーザの想定するものと異なっていることもあり、この場合には、ユーザの選択が直観的でなくなるために、オブジェクトの選択が煩雑であったり、操作ミスが生じることもあった。
【０００８】
したがって、仮想空間内に配置されるオブジェクトからいずれかをユーザが容易に選択できる技術が強く望まれている。
【０００９】
本発明は、このような課題を解決するものであり、所定の順序が付けられて表示されるオブジェクトを容易に選択できるようにするオブジェクト選択装置、オブジェクト選択方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１１】
本発明の第１の観点に係るオブジェクト選択装置は、表示部、出力部を備え、以下のように構成する。
【００１２】
まず、表示部は、所定の順序で順序付けされるオブジェクトを画面に表示し、当該順序において前のオブジェクトと当該順序において後のオブジェクトとを、重ねて表示する場合、当該前のオブジェクトが当該後のオブジェクトを隠すように表示する。
【００１３】
所定の順序としては、三次元コンピュータグラフィックスを利用する場合には、仮想空間に配置された視点からオブジェクトまでの距離が近い順序等を採用することができる。オブジェクトを二次元で取り扱う場合には、スプライト表示などの際にいずれがいずれを隠すか（前に表示されるか）の関係を適用することができる。
【００１４】
一方、位置指示入力受付部は、当該画面のいずれかの位置を指定する位置指示入力を受け付ける。
【００１５】
位置の指定の手法としては、タッチパネルを用いてペンや指などで画面の所望の位置をタップする手法、マウスやキーボード、方向キーなどで画面に表示されるカーソルを移動した後にクリックや決定ボタンなどで位置を決定する手法など、種々の手法を適用することができる。
【００１６】
さらに出力部は、当該画面に表示されるオブジェクトのうち、
（ａ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在すれば、当該位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
（ｂ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在せず、当該位置を含むように定められる二次元領域に重なる位置に表示されるオブジェクトが存在すれば、当該重なる位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
それぞれ出力する。
【００１７】
すなわち、画面の指定された位置にオブジェクトが表示されていれば、当該オブジェクト（のうち、最前面にあり、後にオブジェクトがあれば、それらを隠して表示されるもの）を選択対象として選択し、そうでなければ、その位置を囲むように設定された二次元領域に重なって表示されるオブジェクトのうち、最前面のものを選択結果として出力する。
【００１８】
二次元領域としては、指定された点の位置を中心とする円や長方形、正方形など固定形状の図形を採用するほか、後述するような態様を採用しても良い。
【００１９】
本発明によれば、所定の順序が付けられて表示されるオブジェクトを、ユーザが容易に選択できるようになる。
【００２０】
また、オブジェクト選択装置において、当該オブジェクトは、仮想空間に配置されるオブジェクトであり、当該順序において前のオブジェクトは、当該順序において後のオブジェクトよりも、当該仮想空間に配置される視点に近く、以下のように構成することができる。
【００２１】
ここで、オブジェクトを画面に表示する際には、一般的な三次元コンピュータグラフィックスの技術を利用することができる。すなわち、Ｚバッファ法を用いて、遠いオブジェクトから順に画像バッファに対して描画を行って、オブジェクト同士の遠近の隠し合いの様子を描画する。
【００２２】
一方、出力部は、当該仮想空間に配置される半直線であって、当該視点から伸びる半直線の方向を、当該位置指示入力に指定される位置により定める。
【００２３】
当該半直線は、オブジェクトを選択するための指標として使用するものであり、半直線は画面では点として表現されることとなる。
【００２４】
そして、出力部は、当該仮想空間に配置されるオブジェクトのうち、
（ａ）当該半直線が交叉するオブジェクトが存在すれば、当該半直線が交叉するオブジェクトのうち、当該視点に最も近いオブジェクトを選択結果として、
（ｂ）当該半直線が交叉するオブジェクトが存在せず、当該仮想空間において当該半直線を含むように定められる三次元領域であって当該画面における対応する領域が当該二次元領域である三次元領域に交叉するオブジェクトが存在すれば、当該三次元領域が交叉するオブジェクトのうち、当該視点に最も近いオブジェクトを選択結果として、
それぞれ出力する。
【００２５】
すなわち、（ａ）は、半直線がたとえばガンシューティングゲームにおける「照準」のように機能するものであって、視線から伸びる半直線が最初に交叉したオブジェクトを選択するものである。
【００２６】
一方、（ｂ）は、「照準」上にオブジェクトが存在しない場合に採用されるものであり、半直線の周りの三次元領域に交叉するオブジェクトがある場合には、そのオブジェクトのうち最も視点に近いものを選択するものである。なお、この三次元領域は、前述の二次元領域に対応付けられるもので、かりに画面にこの三次元領域を表示するとした場合に、その表示の範囲が前述の二次元領域となるようなものを採用するのが典型的である。
【００２７】
なお、これらの条件を満たすオブジェクトが存在しない場合には、いずれのオブジェクトも選択結果としないのが典型的である。
【００２８】
本発明によれば、仮想空間における半直線を配置し、半直線の描画先を含む領域にオブジェクトが重なって表示されるか否かを考慮することによって、人間が何かを指し示す際の曖昧さを表現できるようになり、人間の直観に応じたオブジェクトの選択ができるようになる。
【００２９】
また、本発明のオブジェクト選択装置は、以下のように構成することができる。
【００３０】
すなわち、当該三次元領域は、当該視点を頂点とし当該半直線を含み当該半直線に対する位置が固定された錐体であり、表示部は、当該半直線と、当該錐体と、を当該視点から見た画像を当該画面にさらに表示する。
【００３１】
すなわち、角錐や円錐などの錐体が投射された先を、オブジェクトが重なって表示されるか否かを判定する二次元領域として採用するのである。
【００３２】
本発明によれば、仮想空間における半直線および錐体を配置し、これらとオブジェクトの交叉を考慮することによって、人間が何かを指し示す際の曖昧さを表現できるようになり、人間の直観に応じたオブジェクトの選択ができるようになる。
【００３３】
また、本発明のオブジェクト選択装置は、範囲順位記憶部をさらに備え、以下のように構成することができる。
【００３４】
すなわち、範囲順位記憶部は、当該仮想空間に配置されるオブジェクトと、当該オブジェクトが当該画面において表示される範囲と、当該オブジェクトと当該視点との近さの順位と、の３つを対応付けて記憶する。
【００３５】
仮想空間は３次元空間であり、表示される画面は２次元空間であるから、オブジェクトが表示される領域は２次元空間である。したがって、範囲順位記憶部は、オブジェクトが画面内で占有する領域を記憶することとなり、オブジェクトが隠し合う場合には、視点に最も近いオブジェクトが重なり合う領域を占有することとなる。なお、オブジェクトと視点との近さの順位としては、たとえば、Ｚバッファ内におけるオブジェクトの位置（配列のインデックス等。）を採用することができる。
【００３６】
一方、出力部は、当該仮想空間に配置されるオブジェクトのうち、
（ａ）当該半直線が当該画面において表示される位置を含む範囲が範囲順位記憶部に記憶されている場合、当該半直線が当該画面において表示される位置を含む領域に対応付けられて範囲順位記憶部に記憶されているオブジェクトを選択結果として、
（ｂ）当該半直線が当該画面において表示される位置を含む範囲が範囲順位記憶部に記憶されておらず、当該錐体が当該画面において表示される範囲と交叉する範囲が範囲順位記憶部に記憶されている場合、当該錐体が当該画面において表示される範囲と交叉する範囲に対応付けられて範囲順位記憶部に記憶されているオブジェクトのうち、当該オブジェクトと当該視点との近さの順位が最も近いものとして記憶されているオブジェクトを選択結果として、
それぞれ出力する。
【００３７】
上記のように、表示される画面において、オブジェクト同士が隠し合いの関係にある場合には、重なり合う領域は、視点に最も近いオブジェクトが占有することになる。したがって、本発明では、範囲順位記憶部に記憶されている情報を参照して、いずれのオブジェクトを選択結果とするかを決定する。
【００３８】
本発明によれば、仮想空間における３次元演算を利用して半直線や錐体とオブジェクトの交点を求めるのではなく、画面内でオブジェクトが表示される領域に関する情報を参照することで、選択結果のオブジェクトを容易に決めることができる。
【００３９】
また、本発明のオブジェクト選択装置において、範囲順位記憶部は、画像バッファであり、表示部が、当該仮想空間内に配置されるオブジェクトを、当該視点から遠い順に、当該オブジェクトと当該視点との近さの順位を画素値として、当該画像バッファに描画することによって、当該範囲順位記憶部に、当該オブジェクトが当該画面において表示される範囲と、当該オブジェクトと当該視点との近さの順位と、が対応付けて記憶されるように構成することができる。
【００４０】
コンピュータグラフィックスにおいては、たとえばダブルバッファリングの技術など、必ずしも直ちに表示されるものではない画像を記憶するための画像バッファを用いることが広く行われている。通常、このような画像バッファにオブジェクトが描画される場合には、オブジェクトの外形を構成するポリゴンのテクスチャに適当な変換（光源・視点との距離や光源・視点に対する角度等に応じて、テクスチャの明度や彩度、鮮明度、粒度、大きさを変化させるようなもの。）を施すが、本発明では、このような非表示の画像バッファに「描画」されるオブジェクトの「画素値」として視点との近さの順位を採用するのである。
【００４１】
すると、非表示の画像バッファに半直線が描画されるべき位置を求めて、当該位置に既に描画されている画素値を見れば、どのオブジェクトが半直線と交叉するかがわかることになる。
【００４２】
また、非表示の画像バッファに半直線が描画されるべき領域を求めて、当該領域に含まれる画素の画素値の最小値（視点に最も近いオブジェクトの順位）を見れば、どのオブジェクトが錐体と交叉するかがわかることになる。
【００４３】
本発明は、上記発明の好適実施形態に係るものであり、本発明によれば、非表示の画像バッファへオブジェクトを描画することで、半直線や錐体がオブジェクトと交叉するか否かを、容易に判定することができるようになる。
【００４４】
また、本発明のオブジェクト選択装置において、出力部は、当該半直線の方向ベクトルと、当該視点に対する当該オブジェクトの位置ベクトルと、のなす角により、当該半直線と当該オブジェクトの交叉ならびに当該錐体と当該オブジェクトの交叉を判定するように構成することができる。
【００４５】
上記発明では、オブジェクトが描画される領域と視点との近さの順位の情報を管理することで、半直線や錐体とオブジェクトの交叉を判定していたが、本発明では、３次元空間に配置される図形の交叉の関係を求める演算により、判定を行う。
【００４６】
本発明によれば、範囲順位記憶部のような記憶域を用いずに半直線や錐体とオブジェクトの交叉を判定することができるため、ＲＡＭ等の記憶域を節約して、少ないメモリで処理を行うことができるようになる。
【００４７】
また、本発明のオブジェクト選択装置は、位置指示入力受付部にかえて、方向指示入力受付部、方向変更部を備えるように構成することができる。
【００４８】
ここで、方向指示入力受付部は、当該仮想空間内における当該半直線の方向を指定する方向指示入力の入力を受け付ける。
【００４９】
方向指示入力は、たとえば、カーソルキーや矢印キーなどを用いて入力され、画面に表示される半直線（実際には「点」となる。）の位置を上下左右に移動させることによって、与えられる。このほか、半直線を、常に、視点から投射平面に垂らした垂線（この垂線は、視界の中心方向、すなわち視線である。）に一致させることとし、仮想空間内で視線を移動させるような指示入力を、方向指示入力として採用することもできる。
【００５０】
一方、方向変更部は、入力を受け付けられた方向指示入力に指定される方向に、当該半直線の方向を変更して、当該錐体の方向を変更する。
【００５１】
上記のように、半直線と錐体の互いの位置関係は固定されているため、半直線の方向が変更されれば、それと同じだけ、錐体の方向も変更されるのである。
【００５２】
さらに、出力部は、当該仮想空間に配置される半直線であって、当該視点から伸びる半直線の方向として当該方向変更部により変更される方向を用いる。
【００５３】
本発明によれば、ユーザの指示入力に応じて画面内で「点」を移動させることによって、半直線および錐体を仮想空間内で移動させることができ、直観的なオブジェクトの選択に貢献することができる。
【００５４】
また、本発明のオブジェクト選択装置において、出力部が選択結果として出力するオブジェクトは、当該視点からの距離が所定の閾値以下であるように構成することができる。
【００５５】
すなわち、半直線や錐体に交叉するオブジェクトであっても、あまりに遠方に存在するオブジェクトについては、これを選択することができないようにするものである。
【００５６】
本発明によれば、ユーザの視点に比較的近いオブジェクトのみが選択できるようになるため、ユーザからは見えにくく、選択される可能性がないオブジェクトが選択結果となることはなくなるので、ユーザの直観に沿ったオブジェクトの選択ができるようになる。
【００５７】
本発明のその他の観点に係るオブジェクト選択方法は、表示部、位置指示入力受付部、出力部を備えるオブジェクト選択装置にて実行され、表示工程、位置指示入力受付工程、出力工程を備え、以下のように構成する。
【００５８】
すなわち、表示工程では、表示部が、所定の順序で順序付けされるオブジェクトを画面に表示し、当該順序において前のオブジェクトと当該順序において後のオブジェクトとを、重ねて表示する場合、当該前のオブジェクトが当該後のオブジェクトを隠すように表示する。
【００５９】
一方、位置指示入力受付工程では、位置指示入力受付部が、当該画面のいずれかの位置を指定する位置指示入力を受け付ける。
【００６０】
さらに、出力工程では、出力部が、当該画面に表示されるオブジェクトのうち、
（ａ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在すれば、当該位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
（ｂ）当該位置指示入力に指定される位置に表示されるオブジェクトが存在せず、当該位置を含むように定められる二次元領域に重なる位置に表示されるオブジェクトが存在すれば、当該重なる位置に表示されるオブジェクトのうち、当該順序で最も前のオブジェクトを選択結果として、
それぞれ出力する。
【００６１】
本発明のその他の観点に係るプログラムは、コンピュータを上記のオブジェクト選択装置として機能させ、コンピュータに上記のオブジェクト選択方法を実行させるように構成する。
【００６２】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００６３】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００６４】
本発明によれば、所定の順序が付けられて表示されるオブジェクトを容易に選択できるようにするオブジェクト選択装置、オブジェクト選択方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００６５】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００６６】
図１は、プログラムを実行することにより、本発明のオブジェクト選択装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００６７】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００６８】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態のオブジェクト選択装置が実現される。
【００６９】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００７０】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００７１】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００７２】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００７３】
図２は、コントローラ１０５の外観を示す説明図である。以下、本図を参照して説明する。
コントローラ１０５の左方には、上下左右を示す操作入力を行うのに利用される↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４が配置されている。
右方には、決定操作入力を行うのに利用される○ボタン２０５、取消操作入力を行うのに利用される×ボタン２０６、メニュー表示等の指示入力を行うのに利用される△ボタン２０７、その他の指示入力を行うのに利用される□ボタン２０８が配置されている。
【００７４】
中央には、ＳＥＬＥＣＴボタン２０９、ＳＴＡＲＴボタン２１０のほか、アナログ入力の開始・停止を指示するためのＡＮＡＬＯＧボタン２１１、および、アナログ入力が有効か無効かを表示するためのインジケータ２１２が配置されている。
また中央下部には、上下左右に限らない方向に大きさを伴う指示入力を行うためのジョイスティック２１３、２１４が配置されている。
【００７５】
さらに、上方には、各種の指示入力に用いることができるＬ１ボタン２１５、Ｌ２ボタン２１６、Ｒ１ボタン２１７、Ｒ２ボタン２１８が配置されている。
コントローラ１０５の各ボタン２０１〜２０８、２１５〜２１８には、圧力センサが配備され、アナログ入力が有効となっている場合には、いずれのボタンが押圧操作されているかを検知することができるほか、ユーザの押圧操作の圧力の大きさを０〜２５５の２５６段階で得ることができる。
コントローラ１０５のジョイスティック２１３、２１４は、ひずみゲージが配備され、これらがどの方向にどれだけ曲げられているか、を検知することができる。
【００７６】
図１に戻り、インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００７７】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００７８】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００７９】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００８０】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００８１】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００８２】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００８３】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００８４】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００８５】
さらに、情報処理装置１００には、インターフェース１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００８６】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００８７】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００８８】
図３は、本実施形態に係るオブジェクト選択装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００８９】
本実施形態に係るオブジェクト選択装置３０１は、オブジェクト記憶部３０２、Ｚバッファ３０３、フレームバッファ３０４、画像バッファ３０５、表示部３０６、出力部３０７、方向指示入力受付部３０８、方向変更部３０９、決定指示入力受付部３１０、決定部３１１を備える。
【００９０】
本実施形態では、仮想空間の様子を表示しつつ、当該仮想空間内に配置されたオブジェクトの選択を行う。仮想空間内には、視点と投射平面が想定されており、画面表示の際には、透視投影や平行投影を用いる。オブジェクトの透視投影を行う場合には、オブジェクトと視点とを結ぶ線分が投射平面に交わる座標を、画面の座標に対応させて、レンダリングを行う。また、平行投影を行う場合は、視点を無限遠点に配置して、オブジェクトからこの無限遠点に向かって視線方向の平行線を伸ばし、これが投射平面に交わる座標を用いる。
【００９１】
オブジェクト記憶部３０２は、仮想空間に記憶されるオブジェクトの位置、姿勢、ポリゴン情報、テクスチャ情報、視点から伸びる半直線を表すオブジェクト（以下「半直線オブジェクト」という。）であるか、視点を頂点とする錐体を表すオブジェクト（以下「錐体オブジェクト」という。）であるか、それ以外の通常のオブジェクト（以下「一般オブジェクト」ともいう。）であるか、を示す属性情報などを記憶する領域である。オブジェクトを当該領域に記憶するにあたっては、公知の３次元オブジェクト管理技術を採用することができる。
【００９２】
なお、本実施形態では、半直線オブジェクトは１つとし、錐体オブジェクトは当該半直線オブジェクトに連動して仮想空間内を移動することとして１つとし、錐体オブジェクトの形状は、頂点における尖り角度が一定の、無限に大きな円錐形を採用する。
【００９３】
一方、Ｚバッファ３０３は、一般オブジェクトがオブジェクト記憶部に記憶されるアドレスを、視点からの距離を鍵にソートした配列である。したがって、当該配列を一定の方向に走査することで、一般オブジェクトに視点から遠い順にアクセスすることができ、これとは逆の方向に走査することで、一般オブジェクトに視点から近い順にアクセスすることができる。
【００９４】
本実施形態では、オブジェクト記憶部３０２およびＺバッファ３０３は、ＲＡＭ  １０３内に確保する。
【００９５】
一方、フレームバッファ３０４は、表示部３０６が画像処理部１０７に接続されるモニタに仮想空間を視点から見た様子を表示する際に使用する領域で、画像処理部１０７は、Ｚバッファ３０３を視点から遠い順に走査して一般オブジェクトを順に、位置情報、光源情報、テクスチャ情報等に基づいて、透視投影でフレームバッファに描画する。フレームバッファに描画された情報は、垂直同期信号にしたがって、モニタの画面に表示されることとなる。
【００９６】
画像バッファ３０５は、実際に画面に表示することを意図しない（表示しても良い）フレームバッファであるが、一般オブジェクトを描画するときに、当該オブジェクトの色彩（画素値）として、Ｚバッファ３０３内における当該オブジェクトの配列インデックス（これは、視点からの近さ（遠さ）の順位に相当する。）を採用する。したがって、画面内の位置が指定されれば、これに対応する画像バッファ３０５の画素値から、オブジェクトがその位置に見えるかがすぐにわかることとなる。したがって、画像バッファ３０５は、範囲順位記憶部として機能する。
【００９７】
本実施形態では、フレームバッファ３０４および画像バッファ３０５は、典型的にはＲＡＭ  １０３内に確保されるが、画像処理部１０７の内部に用意された高速アクセスが可能な記憶域などを利用しても良い。
【００９８】
図４は、仮想空間内に配置されるオブジェクトの様子を示す説明図である。以下、本図を参照して説明する。
【００９９】
仮想空間４０１には、一般オブジェクトとして、立方体オブジェクト４０２、球体オブジェクト４０３、三角錐オブジェクト４０４が配置されている。また、視点４０５から伸びる半直線オブジェクト４０６と、これを中心軸とする円錐形の錐体オブジェクト４０７も配置されている。
【０１００】
仮想空間４０１には、仮想的な投射平面４０８も配置されており、各オブジェクトが画面に表示される座標は、当該オブジェクトと視点４０５とを結ぶ線分が投射平面４０８と交わる交点の位置によって決まる。このような投射技術を透視投影と呼ぶ。
【０１０１】
本図に示す配置例では、視点４０５からの近い順は、立方体オブジェクト４０２、球体オブジェクト４０３、三角錐オブジェクト４０４となっている。
【０１０２】
図５は、オブジェクト選択装置３０１にて実行されるオブジェクト選択処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１０３】
本処理が実行されると、まず、ＣＰＵ  １０１は、オブジェクト記憶部３０２に、仮想空間に配置される一般オブジェクト、半直線オブジェクト、錐体オブジェクトの情報を記憶させて初期化する（ステップＳ５０１）。
【０１０４】
次に、ＣＰＵ  １０１は、Ｚバッファ３０３に一般オブジェクトのアドレスを登録して（ステップＳ５０２）、Ｚバッファ３０３を当該アドレスにより指されるオブジェクトの視点４０５からの距離によってソートする（ステップＳ５０３）。たとえば、近い順にソートしたとすると、
（１）配列の０番目の要素は、立方体オブジェクト４０２、
（２）配列の１番目の要素は、球体オブジェクト４０３、
（３）配列の２番目の要素は、三角錐オブジェクト４０４
となる。
【０１０５】
さらに、画像処理部１０７は、フレームバッファ３０４を表示用背景色でクリアした後（ステップＳ５０４）、Ｚバッファ３０３およびオブジェクト記憶部３０２を参照して、視点４０５から遠い順に一般オブジェクトを（本例では、配列のインデックスを２から０に向かって走査し、三角錐オブジェクト４０４、球体オブジェクト４０３、立方体オブジェクト４０２の順に）フレームバッファ３０４に描画する（ステップＳ５０５）。この際には、オブジェクト記憶部３０２に記憶される一般オブジェクトの位置、姿勢、テクスチャ情報のほか、視点４０５の位置や光源の位置なども参照して、通常の３次元グラフィックス生成処理が行われる。
【０１０６】
ついで、画像処理部１０７は、オブジェクト記憶部３０２を参照して、半直線オブジェクト４０６および錐体オブジェクト４０７をフレームバッファ３０４に描画する（ステップＳ５０６）。半直線オブジェクト４０６や錐体オブジェクト４０７は、半透明な色彩で表示したり、錐体オブジェクト４０７の周囲のみ点線で表示したりするなどの手法を採用することもできる。また、半直線オブジェクト４０６を透視投影すると、必ず一つの点になってしまうため、これを目立たせるために、十字線などの標識を表示しても良い。
【０１０７】
このようにしてフレームバッファ３０４に記憶された画像情報は、垂直同期割り込みを時間の単位として、画像処理部１０７に接続されるモニタに実際に画面表示がなされることになる。
【０１０８】
たとえば、２４ビットカラーで８００ドット×６００ドットの画像を表示する場合、フレームバッファ３０４としては、３×８００×６００＝１４４００００バイトの領域が必要となる。
【０１０９】
図６は、この状態のフレームバッファ３０４によって画面表示がなされるとした場合の様子を示す説明図である。以下、本図を参照して説明する。
【０１１０】
本図に示すように、画面６０１内には、一般オブジェクトとして立方体オブジェクト４０２、球体オブジェクト４０３、三角錐オブジェクト４０４が表示される。
【０１１１】
また、それ以外のオブジェクトとして半直線オブジェクト４０６と、これを目立たせるための十字線６０２、錐体オブジェクト４０７が表示されている。本図では、理解を容易にするため、錐体オブジェクト４０７は、周囲のみ点線で表示するものとしているが、上記のように、半透明の色彩を採用して、錐体オブジェクト４０７に交叉する一般オブジェクトが透けて見えるようにしても良い。
【０１１２】
さらに、画像処理部１０７は、画像バッファ３０５を距離用背景色でクリアした後（ステップＳ５０７）、Ｚバッファ３０３およびオブジェクト記憶部３０２を参照して、視点４０５から遠い順に一般オブジェクトを（本例では、配列のインデックスを２から０に向かって走査し、三角錐オブジェクト４０４、球体オブジェクト４０３、立方体オブジェクト４０２の順に）画像バッファ３０５に描画する（ステップＳ５０８）。
【０１１３】
この際に、画素値としては、配列のインデックスを採用する。すなわち、本例では、三角錐オブジェクト４０４は画素値２で、球体オブジェクト４０３は画素値１で、立方体オブジェクト４０２は画素値０で、それぞれ描画することとなる。
【０１１４】
さて、画像バッファ３０５としては、２４ビットカラーを採用する必要性はない。画像バッファ３０５に描画される一般オブジェクトの個数に上限を定めたり、一般オブジェクトの視点４０５からの距離に上限を定めることによって、この個数を限定することとなる。
【０１１５】
たとえば、画像バッファ３０５の１画素を１バイト＝８ビットで済ませたい場合には、距離用背景色として、画素値「28-1＝２５５」を採用し、一般オブジェクトの個数は、画素値「０」〜「２５４」の２５５個とすれば良い。
【０１１６】
また、画像バッファ３０５の１画素を１／２バイト＝４ビットで済ませたい場合には、距離用背景色として、画素値「24-1＝１５」を採用し、一般オブジェクトの個数は、画素値「０」〜「１４」の１５個とすれば良い。
【０１１７】
このような数値の対応付けについては、逆順にしたり、所定の関数や演算を適用した結果を採用するなど、各種の変形が考えられるが、いずれも本発明の範囲に含まれる。
【０１１８】
また、画像バッファ３０５は、実際に画面に表示することを意図したものではないので、フレームバッファが８００×６００ドットであっても、これと同じサイズにする必要はなく、たとえば４００×３００ドット、２００×１５０ドット、１００×７５ドットにする等、縮小したサイズにすることもできる。このようにすれば、画像バッファ３０５のサイズを小さくすることができるため、ＲＡＭ  １０３の使用効率を上げることができるほか、画像バッファ３０５への描画時間を抑えることができる。
【０１１９】
図７は、画像バッファ３０５に記憶される情報の様子を示す説明図である。以下、本図を参照して説明する。
【０１２０】
本図に示すように、画像バッファ３０５は、画面に対応する形状（典型的には画面のドットを縮小した）の画素配列であり、三角錐オブジェクト４０４は画素値２が、球体オブジェクト４０３は画素値１が、立方体オブジェクト４０２は画素値０が、それ以外の領域は距離用背景色として画素値２５５が、書き込まれている。
【０１２１】
このように、画像処理部１０７は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３等と共働して、表示部３０６として機能する。また、ＲＡＭ  １０３内に用意された画像バッファは、領域位置記憶部として機能する。
【０１２２】
ついで、画像処理部１０７は、ＣＰＵ  １０１の制御の下、半直線オブジェクト４０６が画像バッファ３０５に描画されるとした場合の画像バッファ３０５内における座標を求める（ステップＳ５０９）。上記同様、通透投影の技術を用いれば良い。
【０１２３】
そして、画像バッファ３０５における当該座標の画素値を取得して、その値が距離用背景色であるか否かを判別する（ステップＳ５１０）。当該画素値が距離用背景色でなければ（ステップＳ５１０；Ｎｏ）、Ｚバッファ３０３の配列のインデックスとして当該画素値を採用して得たオブジェクトのアドレスを、ＲＡＭ  １０３内に用意された選択結果領域に出力する（ステップＳ５１１）。
【０１２４】
一方、その値が距離用背景色である場合（ステップＳ５１０；Ｙｅｓ）、画像処理部１０７は、ＣＰＵ  １０１の制御の下、錐体オブジェクト４０７が画像バッファ３０５に描画されるとした場合の画像バッファ３０５内における領域を求める（ステップＳ５１２）。
【０１２５】
本実施形態では、錐体オブジェクト４０７として円錐形状を採用しているため、この領域の形状は円または楕円となる。このほか、錐体オブジェクト４０７として四角錐を採用した場合には、この領域の形状は四角形となる。
【０１２６】
そして、ＲＡＭ  １０３内に用意された一時画素値領域に距離用背景色を代入し（ステップＳ５１３）、画像バッファ３０５において当該領域に含まれる画素のそれぞれについて、以下の処理を繰り返す（ステップＳ５１４〜ステップＳ５１７）。
【０１２７】
すなわち、現在の画素の画素値が一時画素値領域に記憶されたものより小さいか否かを判別し（ステップＳ５１５）、そうであれば（ステップＳ５１５；Ｙｅｓ）、一時画素値領域に現在の画素値を代入して（ステップＳ５１６）、他の画素について処理を繰り返す（ステップＳ５１４〜ステップＳ５１７）。一方、そうでなければ（ステップＳ５１５；Ｎｏ）、他の画素について処理を繰り返す（ステップＳ５１４〜ステップＳ５１７）。
【０１２８】
領域に含まれる画素について繰り返し処理（ステップＳ５１４〜ステップＳ５１７）が終了したら、一時画素値領域に記憶される値が距離用背景色であるか否かを判別し（ステップＳ５１８）、そうでなければ（ステップＳ５１８；Ｎｏ）、ステップＳ５１１に進む。そうであれば（ステップＳ５１８；Ｙｅｓ）、選択結果領域にアドレス０を出力することによって（ステップＳ５１９）、選択結果「なし」であることを表す。
【０１２９】
このように、ＣＰＵ  １０１は、画像処理部１０７やＲＡＭ  １０３と共働して、出力部３０７として機能する。
【０１３０】
さて、ステップＳ５１１およびステップＳ５１９の後、ＣＰＵ  １０１は、コントローラ１０５の押圧操作状況を監視し（ステップＳ５２０）、↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４のいずれかが押圧操作されている場合（ステップＳ５２０；矢印）、その方向に十字線６０２が移動するように、半直線オブジェクト４０６および錐体オブジェクト４０７の方向を所定の微小量だけ変化させてオブジェクト記憶部３０２を更新して（ステップＳ５２１）、ステップＳ５２３に進む。
【０１３１】
一方、○ボタン２０５が押圧操作されている場合（ステップＳ５２０；○）、本処理を終了する。これによって、オブジェクトの選択結果が、ＲＡＭ  １０３内の選択結果領域に書き込まれた値によって出力されることになる。
【０１３２】
したがって、ＣＰＵ  １０１の制御の元、↑ボタン２０１、↓ボタン２０２、←ボタン２０３、→ボタン２０４は、方向指示入力受付部３０８として機能し、○ボタン２０５は、決定指示入力受付部３１０として機能し、ＣＰＵ  １０１は、ＲＡＭ  １０３と共働して、方向変更部３０９および決定部３１１として機能することとなる。
【０１３３】
一方、その他のボタンが押圧操作されているか、何も押圧操作されていない場合（ステップＳ５２０；その他）、当該押圧操作や無操作に対応する処理を実行して（ステップＳ５２２）、垂直同期割り込みまで待機する（ステップＳ５２３）。この待機中には、このほかの処理をコルーチン的に実行することができる。
【０１３４】
待機（ステップＳ５２３）が完了すると、モニタの表示画面がフレームバッファ３０４の内容で更新されることとなるので、ステップＳ５０３に戻る。これは、待機中の処理（ステップＳ５２３）や対応する処理（ステップＳ５２２）によって、一般オブジェクトの位置等が変更されることがあるからである。
【０１３５】
なお、待機（ステップＳ５２３）の直前に、選択結果領域に出力されているアドレスの一般オブジェクトがあれば、当該一般オブジェクトを強調表示する処理を追加しても良い。強調表示の手法としては、当該一般オブジェクトの縁を太くする（たとえば、トゥーンシェーディングの技術を利用することができる。）、当該一般オブジェクトを明るく表示する、当該一般オブジェクトを指すカーソル画像を表示する、等である。
【０１３６】
図８は、このような場合の表示例を示す説明図である。これらの表示例では、現在結果領域に出力されているアドレスの一般オブジェクトは縁が太くなるように表示されている。また、十字線６０２を囲む錐体オブジェクト４０７の縁が点線で表示されている。なお、本図では、理解を容易にするため、錐体オブジェクト４０７の位置が移動しても、縁の形状は同じ円のままとしている。上記のように、十字線６０２を囲む錐体オブジェクト４０７が画面に表示される形状は、一定形状の円、正方形、長方形、楕円、長円などとしても良いし、円錐や角錐が投射平面で切り取られる形状を採用しても良い。
【０１３７】
本図（ａ）（ｈ）では、錐体オブジェクト４０７（の表示範囲）と三角錐オブジェクト４０４（の表示範囲）が交叉しているため、三角錐オブジェクト４０４が強調表示されている。この状態で○ボタン２０５を押圧操作すると、三角錐オブジェクト４０４が選択結果として決定される。
【０１３８】
本図（ｂ）（ｇ）では、錐体オブジェクト４０７（の表示範囲）と交叉するオブジェクト（の表示範囲）がないため、いずれのオブジェクトも強調表示されていない。
【０１３９】
本図（ｃ）（ｄ）では、錐体オブジェクト４０７（の表示範囲）と立方体オブジェクト４０２（の表示範囲）が交叉しているため、立方体オブジェクト４０２が強調表示されている。この状態で○ボタン２０５を押圧操作すると、立方体オブジェクト４０２が選択結果として決定される。
【０１４０】
本図（ｅ）（ｆ）では、錐体オブジェクト４０７（の表示範囲）と交叉するのは、三角錐オブジェクト４０４（の表示範囲）と球体オブジェクト４０３（の表示範囲）の２つであるが、球体オブジェクト４０３の方が三角錐オブジェクト４０４よりも、視点４０５に近い順で前にあるため、この状態で○ボタン２０５を押圧操作すると、球体オブジェクト４０３が選択結果として決定される。
【０１４１】
本実施形態によれば、ユーザの直観に沿った指示によって、オブジェクトを容易に選択することができるようになる。
【０１４２】
なお、上記実施形態では、コントローラ１０５によって方向指示入力を行っているが、タッチパネルに指やペンで位置を指示したり、マウスカーソルを移動させてクリックすることにより位置を指示して、指示された位置に十字線６０２が表示されるようにしても良い。
【０１４３】
この場合、画面６０１内でユーザに指示された位置が、仮想空間４０１内の投射平面４０８でどこに相当するかを計算し、半直線オブジェクト４０６を、視点４０５から投射平面４０８上の相当点への半直線に設定する。
【０１４４】
錐体オブジェクト４０７の表示は必ずしも行う必要はない。また、タッチパネルに対する指やペンの位置の指示、マウスカーソルを移動させてクリックすることによる位置の指示を、方向指示入力にかわるものとするとともに、決定指示入力でもある、として扱って、上記と同様の処理を行う。
【０１４５】
したがって、これらの機器は、オブジェクト選択装置３０１に方向指示入力受付部３０８と実質的に等価な位置指示入力受付部（図示せず）として機能するとともに、決定指示入力受付部３１０としても機能することとなる。
【実施例２】
【０１４６】
上記実施例では、ステップＳ５０６において、錐体オブジェクト４０７をフレームバッファ３０４に描画し、ステップＳ５１２において、錐体オブジェクト４０７が画像バッファ３０５に描画されるとした場合の画像バッファ３０５内における領域を求めることとしていたが、本実施形態では、錐体オブジェクト４０７を利用しない。
【０１４７】
すなわち、半直線オブジェクト４０６がフレームバッファ３０４や画像バッファ３０５に描画される際の位置を含む、固定された形状の領域を採用するのである。
【０１４８】
たとえば、当該領域の形状として、半直線オブジェクト４０６が投射される点とともに動く（典型的には、当該点を中心とする）所定の大きさの正方形や長方形、円形を採用するのである。
【０１４９】
この場合、ステップＳ５０６におけるフレームバッファ３０４の描画は、固定サイズの正方形や長方形、円形等を半透明や縁を点線で描画することとなる。
【０１５０】
また、ステップＳ５１２において取得される領域は、半直線オブジェクト４０６の投射点とともに動く固定サイズの正方形や長方形、円形となる。
【０１５１】
上記実施形態では、十字線６０２を画面内で移動させると、錐体オブジェクト４０７が描画される領域が変形していたが、本実施形態では、一般オブジェクトが交叉することによって選択されることとなる領域の形状は、十字線６０２を画面内で移動させても変形しない。
【０１５２】
本実施形態によれば、錐体オブジェクト４０７を使用しないことで、簡易にオブジェクトを容易に選択することができるようになる。
【実施例３】
【０１５３】
上記実施形態では、画像バッファ３０５を利用して、半直線オブジェクト４０６や錐体オブジェクト４０７と一般オブジェクトの交叉を求めていたが、一般的な３次元空間における図形演算を用いて、交叉を求めることとしても良い。
【０１５４】
たとえば、錐体オブジェクト４０７の頂点の尖り角度を2θ、すなわち中心軸となる半直線オブジェクト４０６からの広がり角度をθとした場合を考える。
【０１５５】
仮想空間における視点４０５の位置ベクトルr、半直線オブジェクト４０６の方向ベクトルd、一般オブジェクト内の或る点の位置ベクトルsとしたとき、
(s-r)・d/(|s||d|) = 1
であれば、半直線オブジェクト４０６は、当該或る点を通過することになる。
【０１５６】
また、
(s-r)・d/(|s||d|) = cosφ かつ φ≦θ
であれば、錐体オブジェクト４０７は当該一般オブジェクトと交叉することになる。ここで、「・」はベクトルの内積を求める演算であり、「|  |」はベクトルの長さを求める演算である。
【０１５７】
このようにして、一般オブジェクトと半直線オブジェクト４０６や錐体オブジェクト４０７の交叉を３次元図形演算によって判断するのである。
【０１５８】
本実施形態によれば、錐体オブジェクト４０７が円錐形の場合には、画像バッファ３０５を利用しなくとも、単なるベクトル演算などの計算によって、オブジェクト同士の交叉を求めることができる。
【実施例４】
【０１５９】
上記実施形態では、３次元空間の仮想空間を想定し、その中にオブジェクトが配置される条件下において、オブジェクトの選択を行うこととしていた。しかしながら、本発明の原理は、オブジェクトに何らかの順序が想定されており、その順序によってオブジェクトの重ね合わせ表示がされる状況に適用することができる。
【０１６０】
以下では、２次元平面に配置された複数のアイテムを表す画像からいずれかを選択する状況、たとえばトランプのカードを選択する場合に適用されるような、オブジェクトの選択の手法について説明する。
【０１６１】
上記の実施形態では、視点からの距離によってオブジェクトに順序が付けられており、順序の前後を視点に近いか遠いか（Ｚバッファ内での順序もしくは逆順序によって定められる。）によって決め、複数のオブジェクトが選択の候補となっている場合には、順序が前のもの（これは、視点に近いものである。）を選ぶこととしている。本実施形態では、これをさらに一般化したものである。
【０１６２】
オブジェクトが重ね合わせて表示される場合に、「所定の順序」が定められており、オブジェクトが重なる場合は、順序が前のオブジェクトが順序が後のオブジェクトを隠すように表示され、複数のオブジェクトが選択の候補となっている場合には、順序が前のものを選ぶこととしている。
【０１６３】
たとえば、図８に示す例は、斜めの四角形の３つ組からなる絵の２次元オブジェクト、円の絵の２次元オブジェクト、三角形の対からなる絵の２次元オブジェクトが、この順序で表示されている様子であると考えることもできる。
【０１６４】
そして、十字線がいずれかの２次元オブジェクトに重なる位置にある場合は、その２次元オブジェクトが選択される。
【０１６５】
一方、十字線がいずれかの２次元オブジェクトにも重ならない場合は、点線で囲まれた二次元領域に重なる２次元オブジェクトから、順序が最も前であるものが選択されるのである。
【０１６６】
本実施形態は、オブジェクトの前後関係は維持したまま、仮想空間として、２次元空間を想定するものであり、処理の詳細は、上記実施形態と同様に行うことができる。
【産業上の利用可能性】
【０１６７】
以上説明したように、本発明によれば、所定の順序が付けられて表示されるオブジェクトを容易に選択できるようにするオブジェクト選択装置、オブジェクト選択方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０１６８】
【図１】本発明のオブジェクト選択装置が実現される典型的な情報処理装置の概要構成を示す模式図である。
【図２】コントローラの外観を示す説明図である。
【図３】本実施形態に係るオブジェクト選択装置の概要構成を示す説明図である。
【図４】仮想空間内に配置されるオブジェクトの様子を示す説明図である。
【図５】オブジェクト選択装置にて実行されるオブジェクト選択処理の制御の流れを示すフローチャートである。
【図６】この状態のフレームバッファによって画面表示がなされるとした場合の様子を示す説明図である。
【図７】画像バッファに記憶される情報の様子を示す説明図である。
【図８】画面の表示例を示す説明図である。
【符号の説明】
【０１６９】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
１１１  マイク
２０１  ↑ボタン
２０２  ↓ボタン
２０３  ←ボタン
２０４  →ボタン
２０５  ○ボタン
２０６  ×ボタン
２０７  △ボタン
２０８  □ボタン
２０９  ＳＥＬＥＣＴボタン
２１０  ＳＴＡＲＴボタン
２１１  ＡＮＡＬＯＧボタン
２１２  インジケータ
２１３  ジョイスティック
２１４  ジョイスティック
２１５  Ｌ１ボタン
２１６  Ｌ２ボタン
２１７  Ｒ１ボタン
２１８  Ｒ２ボタン
３０１  オブジェクト選択装置
３０２  オブジェクト記憶部
３０３  Ｚバッファ
３０４  フレームバッファ
３０５  画像バッファ
３０６  表示部
３０７  出力部
３０８  方向指示入力受付部
３０９  方向変更部
３１０  決定指示入力受付部
３１１  決定部
４０１  仮想空間
４０２  立方体オブジェクト
４０３  球体オブジェクト
４０４  三角錐オブジェクト
４０５  視点
４０６  半直線オブジェクト
４０７  錐体オブジェクト
４０８  投射平面
６０１  画面
６０２  十字線
【図１】
2007148855.tif 000003
【図２】
2007148855.tif 000004
【図３】
2007148855.tif 000005
【図４】
2007148855.tif 000006
【図５】
2007148855.tif 000007
【図６】
2007148855.tif 000008
【図７】
2007148855.tif 000009
【図８】
2007148855.tif 000010