(57)【要約】【課題】ＡＲの技術を情報処理に有効活用する。【解決手段】撮影画像に含まれるマーカ１２８ｂを検出したら、当該マーカ１２８ｂに対応する情報処理を開始し、対応するキャラクタ１５０ａ、アイコン１５２ａ、１５２ｂ、１５２ｃのオブジェクトを、被写空間に対応する３次元座標系に配置して撮影画像上に描画し、即時表示する。アイコン１５２ａ、１５２ｂ、１５２ｃは、マーカ１２８ｂが置かれている平面上に置かれているように表現し、表示画面上のタッチパッドに対する接触、あるいは指による被写空間における対応位置の指示、のいずれかに基づき操作可能とする。【選択図】図８
2015041126.tif 000002
【特許請求の範囲】
【請求項１】
実空間を撮影中のカメラから当該撮影画像のデータを取得する撮影画像取得部と、
前記撮影画像を解析し、被写空間に存在するマーカを検出する画像解析部と、
前記カメラと被写空間との相対的な位置関係を特定し、被写空間に対応する３次元座標系と前記カメラの視野に対応するスクリーンを定義する空間定義部と、
検出されたマーカに対応する情報処理を実行するとともに、前記３次元座標系に、前記マーカに対応する仮想のオブジェクトを配置する情報処理部と、
前記スクリーンに前記仮想のオブジェクトを投影してなるオブジェクト画像を前記撮影画像に重畳して出力画像を生成し、表示装置に出力する出力画像生成部と、
を備え、
前記情報処理部は、前記仮想のオブジェクトとして、前記情報処理に対するユーザ操作手段である操作用オブジェクトを配置することを特徴とする情報処理装置。
【請求項２】
前記画像解析部は、前記撮影画像を解析してユーザの手指をさらに検出し、
前記情報処理部は、前記画像解析部における解析結果により、前記操作用オブジェクトの配置位置に対応する実空間の位置をユーザが指示したことを認識したとき、当該操作用オブジェクトに対応する処理を開始することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示装置の画面を覆い接触操作を検知するタッチパッドをさらに備え、
前記情報処理部は、表示中の出力画像における前記操作用オブジェクトの領域にユーザが触れたことを前記タッチパッドを介して認識したとき、当該操作用オブジェクトに対応する処理を開始することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記情報処理部は、前記３次元座標系のうち実空間における前記マーカとの同一面に前記操作用オブジェクトを配置することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記情報処理部はさらに、前記操作用オブジェクトを用いた操作の対象である操作対象オブジェクトを配置することを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
前記情報処理部は、前記操作対象オブジェクトとして複数ページからなる画像群の一部のページを配置し、前記操作用オブジェクトとして、配置する画像のページを切り替えるためのボタンを配置することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記情報処理部は、前記仮想のオブジェクトとしてさらに、前記カメラとの相対的な位置関係に応じて挙動を変化させるキャラクタのオブジェクトを配置することを特徴とする請求項１から６のいずれかに記載の情報処理装置。
【請求項８】
前記情報処理装置の動きを検出するセンサをさらに備え、
前記情報処理部は、前記操作用オブジェクトとして可動オブジェクトを配置し、前記情報処理装置の動きに係る情報を前記センサから取得して、当該動きを反映するように前記可動オブジェクトを前記３次元座標系において動かすことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記情報処理部は、前記３次元座標系における前記仮想のオブジェクトのサイズを所定の規則により決定し、前記情報処理装置の動きに対する前記可動オブジェクトの動きの感度を、当該オブジェクトのサイズに基づき決定することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記情報処理部は、検出された前記マーカのサイズに基づき、前記仮想のオブジェクトのサイズを決定することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記情報処理部は、前記情報処理の結果が所定の条件を満たしたとき、前記仮想のオブジェクトのサイズを変化させることを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
情報処理装置が撮影画像を用いて行う情報処理方法であって、
実空間を撮影中のカメラから当該撮影画像のデータを取得しメモリに格納するステップと、
前記撮影画像を解析し、被写空間に存在するマーカを検出するステップと、
前記カメラと被写空間との相対的な位置関係を特定し、被写空間に対応する３次元座標系と前記カメラの視野に対応するスクリーンを定義するステップと、
検出されたマーカに対応する情報処理を実行するとともに、前記３次元座標系に、前記マーカに対応する仮想のオブジェクトを配置するステップと、
前記スクリーンに前記仮想のオブジェクトを投影してなるオブジェクト画像を、前記メモリより読み出した前記撮影画像に重畳して出力画像を生成し、表示装置に出力するステップと、
を含み、
前記配置するステップは、前記仮想のオブジェクトとして、前記情報処理に対するユーザ操作手段である操作用オブジェクトを配置することを特徴とする情報処理方法。
【請求項１３】
実空間を撮影中のカメラから当該撮影画像のデータを取得する機能と、
前記撮影画像を解析し、被写空間に存在するマーカを検出する機能と、
前記カメラと被写空間との相対的な位置関係を特定し、被写空間に対応する３次元座標系と前記カメラの視野に対応するスクリーンを定義する機能と、
検出されたマーカに対応する情報処理を実行するとともに、前記３次元座標系に、前記マーカに対応する仮想のオブジェクトを配置する機能と、
前記スクリーンに前記仮想のオブジェクトを投影してなるオブジェクト画像を前記撮影画像に重畳して出力画像を生成し、表示装置に出力する機能と、
をコンピュータに実現させ、
前記配置する機能は、前記仮想のオブジェクトとして、前記情報処理に対するユーザ操作手段である操作用オブジェクトを配置することを特徴とするコンピュータプログラム。
【請求項１４】
実空間を撮影中のカメラから当該撮影画像のデータを取得する機能と、
前記撮影画像を解析し、被写空間に存在するマーカを検出する機能と、
前記カメラと被写空間との相対的な位置関係を特定し、被写空間に対応する３次元座標系と前記カメラの視野に対応するスクリーンを定義する機能と、
検出されたマーカに対応する情報処理を実行するとともに、前記３次元座標系に、前記マーカに対応する仮想のオブジェクトを配置する機能と、
前記スクリーンに前記仮想のオブジェクトを投影してなるオブジェクト画像を前記撮影画像に重畳して出力画像を生成し、表示装置に出力する機能と、
をコンピュータに実現させ、
前記配置する機能は、前記仮想のオブジェクトとして、前記情報処理に対するユーザ操作手段である操作用オブジェクトを配置するコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ操作に応じて情報処理を実施する情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
携帯型のゲーム機やＰＤＡ（Personal Digital Assistant）等の情報処理装置が普及している。近年では、多くの情報処理装置が通信機能を搭載し、またスマートフォンのように、携帯電話やＰＤＡ等の機能を一つにまとめた多機能型の情報処理装置も登場している。このような情報処理装置は大容量のメモリおよび高速プロセッサを搭載しており、ユーザは、アプリケーションプログラムを情報処理装置にインストールすることで、様々なアプリケーションを楽しめるようになっている。
【０００３】
例えば情報処理装置に備えたカメラによって実写した画像に３次元グラフィックスにより描画したオブジェクトを重畳させて表示画像とすることにより、現実世界と仮想世界を融合させた拡張現実（ＡＲ：Augmented Reality）の技術も提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−９２９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＡＲの技術の利用は、ユーザの動き認識に基づく仮想世界の構築とは異なるアプローチによって現実世界と仮想世界を融合させているといえる。これらの技術は、単に見た目の楽しさを提供するばかりでなく、直感的かつ容易に装置を操作したり出力結果を理解したりするのに有益と考えられる。しかしながら現状のＡＲの適用範囲は限定的であり、より広い範囲への応用が求められている。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、情報処理においてＡＲの技術を効果的に利用できる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様は情報処理装置に関する。この情報処理装置は、実空間を撮影中のカメラから当該撮影画像のデータを取得する撮影画像取得部と、撮影画像を解析し、被写空間に存在するマーカを検出する画像解析部と、カメラと被写空間との相対的な位置関係を特定し、被写空間に対応する３次元座標系とカメラの視野に対応するスクリーンを定義する空間定義部と、検出されたマーカに対応する情報処理を実行するとともに、３次元座標系に、マーカに対応する仮想のオブジェクトを配置する情報処理部と、スクリーンに仮想のオブジェクトを投影してなるオブジェクト画像を撮影画像に重畳して出力画像を生成し、表示装置に出力する出力画像生成部と、を備え、情報処理部は、仮想のオブジェクトとして、情報処理に対するユーザ操作手段である操作用オブジェクトを配置することを特徴とする。
【０００８】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が撮影画像を用いて行う情報処理方法であって、実空間を撮影中のカメラから当該撮影画像のデータを取得しメモリに格納するステップと、撮影画像を解析し、被写空間に存在するマーカを検出するステップと、カメラと被写空間との相対的な位置関係を特定し、被写空間に対応する３次元座標系とカメラの視野に対応するスクリーンを定義するステップと、検出されたマーカに対応する情報処理を実行するとともに、３次元座標系に、マーカに対応する仮想のオブジェクトを配置するステップと、スクリーンに仮想のオブジェクトを投影してなるオブジェクト画像を、メモリより読み出した撮影画像に重畳して出力画像を生成し、表示装置に出力するステップと、を含み、配置するステップは、仮想のオブジェクトとして、情報処理に対するユーザ操作手段である操作用オブジェクトを配置することを特徴とする。
【０００９】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、ＡＲの技術をゲームなどの情報処理に有効に活用できる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）は電子機器の前面を示す図であり、（ｂ）は電子機器の背面を示す図である。
【図２】（ａ）は電子機器の上面を示す図であり、（ｂ）は電子機器の下面を示す図であり、（ｃ）は電子機器の左側面を示す図である。
【図３】電子機器の回路構成を示す図である。
【図４】本実施の形態における情報処理装置の機能ブロックを示す図である。
【図５】本実施の形態における情報処理装置の使用環境例を説明するための図である。
【図６】本実施の形態において実空間とオブジェクト描画のための座標系の関係を例示する図である。
【図７】本実施の形態における情報処理装置がオブジェクト描画を伴うゲームを実行する処理手順を示すフローチャートである。
【図８】本実施の形態においてアプリケーションの実行段階で表示装置に表示される画面例を示す図である。
【図９】本実施の形態においてマーカ検出部がマーカ検出および対応アプリケーション特定を行う際に参照するデータの構造例を示す図である。
【図１０】本実施の形態において情報処理部がマーカに対応するアプリケーションを実行する処理手順例を示すフローチャートである。
【図１１】本実施の形態における説明書きの表示画面例を示す図である。
【図１２】図１１の画面例が表示されている状態から、実空間においてユーザがカメラをマーカに近づけた場合の画面の変化例を示す図である。
【図１３】本実施の形態において対戦モードで表示される画面例を示す図である。
【図１４】本実施の形態において観戦モードで表示される画面例を示す図である。
【図１５】本実施の形態において情報処理部がマーカに対応して描画するオブジェクトを特定する際に参照するデータの構造例を示す図である。
【図１６】本実施の形態における特別な対戦モードにおいて表示される画面の例を示す図である。
【図１７】本実施の形態でオブジェクトのサイズを変化させることを許容した場合において、対戦モード時にオブジェクトを描画する処理手順を示すフローチャートである。
【図１８】本実施の形態において情報処理部がアプリケーション実行時にキャラクタに特定動作をさせるために参照するデータの構造例を示す図である。
【図１９】図１８の特定動作設定情報で設定する条件の表し方を説明するための図である。
【図２０】本実施の形態において情報処理部と出力画像生成部がカメラの位置や姿勢の変化に対し表示画像を更新する処理手順を示すフローチャートである。
【図２１】実空間での指の動きによりアイコン操作を実現する態様における表示画面の例を示す図である。
【発明を実施するための形態】
【００１２】
まず本実施の形態の情報処理装置の外観構成例および回路構成例を説明する。ただしここで示す情報処理装置は一例であり、他の種類の電子機器、端末装置であってもよい。
【００１３】
図１（ａ）は、情報処理装置１０の前面を示す。情報処理装置１０は、横長の筐体により形成され、ユーザが把持する左右の領域は、円弧状の外郭を有している。情報処理装置１０の前面には、矩形のタッチパネル５０が設けられる。タッチパネル５０は、表示装置２０と、表示装置２０の表面を覆う透明な前面タッチパッド２１から構成される。表示装置２０は有機ＥＬ（Electro-Liminescence）パネルであり、画像を表示する。なお表示装置２０は液晶パネルなどの表示手段であってもよい。前面タッチパッド２１は、同時にタッチされた複数ポイントの検出機能をもつマルチタッチパッドであって、タッチパネル５０はマルチタッチスクリーンとして構成される。
【００１４】
タッチパネル５０の右側には、菱形の頂点にそれぞれ位置する△ボタン２２ａ、○ボタン２２ｂ、×ボタン２２ｃ、□ボタン２２ｄ（以下、総称する場合には「操作ボタン２２」とよぶ）が設けられ、タッチパネル５０の左側には、上キー２３ａ、左キー２３ｂ、下キー２３ｃ、右キー２３ｄ（以下、総称する場合には「方向キー２３」とよぶ）が設けられる。ユーザは方向キー２３を操作して、上下左右および斜方の８方向を入力できる。
【００１５】
方向キー２３の下側には左スティック２４ａが設けられ、また操作ボタン２２の下側には右スティック２４ｂが設けられる。ユーザは左スティック２４ａまたは右スティック２４ｂ（以下、総称する場合には「アナログスティック２４」とよぶ）を傾動して、方向および傾動量を入力する。筐体の左右頂部には、Ｌボタン２６ａ、Ｒボタン２６ｂが設けられる。操作ボタン２２、方向キー２３、アナログスティック２４、Ｌボタン２６ａ、Ｒボタン２６ｂは、ユーザが操作する操作手段を構成する。
【００１６】
操作ボタン２２の近傍に、前面カメラ３０が設けられる。左スティック２４ａの左側および右スティック２４ｂの右側には、それぞれ音声を出力する左スピーカ２５ａおよび右スピーカ２５ｂ（以下、総称する場合には「スピーカ２５」とよぶ）が設けられる。また左スティック２４ａの下側にＨＯＭＥボタン２７が設けられ、右スティック２４ｂの下側にＳＴＡＲＴボタン２８およびＳＥＬＥＣＴボタン２９が設けられる。
【００１７】
図１（ｂ）は、情報処理装置１０の背面を示す。情報処理装置１０の背面には、背面カメラ３１および背面タッチパッド３２が設けられる。背面タッチパッド３２は、前面タッチパッド２１と同様に、マルチタッチパッドとして構成される。情報処理装置１０は、前面および背面において、２つのカメラおよびタッチパッドを搭載している。
【００１８】
図２（ａ）は、情報処理装置１０の上面を示す。既述したように、情報処理装置１０の上面の左右端側に、Ｌボタン２６ａ、Ｒボタン２６ｂがそれぞれ設けられる。Ｌボタン２６ａの右側には電源ボタン３３が設けられ、ユーザは、電源ボタン３３を押下することで、電源をオンまたはオフする。なお情報処理装置１０は、操作手段が操作されない時間（無操作時間）が所定時間続くと、サスペンド状態に遷移する電力制御機能を有している。情報処理装置１０がサスペンド状態に入ると、ユーザは電源ボタン３３を押下することで、情報処理装置１０をサスペンド状態からアウェイク状態に復帰させることができる。
【００１９】
ゲームカードスロット３４は、ゲームカードを差し込むための差込口であり、この図では、ゲームカードスロット３４がスロットカバーにより覆われている状態が示される。なおゲームカードスロット３４の近傍に、ゲームカードがアクセスされているときに点滅するＬＥＤランプが設けられてもよい。アクセサリ端子３５は、周辺機器（アクセサリ）を接続するための端子であり、この図ではアクセサリ端子３５が端子カバーにより覆われている状態が示される。アクセサリ端子３５とＲボタン２６ｂの間には、ボリュームを調整するための−ボタン３６ａと＋ボタン３６ｂが設けられている。
【００２０】
図２（ｂ）は、情報処理装置１０の下面を示す。メモリカードスロット３７は、メモリカードを差し込むための差込口であり、この図では、メモリカードスロット３７が、スロットカバーにより覆われている状態が示される。情報処理装置１０の下面において、音声入出力端子３８、マイク３９およびマルチユース端子４０が設けられる。マルチユース端子４０はＵＳＢ（Universal Serial Bus）に対応し、ＵＳＢケーブルを介して他の機器と接続できる。
【００２１】
図２（ｃ）は、情報処理装置１０の左側面を示す。情報処理装置１０の左側面には、ＳＩＭカードの差込口であるＳＩＭカードスロット４１が設けられる。
【００２２】
図３は、情報処理装置１０の回路構成を示す。各構成はバス９２によって互いに接続されている。無線通信モジュール７１はＩＥＥＥ８０２．１１ｂ／ｇ等の通信規格に準拠した無線ＬＡＮモジュールによって構成され、無線アクセスポイントなどを介してインターネットなどの外部ネットワークに接続する。なお無線通信モジュール７１は、ブルートゥース（登録商標）プロトコルの通信機能を有してもよい。携帯電話モジュール７２は、ＩＴＵ（International Telecommunication Union；国際電気通信連合）によって定められたＩＭＴ−２０００（International Mobile Telecommunication 2000）規格に準拠した第３世代（3rd Generation）デジタル携帯電話方式に対応し、携帯電話網４に接続する。ＳＩＭカードスロット４１には、携帯電話の電話番号を特定するための固有のＩＤ番号が記録されたＳＩＭカード７４が挿入される。ＳＩＭカード７４がＳＩＭカードスロット４１に挿入されることで、携帯電話モジュール７２は、携帯電話網４との間で通信可能となる。
【００２３】
ＣＰＵ（Central Processing Unit）６０は、メインメモリ６４にロードされたプログラムなどを実行する。ＧＰＵ（Graphics Processing Unit）６２は、画像処理に必要な計算を実行する。メインメモリ６４は、ＲＡＭ（Random Access Memory）などにより構成され、ＣＰＵ６０が使用するプログラムやデータなどを記憶する。ストレージ６６は、ＮＡＮＤ型フラッシュメモリ（NAND-type flash memory）などにより構成され、内蔵型の補助記憶装置として利用される。
【００２４】
モーションセンサ６７は、情報処理装置１０の動きを検出し、地磁気センサ６８は、３軸方向の地磁気を検出する。ＧＰＳ制御部６９は、ＧＰＳ衛星からの信号を受信し、現在位置を算出する。前面カメラ３０および背面カメラ３１は、画像を撮像し、画像データを入力する。前面カメラ３０および背面カメラ３１は、ＣＭＯＳイメージセンサ（Complementary Metal Oxide Semiconductor Image Sensor）によって構成される。
【００２５】
表示装置２０は、有機ＥＬ表示装置であり、陰極および陽極に電圧を印加することで発光する発光素子を有する。省電力モードでは、電極間に印加する電圧を通常よりも低くすることで、表示装置２０を減光状態とすることができ、電力消費を抑えられる。なお表示装置２０はバックライトを備えた液晶パネル表示装置であってもよい。省電力モードでは、バックライトの光量を下げることで、液晶パネル表示装置を減光状態として、電力消費を抑えることができる。
【００２６】
インタフェース９０において、操作部７０は、情報処理装置１０における各種操作手段を含み、具体的には、操作ボタン２２、方向キー２３、アナログスティック２４、Ｌボタン２６ａ、Ｒボタン２６ｂ、ＨＯＭＥボタン２７、ＳＴＡＲＴボタン２８、ＳＥＬＥＣＴボタン２９、電源ボタン３３、−ボタン３６ａ、＋ボタン３６ｂを含む。前面タッチパッド２１および背面タッチパッド３２は、マルチタッチパッドであり、前面タッチパッド２１は、表示装置２０の表面に重ね合わせて配置される。スピーカ２５は、情報処理装置１０の各機能により生成される音声を出力し、マイク３９は、情報処理装置１０の周辺の音声を入力する。音声入出力端子３８は、外部のマイクからステレオ音声を入力し、外部のヘッドホンなどへステレオ音声を出力する。
【００２７】
ゲームカードスロット３４には、ゲームファイルを記録したゲームカード７６が差し込まれる。ゲームカード７６は、データの書込可能な記録領域を有しており、ゲームカードスロット３４に装着されると、メディアドライブにより、データの書込み／読出しが行われる。メモリカードスロット３７には、メモリカード７８が差し込まれる。メモリカード７８は、メモリカードスロット３７に装着されると、外付け型の補助記憶装置として利用される。マルチユース端子４０は、ＵＳＢ端子として利用でき、ＵＳＢケーブル８０を接続されて、他のＵＳＢ機器とデータの送受信を行う。アクセサリ端子３５には、周辺機器が接続される。
【００２８】
情報処理装置１０は、ゲームや電子データ作成などの情報処理、電子書籍、ウェブページ、ビデオ、音楽など各種コンテンツの出力、通信などをユーザ操作に応じて実行する。このとき、必要なプログラムを内部の各種記憶装置からメインメモリ６４にロードしたうえ、ＣＰＵ６０の制御のもと、情報処理装置１０内で全ての処理を実施してもよいし、ネットワークを介して接続したサーバに処理の一部を要求し、その結果を受信しながら実施してもよい。このように情報処理装置１０が実行する処理の種類や処理形態は様々考えられ特に限定されるものではないが、以下、ゲームを実行する場合を例に説明する。
【００２９】
以下に述べる一実施形態において、ユーザはあるゲームを実施したいとき、部屋に設置したテーブルなど任意の場所に当該ゲームに対応づけられた図柄のカードを置き、情報処理装置１０の背面カメラ３１などでリアルタイムに撮影する。情報処理装置１０は当該カードの存在を撮影画像から検出すると、それに対応づけられたゲームを起動する。ユーザは実空間の撮影を続行し、情報処理装置１０は当該実空間の撮影画像に、ゲームに用いる道具やキャラクタなどのオブジェクトをコンピュータグラフィックスによって描画した画像を重畳して表示装置２０に表示する。ユーザは実空間を撮影しながら情報処理装置１０を操作することによりゲームを進捗させる。これにより、例えば自分の部屋を舞台に仮想的なキャラクタと対戦ゲームを楽しむことができる。
【００３０】
なおゲームを開始するきっかけとなる上記カードは、撮影画像によって検出が可能であり、事前にゲームと対応づけることができるものであればよく、所定の図柄のカード以外に、所定の絵、文字、図形の少なくともいずれかを記載したカードや立体物でよい。また所定の形状を有するカードや立体物でもよい。あるいは所定の形状、絵、文字、図形の少なくともいずれかを表示させたディスプレイや当該ディスプレイを有する電子装置などでもよい。以後、これらを総称して「マーカ」と呼ぶ。マーカは単体で用いるほか、複数のマーカの組み合わせによって一つのゲームを選択できるようにしてもよい。またマーカと対応づける対象は、ゲーム単位でなくてもよく、ゲームを含むアプリケーションなどゲームより大きい単位や、ゲーム内で入力すべきコマンド、ゲームの環境を決定づける各種パラメータ、描画するキャラクタ、オブジェクトなどゲームより小さい単位でもよい。
【００３１】
図４は、情報処理装置１０の機能ブロックを示す。この図では特に、図３のＣＰＵ６０、ＧＰＵ６２、メインメモリ６４、ストレージ６６によって実現される機能を制御部１００として示している。制御部１００に含まれる各機能ブロックは、ハードウェア的には、上記のとおりＣＰＵ６０、ＧＰＵ６２、メインメモリ６４などで構成することができ、ソフトウェア的には、情報処理装置１０内の各種記憶装置や装着された記録媒体からメインメモリ６４にロードしたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３２】
制御部１００は、ユーザ操作に係る情報を取得する入力情報取得部１０２、撮影画像のデータを取得する撮影画像取得部１０４、撮影画像のデータを記憶する撮影画像記憶部１０６、撮影画像を解析してマーカ検出、空間定義を行う画像解析部１０８、検出するマーカに係る情報を記憶するマーカ対応情報記憶部１０９、マーカに対応した情報処理を行う情報処理部１１４、描画するオブジェクトに係る情報を記憶するオブジェクトデータ記憶部１１６、撮影画像にオブジェクトの画像を重畳するなどして出力画像を生成する出力画像生成部１１８を含む。
【００３３】
入力情報取得部１０２は、情報処理装置１０に対してなされたユーザ操作に係る情報を、操作部７０、前面タッチパッド２１、およびモーションセンサ６７からそれぞれ入力信号として受信する。そして各入力信号をあらかじめ定めた規則に則り操作内容の情報に変換したうえ、撮影画像取得部１０４、画像解析部１０８、情報処理部１１４に供給する。後述するように本実施の形態では表示装置２０に表示された画像世界とのインタラクションによる操作を基本とするため、好適には情報処理装置１０が備える操作部７０を介した操作は、初期操作など最低限の場面に止める。
【００３４】
撮影画像取得部１０４は、ユーザによる処理の開始操作に応じて背面カメラ３１に撮影を開始させることにより撮影画像のデータを取得する。背面カメラ３１を利用することにより、ユーザは表示装置２０を見ながら情報処理装置１０を動かして視野を変化させたりゲームを進捗させたりするための操作を自然なかたちで行える。撮影画像取得部１０４は、撮影画像のデータを所定のレートでリアルタイムに取得し、適宜識別番号を付与したうえ、画像解析部１０８に供給するとともに撮影画像記憶部１０６に格納していく。当該識別番号は、以後の一連の処理において処理対象の撮影画像を識別するため、各機能ブロック間で伝達していく。
【００３５】
画像解析部１０８は、カメラの視野に存在するマーカを検出するマーカ検出部１１０、実空間に存在する物とカメラの位置や姿勢を追跡しグラフィックス描画に用いる座標系を定義する空間定義部１１２を含む。マーカ検出部１１０は、マーカ対応情報記憶部１０９に登録されたマーカの情報に基づき、撮影画像中のマーカを検出する。マーカ検出技術としては、コンピュータビジョンなどの分野でこれまでに提案されている様々な対象物認識手法のいずれかを採用してよい。
【００３６】
例えばあらかじめ準備したマーカ画像と撮影画像とをブロックマッチングしたり、特徴量を照合したりすることにより、撮影画像を部分領域ごとにスコアリングし、スコアの高い領域にマーカの存在を推定する。特徴量に基づく認識手法として、Random Forest法やRandom Ferns法が利用できる。具体的には、準備したマーカ画像からランダムにサンプリングした局所パッチを用いて学習した決定木群を作成しておき、撮影画像から検出した特徴点を含む局所パッチを当該決定木群に入力する。そしてリーフノードにおける出力結果によってマーカの存在確率分布を取得する。
【００３７】
あるいは、特徴点の周囲の輝度勾配を比較するSURF(Speeded Up Robust Features)法などを利用してもよい。マーカ対応情報記憶部１０９には、マーカ検出に用いる手法に応じた、マーカの特徴を表すデータ格納しておく。なお上記の技術は、マーカ検出のための専用コードなどをマーカに記載する必要がなく、いかなる画像や立体物でもマーカとして利用できる可能性がある、という点で顕著な効果を奏するが、本実施の形態をそれに限定する主旨ではない。すなわち専用コードを記載したマーカを使用し、マーカ検出部１１０はそれを読み取ることでマーカ検出を行ってもよい。
【００３８】
空間定義部１１２は、撮影画像を解析することにより、撮影対象である実空間（被写空間）に存在する物が構成する環境形状と、それを撮影しているカメラの位置および姿勢を追跡する。そして被写空間中に３次元のワールド座標系を定義し、さらにカメラの動きに応じて逐次、カメラ座標系を定義する。環境形状とカメラの位置や姿勢を追跡する技術として、例えばSLAM(Simultaneous Localization And Mapping)法を利用する。
【００３９】
SLAM法は、撮影画像から検出した特徴点を含む局所パッチごとに、特徴点の動きを追跡し、それに基づき所定の状態変数を各時間ステップで更新する手法である。状態変数をカメラの位置や姿勢（回転角）、移動速度、角速度、被写空間に存在する物の少なくとも１つの特徴点の位置、などとすることにより、被写空間とカメラのセンサ面との位置関係（距離および角度）、ひいてはワールド座標系とカメラ座標系との位置関係が撮影画像ごとに取得できる。
【００４０】
そのほか、カメラをステレオカメラとしたり、別途赤外線照射手段と赤外線センサを設けたりして、既知の手法でカメラから被写体までの距離を取得し環境形状などを取得してもよい。あるいは、情報処理装置１０に備えられたモーションセンサ６７や地磁気センサ６８の出力信号に基づき、カメラの位置や姿勢を算出してもよい。マーカ検出部１１０、空間定義部１１２が行う画像解析はこのように様々な手段が考えられ、例えば特許文献１にも記載されていることから、ここでは詳細な説明は省略する。
【００４１】
情報処理部１１４は、マーカ検出部１１０が検出したマーカに対応づけられたゲームなどの情報処理を実行する。そのためマーカ対応情報記憶部１０９には、マーカと、それが検出されたときに開始するゲームとを対応づけて格納しておく。マーカ対応情報記憶部１０９にはさらに、各ゲームにおいて描画すべきオブジェクトを対応づけて格納しておく。情報処理部１１４は、空間定義部１１２が定義したワールド座標系における各オブジェクトの配置を決定し、出力画像生成部１１８にオブジェクトの描画を含む出力画像の生成を要求する。
【００４２】
出力画像生成部１１８は、情報処理部１１４からの要求に従い、撮影画像記憶部１０６から撮影画像のデータを読み出したうえ、オブジェクトを撮影画像上に描画して出力画像を生成する。オブジェクトのモデルデータは識別情報とともにオブジェクトデータ記憶部１１６に格納しておく。ここで行われる描画処理は、ワールド座標系に配置されたオブジェクトを、カメラの位置および姿勢から定義したカメラ座標系に変換し、スクリーンに投影するものであり、基本的な処理手順は一般的なコンピュータグラフィックスと同様でよい。生成した出力画像のデータは、フレームメモリを介して表示装置２０に出力し即時表示させる。なお撮影画像においてマーカが検出されない期間、出力画像生成部１１８は撮影画像をそのまま出力画像としてよい。
【００４３】
オブジェクトデータ記憶部１１６にはさらに、オブジェクトとして含まれるキャラクタの動作を規定する情報も格納しておく。具体例は後に述べるが、本実施の形態ではカメラとキャラクタとの距離、相対角度が逐次特定できるため、それらのパラメータが所定の条件を満たしたとき、キャラクタが所定の動作（以後、「特定動作」と呼ぶ）を行うようにする。これにより、ユーザが動かすカメラと仮想キャラクタとのインタラクションを実現する。
【００４４】
図５は、本実施の形態における情報処理装置１０の使用環境例を説明するための図である。同図において実空間１２０はテーブル１２２が設置され、その上には時計１２４と鉛筆立て１２６が置かれている。このような実空間１２０において、ユーザはテーブル１２２にマーカ１２８ａを置き、それを情報処理装置１０の背面カメラ３１で撮影する。この例ではマーカ１２８ａは、ネコの絵が描かれたカードとしている。背面カメラ３１の視野は、例えば点線矩形１３０で示した領域である。
【００４５】
図６は実空間と、オブジェクト描画のための座標系の関係を例示しており、図５の実空間１２０を右上から見た状態を示している。図５で示した通り、テーブル１２２上には時計１２４、鉛筆立て１２６、マーカ１２８ａが置かれており、カメラのセンサ面がスクリーン１４０と一致するとする。上記の通りマーカ検出部１１０によって、撮影画像中にマーカ１２８ａが検出されると、空間定義部１１２は、当該マーカの実際のサイズをマーカ対応情報記憶部１０９から読み出し、撮影画像中のマーカの像と比較する。これにより、マーカ１２８ａからスクリーン１４０までの距離および回転角、ひいてはカメラの位置および姿勢の初期値を導出できる。
【００４６】
マーカ１２８ａの中央を原点として、図示するｘｙｚ座標のようにワールド座標系を定義すれば、ワールド座標系とカメラ座標系との関係が決定し、結果としてワールド座標系に配置したオブジェクトのスクリーン１４０への投影が可能になる。さらに空間定義部１１２によって、撮影画像における、マーカ１２８ａ、テーブル１２２、時計１２４、鉛筆立て１２６などの像による特徴点をSLAM法などにより追跡することにより、カメラがいかに移動したり姿勢を変化させたりしても両座標系の関係は逐次求められる。これにより、カメラの移動に応じたオブジェクト画像の変化も正確に表現できる。なおワールド座標系は図示するものに限らないが、マーカ１２８ａの画像平面がテーブル上面や床面であると推定し、当該面を基準面として定義することにより、オブジェクトをその上に置くように表現できる。
【００４７】
次にこれまで述べた構成による情報処理装置１０の動作について述べる。図７は情報処理装置１０がマーカ検出をきっかけとして、オブジェクト描画を伴うゲームを実行する処理手順を示すフローチャートである。なお以後説明する例では、情報処理装置はマーカに反応してゲームそのものを開始するのでなく、ゲームに関連する様々なモード選択を受け付けたうえでゲームやそれ以外の機能の処理を開始する。したがってそれらを包括する概念として、情報処理装置１０が開始する対象を「アプリケーション」と呼ぶ。
【００４８】
図７のフローチャートは例えば、ユーザが情報処理装置１０の電源を投入したとき、あるいは処理開始の操作を操作部７０などを介して行ったときなどに開始される。まず撮影画像取得部１０４は、背面カメラ３１に撮影を開始させることにより、撮影画像のデータ取得を開始する（Ｓ１０）。以後、撮影画像取得部１０４は所定のレートで撮影画像（画像フレーム）を順次取得していく。
【００４９】
撮影画像のデータは画像解析部１０８に供給されるとともに撮影画像記憶部１０６に格納される。出力画像生成部１１８はまず、当該撮影画像のデータを撮影画像記憶部１０６から読み出し、表示装置２０に出力することにより、電子ファインダと同様、撮影画像をそのまま表示させる（Ｓ１２）。これによりユーザは、背面カメラ３１で撮影した画像を表示装置２０で確認しながら情報処理装置１０を動かし、所望の視野を得ることができる。
【００５０】
並行して画像解析部１０８のマーカ検出部１１０は、撮影画像を解析することによりマーカ検出処理を行う（Ｓ１４）。そのためマーカ検出部１１０は、マーカ対応情報記憶部１０９に登録されている、各マーカの特徴を表すデータを参照する。マーカが検出されない期間、画像解析部１０８からその旨の通知を受けることにより、出力画像生成部１１８は撮影画像をそのまま表示装置２０に出力し続ける（Ｓ１６のＮ、Ｓ１２）。マーカが検出されたら（Ｓ１６のＹ）、空間定義部１１２は、図６に示したようにワールド座標系を決定したうえ、カメラの位置、姿勢に応じてスクリーン１４０をワールド座標系に対して設定する（Ｓ１８）。カメラの位置や姿勢は常時変化する可能性があるため、以後、上述のSLAM法などによってその動きを追跡する。
【００５１】
一方、マーカ検出部１１０は、検出したマーカに対応づけられたアプリケーションを、マーカ対応情報記憶部１０９を参照することにより特定し、当該アプリケーションの識別情報を情報処理部１１４に通知する（Ｓ２０）。それに応じて情報処理部１１４は出力画像生成部１１８との協働により、通知されたアプリケーションを実行する（Ｓ２２）。
【００５２】
ここでは上述のとおり、アプリケーションに対応づけられたキャラクタやゲームの道具などのオブジェクトをワールド座標系に配置し、それをスクリーン１４０に投影することにより描画したうえ、撮影画像に重畳して出力画像を生成する。さらにカメラの移動に応じてキャラクタに特定動作をさせたり、ユーザ操作に応じてゲームを進捗させたりする。生成した出力画像は順次、表示装置２０で表示することにより、カメラの動きやゲームなどの処理の進捗に応じて変化する画像を表示できる。
【００５３】
アプリケーションの処理が終了したら、ユーザが撮影を終了させるなど全体的な処理の停止操作を行うまで撮影を続行してマーカ検出を行い、対応するアプリケーションを実行する（Ｓ２６のＮ、Ｓ１２〜Ｓ２２）。撮影を終了させる操作がなされたら一連の処理を終了する（Ｓ２６のＹ）。
【００５４】
図８は、図７のＳ２２におけるアプリケーションの実行段階で表示装置２０に表示される画面例を示している。同図は例えば、図５で示した実空間１２０を撮影し、マーカ１２８ａが検出された結果、実行を開始したアプリケーションの一画面である。画面例１４８おいて、撮影画像に含まれるマーカ１２８ｂの上に、アプリケーション、あるいはマーカ１２８ａに対応づけられたオブジェクトであるネコのキャラクタ１５０ａが描画されている。さらにマーカ１２８ｂを囲むように、アイコン１５２ａ、１５２ｂ、１５２ｃが描画されている。ここで「アイコン」とは、該当領域を指示することにより対応づけられた処理が開始されたり対応する項目が選択されたりするものであれば、その使用目的、開始される処理や選択対象の種類、形状などは限定されない。したがって図示するようなボタンのグラフィックスも「アイコン」と呼ぶ。
【００５５】
アイコン１５２ａ、１５２ｂ、１５２ｃはアプリケーションで実行する機能を選択するためのものであり、遊び方の説明書きを表示する「遊び方」アイコン１５２ａ、所定のキャラクタとゲームで対戦する「対戦」アイコン１５２ｂ、複数のキャラクタ同士の対戦を観戦する「観戦」アイコン１５２ｃで構成される。上記の通りキャラクタ１５０ａおよびアイコン１５２ａ、１５２ｂ、１５２ｃはまず、ワールド座標系に配置された後、カメラのセンサ面と一致するスクリーンに投影して描画するため、マーカ１２８ｂと同一平面であるテーブル上に置かれているように表現できる。
【００５６】
情報処理部１１４は、表示画面中、アイコン１５２ａ、１５２ｂ、１５２ｃの位置に対応する前面タッチパッド２１内の領域を、各アイコンが表す機能に対応づける。これにより、ユーザが所望のアイコンの位置で前面タッチパッド２１にタッチすることにより、情報処理部１１４は、対応する機能の処理を開始する。アイコン１５２ａ、１５２ｂ、１５２ｃは実世界のテーブルに置かれているように描画されるため、カメラの視野が変化すると画面におけるアイコンの位置も変化する。従って情報処理部１１４は、出力画像生成部１１８から各アイコンの描画領域に係る情報を常時取得し、前面タッチパッド２１における各アイコンの検知領域をカメラの動きに応じて更新していく。
【００５７】
キャラクタ１５０ａは３次元コンピュータグラフィックスの手法によって立体的に表現することが望ましい。またユーザが操作を行っていない期間であっても体を動かしたりまばたきしたりすることにより生き物としての臨場感を演出する。なおアイコン１５２ａ、１５２ｂ、１５２ｃも立体形状としてもよい。
【００５８】
図９は、図７のＳ１６およびＳ２０でマーカ検出部１１０がマーカ検出および対応アプリケーション特定を行う際に参照する、マーカ対応情報記憶部１０９に格納されたデータの構造例を示している。マーカ対応情報３００は、識別情報欄３０２、特徴量情報欄３０４、サイズ欄３０６、および対応アプリケーション欄３０８を含む。識別情報欄３０２には、登録するマーカごとに付与した識別番号を格納する。
【００５９】
特徴量情報欄３０４には、マーカのテンプレート画像、あるいはその特徴量を表すデータの識別情報を格納する。同図の場合「ネコ画像」、「キツネ画像」など、画像の名前が示されている。画像や特徴量などのデータ本体は画像の名前と対応づけて別途格納しておく。特徴量情報欄３０４には画像の名前以外に、画像データや特徴量データの識別番号、それらのデータ自体、あるいは当該データの格納アドレスを示すポインタなどを格納してもよい。
【００６０】
サイズ欄３０６には、各マーカのサイズを格納する。同図の場合、長方形のカードをマーカとして使用する場合を想定しているため、「縦の長さ×横の長さ（ｍｍ）」なるフォーマットで記載しているが、マーカの形状によってフォーマットは様々であってよい。サイズと形状など複数種類のパラメータの組み合わせでもよい。対応アプリケーション欄３０８には、各マーカに対応づけるアプリケーションの識別情報を格納する。同図では「エアホッケーゲーム」、「トランプゲーム」などゲームの名前が示されているが、アプリケーションの識別番号、ソフトウェア本体、あるいは当該ソフトウェアの格納アドレスを示すポインタなどを格納してもよい。
【００６１】
マーカ検出部１１０は、特徴量情報欄３０４の識別情報に基づき、登録されている各マーカ画像またはその特徴量を読み出し、それを用いて撮影画像中のマーカを検出する。検出に上記手法を用いることにより、拡大率の変化に対しても高い頑健性でマーカを検出できる。またマーカ検出部１１０は、検出されたマーカに対応づけられているアプリケーションを、対応アプリケーション欄３０８を参照して特定する。一方、空間定義部１１２は、サイズ欄３０６に記載されたマーカのサイズに基づき、実空間の単位長さに合わせてワールド座標系を定義するとともに、マーカを含む被写体とカメラとの位置関係を取得する。
【００６２】
なお同図に示すように、マーカとアプリケーションは一対一に対応していなくてもよい。具体的には、マーカ対応情報３００において識別情報「００１」のマーカと識別情報「００２」のマーカはいずれも「エアホッケーゲーム」に対応している。このようにすることで、同じアプリケーションであってもマーカの図柄の差などによって登場させるキャラクタや衣装を変化させたり、ゲームのバージョンや難易度、ＢＧＭなどを異ならせたりすることができる。
【００６３】
逆に複数のマーカの組み合わせを１つのアプリケーションに対応させてもよい。このようにすると、複数のマーカを集めたときだけ所定のアプリケーションやゲームを実行できる状況を作り出すことができ、マーカ収集の楽しみも提供できる。この場合、マーカとしてカードや立体物など複数の個体の組み合わせを設定する以外に、スタンプラリーのように１枚のカードに集めた複数の印影の組み合わせなどを利用してもよい。
【００６４】
また同図の識別情報「００１」のマーカと識別情報「００２」のマーカのようにマーカのサイズを異ならせることにより、ゲームを行う場、つまりエアホッケーゲームにおけるエアホッケー台のような、ゲーム環境を表すオブジェクトのサイズを変化させてもよい。本実施の形態では、上記のとおりマーカのサイズに基づき、ワールド座標系における単位長さを実空間の単位長さに対応させることができる。これにより、実空間での任意のサイズを想定して各オブジェクトを描画することができる。上記のように複数のマーカの組み合わせを１つのアプリケーションに対応させる場合は、置かれたマーカ同士の間隔によってオブジェクトのサイズを変化させられるようにしてもよい。
【００６５】
図１０は、図７のＳ２２で情報処理部１１４がマーカに対応するアプリケーションを実行する処理手順例を示すフローチャートである。なおアプリケーションの内容によって処理手順や処理の内容を様々に変形できることは当業者には理解されるところであり、本実施の形態をこれに限る主旨ではない。また図９のフローチャートは特にアプリケーションそのものに対する処理手順を示しており、並行してなされるカメラの位置や姿勢の変化に対する処理については後に述べる。
【００６６】
まず検出したマーカに対応するアプリケーションに係る情報がマーカ検出部１１０から通知されると、情報処理部１１４は、当該アプリケーションに対応づけられたキャラクタやアイコンなどを特定し、出力画像生成部１１８がそれらのオブジェクトを撮影画像上に描画する（Ｓ３０）。各オブジェクトのモデリングデータは、情報処理部１１４からの要求に従いオブジェクトデータ記憶部１１６から読み出す。これにより表示される初期画面は、例えば図８で示した画面例１４８である。
【００６７】
このような画面に対し、ユーザが「遊び方」アイコン１５２ａの部分にタッチすることにより説明書きの表示を要求したら（Ｓ３２のＹ）、出力画像生成部１１８はオブジェクトデータ記憶部１１６から説明書きの画像を読み出して撮影画像に重畳する（Ｓ３４）。このとき説明書きの画像を平面的に表すのではなく、撮影画像における実空間の世界を壊すことなく表示することが望ましい。例えば撮影画像中、マーカの像が表れている四角形の領域に、説明書きの画像をテクスチャマッピングすることにより、マーカの位置に説明書きのカードが置かれたように表現する。
【００６８】
ユーザが、説明書きの表示を終了させる操作を行うまで表示を継続する（Ｓ３６のＮ、Ｓ３４）。説明書きを表示させた状態で、キャラクタとの対戦を開始する所定の操作がなされたら、Ｓ４２〜Ｓ４８の対戦モードへ移行する（３６のＹ、Ｓ４０のＹ）。一方、キャラクタ同士の対戦を観戦するための所定の操作がなされたら、Ｓ５２〜Ｓ５８の観戦モードへ移行する（Ｓ３６のＹ、Ｓ４０のＮ、Ｓ５０のＹ）。それ以外に説明書きの表示を終了させる操作がなされたら、アプリケーションそのものを終了させる操作がなされないうちは、Ｓ３０で表示させた初期画面に表示を戻す（Ｓ３６のＹ、Ｓ４０のＮ、Ｓ５０のＮ、Ｓ３８のＮ、Ｓ３０）。なお説明書きの表示とともに、初期画面へ表示を戻すためのアイコンなどを表示してもよい。
【００６９】
一方、Ｓ３０で表示した初期画面に対し、ユーザが「対戦」アイコン１５２ｂの部分にタッチした場合も、Ｓ４２〜Ｓ４８の対戦モードへ移行する（Ｓ３２のＮ、Ｓ４０のＹ）。また当該初期画面に対し、ユーザが「観戦」アイコン１５２ｃの部分にタッチしたら、Ｓ５２〜Ｓ５８の観戦モードへ移行する（Ｓ３２のＮ、Ｓ４０のＮ、Ｓ５０のＹ）。
【００７０】
対戦モードではまず、対戦時に描画すべきオブジェクトの初期位置およびサイズをワールド座標系で決定し、それをスクリーンに投影することにより撮影画像に重畳する（Ｓ４２）。そして情報処理装置１０に対するユーザ操作に応じて道具や相手キャラクタのオブジェクトを適宜動かしながらゲームを進捗させる（Ｓ４４）。情報処理部１１４がオブジェクトの動きを算出し、出力画像生成部１１８が所定のフレームレートで撮影画像上に当該オブジェクトを描画していくことで表示画像を更新する（Ｓ４６）。
【００７１】
本実施の形態では、情報処理装置１０に設けられたカメラでの実空間の撮影および表示がユーザインターフェースの一部を構成している。そのためゲームにおけるユーザ操作の手段としてもモーションセンサ６７が検知する情報処理装置１０自体の動きを活用することにより、カメラ撮影を含む一連の動作に統一感が生まれ、ユーザの理解が容易になる。ただしその他の操作手段も適宜利用してよい。Ｓ４４とＳ４６の処理を、対戦が終了するかユーザが終了操作を行うまで継続する（Ｓ４８のＮ、Ｓ４４、Ｓ４６）。対戦が終了するなどしたら、アプリケーションそのものを終了させる操作がなされないうちは、Ｓ３０で表示した初期画面に表示を戻す（Ｓ４８のＹ、Ｓ３８のＮ、Ｓ３０）。
【００７２】
観戦モードではまず、観戦時に描画すべきオブジェクトの初期位置およびサイズをワールド座標系で決定し、それをスクリーンに投影することにより撮影画像に重畳する（Ｓ５２）。この場合、複数のキャラクタ同士が対戦を開始する状況が表示される。そしてキャラクタがそれぞれに設定されたレベルに応じて対戦するように、ゲームを自動で進捗させる（Ｓ５４）。
【００７３】
情報処理部１１４がオブジェクトの動きを算出し、出力画像生成部１１８が所定のフレームレートで撮影画像上に当該オブジェクトを描画していくことで表示画像を更新する（Ｓ５６）。Ｓ５４とＳ５６の処理を、キャラクタ同士の対戦が終了するかユーザが観戦を終了させる操作を行うまで継続する（Ｓ５８のＮ、Ｓ５４、Ｓ５６）。観戦が終了するなどしたら、アプリケーションそのものを終了させる操作がなされないうちは、Ｓ３０で表示した初期画面に表示を戻す（Ｓ５８のＹ、Ｓ３８のＮ、Ｓ３０）。いずれかの段階でアプリケーションを終了させる操作がなされたら、アプリケーションの処理を終了する（Ｓ３８のＹ）。なおアプリケーションの終了操作はアプリケーションの実行中、随時受け付けてよい。
【００７４】
図１１は、図１０のＳ３４で表示される説明書きの表示画面例を示している。この画面は、例えば図８で示した初期画面において「遊び方」アイコン１５２ａがタッチされた後に表示される。またこの例は、図５で示した実空間１２０の撮影画像に基づき、図９で示したマーカ対応情報３００のうち識別情報「００１」のマーカが検出され、「エアホッケーゲーム」のアプリケーションが実行されていることを想定している。
【００７５】
画面例１６０では撮影画像上に、説明書きの画像１６４ａ、ネコのキャラクタ１５０ｂ、説明書きを前のページへ戻すアイコン１６２ａ、次のページへ進めるアイコン１６２ｂが描画されている。説明書きの画像１６４ａを表示するため、画像１６４ｂのような画像データをオブジェクトデータ記憶部１１６に格納しておく。説明書きの画像は複数ページにより構成してよく、その場合にアイコン１６２ａ、１６２ｂを描画する。上述のとおり、説明書きの画像を本来マーカが写っている領域にテクスチャマッピングすることにより、図示するように実空間におけるテーブルに置かれているように表現できる。
【００７６】
なお説明書きの画像として準備する画像は、図示するような静止画でもよいし、動画でもよい。また本実施の形態ではゲームを含むアプリケーションを想定しているため、その遊び方を説明する画像を表示したが、表示する内容をこれに限定する主旨ではない。すなわち電子書籍、ウェブページ、映画などアプリケーションの内容によって表示する内容も異なってよい。
【００７７】
アイコン１６２ａ、アイコン１６２ｂ、キャラクタ１５０ｂは、図８で説明したのと同様の手順により描画する。アイコン１６２ａ、１６２ｂによりページを戻したり送ったりする操作がなされたら、説明書きの画像１６４ａを前や次のページの画像にクロスフェードさせるなどして自然な表現で入れ替える。あるいはページめくりのアニメーションを挿入するなどしてもよい。キャラクタ１５０ｂは、図８で示した初期画面における状態から、説明書きが見えるように立ち上がり、移動した状態としている。さらにキャラクタ１５０ｂが、説明書きの入れ替えやページめくりをしているように表現してもよい。
【００７８】
図１２は、図１１で示した画面例１６０が表示されている状態から、実空間においてユーザがカメラをマーカに近づけた場合の画面の変化例を示している。画面例１７０において、説明書きの画像１６４ｃ、アイコン１６２ｃ、１６２ｄ、キャラクタ１５０ｃは、図１１の画面例１６０における説明書きの画像１６４ａ、アイコン１６２ａ、１６２ｂ、キャラクタ１５０ｂと同じオブジェクトである。
【００７９】
本実施の形態では、ワールド座標系におけるオブジェクトの位置が決定しているため、カメラを近づけると実空間の物と同様、アップで写されたり一部が視野からはみ出したりする。これにより、説明書きやアイコンなども実際にテーブルなどに置かれている印象を与えられる。例えば画面例１６０の状態では説明書きが小さくて読みづらい場合などに、カメラを近づけることにより説明書きを近くで見た状態とすることができる。
【００８０】
図１３は、図１０のＳ４６で表示される対戦モードでの画面例を示している。この画面は例えば、図８で示した初期画面において、「対戦」アイコン１５２ｂがタッチされた直後や対戦中に表示される。この例も図１１と同様に「エアホッケーゲーム」のアプリケーションが実行されていることを想定している。
【００８１】
画面例１８０では撮影画像上に、エアホッケー台１８２、パック１８６、マレット１８４ａ、１８４ｂ、ネコのキャラクタ１５０ｃが描画されている。この対戦モードでは、ユーザが情報処理装置１０を動かすと、手前にあるマレット１８４ｂがエアホッケー台１８２上で情報処理装置１０と同じ方向に動き、それによってパック１８６を打ち返すことができる。
【００８２】
情報処理装置１０の動きはモーションセンサ６７により検出し、その動き量や速度を、画面に描画したマレット１８４ｂの動き量や速度に変換する。その変換規則もオブジェクトデータ記憶部１１６に格納しておき、情報処理部１１４が参照することにより各時間ステップにおけるマレットの動きや、それに当たってはね返るパックの動きを決定する。これにより、打ち返す瞬間にマレットを左右に動かしてパックの打ち返し角度を変えたり、マレットを前に動かしてスマッシュしたり、といったように、実際のエアホッケーと同様に、パックの動きに変化をつけることができる。
【００８３】
対戦相手のネコのキャラクタ１５０ｃは、この例では図８の初期画面などで描画したキャラクタと同一としている。対戦モードでは当該キャラクタ１５０ｃを、エアホッケー台を挟んでカメラ、つまりユーザに対峙するように描画する。ネコのキャラクタ１５０ｃも仮想的な情報処理装置を把持し、それを動かすことによって自分のマレット１８４ａを動かしているようにする。これにより、実際に仮想的なキャラクタと対戦している臨場感を演出できる。
【００８４】
エアホッケー台１８２は、撮影画像に写るマーカ１２８ｃに対し所定の向きおよび位置にあるように描画する。同図のエアホッケー台１８２は天板のみが空中に浮いている状態を示しているが、天板より下の部分も加えて立体構造として表してもよいし、スコアボードなどをさらに表してもよい。エアホッケー台１８２の天板部分を透明または半透明とすることにより、撮影画像の隠蔽部分が少なくなり、実空間で行われている印象をより与えることができる。エアホッケー台１８２はマーカ１２８ｃの直上などに配置してもよいが、天板部分を透明または半透明とした場合は、マーカの図柄によりパック１８６などが見づらくならないよう、ずらして配置することが望ましい。
【００８５】
上記のSLAM法になどより、撮影画像中の特徴点を追跡する場合、時計や鉛筆立てなどマーカ周辺の物体にも基づいてカメラとワールド座標系との相対関係が特定できる。そのため一旦、マーカが検出され、それに対応するようにエアホッケー台１８２を配置すれば、ゲーム操作などによりマーカが視野から外れたり、ユーザがマーカを取り去ったりしても、周辺の物との相対位置によって、ワールド座標系における同じ位置にあるようにエアホッケー台１８２を描画することができる。キャラクタやアイコンなどその他のオブジェクトについても同様である。
【００８６】
図１４は、図１０のＳ５６で表示される観戦モードでの画面例を示している。この画面は例えば、図８で示した初期画面において「観戦」アイコン１５２ｃがタッチされた直後や観戦中に表示される。この例も図１１や図１３と同様、「エアホッケーゲーム」のアプリケーションが実行されていることを想定している。
【００８７】
画面例１９０では撮影画像上に、エアホッケー台１９４、パック１９８、マレット１９６ａ、１９６ｂ、ネコのキャラクタ１５０ｄ、キツネのキャラクタ１９２が描画されている。この観戦モードでは、ネコのキャラクタ１５０ｄとキツネのキャラクタ１９２がエアホッケー台１９４を挟んで対峙するように描画する。そしてそれぞれが、仮想的な情報処理装置を動かすことにより、各自のマレット１９６ａ、１９６ｂを動かしているようにする。ユーザはカメラの位置や姿勢を変化させることにより、様々な距離や角度からこの模様を観戦することができる。同図の場合、実空間にあるマーカ１２８ｄの直上にエアホッケー台を配置しているため、ユーザの実際の動きとしては、マーカ１２８ｄを中心にカメラの距離や角度を変化させることになる。
【００８８】
同図の例でネコのキャラクタ１５０ｄは、図８の初期画面や図１３の対戦モードにおいて描画したキャラクタと同一としている。例えばユーザが、対戦モードによってネコのキャラクタ１５０ｄと対戦を繰り返すことにより、ネコのキャラクタ１５０ｄに設定されたレベルが上がるようにする。つまりユーザが、ネコのキャラクタ１５０ｄを訓練して選手にするような状況を演出する。そして観戦モードで他のキャラクタと戦わせることにより、いわば自分が育てたネコのキャラクタ１５０ｄを対外試合に参加させるような気持ちで応援したり、さらに対戦モードで強くしたりする、といった楽しみを提供できる。
【００８９】
図１５は、図１０のＳ３０、Ｓ３４、Ｓ４２、Ｓ５２で、情報処理部１１４がマーカに対応して描画するオブジェクトを特定する際に参照する、マーカ対応情報記憶部１０９に格納されたデータの構造例を示している。なおこの例は、図９のマーカ対応情報３００で示したように、同じアプリケーションであってもマーカによって描画するキャラクタを変化させる態様を想定している。上記の通りマーカによってキャラクタ以外の要素を変化させてもよいし、変化させずにアプリケーションによって全ての要素が一意に定まるようにしてもよい。後者の場合、マーカによる処理の分岐は図９のマーカ対応情報３００を参照してアプリケーションを特定した時点で完了するため、情報処理部１１４はマーカ対応情報記憶部１０９を参照しなくてよい。
【００９０】
オブジェクト情報４００は、アプリケーション欄４０２、マーカ欄４０４、第１キャラクタ欄４０６、第２キャラクタ欄４０８、表示アイコン欄４１０、説明画像欄４１２、道具欄４１４を含む。アプリケーション欄４０２には、アプリケーションの識別情報を格納する。当該識別情報は、図９のマーカ対応情報３００における対応アプリケーション欄３０８に格納された識別情報に対応する。同図では「エアホッケーゲーム」、「トランプゲーム」などゲームの名前が示されているが図９のマーカ対応情報３００と同様、アプリケーションの識別番号、ソフトウェア本体、あるいは当該ソフトウェアの格納アドレスを示すポインタなどを格納してよい。
【００９１】
マーカ欄４０４にはマーカの識別番号を格納する。当該識別番号は、図９のマーカ対応情報３００における識別情報欄３０２に格納された識別番号に対応する。検出されたマーカに対応するアプリケーションの識別情報と当該マーカの識別番号とをマーカ検出部１１０から通知された際、情報処理部１１４はそれらに基づき、描画すべきオブジェクトをオブジェクト情報４００から特定する。
【００９２】
第１キャラクタ欄４０６には、図１０の例では全てのモードで登場する第１キャラクタの識別情報を格納する。第２キャラクタ欄４０８には、図１０の例では観戦モードにおける対戦相手とする第２キャラクタの識別情報を格納する。同図の場合、第１キャラクタ欄４０６および第２キャラクタ欄４０８には、「ネコ」、「キツネ」など、キャラクタモデルの名前が示されているが、識別番号などでもよい。各キャラクタのモデリングデータは、キャラクタの識別情報と対応づけてオブジェクトデータ記憶部１１６格納しておく。表示アイコン欄４１０、説明画像欄４１２、道具欄４１４についても表記の仕方やデータ本体との関係は同様である。
【００９３】
なおマーカによって第１キャラクタ、第２キャラクタのいずれか一方のみを変化させるようにしたり、２つのマーカによって第１キャラクタと第２キャラクタをそれぞれ独立に指定できるようにしてもよい。表示アイコン欄４１０には、図１０のＳ３０で描画するアイコンの識別情報を格納する。同図の場合、「遊び方」、「対戦」、「観戦」など、アイコンの名前が示されている。これらは図８の画面例１４８における「遊び方」アイコン１５２ａ、「対戦」アイコン１５２ｂ、「観戦」アイコン１５２ｃとそれぞれ対応している。
【００９４】
説明画像欄４１２には、図１０のＳ３４で描画する説明書きの画像の識別情報を格納する。同図の場合、「ホッケー操作（１），（２），・・・」など、複数ページにわたる説明書きの画像群の名前が示されている。そのうちの１ページが図１１の説明書きの画像１６４ａ、１６４ｂに対応している。道具欄４１４には、図１０の例では対戦モードや観戦モードで描画するゲームの道具オブジェクトの識別情報を格納する。同図の場合、「エアホッケー台」、「マレット」、「パック」など、道具オブジェクトのモデルの名前が示されている。これらのオブジェクトは、図１３、図１４の画面例におけるエアホッケー台１８２、１９４、パック１８６、１９８、マレット１８４ａ、１８４ｂ、１９６ａ、１９６ｂに対応する。
【００９５】
情報処理部１１４は、アプリケーションの各モードにおいて描画すべきオブジェクトをオブジェクト情報４００を参照して特定し、出力画像生成部１１８に描画を要求する。出力画像生成部１１８はオブジェクトデータ記憶部１１６に格納されているモデリングデータを識別情報に基づき読み出して、各オブジェクトを描画する。情報処理部１１４はこのとき、空間定義部１１２が定義したワールド座標系におけるマーカの位置およびサイズに基づき描画すべきオブジェクトを配置する。例えば上記のように、同じアプリケーションであっても複数のサイズのマーカを準備しておくことにより、マーカのサイズに応じてキャラクタやエアホッケー台などのオブジェクトのサイズを変化させてもよい。
【００９６】
あるいはマーカのサイズによらず、ゲームの実行状況やユーザの要求に従い、オブジェクトのサイズを変化させてもよい。例えば観戦モードにおいて自分が育てたキャラクタが対戦相手のキャラクタに勝ったとき、育てたキャラクタを実空間における人間と同程度の大きさとし、道具オブジェクトも実物大としたうえで対戦できる特別な対戦モードを提供するようにしてもよい。
【００９７】
図１６は、上記特別な対戦モードにおいて表示される画面の例を示している。画面例２００は、基本的には図１３で示した、通常の対戦モードにおける画面例１８０と同じ構成を有する。ただし、エアホッケー台２０２が実物大となり、ネコのキャラクタ１５０ｅも人間と同程度のサイズとなっている点が異なる。そのためユーザは、図１３の場合と比較し、マーカ１２８ｄが置かれたテーブルから後退した位置で実空間を撮影している状態となっている。エアホッケー台２０２のサイズ変化に応じ、その配置も適宜調整する。同図では、マーカ１２８ｄの上に重なるようにエアホッケー台２０２を配置している。
【００９８】
図１７は、このようにオブジェクトのサイズを変化させることを許容した場合に、図１０の対戦モード時にオブジェクトを描画する処理手順を示すフローチャートである。情報処理部１１４はまず、ワールド座標系におけるオブジェクトのサイズと配置を決定する（Ｓ７０）。オブジェクトのサイズは上記の通り、マーカのサイズから所定の規則に従い一意に導出したり、特別な対戦モード対する設定値を参照したりして決定する。
【００９９】
次に情報処理部１１４は、マレットのように情報処理装置１０の動きを反映して動く道具オブジェクトがある場合に、情報処理装置１０の動きに対する当該道具オブジェクトの動きの感度を調整する（Ｓ７２）。エアホッケーゲームを例にとると、図１３で示したような卓上サイズのエアホッケー台と、図１６で示したような実物大のエアホッケー台とでは、マレットの可動幅が大きく異なる。このため情報処理装置１０の移動量からマレットの移動量への換算規則をサイズによらず固定としてしまうと、大きいサイズのときに情報処理装置１０を不自然なほど大きく動かす必要が生じたり、小さいサイズのときにマレットが意図に反して動きすぎてしまったりすることが考えられる。
【０１００】
そこでこのような道具オブジェクトがある場合は、オブジェクトのサイズに応じて感度を調整することが望ましい。ここで「感度」は、情報処理装置の動きに対する道具オブジェクトの反応の大きさを表すパラメータであればよく、移動量の割合、速度の割合、加速度の割合など、用いる変数は特に限定されない。
【０１０１】
定性的にはオブジェクトのサイズが大きいほど、情報処理装置１０の動きに対するマレットの動きを小さくする。例えば、情報処理装置１０の速度Ｖａに対して求められるマレットの速度Ｖｍの比率Ｖｍ／Ｖａが、オブジェクトのサイズの倍率に反比例するようにする。つまりマレットの速度Ｖｍはオブジェクトのサイズの倍率Ｓと情報処理装置１０の速度Ｖａから次のように求める。
Ｖｍ＝ｋＶａ／Ｓ
ここでｋは基準のサイズＳ＝１のときの速度比率であり、実験などに基づきあらかじめ算出しておく。
【０１０２】
ただし上式は一例に過ぎず、感度調整は様々な手法で行ってよい。例えば情報処理装置１０の動き量からエアホッケー台の幅に対するマレットの動き量の割合を算出するようにしてもよい。Ｓ７０とＳ７２の処理により、オブジェクトのサイズ、位置、情報処理装置１０の動きに対するオブジェクトの動きが決定されるため、ゲーム開始時にはそれに従いオブジェクトを配置して描画し、以後、ユーザ操作やゲームの進捗に応じてオブジェクトを移動させながら描画処理を繰り返す（Ｓ７４）。
【０１０３】
次に、カメラとキャラクタの距離、相対角度に応じてキャラクタに特定動作をさせる態様について説明する。図１８はオブジェクトデータ記憶部１１６に格納され、情報処理部１１４がアプリケーション実行時にキャラクタに特定動作をさせるために参照するデータの構造例を示している。特定動作設定情報５００は、キャラクタ欄５０２、対象部位欄５０４、相対角しきい値欄５０６、距離しきい値欄５０８、動作欄５１０を含む。キャラクタ欄５０２には、動作主体であるキャラクタの識別情報を格納する。同図の場合「ネコ」などキャラクタモデルの名前が示されている。当該識別情報は、図１５のオブジェクト情報４００における第１キャラクタ欄４０６などに格納された識別情報に対応する。
【０１０４】
対象部位欄５０４、相対角しきい値欄５０６、距離しきい値欄５０８には、各キャラクタに特定動作をさせる条件の組み合わせを格納する。この条件はキャラクタとカメラとの距離や相対角度に対して自由に設定できるため、条件の内容や表現形式は他にも様々考えられる。同図の場合、キャラクタの部位ごとに、当該部位に所定角度以内でカメラが近づいた、といった状況を判定するための条件を例として示している。
【０１０５】
図１９は、図１８の特定動作設定情報５００で設定する条件の表し方を説明するための図である。部位２１０はキャラクタの頭部や手など、条件を設定する部位を表している。そして当該部位の基準点２１２（同図の場合は頂点）における法線ベクトルｎ１とカメラのセンサ面に対応するスクリーン２１４の法線ベクトルｎ２がなす角度θ（０≦θ≦１８０°）、および基準点２１２とスクリーン２１４の中心との距離Ａに対ししきい値を設定する。角度θが１８０°に近づくほど当該基準点２１２をのぞき込むかたちとなるため、典型的には角度θがしきい値以上となり、距離Ａがしきい値以下となったとき、特定動作を発生させる。
【０１０６】
図１８に戻り、対象部位欄５０４には条件を設定する対象部位とその基準点、相対角しきい値欄５０６には角度θのしきい値、距離しきい値欄５０８には距離Ａのしきい値を格納する。そして動作欄５１０には、対象部位に対し設定した条件を満たしたときキャラクタが行う特定動作の識別情報を格納する。同図の設定例では、ネコのキャラクタの頭頂部を覗くようにカメラが動いたら、当該ネコのキャラクタはカメラの方向へジャンプする（特定動作設定情報５００の２行目）。
【０１０７】
手先を覗くようにカメラが動いたら、当該キャラクタは握っているアイテムをカメラ方向へ差し出す動作をすることでユーザが当該アイテムを獲得する（特定動作設定情報５００の３行目）。口元へカメラが近づいたら当該キャラクタはゲーム攻略に係るヒントなどをしゃべるようにする（特定動作設定情報５００の４行目）。なお動作欄５１０に記載した特定動作の識別情報に対応させて、実際のキャラクタの動きを制御するプログラムなどを別途、オブジェクトデータ記憶部１１６に格納しておく。
【０１０８】
このような条件をキャラクタごとに設定することにより、キャラクタに個性や特徴を与えるとともに、ユーザが何気なく行った情報処理装置１０の移動でキャラクタの思わぬ反応が返ってきたり有益な情報を得たりする楽しみを提供することができる。本実施の形態では、オブジェクトとカメラという個体同士の距離、相対角度に対して条件を設定できるため、リアクションとしてのオブジェクトの動作も豊富なバリエーションで準備できる。時々刻々変化するオブジェクトの位置や姿勢に対し、高い自由度で情報処理装置の位置や姿勢を変化させられるため、それらの組み合わせを入力値とすることにより、偶発的な出力結果を楽しむことができる。
【０１０９】
図２０は、情報処理部１１４と出力画像生成部１１８がカメラの位置や姿勢の変化に対し表示画像を更新する処理手順を示すフローチャートである。この処理は、図１０で示したアプリケーションを実行する処理と並行して行われる。まず情報処理部１１４は、空間定義部１１２からカメラの位置や姿勢にかかる情報を常時取得することで、それらが変化したか否かを監視する（Ｓ８０）。変化がなければそのまま監視のみ継続する（Ｓ８０のＮ）。
【０１１０】
変化があったら（Ｓ８０のＹ）、出力画像生成部１１８は、新しいカメラ座標系を空間定義部１１２から取得する（Ｓ８２）。これは図６におけるスクリーン１４０をカメラの位置、姿勢の変化に対応させて移動させたことを意味する。次に図１８の特定動作設定情報５００を参照し、その時点で描画しているオブジェクトとカメラとの距離、相対角度が、設定された条件を満たしているか否かを判定する（Ｓ８４）。満たしていなければ（Ｓ８４のＮ）、出力画像生成部１１８が、各オブジェクトを移動後のスクリーンに投影して描画し直し、撮影画像に重畳することによって表示画像を更新する（Ｓ８８）。この場合も当然、アプリケーション処理に応じたオブジェクトの動きは表現する。
【０１１１】
一方、特定動作を行う条件を満たしている場合（Ｓ８４のＹ）、情報処理部１１４は、当該条件に対応づけられた特定動作の識別情報を特定動作設定情報５００から取得する。そして当該識別情報に対応する動作発生用のプログラムなどに基づき、特定動作を行うようにキャラクタを動かす（Ｓ８６）。そして出力画像生成部１１８は、移動後のスクリーンに、特定動作をしているキャラクタを含む各オブジェクトを投影して描画し直し、撮影画像に重畳することによって表示画像を更新する（Ｓ８８）。
【０１１２】
次に、図８の画面例１４８のように表示させたアイコンを操作する別の方法について説明する。上記の実施形態では、表示画面上のアイコンの位置で前面タッチパッド２１にタッチすることにより、対応する処理が開始された。一方、本実施の形態では実空間でマーカが置かれているテーブルなどの平面上にアイコンも置かれているように表現する。そこで別の操作方法として、画面上でアイコンが置かれているように見える実空間での位置に実際に手を伸ばしてテーブルなどの平面をタッチすることによりアイコンがタッチされたと認識するようにする。
【０１１３】
図２１は実空間での指の動きによりアイコン操作を実現する態様における表示画面の例を示している。この例は、図８で示した画面例１４８が表示されている状態でユーザがカメラの視野内に右手２２２を出した状態である。ユーザの左手は当然、情報処理装置１０を把持して当該実空間を撮影しており、図８の場合よりテーブル側に寄った状態となっている。画面例２２０では、マーカ１２８ａ、ユーザの右手２２２を含む撮影画像と、コンピュータグラフィックスで描画したネコのキャラクタ１５０ａ、アイコン１５２ｃなどが混在している。
【０１１４】
この方法では、撮影画像におけるユーザの右手２２２を既存の手認識技術によって認識する。そしてその指が、撮影画像中のアイコン１５２ｃの領域で所定のしきい値より長い時間停止したら、タッチがなされたと判定する。あるいは指の特徴点をSLAM法などにより追跡することにより、実空間で指がテーブル上のアイコン１５２ｃに対応する領域をタッチしたことを判定する。タッチがなされたと判定されたら、情報処理部１１４は当該アイコンに対応する処理を開始する。
【０１１５】
手認識や特徴点の追跡は、画像解析部１０８で随時行う。そのため、実空間での指の動きからタッチ判定を行う場合は、情報処理部１１４は、現在表示中のアイコンのワールド座標系における位置を画像解析部１０８に逐次、通知しておく。そして画像解析部１０８が３次元空間でのタッチ判定を行い、その結果を情報処理部１１４に通知する。撮影画像中でタッチ判定を行う場合は、情報処理部１１４は画像解析部１０８から撮影画像における指の位置を随時取得し、自らがタッチ判定を行う。
【０１１６】
図２１の画面例２２０では、実空間に存在するテーブル上に仮想的に描画したアイコン１５２ｃが置かれ、さらにその上にユーザの実際の右手２２２が存在する、という、撮影画像に描画オブジェクトが挟まれた状態となる。そこで出力画像生成部１１８は、アイコン１５２ｃのうち右手２２２に隠れる部分を一般的な隠面消去処理により消去する。右手２２２の輪郭線も上記手認識技術や既存の輪郭線追跡技術によって特定できる。さらに出力画像生成部１１８は、指がアイコン１５２ｃに近づいていくのに応じて、指の影２２４をつけることにより臨場感を演出する。この処理も、一般的なシャドウイング手法により実現できる。このとき、大局照明モデルを用いてもよいし、撮影画像から光源を推定することでレイトレーシング法などによって影をつけてもよい。
【０１１７】
以上述べた本実施の形態によれば、ユーザがカメラを備えた情報処理装置を用いて実空間に置いたマーカを撮影することにより、当該情報処理装置でマーカに対応する情報処理を開始するようにする。当該情報処理においては、撮影中の実空間にコンピュータグラフィックスで描画したオブジェクトが存在するように、撮影画像にオブジェクトの画像を重畳する。そして情報処理装置の動きに応じてゲームに用いる道具などのオブジェクトが動くようにする。
【０１１８】
さらにキャラクタの動作が、カメラの位置とキャラクタとの距離、相対角度によって変化するようにする。これらのことにより、実空間に表れた仮想的な物体を動かしながらキャラクタと遊んだりコミュニケーションをとったりする、という複雑な状況を、情報処理装置を把持して動かす、というシンプルな動作で作り出すことができる。
【０１１９】
また描画するオブジェクトとして、アイコンや説明書きも含め、それらも実空間に置かれているように描画する。アイコンは、情報処理装置に備えた表示画面上のタッチパッド、あるいはアイコンが仮想的に置かれている実空間内の面にタッチすることによって操作できるようにする。このようにすることで、全ての操作や情報表示を表示画面内に存在する、拡張現実空間で行えるようになり、その世界観を維持したユーザインターフェースを実現できる。また一般的な入力装置やカーソルで操作するのと比較し、より自然かつ直感的な操作が可能となる。
【０１２０】
描画するオブジェクトは、サイズが既知のマーカに対応して生成するため、オブジェクトの実空間での大きさを仮定したうえでの描画が可能である。したがって、キャラクタを実際の人間と同じ大きさにしたり道具を実物大にしたりすることも可能となり、その結果表示される画面の世界では、自分の部屋などでキャラクタと実際に遊んでいるような状況を作り出すことができる。このようにオブジェクトのサイズを可変としたとき、情報処理装置の動きに対する道具などのオブジェクトの動きの感度をサイズに応じて調整することにより、サイズが変更しても操作性を維持することができる。
【０１２１】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１２２】
１０  情報処理装置、  ２０  表示装置、  ２１  前面タッチパッド、  ３１  背面カメラ、  ６０  ＣＰＵ、  ６２  ＧＰＵ、  ６４  メインメモリ、  ６６  ストレージ、  ６７  モーションセンサ、  ７０  操作部、  １００  制御部、  １０２  入力情報取得部、  １０４  撮影画像取得部、  １０６  撮影画像記憶部、  １０８  画像解析部、１０９  マーカ対応情報記憶部、  １１０  マーカ検出部、  １１２  空間定義部、  １１４  情報処理部、  １１６  オブジェクトデータ記憶部、  １１８  出力画像生成部。
【図１】
2015041126.tif 000003
【図２】
2015041126.tif 000004
【図３】
2015041126.tif 000005
【図４】
2015041126.tif 000006
【図５】
2015041126.tif 000007
【図６】
2015041126.tif 000008
【図７】
2015041126.tif 000009
【図８】
2015041126.tif 000010
【図９】
2015041126.tif 000011
【図１０】
2015041126.tif 000012
【図１１】
2015041126.tif 000013
【図１２】
2015041126.tif 000014
【図１３】
2015041126.tif 000015
【図１４】
2015041126.tif 000016
【図１５】
2015041126.tif 000017
【図１６】
2015041126.tif 000018
【図１７】
2015041126.tif 000019
【図１８】
2015041126.tif 000020
【図１９】
2015041126.tif 000021
【図２０】
2015041126.tif 000022
【図２１】
2015041126.tif 000023