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