(57)【要約】【課題】簡単な操作でオブジェクト空間内の点を指示することが可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】タッチパネルによって検出された接触位置に基づきオブジェクト空間内のタッチパネルに相当する第１の平面における第１の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第１の平面と平行な第２の平面における第２の点の位置を求め、前記第１及び第２の点を通る仮想線に沿って前記ポインタを配置し、前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めることで、オブジェクト空間内の点を指定する。【選択図】図１２
2012252627.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第１の平面における第１の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第１の平面と平行な第２の平面における第２の点の位置を求め、前記第１及び第２の点を通る仮想線に沿って前記ポインタを配置することを特徴とするプログラム。
【請求項２】
請求項１において、
前記ポインタ表示制御部が、
前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項３】
請求項１において、
前記ポインタ表示制御部が、
前記第１及び第２の点の位置を求めるための第１の接触入力とは異なる第２の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項４】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第１の平面における第１の点の位置を求め、前記第１の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とするプログラム。
【請求項５】
請求項４において、
前記ポインタ表示制御部が、
前記第１の点の位置を求めるための第１の接触入力とは異なる第２の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部として更にコンピュータを機能させ、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させることを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記視点を制御する視点制御部として更にコンピュータを機能させ、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも１つを制御することを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記表示部は、
立体視画像を表示するための表示部であり、
前記画像生成部が、
前記ポインタを含む前記立体視画像を生成することを特徴とするプログラム。
【請求項９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至８のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１０】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、
接触入力を検出するためのタッチパネルと、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部とを含み、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第１の平面における第１の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第１の平面と平行な第２の平面における第２の点の位置を求め、前記第１及び第２の点を通る仮想線に沿って前記ポインタを配置することを特徴とする画像生成システム。
【請求項１１】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、
接触入力を検出するためのタッチパネルと、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部とを含み、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第１の平面における第１の点の位置を求め、前記第１の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来、表示画面に表示されている画像の中の任意の点を指定する場合には、ユーザは、マウスポインタ、タッチパネル等の入力装置を用いて所望の点をシステムに対して指示していた。また、表示画面に表示されている３次元空間（オブジェクト空間）内の任意の点を指定する場合には、指定する点の３次元座標を直接入力する方法や、最初に三軸の任意の２軸を含む第１平面内の２次元座標を指定し、その後前記２軸以外の１軸と前記２軸の内いずれか１軸とを含む第２平面内の２次元座標を指定することで３次元座標を指定する方法が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９１７７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、ユーザの操作が煩雑になり簡単な操作で３次元空間内の点を指定することができないといった問題点があった。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、簡単な操作でオブジェクト空間内の点を指示することが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明に係るプログラムは、
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第１の平面における第１の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第１の平面と平行な第２の平面における第２の点の位置を求め、前記第１及び第２の点を通る仮想線に沿って前記ポインタを配置することを特徴とするプログラムに関する。
【０００７】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【０００８】
本発明によれば、タッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【０００９】
（２）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【００１０】
本発明によれば、タッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定し、同一位置でタッチを継続させることでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【００１１】
（３）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記第１及び第２の点の位置を求めるための第１の接触入力とは異なる第２の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【００１２】
本発明によれば、第１の接触入力によりタッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定し、第２の接触入力を行うことでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【００１３】
（４）本発明に係るプログラムは、
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第１の平面における第１の点の位置を求め、前記第１の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とするプログラムに関する。
【００１４】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【００１５】
ここで、前記仮想線は、前記第１の点と所与の基準点とを通る仮想線であってもよいし、前記第１の点を通り、前記第１の平面及び前記視点の少なくとも一方に基づき設定される方向に伸びる仮想線であってもよい。
【００１６】
本発明によれば、タッチパネルにタッチすることでポインタのオブジェクト空間における向きを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【００１７】
（５）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記第１の点の位置を求めるための第１の接触入力とは異なる第２の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【００１８】
本発明によれば、第１の接触入力を行うことでポインタのオブジェクト空間における向きを決定し、第２の接触入力を行うことでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【００１９】
（６）また本発明に係るプログラム及び情報記憶媒体では、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部として更にコンピュータを機能させ、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させるようにしてもよい。
【００２０】
また本発明に係る画像生成システムでは、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部を更に含み、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させるようにしてもよい。
【００２１】
（７）また本発明に係るプログラム及び情報記憶媒体では、
前記視点を制御する視点制御部として更にコンピュータを機能させ、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも１つを制御するようにしてもよい。
【００２２】
また本発明に係る及び画像生成システムでは、
前記視点を制御する視点制御部を更に含み、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも１つを制御するようにしてもよい。
【００２３】
（８）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記表示部は、
立体視画像を表示するための表示部であり、
前記画像生成部が、
前記ポインタを含む前記立体視画像を生成するようにしてもよい。
【００２４】
ここで、立体視画像の表示方式は、２眼式、多眼式や空間像方式（いわゆるインテグラル方式や、フラクショナル・ビュー方式等）等を含む。また、視差方向は水平方向のみに限られるものでなく、垂直方向にも視差を持つ方式であってもよく、メガネ式、裸眼式、スコープ式等の種類も問わない。さらには、空間内に立体的に配置されたスクリーン、もしくは空間内を動的に移動するスクリーンに投影する方式であってもかまわないし、空間内に立体的に配置された光源群、もしくは空間内を動的に移動する光源群による方式であってもかまわない。また、表示部に表示された立体視画像を、鏡やハーフミラーで反射させるようにしてもよい。
【図面の簡単な説明】
【００２５】
【図１】第１の実施の形態の画像生成システムの機能ブロック図の一例を示す図。
【図２】図２（Ａ）、図２（Ｂ）、図２（Ｃ）は、第１の実施の形態のポインタの表示制御について説明するための図。
【図３】図３（Ａ）、図３（Ｂ）、図３（Ｃ）は、第１の実施の形態のポインタの表示制御について説明するための図。
【図４】第１の実施の形態のポインタの表示制御について説明するための図。
【図５】図５（Ａ）、図５（Ｂ）は、第１の実施の形態のポインタの表示制御について説明するための図。
【図６】図６（Ａ）、図６（Ｂ）は、第１の実施の形態のポインタの表示制御について説明するための図。
【図７】図７（Ａ）、図７（Ｂ）は、第１の実施の形態のポインタの表示制御について説明するための図。
【図８】図８（Ａ）、図８（Ｂ）は、第１の実施の形態のポインタの表示制御について説明するための図。
【図９】図９（Ａ）、図９（Ｂ）、図９（Ｃ）は、第１の実施の形態のオブジェクトの表示制御について説明するための図。
【図１０】図１０（Ａ）、図１０（Ｂ）は、第１の実施の形態の仮想カメラの制御について説明するための図。
【図１１】図１１（Ａ）、図１１（Ｂ）は、第１の実施の形態の仮想カメラの制御について説明するための図。
【図１２】第１の実施の形態の処理の流れを示すフローチャート図。
【図１３】図１３（Ａ）、図１３（Ｂ）は、第２の実施の形態のポインタの表示制御について説明するための図。
【図１４】図１４（Ａ）、図１４（Ｂ）は、第２の実施の形態のポインタの表示制御について説明するための図。
【図１５】第２の実施の形態のポインタの表示制御について説明するための図。
【図１６】図１６（Ａ）、図１６（Ｂ）は、第２の実施の形態のポインタの表示制御について説明するための図。
【図１７】図１７（Ａ）、図１７（Ｂ）は、第２の実施の形態のポインタの表示制御について説明するための図。
【図１８】第２の実施の形態の処理の流れを示すフローチャート図。
【図１９】変形例について説明するための図。
【図２０】変形例について説明するための図。
【図２１】変形例について説明するための図。
【図２２】変形例について説明するための図。
【図２３】変形例について説明するための図。
【発明を実施するための形態】
【００２６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２７】
（第１の実施の形態）
１．機能ブロック図
図１に第１の実施の形態の画像生成システム（画像生成装置）の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２８】
タッチパネル１６０は、ユーザによる接触入力を検出するためのものであり、接触位置の座標値を連続的に検出し、処理部１００に出力する。タッチパネル方式としては、抵抗膜方式（４線式、５線式）、静電容量結合方式、超音波表面弾性波方式、赤外線走査方式などがある。タッチパネル１６０は、表示部１９０に内蔵若しくは配置されるか、表示部１９０と離隔配置され、表示部１９０とともにタッチパネルディスプレイを構成する。タッチパネル１６０（タッチパネルディスプレイ）への接触操作（タッチ操作）は、指先を用いて行ってもよいし、タッチペンなどの入力機器を用いて行ってもよい。
【００２９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７２と、最終的な表示画像等が記憶されるフレームバッファ１７４と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７６と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部１７８と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ１７９とを含む。なお、これらの一部を省略する構成としてもよい。
【００３０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３１】
表示部１９０は、本実施形態により生成された画像（オブジェクト空間を所与の視点から見た画像）を出力するものであり、その機能は、ＬＣＤなどにより実現できる。また表示部１９０は、立体視画像を表示するようにしてもよい。例えば、表示部１９０は、有限個の画素からなるＬＣＤの前面又は背面に、パララックスバリアやレンチキュラ等の光学素子が配置される。例えば、立体視表示方式が、垂直バリアまたは垂直レンチキュラによる２眼式の場合には、１枚（１フレーム）の左眼用画像を表示するための表示領域と、１枚の右眼用画像を表示するための表示領域とが、短冊状に左眼用短冊画像表示領域及び右眼用短冊画像表示領域として交互に配置されている。パララックスバリアが配置される場合、その隙間からは、表示部１９０の観者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、レンチキュラが配置される場合、各短冊集合画像に対応したレンズの光屈折効果により、表示部１９０の観者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。
【００３２】
通信部１９６は他の画像生成システムやサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３３】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【００３４】
処理部１００（プロセッサ）は、タッチパネル１６０からの検出信号（接触位置の座標値）、通信部１９６を介して受信したデータやプログラムなどに基づいて、ポインタの表示制御、オブジェクトの表示制御、画像生成処理などの処理を行う。この処理部１００は主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３５】
処理部１００は、オブジェクト空間設定部１１０、ポインタ表示制御部１１２、オブジェクト表示制御部１１４、仮想カメラ制御部１１８、描画部１２０を含む。
【００３６】
オブジェクト空間設定部１１０は、表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３７】
ポインタ表示制御部１１２は、タッチパネル１６０によって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行う。すなわち、ポインタ表示制御部１１２は、前記接触位置に基づきオブジェクト空間内の第１の平面における第１の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第１の平面と平行な第２の平面における第２の点の位置を求め、前記第１及び第２の点を通る仮想線を設定し、この仮想線に沿って前記ポインタを配置する処理を行う。
【００３８】
またポインタ表示制御部１１２は、前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求める。またポインタ表示制御部１１２は、同一位置への接触時間に基づいて、前記ポインタを前記仮想線に沿って伸長、又は短縮させるようにしてもよい。またポインタ表示制御部１１２は、接触入力が行われなくなった場合（接触状態が解除された場合）に、前記ポインタの伸長処理若しくは伸縮処理を停止するようにしてもよい。
【００３９】
またポインタ表示制御部１１２は、前記第１の点の位置を求めるための第１の接触入力とは異なる第２の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。またポインタ表示制御部１１２は、前記第２の接触入力に基づいて、前記ポインタを前記仮想線に沿って伸長、又は短縮させるようにしてもよい。例えば、前記第２の接触入力における接触位置の移動距離や移動方向若しくは移動方向に基づき前記ポインタの伸長若しくは短縮処理を行うようにしてもよい。また、前記第２の接触入力が行われなくなった場合（接触状態が解除された場合）に、前記ポインタの伸長処理若しくは短縮処理を停止するようにしてもよい。
【００４０】
オブジェクト表示制御部１１４は、前記オブジェクト空間内のオブジェクトの表示制御を行い、前記ポインタの指示位置（前記ポインタの奥行き方向の先端位置）に基づいて、前記オブジェクトの表示態様を変化させる処理を行う。例えば、前記ポインタが貫通した前記オブジェクトの表示態様を変化させるようにしてもよいし、前記ポインタの先端位置よりも仮想カメラから見て手前側（奥行き方向の手前側）にある前記オブジェクトの表示態様を変化させるようにしてもよいし、仮想カメラから見て、前記ポインタが指示しているオブジェクトを覆い隠しているオブジェトの表示態様を変化させるようにしてもよい。また前記オブジェクトの表示態様を変化させる処理としては、例えば、前記オブジェクトの透明度を変化させる処理、前記オブジェクトを非表示にする処理、前記オブジェクトを輪郭表示（例えば、ワイヤフレーム表示）する処理等がある。
【００４１】
仮想カメラ制御部１１８（視点制御部）は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、操作部１６０によりプレーヤが入力した操作データ或いはプログラム（移動・動作アルゴリズム）等に基づいて、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は光軸の方向（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度等）を制御する処理を行う。要するに、視点位置、仮想カメラの向き、画角を制御する処理を行う。
【００４２】
また仮想カメラ制御部１１８は、前記ポインタの指示位置（前記ポインタの奥行き方向の先端位置）に基づいて、仮想カメラ（２眼式の立体視方式により立体視画像を表示する場合には、左眼用及び右眼用の仮想カメラ）の位置、向き及び画角の少なくとも１つを制御するようにしてもよい。例えば、仮想カメラ位置或いは仮想カメラの向きを前記ポインタの指示位置に追従させる制御を行うようにしてもよいし、前記ポインタの指示位置が奥行き方向に移動するに従って仮想カメラの画角（視野角）を小さくするようにしてもよい。
【００４３】
描画部１２０（画像生成部）は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。
【００４４】
いわゆる３次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００４５】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、射影変換（透視変換、投影変換）、ビューポート変換（スクリーン座標変換）、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。ジオメトリ処理後のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００４６】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００４７】
ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００４８】
そして描画部１２０は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００４９】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００５０】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００５１】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５２】
また描画部１２０は、立体視画像を表示部１９０に出力するようにしてもよい。例えば、立体視方式が２眼式の場合であれば、左眼用の仮想カメラは、前記ポインタを配置するため（前記第１及び第２の面を設定するため）に用いられる仮想カメラ（センターカメラ）から所定距離だけ左側に離れて配置され、右眼用の仮想カメラは、センターカメラから所定距離だけ右側に離れて配置され、左眼用及び右眼用の仮想カメラ位置に基づいて、ポインタを含む左眼用画像及び右眼用画像を生成し、生成した各画像に基づいて立体視画像を生成する。具体的には、描画部１２０は、オブジェクト空間内の投影面に対してオブジェクトを左眼用仮想カメラの視点で透視投影して描画することで左眼用画像を生成し、投影面に対してオブジェクトを右眼用仮想カメラの視点で透視投影して描画することで右眼用画像を生成する。
【００５３】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００５４】
２−１．ポインタの表示制御
図２（Ａ）〜図２（Ｃ）、図３（Ａ）〜図３（Ｃ）、図４、図５（Ａ）、図５（Ｂ）、図６（Ａ）、図６（Ｂ）は、第１の実施形態のポインタの表示制御について説明するための図である。
【００５５】
図２（Ａ）は、タッチパネルディスプレイ（タッチパネル１６０を備えた表示部１９０）の表示画面ＳＣを示す図である。本実施形態においては、タッチパネルと表示画面ＳＣの位置は略一致しているものとする。ユーザは、指先ＦＧ（タッチペン等でもよい）をタッチパネルに接触（押下）させる操作を行うことで、オブジェクト空間内の任意の点を指示して、オブジェクト空間に配置された複数のオブジェクトＯＢ１〜３のうち所望のオブジェクトを選択する操作を行うことができる。
【００５６】
図２（Ａ）に示すように、ユーザが指先ＦＧをタッチパネルに接触させると、この最初に接触した接触位置（接触開始位置）が第１の点Ｐ１となり、第１の点Ｐ１を中心点とする第１のマーカーＭＫ１が表示画面ＳＣに表示される。
【００５７】
図３（Ａ）は、オブジェクト空間のＸＺ平面を示す図である。図３（Ａ）に示すように、オブジェクト空間には、タッチパネルに相当する面であって仮想カメラＶＣの光軸ベクトルＥＬ（仮想カメラＶＣの向き）と直交する第１の平面ＰＬ１と、第１の平面ＰＬ１と平行な平面であって第１の平面ＰＬ１から奥行き方向（＋Ｚ軸方向）に所定距離だけ離れた第２の平面ＰＬ２が設定される。なお、カメラの光軸ベクトルＥＬと第１の平面ＰＬ１が直交しているのは、タッチパネルと表示画面ＳＣの位置が略一致しているためであり、そうでない場合には、直交していないこともありうる。
【００５８】
具体的には、図４に示すように、仮想カメラＶＣの位置、向き、画角及び投影面の位置によって上下左右の構成面が決定される視錐台の領域であるビューボリュームＶＶのニアクリップ面ＮＰに第１の平面ＰＬ１が設定される。また、ビューボリュームＶＶ内において第１の平面ＰＬ１から奥行き方向（＋Ｚ軸方向）に所定距離だけ離れた位置であって、ファークリップ面ＦＰよりも手前側の位置に第２の平面ＰＬ２が設定される。なお、第１の平面ＰＬ１とニアクリップ面ＮＰは必ずしも一致していなくてもよく、ニアクリップ面ＮＰから奥行き方向（＋Ｚ軸方向）に所定距離だけ離れた位置に第１の平面ＰＬ１を設定するようにしてもよい。また、表示画面ＳＣに立体視画像を表示させる場合には、投影面もニアクリップ面ＮＰに設定される。
【００５９】
そして、図３（Ａ）、図４に示すように、ポインタ表示制御部１１２は、タッチパネル上の接触開始位置に基づいて、第１の平面ＰＬ１における第１の点Ｐ１を設定する。ここで、第１の点Ｐ１は、タッチパネル上の接触開始位置に対応する点であり、第１の点Ｐ１を透視投影変換（投影面に投影）したときに、表示画面ＳＣにおいて接触開始位置に相当する点になるように設定される。
【００６０】
そして、図２（Ｂ）に示すように、ユーザが指先ＦＧをタッチパネルに接触させたまま接触位置を移動させると、この移動後の接触位置が第２の点Ｐ２となり、第２の点Ｐ２を中心点とする第２のマーカーＭＫ２が表示画面ＳＣに表示される。また、第１の点Ｐ１と第２の点Ｐ２を通り奥行き方向（＋Ｚ軸方向）に延びる仮想線ＶＬが表示される。
【００６１】
すなわち、図３（Ｂ）、図４に示すように、ポインタ表示制御部１１２は、タッチパネル上の移動後の接触位置に基づいて、第２の平面ＰＬ２における第２の点Ｐ２を設定し、第１の点Ｐ１と第２の点Ｐ２を通る仮想線ＶＬをオブジェクト空間内に設定する。ここで、第２の点Ｐ２は、タッチパネル上の移動後の接触位置に対応する点であり、第２の点Ｐ２を透視投影変換したときに、表示画面ＳＣにおいて移動後の接触位置に相当する点になるように設定される。
【００６２】
なお、図２（Ｃ）、図３（Ｃ）に示すように、ユーザが指先ＦＧをタッチパネルに接触させ続ける限り、第２の点Ｐ２の位置は接触位置の移動に応じて移動後の接触位置に対応する位置に再設定され、第２の点Ｐ２の位置の変更に応じて仮想線ＶＬも再設定される。なお、第１の点Ｐ１は、接触開始位置に対応する位置に固定される。
【００６３】
そして、図５（Ａ）に示すように、ユーザが指先ＦＧをタッチパネルＳＣの同一位置に所定時間接触させ続けると、第２の点Ｐ２の位置と仮想線ＶＬの位置及び向きは確定し、仮想線ＶＬに沿った位置に、オブジェクト空間内の任意の点を指示するためのポインタＰＴが表示される。
【００６４】
すなわち、図６（Ａ）に示すように、ポインタ表示制御部１１２は、接触位置が所定時間移動しない場合（接触位置が停止した場合）に、第１の点Ｐ１を基点として仮想線ＶＬに沿って奥行き方向（＋Ｚ軸方向）に延びるポインタＰＴを配置する。ポインタＰＴは、その端部が第１の点Ｐ１に設定され、仮想線ＶＬに沿った向きに所定の長さを有するオブジェクトである。
【００６５】
そして、図５（Ｂ）に示すように、ユーザが指先ＦＧをタッチパネルの同一位置に接触させ続けると、ポインタＰＴは仮想線ＶＬに沿って伸長する。すなわち、図６（Ｂ）に示すように、ポインタ表示制御部１１２は、同一位置における接触時間に基づきポインタＰＴの仮想線ＶＬに沿った長さを決定し、接触時間が長くなるほどポインタＰＴを仮想線ＶＬに沿って奥行き方向（＋Ｚ軸方向）に伸長させる制御を行う。
【００６６】
なお、伸長するポインタＰＴが所定の長さに達した場合にポインタＰＴの伸長を停止するようにしてもよい。また、伸長するポインタＰＴの長さが所定の最大値ＬＭＡＸに達した場合にポインタＰＴを仮想線ＶＬに沿って短縮させ、短縮するポインタＰＴの長さが所定の最小値ＬＭＩＮになった場合に再びポインタＰＴを伸長させて、接触位置が停止している間はポインタＰＴの伸長と短縮を繰り返すようにしてもよい。
【００６７】
そして、ユーザが指先ＦＧをタッチパネルから離すと（指先ＦＧによる接触状態が解除されると）、ポインタＰＴの伸長は停止し、その時点でのポインタＰＴの先端位置ＩＰ（ポインタＰＴの奥行き方向側の端部）がオブジェクト空間におけるポインタＰＴの指示位置として確定する。すなわち、ポインタＰＴの先端位置ＩＰが、オブジェクト空間に配置されたいずれかのオブジェクトの内部に位置する場合、或いはいずれかのオブジェクトから所定距離範囲内にある場合には、当該オブジェクトを選択状態にする処理が行われる。例えば、図６（Ｂ）に示す状態でポインタＰＴの指示位置が確定した場合にポインタＰＴの先端位置ＩＰがオブジェクトＯＢ１の内部に位置していると仮定した場合には、ポインタＰＴによりオブジェクトＯＢ１が指示されたと判断されて、オブジェクトＯＢ１が選択される。
【００６８】
このように本実施形態では、ユーザは、指先ＦＧをタッチパネルの任意の位置に接触させることでポインタＰＴの基点となる位置（第１の点Ｐ１の位置）を決定し、指先ＦＧの接触位置を移動させて第２の点Ｐ２の位置と仮想線ＶＬの向きを任意に変化させることでポインタＰＴのオブジェクト空間における向きを決定し、指先ＦＧを同一位置に任意の時間だけ接触させ続けることでポインタＰＴのオブジェクト空間における奥行き方向の長さを決定して、オブジェクト空間内の所望のオブジェクトを選択する操作を行うことができる。
【００６９】
すなわち本実施形態によれば、指先ＦＧをタッチパネルにタッチしてスライドさせ、同一位置でタッチを継続するという簡単な操作でオブジェクト空間内の任意の点を指示することができる。
【００７０】
ここで、立体視画像を表示画面ＳＣ（タッチパネルディスプレイ）に表示させて、タッチパネル上のタッチ操作（接触操作）により表示画面ＳＣに表示されたオブジェクト空間内のオブジェクトを選択させる場合、ユーザはオブジェクト空間内のオブジェクトに触れようとしてもタッチパネルより奥に指先を進ませることができない。本実施形態では、指先をタッチパネルに接触させた位置からポインタＰＴがオブジェクト空間における奥行き方向に伸びてゆくため、ユーザはあたかも自身の指先をオブジェクト空間内に入り込ませるような感覚でオブジェクト空間内のオブジェクトを選択する操作を行うことができる。すなわち本実施形態によれば、特に立体視画像を生成する場合に、直感的に分かり易い操作環境をユーザに提供することができる。
【００７１】
なお、図２〜図６では、第２の平面ＰＬ２を第１の平面ＰＬ１から奥行き方向（＋Ｚ軸方向）に所定距離だけ離れた位置に設定する場合について示したが、図７（Ａ）に示すように、第１の平面ＰＬ１を第２の平面ＰＬ２から奥行き方向（＋Ｚ軸方向）に所定距離だけ離れた位置に設定するようにしてもよい。この場合には、第２の平面ＰＬをオブジェクト空間におけるタッチパネルに相当する位置（例えば、ビューボリュームＶＶ（図４参照）のニアクリップ面ＮＰ）に設定してもよい。
【００７２】
またこの場合には、図７（Ａ）に示すように、接触開始位置に基づき第１の平面ＰＬ１における第１の点Ｐ１が設定され、移動後の接触位置に基づき第２の平面ＰＬ２における第２の点Ｐ２が設定され、第１の点Ｐ１と第２の点Ｐ２を通る仮想線ＥＬが設定され、仮想線の確定後、図７（Ｂ）に示すように、第２の点Ｐ２を基点として仮想線ＶＬに沿って奥行き方向に延びるポインタＰＴが設定される。すなわちこの場合には、ユーザは、指先ＦＧの接触位置を移動させてポインタＰＴの基点の位置（第２の点Ｐ２の位置）を変化させることで、ポインタＰＴのオブジェクト空間における向きを決定することになる。
【００７３】
また、図５、図６では、接触位置が停止した場合に同一位置への接触時間の長さに基づいてポインタＰＴの長さを求める場合について示したが、第１及び第２の点Ｐ１、Ｐ２を求めるための第１の接触入力（ポインタＰＴの向きを決定するための接触入力）とは異なる第２の接触入力に基づいてポインタＰＴの長さを求めるようにしてもよい。
【００７４】
すなわち、図８（Ａ）に示すように、ユーザの左手の指先ＦＧ１をタッチパネルに接触させる第１の接触入力に基づき第１の点Ｐ１と第２の点Ｐ２の位置を求めてポインタＰＴの向きを決定し、ユーザの右手の指先ＦＧ２（タッチペン等でもよい）をタッチパネルに接触させる第２の接触入力によりポインタＰＴの仮想線ＶＬに沿った長さを決定するようにしてもよい。
【００７５】
例えば、図８（Ｂ）に示すように、ユーザが右手の指先ＦＧ２をタッチパネルに接触させたまま接触位置ＣＰを移動させた場合に、接触位置ＣＰの移動距離（又は移動速度）に応じてポインタＰＴを仮想線ＶＬに沿って伸長させ、右手の指先ＦＧ２の接触状態が解除された場合にポインタＰＴの長さ及び指示位置を確定するようにしてもよい。
【００７６】
また、接触位置ＣＰの移動方向に応じてポインタＰＴを仮想線に沿って伸縮させるようにしてもよい。例えば、接触位置ＣＰが第１の方向（例えば、画面右側又は画面上側）に移動した場合には移動距離に応じてポインタＰＴを伸長させ、接触位置ＣＰが第２の方向（例えば、画面左側又は画面下側）に移動した場合には移動距離に応じてポインタＰＴを短縮させるようにしてもよい。また、指先ＦＧ２をタッチパネルに接触させて所定時間内に離す操作（いわゆるタップ操作）が行われた場合に、検出したタップ操作の回数に応じてポインタＰＴを伸長させるようにしてもよい。また、指先ＦＧ２をタッチパネルに接触させたまま接触位置ＣＰを移動させて離す操作（いわゆるフリック操作）が行われた場合に、検出したフリック操作の回数又は方向に応じてポインタＰＴを伸縮させるようにしてもよい。
【００７７】
また、第１の接触入力の完了後（仮想線ＶＬの位置及び向きの確定後）に第２の接触入力を行えるようにしてもよいし、第１の接触入力と第２の接触入力とを同時に行えるようにしてもよい。すなわち、ユーザが左手指先ＦＧ２をタッチパネルに接触させたまま接触位置を移動させることによりポインタＰＴの向きを変化させつつ、左手指先ＦＧ２をタッチパネルに接触させたまま接触位置を移動させることによりポインタＰＴの長さを変化させることができるように構成してもよい。
【００７８】
このように、第１の接触入力とは異なる第２の接触入力に基づきポインタＰＴの長さを求めるようにすることで、同一位置への接触時間に基づきポインタＰＴの長さを求める場合に比べて、ユーザは素早い操作でポインタＰＴの長さを変化させることができる。すなわち、接触時間に基づきポインタの長さを求める場合には、ユーザは、ポインタＰＴが所望の長さに伸長又は短縮するまで待つ必要があるが、第２の接触入力に基づきポインタＰＴの長さを求める場合には、ユーザは、接触位置を移動させる操作やタップ操作等により迅速にポインタＰＴを任意の長さに変化させることができる。
【００７９】
２−２．オブジェクトの表示制御
本実施形態のオブジェクト表示制御部１１４は、ポインタＰＴの先端位置ＩＰ（ポインタの指示位置）に基づいてオブジェクト空間内のオブジェクトの表示態様を変化させる。
【００８０】
例えば、図９（Ａ）に示すように、ポインタＰＴの向きが確定した後（仮想線ＶＬの向きが確定した後）、ポインタＰＴが仮想線ＶＬに沿って伸長する場合に、ポインタＰＴの先端位置ＩＰとポインタＰＴの基点である第１の点Ｐ１とを結ぶ線分と交差するオブジェクト（或いは、該線分の近傍に位置するオブジェクト）を、ポインタＰＴが貫通したオブジェクトとして特定し、特定されたオブジェクトの表示態様を変化させる。例えば、特定されたオブジェクトの透明度（例えば当該オブジェクトを構成する頂点のα値）を変化させることで、当該オブジェクトを半透明又は非表示にするようにしてもよいし、特定されたオブジェクトについては当該オブジェクトのワイヤフレーム（オブジェクトを構成する頂点同士を結ぶ線）のみを表示するようにしてもよい。図９（Ａ）に示す例では、ポインタＰＴが貫通したオブジェクトとしてオブジェクトＯＢ１、ＯＢ２が特定され、オブジェクトＯＢ１、ＯＢ２を半透明表示としている。
【００８１】
また、図９（Ｂ）に示すように、仮想線ＶＬに沿って伸長するポインタＰＴの先端位置ＩＰよりも仮想カメラＶＣから見て手前側（−Ｚ軸方向）に位置するオブジェクトを特定し、特定されたオブジェクトを半透明表示等して表示態様を変化させるようにしてもよい。この場合には、先端位置ＩＰのＺ座標値と各オブジェクトのＺ座標値を比較することで先端位置ＩＰよりも手前側に位置するオブジェクトを特定することができる。
【００８２】
また、図９（Ｃ）に示すように、仮想線ＶＬに沿って伸長するポインタＰＴの先端位置ＩＰよりも仮想カメラＶＣから見て手前側（−Ｚ軸方向）に位置するオブジェクトのうち、前記ポインタＰＴが指し示しているオブジェクト（この場合ＯＢ３）を覆い隠しているオブジェクトを半透明表示等して表示態様を変化させるようにしてもよい。この場合には、オブジェクトＯＢ３と、各オブジェクトを、投影面上で隠蔽関係を検出するとともに、オブジェクトＯＢ３のＺ座標値と各オブジェクトのＺ座標値を比較することで先端位置ＩＰよりも手前側に位置するオブジェクトを特定することができる。図９（Ｃ）に示す例では、仮想カメラＶＣから見て、指示されたオブジェクトＯＢ３（の一部）を覆い隠しているオブジェクトＯＢ２を、半透明表示としている。
【００８３】
このように、ポインタＰＴが仮想線ＶＬに沿って奥行き方向に伸長するときに、ポインタＰＴと重なるオブジェクト（或いは、ポインタＰＴの近傍に位置するオブジェクト）又はポインタＰＴの先端位置よりも奥行き方向手前側に存在するオブジェクトを半透明表示等することで、伸長するポインタＰＴの先端位置ＩＰと、先端位置ＩＰよりも奥行き方向に存在するオブジェクトとをユーザに視認させ易くすることができ、ユーザに所望のオブジェクトを選択させ易くすることができる。例えば、図９（Ａ）、図９（Ｂ）、図９（Ｃ）に示す例において、ユーザが選択しようとする所望のオブジェクトがオブジェクトＯＢ３であったとすると、オブジェクトＯＢ２やＯＢ１を半透明表示等することで、仮想カメラＶＣから見てオブジェクトＯＢ２やＯＢ１の奥側にある先端位置ＩＰと、仮想カメラＶＣから見てオブジェクトＯＢ２の奥側にある所望のオブジェクトＯＢ３が視認し易くなり、ポインタＰＴの伸長により先端位置ＩＰをオブジェクトＯＢ３に到達させてオブジェクトＯＢ３を選択する操作を行い易くさせることができる。
【００８４】
２−３．仮想カメラの制御
また本実施形態の仮想カメラ制御部１１８は、ポインタＰＴの先端位置ＩＰ（ポインタの指示位置）に基づいて、仮想カメラＶＣ（視点）の位置、向き及び画角の少なくとも１つを制御するようにしてもよい。
【００８５】
例えば、図１０（Ａ）、図１０（Ｂ）に示すように、ポインタＰＴの向きが確定した後、ポインタＰＴが仮想線ＶＬに沿って伸長する場合に、仮想カメラＶＣの光軸ベクトルＥＬがポインタＰＴの先端位置ＩＰを向く（仮想カメラＶＣの注視点がポインタＰＴの先端位置ＩＰとなる）ように仮想カメラＶＣの向きを制御しつつ、仮想線ＶＬに沿って奥行き方向に移動する先端位置ＩＰに追従して仮想カメラＶＣが移動するように仮想カメラの位置を制御するようにしてもよい。
【００８６】
また、図１１（Ａ）、図１１（Ｂ）に示すように、ポインタＰＴの向きが確定した後、ポインタＰＴが仮想線ＶＬに沿って伸長した場合に、仮想カメラＶＣの光軸ベクトルＥＬがポインタの先端位置ＩＰを向くように仮想カメラＶＣの向きを制御しつつ、ポインタＰＴの先端位置ＩＰが仮想線ＶＬに沿って奥行き方向に移動するに従って仮想カメラＶＣの画角θを小さくする（すなわち、ポインタＰＴの先端位置ＩＰをズームアップする）制御を行うようにしてもよい。
【００８７】
このようにすると、ポインタＰＴが仮想線ＶＬに沿って奥行き方向に伸長しても、表示画面ＳＣにポインタＰＴの先端部分ＩＰと先端位置ＩＰよりも奥行き方向に存在するオブジェクトとを大きく表示することができ、ポインタＰＴの先端位置ＩＰと、先端位置ＩＰよりも奥行き方向に存在するオブジェクトとをユーザに視認させ易くすることができ、ユーザに所望のオブジェクトを選択させ易くすることができる。
【００８８】
なお、左右視差を有する立体視画像を表示する場合には、ポインタＰＴを配置するため（第１及び第２の面ＰＬ１、ＰＬ２を設定するため）に用いられる仮想カメラＶＣ（センターカメラ）から左右方向（Ｘ軸方向）にそれぞれ所定距離だけ離れて配置された左眼用及び右眼用の仮想カメラの位置、向き及び画角の少なくとも１つを左右の仮想カメラのそれぞれについて制御すればよい。多眼立体視画像の場合も同様に、位置、向き及び画角の少なくとも１つを多眼仮想カメラのそれぞれについて制御すればよい。また、空間像方式(水平・垂直両方向に視差を持つ方式を含む)の場合には、例えば、仮想カメラＶＣの位置、向き及び画角の少なくとも１つを制御して、それに基づく空間座標変換により、仮想空間全体をいったん変換する。その後、変換後の空間内に配置されたオブジェクト等を、それぞれの立体視表示方式に基づいて描画することで、上記の効果を得ることができる。
【００８９】
３．処理
次に、第１の実施の形態の画像生成システムの処理の一例について図１２のフローチャートを用いて説明する。
【００９０】
まず、ポインタ表示制御部１１２は、仮想カメラＶＣ（立体視画像を表示する場合にはセンターカメラ）の位置、向き、画角及び表示画面ＳＣとタッチパネルの位置関係に基づきオブジェクト空間に第１及び第２の平面ＰＬ１、ＰＬ２を設定する（ステップＳ１０）。すなわち、図３（Ａ）に示すように、仮想カメラＶＣの光軸ベクトルＥＬと直交する第１及び第２の平面ＰＬ１、ＰＬ２を設定する。具体的には、図４に示すように、ビューボリュームＶＶのニアクリップ面ＮＰに第１の平面ＰＬ１を設定し、第１の平面ＰＬ１から奥行き方向に所定距離だけ離れた位置に第２の平面ＰＬ２を設定する。
【００９１】
次に、ポインタ表示制御部１１２は、タッチパネルディスプレイに対する接触入力があったか否かを判断する（ステップＳ１２）。すなわち、タッチパネル１６０によって接触位置の座標値が検出されたか否かを判断する。接触入力があったと判断した場合には、図３（Ａ）に示すように、検出された接触位置（接触開始位置）に基づき第１の平面ＰＬ１上の第１の点Ｐ１の位置（オブジェクト空間における位置）を求める（ステップＳ１４）。このとき、タッチパネル上の接触開始位置に相当する表示画面ＳＣ上の位置に第１のマーカーＭＫ１を表示するための処理を行う。
【００９２】
次に、ポインタ表示制御部１１２は、接触位置が移動したか否かを判断する（ステップＳ１６）。すなわち、タッチパネル１６０によって連続的に検出される接触位置の座標値が変化したか否かを判断する。接触位置が移動したと判断した場合には、図３（Ｂ）に示すように、移動後の接触位置に基づき第２の平面ＰＬ２上の第２の点Ｐ２の位置（オブジェクト空間における位置）を求める（ステップＳ１８）。このとき、タッチパネル上の移動後の接触位置に相当する表示画面ＳＣ上の位置に第２のマーカーＭＫ２を表示するための処理を行う。
【００９３】
次に、ポインタ表示制御部１１２は、図３（Ｂ）に示すように、第１及び第２の点Ｐ１、Ｐ２の位置に基づきオブジェクト空間に第１及び第２の点Ｐ１、Ｐ２を通り奥行き方向に延びる仮想線ＶＬを設定する（ステップＳ２０）。このとき、設定した仮想線ＶＬを表示画面ＳＣに表示するための処理を行う。
【００９４】
次に、ポインタ表示制御部１１２は、接触位置が停止したか否かを判断する（ステップＳ２２）。すなわち、タッチパネル１６０によって連続的に検出される接触位置の座標値が、所定時間変化していない場合には、接触位置が停止したと判断する。また、連続的に検出される接触位置の座標値の変化量が、所定時間の間所定値以内である場合に接触位置が停止したと判断するようにしてもよい。接触位置が停止していないと判断した場合には、ステップＳ１８の処理に進み、移動後の接触位置に基づき第２の点Ｐ２の位置を求めて仮想線ＶＬを設定するステップＳ１８、Ｓ２０の処理（すなわち、第２の点Ｐ２の位置と仮想線ＶＬの向きを更新する処理）を接触位置が停止するまで繰り返す。
【００９５】
ステップＳ２２において、接触位置が停止したと判断された場合には、ポインタ表示制御部１１２は、仮想線ＶＬに沿ってポインタＰＴを配置する（ステップＳ２４）。すなわち、図６（Ａ）に示すように、第１の点Ｐ１を基点として仮想線ＶＬに沿って奥行き方向に延びるポインタＰＴを配置する。このとき、配置したポインタＰＴを表示画面ＳＣに表示するための処理を行う。
【００９６】
次に、ポインタ表示制御部１１２は、ポインタＰＴを仮想線ＶＬに沿って奥行き方向に所定の長さだけ伸長させる処理を行う（ステップＳ２６）。
【００９７】
次に、オブジェクト表示制御部１１４は、ポインタＰＴの先端位置ＩＰに基づきオブジェクトの表示態様を変化させる処理を行う（ステップＳ２８）。すなわち、図９（Ａ）、図９（Ｂ）に示すように、オブジェクト空間において第１の点Ｐ１と先端位置ＩＰとを結ぶ線分と交差するオブジェクト、或いはオブジェクト空間において先端位置ＩＰよりも奥行き方向手前側に位置するオブジェクト、或いは前記ポインタＰＴが指し示しているオブジェクトを覆い隠しているオブジェクトのα値を変化させて当該オブジェクトを半透明表示、非表示等にするための処理を行う。
【００９８】
次に、ポインタ表示制御部１１２は、接触状態が解除されたか否かを判断する（ステップＳ３０）。すなわち、タッチパネル１６０によって接触位置が検出されなくなったときに接触状態が解除されたと判断する。接触状態が解除されていない（タッチパネル１６０によって接触位置が連続的に検出されている）と判断した場合には、ステップＳ２６の処理に進み、ステップＳ２６、Ｓ２８の処理を接触状態が解除されるまで繰り返す。すなわち、ポインタＰＴは、接触位置が停止してからの接触時間が長くなるほど仮想線ＶＬに沿って奥行き方向に長くなる。
【００９９】
ステップＳ３０において、接触状態が解除されたと判断された場合には、処理部１００は、ポインタＰＴの先端位置ＩＰに基づきオブジェクトの選択処理を行う（ステップＳ３２）。すなわち、オブジェクト空間においてポインタＰＴの先端位置ＩＰを内包するオブジェクト、或いは先端位置ＩＰの近傍に位置するオブジェクトを選択状態にする処理を行う。
【０１００】
なお、第２の接触入力に基づいてポインタＰＴの長さを求める場合には、ポインタ表示制御部１１２は、ステップＳ２６の処理に代えて以下の処理を行う。すなわち、ポインタ表示制御部１１２は、タッチパネル１６０によって第２の接触入力が検出されたか否かを判断し、第２の接触入力が検出されたと判断した場合には、第２の接触入力における接触位置の移動距離、移動速度、移動方向等に基づいて、ポインタＰＴを仮想線ＶＬに沿って伸長又は短縮させる処理を行う。
【０１０１】
（第２の実施の形態）
第２の実施の形態では、接触位置に基づき求めた第１及び第２の点を通る仮想線に沿ってポインタを配置する第１の実施の形態とは異なり、接触位置に基づき求めた第１の点を通り予め設定された延長方向に伸びる仮想線に沿ってポインタを配置する。ここでは、第１の点と所与の基準点とを通る仮想線に沿ってポインタを配置する場合について説明する。
【０１０２】
図１３（Ａ）、図１３（Ｂ）、図１４（Ａ）、図１４（Ｂ）、図１５、図１６（Ａ）、図１６（Ｂ）は、第２の実施の形態のポインタの表示制御について説明するための図である。
【０１０３】
図１３（Ａ）に示すように、ユーザが人差し指ＦＧ１をタッチパネルに接触させると、接触位置が第１の点Ｐ１となり、第１の点Ｐ１を中心点とする第１のマーカーＭＫ１が表示画面ＳＣに表示される。また第１の点Ｐ１と基準点ＲＰとを通る仮想線ＶＬが表示される。
【０１０４】
すなわち、図１４（Ａ）に示すように、ポインタ表示制御部１１２は、タッチパネルに相当する面であって仮想カメラＶＣの光軸ベクトルＥＬと直交する第１の平面ＰＬ１を設定し、タッチパネル上の接触位置に基づいて、第１の平面ＰＬ１における第１の点Ｐ１を設定する。ここで、第１の平面ＰＬ１は、ビューボリュームＶＶのニアクリップ面ＮＰに設定される。また、第１の点Ｐ１は、接触位置に対応する点であって、第１の点Ｐ１を透視投影変換したときに、表示画面ＳＣにおいて接触位置に相当する点になるように設定される。また、ポインタ表示制御部１１２は、基準点ＲＰと第１の点Ｐ１とを結ぶ仮想線ＶＬをオブジェクト空間に設定する。ここで、基準点ＲＰは、図１４（Ａ）に示すようにビューボリュームＶＶのファークリップ面ＦＰの中心に設定してもよいし、光軸ベクトルＥＬの延長線上の所与の位置に設定してもよい。また、基準点ＲＰを設定する代わりに、仮想線ＶＬが第１の点Ｐ１から伸びていく方向を設定するようにしてもよい。例えば、図１５に示すように、第１の点Ｐ１を通り、タッチパネルに相当する第１の平面ＰＬ１に対して垂直な方向に伸びる仮想線ＶＬを設定するようにしてもよい。また、第１の点Ｐ１を通り、表示画面ＳＣに相当する面である投影面の中心と仮想カメラＶＣとを結ぶ直線と平行に伸びる仮想線ＶＬを設定するようにしてもよい。
【０１０５】
そして、図１３（Ｂ）に示すように、ユーザが人差し指ＦＧ１をタッチパネルに接触させたまま接触位置を移動させると、この移動後の接触位置に第１の点Ｐ１が移動し、移動後の第１の点と基準点ＲＰとを通る仮想線ＶＬが表示される。すなわち、図１４（Ｂ）に示すように、ポインタ表示制御部１１２は、タッチパネル上の移動後の接触位置に基づいて、第１の平面ＰＬ１における第１の点Ｐ１を再度設定し、第１の点Ｐ１の位置の変更に応じて仮想線ＶＬも再設定する。
【０１０６】
そして、図１６（Ａ）に示すように、ユーザが人差し指ＦＧ１をタッチパネルに接触させたまま、親指ＦＧ２（他の指やタッチペン等でもよい）をタッチパネルに接触させると、仮想線ＶＬに沿った位置にポインタＰＴが表示される。すなわち、図１７（Ａ）に示すように、ポインタ表示制御部１１２は、第１の点Ｐ１を求めるための第１の接触入力（ここでは、人差し指ＦＧ１による接触入力）とは異なる第２の接触入力（ここでは、親指ＦＧ２による接触入力）が検出された場合に、第１の点Ｐ１を基点として仮想線ＶＬに沿って奥行き方向（＋Ｚ軸方向）に延びるポインタＰＴを配置する。
【０１０７】
そして、図１６（Ｂ）、図１７（Ｂ）に示すように、ユーザが人差し指ＦＧ１と親指ＦＧ２をタッチパネルＳＣに接触させたまま、親指ＦＧ２による接触位置ＣＰを移動させると、ポインタＰＴは仮想線ＶＬに沿って基準点ＲＰに向かう方向に伸長する。すなわち、ポインタ表示制御部１１２は、第２の接触入力に基づきポインタＰＴの仮想線ＶＬに沿った長さを決定する。例えば、ユーザが親指ＦＧ２をタッチパネルに接触させたまま接触位置ＣＰを移動させた場合に、接触位置ＣＰの移動距離（又は移動速度）に応じてポインタＰＴを仮想線ＶＬに沿って奥行き方向（＋Ｚ軸方向）に伸長させる制御を行う。
【０１０８】
また、接触位置ＣＰの移動方向に応じてポインタＰＴを仮想線に沿って伸縮させるようにしてもよい。例えば、接触位置ＣＰが第１の方向（例えば、画面下側）に移動した場合には移動距離に応じてポインタＰＴを伸長させ、接触位置ＣＰが第２の方向（例えば、画面上側）に移動した場合には移動距離に応じてポインタＰＴを短縮させるようにしてもよい。また、親指ＦＧ２をタッチパネルに接触させて所定時間内に離す操作（いわゆるタップ操作）が行われた場合に、検出したタップ操作の回数に応じてポインタＰＴを伸長させるようにしてもよい。また、親指ＦＧ２をタッチパネルに接触させたまま接触位置ＣＰを移動させて離す操作（いわゆるフリック操作）が行われた場合に、検出したフリック操作の回数又は方向に応じてポインタＰＴを伸縮させるようにしてもよい。また、人差し指ＦＧ１による接触位置Ｐ１と親指ＦＧ２による接触位置ＣＰ間の距離に応じてポインタＰＴを伸縮させるようにしてもよい。
【０１０９】
そして、ユーザが人差し指ＦＧ１と親指ＦＧ２をタッチパネルから離すと（人差し指ＦＧ１と親指ＦＧ２の接触状態が解除されると）、その時点でのポインタＰＴの先端位置ＩＰ（ポインタＰＴの奥行き方向側の端部）がオブジェクト空間におけるポインタＰＴの指示位置として確定し、ポインタＰＴにより指示されたと判断されたオブジェクトを選択状態にする処理が行われる。また、オブジェクトがファイルやフォルダ等のオブジェクトである場合には、ユーザが人差し指ＦＧ１と親指ＦＧ２を（又は、人差し指ＦＧ１のみを）タッチパネルから離した場合に、選択状態にしたファイルやフォルダを開く操作（いわゆるダブルクリック操作に相当する操作）を行えるようにしてもよい。また、ユーザが人差し指ＦＧ１のみを接触させたまま接触位置Ｐ１を任意の位置に移動させて人差し指ＦＧ１をタッチパネルから離した場合に、選択状態にしたオブジェクトを接触位置Ｐ１の移動に応じてオブジェクト空間内で移動させる操作（いわゆるドラッグ・アンド・ドロップ操作に相当する操作）を行えるようにしてもよい。
【０１１０】
このように本実施形態では、ユーザＦＧは、人差し指ＦＧ１をタッチパネルに接触させたまま接触位置を移動させる第１の接触入力によりポインタＰＴの基点となる位置（第１の点Ｐ１の位置）と仮想線ＶＬの向きとを任意に変化させてポインタＰＴのオブジェクト空間における向きを決定し、親指ＦＧ１をタッチパネルに接触させたまま接触位置を移動させる第２の接触入力によりポインタＰＴのオブジェクト空間における奥行き方向の長さを決定して、オブジェクト空間内の所望のオブジェクトを選択する操作を行うことができる。
【０１１１】
すなわち本実施形態によれば、一方の指（タッチペンでもよい）でタッチパネルをタッチしてスライドさせた後、他方の指でタッチパネルをタッチしてスライド等させるという簡単な操作でオブジェクト空間内の任意の点を指示することができる。なお、ポインタＰＴの向きの決定方法のみを、本発明の手法によるタッチパネル操作で行い、ポインタＰＴの長さの調整及び位置の決定については、他の物理的なデバイス、例えば、物理的なスライダーやボタンによって決定することとしても良い。
【０１１２】
なお、第２の実施の形態において、第１の実施の形態と同様に、ポインタＰＴの先端位置ＩＰに基づいてオブジェクト空間内のオブジェクトの表示態様を変化させ、また、ポインタＰＴの先端位置ＩＰに基づいて仮想カメラＶＣ（視点）の位置、向き及び画角の少なくとも１つを制御することができる。
【０１１３】
次に、第２の実施の形態の画像生成システムの処理の一例について図１８のフローチャートを用いて説明する。
【０１１４】
まず、ポインタ表示制御部１１２は、仮想カメラＶＣ（立体視画像を表示する場合にはセンターカメラ）の位置、向き、画角に基づき、オブジェクト空間に基準点ＲＰ（或いは仮想線ＶＬの延長方向、或いは仮想線ＶＬの延長方向を決定する方法）を設定する（ステップＳ４０）。例えば、図１４（Ａ）に示すように、ビューボリュームＶＶのファークリップ面ＦＰの中心（或いは仮想カメラＶＣの光軸ベクトルＥＬの延長線上）に基準点ＲＰを設定する。
【０１１５】
次に、ポインタ表示制御部１１２は、仮想カメラＶＣの位置、向き、画角、及び表示画面とタッチパネルの位置関係に基づきオブジェクト空間に第１の平面ＰＬ１を設定する（ステップＳ４２）。すなわち、図１４（Ａ）に示すように、仮想カメラＶＣの光軸ベクトルＥＬと直交する第１の平面ＰＬ１を設定する。具体的には、図４に示すように、ビューボリュームＶＶのニアクリップ面ＮＰに第１の平面ＰＬ１を設定する。
【０１１６】
次に、ポインタ表示制御部１１２は、タッチパネルディスプレイに対する第１の接触入力があったか否かを判断する（ステップＳ４４）。すなわち、タッチパネル１６０によって接触位置の座標値が検出されたか否かを判断する。第１の接触入力があったと判断した場合には、図１４（Ａ）に示すように、検出された接触位置に基づき第１の平面ＰＬ１上の第１の点Ｐ１の位置（オブジェクト空間における位置）を求める（ステップＳ４６）。このとき、タッチパネル上の接触開始位置に相当する表示画面ＳＣ上の位置に第１のマーカーＭＫ１を表示するための処理を行う。
【０１１７】
次に、ポインタ表示制御部１１２は、図１４（Ａ）に示すように、第１の点Ｐ１の位置及び基準点ＲＴの位置に基づきオブジェクト空間に第１の点Ｐ１及び基準点ＲＴを通る仮想線ＶＬ（或いは第１の点Ｐ１を通り、設定された延長方向に伸びる仮想線ＶＬ）を設定する（ステップＳ４８）。このとき、設定した仮想線ＶＬを表示画面ＳＣに表示するための処理を行う。
【０１１８】
次に、ポインタ表示制御部１１２は、第１の接触入力とは異なる第２の接触入力があったか否かを判断する（ステップＳ５０）。例えば、第１の接触入力として検出された座標値との差が所定値以上である新たな座標値がタッチパネル１６０によって検出された場合に、第２の接触入力があったと判断する。第２の接触入力がないと判断された場合には、ステップＳ４６の処理に進み、第２の接触入力があるまでステップＳ４６、Ｓ４８の処理を繰り返す。すなわち、第１の接触入力における接触位置が移動した場合には、移動後の接触位置に基づき第１の点Ｐ１の位置を更新し、更新された第１の点Ｐ１の位置に基づき仮想線ＶＬを再度設定する。
【０１１９】
ステップ５０において、第２の接触入力があったと判断された場合には、ポインタ表示制御部１１２は、仮想線ＶＬに沿ってポインタＰＴを配置する（ステップＳ５２）。すなわち、図１７（Ａ）に示すように、第１の点Ｐ１を基点として仮想線ＶＬに沿って奥行き方向に延びるポインタＰＴを配置する。このとき、配置したポインタＰＴを表示画面ＳＣに表示するための処理を行う。
【０１２０】
次に、ポインタ表示制御部１１２は、第２の接触入力における接触位置ＣＰが移動したか否かを判断する（ステップＳ５４）。すなわち、タッチパネル１６０によって第２の接触入力として連続的に検出される接触位置の座標値が変化したか否かを判断する。第２の接触入力における接触位置ＣＰが移動したと判断した場合には、接触位置ＣＰの移動距離、移動速度、移動方向等に基づいて、ポインタＰＴを仮想線ＶＬに沿って伸長又は短縮させる処理を行う（ステップＳ５６）。第２の接触入力における接触位置ＣＰが移動していないと判断した場合には、ステップＳ６０の処理に進む。
【０１２１】
次に、オブジェクト表示制御部１１４は、ポインタＰＴの先端位置ＩＰに基づきオブジェクトの表示態様を変化させる処理を行う（ステップＳ５８）。すなわち、オブジェクト空間において第１の点Ｐ１と先端位置ＩＰとを結ぶ線分と交差するオブジェクト、或いはオブジェクト空間において先端位置ＩＰよりも奥行き方向手前側に位置するオブジェクト、或いは前記ポインタＰＴが指し示しているオブジェクトを覆い隠しているオブジェクトのα値を変化させて当該オブジェクトを半透明表示、非表示等にするための処理を行う。
【０１２２】
次に、ポインタ表示制御部１１２は、第１及び第２の接触入力による接触状態が解除されたか否かを判断する（ステップＳ６０）。すなわち、タッチパネル１６０によって接触位置が検出されなくなったときに接触状態が解除されたと判断する。接触状態が解除されていないと判断した場合には、ステップＳ５４の処理に進み、ステップＳ５４〜Ｓ５８の処理を接触状態が解除されるまで繰り返す。
【０１２３】
ステップＳ６０において、接触状態が解除されたと判断された場合には、処理部１００は、ポインタＰＴの先端位置ＩＰに基づきオブジェクトの選択処理を行う（ステップＳ６２）。すなわち、オブジェクト空間においてポインタＰＴの先端位置ＩＰを内包するオブジェクト、或いは先端位置ＩＰの近傍に位置するオブジェクトを選択状態にする処理を行う。
【０１２４】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１２５】
例えば、オブジェクトの指定操作に当たっては、ユーザの操作のくせや指定誤差を考慮し、ある程度フレキシブルに対応できる仕組みを入れても良い。例えば、ポインタＰＴの先端がわずかに特定のオブジェクトからずれている場合であっても、その周辺には他のオブジェクトがなく、前記特定のオブジェクトを選択しようとしていることがほぼ明らかな場合には、それを選択したと判断するように、プログラムを動作させても良い。この場合、誤差が常に一定の傾向を示すようであれば、それを補正し、ポインタＰＴの位置・方向・長さにフィードバックしても良い。
【０１２６】
また、前記第２の平面ＰＬ２が、どれだけ第１の平面ＰＬ１と離れているかは、あらかじめ決定されているが、これがユーザの感覚と異なる場合には、それに伴う誤差が常に発生する。その誤差の傾向から、第１の平面ＰＬ１と第２の平面ＰＬ２間の距離について、あらかじめ決定されているものと、ユーザの感覚によるものの差異を求めることができる。この差異により、ユーザが認識している２平面間の距離を決定し、それを新しい２平面間の距離として再設定しても良い。このように、誤差をフィードバックすることで、より快適な操作感覚をユーザにもたらすことができる。
【０１２７】
また、上記実施形態では、タッチパネル１６０と表示画面ＳＣの位置が略一致している構成について説明したが、本発明は、タッチパネル１６０と表示位置ＳＣが一致しない構成に適用することもできる。
【０１２８】
例えば、図１９（Ａ）に示す構成では、タッチパネル１６０は、ユーザの視点位置Ｅから表示画面ＳＣ（表示部１９０）に向かう視線方向の途中に、表示画面ＳＣと所定角度を成して隔離配置されている。ユーザは、タッチパネル１６０を通して斜め方向から表示画面ＳＣに表示される画像（例えば、立体視画像）を見つつ、タッチパネル１６０をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。
【０１２９】
ここで、図１９（Ｂ）に示すように、オブジェクト空間においては、タッチパネル１６０に相当する第１の平面ＰＬ１と、表示画面ＳＣに相当する投影面ＰＰとが設定される。すなわち、ユーザの視点位置Ｅに相当する仮想カメラＶＣの位置及び向きと、ユーザの視点位置Ｅと表示画面ＳＣの位置関係とに基づき投影面ＰＰが設定され、表示画面ＳＣとタッチパネル１６０の位置関係に基づき第１の平面ＰＬ１が設定される。また、必要であれば、第１の平面ＰＬ１と平行な面であって第１の平面ＰＬ１から奥行き方向に所定距離だけ離れた第２の平面ＰＬ２が設定される。なお、図１９（Ａ）、図１９（Ｂ）に示す例では、タッチパネル１６０と表示画面ＳＣが所定角度を成しているために示すように、第１の平面ＰＬ１と仮想カメラＶＣの光軸ベクトルＥＬは直交せず、第１の平面ＰＬ１とビューボリュームＶＶのニアクリップ面ＮＰは一致していない。
【０１３０】
また、図２０（Ａ）に示す構成では、タッチパネル１６０は、ユーザの視点位置Ｅから表示画面ＳＣ（表示部１９０）に向かう視線方向の途中には配置されておらず、表示画面ＳＣと所定角度を成して隔離配置されている。ユーザは、表示画面ＳＣに表示される画像（例えば、立体視画像）を見つつ、タッチパネル１６０をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。すなわち、ユーザは、表示画面ＳＣをタッチ操作しているものとしてタッチパネル１６０のタッチ操作を行う。この場合、図２０（Ｂ）に示すように、オブジェクト空間においては、タッチパネル１６０に相当する第１の平面ＰＬ１は、表示画面ＳＣに相当する投影面ＰＰと同一の位置に設定される。ただし、第１の平面ＰＬ１の位置は、表示画面ＳＣに相当する投影面ＰＰと同一の位置に限定されるものではない。例えば、表示画面ＳＣに仮想的に表示された別の面（例えば釣りゲームにおける「水面」で、表示画面ＳＣとは一致しておらず、表示画面ＳＣと平行とも限らない平面など）を、第１の平面ＰＬ１とすることとしても良い。
【０１３１】
図２１（Ａ）は、タッチパネル１６０と表示位置ＳＣが一致しない構成の他の例であって、本発明を適用した携帯型ゲーム装置１０の構成の一例を示す図である。携帯型ゲーム装置１０は、上側の筐体１２Ａと下側の筐体１２Ｂとがヒンジを介して開閉可能に連結されて構成されている。上側の筐体１２Ａの内側面には、第１の表示部１９０Ａが設けられ、下側の筐体１２Ｂの内側面には、第２の表示部１９０Ｂが設けられている。第１の表示部１９０Ａと第２の表示部１９０Ｂは、使用時においてヒンジをはさんで上下に並ぶように配置される。第１の表示部１９０Ａは、ＬＣＤと、ＬＣＤの前面又は背面に設けられたパララックスバリアやレンチキュラ等の光学素子とで構成され、立体視画像を表示する。また、第２の表示部１９０Ｂには、その表示領域にタッチパネル１６０が設けられている。
【０１３２】
携帯型ゲーム装置１０は、図２１（Ａ）に示すように、筐体１２Ａ、１２Ｂが所定角度θ（０°＜θ＜９０°）を成す状態で使用される。第２の表示部１９０Ｂは、表示領域の全体又は大部分が黒色又は暗い色での表示とされ、第１の表示部１９０Ａに表示された立体視画像をユーザの視点位置Ｅに反射させるミラーとして機能する。ユーザは、第１の表示部１９０Ａに表示された立体視画像が第２の表示部Ｂによって反射された画像を見ることになる。これは、ユーザの視点位置Ｅから、第２の表示部１９０Ｂの反射面を中心として第１の表示部１９０Ａ（表示画面ＳＣ）と対称の位置に仮想的に存在する仮想表示画面ＶＳＣに表示された立体視画像を見ている状態に相当する。ユーザは、タッチパネル１６０を通して仮想表示画面ＶＳＣ（第１の表示部１９０Ａ）に表示される立体視画像を見つつ、タッチパネル１６０をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。
【０１３３】
ここで、図２１（Ｂ）に示すように、オブジェクト空間においては、タッチパネル１６０に相当する第１の平面ＰＬ１と、仮想表示画面ＶＳＣに相当する投影面ＰＰとが設定される。すなわち、ユーザの視点位置Ｅに相当する仮想カメラＶＣの位置及び向きと、ユーザの視点位置Ｅと仮想表示画面ＶＳＣの位置関係とに基づき投影面ＰＰが設定され、仮想表示画面ＶＳＣとタッチパネル１６０の位置関係（例えば、筐体１２Ａ、１２Ｂの成す角度θ）に基づき第１の平面ＰＬ１が設定される。また、必要であれば、第１の平面ＰＬ１と平行な面であって第１の平面ＰＬ１から奥行き方向に所定距離だけ離れた第２の平面ＰＬ２が設定される。
【０１３４】
また、上記実施形態では、仮想線ＶＬに沿ってポインタＰＴを配置する場合について説明したが、接触位置に基づき２つの仮想線を設定し、この２つの仮想線が交差する位置（交点）にポインタＰＴを配置するようにしてもよい。
【０１３５】
例えば、図２２（Ａ）に示すように、ユーザが左手の指先ＦＧ１をタッチパネルに接触させると、この接触開始位置が第１の点Ｐ１となり、第１のマーカーＭＫ１が表示され、ユーザが指先ＦＧ１による接触位置を移動させると移動後の接触位置が第２の点Ｐ２となり、第２のマーカーＭＫ２が表示され、第１及び第２の点Ｐ１、Ｐ２を通る第１の仮想線ＶＬ１が表示される。そして、ユーザが右手の指先ＦＧ２をタッチパネルに接触させると、この接触開始位置が第３の点Ｐ３となり、第３のマーカーＭＫ３が表示され、ユーザが指先ＦＧ２による接触位置を移動させると移動後の接触位置が第４の点Ｐ４となり、第４のマーカーＭＫ４が表示され、第３及び第４の点Ｐ３、Ｐ４を通る第２の仮想線ＶＬ２が表示される。そして、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２が交わる位置にポインタＰＴが表示される。これらの左手での操作と右手での操作順序は、上記と逆に行っても良いし、同時進行で行っても良い。また、片方の手で、順次行ってもかまわない。また、ユーザが指先ＦＧ１、ＦＧ２のいずれか（或いは両方）をタッチパネルから離すとポインタＰＴの指示位置が確定する。
【０１３６】
すなわち、図２２（Ｂ）に示すように、ポインタ表示制御部１１２は、第１の接触入力（指先ＦＧ１による接触入力）による接触開始位置に基づき第１の平面ＰＬ１における第１の点Ｐ１を設定し、移動後の接触位置に基づき第２の平面ＰＬ２における第２の点Ｐ２を設定し、第１及び第２の点Ｐ１、Ｐ２を通る第１の仮想線ＶＬ１をオブジェクト空間内に設定する。また、ポインタ表示制御部１１２は、第２の接触入力（指先ＦＧ２による接触入力）による接触開始位置に基づき第１の平面ＰＬ１における第３の点Ｐ３を設定し、移動後の接触位置に基づき第２の平面ＰＬ２における第４の点Ｐ４を設定し、第３及び第４の点Ｐ３、Ｐ４を通る第２の仮想線ＶＬ２をオブジェクト空間内に設定する。そして、ポインタ表示制御部１１２は、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２が交差したか否かを判断し、交差したと判断した場合には、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２が交差した位置（交点）にポインタＰＴを配置する。
【０１３７】
なお、ポインタ表示制御部１１２は、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２の距離が所定値以下になった場合に、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２が交差したと判断し、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２の最も近い位置を結ぶ線分の中点を交点とみなしてポインタＰＴを配置してもよい。この場合、点(x1,y1,z1)を通り方向ベクトルが(a1,b1,c1)である第１の仮想線ＶＬ１と、点(x2,y2,z2)を通り方向ベクトルが(a2,b2,c2)である第２の仮想線ＶＬ２をそれぞれ、媒介変数tを用いて、
(x,y,z)=(a1t+x1,b1t+y1,c1t+z1)      (1)
(x,y,z)=(a2t+x2,b2t+y2,c2t+z2)      (2)
と表すと、第１の仮想線ＶＬ１と第２の仮想線ＶＬ２の距離Ｄは、
D2=((a1-a2)t+(x1-x2))2+((b1-b2)t+(y1-y2))2+((c1-c2)t+(z1-z2))2      (3)
と表される。そして、式（３）においてD2が最小となるｔの値とそのときのD(≧0)の値を求める。そして、Dの値が所定値以下となった場合には、２直線が交差したと判断することができるので、このときのｔの値を式（１）、式（２）に代入してこのｔにおける第１の仮想線ＶＬ１上の点と第２の仮想線ＶＬ２上の点を求めて、求めた２点を結ぶ線分の中点にポインタＰＴを配置すればよい。
【０１３８】
また、上記実施形態では、１つのタッチパネル１６０への接触入力による接触位置に基づき仮想線ＶＬを設定する場合について説明したが、２つのタッチパネルへの接触入力による接触位置に基づき仮想線ＶＬを設定してもよい。
【０１３９】
図２３は、２つのタッチパネルへの接触入力による接触位置に基づき仮想線を設定する構成の例であって、２つのタッチパネルを備えた携帯型ゲーム装置２０の構成の一例を示す図である。携帯型ゲーム装置２０の筐体２２の正面側には、表示部１９０が設けられ、表示部１９０の表示領域には第１のタッチパネル１６０Ａが設けられている。また、筐体２２の背面側には、第２のタッチパネル１６０Ｂ（タッチパッド）が設けられている。
【０１４０】
図２３に示す例では、ユーザが親指ＦＧ１（他の指でもよい）を第１のタッチパネル１６０Ａに接触させつつ、人差し指ＦＧ２（他の指でもよい）を第２のタッチパネル１６０Ｂに接触させると、親指ＦＧ１の接触位置が第１の点Ｐ１となり、人差し指ＦＧ２の接触位置が第２の点Ｐ２となり、第１の点Ｐ１と第２の点Ｐ２を通る仮想線ＶＬが表示部１９０に表示される。すなわち、携帯型ゲーム装置２０では、オブジェクト空間には、第１のタッチパネル１６０Ａに相当する第１の平面ＰＬ１と、第２のタッチパネル１６０Ｂに相当する第２の平面ＰＬ２が設定され、ポインタ表示制御部１１２は、第１のタッチパネル１６０Ａに対する接触入力（親指ＦＧ１による接触入力）による接触位置に基づき第１の平面ＰＬ１における第１の点Ｐ１を設定し、第２のタッチパネル１６０Ｂに対する接触入力（人差し指ＦＧ２による接触入力）による接触位置に基づき第２の平面ＰＬ２における第２の点Ｐ２を設定し、第１及び第２の点Ｐ１、Ｐ２を通る仮想線ＶＬをオブジェクト空間内に設定する。そして、ポインタ表示制御部１１２は、図６に示す場合と同様に、仮想線ＶＬに沿ってポインタＰＴを配置し、同一位置における接触時間や他の接触入力に基づいて、仮想線ＶＬに沿ったポインタＰＴの長さを変化させる処理を行う。
【０１４１】
もちろん、この構成と、２つの仮想線を設定する上記の方法とを組み合わせ、同時、あるいは順次のべ４本の指を第１のタッチパネル１６０Ａと第２のタッチパネル１６０Ｂに接触させることで、２つの仮想線を発生させ、それらが交差するか否かの判定を行い、交差すると判定された場合に、交点の位置にポインタＰＴを配置することとしても良い。
【符号の説明】
【０１４２】
１００  処理部、１１０  オブジェクト空間設定部、１１２  ポインタ表示制御部、１１４  オブジェクト表示制御部、１１８  仮想カメラ制御部、１２０  描画部（画像生成部）、１６０  タッチパネル、１７０  記憶部、１８０  情報記憶媒体、１９０  表示部、１９６  通信部
【図１】
2012252627.tif 000003
【図２】
2012252627.tif 000004
【図３】
2012252627.tif 000005
【図４】
2012252627.tif 000006
【図５】
2012252627.tif 000007
【図６】
2012252627.tif 000008
【図７】
2012252627.tif 000009
【図８】
2012252627.tif 000010
【図９】
2012252627.tif 000011
【図１０】
2012252627.tif 000012
【図１１】
2012252627.tif 000013
【図１２】
2012252627.tif 000014
【図１３】
2012252627.tif 000015
【図１４】
2012252627.tif 000016
【図１５】
2012252627.tif 000017
【図１６】
2012252627.tif 000018
【図１７】
2012252627.tif 000019
【図１８】
2012252627.tif 000020
【図１９】
2012252627.tif 000021
【図２０】
2012252627.tif 000022
【図２１】
2012252627.tif 000023
【図２２】
2012252627.tif 000024
【図２３】
2012252627.tif 000025