プログラム、情報記憶媒体及び画像生成システム
【課題】簡単な操作でオブジェクト空間内の点を指示することが可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】タッチパネルによって検出された接触位置に基づきオブジェクト空間内のタッチパネルに相当する第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置し、前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めることで、オブジェクト空間内の点を指定する。
【解決手段】タッチパネルによって検出された接触位置に基づきオブジェクト空間内のタッチパネルに相当する第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置し、前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めることで、オブジェクト空間内の点を指定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来、表示画面に表示されている画像の中の任意の点を指定する場合には、ユーザは、マウスポインタ、タッチパネル等の入力装置を用いて所望の点をシステムに対して指示していた。また、表示画面に表示されている3次元空間(オブジェクト空間)内の任意の点を指定する場合には、指定する点の3次元座標を直接入力する方法や、最初に三軸の任意の2軸を含む第1平面内の2次元座標を指定し、その後前記2軸以外の1軸と前記2軸の内いずれか1軸とを含む第2平面内の2次元座標を指定することで3次元座標を指定する方法が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−191770号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の方法では、ユーザの操作が煩雑になり簡単な操作で3次元空間内の点を指定することができないといった問題点があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、簡単な操作でオブジェクト空間内の点を指示することが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明に係るプログラムは、
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置することを特徴とするプログラムに関する。
【0007】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【0008】
本発明によれば、タッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0009】
(2)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【0010】
本発明によれば、タッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定し、同一位置でタッチを継続させることでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0011】
(3)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記第1及び第2の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【0012】
本発明によれば、第1の接触入力によりタッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定し、第2の接触入力を行うことでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0013】
(4)本発明に係るプログラムは、
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記第1の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とするプログラムに関する。
【0014】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【0015】
ここで、前記仮想線は、前記第1の点と所与の基準点とを通る仮想線であってもよいし、前記第1の点を通り、前記第1の平面及び前記視点の少なくとも一方に基づき設定される方向に伸びる仮想線であってもよい。
【0016】
本発明によれば、タッチパネルにタッチすることでポインタのオブジェクト空間における向きを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0017】
(5)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記第1の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【0018】
本発明によれば、第1の接触入力を行うことでポインタのオブジェクト空間における向きを決定し、第2の接触入力を行うことでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0019】
(6)また本発明に係るプログラム及び情報記憶媒体では、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部として更にコンピュータを機能させ、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させるようにしてもよい。
【0020】
また本発明に係る画像生成システムでは、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部を更に含み、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させるようにしてもよい。
【0021】
(7)また本発明に係るプログラム及び情報記憶媒体では、
前記視点を制御する視点制御部として更にコンピュータを機能させ、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。
【0022】
また本発明に係る及び画像生成システムでは、
前記視点を制御する視点制御部を更に含み、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。
【0023】
(8)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記表示部は、
立体視画像を表示するための表示部であり、
前記画像生成部が、
前記ポインタを含む前記立体視画像を生成するようにしてもよい。
【0024】
ここで、立体視画像の表示方式は、2眼式、多眼式や空間像方式(いわゆるインテグラル方式や、フラクショナル・ビュー方式等)等を含む。また、視差方向は水平方向のみに限られるものでなく、垂直方向にも視差を持つ方式であってもよく、メガネ式、裸眼式、スコープ式等の種類も問わない。さらには、空間内に立体的に配置されたスクリーン、もしくは空間内を動的に移動するスクリーンに投影する方式であってもかまわないし、空間内に立体的に配置された光源群、もしくは空間内を動的に移動する光源群による方式であってもかまわない。また、表示部に表示された立体視画像を、鏡やハーフミラーで反射させるようにしてもよい。
【図面の簡単な説明】
【0025】
【図1】第1の実施の形態の画像生成システムの機能ブロック図の一例を示す図。
【図2】図2(A)、図2(B)、図2(C)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図3】図3(A)、図3(B)、図3(C)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図4】第1の実施の形態のポインタの表示制御について説明するための図。
【図5】図5(A)、図5(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図6】図6(A)、図6(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図7】図7(A)、図7(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図8】図8(A)、図8(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図9】図9(A)、図9(B)、図9(C)は、第1の実施の形態のオブジェクトの表示制御について説明するための図。
【図10】図10(A)、図10(B)は、第1の実施の形態の仮想カメラの制御について説明するための図。
【図11】図11(A)、図11(B)は、第1の実施の形態の仮想カメラの制御について説明するための図。
【図12】第1の実施の形態の処理の流れを示すフローチャート図。
【図13】図13(A)、図13(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図14】図14(A)、図14(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図15】第2の実施の形態のポインタの表示制御について説明するための図。
【図16】図16(A)、図16(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図17】図17(A)、図17(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図18】第2の実施の形態の処理の流れを示すフローチャート図。
【図19】変形例について説明するための図。
【図20】変形例について説明するための図。
【図21】変形例について説明するための図。
【図22】変形例について説明するための図。
【図23】変形例について説明するための図。
【発明を実施するための形態】
【0026】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0027】
(第1の実施の形態)
1.機能ブロック図
図1に第1の実施の形態の画像生成システム(画像生成装置)の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0028】
タッチパネル160は、ユーザによる接触入力を検出するためのものであり、接触位置の座標値を連続的に検出し、処理部100に出力する。タッチパネル方式としては、抵抗膜方式(4線式、5線式)、静電容量結合方式、超音波表面弾性波方式、赤外線走査方式などがある。タッチパネル160は、表示部190に内蔵若しくは配置されるか、表示部190と離隔配置され、表示部190とともにタッチパネルディスプレイを構成する。タッチパネル160(タッチパネルディスプレイ)への接触操作(タッチ操作)は、指先を用いて行ってもよいし、タッチペンなどの入力機器を用いて行ってもよい。
【0029】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶されるフレームバッファ174と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部176と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
【0030】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0031】
表示部190は、本実施形態により生成された画像(オブジェクト空間を所与の視点から見た画像)を出力するものであり、その機能は、LCDなどにより実現できる。また表示部190は、立体視画像を表示するようにしてもよい。例えば、表示部190は、有限個の画素からなるLCDの前面又は背面に、パララックスバリアやレンチキュラ等の光学素子が配置される。例えば、立体視表示方式が、垂直バリアまたは垂直レンチキュラによる2眼式の場合には、1枚(1フレーム)の左眼用画像を表示するための表示領域と、1枚の右眼用画像を表示するための表示領域とが、短冊状に左眼用短冊画像表示領域及び右眼用短冊画像表示領域として交互に配置されている。パララックスバリアが配置される場合、その隙間からは、表示部190の観者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、レンチキュラが配置される場合、各短冊集合画像に対応したレンズの光屈折効果により、表示部190の観者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。
【0032】
通信部196は他の画像生成システムやサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0033】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【0034】
処理部100(プロセッサ)は、タッチパネル160からの検出信号(接触位置の座標値)、通信部196を介して受信したデータやプログラムなどに基づいて、ポインタの表示制御、オブジェクトの表示制御、画像生成処理などの処理を行う。この処理部100は主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0035】
処理部100は、オブジェクト空間設定部110、ポインタ表示制御部112、オブジェクト表示制御部114、仮想カメラ制御部118、描画部120を含む。
【0036】
オブジェクト空間設定部110は、表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0037】
ポインタ表示制御部112は、タッチパネル160によって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行う。すなわち、ポインタ表示制御部112は、前記接触位置に基づきオブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線を設定し、この仮想線に沿って前記ポインタを配置する処理を行う。
【0038】
またポインタ表示制御部112は、前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求める。またポインタ表示制御部112は、同一位置への接触時間に基づいて、前記ポインタを前記仮想線に沿って伸長、又は短縮させるようにしてもよい。またポインタ表示制御部112は、接触入力が行われなくなった場合(接触状態が解除された場合)に、前記ポインタの伸長処理若しくは伸縮処理を停止するようにしてもよい。
【0039】
またポインタ表示制御部112は、前記第1の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。またポインタ表示制御部112は、前記第2の接触入力に基づいて、前記ポインタを前記仮想線に沿って伸長、又は短縮させるようにしてもよい。例えば、前記第2の接触入力における接触位置の移動距離や移動方向若しくは移動方向に基づき前記ポインタの伸長若しくは短縮処理を行うようにしてもよい。また、前記第2の接触入力が行われなくなった場合(接触状態が解除された場合)に、前記ポインタの伸長処理若しくは短縮処理を停止するようにしてもよい。
【0040】
オブジェクト表示制御部114は、前記オブジェクト空間内のオブジェクトの表示制御を行い、前記ポインタの指示位置(前記ポインタの奥行き方向の先端位置)に基づいて、前記オブジェクトの表示態様を変化させる処理を行う。例えば、前記ポインタが貫通した前記オブジェクトの表示態様を変化させるようにしてもよいし、前記ポインタの先端位置よりも仮想カメラから見て手前側(奥行き方向の手前側)にある前記オブジェクトの表示態様を変化させるようにしてもよいし、仮想カメラから見て、前記ポインタが指示しているオブジェクトを覆い隠しているオブジェトの表示態様を変化させるようにしてもよい。また前記オブジェクトの表示態様を変化させる処理としては、例えば、前記オブジェクトの透明度を変化させる処理、前記オブジェクトを非表示にする処理、前記オブジェクトを輪郭表示(例えば、ワイヤフレーム表示)する処理等がある。
【0041】
仮想カメラ制御部118(視点制御部)は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、操作部160によりプレーヤが入力した操作データ或いはプログラム(移動・動作アルゴリズム)等に基づいて、ワールド座標系における仮想カメラの位置(X、Y、Z)又は光軸の方向(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度等)を制御する処理を行う。要するに、視点位置、仮想カメラの向き、画角を制御する処理を行う。
【0042】
また仮想カメラ制御部118は、前記ポインタの指示位置(前記ポインタの奥行き方向の先端位置)に基づいて、仮想カメラ(2眼式の立体視方式により立体視画像を表示する場合には、左眼用及び右眼用の仮想カメラ)の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。例えば、仮想カメラ位置或いは仮想カメラの向きを前記ポインタの指示位置に追従させる制御を行うようにしてもよいし、前記ポインタの指示位置が奥行き方向に移動するに従って仮想カメラの画角(視野角)を小さくするようにしてもよい。
【0043】
描画部120(画像生成部)は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。
【0044】
いわゆる3次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0045】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0046】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0047】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0048】
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0049】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0050】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0051】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0052】
また描画部120は、立体視画像を表示部190に出力するようにしてもよい。例えば、立体視方式が2眼式の場合であれば、左眼用の仮想カメラは、前記ポインタを配置するため(前記第1及び第2の面を設定するため)に用いられる仮想カメラ(センターカメラ)から所定距離だけ左側に離れて配置され、右眼用の仮想カメラは、センターカメラから所定距離だけ右側に離れて配置され、左眼用及び右眼用の仮想カメラ位置に基づいて、ポインタを含む左眼用画像及び右眼用画像を生成し、生成した各画像に基づいて立体視画像を生成する。具体的には、描画部120は、オブジェクト空間内の投影面に対してオブジェクトを左眼用仮想カメラの視点で透視投影して描画することで左眼用画像を生成し、投影面に対してオブジェクトを右眼用仮想カメラの視点で透視投影して描画することで右眼用画像を生成する。
【0053】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0054】
2−1.ポインタの表示制御
図2(A)〜図2(C)、図3(A)〜図3(C)、図4、図5(A)、図5(B)、図6(A)、図6(B)は、第1の実施形態のポインタの表示制御について説明するための図である。
【0055】
図2(A)は、タッチパネルディスプレイ(タッチパネル160を備えた表示部190)の表示画面SCを示す図である。本実施形態においては、タッチパネルと表示画面SCの位置は略一致しているものとする。ユーザは、指先FG(タッチペン等でもよい)をタッチパネルに接触(押下)させる操作を行うことで、オブジェクト空間内の任意の点を指示して、オブジェクト空間に配置された複数のオブジェクトOB1〜3のうち所望のオブジェクトを選択する操作を行うことができる。
【0056】
図2(A)に示すように、ユーザが指先FGをタッチパネルに接触させると、この最初に接触した接触位置(接触開始位置)が第1の点P1となり、第1の点P1を中心点とする第1のマーカーMK1が表示画面SCに表示される。
【0057】
図3(A)は、オブジェクト空間のXZ平面を示す図である。図3(A)に示すように、オブジェクト空間には、タッチパネルに相当する面であって仮想カメラVCの光軸ベクトルEL(仮想カメラVCの向き)と直交する第1の平面PL1と、第1の平面PL1と平行な平面であって第1の平面PL1から奥行き方向(+Z軸方向)に所定距離だけ離れた第2の平面PL2が設定される。なお、カメラの光軸ベクトルELと第1の平面PL1が直交しているのは、タッチパネルと表示画面SCの位置が略一致しているためであり、そうでない場合には、直交していないこともありうる。
【0058】
具体的には、図4に示すように、仮想カメラVCの位置、向き、画角及び投影面の位置によって上下左右の構成面が決定される視錐台の領域であるビューボリュームVVのニアクリップ面NPに第1の平面PL1が設定される。また、ビューボリュームVV内において第1の平面PL1から奥行き方向(+Z軸方向)に所定距離だけ離れた位置であって、ファークリップ面FPよりも手前側の位置に第2の平面PL2が設定される。なお、第1の平面PL1とニアクリップ面NPは必ずしも一致していなくてもよく、ニアクリップ面NPから奥行き方向(+Z軸方向)に所定距離だけ離れた位置に第1の平面PL1を設定するようにしてもよい。また、表示画面SCに立体視画像を表示させる場合には、投影面もニアクリップ面NPに設定される。
【0059】
そして、図3(A)、図4に示すように、ポインタ表示制御部112は、タッチパネル上の接触開始位置に基づいて、第1の平面PL1における第1の点P1を設定する。ここで、第1の点P1は、タッチパネル上の接触開始位置に対応する点であり、第1の点P1を透視投影変換(投影面に投影)したときに、表示画面SCにおいて接触開始位置に相当する点になるように設定される。
【0060】
そして、図2(B)に示すように、ユーザが指先FGをタッチパネルに接触させたまま接触位置を移動させると、この移動後の接触位置が第2の点P2となり、第2の点P2を中心点とする第2のマーカーMK2が表示画面SCに表示される。また、第1の点P1と第2の点P2を通り奥行き方向(+Z軸方向)に延びる仮想線VLが表示される。
【0061】
すなわち、図3(B)、図4に示すように、ポインタ表示制御部112は、タッチパネル上の移動後の接触位置に基づいて、第2の平面PL2における第2の点P2を設定し、第1の点P1と第2の点P2を通る仮想線VLをオブジェクト空間内に設定する。ここで、第2の点P2は、タッチパネル上の移動後の接触位置に対応する点であり、第2の点P2を透視投影変換したときに、表示画面SCにおいて移動後の接触位置に相当する点になるように設定される。
【0062】
なお、図2(C)、図3(C)に示すように、ユーザが指先FGをタッチパネルに接触させ続ける限り、第2の点P2の位置は接触位置の移動に応じて移動後の接触位置に対応する位置に再設定され、第2の点P2の位置の変更に応じて仮想線VLも再設定される。なお、第1の点P1は、接触開始位置に対応する位置に固定される。
【0063】
そして、図5(A)に示すように、ユーザが指先FGをタッチパネルSCの同一位置に所定時間接触させ続けると、第2の点P2の位置と仮想線VLの位置及び向きは確定し、仮想線VLに沿った位置に、オブジェクト空間内の任意の点を指示するためのポインタPTが表示される。
【0064】
すなわち、図6(A)に示すように、ポインタ表示制御部112は、接触位置が所定時間移動しない場合(接触位置が停止した場合)に、第1の点P1を基点として仮想線VLに沿って奥行き方向(+Z軸方向)に延びるポインタPTを配置する。ポインタPTは、その端部が第1の点P1に設定され、仮想線VLに沿った向きに所定の長さを有するオブジェクトである。
【0065】
そして、図5(B)に示すように、ユーザが指先FGをタッチパネルの同一位置に接触させ続けると、ポインタPTは仮想線VLに沿って伸長する。すなわち、図6(B)に示すように、ポインタ表示制御部112は、同一位置における接触時間に基づきポインタPTの仮想線VLに沿った長さを決定し、接触時間が長くなるほどポインタPTを仮想線VLに沿って奥行き方向(+Z軸方向)に伸長させる制御を行う。
【0066】
なお、伸長するポインタPTが所定の長さに達した場合にポインタPTの伸長を停止するようにしてもよい。また、伸長するポインタPTの長さが所定の最大値LMAXに達した場合にポインタPTを仮想線VLに沿って短縮させ、短縮するポインタPTの長さが所定の最小値LMINになった場合に再びポインタPTを伸長させて、接触位置が停止している間はポインタPTの伸長と短縮を繰り返すようにしてもよい。
【0067】
そして、ユーザが指先FGをタッチパネルから離すと(指先FGによる接触状態が解除されると)、ポインタPTの伸長は停止し、その時点でのポインタPTの先端位置IP(ポインタPTの奥行き方向側の端部)がオブジェクト空間におけるポインタPTの指示位置として確定する。すなわち、ポインタPTの先端位置IPが、オブジェクト空間に配置されたいずれかのオブジェクトの内部に位置する場合、或いはいずれかのオブジェクトから所定距離範囲内にある場合には、当該オブジェクトを選択状態にする処理が行われる。例えば、図6(B)に示す状態でポインタPTの指示位置が確定した場合にポインタPTの先端位置IPがオブジェクトOB1の内部に位置していると仮定した場合には、ポインタPTによりオブジェクトOB1が指示されたと判断されて、オブジェクトOB1が選択される。
【0068】
このように本実施形態では、ユーザは、指先FGをタッチパネルの任意の位置に接触させることでポインタPTの基点となる位置(第1の点P1の位置)を決定し、指先FGの接触位置を移動させて第2の点P2の位置と仮想線VLの向きを任意に変化させることでポインタPTのオブジェクト空間における向きを決定し、指先FGを同一位置に任意の時間だけ接触させ続けることでポインタPTのオブジェクト空間における奥行き方向の長さを決定して、オブジェクト空間内の所望のオブジェクトを選択する操作を行うことができる。
【0069】
すなわち本実施形態によれば、指先FGをタッチパネルにタッチしてスライドさせ、同一位置でタッチを継続するという簡単な操作でオブジェクト空間内の任意の点を指示することができる。
【0070】
ここで、立体視画像を表示画面SC(タッチパネルディスプレイ)に表示させて、タッチパネル上のタッチ操作(接触操作)により表示画面SCに表示されたオブジェクト空間内のオブジェクトを選択させる場合、ユーザはオブジェクト空間内のオブジェクトに触れようとしてもタッチパネルより奥に指先を進ませることができない。本実施形態では、指先をタッチパネルに接触させた位置からポインタPTがオブジェクト空間における奥行き方向に伸びてゆくため、ユーザはあたかも自身の指先をオブジェクト空間内に入り込ませるような感覚でオブジェクト空間内のオブジェクトを選択する操作を行うことができる。すなわち本実施形態によれば、特に立体視画像を生成する場合に、直感的に分かり易い操作環境をユーザに提供することができる。
【0071】
なお、図2〜図6では、第2の平面PL2を第1の平面PL1から奥行き方向(+Z軸方向)に所定距離だけ離れた位置に設定する場合について示したが、図7(A)に示すように、第1の平面PL1を第2の平面PL2から奥行き方向(+Z軸方向)に所定距離だけ離れた位置に設定するようにしてもよい。この場合には、第2の平面PLをオブジェクト空間におけるタッチパネルに相当する位置(例えば、ビューボリュームVV(図4参照)のニアクリップ面NP)に設定してもよい。
【0072】
またこの場合には、図7(A)に示すように、接触開始位置に基づき第1の平面PL1における第1の点P1が設定され、移動後の接触位置に基づき第2の平面PL2における第2の点P2が設定され、第1の点P1と第2の点P2を通る仮想線ELが設定され、仮想線の確定後、図7(B)に示すように、第2の点P2を基点として仮想線VLに沿って奥行き方向に延びるポインタPTが設定される。すなわちこの場合には、ユーザは、指先FGの接触位置を移動させてポインタPTの基点の位置(第2の点P2の位置)を変化させることで、ポインタPTのオブジェクト空間における向きを決定することになる。
【0073】
また、図5、図6では、接触位置が停止した場合に同一位置への接触時間の長さに基づいてポインタPTの長さを求める場合について示したが、第1及び第2の点P1、P2を求めるための第1の接触入力(ポインタPTの向きを決定するための接触入力)とは異なる第2の接触入力に基づいてポインタPTの長さを求めるようにしてもよい。
【0074】
すなわち、図8(A)に示すように、ユーザの左手の指先FG1をタッチパネルに接触させる第1の接触入力に基づき第1の点P1と第2の点P2の位置を求めてポインタPTの向きを決定し、ユーザの右手の指先FG2(タッチペン等でもよい)をタッチパネルに接触させる第2の接触入力によりポインタPTの仮想線VLに沿った長さを決定するようにしてもよい。
【0075】
例えば、図8(B)に示すように、ユーザが右手の指先FG2をタッチパネルに接触させたまま接触位置CPを移動させた場合に、接触位置CPの移動距離(又は移動速度)に応じてポインタPTを仮想線VLに沿って伸長させ、右手の指先FG2の接触状態が解除された場合にポインタPTの長さ及び指示位置を確定するようにしてもよい。
【0076】
また、接触位置CPの移動方向に応じてポインタPTを仮想線に沿って伸縮させるようにしてもよい。例えば、接触位置CPが第1の方向(例えば、画面右側又は画面上側)に移動した場合には移動距離に応じてポインタPTを伸長させ、接触位置CPが第2の方向(例えば、画面左側又は画面下側)に移動した場合には移動距離に応じてポインタPTを短縮させるようにしてもよい。また、指先FG2をタッチパネルに接触させて所定時間内に離す操作(いわゆるタップ操作)が行われた場合に、検出したタップ操作の回数に応じてポインタPTを伸長させるようにしてもよい。また、指先FG2をタッチパネルに接触させたまま接触位置CPを移動させて離す操作(いわゆるフリック操作)が行われた場合に、検出したフリック操作の回数又は方向に応じてポインタPTを伸縮させるようにしてもよい。
【0077】
また、第1の接触入力の完了後(仮想線VLの位置及び向きの確定後)に第2の接触入力を行えるようにしてもよいし、第1の接触入力と第2の接触入力とを同時に行えるようにしてもよい。すなわち、ユーザが左手指先FG2をタッチパネルに接触させたまま接触位置を移動させることによりポインタPTの向きを変化させつつ、左手指先FG2をタッチパネルに接触させたまま接触位置を移動させることによりポインタPTの長さを変化させることができるように構成してもよい。
【0078】
このように、第1の接触入力とは異なる第2の接触入力に基づきポインタPTの長さを求めるようにすることで、同一位置への接触時間に基づきポインタPTの長さを求める場合に比べて、ユーザは素早い操作でポインタPTの長さを変化させることができる。すなわち、接触時間に基づきポインタの長さを求める場合には、ユーザは、ポインタPTが所望の長さに伸長又は短縮するまで待つ必要があるが、第2の接触入力に基づきポインタPTの長さを求める場合には、ユーザは、接触位置を移動させる操作やタップ操作等により迅速にポインタPTを任意の長さに変化させることができる。
【0079】
2−2.オブジェクトの表示制御
本実施形態のオブジェクト表示制御部114は、ポインタPTの先端位置IP(ポインタの指示位置)に基づいてオブジェクト空間内のオブジェクトの表示態様を変化させる。
【0080】
例えば、図9(A)に示すように、ポインタPTの向きが確定した後(仮想線VLの向きが確定した後)、ポインタPTが仮想線VLに沿って伸長する場合に、ポインタPTの先端位置IPとポインタPTの基点である第1の点P1とを結ぶ線分と交差するオブジェクト(或いは、該線分の近傍に位置するオブジェクト)を、ポインタPTが貫通したオブジェクトとして特定し、特定されたオブジェクトの表示態様を変化させる。例えば、特定されたオブジェクトの透明度(例えば当該オブジェクトを構成する頂点のα値)を変化させることで、当該オブジェクトを半透明又は非表示にするようにしてもよいし、特定されたオブジェクトについては当該オブジェクトのワイヤフレーム(オブジェクトを構成する頂点同士を結ぶ線)のみを表示するようにしてもよい。図9(A)に示す例では、ポインタPTが貫通したオブジェクトとしてオブジェクトOB1、OB2が特定され、オブジェクトOB1、OB2を半透明表示としている。
【0081】
また、図9(B)に示すように、仮想線VLに沿って伸長するポインタPTの先端位置IPよりも仮想カメラVCから見て手前側(−Z軸方向)に位置するオブジェクトを特定し、特定されたオブジェクトを半透明表示等して表示態様を変化させるようにしてもよい。この場合には、先端位置IPのZ座標値と各オブジェクトのZ座標値を比較することで先端位置IPよりも手前側に位置するオブジェクトを特定することができる。
【0082】
また、図9(C)に示すように、仮想線VLに沿って伸長するポインタPTの先端位置IPよりも仮想カメラVCから見て手前側(−Z軸方向)に位置するオブジェクトのうち、前記ポインタPTが指し示しているオブジェクト(この場合OB3)を覆い隠しているオブジェクトを半透明表示等して表示態様を変化させるようにしてもよい。この場合には、オブジェクトOB3と、各オブジェクトを、投影面上で隠蔽関係を検出するとともに、オブジェクトOB3のZ座標値と各オブジェクトのZ座標値を比較することで先端位置IPよりも手前側に位置するオブジェクトを特定することができる。図9(C)に示す例では、仮想カメラVCから見て、指示されたオブジェクトOB3(の一部)を覆い隠しているオブジェクトOB2を、半透明表示としている。
【0083】
このように、ポインタPTが仮想線VLに沿って奥行き方向に伸長するときに、ポインタPTと重なるオブジェクト(或いは、ポインタPTの近傍に位置するオブジェクト)又はポインタPTの先端位置よりも奥行き方向手前側に存在するオブジェクトを半透明表示等することで、伸長するポインタPTの先端位置IPと、先端位置IPよりも奥行き方向に存在するオブジェクトとをユーザに視認させ易くすることができ、ユーザに所望のオブジェクトを選択させ易くすることができる。例えば、図9(A)、図9(B)、図9(C)に示す例において、ユーザが選択しようとする所望のオブジェクトがオブジェクトOB3であったとすると、オブジェクトOB2やOB1を半透明表示等することで、仮想カメラVCから見てオブジェクトOB2やOB1の奥側にある先端位置IPと、仮想カメラVCから見てオブジェクトOB2の奥側にある所望のオブジェクトOB3が視認し易くなり、ポインタPTの伸長により先端位置IPをオブジェクトOB3に到達させてオブジェクトOB3を選択する操作を行い易くさせることができる。
【0084】
2−3.仮想カメラの制御
また本実施形態の仮想カメラ制御部118は、ポインタPTの先端位置IP(ポインタの指示位置)に基づいて、仮想カメラVC(視点)の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。
【0085】
例えば、図10(A)、図10(B)に示すように、ポインタPTの向きが確定した後、ポインタPTが仮想線VLに沿って伸長する場合に、仮想カメラVCの光軸ベクトルELがポインタPTの先端位置IPを向く(仮想カメラVCの注視点がポインタPTの先端位置IPとなる)ように仮想カメラVCの向きを制御しつつ、仮想線VLに沿って奥行き方向に移動する先端位置IPに追従して仮想カメラVCが移動するように仮想カメラの位置を制御するようにしてもよい。
【0086】
また、図11(A)、図11(B)に示すように、ポインタPTの向きが確定した後、ポインタPTが仮想線VLに沿って伸長した場合に、仮想カメラVCの光軸ベクトルELがポインタの先端位置IPを向くように仮想カメラVCの向きを制御しつつ、ポインタPTの先端位置IPが仮想線VLに沿って奥行き方向に移動するに従って仮想カメラVCの画角θを小さくする(すなわち、ポインタPTの先端位置IPをズームアップする)制御を行うようにしてもよい。
【0087】
このようにすると、ポインタPTが仮想線VLに沿って奥行き方向に伸長しても、表示画面SCにポインタPTの先端部分IPと先端位置IPよりも奥行き方向に存在するオブジェクトとを大きく表示することができ、ポインタPTの先端位置IPと、先端位置IPよりも奥行き方向に存在するオブジェクトとをユーザに視認させ易くすることができ、ユーザに所望のオブジェクトを選択させ易くすることができる。
【0088】
なお、左右視差を有する立体視画像を表示する場合には、ポインタPTを配置するため(第1及び第2の面PL1、PL2を設定するため)に用いられる仮想カメラVC(センターカメラ)から左右方向(X軸方向)にそれぞれ所定距離だけ離れて配置された左眼用及び右眼用の仮想カメラの位置、向き及び画角の少なくとも1つを左右の仮想カメラのそれぞれについて制御すればよい。多眼立体視画像の場合も同様に、位置、向き及び画角の少なくとも1つを多眼仮想カメラのそれぞれについて制御すればよい。また、空間像方式(水平・垂直両方向に視差を持つ方式を含む)の場合には、例えば、仮想カメラVCの位置、向き及び画角の少なくとも1つを制御して、それに基づく空間座標変換により、仮想空間全体をいったん変換する。その後、変換後の空間内に配置されたオブジェクト等を、それぞれの立体視表示方式に基づいて描画することで、上記の効果を得ることができる。
【0089】
3.処理
次に、第1の実施の形態の画像生成システムの処理の一例について図12のフローチャートを用いて説明する。
【0090】
まず、ポインタ表示制御部112は、仮想カメラVC(立体視画像を表示する場合にはセンターカメラ)の位置、向き、画角及び表示画面SCとタッチパネルの位置関係に基づきオブジェクト空間に第1及び第2の平面PL1、PL2を設定する(ステップS10)。すなわち、図3(A)に示すように、仮想カメラVCの光軸ベクトルELと直交する第1及び第2の平面PL1、PL2を設定する。具体的には、図4に示すように、ビューボリュームVVのニアクリップ面NPに第1の平面PL1を設定し、第1の平面PL1から奥行き方向に所定距離だけ離れた位置に第2の平面PL2を設定する。
【0091】
次に、ポインタ表示制御部112は、タッチパネルディスプレイに対する接触入力があったか否かを判断する(ステップS12)。すなわち、タッチパネル160によって接触位置の座標値が検出されたか否かを判断する。接触入力があったと判断した場合には、図3(A)に示すように、検出された接触位置(接触開始位置)に基づき第1の平面PL1上の第1の点P1の位置(オブジェクト空間における位置)を求める(ステップS14)。このとき、タッチパネル上の接触開始位置に相当する表示画面SC上の位置に第1のマーカーMK1を表示するための処理を行う。
【0092】
次に、ポインタ表示制御部112は、接触位置が移動したか否かを判断する(ステップS16)。すなわち、タッチパネル160によって連続的に検出される接触位置の座標値が変化したか否かを判断する。接触位置が移動したと判断した場合には、図3(B)に示すように、移動後の接触位置に基づき第2の平面PL2上の第2の点P2の位置(オブジェクト空間における位置)を求める(ステップS18)。このとき、タッチパネル上の移動後の接触位置に相当する表示画面SC上の位置に第2のマーカーMK2を表示するための処理を行う。
【0093】
次に、ポインタ表示制御部112は、図3(B)に示すように、第1及び第2の点P1、P2の位置に基づきオブジェクト空間に第1及び第2の点P1、P2を通り奥行き方向に延びる仮想線VLを設定する(ステップS20)。このとき、設定した仮想線VLを表示画面SCに表示するための処理を行う。
【0094】
次に、ポインタ表示制御部112は、接触位置が停止したか否かを判断する(ステップS22)。すなわち、タッチパネル160によって連続的に検出される接触位置の座標値が、所定時間変化していない場合には、接触位置が停止したと判断する。また、連続的に検出される接触位置の座標値の変化量が、所定時間の間所定値以内である場合に接触位置が停止したと判断するようにしてもよい。接触位置が停止していないと判断した場合には、ステップS18の処理に進み、移動後の接触位置に基づき第2の点P2の位置を求めて仮想線VLを設定するステップS18、S20の処理(すなわち、第2の点P2の位置と仮想線VLの向きを更新する処理)を接触位置が停止するまで繰り返す。
【0095】
ステップS22において、接触位置が停止したと判断された場合には、ポインタ表示制御部112は、仮想線VLに沿ってポインタPTを配置する(ステップS24)。すなわち、図6(A)に示すように、第1の点P1を基点として仮想線VLに沿って奥行き方向に延びるポインタPTを配置する。このとき、配置したポインタPTを表示画面SCに表示するための処理を行う。
【0096】
次に、ポインタ表示制御部112は、ポインタPTを仮想線VLに沿って奥行き方向に所定の長さだけ伸長させる処理を行う(ステップS26)。
【0097】
次に、オブジェクト表示制御部114は、ポインタPTの先端位置IPに基づきオブジェクトの表示態様を変化させる処理を行う(ステップS28)。すなわち、図9(A)、図9(B)に示すように、オブジェクト空間において第1の点P1と先端位置IPとを結ぶ線分と交差するオブジェクト、或いはオブジェクト空間において先端位置IPよりも奥行き方向手前側に位置するオブジェクト、或いは前記ポインタPTが指し示しているオブジェクトを覆い隠しているオブジェクトのα値を変化させて当該オブジェクトを半透明表示、非表示等にするための処理を行う。
【0098】
次に、ポインタ表示制御部112は、接触状態が解除されたか否かを判断する(ステップS30)。すなわち、タッチパネル160によって接触位置が検出されなくなったときに接触状態が解除されたと判断する。接触状態が解除されていない(タッチパネル160によって接触位置が連続的に検出されている)と判断した場合には、ステップS26の処理に進み、ステップS26、S28の処理を接触状態が解除されるまで繰り返す。すなわち、ポインタPTは、接触位置が停止してからの接触時間が長くなるほど仮想線VLに沿って奥行き方向に長くなる。
【0099】
ステップS30において、接触状態が解除されたと判断された場合には、処理部100は、ポインタPTの先端位置IPに基づきオブジェクトの選択処理を行う(ステップS32)。すなわち、オブジェクト空間においてポインタPTの先端位置IPを内包するオブジェクト、或いは先端位置IPの近傍に位置するオブジェクトを選択状態にする処理を行う。
【0100】
なお、第2の接触入力に基づいてポインタPTの長さを求める場合には、ポインタ表示制御部112は、ステップS26の処理に代えて以下の処理を行う。すなわち、ポインタ表示制御部112は、タッチパネル160によって第2の接触入力が検出されたか否かを判断し、第2の接触入力が検出されたと判断した場合には、第2の接触入力における接触位置の移動距離、移動速度、移動方向等に基づいて、ポインタPTを仮想線VLに沿って伸長又は短縮させる処理を行う。
【0101】
(第2の実施の形態)
第2の実施の形態では、接触位置に基づき求めた第1及び第2の点を通る仮想線に沿ってポインタを配置する第1の実施の形態とは異なり、接触位置に基づき求めた第1の点を通り予め設定された延長方向に伸びる仮想線に沿ってポインタを配置する。ここでは、第1の点と所与の基準点とを通る仮想線に沿ってポインタを配置する場合について説明する。
【0102】
図13(A)、図13(B)、図14(A)、図14(B)、図15、図16(A)、図16(B)は、第2の実施の形態のポインタの表示制御について説明するための図である。
【0103】
図13(A)に示すように、ユーザが人差し指FG1をタッチパネルに接触させると、接触位置が第1の点P1となり、第1の点P1を中心点とする第1のマーカーMK1が表示画面SCに表示される。また第1の点P1と基準点RPとを通る仮想線VLが表示される。
【0104】
すなわち、図14(A)に示すように、ポインタ表示制御部112は、タッチパネルに相当する面であって仮想カメラVCの光軸ベクトルELと直交する第1の平面PL1を設定し、タッチパネル上の接触位置に基づいて、第1の平面PL1における第1の点P1を設定する。ここで、第1の平面PL1は、ビューボリュームVVのニアクリップ面NPに設定される。また、第1の点P1は、接触位置に対応する点であって、第1の点P1を透視投影変換したときに、表示画面SCにおいて接触位置に相当する点になるように設定される。また、ポインタ表示制御部112は、基準点RPと第1の点P1とを結ぶ仮想線VLをオブジェクト空間に設定する。ここで、基準点RPは、図14(A)に示すようにビューボリュームVVのファークリップ面FPの中心に設定してもよいし、光軸ベクトルELの延長線上の所与の位置に設定してもよい。また、基準点RPを設定する代わりに、仮想線VLが第1の点P1から伸びていく方向を設定するようにしてもよい。例えば、図15に示すように、第1の点P1を通り、タッチパネルに相当する第1の平面PL1に対して垂直な方向に伸びる仮想線VLを設定するようにしてもよい。また、第1の点P1を通り、表示画面SCに相当する面である投影面の中心と仮想カメラVCとを結ぶ直線と平行に伸びる仮想線VLを設定するようにしてもよい。
【0105】
そして、図13(B)に示すように、ユーザが人差し指FG1をタッチパネルに接触させたまま接触位置を移動させると、この移動後の接触位置に第1の点P1が移動し、移動後の第1の点と基準点RPとを通る仮想線VLが表示される。すなわち、図14(B)に示すように、ポインタ表示制御部112は、タッチパネル上の移動後の接触位置に基づいて、第1の平面PL1における第1の点P1を再度設定し、第1の点P1の位置の変更に応じて仮想線VLも再設定する。
【0106】
そして、図16(A)に示すように、ユーザが人差し指FG1をタッチパネルに接触させたまま、親指FG2(他の指やタッチペン等でもよい)をタッチパネルに接触させると、仮想線VLに沿った位置にポインタPTが表示される。すなわち、図17(A)に示すように、ポインタ表示制御部112は、第1の点P1を求めるための第1の接触入力(ここでは、人差し指FG1による接触入力)とは異なる第2の接触入力(ここでは、親指FG2による接触入力)が検出された場合に、第1の点P1を基点として仮想線VLに沿って奥行き方向(+Z軸方向)に延びるポインタPTを配置する。
【0107】
そして、図16(B)、図17(B)に示すように、ユーザが人差し指FG1と親指FG2をタッチパネルSCに接触させたまま、親指FG2による接触位置CPを移動させると、ポインタPTは仮想線VLに沿って基準点RPに向かう方向に伸長する。すなわち、ポインタ表示制御部112は、第2の接触入力に基づきポインタPTの仮想線VLに沿った長さを決定する。例えば、ユーザが親指FG2をタッチパネルに接触させたまま接触位置CPを移動させた場合に、接触位置CPの移動距離(又は移動速度)に応じてポインタPTを仮想線VLに沿って奥行き方向(+Z軸方向)に伸長させる制御を行う。
【0108】
また、接触位置CPの移動方向に応じてポインタPTを仮想線に沿って伸縮させるようにしてもよい。例えば、接触位置CPが第1の方向(例えば、画面下側)に移動した場合には移動距離に応じてポインタPTを伸長させ、接触位置CPが第2の方向(例えば、画面上側)に移動した場合には移動距離に応じてポインタPTを短縮させるようにしてもよい。また、親指FG2をタッチパネルに接触させて所定時間内に離す操作(いわゆるタップ操作)が行われた場合に、検出したタップ操作の回数に応じてポインタPTを伸長させるようにしてもよい。また、親指FG2をタッチパネルに接触させたまま接触位置CPを移動させて離す操作(いわゆるフリック操作)が行われた場合に、検出したフリック操作の回数又は方向に応じてポインタPTを伸縮させるようにしてもよい。また、人差し指FG1による接触位置P1と親指FG2による接触位置CP間の距離に応じてポインタPTを伸縮させるようにしてもよい。
【0109】
そして、ユーザが人差し指FG1と親指FG2をタッチパネルから離すと(人差し指FG1と親指FG2の接触状態が解除されると)、その時点でのポインタPTの先端位置IP(ポインタPTの奥行き方向側の端部)がオブジェクト空間におけるポインタPTの指示位置として確定し、ポインタPTにより指示されたと判断されたオブジェクトを選択状態にする処理が行われる。また、オブジェクトがファイルやフォルダ等のオブジェクトである場合には、ユーザが人差し指FG1と親指FG2を(又は、人差し指FG1のみを)タッチパネルから離した場合に、選択状態にしたファイルやフォルダを開く操作(いわゆるダブルクリック操作に相当する操作)を行えるようにしてもよい。また、ユーザが人差し指FG1のみを接触させたまま接触位置P1を任意の位置に移動させて人差し指FG1をタッチパネルから離した場合に、選択状態にしたオブジェクトを接触位置P1の移動に応じてオブジェクト空間内で移動させる操作(いわゆるドラッグ・アンド・ドロップ操作に相当する操作)を行えるようにしてもよい。
【0110】
このように本実施形態では、ユーザFGは、人差し指FG1をタッチパネルに接触させたまま接触位置を移動させる第1の接触入力によりポインタPTの基点となる位置(第1の点P1の位置)と仮想線VLの向きとを任意に変化させてポインタPTのオブジェクト空間における向きを決定し、親指FG1をタッチパネルに接触させたまま接触位置を移動させる第2の接触入力によりポインタPTのオブジェクト空間における奥行き方向の長さを決定して、オブジェクト空間内の所望のオブジェクトを選択する操作を行うことができる。
【0111】
すなわち本実施形態によれば、一方の指(タッチペンでもよい)でタッチパネルをタッチしてスライドさせた後、他方の指でタッチパネルをタッチしてスライド等させるという簡単な操作でオブジェクト空間内の任意の点を指示することができる。なお、ポインタPTの向きの決定方法のみを、本発明の手法によるタッチパネル操作で行い、ポインタPTの長さの調整及び位置の決定については、他の物理的なデバイス、例えば、物理的なスライダーやボタンによって決定することとしても良い。
【0112】
なお、第2の実施の形態において、第1の実施の形態と同様に、ポインタPTの先端位置IPに基づいてオブジェクト空間内のオブジェクトの表示態様を変化させ、また、ポインタPTの先端位置IPに基づいて仮想カメラVC(視点)の位置、向き及び画角の少なくとも1つを制御することができる。
【0113】
次に、第2の実施の形態の画像生成システムの処理の一例について図18のフローチャートを用いて説明する。
【0114】
まず、ポインタ表示制御部112は、仮想カメラVC(立体視画像を表示する場合にはセンターカメラ)の位置、向き、画角に基づき、オブジェクト空間に基準点RP(或いは仮想線VLの延長方向、或いは仮想線VLの延長方向を決定する方法)を設定する(ステップS40)。例えば、図14(A)に示すように、ビューボリュームVVのファークリップ面FPの中心(或いは仮想カメラVCの光軸ベクトルELの延長線上)に基準点RPを設定する。
【0115】
次に、ポインタ表示制御部112は、仮想カメラVCの位置、向き、画角、及び表示画面とタッチパネルの位置関係に基づきオブジェクト空間に第1の平面PL1を設定する(ステップS42)。すなわち、図14(A)に示すように、仮想カメラVCの光軸ベクトルELと直交する第1の平面PL1を設定する。具体的には、図4に示すように、ビューボリュームVVのニアクリップ面NPに第1の平面PL1を設定する。
【0116】
次に、ポインタ表示制御部112は、タッチパネルディスプレイに対する第1の接触入力があったか否かを判断する(ステップS44)。すなわち、タッチパネル160によって接触位置の座標値が検出されたか否かを判断する。第1の接触入力があったと判断した場合には、図14(A)に示すように、検出された接触位置に基づき第1の平面PL1上の第1の点P1の位置(オブジェクト空間における位置)を求める(ステップS46)。このとき、タッチパネル上の接触開始位置に相当する表示画面SC上の位置に第1のマーカーMK1を表示するための処理を行う。
【0117】
次に、ポインタ表示制御部112は、図14(A)に示すように、第1の点P1の位置及び基準点RTの位置に基づきオブジェクト空間に第1の点P1及び基準点RTを通る仮想線VL(或いは第1の点P1を通り、設定された延長方向に伸びる仮想線VL)を設定する(ステップS48)。このとき、設定した仮想線VLを表示画面SCに表示するための処理を行う。
【0118】
次に、ポインタ表示制御部112は、第1の接触入力とは異なる第2の接触入力があったか否かを判断する(ステップS50)。例えば、第1の接触入力として検出された座標値との差が所定値以上である新たな座標値がタッチパネル160によって検出された場合に、第2の接触入力があったと判断する。第2の接触入力がないと判断された場合には、ステップS46の処理に進み、第2の接触入力があるまでステップS46、S48の処理を繰り返す。すなわち、第1の接触入力における接触位置が移動した場合には、移動後の接触位置に基づき第1の点P1の位置を更新し、更新された第1の点P1の位置に基づき仮想線VLを再度設定する。
【0119】
ステップ50において、第2の接触入力があったと判断された場合には、ポインタ表示制御部112は、仮想線VLに沿ってポインタPTを配置する(ステップS52)。すなわち、図17(A)に示すように、第1の点P1を基点として仮想線VLに沿って奥行き方向に延びるポインタPTを配置する。このとき、配置したポインタPTを表示画面SCに表示するための処理を行う。
【0120】
次に、ポインタ表示制御部112は、第2の接触入力における接触位置CPが移動したか否かを判断する(ステップS54)。すなわち、タッチパネル160によって第2の接触入力として連続的に検出される接触位置の座標値が変化したか否かを判断する。第2の接触入力における接触位置CPが移動したと判断した場合には、接触位置CPの移動距離、移動速度、移動方向等に基づいて、ポインタPTを仮想線VLに沿って伸長又は短縮させる処理を行う(ステップS56)。第2の接触入力における接触位置CPが移動していないと判断した場合には、ステップS60の処理に進む。
【0121】
次に、オブジェクト表示制御部114は、ポインタPTの先端位置IPに基づきオブジェクトの表示態様を変化させる処理を行う(ステップS58)。すなわち、オブジェクト空間において第1の点P1と先端位置IPとを結ぶ線分と交差するオブジェクト、或いはオブジェクト空間において先端位置IPよりも奥行き方向手前側に位置するオブジェクト、或いは前記ポインタPTが指し示しているオブジェクトを覆い隠しているオブジェクトのα値を変化させて当該オブジェクトを半透明表示、非表示等にするための処理を行う。
【0122】
次に、ポインタ表示制御部112は、第1及び第2の接触入力による接触状態が解除されたか否かを判断する(ステップS60)。すなわち、タッチパネル160によって接触位置が検出されなくなったときに接触状態が解除されたと判断する。接触状態が解除されていないと判断した場合には、ステップS54の処理に進み、ステップS54〜S58の処理を接触状態が解除されるまで繰り返す。
【0123】
ステップS60において、接触状態が解除されたと判断された場合には、処理部100は、ポインタPTの先端位置IPに基づきオブジェクトの選択処理を行う(ステップS62)。すなわち、オブジェクト空間においてポインタPTの先端位置IPを内包するオブジェクト、或いは先端位置IPの近傍に位置するオブジェクトを選択状態にする処理を行う。
【0124】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0125】
例えば、オブジェクトの指定操作に当たっては、ユーザの操作のくせや指定誤差を考慮し、ある程度フレキシブルに対応できる仕組みを入れても良い。例えば、ポインタPTの先端がわずかに特定のオブジェクトからずれている場合であっても、その周辺には他のオブジェクトがなく、前記特定のオブジェクトを選択しようとしていることがほぼ明らかな場合には、それを選択したと判断するように、プログラムを動作させても良い。この場合、誤差が常に一定の傾向を示すようであれば、それを補正し、ポインタPTの位置・方向・長さにフィードバックしても良い。
【0126】
また、前記第2の平面PL2が、どれだけ第1の平面PL1と離れているかは、あらかじめ決定されているが、これがユーザの感覚と異なる場合には、それに伴う誤差が常に発生する。その誤差の傾向から、第1の平面PL1と第2の平面PL2間の距離について、あらかじめ決定されているものと、ユーザの感覚によるものの差異を求めることができる。この差異により、ユーザが認識している2平面間の距離を決定し、それを新しい2平面間の距離として再設定しても良い。このように、誤差をフィードバックすることで、より快適な操作感覚をユーザにもたらすことができる。
【0127】
また、上記実施形態では、タッチパネル160と表示画面SCの位置が略一致している構成について説明したが、本発明は、タッチパネル160と表示位置SCが一致しない構成に適用することもできる。
【0128】
例えば、図19(A)に示す構成では、タッチパネル160は、ユーザの視点位置Eから表示画面SC(表示部190)に向かう視線方向の途中に、表示画面SCと所定角度を成して隔離配置されている。ユーザは、タッチパネル160を通して斜め方向から表示画面SCに表示される画像(例えば、立体視画像)を見つつ、タッチパネル160をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。
【0129】
ここで、図19(B)に示すように、オブジェクト空間においては、タッチパネル160に相当する第1の平面PL1と、表示画面SCに相当する投影面PPとが設定される。すなわち、ユーザの視点位置Eに相当する仮想カメラVCの位置及び向きと、ユーザの視点位置Eと表示画面SCの位置関係とに基づき投影面PPが設定され、表示画面SCとタッチパネル160の位置関係に基づき第1の平面PL1が設定される。また、必要であれば、第1の平面PL1と平行な面であって第1の平面PL1から奥行き方向に所定距離だけ離れた第2の平面PL2が設定される。なお、図19(A)、図19(B)に示す例では、タッチパネル160と表示画面SCが所定角度を成しているために示すように、第1の平面PL1と仮想カメラVCの光軸ベクトルELは直交せず、第1の平面PL1とビューボリュームVVのニアクリップ面NPは一致していない。
【0130】
また、図20(A)に示す構成では、タッチパネル160は、ユーザの視点位置Eから表示画面SC(表示部190)に向かう視線方向の途中には配置されておらず、表示画面SCと所定角度を成して隔離配置されている。ユーザは、表示画面SCに表示される画像(例えば、立体視画像)を見つつ、タッチパネル160をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。すなわち、ユーザは、表示画面SCをタッチ操作しているものとしてタッチパネル160のタッチ操作を行う。この場合、図20(B)に示すように、オブジェクト空間においては、タッチパネル160に相当する第1の平面PL1は、表示画面SCに相当する投影面PPと同一の位置に設定される。ただし、第1の平面PL1の位置は、表示画面SCに相当する投影面PPと同一の位置に限定されるものではない。例えば、表示画面SCに仮想的に表示された別の面(例えば釣りゲームにおける「水面」で、表示画面SCとは一致しておらず、表示画面SCと平行とも限らない平面など)を、第1の平面PL1とすることとしても良い。
【0131】
図21(A)は、タッチパネル160と表示位置SCが一致しない構成の他の例であって、本発明を適用した携帯型ゲーム装置10の構成の一例を示す図である。携帯型ゲーム装置10は、上側の筐体12Aと下側の筐体12Bとがヒンジを介して開閉可能に連結されて構成されている。上側の筐体12Aの内側面には、第1の表示部190Aが設けられ、下側の筐体12Bの内側面には、第2の表示部190Bが設けられている。第1の表示部190Aと第2の表示部190Bは、使用時においてヒンジをはさんで上下に並ぶように配置される。第1の表示部190Aは、LCDと、LCDの前面又は背面に設けられたパララックスバリアやレンチキュラ等の光学素子とで構成され、立体視画像を表示する。また、第2の表示部190Bには、その表示領域にタッチパネル160が設けられている。
【0132】
携帯型ゲーム装置10は、図21(A)に示すように、筐体12A、12Bが所定角度θ(0°<θ<90°)を成す状態で使用される。第2の表示部190Bは、表示領域の全体又は大部分が黒色又は暗い色での表示とされ、第1の表示部190Aに表示された立体視画像をユーザの視点位置Eに反射させるミラーとして機能する。ユーザは、第1の表示部190Aに表示された立体視画像が第2の表示部Bによって反射された画像を見ることになる。これは、ユーザの視点位置Eから、第2の表示部190Bの反射面を中心として第1の表示部190A(表示画面SC)と対称の位置に仮想的に存在する仮想表示画面VSCに表示された立体視画像を見ている状態に相当する。ユーザは、タッチパネル160を通して仮想表示画面VSC(第1の表示部190A)に表示される立体視画像を見つつ、タッチパネル160をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。
【0133】
ここで、図21(B)に示すように、オブジェクト空間においては、タッチパネル160に相当する第1の平面PL1と、仮想表示画面VSCに相当する投影面PPとが設定される。すなわち、ユーザの視点位置Eに相当する仮想カメラVCの位置及び向きと、ユーザの視点位置Eと仮想表示画面VSCの位置関係とに基づき投影面PPが設定され、仮想表示画面VSCとタッチパネル160の位置関係(例えば、筐体12A、12Bの成す角度θ)に基づき第1の平面PL1が設定される。また、必要であれば、第1の平面PL1と平行な面であって第1の平面PL1から奥行き方向に所定距離だけ離れた第2の平面PL2が設定される。
【0134】
また、上記実施形態では、仮想線VLに沿ってポインタPTを配置する場合について説明したが、接触位置に基づき2つの仮想線を設定し、この2つの仮想線が交差する位置(交点)にポインタPTを配置するようにしてもよい。
【0135】
例えば、図22(A)に示すように、ユーザが左手の指先FG1をタッチパネルに接触させると、この接触開始位置が第1の点P1となり、第1のマーカーMK1が表示され、ユーザが指先FG1による接触位置を移動させると移動後の接触位置が第2の点P2となり、第2のマーカーMK2が表示され、第1及び第2の点P1、P2を通る第1の仮想線VL1が表示される。そして、ユーザが右手の指先FG2をタッチパネルに接触させると、この接触開始位置が第3の点P3となり、第3のマーカーMK3が表示され、ユーザが指先FG2による接触位置を移動させると移動後の接触位置が第4の点P4となり、第4のマーカーMK4が表示され、第3及び第4の点P3、P4を通る第2の仮想線VL2が表示される。そして、第1の仮想線VL1と第2の仮想線VL2が交わる位置にポインタPTが表示される。これらの左手での操作と右手での操作順序は、上記と逆に行っても良いし、同時進行で行っても良い。また、片方の手で、順次行ってもかまわない。また、ユーザが指先FG1、FG2のいずれか(或いは両方)をタッチパネルから離すとポインタPTの指示位置が確定する。
【0136】
すなわち、図22(B)に示すように、ポインタ表示制御部112は、第1の接触入力(指先FG1による接触入力)による接触開始位置に基づき第1の平面PL1における第1の点P1を設定し、移動後の接触位置に基づき第2の平面PL2における第2の点P2を設定し、第1及び第2の点P1、P2を通る第1の仮想線VL1をオブジェクト空間内に設定する。また、ポインタ表示制御部112は、第2の接触入力(指先FG2による接触入力)による接触開始位置に基づき第1の平面PL1における第3の点P3を設定し、移動後の接触位置に基づき第2の平面PL2における第4の点P4を設定し、第3及び第4の点P3、P4を通る第2の仮想線VL2をオブジェクト空間内に設定する。そして、ポインタ表示制御部112は、第1の仮想線VL1と第2の仮想線VL2が交差したか否かを判断し、交差したと判断した場合には、第1の仮想線VL1と第2の仮想線VL2が交差した位置(交点)にポインタPTを配置する。
【0137】
なお、ポインタ表示制御部112は、第1の仮想線VL1と第2の仮想線VL2の距離が所定値以下になった場合に、第1の仮想線VL1と第2の仮想線VL2が交差したと判断し、第1の仮想線VL1と第2の仮想線VL2の最も近い位置を結ぶ線分の中点を交点とみなしてポインタPTを配置してもよい。この場合、点(x1,y1,z1)を通り方向ベクトルが(a1,b1,c1)である第1の仮想線VL1と、点(x2,y2,z2)を通り方向ベクトルが(a2,b2,c2)である第2の仮想線VL2をそれぞれ、媒介変数tを用いて、
(x,y,z)=(a1t+x1,b1t+y1,c1t+z1) (1)
(x,y,z)=(a2t+x2,b2t+y2,c2t+z2) (2)
と表すと、第1の仮想線VL1と第2の仮想線VL2の距離Dは、
D2=((a1-a2)t+(x1-x2))2+((b1-b2)t+(y1-y2))2+((c1-c2)t+(z1-z2))2 (3)
と表される。そして、式(3)においてD2が最小となるtの値とそのときのD(≧0)の値を求める。そして、Dの値が所定値以下となった場合には、2直線が交差したと判断することができるので、このときのtの値を式(1)、式(2)に代入してこのtにおける第1の仮想線VL1上の点と第2の仮想線VL2上の点を求めて、求めた2点を結ぶ線分の中点にポインタPTを配置すればよい。
【0138】
また、上記実施形態では、1つのタッチパネル160への接触入力による接触位置に基づき仮想線VLを設定する場合について説明したが、2つのタッチパネルへの接触入力による接触位置に基づき仮想線VLを設定してもよい。
【0139】
図23は、2つのタッチパネルへの接触入力による接触位置に基づき仮想線を設定する構成の例であって、2つのタッチパネルを備えた携帯型ゲーム装置20の構成の一例を示す図である。携帯型ゲーム装置20の筐体22の正面側には、表示部190が設けられ、表示部190の表示領域には第1のタッチパネル160Aが設けられている。また、筐体22の背面側には、第2のタッチパネル160B(タッチパッド)が設けられている。
【0140】
図23に示す例では、ユーザが親指FG1(他の指でもよい)を第1のタッチパネル160Aに接触させつつ、人差し指FG2(他の指でもよい)を第2のタッチパネル160Bに接触させると、親指FG1の接触位置が第1の点P1となり、人差し指FG2の接触位置が第2の点P2となり、第1の点P1と第2の点P2を通る仮想線VLが表示部190に表示される。すなわち、携帯型ゲーム装置20では、オブジェクト空間には、第1のタッチパネル160Aに相当する第1の平面PL1と、第2のタッチパネル160Bに相当する第2の平面PL2が設定され、ポインタ表示制御部112は、第1のタッチパネル160Aに対する接触入力(親指FG1による接触入力)による接触位置に基づき第1の平面PL1における第1の点P1を設定し、第2のタッチパネル160Bに対する接触入力(人差し指FG2による接触入力)による接触位置に基づき第2の平面PL2における第2の点P2を設定し、第1及び第2の点P1、P2を通る仮想線VLをオブジェクト空間内に設定する。そして、ポインタ表示制御部112は、図6に示す場合と同様に、仮想線VLに沿ってポインタPTを配置し、同一位置における接触時間や他の接触入力に基づいて、仮想線VLに沿ったポインタPTの長さを変化させる処理を行う。
【0141】
もちろん、この構成と、2つの仮想線を設定する上記の方法とを組み合わせ、同時、あるいは順次のべ4本の指を第1のタッチパネル160Aと第2のタッチパネル160Bに接触させることで、2つの仮想線を発生させ、それらが交差するか否かの判定を行い、交差すると判定された場合に、交点の位置にポインタPTを配置することとしても良い。
【符号の説明】
【0142】
100 処理部、110 オブジェクト空間設定部、112 ポインタ表示制御部、114 オブジェクト表示制御部、118 仮想カメラ制御部、120 描画部(画像生成部)、160 タッチパネル、170 記憶部、180 情報記憶媒体、190 表示部、196 通信部
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来、表示画面に表示されている画像の中の任意の点を指定する場合には、ユーザは、マウスポインタ、タッチパネル等の入力装置を用いて所望の点をシステムに対して指示していた。また、表示画面に表示されている3次元空間(オブジェクト空間)内の任意の点を指定する場合には、指定する点の3次元座標を直接入力する方法や、最初に三軸の任意の2軸を含む第1平面内の2次元座標を指定し、その後前記2軸以外の1軸と前記2軸の内いずれか1軸とを含む第2平面内の2次元座標を指定することで3次元座標を指定する方法が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−191770号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の方法では、ユーザの操作が煩雑になり簡単な操作で3次元空間内の点を指定することができないといった問題点があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、簡単な操作でオブジェクト空間内の点を指示することが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明に係るプログラムは、
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置することを特徴とするプログラムに関する。
【0007】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【0008】
本発明によれば、タッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0009】
(2)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【0010】
本発明によれば、タッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定し、同一位置でタッチを継続させることでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0011】
(3)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記第1及び第2の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【0012】
本発明によれば、第1の接触入力によりタッチパネルにタッチしてスライドさせることでポインタのオブジェクト空間における向きを決定し、第2の接触入力を行うことでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0013】
(4)本発明に係るプログラムは、
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記第1の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とするプログラムに関する。
【0014】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【0015】
ここで、前記仮想線は、前記第1の点と所与の基準点とを通る仮想線であってもよいし、前記第1の点を通り、前記第1の平面及び前記視点の少なくとも一方に基づき設定される方向に伸びる仮想線であってもよい。
【0016】
本発明によれば、タッチパネルにタッチすることでポインタのオブジェクト空間における向きを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0017】
(5)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ポインタ表示制御部が、
前記第1の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。
【0018】
本発明によれば、第1の接触入力を行うことでポインタのオブジェクト空間における向きを決定し、第2の接触入力を行うことでポインタのオブジェクト空間における長さを決定するという簡単な操作でオブジェクト空間内の点を指示することができる。
【0019】
(6)また本発明に係るプログラム及び情報記憶媒体では、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部として更にコンピュータを機能させ、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させるようにしてもよい。
【0020】
また本発明に係る画像生成システムでは、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部を更に含み、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させるようにしてもよい。
【0021】
(7)また本発明に係るプログラム及び情報記憶媒体では、
前記視点を制御する視点制御部として更にコンピュータを機能させ、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。
【0022】
また本発明に係る及び画像生成システムでは、
前記視点を制御する視点制御部を更に含み、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。
【0023】
(8)また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記表示部は、
立体視画像を表示するための表示部であり、
前記画像生成部が、
前記ポインタを含む前記立体視画像を生成するようにしてもよい。
【0024】
ここで、立体視画像の表示方式は、2眼式、多眼式や空間像方式(いわゆるインテグラル方式や、フラクショナル・ビュー方式等)等を含む。また、視差方向は水平方向のみに限られるものでなく、垂直方向にも視差を持つ方式であってもよく、メガネ式、裸眼式、スコープ式等の種類も問わない。さらには、空間内に立体的に配置されたスクリーン、もしくは空間内を動的に移動するスクリーンに投影する方式であってもかまわないし、空間内に立体的に配置された光源群、もしくは空間内を動的に移動する光源群による方式であってもかまわない。また、表示部に表示された立体視画像を、鏡やハーフミラーで反射させるようにしてもよい。
【図面の簡単な説明】
【0025】
【図1】第1の実施の形態の画像生成システムの機能ブロック図の一例を示す図。
【図2】図2(A)、図2(B)、図2(C)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図3】図3(A)、図3(B)、図3(C)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図4】第1の実施の形態のポインタの表示制御について説明するための図。
【図5】図5(A)、図5(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図6】図6(A)、図6(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図7】図7(A)、図7(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図8】図8(A)、図8(B)は、第1の実施の形態のポインタの表示制御について説明するための図。
【図9】図9(A)、図9(B)、図9(C)は、第1の実施の形態のオブジェクトの表示制御について説明するための図。
【図10】図10(A)、図10(B)は、第1の実施の形態の仮想カメラの制御について説明するための図。
【図11】図11(A)、図11(B)は、第1の実施の形態の仮想カメラの制御について説明するための図。
【図12】第1の実施の形態の処理の流れを示すフローチャート図。
【図13】図13(A)、図13(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図14】図14(A)、図14(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図15】第2の実施の形態のポインタの表示制御について説明するための図。
【図16】図16(A)、図16(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図17】図17(A)、図17(B)は、第2の実施の形態のポインタの表示制御について説明するための図。
【図18】第2の実施の形態の処理の流れを示すフローチャート図。
【図19】変形例について説明するための図。
【図20】変形例について説明するための図。
【図21】変形例について説明するための図。
【図22】変形例について説明するための図。
【図23】変形例について説明するための図。
【発明を実施するための形態】
【0026】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0027】
(第1の実施の形態)
1.機能ブロック図
図1に第1の実施の形態の画像生成システム(画像生成装置)の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0028】
タッチパネル160は、ユーザによる接触入力を検出するためのものであり、接触位置の座標値を連続的に検出し、処理部100に出力する。タッチパネル方式としては、抵抗膜方式(4線式、5線式)、静電容量結合方式、超音波表面弾性波方式、赤外線走査方式などがある。タッチパネル160は、表示部190に内蔵若しくは配置されるか、表示部190と離隔配置され、表示部190とともにタッチパネルディスプレイを構成する。タッチパネル160(タッチパネルディスプレイ)への接触操作(タッチ操作)は、指先を用いて行ってもよいし、タッチペンなどの入力機器を用いて行ってもよい。
【0029】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶されるフレームバッファ174と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部176と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
【0030】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0031】
表示部190は、本実施形態により生成された画像(オブジェクト空間を所与の視点から見た画像)を出力するものであり、その機能は、LCDなどにより実現できる。また表示部190は、立体視画像を表示するようにしてもよい。例えば、表示部190は、有限個の画素からなるLCDの前面又は背面に、パララックスバリアやレンチキュラ等の光学素子が配置される。例えば、立体視表示方式が、垂直バリアまたは垂直レンチキュラによる2眼式の場合には、1枚(1フレーム)の左眼用画像を表示するための表示領域と、1枚の右眼用画像を表示するための表示領域とが、短冊状に左眼用短冊画像表示領域及び右眼用短冊画像表示領域として交互に配置されている。パララックスバリアが配置される場合、その隙間からは、表示部190の観者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、レンチキュラが配置される場合、各短冊集合画像に対応したレンズの光屈折効果により、表示部190の観者の左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。
【0032】
通信部196は他の画像生成システムやサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0033】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【0034】
処理部100(プロセッサ)は、タッチパネル160からの検出信号(接触位置の座標値)、通信部196を介して受信したデータやプログラムなどに基づいて、ポインタの表示制御、オブジェクトの表示制御、画像生成処理などの処理を行う。この処理部100は主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0035】
処理部100は、オブジェクト空間設定部110、ポインタ表示制御部112、オブジェクト表示制御部114、仮想カメラ制御部118、描画部120を含む。
【0036】
オブジェクト空間設定部110は、表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0037】
ポインタ表示制御部112は、タッチパネル160によって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行う。すなわち、ポインタ表示制御部112は、前記接触位置に基づきオブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線を設定し、この仮想線に沿って前記ポインタを配置する処理を行う。
【0038】
またポインタ表示制御部112は、前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求める。またポインタ表示制御部112は、同一位置への接触時間に基づいて、前記ポインタを前記仮想線に沿って伸長、又は短縮させるようにしてもよい。またポインタ表示制御部112は、接触入力が行われなくなった場合(接触状態が解除された場合)に、前記ポインタの伸長処理若しくは伸縮処理を停止するようにしてもよい。
【0039】
またポインタ表示制御部112は、前記第1の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めるようにしてもよい。またポインタ表示制御部112は、前記第2の接触入力に基づいて、前記ポインタを前記仮想線に沿って伸長、又は短縮させるようにしてもよい。例えば、前記第2の接触入力における接触位置の移動距離や移動方向若しくは移動方向に基づき前記ポインタの伸長若しくは短縮処理を行うようにしてもよい。また、前記第2の接触入力が行われなくなった場合(接触状態が解除された場合)に、前記ポインタの伸長処理若しくは短縮処理を停止するようにしてもよい。
【0040】
オブジェクト表示制御部114は、前記オブジェクト空間内のオブジェクトの表示制御を行い、前記ポインタの指示位置(前記ポインタの奥行き方向の先端位置)に基づいて、前記オブジェクトの表示態様を変化させる処理を行う。例えば、前記ポインタが貫通した前記オブジェクトの表示態様を変化させるようにしてもよいし、前記ポインタの先端位置よりも仮想カメラから見て手前側(奥行き方向の手前側)にある前記オブジェクトの表示態様を変化させるようにしてもよいし、仮想カメラから見て、前記ポインタが指示しているオブジェクトを覆い隠しているオブジェトの表示態様を変化させるようにしてもよい。また前記オブジェクトの表示態様を変化させる処理としては、例えば、前記オブジェクトの透明度を変化させる処理、前記オブジェクトを非表示にする処理、前記オブジェクトを輪郭表示(例えば、ワイヤフレーム表示)する処理等がある。
【0041】
仮想カメラ制御部118(視点制御部)は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、操作部160によりプレーヤが入力した操作データ或いはプログラム(移動・動作アルゴリズム)等に基づいて、ワールド座標系における仮想カメラの位置(X、Y、Z)又は光軸の方向(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度等)を制御する処理を行う。要するに、視点位置、仮想カメラの向き、画角を制御する処理を行う。
【0042】
また仮想カメラ制御部118は、前記ポインタの指示位置(前記ポインタの奥行き方向の先端位置)に基づいて、仮想カメラ(2眼式の立体視方式により立体視画像を表示する場合には、左眼用及び右眼用の仮想カメラ)の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。例えば、仮想カメラ位置或いは仮想カメラの向きを前記ポインタの指示位置に追従させる制御を行うようにしてもよいし、前記ポインタの指示位置が奥行き方向に移動するに従って仮想カメラの画角(視野角)を小さくするようにしてもよい。
【0043】
描画部120(画像生成部)は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。
【0044】
いわゆる3次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0045】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0046】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0047】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0048】
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0049】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0050】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0051】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0052】
また描画部120は、立体視画像を表示部190に出力するようにしてもよい。例えば、立体視方式が2眼式の場合であれば、左眼用の仮想カメラは、前記ポインタを配置するため(前記第1及び第2の面を設定するため)に用いられる仮想カメラ(センターカメラ)から所定距離だけ左側に離れて配置され、右眼用の仮想カメラは、センターカメラから所定距離だけ右側に離れて配置され、左眼用及び右眼用の仮想カメラ位置に基づいて、ポインタを含む左眼用画像及び右眼用画像を生成し、生成した各画像に基づいて立体視画像を生成する。具体的には、描画部120は、オブジェクト空間内の投影面に対してオブジェクトを左眼用仮想カメラの視点で透視投影して描画することで左眼用画像を生成し、投影面に対してオブジェクトを右眼用仮想カメラの視点で透視投影して描画することで右眼用画像を生成する。
【0053】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0054】
2−1.ポインタの表示制御
図2(A)〜図2(C)、図3(A)〜図3(C)、図4、図5(A)、図5(B)、図6(A)、図6(B)は、第1の実施形態のポインタの表示制御について説明するための図である。
【0055】
図2(A)は、タッチパネルディスプレイ(タッチパネル160を備えた表示部190)の表示画面SCを示す図である。本実施形態においては、タッチパネルと表示画面SCの位置は略一致しているものとする。ユーザは、指先FG(タッチペン等でもよい)をタッチパネルに接触(押下)させる操作を行うことで、オブジェクト空間内の任意の点を指示して、オブジェクト空間に配置された複数のオブジェクトOB1〜3のうち所望のオブジェクトを選択する操作を行うことができる。
【0056】
図2(A)に示すように、ユーザが指先FGをタッチパネルに接触させると、この最初に接触した接触位置(接触開始位置)が第1の点P1となり、第1の点P1を中心点とする第1のマーカーMK1が表示画面SCに表示される。
【0057】
図3(A)は、オブジェクト空間のXZ平面を示す図である。図3(A)に示すように、オブジェクト空間には、タッチパネルに相当する面であって仮想カメラVCの光軸ベクトルEL(仮想カメラVCの向き)と直交する第1の平面PL1と、第1の平面PL1と平行な平面であって第1の平面PL1から奥行き方向(+Z軸方向)に所定距離だけ離れた第2の平面PL2が設定される。なお、カメラの光軸ベクトルELと第1の平面PL1が直交しているのは、タッチパネルと表示画面SCの位置が略一致しているためであり、そうでない場合には、直交していないこともありうる。
【0058】
具体的には、図4に示すように、仮想カメラVCの位置、向き、画角及び投影面の位置によって上下左右の構成面が決定される視錐台の領域であるビューボリュームVVのニアクリップ面NPに第1の平面PL1が設定される。また、ビューボリュームVV内において第1の平面PL1から奥行き方向(+Z軸方向)に所定距離だけ離れた位置であって、ファークリップ面FPよりも手前側の位置に第2の平面PL2が設定される。なお、第1の平面PL1とニアクリップ面NPは必ずしも一致していなくてもよく、ニアクリップ面NPから奥行き方向(+Z軸方向)に所定距離だけ離れた位置に第1の平面PL1を設定するようにしてもよい。また、表示画面SCに立体視画像を表示させる場合には、投影面もニアクリップ面NPに設定される。
【0059】
そして、図3(A)、図4に示すように、ポインタ表示制御部112は、タッチパネル上の接触開始位置に基づいて、第1の平面PL1における第1の点P1を設定する。ここで、第1の点P1は、タッチパネル上の接触開始位置に対応する点であり、第1の点P1を透視投影変換(投影面に投影)したときに、表示画面SCにおいて接触開始位置に相当する点になるように設定される。
【0060】
そして、図2(B)に示すように、ユーザが指先FGをタッチパネルに接触させたまま接触位置を移動させると、この移動後の接触位置が第2の点P2となり、第2の点P2を中心点とする第2のマーカーMK2が表示画面SCに表示される。また、第1の点P1と第2の点P2を通り奥行き方向(+Z軸方向)に延びる仮想線VLが表示される。
【0061】
すなわち、図3(B)、図4に示すように、ポインタ表示制御部112は、タッチパネル上の移動後の接触位置に基づいて、第2の平面PL2における第2の点P2を設定し、第1の点P1と第2の点P2を通る仮想線VLをオブジェクト空間内に設定する。ここで、第2の点P2は、タッチパネル上の移動後の接触位置に対応する点であり、第2の点P2を透視投影変換したときに、表示画面SCにおいて移動後の接触位置に相当する点になるように設定される。
【0062】
なお、図2(C)、図3(C)に示すように、ユーザが指先FGをタッチパネルに接触させ続ける限り、第2の点P2の位置は接触位置の移動に応じて移動後の接触位置に対応する位置に再設定され、第2の点P2の位置の変更に応じて仮想線VLも再設定される。なお、第1の点P1は、接触開始位置に対応する位置に固定される。
【0063】
そして、図5(A)に示すように、ユーザが指先FGをタッチパネルSCの同一位置に所定時間接触させ続けると、第2の点P2の位置と仮想線VLの位置及び向きは確定し、仮想線VLに沿った位置に、オブジェクト空間内の任意の点を指示するためのポインタPTが表示される。
【0064】
すなわち、図6(A)に示すように、ポインタ表示制御部112は、接触位置が所定時間移動しない場合(接触位置が停止した場合)に、第1の点P1を基点として仮想線VLに沿って奥行き方向(+Z軸方向)に延びるポインタPTを配置する。ポインタPTは、その端部が第1の点P1に設定され、仮想線VLに沿った向きに所定の長さを有するオブジェクトである。
【0065】
そして、図5(B)に示すように、ユーザが指先FGをタッチパネルの同一位置に接触させ続けると、ポインタPTは仮想線VLに沿って伸長する。すなわち、図6(B)に示すように、ポインタ表示制御部112は、同一位置における接触時間に基づきポインタPTの仮想線VLに沿った長さを決定し、接触時間が長くなるほどポインタPTを仮想線VLに沿って奥行き方向(+Z軸方向)に伸長させる制御を行う。
【0066】
なお、伸長するポインタPTが所定の長さに達した場合にポインタPTの伸長を停止するようにしてもよい。また、伸長するポインタPTの長さが所定の最大値LMAXに達した場合にポインタPTを仮想線VLに沿って短縮させ、短縮するポインタPTの長さが所定の最小値LMINになった場合に再びポインタPTを伸長させて、接触位置が停止している間はポインタPTの伸長と短縮を繰り返すようにしてもよい。
【0067】
そして、ユーザが指先FGをタッチパネルから離すと(指先FGによる接触状態が解除されると)、ポインタPTの伸長は停止し、その時点でのポインタPTの先端位置IP(ポインタPTの奥行き方向側の端部)がオブジェクト空間におけるポインタPTの指示位置として確定する。すなわち、ポインタPTの先端位置IPが、オブジェクト空間に配置されたいずれかのオブジェクトの内部に位置する場合、或いはいずれかのオブジェクトから所定距離範囲内にある場合には、当該オブジェクトを選択状態にする処理が行われる。例えば、図6(B)に示す状態でポインタPTの指示位置が確定した場合にポインタPTの先端位置IPがオブジェクトOB1の内部に位置していると仮定した場合には、ポインタPTによりオブジェクトOB1が指示されたと判断されて、オブジェクトOB1が選択される。
【0068】
このように本実施形態では、ユーザは、指先FGをタッチパネルの任意の位置に接触させることでポインタPTの基点となる位置(第1の点P1の位置)を決定し、指先FGの接触位置を移動させて第2の点P2の位置と仮想線VLの向きを任意に変化させることでポインタPTのオブジェクト空間における向きを決定し、指先FGを同一位置に任意の時間だけ接触させ続けることでポインタPTのオブジェクト空間における奥行き方向の長さを決定して、オブジェクト空間内の所望のオブジェクトを選択する操作を行うことができる。
【0069】
すなわち本実施形態によれば、指先FGをタッチパネルにタッチしてスライドさせ、同一位置でタッチを継続するという簡単な操作でオブジェクト空間内の任意の点を指示することができる。
【0070】
ここで、立体視画像を表示画面SC(タッチパネルディスプレイ)に表示させて、タッチパネル上のタッチ操作(接触操作)により表示画面SCに表示されたオブジェクト空間内のオブジェクトを選択させる場合、ユーザはオブジェクト空間内のオブジェクトに触れようとしてもタッチパネルより奥に指先を進ませることができない。本実施形態では、指先をタッチパネルに接触させた位置からポインタPTがオブジェクト空間における奥行き方向に伸びてゆくため、ユーザはあたかも自身の指先をオブジェクト空間内に入り込ませるような感覚でオブジェクト空間内のオブジェクトを選択する操作を行うことができる。すなわち本実施形態によれば、特に立体視画像を生成する場合に、直感的に分かり易い操作環境をユーザに提供することができる。
【0071】
なお、図2〜図6では、第2の平面PL2を第1の平面PL1から奥行き方向(+Z軸方向)に所定距離だけ離れた位置に設定する場合について示したが、図7(A)に示すように、第1の平面PL1を第2の平面PL2から奥行き方向(+Z軸方向)に所定距離だけ離れた位置に設定するようにしてもよい。この場合には、第2の平面PLをオブジェクト空間におけるタッチパネルに相当する位置(例えば、ビューボリュームVV(図4参照)のニアクリップ面NP)に設定してもよい。
【0072】
またこの場合には、図7(A)に示すように、接触開始位置に基づき第1の平面PL1における第1の点P1が設定され、移動後の接触位置に基づき第2の平面PL2における第2の点P2が設定され、第1の点P1と第2の点P2を通る仮想線ELが設定され、仮想線の確定後、図7(B)に示すように、第2の点P2を基点として仮想線VLに沿って奥行き方向に延びるポインタPTが設定される。すなわちこの場合には、ユーザは、指先FGの接触位置を移動させてポインタPTの基点の位置(第2の点P2の位置)を変化させることで、ポインタPTのオブジェクト空間における向きを決定することになる。
【0073】
また、図5、図6では、接触位置が停止した場合に同一位置への接触時間の長さに基づいてポインタPTの長さを求める場合について示したが、第1及び第2の点P1、P2を求めるための第1の接触入力(ポインタPTの向きを決定するための接触入力)とは異なる第2の接触入力に基づいてポインタPTの長さを求めるようにしてもよい。
【0074】
すなわち、図8(A)に示すように、ユーザの左手の指先FG1をタッチパネルに接触させる第1の接触入力に基づき第1の点P1と第2の点P2の位置を求めてポインタPTの向きを決定し、ユーザの右手の指先FG2(タッチペン等でもよい)をタッチパネルに接触させる第2の接触入力によりポインタPTの仮想線VLに沿った長さを決定するようにしてもよい。
【0075】
例えば、図8(B)に示すように、ユーザが右手の指先FG2をタッチパネルに接触させたまま接触位置CPを移動させた場合に、接触位置CPの移動距離(又は移動速度)に応じてポインタPTを仮想線VLに沿って伸長させ、右手の指先FG2の接触状態が解除された場合にポインタPTの長さ及び指示位置を確定するようにしてもよい。
【0076】
また、接触位置CPの移動方向に応じてポインタPTを仮想線に沿って伸縮させるようにしてもよい。例えば、接触位置CPが第1の方向(例えば、画面右側又は画面上側)に移動した場合には移動距離に応じてポインタPTを伸長させ、接触位置CPが第2の方向(例えば、画面左側又は画面下側)に移動した場合には移動距離に応じてポインタPTを短縮させるようにしてもよい。また、指先FG2をタッチパネルに接触させて所定時間内に離す操作(いわゆるタップ操作)が行われた場合に、検出したタップ操作の回数に応じてポインタPTを伸長させるようにしてもよい。また、指先FG2をタッチパネルに接触させたまま接触位置CPを移動させて離す操作(いわゆるフリック操作)が行われた場合に、検出したフリック操作の回数又は方向に応じてポインタPTを伸縮させるようにしてもよい。
【0077】
また、第1の接触入力の完了後(仮想線VLの位置及び向きの確定後)に第2の接触入力を行えるようにしてもよいし、第1の接触入力と第2の接触入力とを同時に行えるようにしてもよい。すなわち、ユーザが左手指先FG2をタッチパネルに接触させたまま接触位置を移動させることによりポインタPTの向きを変化させつつ、左手指先FG2をタッチパネルに接触させたまま接触位置を移動させることによりポインタPTの長さを変化させることができるように構成してもよい。
【0078】
このように、第1の接触入力とは異なる第2の接触入力に基づきポインタPTの長さを求めるようにすることで、同一位置への接触時間に基づきポインタPTの長さを求める場合に比べて、ユーザは素早い操作でポインタPTの長さを変化させることができる。すなわち、接触時間に基づきポインタの長さを求める場合には、ユーザは、ポインタPTが所望の長さに伸長又は短縮するまで待つ必要があるが、第2の接触入力に基づきポインタPTの長さを求める場合には、ユーザは、接触位置を移動させる操作やタップ操作等により迅速にポインタPTを任意の長さに変化させることができる。
【0079】
2−2.オブジェクトの表示制御
本実施形態のオブジェクト表示制御部114は、ポインタPTの先端位置IP(ポインタの指示位置)に基づいてオブジェクト空間内のオブジェクトの表示態様を変化させる。
【0080】
例えば、図9(A)に示すように、ポインタPTの向きが確定した後(仮想線VLの向きが確定した後)、ポインタPTが仮想線VLに沿って伸長する場合に、ポインタPTの先端位置IPとポインタPTの基点である第1の点P1とを結ぶ線分と交差するオブジェクト(或いは、該線分の近傍に位置するオブジェクト)を、ポインタPTが貫通したオブジェクトとして特定し、特定されたオブジェクトの表示態様を変化させる。例えば、特定されたオブジェクトの透明度(例えば当該オブジェクトを構成する頂点のα値)を変化させることで、当該オブジェクトを半透明又は非表示にするようにしてもよいし、特定されたオブジェクトについては当該オブジェクトのワイヤフレーム(オブジェクトを構成する頂点同士を結ぶ線)のみを表示するようにしてもよい。図9(A)に示す例では、ポインタPTが貫通したオブジェクトとしてオブジェクトOB1、OB2が特定され、オブジェクトOB1、OB2を半透明表示としている。
【0081】
また、図9(B)に示すように、仮想線VLに沿って伸長するポインタPTの先端位置IPよりも仮想カメラVCから見て手前側(−Z軸方向)に位置するオブジェクトを特定し、特定されたオブジェクトを半透明表示等して表示態様を変化させるようにしてもよい。この場合には、先端位置IPのZ座標値と各オブジェクトのZ座標値を比較することで先端位置IPよりも手前側に位置するオブジェクトを特定することができる。
【0082】
また、図9(C)に示すように、仮想線VLに沿って伸長するポインタPTの先端位置IPよりも仮想カメラVCから見て手前側(−Z軸方向)に位置するオブジェクトのうち、前記ポインタPTが指し示しているオブジェクト(この場合OB3)を覆い隠しているオブジェクトを半透明表示等して表示態様を変化させるようにしてもよい。この場合には、オブジェクトOB3と、各オブジェクトを、投影面上で隠蔽関係を検出するとともに、オブジェクトOB3のZ座標値と各オブジェクトのZ座標値を比較することで先端位置IPよりも手前側に位置するオブジェクトを特定することができる。図9(C)に示す例では、仮想カメラVCから見て、指示されたオブジェクトOB3(の一部)を覆い隠しているオブジェクトOB2を、半透明表示としている。
【0083】
このように、ポインタPTが仮想線VLに沿って奥行き方向に伸長するときに、ポインタPTと重なるオブジェクト(或いは、ポインタPTの近傍に位置するオブジェクト)又はポインタPTの先端位置よりも奥行き方向手前側に存在するオブジェクトを半透明表示等することで、伸長するポインタPTの先端位置IPと、先端位置IPよりも奥行き方向に存在するオブジェクトとをユーザに視認させ易くすることができ、ユーザに所望のオブジェクトを選択させ易くすることができる。例えば、図9(A)、図9(B)、図9(C)に示す例において、ユーザが選択しようとする所望のオブジェクトがオブジェクトOB3であったとすると、オブジェクトOB2やOB1を半透明表示等することで、仮想カメラVCから見てオブジェクトOB2やOB1の奥側にある先端位置IPと、仮想カメラVCから見てオブジェクトOB2の奥側にある所望のオブジェクトOB3が視認し易くなり、ポインタPTの伸長により先端位置IPをオブジェクトOB3に到達させてオブジェクトOB3を選択する操作を行い易くさせることができる。
【0084】
2−3.仮想カメラの制御
また本実施形態の仮想カメラ制御部118は、ポインタPTの先端位置IP(ポインタの指示位置)に基づいて、仮想カメラVC(視点)の位置、向き及び画角の少なくとも1つを制御するようにしてもよい。
【0085】
例えば、図10(A)、図10(B)に示すように、ポインタPTの向きが確定した後、ポインタPTが仮想線VLに沿って伸長する場合に、仮想カメラVCの光軸ベクトルELがポインタPTの先端位置IPを向く(仮想カメラVCの注視点がポインタPTの先端位置IPとなる)ように仮想カメラVCの向きを制御しつつ、仮想線VLに沿って奥行き方向に移動する先端位置IPに追従して仮想カメラVCが移動するように仮想カメラの位置を制御するようにしてもよい。
【0086】
また、図11(A)、図11(B)に示すように、ポインタPTの向きが確定した後、ポインタPTが仮想線VLに沿って伸長した場合に、仮想カメラVCの光軸ベクトルELがポインタの先端位置IPを向くように仮想カメラVCの向きを制御しつつ、ポインタPTの先端位置IPが仮想線VLに沿って奥行き方向に移動するに従って仮想カメラVCの画角θを小さくする(すなわち、ポインタPTの先端位置IPをズームアップする)制御を行うようにしてもよい。
【0087】
このようにすると、ポインタPTが仮想線VLに沿って奥行き方向に伸長しても、表示画面SCにポインタPTの先端部分IPと先端位置IPよりも奥行き方向に存在するオブジェクトとを大きく表示することができ、ポインタPTの先端位置IPと、先端位置IPよりも奥行き方向に存在するオブジェクトとをユーザに視認させ易くすることができ、ユーザに所望のオブジェクトを選択させ易くすることができる。
【0088】
なお、左右視差を有する立体視画像を表示する場合には、ポインタPTを配置するため(第1及び第2の面PL1、PL2を設定するため)に用いられる仮想カメラVC(センターカメラ)から左右方向(X軸方向)にそれぞれ所定距離だけ離れて配置された左眼用及び右眼用の仮想カメラの位置、向き及び画角の少なくとも1つを左右の仮想カメラのそれぞれについて制御すればよい。多眼立体視画像の場合も同様に、位置、向き及び画角の少なくとも1つを多眼仮想カメラのそれぞれについて制御すればよい。また、空間像方式(水平・垂直両方向に視差を持つ方式を含む)の場合には、例えば、仮想カメラVCの位置、向き及び画角の少なくとも1つを制御して、それに基づく空間座標変換により、仮想空間全体をいったん変換する。その後、変換後の空間内に配置されたオブジェクト等を、それぞれの立体視表示方式に基づいて描画することで、上記の効果を得ることができる。
【0089】
3.処理
次に、第1の実施の形態の画像生成システムの処理の一例について図12のフローチャートを用いて説明する。
【0090】
まず、ポインタ表示制御部112は、仮想カメラVC(立体視画像を表示する場合にはセンターカメラ)の位置、向き、画角及び表示画面SCとタッチパネルの位置関係に基づきオブジェクト空間に第1及び第2の平面PL1、PL2を設定する(ステップS10)。すなわち、図3(A)に示すように、仮想カメラVCの光軸ベクトルELと直交する第1及び第2の平面PL1、PL2を設定する。具体的には、図4に示すように、ビューボリュームVVのニアクリップ面NPに第1の平面PL1を設定し、第1の平面PL1から奥行き方向に所定距離だけ離れた位置に第2の平面PL2を設定する。
【0091】
次に、ポインタ表示制御部112は、タッチパネルディスプレイに対する接触入力があったか否かを判断する(ステップS12)。すなわち、タッチパネル160によって接触位置の座標値が検出されたか否かを判断する。接触入力があったと判断した場合には、図3(A)に示すように、検出された接触位置(接触開始位置)に基づき第1の平面PL1上の第1の点P1の位置(オブジェクト空間における位置)を求める(ステップS14)。このとき、タッチパネル上の接触開始位置に相当する表示画面SC上の位置に第1のマーカーMK1を表示するための処理を行う。
【0092】
次に、ポインタ表示制御部112は、接触位置が移動したか否かを判断する(ステップS16)。すなわち、タッチパネル160によって連続的に検出される接触位置の座標値が変化したか否かを判断する。接触位置が移動したと判断した場合には、図3(B)に示すように、移動後の接触位置に基づき第2の平面PL2上の第2の点P2の位置(オブジェクト空間における位置)を求める(ステップS18)。このとき、タッチパネル上の移動後の接触位置に相当する表示画面SC上の位置に第2のマーカーMK2を表示するための処理を行う。
【0093】
次に、ポインタ表示制御部112は、図3(B)に示すように、第1及び第2の点P1、P2の位置に基づきオブジェクト空間に第1及び第2の点P1、P2を通り奥行き方向に延びる仮想線VLを設定する(ステップS20)。このとき、設定した仮想線VLを表示画面SCに表示するための処理を行う。
【0094】
次に、ポインタ表示制御部112は、接触位置が停止したか否かを判断する(ステップS22)。すなわち、タッチパネル160によって連続的に検出される接触位置の座標値が、所定時間変化していない場合には、接触位置が停止したと判断する。また、連続的に検出される接触位置の座標値の変化量が、所定時間の間所定値以内である場合に接触位置が停止したと判断するようにしてもよい。接触位置が停止していないと判断した場合には、ステップS18の処理に進み、移動後の接触位置に基づき第2の点P2の位置を求めて仮想線VLを設定するステップS18、S20の処理(すなわち、第2の点P2の位置と仮想線VLの向きを更新する処理)を接触位置が停止するまで繰り返す。
【0095】
ステップS22において、接触位置が停止したと判断された場合には、ポインタ表示制御部112は、仮想線VLに沿ってポインタPTを配置する(ステップS24)。すなわち、図6(A)に示すように、第1の点P1を基点として仮想線VLに沿って奥行き方向に延びるポインタPTを配置する。このとき、配置したポインタPTを表示画面SCに表示するための処理を行う。
【0096】
次に、ポインタ表示制御部112は、ポインタPTを仮想線VLに沿って奥行き方向に所定の長さだけ伸長させる処理を行う(ステップS26)。
【0097】
次に、オブジェクト表示制御部114は、ポインタPTの先端位置IPに基づきオブジェクトの表示態様を変化させる処理を行う(ステップS28)。すなわち、図9(A)、図9(B)に示すように、オブジェクト空間において第1の点P1と先端位置IPとを結ぶ線分と交差するオブジェクト、或いはオブジェクト空間において先端位置IPよりも奥行き方向手前側に位置するオブジェクト、或いは前記ポインタPTが指し示しているオブジェクトを覆い隠しているオブジェクトのα値を変化させて当該オブジェクトを半透明表示、非表示等にするための処理を行う。
【0098】
次に、ポインタ表示制御部112は、接触状態が解除されたか否かを判断する(ステップS30)。すなわち、タッチパネル160によって接触位置が検出されなくなったときに接触状態が解除されたと判断する。接触状態が解除されていない(タッチパネル160によって接触位置が連続的に検出されている)と判断した場合には、ステップS26の処理に進み、ステップS26、S28の処理を接触状態が解除されるまで繰り返す。すなわち、ポインタPTは、接触位置が停止してからの接触時間が長くなるほど仮想線VLに沿って奥行き方向に長くなる。
【0099】
ステップS30において、接触状態が解除されたと判断された場合には、処理部100は、ポインタPTの先端位置IPに基づきオブジェクトの選択処理を行う(ステップS32)。すなわち、オブジェクト空間においてポインタPTの先端位置IPを内包するオブジェクト、或いは先端位置IPの近傍に位置するオブジェクトを選択状態にする処理を行う。
【0100】
なお、第2の接触入力に基づいてポインタPTの長さを求める場合には、ポインタ表示制御部112は、ステップS26の処理に代えて以下の処理を行う。すなわち、ポインタ表示制御部112は、タッチパネル160によって第2の接触入力が検出されたか否かを判断し、第2の接触入力が検出されたと判断した場合には、第2の接触入力における接触位置の移動距離、移動速度、移動方向等に基づいて、ポインタPTを仮想線VLに沿って伸長又は短縮させる処理を行う。
【0101】
(第2の実施の形態)
第2の実施の形態では、接触位置に基づき求めた第1及び第2の点を通る仮想線に沿ってポインタを配置する第1の実施の形態とは異なり、接触位置に基づき求めた第1の点を通り予め設定された延長方向に伸びる仮想線に沿ってポインタを配置する。ここでは、第1の点と所与の基準点とを通る仮想線に沿ってポインタを配置する場合について説明する。
【0102】
図13(A)、図13(B)、図14(A)、図14(B)、図15、図16(A)、図16(B)は、第2の実施の形態のポインタの表示制御について説明するための図である。
【0103】
図13(A)に示すように、ユーザが人差し指FG1をタッチパネルに接触させると、接触位置が第1の点P1となり、第1の点P1を中心点とする第1のマーカーMK1が表示画面SCに表示される。また第1の点P1と基準点RPとを通る仮想線VLが表示される。
【0104】
すなわち、図14(A)に示すように、ポインタ表示制御部112は、タッチパネルに相当する面であって仮想カメラVCの光軸ベクトルELと直交する第1の平面PL1を設定し、タッチパネル上の接触位置に基づいて、第1の平面PL1における第1の点P1を設定する。ここで、第1の平面PL1は、ビューボリュームVVのニアクリップ面NPに設定される。また、第1の点P1は、接触位置に対応する点であって、第1の点P1を透視投影変換したときに、表示画面SCにおいて接触位置に相当する点になるように設定される。また、ポインタ表示制御部112は、基準点RPと第1の点P1とを結ぶ仮想線VLをオブジェクト空間に設定する。ここで、基準点RPは、図14(A)に示すようにビューボリュームVVのファークリップ面FPの中心に設定してもよいし、光軸ベクトルELの延長線上の所与の位置に設定してもよい。また、基準点RPを設定する代わりに、仮想線VLが第1の点P1から伸びていく方向を設定するようにしてもよい。例えば、図15に示すように、第1の点P1を通り、タッチパネルに相当する第1の平面PL1に対して垂直な方向に伸びる仮想線VLを設定するようにしてもよい。また、第1の点P1を通り、表示画面SCに相当する面である投影面の中心と仮想カメラVCとを結ぶ直線と平行に伸びる仮想線VLを設定するようにしてもよい。
【0105】
そして、図13(B)に示すように、ユーザが人差し指FG1をタッチパネルに接触させたまま接触位置を移動させると、この移動後の接触位置に第1の点P1が移動し、移動後の第1の点と基準点RPとを通る仮想線VLが表示される。すなわち、図14(B)に示すように、ポインタ表示制御部112は、タッチパネル上の移動後の接触位置に基づいて、第1の平面PL1における第1の点P1を再度設定し、第1の点P1の位置の変更に応じて仮想線VLも再設定する。
【0106】
そして、図16(A)に示すように、ユーザが人差し指FG1をタッチパネルに接触させたまま、親指FG2(他の指やタッチペン等でもよい)をタッチパネルに接触させると、仮想線VLに沿った位置にポインタPTが表示される。すなわち、図17(A)に示すように、ポインタ表示制御部112は、第1の点P1を求めるための第1の接触入力(ここでは、人差し指FG1による接触入力)とは異なる第2の接触入力(ここでは、親指FG2による接触入力)が検出された場合に、第1の点P1を基点として仮想線VLに沿って奥行き方向(+Z軸方向)に延びるポインタPTを配置する。
【0107】
そして、図16(B)、図17(B)に示すように、ユーザが人差し指FG1と親指FG2をタッチパネルSCに接触させたまま、親指FG2による接触位置CPを移動させると、ポインタPTは仮想線VLに沿って基準点RPに向かう方向に伸長する。すなわち、ポインタ表示制御部112は、第2の接触入力に基づきポインタPTの仮想線VLに沿った長さを決定する。例えば、ユーザが親指FG2をタッチパネルに接触させたまま接触位置CPを移動させた場合に、接触位置CPの移動距離(又は移動速度)に応じてポインタPTを仮想線VLに沿って奥行き方向(+Z軸方向)に伸長させる制御を行う。
【0108】
また、接触位置CPの移動方向に応じてポインタPTを仮想線に沿って伸縮させるようにしてもよい。例えば、接触位置CPが第1の方向(例えば、画面下側)に移動した場合には移動距離に応じてポインタPTを伸長させ、接触位置CPが第2の方向(例えば、画面上側)に移動した場合には移動距離に応じてポインタPTを短縮させるようにしてもよい。また、親指FG2をタッチパネルに接触させて所定時間内に離す操作(いわゆるタップ操作)が行われた場合に、検出したタップ操作の回数に応じてポインタPTを伸長させるようにしてもよい。また、親指FG2をタッチパネルに接触させたまま接触位置CPを移動させて離す操作(いわゆるフリック操作)が行われた場合に、検出したフリック操作の回数又は方向に応じてポインタPTを伸縮させるようにしてもよい。また、人差し指FG1による接触位置P1と親指FG2による接触位置CP間の距離に応じてポインタPTを伸縮させるようにしてもよい。
【0109】
そして、ユーザが人差し指FG1と親指FG2をタッチパネルから離すと(人差し指FG1と親指FG2の接触状態が解除されると)、その時点でのポインタPTの先端位置IP(ポインタPTの奥行き方向側の端部)がオブジェクト空間におけるポインタPTの指示位置として確定し、ポインタPTにより指示されたと判断されたオブジェクトを選択状態にする処理が行われる。また、オブジェクトがファイルやフォルダ等のオブジェクトである場合には、ユーザが人差し指FG1と親指FG2を(又は、人差し指FG1のみを)タッチパネルから離した場合に、選択状態にしたファイルやフォルダを開く操作(いわゆるダブルクリック操作に相当する操作)を行えるようにしてもよい。また、ユーザが人差し指FG1のみを接触させたまま接触位置P1を任意の位置に移動させて人差し指FG1をタッチパネルから離した場合に、選択状態にしたオブジェクトを接触位置P1の移動に応じてオブジェクト空間内で移動させる操作(いわゆるドラッグ・アンド・ドロップ操作に相当する操作)を行えるようにしてもよい。
【0110】
このように本実施形態では、ユーザFGは、人差し指FG1をタッチパネルに接触させたまま接触位置を移動させる第1の接触入力によりポインタPTの基点となる位置(第1の点P1の位置)と仮想線VLの向きとを任意に変化させてポインタPTのオブジェクト空間における向きを決定し、親指FG1をタッチパネルに接触させたまま接触位置を移動させる第2の接触入力によりポインタPTのオブジェクト空間における奥行き方向の長さを決定して、オブジェクト空間内の所望のオブジェクトを選択する操作を行うことができる。
【0111】
すなわち本実施形態によれば、一方の指(タッチペンでもよい)でタッチパネルをタッチしてスライドさせた後、他方の指でタッチパネルをタッチしてスライド等させるという簡単な操作でオブジェクト空間内の任意の点を指示することができる。なお、ポインタPTの向きの決定方法のみを、本発明の手法によるタッチパネル操作で行い、ポインタPTの長さの調整及び位置の決定については、他の物理的なデバイス、例えば、物理的なスライダーやボタンによって決定することとしても良い。
【0112】
なお、第2の実施の形態において、第1の実施の形態と同様に、ポインタPTの先端位置IPに基づいてオブジェクト空間内のオブジェクトの表示態様を変化させ、また、ポインタPTの先端位置IPに基づいて仮想カメラVC(視点)の位置、向き及び画角の少なくとも1つを制御することができる。
【0113】
次に、第2の実施の形態の画像生成システムの処理の一例について図18のフローチャートを用いて説明する。
【0114】
まず、ポインタ表示制御部112は、仮想カメラVC(立体視画像を表示する場合にはセンターカメラ)の位置、向き、画角に基づき、オブジェクト空間に基準点RP(或いは仮想線VLの延長方向、或いは仮想線VLの延長方向を決定する方法)を設定する(ステップS40)。例えば、図14(A)に示すように、ビューボリュームVVのファークリップ面FPの中心(或いは仮想カメラVCの光軸ベクトルELの延長線上)に基準点RPを設定する。
【0115】
次に、ポインタ表示制御部112は、仮想カメラVCの位置、向き、画角、及び表示画面とタッチパネルの位置関係に基づきオブジェクト空間に第1の平面PL1を設定する(ステップS42)。すなわち、図14(A)に示すように、仮想カメラVCの光軸ベクトルELと直交する第1の平面PL1を設定する。具体的には、図4に示すように、ビューボリュームVVのニアクリップ面NPに第1の平面PL1を設定する。
【0116】
次に、ポインタ表示制御部112は、タッチパネルディスプレイに対する第1の接触入力があったか否かを判断する(ステップS44)。すなわち、タッチパネル160によって接触位置の座標値が検出されたか否かを判断する。第1の接触入力があったと判断した場合には、図14(A)に示すように、検出された接触位置に基づき第1の平面PL1上の第1の点P1の位置(オブジェクト空間における位置)を求める(ステップS46)。このとき、タッチパネル上の接触開始位置に相当する表示画面SC上の位置に第1のマーカーMK1を表示するための処理を行う。
【0117】
次に、ポインタ表示制御部112は、図14(A)に示すように、第1の点P1の位置及び基準点RTの位置に基づきオブジェクト空間に第1の点P1及び基準点RTを通る仮想線VL(或いは第1の点P1を通り、設定された延長方向に伸びる仮想線VL)を設定する(ステップS48)。このとき、設定した仮想線VLを表示画面SCに表示するための処理を行う。
【0118】
次に、ポインタ表示制御部112は、第1の接触入力とは異なる第2の接触入力があったか否かを判断する(ステップS50)。例えば、第1の接触入力として検出された座標値との差が所定値以上である新たな座標値がタッチパネル160によって検出された場合に、第2の接触入力があったと判断する。第2の接触入力がないと判断された場合には、ステップS46の処理に進み、第2の接触入力があるまでステップS46、S48の処理を繰り返す。すなわち、第1の接触入力における接触位置が移動した場合には、移動後の接触位置に基づき第1の点P1の位置を更新し、更新された第1の点P1の位置に基づき仮想線VLを再度設定する。
【0119】
ステップ50において、第2の接触入力があったと判断された場合には、ポインタ表示制御部112は、仮想線VLに沿ってポインタPTを配置する(ステップS52)。すなわち、図17(A)に示すように、第1の点P1を基点として仮想線VLに沿って奥行き方向に延びるポインタPTを配置する。このとき、配置したポインタPTを表示画面SCに表示するための処理を行う。
【0120】
次に、ポインタ表示制御部112は、第2の接触入力における接触位置CPが移動したか否かを判断する(ステップS54)。すなわち、タッチパネル160によって第2の接触入力として連続的に検出される接触位置の座標値が変化したか否かを判断する。第2の接触入力における接触位置CPが移動したと判断した場合には、接触位置CPの移動距離、移動速度、移動方向等に基づいて、ポインタPTを仮想線VLに沿って伸長又は短縮させる処理を行う(ステップS56)。第2の接触入力における接触位置CPが移動していないと判断した場合には、ステップS60の処理に進む。
【0121】
次に、オブジェクト表示制御部114は、ポインタPTの先端位置IPに基づきオブジェクトの表示態様を変化させる処理を行う(ステップS58)。すなわち、オブジェクト空間において第1の点P1と先端位置IPとを結ぶ線分と交差するオブジェクト、或いはオブジェクト空間において先端位置IPよりも奥行き方向手前側に位置するオブジェクト、或いは前記ポインタPTが指し示しているオブジェクトを覆い隠しているオブジェクトのα値を変化させて当該オブジェクトを半透明表示、非表示等にするための処理を行う。
【0122】
次に、ポインタ表示制御部112は、第1及び第2の接触入力による接触状態が解除されたか否かを判断する(ステップS60)。すなわち、タッチパネル160によって接触位置が検出されなくなったときに接触状態が解除されたと判断する。接触状態が解除されていないと判断した場合には、ステップS54の処理に進み、ステップS54〜S58の処理を接触状態が解除されるまで繰り返す。
【0123】
ステップS60において、接触状態が解除されたと判断された場合には、処理部100は、ポインタPTの先端位置IPに基づきオブジェクトの選択処理を行う(ステップS62)。すなわち、オブジェクト空間においてポインタPTの先端位置IPを内包するオブジェクト、或いは先端位置IPの近傍に位置するオブジェクトを選択状態にする処理を行う。
【0124】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0125】
例えば、オブジェクトの指定操作に当たっては、ユーザの操作のくせや指定誤差を考慮し、ある程度フレキシブルに対応できる仕組みを入れても良い。例えば、ポインタPTの先端がわずかに特定のオブジェクトからずれている場合であっても、その周辺には他のオブジェクトがなく、前記特定のオブジェクトを選択しようとしていることがほぼ明らかな場合には、それを選択したと判断するように、プログラムを動作させても良い。この場合、誤差が常に一定の傾向を示すようであれば、それを補正し、ポインタPTの位置・方向・長さにフィードバックしても良い。
【0126】
また、前記第2の平面PL2が、どれだけ第1の平面PL1と離れているかは、あらかじめ決定されているが、これがユーザの感覚と異なる場合には、それに伴う誤差が常に発生する。その誤差の傾向から、第1の平面PL1と第2の平面PL2間の距離について、あらかじめ決定されているものと、ユーザの感覚によるものの差異を求めることができる。この差異により、ユーザが認識している2平面間の距離を決定し、それを新しい2平面間の距離として再設定しても良い。このように、誤差をフィードバックすることで、より快適な操作感覚をユーザにもたらすことができる。
【0127】
また、上記実施形態では、タッチパネル160と表示画面SCの位置が略一致している構成について説明したが、本発明は、タッチパネル160と表示位置SCが一致しない構成に適用することもできる。
【0128】
例えば、図19(A)に示す構成では、タッチパネル160は、ユーザの視点位置Eから表示画面SC(表示部190)に向かう視線方向の途中に、表示画面SCと所定角度を成して隔離配置されている。ユーザは、タッチパネル160を通して斜め方向から表示画面SCに表示される画像(例えば、立体視画像)を見つつ、タッチパネル160をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。
【0129】
ここで、図19(B)に示すように、オブジェクト空間においては、タッチパネル160に相当する第1の平面PL1と、表示画面SCに相当する投影面PPとが設定される。すなわち、ユーザの視点位置Eに相当する仮想カメラVCの位置及び向きと、ユーザの視点位置Eと表示画面SCの位置関係とに基づき投影面PPが設定され、表示画面SCとタッチパネル160の位置関係に基づき第1の平面PL1が設定される。また、必要であれば、第1の平面PL1と平行な面であって第1の平面PL1から奥行き方向に所定距離だけ離れた第2の平面PL2が設定される。なお、図19(A)、図19(B)に示す例では、タッチパネル160と表示画面SCが所定角度を成しているために示すように、第1の平面PL1と仮想カメラVCの光軸ベクトルELは直交せず、第1の平面PL1とビューボリュームVVのニアクリップ面NPは一致していない。
【0130】
また、図20(A)に示す構成では、タッチパネル160は、ユーザの視点位置Eから表示画面SC(表示部190)に向かう視線方向の途中には配置されておらず、表示画面SCと所定角度を成して隔離配置されている。ユーザは、表示画面SCに表示される画像(例えば、立体視画像)を見つつ、タッチパネル160をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。すなわち、ユーザは、表示画面SCをタッチ操作しているものとしてタッチパネル160のタッチ操作を行う。この場合、図20(B)に示すように、オブジェクト空間においては、タッチパネル160に相当する第1の平面PL1は、表示画面SCに相当する投影面PPと同一の位置に設定される。ただし、第1の平面PL1の位置は、表示画面SCに相当する投影面PPと同一の位置に限定されるものではない。例えば、表示画面SCに仮想的に表示された別の面(例えば釣りゲームにおける「水面」で、表示画面SCとは一致しておらず、表示画面SCと平行とも限らない平面など)を、第1の平面PL1とすることとしても良い。
【0131】
図21(A)は、タッチパネル160と表示位置SCが一致しない構成の他の例であって、本発明を適用した携帯型ゲーム装置10の構成の一例を示す図である。携帯型ゲーム装置10は、上側の筐体12Aと下側の筐体12Bとがヒンジを介して開閉可能に連結されて構成されている。上側の筐体12Aの内側面には、第1の表示部190Aが設けられ、下側の筐体12Bの内側面には、第2の表示部190Bが設けられている。第1の表示部190Aと第2の表示部190Bは、使用時においてヒンジをはさんで上下に並ぶように配置される。第1の表示部190Aは、LCDと、LCDの前面又は背面に設けられたパララックスバリアやレンチキュラ等の光学素子とで構成され、立体視画像を表示する。また、第2の表示部190Bには、その表示領域にタッチパネル160が設けられている。
【0132】
携帯型ゲーム装置10は、図21(A)に示すように、筐体12A、12Bが所定角度θ(0°<θ<90°)を成す状態で使用される。第2の表示部190Bは、表示領域の全体又は大部分が黒色又は暗い色での表示とされ、第1の表示部190Aに表示された立体視画像をユーザの視点位置Eに反射させるミラーとして機能する。ユーザは、第1の表示部190Aに表示された立体視画像が第2の表示部Bによって反射された画像を見ることになる。これは、ユーザの視点位置Eから、第2の表示部190Bの反射面を中心として第1の表示部190A(表示画面SC)と対称の位置に仮想的に存在する仮想表示画面VSCに表示された立体視画像を見ている状態に相当する。ユーザは、タッチパネル160を通して仮想表示画面VSC(第1の表示部190A)に表示される立体視画像を見つつ、タッチパネル160をタッチ操作して、オブジェクト空間内のオブジェクトを選択する等の操作を行うことができる。
【0133】
ここで、図21(B)に示すように、オブジェクト空間においては、タッチパネル160に相当する第1の平面PL1と、仮想表示画面VSCに相当する投影面PPとが設定される。すなわち、ユーザの視点位置Eに相当する仮想カメラVCの位置及び向きと、ユーザの視点位置Eと仮想表示画面VSCの位置関係とに基づき投影面PPが設定され、仮想表示画面VSCとタッチパネル160の位置関係(例えば、筐体12A、12Bの成す角度θ)に基づき第1の平面PL1が設定される。また、必要であれば、第1の平面PL1と平行な面であって第1の平面PL1から奥行き方向に所定距離だけ離れた第2の平面PL2が設定される。
【0134】
また、上記実施形態では、仮想線VLに沿ってポインタPTを配置する場合について説明したが、接触位置に基づき2つの仮想線を設定し、この2つの仮想線が交差する位置(交点)にポインタPTを配置するようにしてもよい。
【0135】
例えば、図22(A)に示すように、ユーザが左手の指先FG1をタッチパネルに接触させると、この接触開始位置が第1の点P1となり、第1のマーカーMK1が表示され、ユーザが指先FG1による接触位置を移動させると移動後の接触位置が第2の点P2となり、第2のマーカーMK2が表示され、第1及び第2の点P1、P2を通る第1の仮想線VL1が表示される。そして、ユーザが右手の指先FG2をタッチパネルに接触させると、この接触開始位置が第3の点P3となり、第3のマーカーMK3が表示され、ユーザが指先FG2による接触位置を移動させると移動後の接触位置が第4の点P4となり、第4のマーカーMK4が表示され、第3及び第4の点P3、P4を通る第2の仮想線VL2が表示される。そして、第1の仮想線VL1と第2の仮想線VL2が交わる位置にポインタPTが表示される。これらの左手での操作と右手での操作順序は、上記と逆に行っても良いし、同時進行で行っても良い。また、片方の手で、順次行ってもかまわない。また、ユーザが指先FG1、FG2のいずれか(或いは両方)をタッチパネルから離すとポインタPTの指示位置が確定する。
【0136】
すなわち、図22(B)に示すように、ポインタ表示制御部112は、第1の接触入力(指先FG1による接触入力)による接触開始位置に基づき第1の平面PL1における第1の点P1を設定し、移動後の接触位置に基づき第2の平面PL2における第2の点P2を設定し、第1及び第2の点P1、P2を通る第1の仮想線VL1をオブジェクト空間内に設定する。また、ポインタ表示制御部112は、第2の接触入力(指先FG2による接触入力)による接触開始位置に基づき第1の平面PL1における第3の点P3を設定し、移動後の接触位置に基づき第2の平面PL2における第4の点P4を設定し、第3及び第4の点P3、P4を通る第2の仮想線VL2をオブジェクト空間内に設定する。そして、ポインタ表示制御部112は、第1の仮想線VL1と第2の仮想線VL2が交差したか否かを判断し、交差したと判断した場合には、第1の仮想線VL1と第2の仮想線VL2が交差した位置(交点)にポインタPTを配置する。
【0137】
なお、ポインタ表示制御部112は、第1の仮想線VL1と第2の仮想線VL2の距離が所定値以下になった場合に、第1の仮想線VL1と第2の仮想線VL2が交差したと判断し、第1の仮想線VL1と第2の仮想線VL2の最も近い位置を結ぶ線分の中点を交点とみなしてポインタPTを配置してもよい。この場合、点(x1,y1,z1)を通り方向ベクトルが(a1,b1,c1)である第1の仮想線VL1と、点(x2,y2,z2)を通り方向ベクトルが(a2,b2,c2)である第2の仮想線VL2をそれぞれ、媒介変数tを用いて、
(x,y,z)=(a1t+x1,b1t+y1,c1t+z1) (1)
(x,y,z)=(a2t+x2,b2t+y2,c2t+z2) (2)
と表すと、第1の仮想線VL1と第2の仮想線VL2の距離Dは、
D2=((a1-a2)t+(x1-x2))2+((b1-b2)t+(y1-y2))2+((c1-c2)t+(z1-z2))2 (3)
と表される。そして、式(3)においてD2が最小となるtの値とそのときのD(≧0)の値を求める。そして、Dの値が所定値以下となった場合には、2直線が交差したと判断することができるので、このときのtの値を式(1)、式(2)に代入してこのtにおける第1の仮想線VL1上の点と第2の仮想線VL2上の点を求めて、求めた2点を結ぶ線分の中点にポインタPTを配置すればよい。
【0138】
また、上記実施形態では、1つのタッチパネル160への接触入力による接触位置に基づき仮想線VLを設定する場合について説明したが、2つのタッチパネルへの接触入力による接触位置に基づき仮想線VLを設定してもよい。
【0139】
図23は、2つのタッチパネルへの接触入力による接触位置に基づき仮想線を設定する構成の例であって、2つのタッチパネルを備えた携帯型ゲーム装置20の構成の一例を示す図である。携帯型ゲーム装置20の筐体22の正面側には、表示部190が設けられ、表示部190の表示領域には第1のタッチパネル160Aが設けられている。また、筐体22の背面側には、第2のタッチパネル160B(タッチパッド)が設けられている。
【0140】
図23に示す例では、ユーザが親指FG1(他の指でもよい)を第1のタッチパネル160Aに接触させつつ、人差し指FG2(他の指でもよい)を第2のタッチパネル160Bに接触させると、親指FG1の接触位置が第1の点P1となり、人差し指FG2の接触位置が第2の点P2となり、第1の点P1と第2の点P2を通る仮想線VLが表示部190に表示される。すなわち、携帯型ゲーム装置20では、オブジェクト空間には、第1のタッチパネル160Aに相当する第1の平面PL1と、第2のタッチパネル160Bに相当する第2の平面PL2が設定され、ポインタ表示制御部112は、第1のタッチパネル160Aに対する接触入力(親指FG1による接触入力)による接触位置に基づき第1の平面PL1における第1の点P1を設定し、第2のタッチパネル160Bに対する接触入力(人差し指FG2による接触入力)による接触位置に基づき第2の平面PL2における第2の点P2を設定し、第1及び第2の点P1、P2を通る仮想線VLをオブジェクト空間内に設定する。そして、ポインタ表示制御部112は、図6に示す場合と同様に、仮想線VLに沿ってポインタPTを配置し、同一位置における接触時間や他の接触入力に基づいて、仮想線VLに沿ったポインタPTの長さを変化させる処理を行う。
【0141】
もちろん、この構成と、2つの仮想線を設定する上記の方法とを組み合わせ、同時、あるいは順次のべ4本の指を第1のタッチパネル160Aと第2のタッチパネル160Bに接触させることで、2つの仮想線を発生させ、それらが交差するか否かの判定を行い、交差すると判定された場合に、交点の位置にポインタPTを配置することとしても良い。
【符号の説明】
【0142】
100 処理部、110 オブジェクト空間設定部、112 ポインタ表示制御部、114 オブジェクト表示制御部、118 仮想カメラ制御部、120 描画部(画像生成部)、160 タッチパネル、170 記憶部、180 情報記憶媒体、190 表示部、196 通信部
【特許請求の範囲】
【請求項1】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置することを特徴とするプログラム。
【請求項2】
請求項1において、
前記ポインタ表示制御部が、
前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項3】
請求項1において、
前記ポインタ表示制御部が、
前記第1及び第2の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項4】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記第1の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とするプログラム。
【請求項5】
請求項4において、
前記ポインタ表示制御部が、
前記第1の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部として更にコンピュータを機能させ、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させることを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記視点を制御する視点制御部として更にコンピュータを機能させ、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも1つを制御することを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記表示部は、
立体視画像を表示するための表示部であり、
前記画像生成部が、
前記ポインタを含む前記立体視画像を生成することを特徴とするプログラム。
【請求項9】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至8のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項10】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、
接触入力を検出するためのタッチパネルと、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部とを含み、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置することを特徴とする画像生成システム。
【請求項11】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、
接触入力を検出するためのタッチパネルと、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部とを含み、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記第1の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とする画像生成システム。
【請求項1】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置することを特徴とするプログラム。
【請求項2】
請求項1において、
前記ポインタ表示制御部が、
前記接触位置が停止した場合に、同一位置への接触時間に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項3】
請求項1において、
前記ポインタ表示制御部が、
前記第1及び第2の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項4】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、接触入力を検出するためのタッチパネルとを有する画像生成システムのためのプログラムであって、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部としてコンピュータを機能させ、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記第1の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とするプログラム。
【請求項5】
請求項4において、
前記ポインタ表示制御部が、
前記第1の点の位置を求めるための第1の接触入力とは異なる第2の接触入力に基づいて、前記ポインタの前記仮想線に沿った長さを求めることを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記オブジェクト空間内のオブジェクトの表示制御を行うオブジェクト表示制御部として更にコンピュータを機能させ、
前記オブジェクト表示制御部が、
前記ポインタの指示位置に基づいて、前記オブジェクトの表示態様を変化させることを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記視点を制御する視点制御部として更にコンピュータを機能させ、
前記視点制御部が、
前記ポインタの指示位置に基づいて、前記視点の位置、向き及び画角の少なくとも1つを制御することを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記表示部は、
立体視画像を表示するための表示部であり、
前記画像生成部が、
前記ポインタを含む前記立体視画像を生成することを特徴とするプログラム。
【請求項9】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至8のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項10】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、
接触入力を検出するためのタッチパネルと、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ表示制御部と、
前記ポインタを含む前記画像を生成する画像生成部とを含み、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記接触位置が移動した場合に、移動後の前記接触位置に基づき前記第1の平面と平行な第2の平面における第2の点の位置を求め、前記第1及び第2の点を通る仮想線に沿って前記ポインタを配置することを特徴とする画像生成システム。
【請求項11】
オブジェクト空間を所与の視点から所与の投影面に投影して得られる画像を表示するための表示部と、
接触入力を検出するためのタッチパネルと、
前記タッチパネルによって検出された接触位置に基づいて、前記オブジェクト空間内の点を指示するためのポインタの表示制御を行うポインタ制御部と、
前記ポインタを含む前記画像を生成する画像生成部とを含み、
前記ポインタ表示制御部が、
前記接触位置に基づき前記オブジェクト空間内の第1の平面における第1の点の位置を求め、前記第1の点を通り予め設定された延長方向に伸びる仮想線に沿って前記ポインタを配置することを特徴とする画像生成システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2012−252627(P2012−252627A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−126183(P2011−126183)
【出願日】平成23年6月6日(2011.6.6)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願日】平成23年6月6日(2011.6.6)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]