画像処理装置、画像処理装置の制御方法、及びプログラム
【課題】拡張現実が提供されているユーザの操作補助をすること。
【解決手段】表示制御手段(74)は、現実空間画像(62)と仮想空間画像(64)とに関する位置合わせ及び合成をして表示画面(60)に表示させる。移動制御手段(78)は、ユーザにより行われた方向指示操作に対応する基本方向に基づいて操作対象(52)を移動させる。判定手段(80)は、現実空間画像(62)が示す撮影範囲が変化したか否かを判定する。移動制御手段(78)は、現実空間画像(62)が示す撮影範囲が変化したと判定され、所定期間内に方向指示操作が行われた場合、現実空間画像(62)が示す撮影範囲の変化内容に基づいて方向指示操作と基本方向との対応付けを変更し、当該変更後の対応付けと所定期間内に行われた方向指示操作とに基づいて操作対象(52)を移動させる。
【解決手段】表示制御手段(74)は、現実空間画像(62)と仮想空間画像(64)とに関する位置合わせ及び合成をして表示画面(60)に表示させる。移動制御手段(78)は、ユーザにより行われた方向指示操作に対応する基本方向に基づいて操作対象(52)を移動させる。判定手段(80)は、現実空間画像(62)が示す撮影範囲が変化したか否かを判定する。移動制御手段(78)は、現実空間画像(62)が示す撮影範囲が変化したと判定され、所定期間内に方向指示操作が行われた場合、現実空間画像(62)が示す撮影範囲の変化内容に基づいて方向指示操作と基本方向との対応付けを変更し、当該変更後の対応付けと所定期間内に行われた方向指示操作とに基づいて操作対象(52)を移動させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、現実空間をカメラで撮影して得られる画像と、仮想空間を所与の視点から見た画像と、を重畳させて画面に表示させることによって、ユーザに拡張現実(AR:Augmented Reality)を提供する技術が知られている。
【0003】
例えば、特許文献1及び特許文献2には、現実空間に配置されたマーカをカメラで撮影することによって、仮想空間に配置されるオブジェクトの表示位置等を決定する技術が記載されている。このような技術においては、仮想空間に配置されたユーザの操作対象(例えば、車等)が現実空間内を移動するような気分を、ユーザが味わうことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−72903号公報
【特許文献2】特開2010−170316号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のような拡張現実の技術においては、ユーザがカメラを動かして現実空間の撮影範囲を変化させると、この変化に伴って仮想空間の視野も変化する。ユーザは、現実空間の撮影範囲を変化させつつ操作対象の操作を行う。ユーザがこれら2つの操作を同時に行うことは難しく、操作対象がユーザの意図しない方向に進んでしまう可能性がある。
【0006】
本発明は上記課題に鑑みてなされたものであって、その目的は、拡張現実が提供されているユーザの操作補助をすることが可能な画像処理装置、画像処理装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明に係る画像処理装置は、ユーザの操作により撮影範囲が変化する撮影手段と、前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段と、前記ユーザが前記操作対象の方向指示操作を行うための操作手段と、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段と、前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段と、を含み、前記移動制御手段は、前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、ことを特徴とする。
【0008】
本発明に係る画像処理装置の制御方法は、ユーザの操作により撮影範囲が変化する撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御ステップと、前記ユーザが前記操作対象の方向指示操作を行うための操作手段から前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御ステップと、前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定ステップと、を含み、前記移動制御ステップにおいては、前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、ことを特徴とする。
【0009】
本発明に係るプログラムは、ユーザの操作により撮影範囲が変化する撮影手段、前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段、前記ユーザが前記操作対象の方向指示操作を行うための操作手段、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段、前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段、を含み、前記移動制御手段は、前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、ことを特徴とする画像処理装置としてコンピュータを機能させる。
【0010】
また、本発明に係る情報記憶媒体は、上記プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0011】
本発明によれば、拡張現実が提供されているユーザの操作補助をすることが可能になる。
【0012】
また、本発明の一態様では、前記移動制御手段は、前記現実空間における前記現実空間画像が示す前記撮影範囲と、前記仮想空間における前記操作対象の位置と、の位置関係の変化が所定の条件を満たす場合、前記方向指示操作と前記基本方向との対応付けを変更する、ことを特徴とする。
【0013】
また、本発明の一態様では、前記移動制御手段は、前記方向指示操作と、前記仮想空間における前記視点の視点座標系とは異なる座標系で示される前記基本方向と、の対応付けを変更する、ことを特徴とする。
【0014】
また、本発明の一態様では、前記移動制御手段は、前記所定期間内に行われた前記方向指示操作に対応する前記基本方向に基づいて定まる前記操作対象の移動方向と、前記現実空間画像が示す前記撮影範囲の変化方向と、のずれを判定する手段と、前記ずれが基準範囲である場合、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる手段と、前記ずれが基準範囲でない場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる手段と、を含むことを特徴とする。
【図面の簡単な説明】
【0015】
【図1】本実施形態に係る携帯端末のハードウェア構成を示す図である。
【図2】ユーザが拡張現実を利用したゲームをプレイする様子を示す図である。
【図3】仮想空間の一例を示す図である。
【図4】表示部に表示されるゲーム画面の一例を示す図である。
【図5】方向指示操作に対応付けられた基本方向を説明するための図である。
【図6】携帯端末で実現される機能を示す機能ブロック図である。
【図7】マーカデータのデータ格納例を示す図である。
【図8】表示制御部による位置合わせの方法を説明するための図である。
【図9】撮影範囲の変化方向が取得される処理を説明するための図である。
【図10】変更された方向指示操作と基本方向との対応付けを説明するための図である。
【図11】方向指示操作と基本方向との対応付けが変更された場合に戦車の位置が制御される様子を示す図である。
【図12】携帯端末が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図13】携帯端末が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図14】ゲーム画面における戦車の表示位置を説明するための図である。
【図15】方向指示操作と基本方向との対応付けが変更されるための条件を示す図である。
【図16】実施形態3の処理を説明するための図である。
【図17】マーカレス方式の拡張現実を説明するための図である。
【発明を実施するための形態】
【0016】
[1.実施形態]
以下、本発明に係る実施形態について図面に基づき詳細に説明する。本発明に係る画像処理は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機等の携帯端末、又はパーソナルコンピュータを用いて実現される。ここでは、本発明の実施形態に係る画像処理装置を、携帯端末を用いて実現する場合について説明する。
【0017】
[1−1.携帯端末のハードウェア構成]
図1は、本実施形態に係る携帯端末10のハードウェア構成を示す図である。図1に示すように、携帯端末10は、制御部12、記憶部14、主記憶部16、表示部18、操作キー部20、タッチパネル22、CCDカメラ24、センサ部26、通信部28等を含み、例えば、各部はバス30を介して接続される。なお、携帯端末10のハードウェア構成は、図1の例に限られず、携帯端末10は、公知の携帯端末に含まれる各種ハードウェア(例えば、SDカードスロット等)を含んでいてもよい。
【0018】
制御部12は、記憶部14に記憶されるオペレーティングシステムや、外部接続される各種記憶媒体(例えば、SDカード等)に格納されるプログラムや通信部28を介して取得される各種データに基づいて携帯端末10の各部を制御する。
【0019】
記憶部14は、フラッシュメモリ等の不揮発性記憶媒体を含んで構成される。記憶部14には、オペレーティングシステム等が記憶される。主記憶部16は、例えば、RAMを含んで構成される。記憶部14に記憶されたプログラム等は、必要に応じて主記憶部16に書き込まれる。主記憶部16は、制御部12の作業用メモリとしても用いられる。
【0020】
表示部18は、一又は複数の公知の液晶表示パネルである。例えば、図示しないVRAMに描画された画像が表示部18に表示される。操作キー部20は、十字キーや各種ボタン等を含んで構成される。タッチパネル22は、表示部18に重畳するように配置され、外部からの接触位置を検出する。
【0021】
CCDカメラ24は、現実空間を撮影して画像を生成する。本実施形態においては、携帯端末10の筺体内にCCDカメラ24が含まれており、ユーザが、携帯端末10の位置や姿勢を変化させると、CCDカメラ24の撮影範囲が変化する場合を説明する。なお、携帯端末10とCCDカメラ24とが有線接続されている場合には、操作キー部20やタッチパネル22からのユーザの操作に基づいてCCDカメラ24の撮影範囲が変化するようにしてもよい。
【0022】
センサ部26は、GPSセンサ、ジャイロセンサ、電子コンパス(地磁気センサ)、加速度センサ等から構成される。通信部28は、ネットワークを介して外部装置とデータ送受信を行う。
【0023】
[1−2.ユーザに提供される拡張現実]
携帯端末10は、ユーザに拡張現実を提供する。本実施形態においては、CCDカメラ24が現実空間を撮影することによって生成される現実空間の画像(以降、現実空間画像という。)と、仮想空間を所与の視点から見た様子を示す画像(以降、仮想空間画像という。)と、が重畳されて表示部18に表示されることによって、ユーザに拡張現実が提供される。また、本実施形態においては、ユーザが、拡張現実を利用したゲームをプレイする場合を説明する。
【0024】
図2は、ユーザが拡張現実を利用したゲームをプレイする様子を示す図である。図2に示すように、例えば、CCDカメラ24は、所定の模様44が描かれたマーカ40(検出対象)を撮影する。マーカ40は、紙やフィルム等であり、例えば、CCDカメラ24の視野内の任意の位置に配置される。例えば、図2の場合、マーカ40は、現実空間の机の上に配置される。
【0025】
本実施形態においては、マーカ40が、所定の大きさの枠42(例えば、正方形の枠)を有し、当該枠42の中に所定の模様44(例えば、左右非対称の模様44)が描かれている場合を説明する。ここでは、図2に示すように、「L字型」の模様44がマーカ40に描かれている。
【0026】
マーカ40に描かれている模様44を示すデータは、予め記憶部14に記憶されている。携帯端末10は、現実空間画像に含まれる模様44と、記憶部14に記憶された模様44と、を公知の画像比較アルゴリズムに基づいて比較することによって、現実空間に配置されたマーカ40の種別、位置、大きさ、及び模様44の向きを特定する。
【0027】
この特定された情報(例えば、マーカ40の種別、位置、大きさ、及び模様44の向き)は、仮想空間に配置されたオブジェクトを、表示部18の画面において、どこにどのような大きさ又は向きで表示させるかを決定するために使用される。即ち、マーカ40の種別、位置、大きさ、及び模様44の向きを示す情報は、現実空間画像と仮想空間画像に関する位置合わせを行うために使用される。
【0028】
図3は、仮想空間の一例を示す図である。本実施形態においては、仮想空間の一例として、戦場を模したゲーム空間50(仮想3次元空間)が生成される場合を説明する。ゲームが開始されると、主記憶部16にゲーム空間50が生成される。ゲーム空間50には、互いに直交する3軸(後述する仮想空間座標系)が設定される。ゲーム空間50に配置される各オブジェクト及び後述する仮想カメラ58の位置は、仮想空間に設定される3次元座標に基づいて定まる。
【0029】
図3に示すように、ゲーム空間50には、例えば、ユーザの操作に供される戦車を示すオブジェクトである戦車52と、戦車52の攻撃目標となる砦を示すオブジェクトである砦54と、敵キャラクタを示すオブジェクトである敵56と、が配置される。戦車52は、ユーザの操作に基づいてゲーム空間50を移動する。
【0030】
また例えば、ユーザが所定の操作(例えば、タッチパネル22をタップする等)を行うと、戦車52は弾を発射する。戦車52から弾が発射されると弾を示すオブジェクト(図示せず)が生成され、当該オブジェクトと敵56とが衝突すると、砦54や敵56が消滅する。このように、ユーザは、戦車52を操作して砦54や敵56を撃破することを目指す。
【0031】
また、ゲーム空間50には、仮想カメラ58(視点)が設定される。仮想カメラ58からゲーム空間50を見た様子を示す仮想空間画像が、所定の時間間隔(例えば、CCDカメラ24のフレームレートに基づいて定まる間隔と同じ間隔)で生成される。例えば、ゲーム空間50に配置されるオブジェクトのうち、仮想カメラ58の視野(視錘台)内のオブジェクトを示す仮想空間画像が生成される。ユーザは、仮想空間画像と現実空間画像とが合成されたゲーム画面を見ながらゲームをプレイする。ゲーム空間50において戦車52や敵56が移動すると、ゲーム画面60においては、戦車52や敵56が、現実空間の机の上を移動するように表示制御される。
【0032】
図4は、表示部18に表示されるゲーム画面の一例を示す図である。図4に示すように、ゲーム画面60には、現実空間画像62と仮想空間画像64とが合成されて表示される。例えば、現実空間の机の上にマーカ40が配置されている場合、ゲーム画面60においては、現実空間の机の上に戦場が展開されるように、ゲーム空間50に配置された各オブジェクトのゲーム画面60における表示位置が決定される。即ち、現実空間画像62と仮想空間画像64とに関する位置合わせが行われる。
【0033】
例えば、現実空間画像62に表示される撮影範囲(領域)が移動すると、仮想空間画像64に表示される仮想空間の範囲(領域)も移動する。例えば、ユーザが携帯端末10の位置、向き、又は姿勢を変化させてCCDカメラ24の撮影範囲を変化させると、この変化に伴って仮想カメラ58の撮影範囲も変化する。
【0034】
本実施形態においては、CCDカメラ24の位置と視線方向は、仮想カメラ58の位置と視線方向に対応している。即ち、CCDカメラ24の位置が変化すると、この位置変化と同じように仮想カメラ58の位置も変化する。また、CCDカメラ24の視線方向が変化すると、この変化した方向と同じ方向に仮想カメラ58の視線方向も変化する。
【0035】
例えば、図4に示すゲーム画面60の場合、ユーザが戦車52の後方に敵56がいるか否かを確認するためには、例えば、ユーザは、携帯端末10の向きを左に回転させることによって、CCDカメラ24の視線方向を左に回転させる。ユーザがCCDカメラ24の視線方向を左に回転させると、仮想カメラ58の視線方向も左に回転する。
【0036】
また、図4に示すように、ゲーム画面60には、ユーザが戦車52の方向指示操作を行うための前進ボタン66a、後退ボタン66b、左回転ボタン66c、右回転ボタン66d(これらをまとめて単にボタン66ともいう。)が表示される。各ボタン66が押下されたか否かは、タッチパネル22からの検出信号に基づいて判定される。
【0037】
ボタン66には、それぞれ基本方向が対応付けられている。基本方向は、方向指示操作に予め対応付けられている方向である。戦車52は、方向指示操作に対応する基本方向に基づいて移動する。即ち、ボタン66に対応付けられた基本方向に基づいて、戦車52の移動方向が決定される。
【0038】
本実施形態においては、基本方向は、3次元のベクトルで表される場合を説明するが、基本方向は、2次元のベクトルで表されるようにしてもよい。また、ここでは、基本方向が、仮想カメラ58を基準にした座標系ではなく、戦車52を基準にした座標系(ローカル座標系。キャラクタ座標系ともいう。)で定義される場合を説明する。
【0039】
図5は、方向指示操作に対応付けられた基本方向を説明するための図である。図5に示すように、戦車52に基づいて設定されるローカル座標系(XLW−YLW−ZLW座標系)で表される方向が、基準方向として設定されている。ローカル座標系の原点OLWは、戦車52の位置に基づいて定められる。
【0040】
ユーザにより方向指示操作が行われた場合、ローカル座標系で表される基本方向が、公知の座標変換処理により、仮想空間座標系(ワールド座標系)のベクトルに変換されることによって、戦車52の移動方向が特定される。
【0041】
例えば、前進ボタン66aには、戦車52の正面方向が基準方向Va(例えば、ZLW軸の正方向)として対応付けられている。例えば、前進ボタン66aが押下された場合、戦車52は、戦車52から見た正面方向に移動する。例えば、後退ボタン66bには、戦車52の背面方向が基準方向Vb(例えば、ZLW軸の負方向)として対応付けられている。例えば、後退ボタン66bが押下された場合、戦車52は、戦車52から見た背面方向に移動する。
【0042】
例えば、左回転ボタン66cには、戦車52から見て左方向が基準方向Vc(例えば、XLW軸の負方向)として対応付けられている。例えば、左回転ボタン66cが押下された場合、戦車52は、戦車52から見て左回りに回転する。例えば、右回転ボタン66dには、戦車52から見て右方向が基準方向Vd(例えば、XLW軸の正方向)として対応付けられている。例えば、右回転ボタン66dが押下された場合、戦車52は、戦車52から見て右回りに回転する。
【0043】
例えば、ユーザは、戦車52を前後に移動させたい場合、前進ボタン66a又は後退ボタン66bを押下する。また例えば、ユーザは、戦車52を左右に移動させたい場合、左回転ボタン66c又は右回転ボタン66dを押下して戦車52を回転させた後に、前進ボタン66a又は後退ボタン66bを押下する。また例えば、ユーザは、戦車52を斜めに旋回させながら移動させたい場合、前進ボタン66a又は後退ボタン66b、及び、左回転ボタン66c又は右回転ボタン66dを押下して戦車を移動させる。
【0044】
このように、戦車52を基準としたローカル座標系で基本方向が定義される場合、戦車52と仮想カメラ58との位置関係が異なれば、ユーザが同じ方向指示操作を行っても、ゲーム画面60において戦車52の移動方向が異なる。したがって、ユーザは、戦車52の向きを考えながら方向指示操作を行わなければならず、戦車52を動かす方向を誤ってしまう可能性がある。例えば、戦車52が仮想カメラ58の視野の外に出てしまい、ゲーム画面60から戦車52が消えてしまう可能性がある。
【0045】
本実施形態の携帯端末10は、CCDカメラ24の撮影範囲が変化して現実空間画像62が広がり、かつ、ボタン66が押下された場合、方向指示操作と基本方向との対応付けを変更させることによって、戦車52を現実空間画像62が広がった方向に向けて移動させる。即ち、現実空間画像62が広がった方向を、ユーザが戦車52を動かしたい方向と考えることにより、ユーザの操作補助が行われる。
【0046】
ここで、ユーザの操作補助を行う方法として、センサ部26のジャイロセンサや加速度センサを用いて、例えば、携帯端末10が傾いた方向に戦車52を移動させることも考えられる。しかしながら、拡張現実を用いたゲームの性格上、仮想カメラ58が戦車52の移動に従動する訳ではないので、この方法では、やはり戦車52がゲーム画面60の表示領域から外れてしまう可能性がある。即ち、戦車52が仮想カメラ58の視野から外れてしまう。この場合、ユーザは、戦車52を視認することができなくなってしまうので、ゲームをプレイすることが困難になってしまう。
【0047】
そこで、本実施形態の携帯端末10は、現実空間画像62が広がった方向に戦車52を移動させることによって、ゲーム画面60から戦車52が外れてしまうことを防止しつつ、ユーザの操作補助が行われる。以下、上記技術について詳細に説明する。
【0048】
[1−3.ゲーム装置において実現される機能]
図6は、携帯端末10で実現される機能を示す機能ブロック図である。図6に示すように、携帯端末10は、拡張現実データ記憶部70、撮影部72、表示制御部74、操作部76、移動制御部78、判定部80を含む。これら各機能は、例えば、制御部12が記憶部14に記憶されたプログラムを実行することによって実現される。
【0049】
[1−3−1.拡張現実データ記憶部]
拡張現実データ記憶部70は、記憶部14及び主記憶部16を主として実現される。拡張現実データ記憶部70は、ユーザに拡張現実を提供するために必要なデータを記憶する。例えば、拡張現実データ記憶部70には、マーカ40に関するマーカデータが記憶される。
【0050】
図7は、マーカデータのデータ格納例を示す図である。図7に示すように、マーカデータには、例えば、マーカ40の模様44を示す画像データと、当該マーカ40に関連付けられた拡張現実に関するデータと、が対応付けられる。マーカデータに格納される画像データは、現実空間に配置されるマーカ40との比較対象として用いられる。即ち、マーカデータは、ユーザが拡張現実を利用するために必要なマーカ40を定義するデータである。
【0051】
拡張現実に関するデータとは、マーカデータに格納されたマーカ40が検出された場合にユーザに提供すべき拡張現実の種別を識別するため情報である。例えば、本実態形態のように「L字型」の模様44を有するマーカ40が検出された場合には、ユーザが戦車52を操作するゲームを用いた拡張現実が提供される。また例えば、別の模様44のマーカ40が検出された場合には、歌を歌いながら踊るキャラクタの立体映像がマーカ40の周囲に表示されることによって拡張現実が提供される。
【0052】
また、拡張現実データ記憶部70には、ゲーム空間50の現在の状況を示す仮想空間データが格納される。仮想空間データには、例えば、ゲーム空間50に配置される各オブジェクトの位置、姿勢、向き、及び移動方向に関する情報と、仮想カメラ58の視野に関する情報(例えば、位置及び視線方向)とが格納される。
【0053】
仮想空間データに格納される各オブジェクトの位置は、ユーザの操作や所定のアルゴリズムに基づいて内容が更新される。また、本実施形態においては、仮想空間データに格納される仮想カメラ58の位置や視線方向は、現実空間画像62におけるマーカ40の表示内容(例えば、表示位置、大きさ、及び向き)に基づいて決定される。
【0054】
なお、制御部12は、拡張現実データ記憶部70に記憶される各種データを取得する手段として機能する。また、制御部12は、拡張現実データ記憶部70に記憶される各種データを変更(更新)する手段として機能する。また、拡張現実データ記憶部70に記憶されるデータは、上記の例に限られず、他にも例えば、携帯端末10がゲームを実行するために必要なデータ(ユーザの得点を示すデータや戦車52の残り体力を示すデータ等)が記憶されていてもよい。
【0055】
[1−3−2.撮影部]
撮影部72は、制御部12及びCCDカメラ24を主として実現される。撮影部72は、ユーザの操作により撮影範囲が変化する。例えば、ユーザが撮影部72の位置、向き、及び姿勢を変化させることによって撮影範囲が変化する。撮影範囲は、例えば、撮影部72の位置及び視線方向に基づいて決定される。
【0056】
撮影部72は、例えば、検出対象(例えば、マーカ40)が配置された現実空間を撮影する。撮影部72により現実空間が撮影されることによって生成される現実空間画像を示す画像データは、例えば、拡張現実データ記憶部70に一時的に記憶される。
【0057】
[1−3−3.表示制御部]
表示制御部74は、制御部12を主として実現される。表示制御部74は、撮影部72が現実空間を撮影することによって生成される現実空間画像62と、撮影範囲に対応する視野が設定された視点(例えば、仮想カメラ58)からユーザの操作対象(例えば、戦車52)が配置された仮想空間(例えば、ゲーム空間50)を見た様子を示す仮想空間画像64と、に関する位置合わせ及び合成をして表示画面(例えば、ゲーム画面60)に表示させる。
【0058】
現実空間画像62と仮想空間画像64とに関する位置合わせとは、仮想空間に配置されたオブジェクトをゲーム画面60で表示させる場合の表示位置を決定するための処理である。別の言い方をすれば、現実空間画像62と仮想空間画像64とに関する位置合わせとは、ユーザに拡張現実を提供するために行われる現実空間と仮想空間との位置合わせ処理である。
【0059】
撮影範囲に対応する視野とは、撮影部72の撮影範囲に基づいて仮想カメラ58の視野がさだまることを示す。例えば、表示制御部74は、現実空間の座標系と撮影部72の座標系との関係と、仮想空間の座標系と仮想カメラ58の座標系の関係と、が対応するように仮想カメラ58の制御を行うことによって、現実空間画像62と仮想空間画像64とに関する位置合わせを行う。
【0060】
即ち、表示制御部74は、現実空間の基準位置(例えば、マーカ40の位置)と撮影部72の撮影範囲(視野)との位置関係と、仮想空間の基準位置(例えば、仮想空間座標系の原点の位置)と仮想カメラ58の視野との位置関係と、が対応するように仮想視点の制御を行うことによって、現実空間画像62と仮想空間画像64とに関する位置合わせを行う。ユーザが撮影部72の撮影範囲を変更させた場合、表示制御部74は、この変更に基づいて仮想カメラ58の視野を変更させる。
【0061】
本実施形態においては、表示制御部74は、現実空間画像62におけるマーカ40の位置、大きさ、及び向きに基づいて、現実空間画像62と仮想空間画像64との位置合わせを行う場合を説明する。
【0062】
図8は、表示制御部74による位置合わせの方法を説明するための図である。図8に示すように、例えば、現実空間においては、マーカ40の位置、大きさ、及び向きに基づいて現実空間座標系(XRW−YRW−ZRW座標系)が設定され、撮影部72の位置、向き、及び姿勢(即ち、CCDカメラ24の位置、向き、及び姿勢)に基づいて現実視点座標系(XRC−YRC−ZRC座標系)が設定される。
【0063】
現実空間座標系は、現実空間に配置される物体の位置を表すための座標系であり、マーカ40が基準となる座標系である。一方、現実視点座標系は、撮影部72の視点と現実空間に配置される物体との関係を表すための座標系であり、撮影部72が基準となる座標系である。
【0064】
例えば、現実空間座標系の原点ORWは、マーカ40の中心点に設定される。そして、XRW軸方向が「L字型」の模様44の短手方向に対応し、YRW軸方向が「L字型」の模様の長手方向に対応する。ZRW軸方向は、XRW軸方向とYRW軸方向の外積方向となる。
【0065】
また例えば、現実視点座標系の原点ORCは、撮影部72の視点の位置に設定される。そして、例えば、XRC軸方向が現実空間画像62の長手方向(即ち、撮影部72から見て水平方向)に対応し、YRC軸方向が現実空間画像62の短手方向(即ち、撮影部72から見て垂直方向)に対応する。また例えば、ZRC軸方向が、撮影部72の視線方向に設定される。
【0066】
現実空間座標系(XRW−YRW−ZRW座標系)は、回転及び平行移動することによって、現実視点座標系(XRC−YRC−ZRC座標系)に変換可能である。表示制御部74は、現実空間画像62におけるマーカ40の表示内容(位置、大きさ、及び向き)に基づいて、現実空間座標系から現実視点座標系へ変換を行う場合の座標変換行例を算出する。
【0067】
具体的には、まず、表示制御部74は、公知の輪郭抽出処理に基づいて、現実空間画像62のマーカ40の枠42を抽出する。マーカ40の枠42が抽出される際には、現実空間画像62における枠42の四隅の位置が特定されることによって、現実空間画像62に表れるマーカ40の位置が特定される。
【0068】
そして、表示制御部74は、抽出された枠42内に描かれた模様44と、マーカデータに格納された模様44の画像データと、が比較するためのパターンマッチング処理を行うことによって、マーカ40の種別、現実空間画像62に表れるマーカ40の大きさ、及び模様44の向きを特定する。
【0069】
そして、現実空間画像62におけるマーカ40の位置と、現実空間画像62におけるマーカ40の大きさとマーカデータに格納されたマーカ40の大きさとのずれと、現実空間画像62におけるマーカ40の模様44の向きとマーカデータに格納されたマーカ40の模様44の向きとのずれと、に基づいて、現実空間座標系から現実視点座標系へ変換する場合の回転成分と平行移動成分とが算出されることによって、座標変換行列が取得される。
【0070】
この座標変換行列に基づいて、仮想空間座標系(XVW−YVW−ZVW座標系)を変換することによって、仮想視点座標系(XVC−YVC−ZVC座標系)が設定される。仮想空間座標系は、ゲーム空間50に配置される各オブジェクトの位置を表すための座標系である。仮想視点座標系は、仮想カメラ58と各オブジェクトとの位置関係を表すための座標系である。例えば、仮想カメラ58の位置が、仮想視点座標系の原点OVCとなり、仮想カメラ58の視線方向が、仮想視点座標系のZvc軸方向となる。
【0071】
仮想空間座標系を、座標変換行列が示すように回転及び平行移動させると、仮想視点座標系が定まる。つまり、撮影部72の視点の位置(例えば、原点ORC)とマーカ40の位置(例えば、原点ORW)との位置関係と、仮想カメラ58の位置(例えば、原点OVC)と仮想空間座標系の原点Ovwとの位置関係と、が同じ位置関係になるように、仮想カメラ58の位置及び視線方向が決定される。
【0072】
上記のように、位置及び視線方向が決定された仮想カメラ58からゲーム空間50を見た様子を示す仮想空間画像64と、現実空間画像62と、が重畳されることによって、ゲーム画面60における戦車52の表示位置が決定される。
【0073】
なお、マーカ40を用いて拡張現実における仮想空間の物体の表示位置を決定する方法は、上記の例に限られず、公知の種々の手法を適用可能である。他にも例えば、現実空間の垂直方向に配置されたマーカ40(例えば、壁や窓に張り付けられたマーカ40)に基づいて仮想空間の物体の表示位置が決定されるようにしてもよいし、複数のマーカ40を同時に検出することによって、仮想空間の物体の表示位置が決定されるようにしてもよい。
【0074】
[1−3−4.操作部]
操作部76は、制御部12及びタッチパネル22を主として実現される。操作部76は、ユーザが操作対象(例えば、戦車52)の方向指示操作を行うためのものである。例えば、操作部76の検出信号に基づいてユーザの方向指示操作が検出される。
【0075】
例えば、操作部76は、タッチパネル22から検出された信号に基づいて、ユーザによる方向指示操作が検出される。本実施形態においては、ユーザが複数のボタン66の何れかを押下することによって、複数の方向指示操作を行う場合を説明する。これら複数の方向指示操作の各々には、基本方向が対応付けられている。
【0076】
例えば、ゲーム制作者等によって、どの方向指示操作がどの基本方向に対応しているか、が予め定められている。本実施形態における基本方向は、操作対象の移動方向を特定するための方向であり、仮想視点座標系とは異なる座標系(例えば、ローカル座標系)で表される。即ち、仮想カメラ58の位置と視線方向が異なった場合、仮想カメラ58から見た基本方向の向きが異なるような座標系で基本方向が定義される。
【0077】
なお、本実施形態においては、タッチパネル22からの操作によって方向指示操作が行われる場合を説明するが、他にも例えば、操作キー部20からの入力信号に基づいて方向指示操作が行われるようにしてもよい。この場合、操作部76は、操作キー部20により実現される。例えば、操作キー部20の複数のボタンと複数の基本方向とが対応付けられる。
【0078】
[1−3−5.移動制御部]
移動制御部78は、制御部12を主として実現される。移動制御部78は、ユーザにより行われた方向指示操作に対応する基本方向に基づいて操作対象(例えば、戦車52)を移動させる。例えば、移動制御部78は、方向指示操作に対応する基本方向に基づいて戦車52を移動させる。本実施形態においては、戦車52が、ゲーム空間50の所定平面上(例えば、XVW−YVW平面上)を移動する場合を説明する。
【0079】
例えば、本実施形態のように、基本方向が戦車52を基準としたローカル座標系で定義される場合、ローカル座標系と仮想空間座標系とを変換するための座標変換行列が、仮想空間データに格納された戦車52の位置、向き、及び姿勢に基づいて適宜算出される。この座標変換行列に基づいて基本方向がローカル座標系から仮想空間座標系に変換されることによって、仮想空間座標系における戦車52の移動方向が特定される。なお、ローカル座標系と仮想空間座標系とを変換する方法は、公知の種々の座標変換処理を適用可能である。
【0080】
[1−3−6.判定部]
判定部80は、制御部12を主として実現される。判定部80は、現実空間画像62が示す撮影範囲が変化したか否かを判定する。現実空間画像62が示す撮影範囲が変化したか否かは、例えば、現実空間画像62の時系列的な変化に基づいて判定される。例えば、現実空間画像62は、時系列的に拡張現実データ記憶部70に記憶されており、一の現実空間画像62と、当該現実空間画像62よりも前に撮影された現実空間画像62と、が比較(パターンマッチング)されることによって、現実空間画像62が示す撮影範囲が変化したか否かが判定される。
【0081】
また、本実施形態においては、例えば、所定期間(例えば、1秒間)において、現実空間画像62が広がった領域(即ち、現実空間画像62に新たに表れる現実空間の領域)が所定面積(所定画素数)以上であるか否かが判定されることによって、現実空間画像62が示す撮影範囲が変化したか否かが判定される場合を説明する。即ち、所定期間において、現実空間画像62に新たに表れた現実空間の領域が所定面積以上であるか否かが判定される。
【0082】
なお、現実空間画像62が示す撮影範囲が変化したか否かを判定する方法は、上記の例に限られず、種々の画像変化検出手法に基づいて、現実空間画像62が示す撮影範囲が変化したか否かが判定されるようにしてもよい。例えば、現実空間画像62に含まれる対象物を追跡することによって、現実空間画像62が示す撮影範囲が変化したか否かが判定されるようにしてもよい。即ち例えば、現実空間画像62のマーカ40の表示位置が所定距離以上変化したか否かに基づいて、現実空間画像62が示す撮影範囲が変化したか否かが判定されるようにしてもよい。
【0083】
携帯端末10においては、上記のように行われる判定部80の判定結果に基づいて、図5を参照して説明した方向指示操作と基本方向との対応付けが変更される構成になっている。
【0084】
具体的には、移動制御部78は、現実空間画像62が示す撮影範囲が変化したと判定され、所定期間内に方向指示操作が行われた場合、現実空間画像62が示す撮影範囲の変化内容に基づいて方向指示操作と基本方向との対応付けを変更し、当該変更後の対応付けと所定期間内に行われた方向指示操作とに基づいて操作対象(例えば、戦車52)を移動させる。
【0085】
所定期間とは、現時点の所定間隔前から現時点までの間の期間であり、例えば、現実空間画像62が示す撮影範囲が変化したと判定されてから現時点までの期間である。
【0086】
現実空間画像62が示す撮影範囲の変化内容とは、現実空間画像62により示される撮影部72の撮影範囲の変わり方であり、例えば、撮影範囲の変化方向又は撮影範囲の変化量である。ここでは、撮影範囲の変化方向に基づいて、方向指示操作と基本方向との対応付けが変更される場合を説明する。
【0087】
撮影範囲の変化方向とは、例えば、現実空間画像62として表れる撮影範囲(即ち、ゲーム画面60に表示される領域)が広がった方向である。別の言い方をすれば、撮影範囲の変化方向とは、CCDカメラ24の撮影範囲が移動した方向であり、CCDカメラ24の位置又は視線方向が変化した方向と同意であり、仮想カメラ58の視野(位置又は視線方向)が変化した方向とも言える。
【0088】
撮影範囲の変化方向は、ゲーム画面60上に設定される2次元のベクトル(スクリーン座標系のベクトル)で表現されてもよいし、現実空間座標系又は仮想空間座標系の3次元のベクトルで表現されてもよい。ここでは、現実空間画像62が示す撮影範囲の変化方向が、現実空間座標系の3次元のベクトルで表現される場合を説明する。
【0089】
現実空間画像62が示す撮影範囲の変化方向は、現実空間画像62の時系列的な変化に基づいて取得される。例えば、ユーザが撮影部72の撮影範囲をユーザから見て左方向に変化させた場合、現実空間画像62の左端部に対応する領域に新たに現実空間が表示されるので、この場合は、現実空間画像62が示す撮影範囲の変化方向は左方向(例えば、XRW軸方向)となる。
【0090】
図9は、撮影範囲の変化方向が取得される処理を説明するための図である。図9に示すように、現実空間画像62が示す撮影範囲の変化方向VRCは、現実空間画像62が示す撮影範囲の変化後の撮影部72の視線方向(即ち、実線で示すZRC軸方向)と変化前の撮影部72の視線方向(即ち、破線で示すZRC軸方向)とのベクトル差を示す方向となる。
【0091】
例えば、上記のように特定される撮影範囲の変化方向に基づいて、方向指示操作と基本方向との対応付けが変更される。例えば、方向指示操作と、現実空間画像62が示す撮影範囲の変化方向に基づいて定まる方向と、が対応付けられるように変更される。撮影範囲の変化方向に基づいて定まる方向とは、ゲーム画面60において、戦車52の表示位置が現実空間画像62が広がった方向に移動するための方向である。例えば、ユーザが右回転ボタン66dを押下した場合であっても、戦車52が左回転するように、方向指示操作と基本方向との対応付けが変更される。
【0092】
図10は、変更された方向指示操作と基本方向との対応付けを説明するための図である。図10に示すように、現実空間画像62が示す撮影範囲が変化する前の対応付けと、変化後の対応付けが変更される。例えば、図10のように、ユーザがボタン66のどれを押下しても撮影範囲の変化方向に戦車52が移動するように、方向指示操作と基本方向との対応付けが変更される。撮影範囲の変化方向は、例えば、現実空間座標系の3次元ベクトルで表されるので、このベクトル値が座標変換されることによって、図10に示す対応付けの「変化方向」のベクトルが特定される。
【0093】
図11は、方向指示操作と基本方向との対応付けが変更された場合に戦車52の位置が制御される様子を示す図である。図11に示すように、ユーザから見て左方向(例えば、XRW軸方向)に現実空間画像62が広がり(広がった領域を62aとして斜線で示す。)、左方向(例えば、XVW軸正方向)又は右方向(例えば、XVW軸負方向)を示す方向指示操作が入力された場合、戦車52が、例えば、現実空間画像62が広がった左方向に移動する。このように戦車52を移動させることによって、現実空間画像62が広がった方向に戦車52を動かすことができる。
【0094】
[1−4.携帯端末において実行される処理]
次に、携帯端末10が実行する処理について説明する。図12及び図13は、携帯端末10が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。制御部12は、例えば、記憶部14に記憶されるプログラムに従って、図12及び図13に示す処理を実行する。例えば、ゲームの開始指示が操作キー部20から入力された場合、図12及び図13に示す処理が実行される。
【0095】
図12に示すように、まず、制御部12は、CCDカメラ24を起動して、現実空間画像62を表示部18に表示させる(S1)。次いで、制御部12は、主記憶部16にゲーム空間50を生成する(S2)。S2においては、例えば、ゲーム空間50内の各オブジェクトは予め定められた初期位置に配置される。また、S2の段階では、仮想カメラ58はゲーム空間50に配置されないようにしてもよい。
【0096】
制御部12は、現実空間画像62にマーカ40が含まれるか否かを判定する(S3)。S3においては、例えば、CCDカメラ24より適宜得られる現実空間画像62が参照され、マーカ40の枠42が抽出されるか否かによって、マーカ40が含まれるか否かが判定される。
【0097】
マーカ40が含まれると判定された場合(S3;Y)、制御部12は、マーカ40の枠42内に描かれた模様44と、マーカデータに格納された模様44と、を比較することによって、所定のマーカ40(マーカデータに格納されたマーカ40)が検出されたか否かを判定する(S4)。本実施形態においては、「L字型」のマーカ40が検出されたか否かが判定される。
【0098】
所定のマーカ40が検出されたと判定された場合(S4;Y)、制御部12は、現実空間画像62におけるマーカ40の表示位置を取得する(S5)。S5においては、例えば、マーカ40の枠42の四隅の表示位置が特定される。
【0099】
制御部12は、現実空間画像62におけるマーカ40の大きさと向きを取得する(S6)。S6においては、例えば、S5において特定されたマーカ40の枠42の四隅の位置関係と、マーカデータに格納されたマーカ40の四隅の位置関係と、が比較されることによって、マーカ40の大きさに関する情報が取得される。また例えば、現実空間画像62におけるマーカ40の模様44と、マーカデータに格納された模様44と、のずれに基づいて、マーカ40の向きに関する情報が取得される。
【0100】
制御部12は、現実空間画像62におけるマーカ40の位置、大きさ、及び向きに基づいて仮想カメラ58の位置及び視線方向を決定する(S7)。例えば、マーカ40の位置、大きさ、及び向きに基づいて現実空間座標系から現実視点座標系への座標変換行列が算出される。そして、仮想空間座標系に当該座標変換行列を適用することによって、仮想視点座標系の原点OVCの位置及び3軸の向きが決定される。例えば、仮想視点座標系の原点OVCが仮想カメラ58の位置として決定され、ZVC軸方向が仮想カメラ58の視線方向に決定される。
【0101】
制御部12は、CCDカメラ24により生成される現実空間画像62と、S7において位置及び視線方向が決定された仮想カメラ58からゲーム空間50を見た様子を示す仮想空間画像64と、を合成してゲーム画面60に表示させる(S8)。S7において仮想カメラ58の位置及び視線方向が決定されることによって、現実空間画像62と仮想空間画像64との位置合わせが行われ、ゲーム画面60における戦車52の表示位置が決定されることになる。
【0102】
一方、マーカ40が含まれると判定されない場合(S3;N)、所定のマーカ40が検出されたと判定されない場合(S4;N)、制御部12は、仮想空間画像64をゲーム画面60から消去し、「マーカが検出できません」等の所定のメッセージを表示部18に表示させる(S9)。この場合、ユーザは、CCDカメラ24の視野内にマーカ40が含まれ、かつ、当該マーカ40が検出可能な位置に表示されるように、携帯端末10の位置や向きを変える。
【0103】
図13に示すように、制御部12は、現実空間画像62が示す撮影範囲が変化したか否かを判定する(S10)。例えば、直近に生成された現実空間画像62と、当該現実空間画像62の所定期間前に生成された現実空間画像62と、がパターンマッチングされることによって、S10の処理が実行される。また例えば、所定期間における現実空間画像62のマーカ40の表示位置の変化が所定距離以上であるか否かが判定されるようにしてもよい。
【0104】
現実空間画像62が示す撮影範囲が変化したと判定されない場合(S10;N)、制御部12は、戦車52の方向指示操作が入力されたか否かを判定する(S11)。方向指示操作が入力されたと判定された場合(S11;Y)、制御部12は、当該入力された方向指示操作に対応する基本方向に基づいて戦車52を移動させる(S12)。即ち、ユーザにより入力された方向指示操作に対応する基本方向が仮想空間座標系のベクトルに変換され、この変換された方向に戦車52が移動するように、ゲーム空間50の状況が更新される。
【0105】
一方、現実空間画像62が示す撮影範囲が変化したと判定された場合(S10;Y)、制御部12は、所定期間内に戦車52の方向指示操作が入力されたか否かを判定する(S13)。所定期間内に方向指示操作が入力されたと判定された場合(S13;Y)、制御部12は、方向指示操作と基本方向との対応付けを変更する(S14)。
【0106】
S14においては、例えば、複数の方向指示操作の全てが、仮想空間座標系で表される撮影範囲の変化方向をローカル座標系に変換した方向に対応付けられるように、方向指示操作と基本方向との対応付けが変更される。S14において変更された対応付けは、例えば、主記憶部16に一時的に記憶される。
【0107】
制御部12は、S14で変更された対応付けに基づいて戦車52を移動させる(S15)。S15においては、現実空間画像62が示す撮影範囲の変化方向に戦車52が移動するように、戦車52の位置が制御される。例えば、仮想カメラ58の視野が変化した方向に戦車52が移動する。
【0108】
制御部12は、S14において戦車52を移動させると、S13で変更した対応付けを元に戻す(S16)。制御部12は、終了条件を満たすか否かを判定する(S17)。終了条件は、本処理を終了するための予め定められた条件である。例えば、終了条件は、ゲームオーバーの条件や、ゲームの終了指示が入力されたか否か等である。
【0109】
終了条件を満たすと判定された場合(S17;Y)、処理は終了する。終了条件を満たすと判定されない場合(S17;N)、処理はS3に戻る。
【0110】
以上説明した携帯端末10によれば、現実空間画像62が示す撮影範囲が変化し、所定期間内に方向指示操作が行われた場合、方向指示操作と基本方向との対応付けが変更されることによって、現実空間画像62が広がった方向に戦車52を移動させることができる。即ち、戦車52がゲーム画面60から外れることを防止し、ユーザの操作補助をすることができる。
【0111】
例えば、ジャイロセンサや加速度センサの検出信号に基づいて携帯端末10が傾いた方向に戦車52を移動させるような場合は、仮想カメラ58の視野から戦車52が外れてしまうので、戦車52が見えなくなってしまう可能性がある。しかし、実施形態の携帯端末10は、現実空間画像62が広がった方向に戦車52を移動させるので、ゲーム画面60の表示領域から戦車52がはみ出てしまうような誤操作をユーザが行った場合であっても、広がったスペースへ戦車52を移動させ、ゲーム画面60内におさまるように移動制御を行うことができ、ユーザの操作補助を効果的に行うことができる。
【0112】
[2.実施形態2]
次に、本発明に係る携帯端末10の別の実施形態について説明する。実施形態1においては、現実空間画像62が示す撮影範囲の変化方向に基づいて方向指示操作と基本方向との対応付けが変更される場合を説明した。実施形態2においては、戦車52の表示位置に基づいて対応付けを変更する必要があるか否かを判定する。つまり、方向指示操作と基本方向との対応付けを変更する必要が低い状況においては、対応付けを変更せずに、元の対応付けのままユーザに方向指示操作を行わせる。
【0113】
実施形態2の携帯端末10のハードウェア構成及び機能ブロックは、実施形態1と同様である。
【0114】
実施形態2の移動制御部78は、現実空間における現実空間画像62が示す撮影範囲と、仮想空間における操作対象(例えば、戦車52)の位置と、の位置関係の変化が所定の条件を満たす場合、方向指示操作と基本方向との対応付けを変更する。所定の条件とは、現実空間画像62が示す撮影範囲と戦車52の位置との位置関係の変化に関する条件である。
【0115】
携帯端末10においては、CCDカメラ22の撮影範囲と仮想カメラ58の視点とは対応しているので、現実空間画像62が示す撮影範囲と戦車52の位置との位置関係は、ゲーム画面60における戦車52の表示位置を示すものであり、例えば、ゲーム画面60の中心点と戦車52の表示位置との位置関係と同意である。
【0116】
例えば、ゲーム画面60における戦車52の表示位置の変化が所定の条件を満たすか否かに応じて、方向指示操作と基本方向との対応付けが変更されるか否かが決定される。
【0117】
図14は、ゲーム画面60における戦車52の表示位置を説明するための図である。例えば、ゲーム画面60の表示領域が複数に分割された各領域(中央領域60a、左端部領域60b、上端部領域60c、右端部領域60d、下端部領域60e)の何れに戦車52が表示されているか、によって方向指示操作と基本方向との対応付けが変更される。
【0118】
これら戦車52の表示位置が、これら5つの領域をどのようにまたがって変化したか否かによって、方向指示操作と基本方向との対応付けが変更されるか否かが決定される。なお、図14に示すXS軸とYS軸は、スクリーン座標系の座標軸である。上記の各領域は、スクリーン座標系により定義される。
【0119】
図15は、方向指示操作と基本方向との対応付けが変更されるための条件を示す図である。図15に示すように、例えば、現実空間画像62が変化する前後で、ゲーム画面60において戦車52が表示されている領域の変化が満たす条件に応じて、方向指示操作と基本方向との対応付けが変更されるか否かが決定される。
【0120】
例えば、現実空間画像62が変化することによって、中央領域60aから左端部領域60b〜下端部領域60eの何れかに戦車52の表示位置が移動した場合、戦車52がゲーム画面60から外れてしまいそうになるので、方向指示操作と基本方向との対応付けが変更されることによって、ユーザの操作補助が行われる。
【0121】
また例えば、現実空間画像62が変化したが、中央領域60a内に戦車52の表示位置が留まっている場合、戦車52がゲーム画面60から外れる可能性は少ないので、方向指示操作と基本方向との対応付けは変更されない。
【0122】
また例えば、現実空間画像62が変化することによって、左端部領域60b〜下端部領域60eの何れかから中央領域60aに戦車52の表示位置が移動した場合、戦車52がゲーム画面60から外れる可能性は少ないので、方向指示操作と基本方向との対応付けは変更されない。
【0123】
また例えば、現実空間画像62が変化したが、左端部領域60b〜下端部領域60eの何れかの内部に戦車52の表示位置が留まっている場合、撮影範囲がそれほど変化していないため現実空間画像62戦車52がゲーム画面60から外れる可能性は少ないので、方向指示操作と基本方向との対応付けは変更されない。
【0124】
また例えば、現実空間画像62が変化することによって、左端部領域60b〜下端部領域60eの何れかから他の左端部領域60b〜下端部領域60eに戦車52の表示位置が移動した場合、撮影範囲が大きく移動して戦車52がゲーム画面60から外れてしまいそうになるので、方向指示操作と基本方向との対応付けが変更されることによって、ユーザの操作補助が行われる。
【0125】
実施形態2においては、図12及び図13と同様の処理が実行されるが、S14の処理が実行されるにあたり、現実空間における現実空間画像62が示す撮影範囲と、仮想空間における戦車52の位置と、の位置関係の変化が所定の条件を満たすか否かが判定される。
【0126】
例えば、対応付けを変更しないとされている条件を満たしている場合は、S14〜S16の処理に代えてS12の処理が実行され、方向指示操作と基本方向との対応付けが変更されることなく、戦車52の位置が制御される。一方、例えば、対応付けを変更するとされている条件を満たしている場合は、S14〜S16の処理が実行される。
【0127】
実施形態2の携帯端末10によれば、戦車52の表示位置の変化が満たす条件に基づいて方向指示操作と基本方向との対応付けを変更するか否かが決定される。したがって、例えば、戦車52がゲーム画面60からはみ出る可能性が低い状況やユーザが誤入力をする可能性が低い状況においては、対応付けを変更するとかえってユーザが戸惑ってしまう場合があるので、このような状況においては対応付けを変更しないようにすることができる。
【0128】
[3.実施形態3]
次に、本発明に係る携帯端末10の別の実施形態について説明する。実施形態1及び実施形態2においては、全ての方向指示操作に対応付けられた基本方向が同じ方向に変更される場合を説明した。即ち、ユーザがボタン66のどれを押下した場合であっても、現実空間画像62が広がった方向に戦車52が移動する場合を説明した。基本方向との対応付けが変更されるのは全ての方向指示操作ではなく一部の方向指示操作のみであってもよい。
【0129】
実施形態3の携帯端末10のハードウェア構成及び機能ブロックは、実施形態1と同様である。
【0130】
実施形態3の移動制御部78は、所定期間内に行われた方向指示操作に対応する基本方向に基づいて定まる操作対象(例えば、戦車52)の移動方向と、現実空間画像62が示す撮影範囲の変化方向と、のずれを判定する。例えば、所定期間内に行われた方向指示操作に対応付けられた基本方向が、仮想空間座標系のベクトル方向に変換され、戦車52の移動方向が特定される。なお、この移動方向に戦車52が移動するとは限らず、ここで特定される移動方向は、戦車52が移動しようとしている方向といえる。
【0131】
戦車52の移動方向と、現実空間画像62が示す撮影範囲の変化方向(即ち、仮想カメラ58の視野の変化方向と同意。)と、が比較される。ここでは、両者の方向のずれとして、2つのベクトルの余弦(cosθ)が算出される。この余弦に応じて、方向指示操作と基本方向との対応付けを変更させるか否かが決定される。
【0132】
図16は、実施形態3の処理を説明するための図である。図16は、現実空間画像62が左方向に広がり、方向指示操作としてボタン66aが押下された場合を示す。変更前の対応付けに基づいて定まる戦車52の移動方向VLW(即ち、戦車52の正面方向)と、撮影範囲の変化方向VRCと、の両者のベクトルの余弦が比較的小さい場合は、両者のベクトルが互いに反対方向を向いていることを示している。
【0133】
即ち、ユーザが、現実空間画像62が狭まった方向に戦車52を移動させようとしており、ユーザが誤入力をしている可能性があるため、この場合は、方向指示操作と基本方向との対応付けが変更される。
【0134】
一方、変更前の対応付けに基づいて定まる戦車52の移動方向と、撮影範囲の変化方向と、の両者のベクトルの余弦が比較的大きい場合は、両者のベクトルが互いに同じ方向を向いていることを示している。即ち、ユーザが、現実空間画像62が広がった方向に戦車52を移動させようとしているので、方向指示操作と基本方向との対応付けが変更されない。
【0135】
実施形態3の移動制御部78は、ずれが基準範囲である場合、ユーザにより行われた方向指示操作に対応する基本方向に基づいて操作対象(例えば、戦車52)を移動させる。例えば、余弦が基準範囲である場合(例えば、cosθ>−0.5)、方向指示操作と基本方向との対応付けの変更処理が制限され、元の対応付けのまま戦車52を移動させる。この場合、現実空間画像62が狭くなった方向に戦車52を移動させようとしている訳ではないので、対応付けを変更する必要性が低いため、上記のように、対応付けが変更されない。
【0136】
また、実施形態3の移動制御部78は、ずれが基準範囲でない場合、現実空間画像62が示す撮影範囲の変化内容に基づいて方向指示操作と基本方向との対応付けを変更し、当該変更後の対応付けと所定期間内に行われた方向指示操作とに基づいて操作対象(例えば、戦車52)を移動させる。例えば、余弦が基準範囲でない場合(例えば、cosθ≦−0.5)、方向指示操作と基本方向との対応付けの変更処理が行われる。この場合、現実空間画像62が狭くなった方向に戦車52を移動させようとしているため、対応付けを変更して現実空間画像62が広がった方向に戦車52を移動させる。
【0137】
実施形態3においては、図12及び図13と同様の処理が実行されるが、S14の処理が実行されるにあたり、所定期間内に行われた方向指示操作に対応する基本方向に基づいて定まる戦車52の移動方向と、現実空間画像62が示す撮影範囲の変化方向と、のずれが判定される。ずれが所定範囲であれば、処理はS12に移行する。ずれが所定範囲でなければ、処理はS14に移行する。
【0138】
実施形態3の携帯端末10によれば、所定期間内に行われた方向指示操作に対応する基本方向に基づいて定まる戦車52の移動方向と、現実空間画像62が示す撮影範囲の変化方向と、のずれに応じて、方向指示操作と基本方向との対応付けを変更するか否かが決定される。例えば、過度に操作補助が行われるとかえってユーザが戸惑ってしまう場合があるので、現実空間画像62が狭まった方向に戦車52を移動させようとしている場合以外には、対応付けを変更しないようにすることによって、ユーザに戸惑わせることなく適度な操作補助を提供することができる。
【0139】
[4.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0140】
(1)例えば、上記実施形態においては、現実空間画像62が示す撮影範囲の変化方向が、現実空間座標系の3次元のベクトルで表される場合を説明したが、この変化方向は、ゲーム画面60上に設定される2次元のベクトル(スクリーン座標系のベクトル)で表されてもよい。この場合、例えば、現実空間画像62が広がった画素が配置されている方向が、撮影範囲の変化方向として取得される。
【0141】
この場合、撮影範囲の変化方向を示す2次元のベクトルを、S7で算出した座標変換行列で逆変換を行うことによって、ゲーム空間50において戦車52を移動させるべき方向(仮想空間座標系における3次元ベクトル)が特定される。この方向に戦車52が移動するように、方向指示操作と基本方向との対応付けが変更されるようにすればよい。
【0142】
(2)また例えば、方向指示操作に対応する基本方向が、戦車52を基準とするキャラクタ座標系で表現される場合を説明したが、基本方向は、仮想空間座標系で表現されるようにしてもよい。基本方向は、仮想視点座標系と異なる座標系で定義されるようにすればよい。なお、基本方向を仮想視点座標系で表現するようにしてもよい。
【0143】
(3)また例えば、実施形態においては、水平面上を戦車52が移動する場合を説明したが、ユーザの操作対象が移動する範囲は、実施形態の例に限られない。例えば、操作対象は、ボールや鳥のようなものであってもよく、ユーザの操作によって仮想3次元空間を垂直方向に移動するようにしてもよい。
【0144】
(4)また例えば、方向指示操作と基本方向とを4つとして説明したが、方向指示操作と基本方向との数はこれに限られない。例えば、ユーザが8つの方向指示操作を入力できるようにしてもよい。
【0145】
(5)また例えば、実施形態においては、現実空間画像62の変化方向に基づいて対応付けが変更される場合を説明したが、現実空間画像62の変化量に基づいて対応付けが変更されるようにしてもよい。例えば、現実空間画像62の変化量が所定範囲であるか否かに基づいて、方向指示操作に対応付けられる方向が異なるようにしてもよい。
【0146】
(6)また例えば、実行中のゲームの状況に応じて、方向指示操作に対応付けられる基本方向が異なるようにしてもよい。例えば、戦車52の残り体力が多い場合は、現実空間画像62が示す撮影範囲の変化方向にいる敵56を移動方向としてもよいし、戦車の残り体力が少ない場合は、現実空間画像62が示す撮影範囲の変化方向にある空きスペースの方向を移動方向とし、戦車52を退避させるようにしてもよい。
【0147】
(7)また例えば、戦車52の移動速度、移動ルート、戦車52の向き、又は戦車52の姿勢が、現実空間画像62が示す撮影範囲の変化方向に基づいて決定されるようにしてもよい。
【0148】
例えば、戦車52の移動速度が、戦車52の現在位置とゲーム空間50に配置されたオブジェクトの位置との位置関係と、現実空間画像62が示す撮影範囲の変化方向と、に基づいて決定される。例えば、戦車52の現在位置と、現実空間画像62が示す撮影範囲の変化方向にいる敵56の位置とが離れているほど、戦車52の移動速度が速くなる。また例えば、現実空間画像62が示す撮影範囲の変化量が大きいほど、戦車52の移動速度が速くなるようにしてもよい。
【0149】
また例えば、戦車52の移動ルートが、戦車52の現在位置とゲーム空間50に配置されたオブジェクトの位置との位置関係と、現実空間画像62が示す撮影範囲の変化方向と、に基づいて決定される。例えば、戦車52が、現実空間画像62が示す撮影範囲の変化方向にいる敵56と衝突しないように、移動ルートが決定される。
【0150】
また例えば、戦車52の向き又は姿勢が、戦車52の現在位置とゲーム空間50に配置されたオブジェクトの位置との位置関係と、現実空間画像62が示す撮影範囲の変化方向と、に基づいて決定される。例えば、戦車52の正面が、現実空間画像62が示す撮影範囲の変化方向にいる敵56の方向を向くように、戦車52の向き又は姿勢が決定される。
【0151】
(8)また例えば、ユーザに拡張現実を提供する方法として、マーカ40を用いた方法を例に挙げて説明したが、拡張現実を手供する方法は、上記の例に限られない。ユーザに拡張現実を提供する方法自体は、他にも公知の種々の手法が適用可能であり、例えば、下記の方法を適用することができる。
【0152】
(8−1)例えば、マーカ40にかえて可視光を発する物体(例えば、LED)が検出対象として用いられるようにしてもよい。即ち、LED等を用いた可視光をCCDカメラ24で撮影することによって、拡張現実が提供されるようにしてもよい。可視光を用いて拡張現実が提供される方法としては、例えば、下記の2つの方法がある。
【0153】
まず、第1の方法としては、LEDを所定の法則に基づいて並べることによって、実施形態のようにマーカ40を用いた方法と同様の方法で座標変換行列を算出する方法が挙げられる。この場合、例えば、マーカ40の枠42の四隅の位置にLEDを配置する。例えば、CCDカメラ24によりこれら4つのLEDを撮影し、LEDの発光位置のずれ(歪み)が検出されることによって、CCDカメラ24とLEDとの位置関係が取得される。即ち、座標変換行列が取得される。以降の処理は、実施形態と同様であるので説明を省略する。
【0154】
また、第2の方法として、LEDの点灯と消灯が繰り返えされることによって、所定のデジタルデータを疑似的に表現する方法が挙げられる。例えば、LEDが点灯している場合には「1」とし、LEDが消灯している場合には「0」とする。LEDを連続撮影して得られる現実空間画像に基づいて得られるデジタルデータが、LEDの位置、発光方向を示すように、LEDの点灯と消灯を制御することによって、実施形態と同様の座標変換行列が取得されるようにしてもよい。以降の処理は、実施形態と同様であるので説明を省略する。
【0155】
(8−2)また例えば、現実空間にマーカ40を配置せずに、現実空間画像62に含まれる物体から特徴点を抽出することによって、拡張現実が提供されるようにしてもよい。即ち、いわゆるマーカレス方式の拡張現実が採用されるようにしてもよい。この場合、現実空間に配置される物体(又は、その特徴点)が、検出対象となる。
【0156】
図17は、マーカレス方式の拡張現実を説明するための図である。図17に示すように、例えば、現実空間に配置された物体の特徴点(例えば、机の輪郭やコップの縁)を、公知の特徴点抽出法(例えば、画像マッチングを用いたコーナー検出法等)により抽出する。例えば、現実空間に配置された机の輪郭を特徴点Q1〜Q4とし、机の接地点を特徴点Q5〜Q8とする。
【0157】
CCDカメラ24の位置又は視線方向が変化する場合、この特徴点Q1〜Q8の位置変化(変化量及び変化方向)をトラッキングすることによって、CCDカメラ24の位置と視線方向が算出される。CCDカメラ24の位置と視線方向が算出された後は、実施形態と同様に座標変換行列が算出されることによって、拡張現実が提供される。
【0158】
(8−3)また例えば、センサ部26を用いることによって、マーカ40を用いずに拡張現実が提供されるようにしてもよい。変形例(8−3)においては、現実空間における撮影部72(例えば、CCDカメラ24)の位置、向き、及び姿勢を検出する装置検出手段が、制御部12及びセンサ部26を主として実現される。
【0159】
例えば、センサ部26が、GPSセンサ、電子コンパス(地磁気センサ)、及びジャイロセンサを含んで構成される場合、例えば、GPSセンサから得られる信号に基づいてCCDカメラ24の現実空間における位置が取得される。また、電子コンパスから得られる信号に基づいてCCDカメラ24の向きが取得される。また、ジャイロセンサにより得られる信号に基づいてCCDカメラ24の姿勢が取得される。
【0160】
変形例(8−3)の表示制御部74は、装置検出手段の検出結果(例えば、現実空間における携帯端末10の位置、向き、及び姿勢)に基づいて、現実空間画像62と仮想空間画像64との位置合わせ及び合成を行う。
【0161】
例えば、表示制御部74は、現実空間におけるCCDカメラ24の位置、向き、及び姿勢に基づいて、現実空間におけるCCDカメラ24の位置と視線方向とを算出する。即ち、現実視点座標系の原点OVCと3軸の向きが特定される。そして、現実空間座標系(ここではマーカ40がないので、例えば、現実空間の任意の位置(例えば、GPSセンサの原点)に設定される座標系)と、現実視点座標系と、のずれに基づいて、実施形態と同様に座標変換行列が算出される。
【0162】
また、変形例(8−3)においては、図11と同様の処理が実行されるが、ユーザに拡張現実を提供する方法としてS3〜S6の処理に代えて、センサ部26により、携帯端末10の位置、向き、及び姿勢が検出される。そして、センサ部26の検出結果(即ち、携帯端末10の位置、向き、及び姿勢)に基づいて、現実空間におけるCCDカメラ24の位置及び視線方向が特定される。即ち、S7と同様に、現実空間座標系と現実視点座標系との関係が特定されることによって、ユーザに拡張現実が提供される。
【0163】
なお、現実空間におけるCCDカメラ24の位置、向き、及び姿勢を検出する方法は、公知の種々の手法を適用可能である。上記の他にも例えば、無線LANのアクセスポイントから発信される電波を使用して位置を測定するようにしてもよい。この場合、各アクセスポイントが設置されている場所がデータベースとして登録されている。また例えば、GPS電波を発信する小型の基地局を屋内に設置するいわゆるIMES(Indoor Messaging System)を用いて携帯端末10の位置が取得されるようにしてもよい。
【0164】
(9)また例えば、本発明は、実施形態や変形例において説明したゲーム以外の拡張現実にも適用することができる。例えば、ユーザの操作対象になるものは戦車の例に限られず、車やキャラクタが操作対象として仮想空間に配置されるようにしてもよい。即ち、例えば、車が走るレースコースやキャラクタが現実空間の机の上をステージにして歌やダンスをするような拡張現実が提供されるようにしてもよい。この場合、実施形態や変形例と同様の方法を用いて、車やキャラクタの位置の制御を、現実空間画像が示す撮影範囲の変化方向に基づいて行うようにすればよい。
【符号の説明】
【0165】
10 携帯端末、12 制御部、14 記憶部、16 主記憶部、18 表示部、20 操作キー部、22 タッチパネル、24 CCDカメラ、26 センサ部、28 通信部、30 バス、40 マーカ、42 枠、44 模様、50 ゲーム空間、52 戦車、54 砦、56 敵、58 仮想カメラ、60 ゲーム画面、62 現実空間画像、64 仮想空間画像、66a 前進ボタン、66b 後退ボタン、66c 左回転ボタン、66d 右回転ボタン、70 拡張現実データ記憶部、72 撮影部、74 表示制御部、76 操作部、78 移動制御部、80 判定部。
【技術分野】
【0001】
本発明は、画像処理装置、画像処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、現実空間をカメラで撮影して得られる画像と、仮想空間を所与の視点から見た画像と、を重畳させて画面に表示させることによって、ユーザに拡張現実(AR:Augmented Reality)を提供する技術が知られている。
【0003】
例えば、特許文献1及び特許文献2には、現実空間に配置されたマーカをカメラで撮影することによって、仮想空間に配置されるオブジェクトの表示位置等を決定する技術が記載されている。このような技術においては、仮想空間に配置されたユーザの操作対象(例えば、車等)が現実空間内を移動するような気分を、ユーザが味わうことができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−72903号公報
【特許文献2】特開2010−170316号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のような拡張現実の技術においては、ユーザがカメラを動かして現実空間の撮影範囲を変化させると、この変化に伴って仮想空間の視野も変化する。ユーザは、現実空間の撮影範囲を変化させつつ操作対象の操作を行う。ユーザがこれら2つの操作を同時に行うことは難しく、操作対象がユーザの意図しない方向に進んでしまう可能性がある。
【0006】
本発明は上記課題に鑑みてなされたものであって、その目的は、拡張現実が提供されているユーザの操作補助をすることが可能な画像処理装置、画像処理装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明に係る画像処理装置は、ユーザの操作により撮影範囲が変化する撮影手段と、前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段と、前記ユーザが前記操作対象の方向指示操作を行うための操作手段と、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段と、前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段と、を含み、前記移動制御手段は、前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、ことを特徴とする。
【0008】
本発明に係る画像処理装置の制御方法は、ユーザの操作により撮影範囲が変化する撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御ステップと、前記ユーザが前記操作対象の方向指示操作を行うための操作手段から前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御ステップと、前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定ステップと、を含み、前記移動制御ステップにおいては、前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、ことを特徴とする。
【0009】
本発明に係るプログラムは、ユーザの操作により撮影範囲が変化する撮影手段、前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段、前記ユーザが前記操作対象の方向指示操作を行うための操作手段、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段、前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段、を含み、前記移動制御手段は、前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、ことを特徴とする画像処理装置としてコンピュータを機能させる。
【0010】
また、本発明に係る情報記憶媒体は、上記プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0011】
本発明によれば、拡張現実が提供されているユーザの操作補助をすることが可能になる。
【0012】
また、本発明の一態様では、前記移動制御手段は、前記現実空間における前記現実空間画像が示す前記撮影範囲と、前記仮想空間における前記操作対象の位置と、の位置関係の変化が所定の条件を満たす場合、前記方向指示操作と前記基本方向との対応付けを変更する、ことを特徴とする。
【0013】
また、本発明の一態様では、前記移動制御手段は、前記方向指示操作と、前記仮想空間における前記視点の視点座標系とは異なる座標系で示される前記基本方向と、の対応付けを変更する、ことを特徴とする。
【0014】
また、本発明の一態様では、前記移動制御手段は、前記所定期間内に行われた前記方向指示操作に対応する前記基本方向に基づいて定まる前記操作対象の移動方向と、前記現実空間画像が示す前記撮影範囲の変化方向と、のずれを判定する手段と、前記ずれが基準範囲である場合、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる手段と、前記ずれが基準範囲でない場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる手段と、を含むことを特徴とする。
【図面の簡単な説明】
【0015】
【図1】本実施形態に係る携帯端末のハードウェア構成を示す図である。
【図2】ユーザが拡張現実を利用したゲームをプレイする様子を示す図である。
【図3】仮想空間の一例を示す図である。
【図4】表示部に表示されるゲーム画面の一例を示す図である。
【図5】方向指示操作に対応付けられた基本方向を説明するための図である。
【図6】携帯端末で実現される機能を示す機能ブロック図である。
【図7】マーカデータのデータ格納例を示す図である。
【図8】表示制御部による位置合わせの方法を説明するための図である。
【図9】撮影範囲の変化方向が取得される処理を説明するための図である。
【図10】変更された方向指示操作と基本方向との対応付けを説明するための図である。
【図11】方向指示操作と基本方向との対応付けが変更された場合に戦車の位置が制御される様子を示す図である。
【図12】携帯端末が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図13】携帯端末が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。
【図14】ゲーム画面における戦車の表示位置を説明するための図である。
【図15】方向指示操作と基本方向との対応付けが変更されるための条件を示す図である。
【図16】実施形態3の処理を説明するための図である。
【図17】マーカレス方式の拡張現実を説明するための図である。
【発明を実施するための形態】
【0016】
[1.実施形態]
以下、本発明に係る実施形態について図面に基づき詳細に説明する。本発明に係る画像処理は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、業務用ゲーム機、携帯電話機等の携帯端末、又はパーソナルコンピュータを用いて実現される。ここでは、本発明の実施形態に係る画像処理装置を、携帯端末を用いて実現する場合について説明する。
【0017】
[1−1.携帯端末のハードウェア構成]
図1は、本実施形態に係る携帯端末10のハードウェア構成を示す図である。図1に示すように、携帯端末10は、制御部12、記憶部14、主記憶部16、表示部18、操作キー部20、タッチパネル22、CCDカメラ24、センサ部26、通信部28等を含み、例えば、各部はバス30を介して接続される。なお、携帯端末10のハードウェア構成は、図1の例に限られず、携帯端末10は、公知の携帯端末に含まれる各種ハードウェア(例えば、SDカードスロット等)を含んでいてもよい。
【0018】
制御部12は、記憶部14に記憶されるオペレーティングシステムや、外部接続される各種記憶媒体(例えば、SDカード等)に格納されるプログラムや通信部28を介して取得される各種データに基づいて携帯端末10の各部を制御する。
【0019】
記憶部14は、フラッシュメモリ等の不揮発性記憶媒体を含んで構成される。記憶部14には、オペレーティングシステム等が記憶される。主記憶部16は、例えば、RAMを含んで構成される。記憶部14に記憶されたプログラム等は、必要に応じて主記憶部16に書き込まれる。主記憶部16は、制御部12の作業用メモリとしても用いられる。
【0020】
表示部18は、一又は複数の公知の液晶表示パネルである。例えば、図示しないVRAMに描画された画像が表示部18に表示される。操作キー部20は、十字キーや各種ボタン等を含んで構成される。タッチパネル22は、表示部18に重畳するように配置され、外部からの接触位置を検出する。
【0021】
CCDカメラ24は、現実空間を撮影して画像を生成する。本実施形態においては、携帯端末10の筺体内にCCDカメラ24が含まれており、ユーザが、携帯端末10の位置や姿勢を変化させると、CCDカメラ24の撮影範囲が変化する場合を説明する。なお、携帯端末10とCCDカメラ24とが有線接続されている場合には、操作キー部20やタッチパネル22からのユーザの操作に基づいてCCDカメラ24の撮影範囲が変化するようにしてもよい。
【0022】
センサ部26は、GPSセンサ、ジャイロセンサ、電子コンパス(地磁気センサ)、加速度センサ等から構成される。通信部28は、ネットワークを介して外部装置とデータ送受信を行う。
【0023】
[1−2.ユーザに提供される拡張現実]
携帯端末10は、ユーザに拡張現実を提供する。本実施形態においては、CCDカメラ24が現実空間を撮影することによって生成される現実空間の画像(以降、現実空間画像という。)と、仮想空間を所与の視点から見た様子を示す画像(以降、仮想空間画像という。)と、が重畳されて表示部18に表示されることによって、ユーザに拡張現実が提供される。また、本実施形態においては、ユーザが、拡張現実を利用したゲームをプレイする場合を説明する。
【0024】
図2は、ユーザが拡張現実を利用したゲームをプレイする様子を示す図である。図2に示すように、例えば、CCDカメラ24は、所定の模様44が描かれたマーカ40(検出対象)を撮影する。マーカ40は、紙やフィルム等であり、例えば、CCDカメラ24の視野内の任意の位置に配置される。例えば、図2の場合、マーカ40は、現実空間の机の上に配置される。
【0025】
本実施形態においては、マーカ40が、所定の大きさの枠42(例えば、正方形の枠)を有し、当該枠42の中に所定の模様44(例えば、左右非対称の模様44)が描かれている場合を説明する。ここでは、図2に示すように、「L字型」の模様44がマーカ40に描かれている。
【0026】
マーカ40に描かれている模様44を示すデータは、予め記憶部14に記憶されている。携帯端末10は、現実空間画像に含まれる模様44と、記憶部14に記憶された模様44と、を公知の画像比較アルゴリズムに基づいて比較することによって、現実空間に配置されたマーカ40の種別、位置、大きさ、及び模様44の向きを特定する。
【0027】
この特定された情報(例えば、マーカ40の種別、位置、大きさ、及び模様44の向き)は、仮想空間に配置されたオブジェクトを、表示部18の画面において、どこにどのような大きさ又は向きで表示させるかを決定するために使用される。即ち、マーカ40の種別、位置、大きさ、及び模様44の向きを示す情報は、現実空間画像と仮想空間画像に関する位置合わせを行うために使用される。
【0028】
図3は、仮想空間の一例を示す図である。本実施形態においては、仮想空間の一例として、戦場を模したゲーム空間50(仮想3次元空間)が生成される場合を説明する。ゲームが開始されると、主記憶部16にゲーム空間50が生成される。ゲーム空間50には、互いに直交する3軸(後述する仮想空間座標系)が設定される。ゲーム空間50に配置される各オブジェクト及び後述する仮想カメラ58の位置は、仮想空間に設定される3次元座標に基づいて定まる。
【0029】
図3に示すように、ゲーム空間50には、例えば、ユーザの操作に供される戦車を示すオブジェクトである戦車52と、戦車52の攻撃目標となる砦を示すオブジェクトである砦54と、敵キャラクタを示すオブジェクトである敵56と、が配置される。戦車52は、ユーザの操作に基づいてゲーム空間50を移動する。
【0030】
また例えば、ユーザが所定の操作(例えば、タッチパネル22をタップする等)を行うと、戦車52は弾を発射する。戦車52から弾が発射されると弾を示すオブジェクト(図示せず)が生成され、当該オブジェクトと敵56とが衝突すると、砦54や敵56が消滅する。このように、ユーザは、戦車52を操作して砦54や敵56を撃破することを目指す。
【0031】
また、ゲーム空間50には、仮想カメラ58(視点)が設定される。仮想カメラ58からゲーム空間50を見た様子を示す仮想空間画像が、所定の時間間隔(例えば、CCDカメラ24のフレームレートに基づいて定まる間隔と同じ間隔)で生成される。例えば、ゲーム空間50に配置されるオブジェクトのうち、仮想カメラ58の視野(視錘台)内のオブジェクトを示す仮想空間画像が生成される。ユーザは、仮想空間画像と現実空間画像とが合成されたゲーム画面を見ながらゲームをプレイする。ゲーム空間50において戦車52や敵56が移動すると、ゲーム画面60においては、戦車52や敵56が、現実空間の机の上を移動するように表示制御される。
【0032】
図4は、表示部18に表示されるゲーム画面の一例を示す図である。図4に示すように、ゲーム画面60には、現実空間画像62と仮想空間画像64とが合成されて表示される。例えば、現実空間の机の上にマーカ40が配置されている場合、ゲーム画面60においては、現実空間の机の上に戦場が展開されるように、ゲーム空間50に配置された各オブジェクトのゲーム画面60における表示位置が決定される。即ち、現実空間画像62と仮想空間画像64とに関する位置合わせが行われる。
【0033】
例えば、現実空間画像62に表示される撮影範囲(領域)が移動すると、仮想空間画像64に表示される仮想空間の範囲(領域)も移動する。例えば、ユーザが携帯端末10の位置、向き、又は姿勢を変化させてCCDカメラ24の撮影範囲を変化させると、この変化に伴って仮想カメラ58の撮影範囲も変化する。
【0034】
本実施形態においては、CCDカメラ24の位置と視線方向は、仮想カメラ58の位置と視線方向に対応している。即ち、CCDカメラ24の位置が変化すると、この位置変化と同じように仮想カメラ58の位置も変化する。また、CCDカメラ24の視線方向が変化すると、この変化した方向と同じ方向に仮想カメラ58の視線方向も変化する。
【0035】
例えば、図4に示すゲーム画面60の場合、ユーザが戦車52の後方に敵56がいるか否かを確認するためには、例えば、ユーザは、携帯端末10の向きを左に回転させることによって、CCDカメラ24の視線方向を左に回転させる。ユーザがCCDカメラ24の視線方向を左に回転させると、仮想カメラ58の視線方向も左に回転する。
【0036】
また、図4に示すように、ゲーム画面60には、ユーザが戦車52の方向指示操作を行うための前進ボタン66a、後退ボタン66b、左回転ボタン66c、右回転ボタン66d(これらをまとめて単にボタン66ともいう。)が表示される。各ボタン66が押下されたか否かは、タッチパネル22からの検出信号に基づいて判定される。
【0037】
ボタン66には、それぞれ基本方向が対応付けられている。基本方向は、方向指示操作に予め対応付けられている方向である。戦車52は、方向指示操作に対応する基本方向に基づいて移動する。即ち、ボタン66に対応付けられた基本方向に基づいて、戦車52の移動方向が決定される。
【0038】
本実施形態においては、基本方向は、3次元のベクトルで表される場合を説明するが、基本方向は、2次元のベクトルで表されるようにしてもよい。また、ここでは、基本方向が、仮想カメラ58を基準にした座標系ではなく、戦車52を基準にした座標系(ローカル座標系。キャラクタ座標系ともいう。)で定義される場合を説明する。
【0039】
図5は、方向指示操作に対応付けられた基本方向を説明するための図である。図5に示すように、戦車52に基づいて設定されるローカル座標系(XLW−YLW−ZLW座標系)で表される方向が、基準方向として設定されている。ローカル座標系の原点OLWは、戦車52の位置に基づいて定められる。
【0040】
ユーザにより方向指示操作が行われた場合、ローカル座標系で表される基本方向が、公知の座標変換処理により、仮想空間座標系(ワールド座標系)のベクトルに変換されることによって、戦車52の移動方向が特定される。
【0041】
例えば、前進ボタン66aには、戦車52の正面方向が基準方向Va(例えば、ZLW軸の正方向)として対応付けられている。例えば、前進ボタン66aが押下された場合、戦車52は、戦車52から見た正面方向に移動する。例えば、後退ボタン66bには、戦車52の背面方向が基準方向Vb(例えば、ZLW軸の負方向)として対応付けられている。例えば、後退ボタン66bが押下された場合、戦車52は、戦車52から見た背面方向に移動する。
【0042】
例えば、左回転ボタン66cには、戦車52から見て左方向が基準方向Vc(例えば、XLW軸の負方向)として対応付けられている。例えば、左回転ボタン66cが押下された場合、戦車52は、戦車52から見て左回りに回転する。例えば、右回転ボタン66dには、戦車52から見て右方向が基準方向Vd(例えば、XLW軸の正方向)として対応付けられている。例えば、右回転ボタン66dが押下された場合、戦車52は、戦車52から見て右回りに回転する。
【0043】
例えば、ユーザは、戦車52を前後に移動させたい場合、前進ボタン66a又は後退ボタン66bを押下する。また例えば、ユーザは、戦車52を左右に移動させたい場合、左回転ボタン66c又は右回転ボタン66dを押下して戦車52を回転させた後に、前進ボタン66a又は後退ボタン66bを押下する。また例えば、ユーザは、戦車52を斜めに旋回させながら移動させたい場合、前進ボタン66a又は後退ボタン66b、及び、左回転ボタン66c又は右回転ボタン66dを押下して戦車を移動させる。
【0044】
このように、戦車52を基準としたローカル座標系で基本方向が定義される場合、戦車52と仮想カメラ58との位置関係が異なれば、ユーザが同じ方向指示操作を行っても、ゲーム画面60において戦車52の移動方向が異なる。したがって、ユーザは、戦車52の向きを考えながら方向指示操作を行わなければならず、戦車52を動かす方向を誤ってしまう可能性がある。例えば、戦車52が仮想カメラ58の視野の外に出てしまい、ゲーム画面60から戦車52が消えてしまう可能性がある。
【0045】
本実施形態の携帯端末10は、CCDカメラ24の撮影範囲が変化して現実空間画像62が広がり、かつ、ボタン66が押下された場合、方向指示操作と基本方向との対応付けを変更させることによって、戦車52を現実空間画像62が広がった方向に向けて移動させる。即ち、現実空間画像62が広がった方向を、ユーザが戦車52を動かしたい方向と考えることにより、ユーザの操作補助が行われる。
【0046】
ここで、ユーザの操作補助を行う方法として、センサ部26のジャイロセンサや加速度センサを用いて、例えば、携帯端末10が傾いた方向に戦車52を移動させることも考えられる。しかしながら、拡張現実を用いたゲームの性格上、仮想カメラ58が戦車52の移動に従動する訳ではないので、この方法では、やはり戦車52がゲーム画面60の表示領域から外れてしまう可能性がある。即ち、戦車52が仮想カメラ58の視野から外れてしまう。この場合、ユーザは、戦車52を視認することができなくなってしまうので、ゲームをプレイすることが困難になってしまう。
【0047】
そこで、本実施形態の携帯端末10は、現実空間画像62が広がった方向に戦車52を移動させることによって、ゲーム画面60から戦車52が外れてしまうことを防止しつつ、ユーザの操作補助が行われる。以下、上記技術について詳細に説明する。
【0048】
[1−3.ゲーム装置において実現される機能]
図6は、携帯端末10で実現される機能を示す機能ブロック図である。図6に示すように、携帯端末10は、拡張現実データ記憶部70、撮影部72、表示制御部74、操作部76、移動制御部78、判定部80を含む。これら各機能は、例えば、制御部12が記憶部14に記憶されたプログラムを実行することによって実現される。
【0049】
[1−3−1.拡張現実データ記憶部]
拡張現実データ記憶部70は、記憶部14及び主記憶部16を主として実現される。拡張現実データ記憶部70は、ユーザに拡張現実を提供するために必要なデータを記憶する。例えば、拡張現実データ記憶部70には、マーカ40に関するマーカデータが記憶される。
【0050】
図7は、マーカデータのデータ格納例を示す図である。図7に示すように、マーカデータには、例えば、マーカ40の模様44を示す画像データと、当該マーカ40に関連付けられた拡張現実に関するデータと、が対応付けられる。マーカデータに格納される画像データは、現実空間に配置されるマーカ40との比較対象として用いられる。即ち、マーカデータは、ユーザが拡張現実を利用するために必要なマーカ40を定義するデータである。
【0051】
拡張現実に関するデータとは、マーカデータに格納されたマーカ40が検出された場合にユーザに提供すべき拡張現実の種別を識別するため情報である。例えば、本実態形態のように「L字型」の模様44を有するマーカ40が検出された場合には、ユーザが戦車52を操作するゲームを用いた拡張現実が提供される。また例えば、別の模様44のマーカ40が検出された場合には、歌を歌いながら踊るキャラクタの立体映像がマーカ40の周囲に表示されることによって拡張現実が提供される。
【0052】
また、拡張現実データ記憶部70には、ゲーム空間50の現在の状況を示す仮想空間データが格納される。仮想空間データには、例えば、ゲーム空間50に配置される各オブジェクトの位置、姿勢、向き、及び移動方向に関する情報と、仮想カメラ58の視野に関する情報(例えば、位置及び視線方向)とが格納される。
【0053】
仮想空間データに格納される各オブジェクトの位置は、ユーザの操作や所定のアルゴリズムに基づいて内容が更新される。また、本実施形態においては、仮想空間データに格納される仮想カメラ58の位置や視線方向は、現実空間画像62におけるマーカ40の表示内容(例えば、表示位置、大きさ、及び向き)に基づいて決定される。
【0054】
なお、制御部12は、拡張現実データ記憶部70に記憶される各種データを取得する手段として機能する。また、制御部12は、拡張現実データ記憶部70に記憶される各種データを変更(更新)する手段として機能する。また、拡張現実データ記憶部70に記憶されるデータは、上記の例に限られず、他にも例えば、携帯端末10がゲームを実行するために必要なデータ(ユーザの得点を示すデータや戦車52の残り体力を示すデータ等)が記憶されていてもよい。
【0055】
[1−3−2.撮影部]
撮影部72は、制御部12及びCCDカメラ24を主として実現される。撮影部72は、ユーザの操作により撮影範囲が変化する。例えば、ユーザが撮影部72の位置、向き、及び姿勢を変化させることによって撮影範囲が変化する。撮影範囲は、例えば、撮影部72の位置及び視線方向に基づいて決定される。
【0056】
撮影部72は、例えば、検出対象(例えば、マーカ40)が配置された現実空間を撮影する。撮影部72により現実空間が撮影されることによって生成される現実空間画像を示す画像データは、例えば、拡張現実データ記憶部70に一時的に記憶される。
【0057】
[1−3−3.表示制御部]
表示制御部74は、制御部12を主として実現される。表示制御部74は、撮影部72が現実空間を撮影することによって生成される現実空間画像62と、撮影範囲に対応する視野が設定された視点(例えば、仮想カメラ58)からユーザの操作対象(例えば、戦車52)が配置された仮想空間(例えば、ゲーム空間50)を見た様子を示す仮想空間画像64と、に関する位置合わせ及び合成をして表示画面(例えば、ゲーム画面60)に表示させる。
【0058】
現実空間画像62と仮想空間画像64とに関する位置合わせとは、仮想空間に配置されたオブジェクトをゲーム画面60で表示させる場合の表示位置を決定するための処理である。別の言い方をすれば、現実空間画像62と仮想空間画像64とに関する位置合わせとは、ユーザに拡張現実を提供するために行われる現実空間と仮想空間との位置合わせ処理である。
【0059】
撮影範囲に対応する視野とは、撮影部72の撮影範囲に基づいて仮想カメラ58の視野がさだまることを示す。例えば、表示制御部74は、現実空間の座標系と撮影部72の座標系との関係と、仮想空間の座標系と仮想カメラ58の座標系の関係と、が対応するように仮想カメラ58の制御を行うことによって、現実空間画像62と仮想空間画像64とに関する位置合わせを行う。
【0060】
即ち、表示制御部74は、現実空間の基準位置(例えば、マーカ40の位置)と撮影部72の撮影範囲(視野)との位置関係と、仮想空間の基準位置(例えば、仮想空間座標系の原点の位置)と仮想カメラ58の視野との位置関係と、が対応するように仮想視点の制御を行うことによって、現実空間画像62と仮想空間画像64とに関する位置合わせを行う。ユーザが撮影部72の撮影範囲を変更させた場合、表示制御部74は、この変更に基づいて仮想カメラ58の視野を変更させる。
【0061】
本実施形態においては、表示制御部74は、現実空間画像62におけるマーカ40の位置、大きさ、及び向きに基づいて、現実空間画像62と仮想空間画像64との位置合わせを行う場合を説明する。
【0062】
図8は、表示制御部74による位置合わせの方法を説明するための図である。図8に示すように、例えば、現実空間においては、マーカ40の位置、大きさ、及び向きに基づいて現実空間座標系(XRW−YRW−ZRW座標系)が設定され、撮影部72の位置、向き、及び姿勢(即ち、CCDカメラ24の位置、向き、及び姿勢)に基づいて現実視点座標系(XRC−YRC−ZRC座標系)が設定される。
【0063】
現実空間座標系は、現実空間に配置される物体の位置を表すための座標系であり、マーカ40が基準となる座標系である。一方、現実視点座標系は、撮影部72の視点と現実空間に配置される物体との関係を表すための座標系であり、撮影部72が基準となる座標系である。
【0064】
例えば、現実空間座標系の原点ORWは、マーカ40の中心点に設定される。そして、XRW軸方向が「L字型」の模様44の短手方向に対応し、YRW軸方向が「L字型」の模様の長手方向に対応する。ZRW軸方向は、XRW軸方向とYRW軸方向の外積方向となる。
【0065】
また例えば、現実視点座標系の原点ORCは、撮影部72の視点の位置に設定される。そして、例えば、XRC軸方向が現実空間画像62の長手方向(即ち、撮影部72から見て水平方向)に対応し、YRC軸方向が現実空間画像62の短手方向(即ち、撮影部72から見て垂直方向)に対応する。また例えば、ZRC軸方向が、撮影部72の視線方向に設定される。
【0066】
現実空間座標系(XRW−YRW−ZRW座標系)は、回転及び平行移動することによって、現実視点座標系(XRC−YRC−ZRC座標系)に変換可能である。表示制御部74は、現実空間画像62におけるマーカ40の表示内容(位置、大きさ、及び向き)に基づいて、現実空間座標系から現実視点座標系へ変換を行う場合の座標変換行例を算出する。
【0067】
具体的には、まず、表示制御部74は、公知の輪郭抽出処理に基づいて、現実空間画像62のマーカ40の枠42を抽出する。マーカ40の枠42が抽出される際には、現実空間画像62における枠42の四隅の位置が特定されることによって、現実空間画像62に表れるマーカ40の位置が特定される。
【0068】
そして、表示制御部74は、抽出された枠42内に描かれた模様44と、マーカデータに格納された模様44の画像データと、が比較するためのパターンマッチング処理を行うことによって、マーカ40の種別、現実空間画像62に表れるマーカ40の大きさ、及び模様44の向きを特定する。
【0069】
そして、現実空間画像62におけるマーカ40の位置と、現実空間画像62におけるマーカ40の大きさとマーカデータに格納されたマーカ40の大きさとのずれと、現実空間画像62におけるマーカ40の模様44の向きとマーカデータに格納されたマーカ40の模様44の向きとのずれと、に基づいて、現実空間座標系から現実視点座標系へ変換する場合の回転成分と平行移動成分とが算出されることによって、座標変換行列が取得される。
【0070】
この座標変換行列に基づいて、仮想空間座標系(XVW−YVW−ZVW座標系)を変換することによって、仮想視点座標系(XVC−YVC−ZVC座標系)が設定される。仮想空間座標系は、ゲーム空間50に配置される各オブジェクトの位置を表すための座標系である。仮想視点座標系は、仮想カメラ58と各オブジェクトとの位置関係を表すための座標系である。例えば、仮想カメラ58の位置が、仮想視点座標系の原点OVCとなり、仮想カメラ58の視線方向が、仮想視点座標系のZvc軸方向となる。
【0071】
仮想空間座標系を、座標変換行列が示すように回転及び平行移動させると、仮想視点座標系が定まる。つまり、撮影部72の視点の位置(例えば、原点ORC)とマーカ40の位置(例えば、原点ORW)との位置関係と、仮想カメラ58の位置(例えば、原点OVC)と仮想空間座標系の原点Ovwとの位置関係と、が同じ位置関係になるように、仮想カメラ58の位置及び視線方向が決定される。
【0072】
上記のように、位置及び視線方向が決定された仮想カメラ58からゲーム空間50を見た様子を示す仮想空間画像64と、現実空間画像62と、が重畳されることによって、ゲーム画面60における戦車52の表示位置が決定される。
【0073】
なお、マーカ40を用いて拡張現実における仮想空間の物体の表示位置を決定する方法は、上記の例に限られず、公知の種々の手法を適用可能である。他にも例えば、現実空間の垂直方向に配置されたマーカ40(例えば、壁や窓に張り付けられたマーカ40)に基づいて仮想空間の物体の表示位置が決定されるようにしてもよいし、複数のマーカ40を同時に検出することによって、仮想空間の物体の表示位置が決定されるようにしてもよい。
【0074】
[1−3−4.操作部]
操作部76は、制御部12及びタッチパネル22を主として実現される。操作部76は、ユーザが操作対象(例えば、戦車52)の方向指示操作を行うためのものである。例えば、操作部76の検出信号に基づいてユーザの方向指示操作が検出される。
【0075】
例えば、操作部76は、タッチパネル22から検出された信号に基づいて、ユーザによる方向指示操作が検出される。本実施形態においては、ユーザが複数のボタン66の何れかを押下することによって、複数の方向指示操作を行う場合を説明する。これら複数の方向指示操作の各々には、基本方向が対応付けられている。
【0076】
例えば、ゲーム制作者等によって、どの方向指示操作がどの基本方向に対応しているか、が予め定められている。本実施形態における基本方向は、操作対象の移動方向を特定するための方向であり、仮想視点座標系とは異なる座標系(例えば、ローカル座標系)で表される。即ち、仮想カメラ58の位置と視線方向が異なった場合、仮想カメラ58から見た基本方向の向きが異なるような座標系で基本方向が定義される。
【0077】
なお、本実施形態においては、タッチパネル22からの操作によって方向指示操作が行われる場合を説明するが、他にも例えば、操作キー部20からの入力信号に基づいて方向指示操作が行われるようにしてもよい。この場合、操作部76は、操作キー部20により実現される。例えば、操作キー部20の複数のボタンと複数の基本方向とが対応付けられる。
【0078】
[1−3−5.移動制御部]
移動制御部78は、制御部12を主として実現される。移動制御部78は、ユーザにより行われた方向指示操作に対応する基本方向に基づいて操作対象(例えば、戦車52)を移動させる。例えば、移動制御部78は、方向指示操作に対応する基本方向に基づいて戦車52を移動させる。本実施形態においては、戦車52が、ゲーム空間50の所定平面上(例えば、XVW−YVW平面上)を移動する場合を説明する。
【0079】
例えば、本実施形態のように、基本方向が戦車52を基準としたローカル座標系で定義される場合、ローカル座標系と仮想空間座標系とを変換するための座標変換行列が、仮想空間データに格納された戦車52の位置、向き、及び姿勢に基づいて適宜算出される。この座標変換行列に基づいて基本方向がローカル座標系から仮想空間座標系に変換されることによって、仮想空間座標系における戦車52の移動方向が特定される。なお、ローカル座標系と仮想空間座標系とを変換する方法は、公知の種々の座標変換処理を適用可能である。
【0080】
[1−3−6.判定部]
判定部80は、制御部12を主として実現される。判定部80は、現実空間画像62が示す撮影範囲が変化したか否かを判定する。現実空間画像62が示す撮影範囲が変化したか否かは、例えば、現実空間画像62の時系列的な変化に基づいて判定される。例えば、現実空間画像62は、時系列的に拡張現実データ記憶部70に記憶されており、一の現実空間画像62と、当該現実空間画像62よりも前に撮影された現実空間画像62と、が比較(パターンマッチング)されることによって、現実空間画像62が示す撮影範囲が変化したか否かが判定される。
【0081】
また、本実施形態においては、例えば、所定期間(例えば、1秒間)において、現実空間画像62が広がった領域(即ち、現実空間画像62に新たに表れる現実空間の領域)が所定面積(所定画素数)以上であるか否かが判定されることによって、現実空間画像62が示す撮影範囲が変化したか否かが判定される場合を説明する。即ち、所定期間において、現実空間画像62に新たに表れた現実空間の領域が所定面積以上であるか否かが判定される。
【0082】
なお、現実空間画像62が示す撮影範囲が変化したか否かを判定する方法は、上記の例に限られず、種々の画像変化検出手法に基づいて、現実空間画像62が示す撮影範囲が変化したか否かが判定されるようにしてもよい。例えば、現実空間画像62に含まれる対象物を追跡することによって、現実空間画像62が示す撮影範囲が変化したか否かが判定されるようにしてもよい。即ち例えば、現実空間画像62のマーカ40の表示位置が所定距離以上変化したか否かに基づいて、現実空間画像62が示す撮影範囲が変化したか否かが判定されるようにしてもよい。
【0083】
携帯端末10においては、上記のように行われる判定部80の判定結果に基づいて、図5を参照して説明した方向指示操作と基本方向との対応付けが変更される構成になっている。
【0084】
具体的には、移動制御部78は、現実空間画像62が示す撮影範囲が変化したと判定され、所定期間内に方向指示操作が行われた場合、現実空間画像62が示す撮影範囲の変化内容に基づいて方向指示操作と基本方向との対応付けを変更し、当該変更後の対応付けと所定期間内に行われた方向指示操作とに基づいて操作対象(例えば、戦車52)を移動させる。
【0085】
所定期間とは、現時点の所定間隔前から現時点までの間の期間であり、例えば、現実空間画像62が示す撮影範囲が変化したと判定されてから現時点までの期間である。
【0086】
現実空間画像62が示す撮影範囲の変化内容とは、現実空間画像62により示される撮影部72の撮影範囲の変わり方であり、例えば、撮影範囲の変化方向又は撮影範囲の変化量である。ここでは、撮影範囲の変化方向に基づいて、方向指示操作と基本方向との対応付けが変更される場合を説明する。
【0087】
撮影範囲の変化方向とは、例えば、現実空間画像62として表れる撮影範囲(即ち、ゲーム画面60に表示される領域)が広がった方向である。別の言い方をすれば、撮影範囲の変化方向とは、CCDカメラ24の撮影範囲が移動した方向であり、CCDカメラ24の位置又は視線方向が変化した方向と同意であり、仮想カメラ58の視野(位置又は視線方向)が変化した方向とも言える。
【0088】
撮影範囲の変化方向は、ゲーム画面60上に設定される2次元のベクトル(スクリーン座標系のベクトル)で表現されてもよいし、現実空間座標系又は仮想空間座標系の3次元のベクトルで表現されてもよい。ここでは、現実空間画像62が示す撮影範囲の変化方向が、現実空間座標系の3次元のベクトルで表現される場合を説明する。
【0089】
現実空間画像62が示す撮影範囲の変化方向は、現実空間画像62の時系列的な変化に基づいて取得される。例えば、ユーザが撮影部72の撮影範囲をユーザから見て左方向に変化させた場合、現実空間画像62の左端部に対応する領域に新たに現実空間が表示されるので、この場合は、現実空間画像62が示す撮影範囲の変化方向は左方向(例えば、XRW軸方向)となる。
【0090】
図9は、撮影範囲の変化方向が取得される処理を説明するための図である。図9に示すように、現実空間画像62が示す撮影範囲の変化方向VRCは、現実空間画像62が示す撮影範囲の変化後の撮影部72の視線方向(即ち、実線で示すZRC軸方向)と変化前の撮影部72の視線方向(即ち、破線で示すZRC軸方向)とのベクトル差を示す方向となる。
【0091】
例えば、上記のように特定される撮影範囲の変化方向に基づいて、方向指示操作と基本方向との対応付けが変更される。例えば、方向指示操作と、現実空間画像62が示す撮影範囲の変化方向に基づいて定まる方向と、が対応付けられるように変更される。撮影範囲の変化方向に基づいて定まる方向とは、ゲーム画面60において、戦車52の表示位置が現実空間画像62が広がった方向に移動するための方向である。例えば、ユーザが右回転ボタン66dを押下した場合であっても、戦車52が左回転するように、方向指示操作と基本方向との対応付けが変更される。
【0092】
図10は、変更された方向指示操作と基本方向との対応付けを説明するための図である。図10に示すように、現実空間画像62が示す撮影範囲が変化する前の対応付けと、変化後の対応付けが変更される。例えば、図10のように、ユーザがボタン66のどれを押下しても撮影範囲の変化方向に戦車52が移動するように、方向指示操作と基本方向との対応付けが変更される。撮影範囲の変化方向は、例えば、現実空間座標系の3次元ベクトルで表されるので、このベクトル値が座標変換されることによって、図10に示す対応付けの「変化方向」のベクトルが特定される。
【0093】
図11は、方向指示操作と基本方向との対応付けが変更された場合に戦車52の位置が制御される様子を示す図である。図11に示すように、ユーザから見て左方向(例えば、XRW軸方向)に現実空間画像62が広がり(広がった領域を62aとして斜線で示す。)、左方向(例えば、XVW軸正方向)又は右方向(例えば、XVW軸負方向)を示す方向指示操作が入力された場合、戦車52が、例えば、現実空間画像62が広がった左方向に移動する。このように戦車52を移動させることによって、現実空間画像62が広がった方向に戦車52を動かすことができる。
【0094】
[1−4.携帯端末において実行される処理]
次に、携帯端末10が実行する処理について説明する。図12及び図13は、携帯端末10が実行する処理のうちの、本発明に関連する処理を主に示すフロー図である。制御部12は、例えば、記憶部14に記憶されるプログラムに従って、図12及び図13に示す処理を実行する。例えば、ゲームの開始指示が操作キー部20から入力された場合、図12及び図13に示す処理が実行される。
【0095】
図12に示すように、まず、制御部12は、CCDカメラ24を起動して、現実空間画像62を表示部18に表示させる(S1)。次いで、制御部12は、主記憶部16にゲーム空間50を生成する(S2)。S2においては、例えば、ゲーム空間50内の各オブジェクトは予め定められた初期位置に配置される。また、S2の段階では、仮想カメラ58はゲーム空間50に配置されないようにしてもよい。
【0096】
制御部12は、現実空間画像62にマーカ40が含まれるか否かを判定する(S3)。S3においては、例えば、CCDカメラ24より適宜得られる現実空間画像62が参照され、マーカ40の枠42が抽出されるか否かによって、マーカ40が含まれるか否かが判定される。
【0097】
マーカ40が含まれると判定された場合(S3;Y)、制御部12は、マーカ40の枠42内に描かれた模様44と、マーカデータに格納された模様44と、を比較することによって、所定のマーカ40(マーカデータに格納されたマーカ40)が検出されたか否かを判定する(S4)。本実施形態においては、「L字型」のマーカ40が検出されたか否かが判定される。
【0098】
所定のマーカ40が検出されたと判定された場合(S4;Y)、制御部12は、現実空間画像62におけるマーカ40の表示位置を取得する(S5)。S5においては、例えば、マーカ40の枠42の四隅の表示位置が特定される。
【0099】
制御部12は、現実空間画像62におけるマーカ40の大きさと向きを取得する(S6)。S6においては、例えば、S5において特定されたマーカ40の枠42の四隅の位置関係と、マーカデータに格納されたマーカ40の四隅の位置関係と、が比較されることによって、マーカ40の大きさに関する情報が取得される。また例えば、現実空間画像62におけるマーカ40の模様44と、マーカデータに格納された模様44と、のずれに基づいて、マーカ40の向きに関する情報が取得される。
【0100】
制御部12は、現実空間画像62におけるマーカ40の位置、大きさ、及び向きに基づいて仮想カメラ58の位置及び視線方向を決定する(S7)。例えば、マーカ40の位置、大きさ、及び向きに基づいて現実空間座標系から現実視点座標系への座標変換行列が算出される。そして、仮想空間座標系に当該座標変換行列を適用することによって、仮想視点座標系の原点OVCの位置及び3軸の向きが決定される。例えば、仮想視点座標系の原点OVCが仮想カメラ58の位置として決定され、ZVC軸方向が仮想カメラ58の視線方向に決定される。
【0101】
制御部12は、CCDカメラ24により生成される現実空間画像62と、S7において位置及び視線方向が決定された仮想カメラ58からゲーム空間50を見た様子を示す仮想空間画像64と、を合成してゲーム画面60に表示させる(S8)。S7において仮想カメラ58の位置及び視線方向が決定されることによって、現実空間画像62と仮想空間画像64との位置合わせが行われ、ゲーム画面60における戦車52の表示位置が決定されることになる。
【0102】
一方、マーカ40が含まれると判定されない場合(S3;N)、所定のマーカ40が検出されたと判定されない場合(S4;N)、制御部12は、仮想空間画像64をゲーム画面60から消去し、「マーカが検出できません」等の所定のメッセージを表示部18に表示させる(S9)。この場合、ユーザは、CCDカメラ24の視野内にマーカ40が含まれ、かつ、当該マーカ40が検出可能な位置に表示されるように、携帯端末10の位置や向きを変える。
【0103】
図13に示すように、制御部12は、現実空間画像62が示す撮影範囲が変化したか否かを判定する(S10)。例えば、直近に生成された現実空間画像62と、当該現実空間画像62の所定期間前に生成された現実空間画像62と、がパターンマッチングされることによって、S10の処理が実行される。また例えば、所定期間における現実空間画像62のマーカ40の表示位置の変化が所定距離以上であるか否かが判定されるようにしてもよい。
【0104】
現実空間画像62が示す撮影範囲が変化したと判定されない場合(S10;N)、制御部12は、戦車52の方向指示操作が入力されたか否かを判定する(S11)。方向指示操作が入力されたと判定された場合(S11;Y)、制御部12は、当該入力された方向指示操作に対応する基本方向に基づいて戦車52を移動させる(S12)。即ち、ユーザにより入力された方向指示操作に対応する基本方向が仮想空間座標系のベクトルに変換され、この変換された方向に戦車52が移動するように、ゲーム空間50の状況が更新される。
【0105】
一方、現実空間画像62が示す撮影範囲が変化したと判定された場合(S10;Y)、制御部12は、所定期間内に戦車52の方向指示操作が入力されたか否かを判定する(S13)。所定期間内に方向指示操作が入力されたと判定された場合(S13;Y)、制御部12は、方向指示操作と基本方向との対応付けを変更する(S14)。
【0106】
S14においては、例えば、複数の方向指示操作の全てが、仮想空間座標系で表される撮影範囲の変化方向をローカル座標系に変換した方向に対応付けられるように、方向指示操作と基本方向との対応付けが変更される。S14において変更された対応付けは、例えば、主記憶部16に一時的に記憶される。
【0107】
制御部12は、S14で変更された対応付けに基づいて戦車52を移動させる(S15)。S15においては、現実空間画像62が示す撮影範囲の変化方向に戦車52が移動するように、戦車52の位置が制御される。例えば、仮想カメラ58の視野が変化した方向に戦車52が移動する。
【0108】
制御部12は、S14において戦車52を移動させると、S13で変更した対応付けを元に戻す(S16)。制御部12は、終了条件を満たすか否かを判定する(S17)。終了条件は、本処理を終了するための予め定められた条件である。例えば、終了条件は、ゲームオーバーの条件や、ゲームの終了指示が入力されたか否か等である。
【0109】
終了条件を満たすと判定された場合(S17;Y)、処理は終了する。終了条件を満たすと判定されない場合(S17;N)、処理はS3に戻る。
【0110】
以上説明した携帯端末10によれば、現実空間画像62が示す撮影範囲が変化し、所定期間内に方向指示操作が行われた場合、方向指示操作と基本方向との対応付けが変更されることによって、現実空間画像62が広がった方向に戦車52を移動させることができる。即ち、戦車52がゲーム画面60から外れることを防止し、ユーザの操作補助をすることができる。
【0111】
例えば、ジャイロセンサや加速度センサの検出信号に基づいて携帯端末10が傾いた方向に戦車52を移動させるような場合は、仮想カメラ58の視野から戦車52が外れてしまうので、戦車52が見えなくなってしまう可能性がある。しかし、実施形態の携帯端末10は、現実空間画像62が広がった方向に戦車52を移動させるので、ゲーム画面60の表示領域から戦車52がはみ出てしまうような誤操作をユーザが行った場合であっても、広がったスペースへ戦車52を移動させ、ゲーム画面60内におさまるように移動制御を行うことができ、ユーザの操作補助を効果的に行うことができる。
【0112】
[2.実施形態2]
次に、本発明に係る携帯端末10の別の実施形態について説明する。実施形態1においては、現実空間画像62が示す撮影範囲の変化方向に基づいて方向指示操作と基本方向との対応付けが変更される場合を説明した。実施形態2においては、戦車52の表示位置に基づいて対応付けを変更する必要があるか否かを判定する。つまり、方向指示操作と基本方向との対応付けを変更する必要が低い状況においては、対応付けを変更せずに、元の対応付けのままユーザに方向指示操作を行わせる。
【0113】
実施形態2の携帯端末10のハードウェア構成及び機能ブロックは、実施形態1と同様である。
【0114】
実施形態2の移動制御部78は、現実空間における現実空間画像62が示す撮影範囲と、仮想空間における操作対象(例えば、戦車52)の位置と、の位置関係の変化が所定の条件を満たす場合、方向指示操作と基本方向との対応付けを変更する。所定の条件とは、現実空間画像62が示す撮影範囲と戦車52の位置との位置関係の変化に関する条件である。
【0115】
携帯端末10においては、CCDカメラ22の撮影範囲と仮想カメラ58の視点とは対応しているので、現実空間画像62が示す撮影範囲と戦車52の位置との位置関係は、ゲーム画面60における戦車52の表示位置を示すものであり、例えば、ゲーム画面60の中心点と戦車52の表示位置との位置関係と同意である。
【0116】
例えば、ゲーム画面60における戦車52の表示位置の変化が所定の条件を満たすか否かに応じて、方向指示操作と基本方向との対応付けが変更されるか否かが決定される。
【0117】
図14は、ゲーム画面60における戦車52の表示位置を説明するための図である。例えば、ゲーム画面60の表示領域が複数に分割された各領域(中央領域60a、左端部領域60b、上端部領域60c、右端部領域60d、下端部領域60e)の何れに戦車52が表示されているか、によって方向指示操作と基本方向との対応付けが変更される。
【0118】
これら戦車52の表示位置が、これら5つの領域をどのようにまたがって変化したか否かによって、方向指示操作と基本方向との対応付けが変更されるか否かが決定される。なお、図14に示すXS軸とYS軸は、スクリーン座標系の座標軸である。上記の各領域は、スクリーン座標系により定義される。
【0119】
図15は、方向指示操作と基本方向との対応付けが変更されるための条件を示す図である。図15に示すように、例えば、現実空間画像62が変化する前後で、ゲーム画面60において戦車52が表示されている領域の変化が満たす条件に応じて、方向指示操作と基本方向との対応付けが変更されるか否かが決定される。
【0120】
例えば、現実空間画像62が変化することによって、中央領域60aから左端部領域60b〜下端部領域60eの何れかに戦車52の表示位置が移動した場合、戦車52がゲーム画面60から外れてしまいそうになるので、方向指示操作と基本方向との対応付けが変更されることによって、ユーザの操作補助が行われる。
【0121】
また例えば、現実空間画像62が変化したが、中央領域60a内に戦車52の表示位置が留まっている場合、戦車52がゲーム画面60から外れる可能性は少ないので、方向指示操作と基本方向との対応付けは変更されない。
【0122】
また例えば、現実空間画像62が変化することによって、左端部領域60b〜下端部領域60eの何れかから中央領域60aに戦車52の表示位置が移動した場合、戦車52がゲーム画面60から外れる可能性は少ないので、方向指示操作と基本方向との対応付けは変更されない。
【0123】
また例えば、現実空間画像62が変化したが、左端部領域60b〜下端部領域60eの何れかの内部に戦車52の表示位置が留まっている場合、撮影範囲がそれほど変化していないため現実空間画像62戦車52がゲーム画面60から外れる可能性は少ないので、方向指示操作と基本方向との対応付けは変更されない。
【0124】
また例えば、現実空間画像62が変化することによって、左端部領域60b〜下端部領域60eの何れかから他の左端部領域60b〜下端部領域60eに戦車52の表示位置が移動した場合、撮影範囲が大きく移動して戦車52がゲーム画面60から外れてしまいそうになるので、方向指示操作と基本方向との対応付けが変更されることによって、ユーザの操作補助が行われる。
【0125】
実施形態2においては、図12及び図13と同様の処理が実行されるが、S14の処理が実行されるにあたり、現実空間における現実空間画像62が示す撮影範囲と、仮想空間における戦車52の位置と、の位置関係の変化が所定の条件を満たすか否かが判定される。
【0126】
例えば、対応付けを変更しないとされている条件を満たしている場合は、S14〜S16の処理に代えてS12の処理が実行され、方向指示操作と基本方向との対応付けが変更されることなく、戦車52の位置が制御される。一方、例えば、対応付けを変更するとされている条件を満たしている場合は、S14〜S16の処理が実行される。
【0127】
実施形態2の携帯端末10によれば、戦車52の表示位置の変化が満たす条件に基づいて方向指示操作と基本方向との対応付けを変更するか否かが決定される。したがって、例えば、戦車52がゲーム画面60からはみ出る可能性が低い状況やユーザが誤入力をする可能性が低い状況においては、対応付けを変更するとかえってユーザが戸惑ってしまう場合があるので、このような状況においては対応付けを変更しないようにすることができる。
【0128】
[3.実施形態3]
次に、本発明に係る携帯端末10の別の実施形態について説明する。実施形態1及び実施形態2においては、全ての方向指示操作に対応付けられた基本方向が同じ方向に変更される場合を説明した。即ち、ユーザがボタン66のどれを押下した場合であっても、現実空間画像62が広がった方向に戦車52が移動する場合を説明した。基本方向との対応付けが変更されるのは全ての方向指示操作ではなく一部の方向指示操作のみであってもよい。
【0129】
実施形態3の携帯端末10のハードウェア構成及び機能ブロックは、実施形態1と同様である。
【0130】
実施形態3の移動制御部78は、所定期間内に行われた方向指示操作に対応する基本方向に基づいて定まる操作対象(例えば、戦車52)の移動方向と、現実空間画像62が示す撮影範囲の変化方向と、のずれを判定する。例えば、所定期間内に行われた方向指示操作に対応付けられた基本方向が、仮想空間座標系のベクトル方向に変換され、戦車52の移動方向が特定される。なお、この移動方向に戦車52が移動するとは限らず、ここで特定される移動方向は、戦車52が移動しようとしている方向といえる。
【0131】
戦車52の移動方向と、現実空間画像62が示す撮影範囲の変化方向(即ち、仮想カメラ58の視野の変化方向と同意。)と、が比較される。ここでは、両者の方向のずれとして、2つのベクトルの余弦(cosθ)が算出される。この余弦に応じて、方向指示操作と基本方向との対応付けを変更させるか否かが決定される。
【0132】
図16は、実施形態3の処理を説明するための図である。図16は、現実空間画像62が左方向に広がり、方向指示操作としてボタン66aが押下された場合を示す。変更前の対応付けに基づいて定まる戦車52の移動方向VLW(即ち、戦車52の正面方向)と、撮影範囲の変化方向VRCと、の両者のベクトルの余弦が比較的小さい場合は、両者のベクトルが互いに反対方向を向いていることを示している。
【0133】
即ち、ユーザが、現実空間画像62が狭まった方向に戦車52を移動させようとしており、ユーザが誤入力をしている可能性があるため、この場合は、方向指示操作と基本方向との対応付けが変更される。
【0134】
一方、変更前の対応付けに基づいて定まる戦車52の移動方向と、撮影範囲の変化方向と、の両者のベクトルの余弦が比較的大きい場合は、両者のベクトルが互いに同じ方向を向いていることを示している。即ち、ユーザが、現実空間画像62が広がった方向に戦車52を移動させようとしているので、方向指示操作と基本方向との対応付けが変更されない。
【0135】
実施形態3の移動制御部78は、ずれが基準範囲である場合、ユーザにより行われた方向指示操作に対応する基本方向に基づいて操作対象(例えば、戦車52)を移動させる。例えば、余弦が基準範囲である場合(例えば、cosθ>−0.5)、方向指示操作と基本方向との対応付けの変更処理が制限され、元の対応付けのまま戦車52を移動させる。この場合、現実空間画像62が狭くなった方向に戦車52を移動させようとしている訳ではないので、対応付けを変更する必要性が低いため、上記のように、対応付けが変更されない。
【0136】
また、実施形態3の移動制御部78は、ずれが基準範囲でない場合、現実空間画像62が示す撮影範囲の変化内容に基づいて方向指示操作と基本方向との対応付けを変更し、当該変更後の対応付けと所定期間内に行われた方向指示操作とに基づいて操作対象(例えば、戦車52)を移動させる。例えば、余弦が基準範囲でない場合(例えば、cosθ≦−0.5)、方向指示操作と基本方向との対応付けの変更処理が行われる。この場合、現実空間画像62が狭くなった方向に戦車52を移動させようとしているため、対応付けを変更して現実空間画像62が広がった方向に戦車52を移動させる。
【0137】
実施形態3においては、図12及び図13と同様の処理が実行されるが、S14の処理が実行されるにあたり、所定期間内に行われた方向指示操作に対応する基本方向に基づいて定まる戦車52の移動方向と、現実空間画像62が示す撮影範囲の変化方向と、のずれが判定される。ずれが所定範囲であれば、処理はS12に移行する。ずれが所定範囲でなければ、処理はS14に移行する。
【0138】
実施形態3の携帯端末10によれば、所定期間内に行われた方向指示操作に対応する基本方向に基づいて定まる戦車52の移動方向と、現実空間画像62が示す撮影範囲の変化方向と、のずれに応じて、方向指示操作と基本方向との対応付けを変更するか否かが決定される。例えば、過度に操作補助が行われるとかえってユーザが戸惑ってしまう場合があるので、現実空間画像62が狭まった方向に戦車52を移動させようとしている場合以外には、対応付けを変更しないようにすることによって、ユーザに戸惑わせることなく適度な操作補助を提供することができる。
【0139】
[4.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0140】
(1)例えば、上記実施形態においては、現実空間画像62が示す撮影範囲の変化方向が、現実空間座標系の3次元のベクトルで表される場合を説明したが、この変化方向は、ゲーム画面60上に設定される2次元のベクトル(スクリーン座標系のベクトル)で表されてもよい。この場合、例えば、現実空間画像62が広がった画素が配置されている方向が、撮影範囲の変化方向として取得される。
【0141】
この場合、撮影範囲の変化方向を示す2次元のベクトルを、S7で算出した座標変換行列で逆変換を行うことによって、ゲーム空間50において戦車52を移動させるべき方向(仮想空間座標系における3次元ベクトル)が特定される。この方向に戦車52が移動するように、方向指示操作と基本方向との対応付けが変更されるようにすればよい。
【0142】
(2)また例えば、方向指示操作に対応する基本方向が、戦車52を基準とするキャラクタ座標系で表現される場合を説明したが、基本方向は、仮想空間座標系で表現されるようにしてもよい。基本方向は、仮想視点座標系と異なる座標系で定義されるようにすればよい。なお、基本方向を仮想視点座標系で表現するようにしてもよい。
【0143】
(3)また例えば、実施形態においては、水平面上を戦車52が移動する場合を説明したが、ユーザの操作対象が移動する範囲は、実施形態の例に限られない。例えば、操作対象は、ボールや鳥のようなものであってもよく、ユーザの操作によって仮想3次元空間を垂直方向に移動するようにしてもよい。
【0144】
(4)また例えば、方向指示操作と基本方向とを4つとして説明したが、方向指示操作と基本方向との数はこれに限られない。例えば、ユーザが8つの方向指示操作を入力できるようにしてもよい。
【0145】
(5)また例えば、実施形態においては、現実空間画像62の変化方向に基づいて対応付けが変更される場合を説明したが、現実空間画像62の変化量に基づいて対応付けが変更されるようにしてもよい。例えば、現実空間画像62の変化量が所定範囲であるか否かに基づいて、方向指示操作に対応付けられる方向が異なるようにしてもよい。
【0146】
(6)また例えば、実行中のゲームの状況に応じて、方向指示操作に対応付けられる基本方向が異なるようにしてもよい。例えば、戦車52の残り体力が多い場合は、現実空間画像62が示す撮影範囲の変化方向にいる敵56を移動方向としてもよいし、戦車の残り体力が少ない場合は、現実空間画像62が示す撮影範囲の変化方向にある空きスペースの方向を移動方向とし、戦車52を退避させるようにしてもよい。
【0147】
(7)また例えば、戦車52の移動速度、移動ルート、戦車52の向き、又は戦車52の姿勢が、現実空間画像62が示す撮影範囲の変化方向に基づいて決定されるようにしてもよい。
【0148】
例えば、戦車52の移動速度が、戦車52の現在位置とゲーム空間50に配置されたオブジェクトの位置との位置関係と、現実空間画像62が示す撮影範囲の変化方向と、に基づいて決定される。例えば、戦車52の現在位置と、現実空間画像62が示す撮影範囲の変化方向にいる敵56の位置とが離れているほど、戦車52の移動速度が速くなる。また例えば、現実空間画像62が示す撮影範囲の変化量が大きいほど、戦車52の移動速度が速くなるようにしてもよい。
【0149】
また例えば、戦車52の移動ルートが、戦車52の現在位置とゲーム空間50に配置されたオブジェクトの位置との位置関係と、現実空間画像62が示す撮影範囲の変化方向と、に基づいて決定される。例えば、戦車52が、現実空間画像62が示す撮影範囲の変化方向にいる敵56と衝突しないように、移動ルートが決定される。
【0150】
また例えば、戦車52の向き又は姿勢が、戦車52の現在位置とゲーム空間50に配置されたオブジェクトの位置との位置関係と、現実空間画像62が示す撮影範囲の変化方向と、に基づいて決定される。例えば、戦車52の正面が、現実空間画像62が示す撮影範囲の変化方向にいる敵56の方向を向くように、戦車52の向き又は姿勢が決定される。
【0151】
(8)また例えば、ユーザに拡張現実を提供する方法として、マーカ40を用いた方法を例に挙げて説明したが、拡張現実を手供する方法は、上記の例に限られない。ユーザに拡張現実を提供する方法自体は、他にも公知の種々の手法が適用可能であり、例えば、下記の方法を適用することができる。
【0152】
(8−1)例えば、マーカ40にかえて可視光を発する物体(例えば、LED)が検出対象として用いられるようにしてもよい。即ち、LED等を用いた可視光をCCDカメラ24で撮影することによって、拡張現実が提供されるようにしてもよい。可視光を用いて拡張現実が提供される方法としては、例えば、下記の2つの方法がある。
【0153】
まず、第1の方法としては、LEDを所定の法則に基づいて並べることによって、実施形態のようにマーカ40を用いた方法と同様の方法で座標変換行列を算出する方法が挙げられる。この場合、例えば、マーカ40の枠42の四隅の位置にLEDを配置する。例えば、CCDカメラ24によりこれら4つのLEDを撮影し、LEDの発光位置のずれ(歪み)が検出されることによって、CCDカメラ24とLEDとの位置関係が取得される。即ち、座標変換行列が取得される。以降の処理は、実施形態と同様であるので説明を省略する。
【0154】
また、第2の方法として、LEDの点灯と消灯が繰り返えされることによって、所定のデジタルデータを疑似的に表現する方法が挙げられる。例えば、LEDが点灯している場合には「1」とし、LEDが消灯している場合には「0」とする。LEDを連続撮影して得られる現実空間画像に基づいて得られるデジタルデータが、LEDの位置、発光方向を示すように、LEDの点灯と消灯を制御することによって、実施形態と同様の座標変換行列が取得されるようにしてもよい。以降の処理は、実施形態と同様であるので説明を省略する。
【0155】
(8−2)また例えば、現実空間にマーカ40を配置せずに、現実空間画像62に含まれる物体から特徴点を抽出することによって、拡張現実が提供されるようにしてもよい。即ち、いわゆるマーカレス方式の拡張現実が採用されるようにしてもよい。この場合、現実空間に配置される物体(又は、その特徴点)が、検出対象となる。
【0156】
図17は、マーカレス方式の拡張現実を説明するための図である。図17に示すように、例えば、現実空間に配置された物体の特徴点(例えば、机の輪郭やコップの縁)を、公知の特徴点抽出法(例えば、画像マッチングを用いたコーナー検出法等)により抽出する。例えば、現実空間に配置された机の輪郭を特徴点Q1〜Q4とし、机の接地点を特徴点Q5〜Q8とする。
【0157】
CCDカメラ24の位置又は視線方向が変化する場合、この特徴点Q1〜Q8の位置変化(変化量及び変化方向)をトラッキングすることによって、CCDカメラ24の位置と視線方向が算出される。CCDカメラ24の位置と視線方向が算出された後は、実施形態と同様に座標変換行列が算出されることによって、拡張現実が提供される。
【0158】
(8−3)また例えば、センサ部26を用いることによって、マーカ40を用いずに拡張現実が提供されるようにしてもよい。変形例(8−3)においては、現実空間における撮影部72(例えば、CCDカメラ24)の位置、向き、及び姿勢を検出する装置検出手段が、制御部12及びセンサ部26を主として実現される。
【0159】
例えば、センサ部26が、GPSセンサ、電子コンパス(地磁気センサ)、及びジャイロセンサを含んで構成される場合、例えば、GPSセンサから得られる信号に基づいてCCDカメラ24の現実空間における位置が取得される。また、電子コンパスから得られる信号に基づいてCCDカメラ24の向きが取得される。また、ジャイロセンサにより得られる信号に基づいてCCDカメラ24の姿勢が取得される。
【0160】
変形例(8−3)の表示制御部74は、装置検出手段の検出結果(例えば、現実空間における携帯端末10の位置、向き、及び姿勢)に基づいて、現実空間画像62と仮想空間画像64との位置合わせ及び合成を行う。
【0161】
例えば、表示制御部74は、現実空間におけるCCDカメラ24の位置、向き、及び姿勢に基づいて、現実空間におけるCCDカメラ24の位置と視線方向とを算出する。即ち、現実視点座標系の原点OVCと3軸の向きが特定される。そして、現実空間座標系(ここではマーカ40がないので、例えば、現実空間の任意の位置(例えば、GPSセンサの原点)に設定される座標系)と、現実視点座標系と、のずれに基づいて、実施形態と同様に座標変換行列が算出される。
【0162】
また、変形例(8−3)においては、図11と同様の処理が実行されるが、ユーザに拡張現実を提供する方法としてS3〜S6の処理に代えて、センサ部26により、携帯端末10の位置、向き、及び姿勢が検出される。そして、センサ部26の検出結果(即ち、携帯端末10の位置、向き、及び姿勢)に基づいて、現実空間におけるCCDカメラ24の位置及び視線方向が特定される。即ち、S7と同様に、現実空間座標系と現実視点座標系との関係が特定されることによって、ユーザに拡張現実が提供される。
【0163】
なお、現実空間におけるCCDカメラ24の位置、向き、及び姿勢を検出する方法は、公知の種々の手法を適用可能である。上記の他にも例えば、無線LANのアクセスポイントから発信される電波を使用して位置を測定するようにしてもよい。この場合、各アクセスポイントが設置されている場所がデータベースとして登録されている。また例えば、GPS電波を発信する小型の基地局を屋内に設置するいわゆるIMES(Indoor Messaging System)を用いて携帯端末10の位置が取得されるようにしてもよい。
【0164】
(9)また例えば、本発明は、実施形態や変形例において説明したゲーム以外の拡張現実にも適用することができる。例えば、ユーザの操作対象になるものは戦車の例に限られず、車やキャラクタが操作対象として仮想空間に配置されるようにしてもよい。即ち、例えば、車が走るレースコースやキャラクタが現実空間の机の上をステージにして歌やダンスをするような拡張現実が提供されるようにしてもよい。この場合、実施形態や変形例と同様の方法を用いて、車やキャラクタの位置の制御を、現実空間画像が示す撮影範囲の変化方向に基づいて行うようにすればよい。
【符号の説明】
【0165】
10 携帯端末、12 制御部、14 記憶部、16 主記憶部、18 表示部、20 操作キー部、22 タッチパネル、24 CCDカメラ、26 センサ部、28 通信部、30 バス、40 マーカ、42 枠、44 模様、50 ゲーム空間、52 戦車、54 砦、56 敵、58 仮想カメラ、60 ゲーム画面、62 現実空間画像、64 仮想空間画像、66a 前進ボタン、66b 後退ボタン、66c 左回転ボタン、66d 右回転ボタン、70 拡張現実データ記憶部、72 撮影部、74 表示制御部、76 操作部、78 移動制御部、80 判定部。
【特許請求の範囲】
【請求項1】
ユーザの操作により撮影範囲が変化する撮影手段と、
前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段と、
前記ユーザが前記操作対象の方向指示操作を行うための操作手段と、
前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段と、
前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段と、
を含み、
前記移動制御手段は、
前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、
ことを特徴とする画像処理装置。
【請求項2】
前記移動制御手段は、
前記現実空間における前記現実空間画像が示す前記撮影範囲と、前記仮想空間における前記操作対象の位置と、の位置関係の変化が所定の条件を満たす場合、前記方向指示操作と前記基本方向との対応付けを変更する、
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記移動制御手段は、
前記方向指示操作と、前記仮想空間における前記視点の視点座標系とは異なる座標系で示される前記基本方向と、の対応付けを変更する、
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記移動制御手段は、
前記所定期間内に行われた前記方向指示操作に対応する前記基本方向に基づいて定まる前記操作対象の移動方向と、前記現実空間画像が示す前記撮影範囲の変化方向と、のずれを判定する手段と、
前記ずれが基準範囲である場合、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる手段と、
前記ずれが基準範囲でない場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる手段と、
を含むことを特徴とする請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
ユーザの操作により撮影範囲が変化する撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御ステップと、
前記ユーザが前記操作対象の方向指示操作を行うための操作手段から前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御ステップと、
前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定ステップと、
を含み、
前記移動制御ステップにおいては、
前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、
ことを特徴とする画像処理装置の制御方法。
【請求項6】
ユーザの操作により撮影範囲が変化する撮影手段、
前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段、
前記ユーザが前記操作対象の方向指示操作を行うための操作手段、
前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段、
前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段、
を含み、
前記移動制御手段は、
前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、
ことを特徴とする画像処理装置としてコンピュータを機能させるためのプログラム。
【請求項1】
ユーザの操作により撮影範囲が変化する撮影手段と、
前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段と、
前記ユーザが前記操作対象の方向指示操作を行うための操作手段と、
前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段と、
前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段と、
を含み、
前記移動制御手段は、
前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、
ことを特徴とする画像処理装置。
【請求項2】
前記移動制御手段は、
前記現実空間における前記現実空間画像が示す前記撮影範囲と、前記仮想空間における前記操作対象の位置と、の位置関係の変化が所定の条件を満たす場合、前記方向指示操作と前記基本方向との対応付けを変更する、
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記移動制御手段は、
前記方向指示操作と、前記仮想空間における前記視点の視点座標系とは異なる座標系で示される前記基本方向と、の対応付けを変更する、
ことを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記移動制御手段は、
前記所定期間内に行われた前記方向指示操作に対応する前記基本方向に基づいて定まる前記操作対象の移動方向と、前記現実空間画像が示す前記撮影範囲の変化方向と、のずれを判定する手段と、
前記ずれが基準範囲である場合、前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる手段と、
前記ずれが基準範囲でない場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる手段と、
を含むことを特徴とする請求項1〜3の何れか一項に記載の画像処理装置。
【請求項5】
ユーザの操作により撮影範囲が変化する撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御ステップと、
前記ユーザが前記操作対象の方向指示操作を行うための操作手段から前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御ステップと、
前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定ステップと、
を含み、
前記移動制御ステップにおいては、
前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、
ことを特徴とする画像処理装置の制御方法。
【請求項6】
ユーザの操作により撮影範囲が変化する撮影手段、
前記撮影手段が現実空間を撮影することによって生成される現実空間画像と、前記撮影範囲に対応する視野が設定された視点から前記ユーザの操作対象が配置された仮想空間を見た様子を示す仮想空間画像と、に関する位置合わせ及び合成をして表示画面に表示させる表示制御手段、
前記ユーザが前記操作対象の方向指示操作を行うための操作手段、
前記ユーザにより行われた前記方向指示操作に対応する基本方向に基づいて前記操作対象を移動させる移動制御手段、
前記現実空間画像が示す前記撮影範囲が変化したか否かを判定する判定手段、
を含み、
前記移動制御手段は、
前記現実空間画像が示す前記撮影範囲が変化したと判定され、所定期間内に前記方向指示操作が行われた場合、前記現実空間画像が示す前記撮影範囲の変化内容に基づいて前記方向指示操作と前記基本方向との対応付けを変更し、当該変更後の対応付けと前記所定期間内に行われた方向指示操作とに基づいて前記操作対象を移動させる、
ことを特徴とする画像処理装置としてコンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−216074(P2012−216074A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−80847(P2011−80847)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願日】平成23年3月31日(2011.3.31)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
[ Back to top ]