(57)【特許請求の範囲】
【請求項１】
表示装置、当該表示装置の画面前にありユーザが扱う物体が置かれた平面、およびユーザ、の位置関係を、カメラが撮影した画像から逐次特定する実空間解析部と、
前記表示装置および前記平面の位置関係に基づき構築した仮想空間に所定のオブジェクトを配置するとともに、当該オブジェクトに対する仮想的な視点をユーザの移動に応じて変化させながら設定する情報処理部と、
前記仮想的な視点から見たオブジェクトを描画することにより表示画像を生成し表示装置に出力する表示画像生成部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記情報処理部は前記仮想空間において、実世界における前記平面と連続する同一平面上に、当該実世界と連続するようにオブジェクトを配置した仮想世界を生成し、ユーザの移動に対応するように前記仮想的な視点を動かすことにより、ユーザの位置によらず実世界と仮想世界の連続性を維持することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理部は、ネットワークを介して接続した別の情報処理装置が取得した、別のユーザまたは当該ユーザが扱う物体の動きを、前記仮想世界におけるオブジェクトの動きに反映させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記情報処理部は、前記カメラが撮影した画像に基づき、前記平面における前記物体の位置を特定するとともに、当該物体から送信された、当該物体の識別情報および接続関係に係る情報に基づき当該物体の形状を特定することにより、前記仮想空間に前記物体を表すオブジェクトを配置し、ユーザの移動に対応するように前記仮想的な視点を動かすことにより、実世界における物体の見え方と表示上の物体の見え方を連動させることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記情報処理部は、前記表示装置の画面に対して実世界と面対象に、前記物体を表すオブジェクトを配置し、
前記表示画像生成部は、当該オブジェクトを描画することにより、前記物体が鏡に映った状態の画像を生成することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記情報処理部は前記表示装置の画面を鏡と仮定したときに前記物体が結像する位置を、前記仮想的な視点の位置に基づき特定し、当該結像する位置に前記オブジェクトが描画されるように、前記仮想空間におけるオブジェクトの位置を前記仮想的な視点の位置に応じて決定することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記情報処理部は、実世界において組み立て中の前記物体と部品の配置と同じ配置で、前記物体と部品を表すオブジェクトを配置するとともに、次の組み立て工程に係る情報を取得し、
前記表示画像生成部は、前記物体と部品の配置によって調整された位置に、前記組み立て工程に係る情報を重畳させた画像を生成することを特徴とする請求項４に記載の情報処理装置。
【請求項８】
前記情報処理装置は、前記仮想的な視点をユーザの移動に応じて設定するモードとそれ以外のモードとを、実行する機能またはユーザからの選択入力によって切り替えることを特徴とする請求項１から７のいずれかに記載の情報処理装置。
【請求項９】
カメラから撮影画像を取得するステップと、
表示装置、当該表示装置の画面前にありユーザが扱う物体が置かれた平面、およびユーザ、の位置関係を、前記撮影画像から逐次特定するステップと、
前記表示装置および前記平面の位置関係に基づき構築した仮想空間に、メモリから読み出した規則に従い所定のオブジェクトを配置するとともに、当該オブジェクトに対する仮想的な視点をユーザの移動に応じて変化させながら設定するステップと、
前記仮想的な視点から見たオブジェクトを描画することにより表示画像を生成し表示装置に出力するステップと、
を含む、情報処理装置による情報処理方法。
【請求項１０】
カメラから撮影画像を取得する機能と、
表示装置、当該表示装置の画面前にありユーザが扱う物体が置かれた平面、およびユーザ、の位置関係を、前記撮影画像から逐次特定する機能と、
前記表示装置および前記平面の位置関係に基づき構築した仮想空間に所定のオブジェクトを配置するとともに、当該オブジェクトに対する仮想的な視点をユーザの移動に応じて変化させながら設定する機能と、
前記仮想的な視点から見たオブジェクトを描画することにより表示画像を生成し表示装置に出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１１】
カメラから撮影画像を取得する機能と、
表示装置、当該表示装置の画面前にありユーザが扱う物体が置かれた平面、およびユーザ、の位置関係を、前記撮影画像から逐次特定する機能と、
前記表示装置および前記平面の位置関係に基づき構築した仮想空間に所定のオブジェクトを配置するとともに、当該オブジェクトに対する仮想的な視点をユーザの移動に応じて変化させながら設定する機能と、
前記仮想的な視点から見たオブジェクトを描画することにより表示画像を生成し表示装置に出力する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実世界の物体を利用した画像表示を行う情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
近年、実空間における人や物などの物体に係るパラメータを何らかの手段により計測し、それを入力値としてコンピュータに取り込み解析したり、画像として表示したりする技術が様々な分野で利用されている。コンピュータゲームの分野においては、ユーザ自身やユーザが把持するマーカーの動きを取得し、それに応じて表示画面内の仮想世界におけるキャラクタを動作させるといったことにより、直感的かつ容易な操作が実現されている（例えば特許文献１参照）。このように実空間における物体の動きや形状変化を表示画像に反映させる技術は、ゲームのみならず玩具や学習用教材などへの応用が見込まれている（例えば非特許文献１、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ  ２００７／０５０８８５  Ａ２公報
【特許文献２】特開２００８−７３２５６号公報
【非特許文献】
【０００４】
【非特許文献１】Posey: Instrumenting a Poseable Hub and Strut Construction Toy, Michael Philetus Weller, Ellen Yi-Luen Do, Mark D Gross, Proceedings of the Second International Conference on Tangible and Embedded Interaction, 2008, pp 39-46
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、実空間の物体をそのままの形状で表示させたり、物体の一部をコンピュータグラフィクスにより描画したオブジェクトに差し替えた画像を表示したりする、比較的単純な画像表示を基本としている。しかしながら今後、物体自体の処理性能や、情報処理装置における物体の認識技術が高度化していくにつれ、得られる情報を利用して実空間とのさらなる融合や臨場感をいかに表現するかが大きな課題となってくる。また同様の処理体系であっても、ニーズに合った表示態様を臨機応変に実現できることが望ましい。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、実世界の物体に係る情報を利用し多様な画像表現を実現できる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、表示装置、当該表示装置の画面前にありユーザが扱う物体が置かれた平面、およびユーザ、の位置関係を、カメラが撮影した画像から逐次特定する実空間解析部と、表示装置および平面の位置関係に基づき構築した仮想空間に所定のオブジェクトを配置するとともに、当該オブジェクトに対する仮想的な視点をユーザの移動に応じて変化させながら設定する情報処理部と、仮想的な視点から見たオブジェクトを描画することにより表示画像を生成し表示装置に出力する表示画像生成部と、を備えることを特徴とする。
【０００８】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、カメラから撮影画像を取得するステップと、表示装置、当該表示装置の画面前にありユーザが扱う物体が置かれた平面、およびユーザ、の位置関係を、撮影画像から逐次特定するステップと、表示装置および平面の位置関係に基づき構築した仮想空間に、メモリから読み出した規則に従い所定のオブジェクトを配置するとともに、当該オブジェクトに対する仮想的な視点をユーザの移動に応じて変化させながら設定するステップと、仮想的な視点から見たオブジェクトを描画することにより表示画像を生成し表示装置に出力するステップと、を含むことを特徴とする。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、ユーザが扱う実世界の物体の状態を反映した多様な画像を表示することができる
【図面の簡単な説明】
【００１１】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】図１の態様において構築する仮想空間の例を説明するための図である。
【図３】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図４】本実施の形態における情報処理装置の機能ブロックの構成を示す図である。
【図５】本実施の形態におけるブロックの外観例を示す図である。
【図６】本実施の形態におけるブロックの内部構造を模式的に示す図である。
【図７】本実施の形態において複数のブロックを組み立ててなるブロックセットの構成を詳細に示す図である。
【図８】本実施の形態のブロックセットにおける情報伝達経路と伝達される情報の例を模式的に示す図である。
【図９】本実施の形態において情報処理装置のブロック情報記憶部に格納するデータの構造例を示す図である。
【図１０】本実施の形態における、実世界と表示上の仮想世界の連続性を表現する態様を説明するための図である。
【図１１】本実施の形態における、実世界と表示上の仮想世界の連続性を表現する手法を説明するための図である。
【図１２】本実施の形態における、ユーザの位置に応じた表示画像の変化例を示す図である。
【図１３】本実施の形態における、ブロックの死角部分を確認できる画像を表示する態様を説明するための図である。
【図１４】本実施の形態における、ブロックの死角部分を確認できる画像を表示する手法を説明するための図である。
【図１５】本実施の形態における、ブロックの組み立て方をユーザに示す画像を表示する態様を説明するための図である。
【図１６】本実施の形態における、ブロックの組み立て方をユーザに示す画像を表示する手法を説明するための図である。
【図１７】本実施の形態における、ブロックを抽象化することで整理された情報を示す態様を説明するための図である。
【図１８】本実施の形態における情報処理装置が、実空間の状況を反映した画像表示を行う処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム１は、実世界においてユーザ５が動かしたり組み立てたりすることができるブロック３ａ、３ｂ、３ｃと、ブロック３ａ、３ｂ、３ｃの状態などに応じた情報処理を行う情報処理装置１０と、情報処理装置１０に対するユーザ操作を受け付ける入力装置１４と、情報処理装置１０が処理した結果を画像として出力する表示装置１６を含む。情報処理システム１はさらに、ブロック３ａ、３ｂ、３ｃが置かれる面を定めるためのプレイフィールド１８と、ブロック３ａ、３ｂ、３ｃを含む実空間を撮影するカメラ１２２を含む。
【００１３】
情報処理装置１０は、たとえばゲーム装置やパーソナルコンピュータであってよく、必要なアプリケーションプログラムをロードすることで情報処理機能を実現してもよい。情報処理装置１０は必要に応じてネットワーク８を介し別の情報処理装置やサーバと通信を確立し、必要な情報を送受してよい。表示装置１６は液晶ディスプレイ、プラズマディスプレイ、有機ＥＬディスプレイなど一般的なディスプレイでよい。またそれらのディスプレイとスピーカを備えたテレビであってもよい。カメラ１２２は、ＣＣＤ（Charge Coupled Device）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を備えたデジタルビデオカメラであり、少なくともプレイフィールド１８およびその上のブロック３ａ、３ｂ、３ｃを含む空間の動画像を撮影する。
【００１４】
入力装置１４は、ゲームコントローラ、キーボード、マウス、ジョイスティック、表示装置１６の画面上に設けたタッチパッドなど、一般的な入力装置のいずれか、またはいずれかの組み合わせでよい。プレイフィールド１８は、ブロック３ａ、３ｂ、３ｃが置かれる面を構成する物であり、板、布、机の天板などのいずれかでよい。ブロック３ａ、３ｂ、３ｃは図示するような直方体や円柱などの単純な形状の物でもよいし、人形やミニカーなど現実世界にある物のミニチュアやその部品、ゲームの駒など、より複雑な形状の物でもよい。またブロック３ａ、３ｂ、３ｃのサイズ、材質、色、使用する個数は限定されない。さらに、ユーザによって組み立てられる構造としてもよいし、完成物であってもよい。
【００１５】
情報処理装置１０は、カメラ１２２による撮影画像を解析し、ユーザ５、プレイフィールド１８、表示装置１６の画面の位置関係を取得する。そしてそのうち少なくとも二者の位置関係に基づき表示画像の構成を決定する。図１においてカメラ１２２は、プレイフィールド１８を挟んで表示装置１６と正対するユーザ５から見て右側からプレイフィールド１８を臨むように１つのみ配置されているが、本実施の形態をそれに限る趣旨ではない。
【００１６】
すなわちカメラ１２２は、表示装置１６、プレイフィールド１８、ユーザ５の位置関係が画像解析によって取得できるような画像が撮影されれば、その配置や数は限定されない。例えば表示装置１６、プレイフィールド１８、ユーザ５が全て視野に入る位置にカメラ１２２を置くことにより、撮影画像中のそれらの像から位置関係を取得する。あるいは、カメラ１２２のセンサ面が表示装置１６の画面と略同一平面に位置するように、カメラ１２２を表示装置１６の上や下などに置いてもよい。この場合、表示装置１６はカメラ１２２の視野には入らないが、撮影画像の平面を画面と見なすことにより三者の位置関係を取得できる。カメラ１２２をユーザ５の頭など体の一部に取り付けた場合も、同様にして三者の位置関係を取得できる。
【００１７】
またカメラ１２２を複数とすることで複数の方向から撮影するようにしてもよい。これにより、表示装置１６、プレイフィールド１８、ユーザ５がいずれかのカメラの撮影画像に映っているようにすれば、各撮影画像から得られる位置情報を統合して三者の位置関係を取得できる。複数のカメラの１つを、上記のように表示装置１６の上や下に置いたり、ユーザ５の体に取り付けたりしてもよい。ユーザ５が大きく動くような環境においては、カメラの台数を増やすほど、オクルージョンが発生する可能性を減らすことができるため、位置関係の取得精度を維持しやすい。
【００１８】
なおカメラ１２２、または複数のカメラ１２２の１つをステレオカメラとすることにより被写体の奥行き方向の位置を取得し、位置関係をより厳密に取得してもよい。ステレオカメラが左右の異なる視点から撮影した画像における視差を利用して、三角測量の原理によって被写体の３次元空間での位置を取得する技術は広く知られている。あるいは両眼立体視以外の、奥行きや３次元情報取得手段を利用してもよい。例えば、視点移動カメラを用いてもよいし、赤外線照射機構とその反射光を検出する赤外線センサを用い、ＴＯＦ（Time Of Flight）の手法によって位置を特定してもよい。
【００１９】
情報処理装置１０と、カメラ１２２あるいは表示装置１６との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいはカメラ１２２、情報処理装置１０、表示装置１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。ブロック３ａ、３ｂ、３ｃの内部に通信機構を設け、Bluetooth（ブルートゥース）（登録商標）プロトコルやIEEE802.11プロトコルなどを用いて情報処理装置１０と無線で通信できるようにしてもよい。あるいはブロック３ａ、３ｂ、３ｃと情報処理装置１０をケーブルで接続してもよい。
【００２０】
図１の例では、プレイフィールド１８におけるブロック３ａ、３ｂ、３ｃが鏡に映っているような画像を表示装置１６に表示している。一般的な技術では、例えばカメラ１２２を表示装置１６の上などに置いてプレイフィールド１８を撮影した画像を左右反転させることにより、図示するような画像が得られる。一方、本実施の形態では、プレイフィールド１８および表示装置１６の位置関係に基づき実空間を模した仮想空間にブロック３ａ、３ｂ、３ｃを表すオブジェクトを配置する。そしてそれに対する仮想的な視点や投影面を、ユーザ５や表示装置１６の位置などに基づき適宜設定することにより表示画像を描画する。また当該仮想空間に、実世界には存在しない仮想世界も構築しそれを描画対象とする。
【００２１】
図２は、図１の態様において構築する仮想空間の例を説明するための図である。まず撮影画像には、カメラ１２２の視点から見たプレイフィールド１８および表示装置１６の像が含まれる。これらの像を抽出し、その輪郭形状などに基づき適宜設定した仮想空間のワールド座標系に、抽出した像を当てはめることにより、ブロックが置かれている面および領域、表示画面の面および領域を設定する。同図ではカメラ１２２から見て手前右側にあるプレイフィールド１８の頂点を原点とし、プレイフィールド１８の面をｘｙ面、表示装置１６の画面の縦方向をｚ軸とするワールド座標系を設定している。ただし座標系をこれに限定する趣旨ではない。
【００２２】
プレイフィールド１８と表示装置１６の像を撮影画像から高精度に検出するため、それらの特定の箇所に検出用のマーカーをつけてもよい。図２の例では、プレイフィールド１８を構成する矩形の４隅のうち３つの隅にマーカー１５ａ、１５ｂ、１５ｃが付けられ、表示装置１６の画面の４隅のうち３つの隅にマーカー１２ａ、１２ｂ、１２ｃが表示されている。プレイフィールド１８のマーカー１５ａ、１５ｂ、１５ｃは、プレイフィールド１８が布や板などであれば印刷したり貼り付けたりしてもよいし、机の天板であれば所定の位置にカードを置くなどしてもよい。
【００２３】
表示装置１６のマーカー１２ａ、１２ｂ、１２ｃは、表示画像に含めてもよいし、表示装置１６の枠などに取り付けてもよい。マーカーは所定の形状および色の図形、模様、マークでもよいし、２次元バーコードなどでもよい。撮影画像からこのようなマーカーの像を検出することにより、それをよりどころにプレイフィールド１８の領域、表示装置１６の画面の領域を容易に特定できる。なお一部の箇所にマーカーを付ける代わりに、プレイフィールド１８全体を、周囲と異なる所定の色や模様としたり、周囲に対する表示装置１６の画面の輝度値の差を利用したりしてもよい。
【００２４】
このようにして仮想空間において各面を設定したら、プレイフィールド１８の像とブロック３ａ、３ｂ、３ｃの像との位置関係に基づき、仮想空間でのプレイフィールド上にブロックを表すオブジェクトを配置する。例えば撮影画像中の像の形状に基づき、事前に登録しておいたブロックの形状に係る情報を検索することにより、各位置にあるブロックの正確な形状、ひいてはそれを表すオブジェクトモデルを特定することができる。ブロックに通信機能を設けることにより、各ブロックから送信された識別情報などに基づき、対応するオブジェクトモデルをより正確に特定してもよい。
【００２５】
ここでブロックから送信される情報は、ブロックの識別情報に限らず、ブロック同士の接続関係や、ブロック自身が計測した位置や傾斜角度などの物理量を含んでもよい。この場合、撮影画像の像から得られる情報と、ブロックから送信された情報を統合することにより、より詳細にブロックの状態を特定できる。ただしブロックを表すオブジェクトを表示画像に含めない態様などにおいて、ブロックの詳細な状態を必要としない場合は、処理を適宜、省略してよい。
【００２６】
このようにプレイフィールド１８、表示装置１６、ブロック３ａ、３ｂ、３ｃからなる仮想空間を生成したら、所定の位置に仮想的な視点を置き、そこから見たブロック３ａ、３ｂ、３ｃの画像を所定の面に投影することにより表示画像を描画する。図１に示した例ではまず、表示装置１６の画面の後ろに仮想的な視点９を置き、プレイフィールド１８上への視線上のオブジェクトを、表示装置１６の画面、あるいはそれに平行な面に投影することにより、表示装置１６側から見たブロック３ａ、３ｂ、３ｃの画像を得る。そしてそれを左右反転させることにより、図１で示したような鏡面画像を得る。なお後述のとおり、さらにユーザの位置に応じて仮想的な視点を変化させることにより、表示画像が表す仮想世界をより臨場感のあるものとすることができる。
【００２７】
図３は情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。ＣＰＵ２２は、オペレーティングシステムやアプリケーションなどのプログラムに基づいて、情報処理装置１０内部の構成要素における処理や信号伝送を制御する。ＧＰＵ２４は画像処理を行う。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００２８】
これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６やスピーカなどの出力装置へデータを出力する出力部３６、カメラ１２２や入力装置１４からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００２９】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６などに出力する。
【００３０】
図４は情報処理装置１０の機能ブロックの構成を示している。図４および後述する図７に示す各機能ブロックは、ハードウェア的には、図３に示したＣＰＵ２２、ＧＰＵ２４、メインメモリ２６、図６で示す各種機構などで実現でき、ソフトウェア的には記憶部３４や、記録媒体駆動部４０を介して記録媒体からメインメモリ２６にロードされたプログラム、マイクロコンピュータに格納されたプログラムなどで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３１】
情報処理装置１０は、ブロック３ａなどからブロックに係る情報を受信するブロック情報受信部５０、カメラ１２２から撮影画像のデータを取得する撮影画像取得部５２、入力装置１４が受け付けたユーザ操作に係る情報を取得する入力情報取得部５４、ブロック３ａから送信された情報や撮影画像に基づき実空間における物やユーザの位置関係を取得する実空間解析部５６、仮想空間を構築し必要な情報処理を行う情報処理部６０、情報処理の結果を表す画像を生成する表示画像生成部６４を含む。情報処理装置１０はさらに、ブロックに係る登録情報を格納したブロック情報記憶部５８、情報処理部６０が行う処理内容に応じた仮想空間の構築規則を定めた空間生成情報記憶部６２、仮想空間に配置するオブジェクトモデルのデータを格納したモデル情報記憶部６６を含む。
【００３２】
ブロック情報受信部５０は、図３のＣＰＵ２２、通信部３２などにより実現し、ブロック３ａなどと通信を確立することにより、ブロックの識別情報や接続関係に係る情報などを受信する。ここでブロックの接続関係に係る情報とは、複数のブロックが接続されている場合に、どのブロックがどの位置に接続されているかを示す情報である。具体例は後述するが、接続箇所を介してブロック間で相互通信可能に構成することにより、他のブロックが接続された時点で、そのブロックの識別情報と接続箇所の識別情報とが接続先のブロックで認識される。そのような情報が１つのブロックに集約され送信されることにより、情報処理装置１０は、組み立て中のブロックセットであってもその接続状態を逐次、認識できる。
【００３３】
各ブロックの形状、サイズ、他のブロックが接続可能な箇所およびその識別情報は、ブロックの識別情報と対応づけてブロック情報記憶部５８に格納しておく。これにより、どのような形状のブロックがどのように接続されているか、ひいては組み立てられたブロックセットの全体形状を特定できる。またブロックのいずれかに加速度センサなど各種センサを内蔵しておき、情報処理装置１０への送信情報に含めることにより、ブロックセットの傾き、姿勢なども認識できる。ただしブロックが通信機構を備えない場合や、撮影画像中の像のみで形状が特定できる場合、ブロックの詳細な形状を必要としない情報処理を実施する場合などは、ブロック情報受信部５０は動作しなくてもよい。
【００３４】
撮影画像取得部５２は、図３のＣＰＵ２２、通信部３２などにより実現し、カメラ１２２に撮影の開始を要求する信号を送信するとともに、撮影の結果得られた動画像のフレームデータを所定のレートで取得する。ここで所定のレートとは、カメラ１２２が撮影する動画像のフレームレートでもよいし、それより小さいレートでもよい。実空間解析部５６は、図３のＣＰＵ２２、メインメモリ２６などにより実現し、撮影画像取得部５２が取得した撮影画像から、ユーザ５、プレイフィールド１８、表示装置１６、ブロック３ａなどの像を抽出することにより、それらの位置関係を取得する。
【００３５】
プレイフィールド１８上のブロック３ａなどの位置は、撮影画像におけるそれぞれの像に基づき特定してもよいし、さらに、ブロック情報受信部５０が受信した、ブロックからの情報を利用してもよい。後者の場合、撮影画像において１つのブロックの像が抽出できれば、そのブロックを基点として接続関係をたどることにより、ブロック間で通信可能な全てのブロックの形状、位置、姿勢を特定できることになる。これにより、カメラ１２２からの死角に位置するブロックについても特定できる。ブロック自体に位置センサを設けることにより、ブロックの位置を撮影画像の像によらず特定してもよい。特定した位置情報は情報処理部６０に通知する。
【００３６】
入力情報取得部５４は、図３の入力部３８などにより実現し、入力装置１４を介してユーザが行った操作の内容を情報処理部６０へ供給する。この操作には、ゲームなどの処理の開始および終了要求、当該処理に対するコマンド入力などが含まれる。処理の開始および終了の要求は、撮影画像取得部５２にも通知することにより、カメラ１２２の撮影開始および終了に反映される。
【００３７】
情報処理部６０は、図３のＣＰＵ２２、ＧＰＵ２４、メインメモリ２６などにより実現し、入力装置１４を介してユーザが要求したゲームなど各種情報処理を実行する。本実施の形態では主に、実世界と表示上の仮想世界が繋がった状態でなされるゲーム、およびブロックの状態表示や組み立てを支援する情報表示について説明するが、同様の表示態様を様々な表現や分野に応用できることは当業者には理解されるところであり、情報処理部６０の処理を限定するものではない。いずれにしろ情報処理部６０は、実空間解析部５６が特定した、実空間における物やユーザの位置情報を利用して仮想空間を構築したうえ、それに対する仮想的な視点を設定することにより、処理内容に応じた画像表現を実現する。処理内容に応じてどのように仮想空間を構築するか、仮想的な視点をどのように設定するか、については、空間生成情報記憶部６２を参照することによって決定する。
【００３８】
表示画像生成部６４は、図３のＧＰＵ２４、メインメモリ２６などにより実現し、情報処理部６０からの要求に従い表示画像を生成する。図１および２で説明したように、表示画像としてブロックを表すオブジェクトモデルを描画する場合は、ブロック情報記憶部５８に格納しておいた各ブロックのモデルデータを利用する。ブロックを、それに対応づけられたキャラクタなど別のオブジェクトに置き換えて描画したり、ブロックの周囲の環境として仮想世界を表現したりする場合、それらのモデルデータはモデル情報記憶部６６に格納しておく。
【００３９】
表示画像生成部６４は、好適には、ユーザの移動に応じて仮想空間に対する仮想的な視点を移動させることにより表示画像を連動させる。これにより、表示装置１６の画面を窓としてその奥の空間を覗いている感覚や、実際の鏡を見ている感覚を与えることができ、表示装置１６の周囲の実空間と融合した画像表示を演出できる。生成された表示画像は、所定のレートで表示装置１６に出力することにより、表示装置１６において動画像として表示される。
【００４０】
次に、ブロックを接続可能としたうえ通信機構を設ける態様におけるブロックの構造について説明する。図５は本実施の形態におけるブロックの外観例を示している。ブロックは四角柱型ブロック１０２ａ、立方体型ブロック１０２ｂ、円柱型ブロック１０２ｄ、球型ブロック１０２ｃなど、様々な形状を有することができる。なお上述の通りブロックの形状は図示するものに限らない。また必ずしも複数の形状が含まれなくてもよい。同図では１つの形状につき１個のブロックを示しているが、当然その数は限定されない。各ブロックには所定のサイズおよび形状を有する凸部１０４、凹部１０６を設け、凹部１０６に凸部１０４を差し込むことによりブロック同士を所望の位置で連結可能に構成する。また接続部分における傾斜角度や回転角を可変とすることにより、接続後のブロックセットを変形可能としてもよい。
【００４１】
図６はブロックの内部構造を模式的に示している。上述のとおりブロックの形状や数は限定されないが、ここではそれらをブロック１０２として代表的に示している。ブロック１０２は、電力供給機構１１０、記憶機構１１２、通信機構１１４、制御機構１１６、および測定機構１１８を備える。電力供給機構１１０は、一般的な電池、あるいは別に設けた電源から有線または無線で電力を取得するなど、一般的な技術によりブロック１０２に電力を供給する。通信機構１１４は、接続されたブロックと接続箇所を介して通信を確立するとともに、有線または無線で情報処理装置１０との接続を確立し、それぞれの間で各種信号を送受する。記憶機構１１２は、ブロック１０２自体の識別情報を記憶するメモリである。
【００４２】
制御機構１１６はマイクロコンピュータ等で実現し、通信機構１１４および測定機構１１８を制御する。測定機構１１８は位置センサ、加速度センサ、ジャイロセンサ、地磁気センサ、角度センサなどの各種センサのいずれかまたは組み合わせで実現し、ブロック１０２の位置や傾きを計測する。なお必ずしも全てのブロックが図示した構造でなくてもよい。例えば測定機構１１８は組み立てられたブロックセットの一部のブロックのみに搭載してもよいし、場合によってはなくてもよい。通信機構１１４についても、情報処理装置１０との通信機能はブロックセットの１つのブロックのみが備えていてもよい。また図示した機構を全て搭載していないブロックがあってもよい。ブロックをどのような構造とするかは、情報処理装置１０が行う処理の内容や求められる精度などに応じて決定する。
【００４３】
図７は複数のブロックを組み立ててなるブロックセット１２０の構成を詳細に示している。ブロックセット１２０は上述のとおり、個々のブロックをユーザが組み立てることによって形成される。図７ではそれぞれのブロックを第１ブロック１４０ａ、第２ブロック１４０ｂ、第３ブロック１４０ｃ、・・・などとしている。ここで第１ブロック１４０ａは情報処理装置１０との通信機構を有するブロックである。情報の錯綜を防ぐため、ブロックセット１２０を構成するブロックのうち、情報処理装置１０との通信を確立するブロックは、基本的には１つのみとする。そのため第１ブロック１４０ａにハブの役割を与える。そして、当該第１ブロック１４０ａから接続関係の遠いブロックから情報を伝達し、第１ブロック１４０ａにブロックセット１２０全体の情報を集約させる。
【００４４】
以下、ブロックの連結において第１ブロック１４０ａに相対的に近いブロックを「上位」、遠いブロックを「下位」とする。第１ブロック１４０ａとなるブロックはあらかじめ１つに定めておいてもよいし、情報処理装置１０との通信機構を有するブロックに図示しないスイッチなどを設け、ユーザがオンにしたブロックを第１ブロック１４０ａとしてもよい。または組み立て段階において情報処理装置１０と最初に通信を確立したブロックを第１ブロック１４０ａとしてもよい。
【００４５】
このようにして決定した第１ブロック１４０ａに、ユーザが別のブロックを接続すると、当該ブロックは第２ブロック１４０ｂとなる。第２ブロック１４０ｂにさらに別のブロックを接続すると、当該ブロックは第３ブロック１４０ｃとなる。なお同図では３つのブロックのみを示しているが、上述のとおり接続するブロックの数は限定されず、１つ、あるいは４つ以上でも、構成および動作は同様に考えることができる。
【００４６】
第１ブロック１４０ａ、第２ブロック１４０ｂ、第３ブロック１４０ｃはそれぞれ、情報受信部１４２ａ、１４２ｂ、１４２ｃ、要素情報取得部１４４ａ、１４４ｂ、１４４ｃ、情報送信部１４６ａ、１４６ｂ、１４６ｃを備える。情報受信部１４２ａ、１４２ｂ、１４２ｃは、直接接続された下位のブロックから送信された情報を受信する。ここで受信する情報は、当該ブロックより下位に接続されているブロックの識別番号、接続箇所の識別番号、内蔵するセンサによる計測結果を含む。複数のブロックが接続されている場合は、最下位のブロックからブロックを通過するごとに情報が重畳される。
【００４７】
要素情報取得部１４４ａ、１４４ｂ、１４４ｃは、当該ブロックが内蔵しているセンサおよび他のブロックを接続する箇所に設けた端子を含み、センサの計測結果、および下位のブロックが接続している箇所に係る情報を取得する。情報送信部１４６ａ、１４６ｂ、１４６ｃは、情報受信部１４２ａ、１４２ｂ、１４２ｃが受信した、それより下位のブロックの識別番号、接続箇所の識別番号、内蔵するセンサによる計測結果を含む情報に、当該ブロックの要素情報取得部１４４ａ、１４４ｂ、１４４ｃが取得した情報を追加し、直接接続された上位のブロックに信号として送信する。ただし第１ブロック１４０ａの情報送信部１４６ａは、当該情報を情報処理装置１０に送信する。
【００４８】
図８はブロックセット１２０における情報伝達経路と伝達される情報の例を模式的に示している。情報伝達経路１５０において内部に数字の書かれた円はそれぞれがブロックを表しており、円間の直線はブロックが連結されている状態を表している。また円内の数字は各ブロックの識別番号とする。識別番号「１」のブロックは図７の第１ブロック１４０ａに対応し、情報処理装置１０と通信を確立する。さらに図８における識別番号「２」、「３」のブロックは識別番号１のブロックに直列に接続されていることから、図７における第２ブロック１４０ｂ、第３ブロック１４０ｃにそれぞれ対応すると捉えることができる。
【００４９】
一方、１つのブロックに複数のブロックが連結することも考えられる。図８の例では識別番号「１」のブロックに識別番号「２」のブロック、「５」のブロックが接続されている。識別番号「２」のブロックには上述のとおり、識別番号「３」のブロック、「４」のブロックがこの順で直列に接続されている。識別番号「５」のブロックには、識別番号「６」のブロックと「７」のブロックが並列に接続されている。この例ではさらに、識別番号「６」のブロックに、識別番号を持たないブロックが接続され、そのブロックに識別番号「８」のブロックが接続されている。ここで識別番号を持たないブロックとは、図６で示したような機構を備えないブロックである。
【００５０】
上述のとおり情報伝達は基本的に、下位のブロックから上位のブロックへ伝達される。図８では、伝達される情報の内容を、伝達方向を示す矢印とともに表している。例えば識別番号「３」のブロックから「２」のブロックへ伝達される情報は、［３：Ｊ２（４）］と示されている。これは「自らの識別番号：ブロックに設けられた接続箇所の識別番号（そこに接続しているブロックの識別番号）」なるフォーマットで構成される信号であり、識別番号「３」のブロックの接続箇所のうち識別番号「Ｊ２」の箇所に識別番号「４」のブロックが接続されていることを表している。ただし同図をもって情報のフォーマットや内容を限定するものではない。
【００５１】
ブロックの上位にあたる方向がどちらにあるかは、ハブの役割を有するブロックが、ブロックの連結によって構成されるネットワークを探索することにより、順位づけを行うなどして決定できる。このような手順は、一般的な情報処理システムを構成するデバイスツリーにおけるネットワーキング技術を適用できる。
【００５２】
図８において識別番号「４」のブロックは、それが属する接続系列において最下位にあるため、１つ上位の識別番号「３」のブロックへ情報を送信する。識別番号「４」のブロックには他のブロックが接続されておらず、またセンサが内蔵されていないとすると、送信される情報は自らの識別番号「４」のみとなるため、伝達内容を「［４：−]」と表している。「−」はセンサの計測結果や接続されているブロックがないことを示している。
【００５３】
識別番号「３」のブロックは、識別番号「４」からの信号を受信すると、それを受信した端子の番号などを接続箇所の識別番号として対応づけ、さらに自らの識別番号「３」も対応づけて、１つ上位の識別番号「２」のブロックに送信する。この信号の伝達内容は上述のとおり［３：Ｊ２（４）］となる。識別番号「２」のブロックも同様に、自らの識別番号、接続箇所の識別番号（図の例では「Ｊ５」）、接続しているブロックの識別番号「３」を対応づけた信号、すなわち［２：Ｊ５（３）］を生成する。また識別番号「２」のブロックがセンサを内蔵しているとすると、その計測結果を表す信号と自らの識別番号を対応づけた信号も生成する。同図の例では計測結果を「result」と表しているが、実際には具体的な数値がセンサの種類に応じて代入される。
【００５４】
識別番号「２」のブロックは、このようにして生成したデータと、下位のブロックから伝達されたデータ、すなわち［３：Ｊ２（４）］を、１つ上位の識別番号「１」のブロックに送信する。ただしこれらの信号は常に同時に送信する必要はなく、一旦送信した信号の内容に変更があったときにその情報のみを送信するなどでもよい。一方、識別番号「５」のブロックに接続された、識別番号「６」と「７」のブロックがセンサを内蔵していないとすると、これらのブロックからは、識別番号「４」のブロックと同様、［６：−]、［７：−]の信号がそれぞれ識別番号「５」のブロックに送信される。識別番号「６」のブロックには、さらに別のブロックが接続されているが、当該ブロックは識別番号や通信機構をもたず、そこからの情報は得られないものとしている。
【００５５】
識別番号「５」のブロックは、自らの識別番号に、接続箇所の識別番号および接続されているブロックの識別番号を対応付けた信号を生成し、１つ上位の識別番号「１」のブロックに送信する。図示するように複数のブロックが接続されている場合、それらをまとめて［５：Ｊ３（６），Ｊ８（７）］などとする。ここで「Ｊ３」、「Ｊ８」はかっこ内の識別番号のブロックが接続されている接続箇所の識別番号である。
【００５６】
このようにして識別番号「１」のブロックに、ブロックセット１２０全体の情報が集約される。識別番号「１」のブロックも他のブロックと同様、自らの識別番号に接続箇所の識別番号、それに接続されているブロックの識別番号を対応づけた信号を生成する。そして下位のブロックから送信された信号とともに情報処理装置１０へ送信する。これにより情報処理装置１０は、ブロックセット１２０を構成するブロックの識別番号、各ブロックの接続関係、センサを内蔵するブロックにおける計測結果を逐次取得することができる。
【００５７】
このように、ハブの役割を有するブロックを１つに定め、情報を集約させて情報処理装置１０へ送信するようにすると、情報の錯綜や無駄な通信処理を防止することができる。一方、場合によっては複数のブロックから情報処理装置１０へ通信するようにしてもよい。例えば図８の例では、識別番号「８」のブロックは、通信機構をもたないブロックを介して識別番号「６」のブロックに連結している。
【００５８】
この場合、識別番号「８」のブロックは、自らのデータを情報処理装置１０へ直接送信してもよい。例えば当該ブロックが位置センサを内蔵する場合、自らの識別番号とその計測結果を直接、情報処理装置１０へ送信することにより、情報処理装置１０は、識別番号「６」のブロックより先に連結しているブロックが存在することを把握でき、さらに当該ブロックの形状、およびおよその接続状況を推測することができる。カメラ１２２による撮影画像中の像から得られる情報と統合することにより、位置の特定精度がさらに向上する。
【００５９】
このような構成により通信機構をもたないブロックを連結可能にすると、コストを増大させることなく組み立て後の形状のバリエーションを増やすことができる。なお識別番号「８」のブロックが、情報処理装置１０との通信機構をもたないブロックであった場合は、情報処理装置１０との通信機構を備えるブロックが直接的または間接的に連結されるのを待機する。そしてそのようなブロックが連結されたら、それに向かう方向を「上位」として、必要な信号を送信すれば、上述したのと同様、当該ブロックに集約された情報が、識別番号「１」とは別の経路で情報処理装置１０へ送信される。
【００６０】
図９は、情報処理装置１０のブロック情報記憶部５８に格納するデータの構造例を示している。ブロック情報テーブル１６０は、識別番号欄１６２、形状欄１６４、サイズ欄１６６、接続箇所欄１６８を含む。識別番号欄１６２には、ブロックツールを構成するブロックに付与する識別番号を記載する。形状欄１６４には、各ブロックの形状の種類、すなわち「四角柱」、「立方体」などを記載する。サイズ欄１６６には各ブロックの横幅、奥行き、縦の長さを記載する。
【００６１】
接続箇所欄１６８には、各ブロックに設けられた接続箇所の位置情報を、その識別番号と対応づけて記載する。図９の例では、「接続箇所の識別番号（面の番号，当該面内でのｘ座標，ｙ座標）」なるフォーマットで記載されている。面の番号は、ブロックの各面に対しあらかじめ一意に決定しておく。例えば識別番号「１」のブロックは、横幅４ｃｍ、奥行き４ｃｍ、縦の長さ８ｃｍの四角柱型ブロックである。そして識別番号が「Ｊ１」の接続箇所は、第１面の座標（２，２）の位置にある。識別番号が「Ｊ２」の接続箇所は、第２面の座標（１，２）の位置にある。ただしここで示したフォーマットに限定する主旨ではない。このような情報テーブルを情報処理装置１０で保持しておくことにより、ブロックセット１２０から送信された信号に基づき、当該ブロックセット１２０の形状および位置を算出することができる。
【００６２】
次に本実施の形態における表示態様について説明する。図１０は実世界と表示上の仮想世界の連続性を表現する態様を説明するための図である。まず実世界１７２のプレイフィールド１８には、ブロック１７６ａ、１７６ｂ、１７６ｃ、１７６ｄが置かれている。このような実世界１７２に対し、表示装置１６の画面１７４を挟んで地面が繋がっているように仮想世界１７０を構築する。仮想世界１７０は実際には、情報処理装置１０の情報処理部６０が、画面１７４に画像として表示するために仮想空間に構築するデータ上の概念である。
【００６３】
同図の例では仮想世界１７０は道路、ビル、車などを含む町である。そして車や木を模したブロック１７６ａ、１７６ｂ、１７６ｃ、１７６ｄを置くことによりユーザが実世界１７２に構築した模型の町と、道路が繋がっているような構成とする。これにより実際のプレイフィールド１８が狭い領域であっても、画面１７４の向こうにさらなる空間が広がっているような状態を演出できる。ブロック１７６ａ、１７６ｂ、１７６ｃ、１７６ｄの形状や配置に応じて、道路の向きを変化させたり仮想世界１７０で表す空間自体を全く別のものとしたりしてもよい。また仮想世界１７０を画面１７４と平行にずらしていくことにより、車を模したブロック１７６ａが逆方向に進行しているように演出することもできる。
【００６４】
同様の表示態様で、実世界１７２における物を用いて仮想世界１７０における相手と対戦するゲームを実現してもよい。例えばユーザが実世界１７２における人形を手で動かして格闘している動作をすると、仮想世界１７０に存在する敵のキャラクタがそれに反応したり攻撃してきたりするような格闘ゲームを実現する。この場合、人形の動きは、撮影画像中の像の動きに加え、人形を構成するブロックから送信される情報を用いることにより精度よく特定できる。実世界１７２と仮想世界１７０を地続きとして表示することにより、実世界の人形と仮想世界の敵のキャラクタが向かい合い戦っている様子をユーザが自由な角度から眺める、という独特の態様を、臨場感をもって実現できる。
【００６５】
あるいはボードゲームやトランプゲームなどを実現してもよい。この場合、実世界１７２において画面１７４に正対するユーザと対峙するように、仮想世界１７０に相手のキャラクタを配置し、さらにその前にゲーム盤のオブジェクトを配置する。そして実世界１７２におけるユーザの駒の動きに合わせて仮想世界の駒も動かし、相手のキャラクタもそれに応じて駒を動かすようにする。ユーザ側と相手側で駒やカードが交錯せず、それぞれが自分の前の限定領域で駒やカードを動かすゲームの場合は、ユーザ側の領域を実世界、相手側の領域を仮想世界として、ゲームの場自体を実世界と仮想世界の融合により表現することができる。
【００６６】
仮想世界１７０は、その全てを情報処理装置１０が作り出してもよいし、ネットワーク８を介して情報処理装置１０が受信した、遠隔地の実世界における動きを反映させたものでもよい。つまり、同様の情報処理システムを構築した２つの場所における情報処理装置１０をネットワーク８で接続し、相手ユーザによる人形、駒、トランプなどの動きを、仮想世界１７０における敵のキャラクタや相手の駒、トランプの動きに反映させる。仮想世界１７０におけるキャラクタや相手の姿自体も、相手が事前に選択し登録したオブジェクトモデルを利用して描画してもよい。
【００６７】
このような対戦ゲームのみならず、実世界１７２のブロックと仮想世界１７０のブロックを組み合わせて１つの立体物を作成したり、１つの町を構築したりすることもできる。この場合も、仮想世界における動きを全て情報処理装置１０が決定してもよいし、ネットワーク８を介して遠隔地にいる人の動きを反映するようにし、共同作業を実現してもよい。
【００６８】
このような表示態様において肝要となるのがユーザの視線である。ユーザの動きに応じて仮想世界のゲームを進めるような技術では、ユーザは主に表示装置の画面を見ていればよいため、ユーザがどの位置にいるかに関わらず同じ画像を表示すればよい。一方、本実施形態では、ユーザが実世界のプレイフィールドと表示画像の両方を見てその連続性を解釈する。また、ブロックを組み立てたり動かしたりする性質上、ユーザはプレイフィールド１８の周囲を移動する可能性が高くなる。このような特性に鑑み、ユーザがどの位置から見ても、実世界と仮想世界の連続性が保たれているようにすることが望ましい。
【００６９】
図１１は実世界と表示上の仮想世界の連続性を表現する手法を説明するための図である。まず図２で説明したように、カメラ１２２による撮影画像からプレイフィールド１８と表示装置１６の像を抽出することにより、ワールド座標系におけるプレイフィールド１８と画面１７４の位置座標を取得する。次に、当該ワールド座標系で定義される仮想空間において、画面１７４を挟んで実世界１７２と反対側に、仮想世界１７０を構築する。すなわち実世界１７２のプレイフィールド１８の面と同一平面に仮想世界１７０の地面を定めるとともに、実世界１７２のブロックの配置に基づき仮想世界１７０にオブジェクトを配置する。なお仮想世界１７０の地面を、実世界１７２のプレイフィールド１８の面に対し所定角度で傾斜させてもよい。仮想世界１７０の地面に多少の角度をつけることにより、地続きの状態を演出しながら地面近傍の状態を視点によらず見やすくできる。
【００７０】
このようにして構築した仮想空間において、実空間におけるユーザの視点に対応する位置に仮想的な視点９を置き、それに基づき画面１７４に仮想世界１７０を投影する。このとき上述のとおり、撮影画像からユーザの頭部の像と表示装置の像を抽出し、それらの相対位置に基づき、仮想空間における画面１７４に対する仮想的な視点９の位置を決定する。撮影画像における頭部の像は、一般的なトラッキング技術を利用して検出できる。このような構成によって、実際のユーザの頭部の位置に応じて仮想的な視点９が移動し、ひいてはユーザの位置と表示画像が連動することになる。
【００７１】
なお近年はアイカメラなどユーザの視線を検出するセンサが提案されている。このようなセンサを導入して視線検出を行うことで、視点９の配置にユーザの実際の視線をより高精度に反映させてもよい。このとき、ユーザが特定の領域を集中して見ている（注視している）状態を検出し、それに応じて当該領域に対し仮想的な視点９を近づけることにより、表示画像をズームアップしてもよい。後述する他の表示態様についても同様に、視線検出技術を適用できる。
【００７２】
図１２はユーザの位置に応じた表示画像の変化例を示している。同図上段に示すように、ユーザが画面１７４を斜め左から見たとき（ユーザ５ａ）、正面から見たとき（ユーザ５ｂ）、斜め右からみたとき（ユーザ５ｃ）に、画面１７４に表示される画像がそれぞれ、画像１８０ａ、１８０ｂ、１８０ｃである。同図の画像はどれも、図１１に示した仮想世界１７０を画面１７４の平面に投影したものであるが、ユーザの位置によって仮想的な視点を異ならせることにより画像も変化する。ユーザ５ａのように画面１７４を斜め左から見たときは、仮想世界も斜め左から見た状態となる。従って図示した例では仮想世界の車１８２ａの左側面が見えている。
【００７３】
ユーザ５ｂのように画面１７４を正面から見たときは、仮想世界も正面から見た状態となる。従って図示した例では仮想世界の車１８２ｂの側面はどちらも見えない。ユーザ５ｃのように画面１７４を斜め右から見たときは、仮想世界も斜め右から見た状態となる。従って図示した例では仮想世界の車１８２ｃの右側面が見えている。このようにすることで、ユーザの移動に伴い実世界の見え方が変化するのと連動するように仮想世界が変化するため、ユーザの位置によらず実世界と仮想世界の連続性を精度よく保つことができる。
【００７４】
図１３は表示態様の別の例として、ブロックの死角部分を確認できる画像を表示する態様を説明するための図である。まず実世界のプレイフィールド１８には、ユーザが組み立てた、あるいは組み立て中のブロックセット１９０が置かれている。ユーザ５ｄが当該ブロックセット１９０を見たとき、当然、一度に見ることのできる面は限られており、例えばユーザと逆側の側面は見ることができない。そこでそのような死角にある面を画像として表示する。つまり画面１７４が鏡となりブロックセット１９０が鏡に映っているような画像を表示する。同図の例では、自動車を模したブロックセット１９０のうち、ユーザ側の車輪は円形であるのに対し、逆側の車輪は三角形であることが表示画像からわかる。
【００７５】
このようにすることで、ブロックセット１９０に触れずに、ユーザ５ｄと逆側の側面の状態を確認したり、通常は同時に見ることのできない両側面を同時に見て、比較したりバランスを確認したりすることができる。図１４はブロックの死角部分を確認できる画像を表示する手法を説明するための図である。この場合、まず図２で説明したのと同様の手順で鏡面画像を得ることが考えられる。すなわち、カメラ１２２による撮影画像からプレイフィールド１８と表示装置１６の像を抽出することにより、ワールド座標系におけるプレイフィールド１８と画面１７４の位置座標を取得する。
【００７６】
次にプレイフィールド１８とブロックセット１９０との位置関係により、ブロックセット１９０の位置座標を取得したうえ、当該ブロックセットを対応するオブジェクトモデルに置き換える。ブロックセット１９０のうちカメラ１２２からの死角になっている部分については、上述のようにブロックセット１９０から送信される情報を利用して補完する。これによりブロックセットの形状や姿勢を正確に表したオブジェクトモデルを生成できる。
【００７７】
そして当該オブジェクトモデルを、画面１７４側から見た画像を左右反転させることにより鏡面画像が得られる。この処理は図１４に示すように、ブロックセット１９０を表すオブジェクトモデルを仮想空間において画面１７４に対し面対象に置くことにより仮想世界１７０を生成し、それを実世界１７２側に置いた仮想的な視点９に基づき画面１７４に投影することと同じである。この場合、仮想的な視点９は固定としてもよい。一方、より鏡らしく表示するため、ユーザの視点に応じて表示を変化させてもよい。
【００７８】
画面１７４を鏡とした場合、図１４に示すようにブロックセット１９０からの入射角ａと反射角ｂが等しくなるような位置にブロックセット１９０が結像する。視点９の位置によって結像位置も異なる。そこで図１１の例と同様、実空間におけるユーザの視点に対応する位置に仮想的な視点９を置くとともに、画面１７４を鏡としたときに視点９から見てブロックセット１９０が結像する位置の延長上に、ブロックセット１９０の対応する部分が位置するように、仮想世界１７０にオブジェクトモデル１９２を配置する。
【００７９】
そしてそれを視点９から見たときの像を画面１７４に投影することにより鏡面画像を得る。このようにすることで、ユーザの移動に伴い鏡と同様に表示画像が変化するため、実際の鏡に対してするのと同様に移動して見たい部分を確認することが違和感なく行える。さらに、実際は表示された画像であり仮想的な視点を自由に制御できることを利用すれば、実際の鏡では見づらい部分についても見えるようにすることが可能である。この場合、ユーザが入力装置１４を介して仮想的な視点を自由に移動させられるモードを設けてもよい。
【００８０】
図１５は表示態様の別の例として、ブロックの組み立て方をユーザに示す画像を表示する態様を説明するための図である。まず実世界のプレイフィールド１８には、ユーザが組み立て中のブロックセット１９４や組み立て前のブロック１９６が置かれている。同図においてブロックセット１９４は、最終的な形状が設定されている立体物の組み立て途中の状態を示している。ブロック１９６はこれ以後に接続すべきブロックであり、同図では１つのみ示しているが複数のブロックがあってよい。
【００８１】
表示装置１６の画面１７４には、図示するように、ブロックセット１９４、ブロック１９６を表すオブジェクトを実世界と同じ配置で表示する。さらに、立体物を完成させるために次に行うべき作業についての情報を、矢印２００ａ、２００ｂや文字１９８等を重畳させて表示する。この態様で情報処理装置１０は、ブロックセット１９４が組み立て工程のどの段階にあるのかを、ブロックから送信された情報に基づき特定する。情報処理装置１０のブロック情報記憶部５８にはあらかじめ、各組み立て段階においてその次に接続すべきブロックとその接続箇所に係る情報を格納しておき、実際の作業の進捗に応じて表示すべき情報を特定する。
【００８２】
そして実世界でのブロックセット１９４やブロック１９６の位置に応じて、説明に必要な矢印２００ａ、２００ｂの方向や長さを決定したり、文字１９８の位置を調整したりして表示する。同図の例では、タイヤを模したブロック１９６を立てて接続することが矢印２００ｂにより、ブロック１９６をブロックセット１９４に接続すること、およびその接続箇所が矢印２００ａで示されている。さらに具体的な作業内容が文字１９８で示されている。
【００８３】
なおブロック１９６を立てた状態で接続することは、実世界では寝かされているブロック１９６を、仮想世界では立てた状態のオブジェクトで表すことによっても示している。この態様のように、実世界でのブロックの配置を仮想世界でのオブジェクトの配置にそのまま反映させて組み立て方を示すことにより、印刷物やホームページなど画一的なマニュアルを利用する場合と比較し、ブロックセット１９４の向きを図面に合わせたり接続すべきブロック１９６を探し出したりする手間なく、より容易に組み立て方を理解できる。
【００８４】
なお組み立て方を示す手段は図示するものに限らない。例えばブロック１９６を表すオブジェクトをブロックセット２００の接続箇所に近づけるような動画を表示したり、次に接続すべきブロック１９６を他のブロックから容易に判別できるように強調表示したりしてもよい。それらに加えて音声ガイドを出力してもよい。
【００８５】
図１６は、ブロックの組み立て方をユーザに示す画像を表示する手法を説明するための図である。この例でもこれまで述べた態様と同様、カメラ１２２による撮影画像からプレイフィールド１８と表示装置１６の像を抽出することにより、ワールド座標系におけるプレイフィールド１８と画面１７４の位置座標を取得する。そしてプレイフィールド１８とブロックセット１９４、ブロック１９６との位置関係により、ワールド座標系におけるそれらの位置座標を取得する。そして当該ブロックセット１９４やブロック１９６の実世界１７２における配置をそのまま仮想世界１７０に平行移動させた状態で、それらを表すオブジェクトモデル２０２、２０４を配置する。
【００８６】
このときオブジェクトモデル２０４のように、必要に応じて実際のブロック１９６とは向きを異ならせることにより、正しい接続方向を示してもよい。そして、実空間におけるユーザの視点に対応する位置に仮想的な視点９を置き、それに基づき画面１７４に仮想世界１７０を投影する。このようにすることで、ユーザがどの位置にいても、その位置から見たブロックセット１９４やブロック１９６の配置と同じ配置でオブジェクトを表示できるため、表示した情報の理解されやすさを維持できる。このことは、立体物が大きかったり複雑な構造を有していたりする場合には特に有効である。
【００８７】
これまでの態様では、３Ｄオブジェクトを配置した仮想世界を構築することにより、より臨場感のある画像表現を実現した。逆に表示を簡素化、抽象化することにより、理解を容易にしたり多くの情報を入れ込んだりすることも考えられる。図１７はブロックを抽象化することで整理された情報を示す態様を説明するための図である。まず実世界のプレイフィールド１８には、ブロック２１０ａ、２１０ｂ、２１０ｃが置かれている。これに対し、画面１７４における表示画像は、プレイフィールド１８を真上から俯瞰したときの各ブロックの位置を、各ブロックを側面形状によって抽象化した図形２１２ａ、２１２ｂ、２１２ｃを配置することによって示している。
【００８８】
そして各図形の下には、ブロックに関連した情報を文字２１４ａ、２１４ｂ、２１４ｃにより表している。このようにすることで、各ブロックの位置と同時に、それに付随する情報をより多く表示させることができる。この場合も、カメラ１２２による撮影画像からプレイフィールド１８と表示装置１６の像を抽出し、さらにプレイフィールド１８とブロック２１０ａ、２１０ｂ、２１０ｃとの位置関係により、ワールド座標系におけるプレイフィールド１８、画面１７４、ブロック２１０ａ、２１０ｂ、２１０ｃの位置座標を取得する。そして仮想的な視点をプレイフィールド１８の中心直上の所定の高さに置く。
【００８９】
各ブロックを抽象化した図形の情報や、表示すべき付随情報は、ブロックの識別情報とともにブロック情報記憶部５８に格納しておく。そして撮影画像またはブロックから送信された情報によって、ブロック２１０ａ、２１０ｂ、２１０ｃの識別情報を特定し、それらに対応する図形を読み出す。そして仮想的な視点から見た各ブロックの位置に、読み出した図形を表示するとともに対応する付随情報も表示する。この態様において、表示上のプレイフィールド２１６の天地は、実世界におけるプレイフィールド１８に対する表示装置１６の位置によって決定する。
【００９０】
すなわち、実世界におけるプレイフィールド１８のうち表示装置１６に面する辺が、画面１７４の上側に位置するようにプレイフィールド２１６を表示する。したがって例えば表示装置１６がプレイフィールド１８の辺２１８に平行に置かれた場合、表示上で当該辺２１８が上側に位置するように、プレイフィールド２１６および図形の配置を反時計回りに９０°回転させる。このようにすることで、実世界のブロックの配置と表示上の配置の対応を容易に把握できる。
【００９１】
ただしタブレット端末などで画面１７４をプレイフィールド１８と同じ水平面に置く場合は、表示装置１６がどの位置にあっても、表示上のプレイフィールド２１６の天地は実世界のプレイフィールド１８の天地と同じとする。この場合、表示装置１６が画面１７４に垂直な軸回りに回転した場合に、表示上のプレイフィールド２１６を逆方向に回転させることになる。このような表示態様は、実世界におけるブロックを用いたゲームの戦況をわかりやすく表示させたりルールやマニュアルを表示したりするのに利用できる。
【００９２】
次に、これまで述べた構成によって実現できる情報処理装置１０の動作を説明する。図１８は情報処理装置１０が実空間の状況を反映した画像表示を行う処理手順を示すフローチャートである。まずユーザが情報処理装置１０を起動させたり対応するアプリケーションを選択する入力を、入力装置１４を介して行ったりすると、情報処理装置１０の情報処理部６０および表示画像生成部６４の協働により、表示装置１６に初期画像が出力される（Ｓ１０）。
【００９３】
一方、撮影画像取得部５２はカメラ１２２に撮影を開始させ、その画像データの取得を開始する（Ｓ１２）。以後、撮影画像取得部５２は所定のレートで撮影画像のデータを取得する。この撮影画像を取得するタイミングを時間ステップと呼ぶ。次に情報処理部６０は、ユーザが入力装置１４を介して選択した機能に応じて、仮想世界や視点をどのように設定するかを切り替える（Ｓ１４）。ここで機能とは、図１０のように実世界と地続きの仮想世界を描画するか、図１３のように実世界を映す鏡のように表示するか、図１５のように組み立て方を表示するか、図１７のように抽象化した図形とともにその他の情報を表示するか、を決定づける選択肢であればよく、選択されたゲームなど実行するアプリケーションによって一意に定まる場合もあれば、実行中のアプリケーションにおいて提供される機能によって切り替える場合もある。
【００９４】
選択された機能と構築する仮想空間との対応は、空間生成情報記憶部６２に格納しておく。次に実空間解析部５６は、撮影画像取得部５２が取得した撮影画像から、表示装置１６、プレイフィールド１８、ユーザ５、プレイフィールド１８上のブロック、の像を抽出する（Ｓ１６）。そして実空間解析部５６は、例えばプレイフィールドの一角を原点とするなどしてワールド座標系を設定し、各実物のワールド座標系における位置座標を取得する（Ｓ１８）。
【００９５】
このとき、必要に応じてブロックセット１２０からブロックの接続状態に係る情報を取得することにより、撮影画像中の像から得られるブロックの位置情報を補完する。これにより、カメラからの死角にあるブロックの状態についても特定できる。撮影画像におけるブロックの像の少なくとも一つが、ブロックセットのどのブロックに対応するかが判明すれば、当該ブロックの位置座標を基点として接続関係を辿ることにより、全てのブロックの位置座標が判明する。そのため例えばブロックの一つにマーカーを取り付けたりブロック自体を発光させたりして、基点となるブロックを容易に特定できるようにしてもよい。
【００９６】
ただしあらかじめ成形されたブロックを単体で用いる態様や、ブロックの数が少なくてよい態様など、撮影画像の像のみで全てのブロックの位置が判明する場合は、ブロックからの情報送信はなくてもよい。次に情報処理部６０は、ユーザが選択した機能に応じて仮想空間を構築する（Ｓ２０）。具体的には、実世界におけるプレイフィールド１８、表示装置１６の画面、ユーザ５、ブロック、の位置に応じて、必要なオブジェクトを配置したうえ、仮想的な視点を決定する。どのような位置にどのようなオブジェクトを配置するか、仮想的な視点を実際のユーザの視点に対応させるか否かは、Ｓ１４において決定したモードに応じて定まる。
【００９７】
次に表示画像生成部６４は、仮想的な視点から見た仮想空間のオブジェクトを、所定の規則で設定した投影面に投影することにより表示画像を生成する（Ｓ２２）。多くの場合、投影面は表示装置１６の画面であるが、図１７の場合などは、仮想的な視点から所定の位置に投影面を設定する。そして当該表示画像のデータを表示装置１６に出力することにより表示画像を更新させる（Ｓ２４）。処理を終了させる入力がユーザよりなされないうちは（Ｓ２６のＮ）、次の時間ステップで取得した撮影画像を対象としてＳ１６からＳ２４の処理を繰り返す（Ｓ２８、Ｓ１６〜Ｓ２４）。なおブロックやユーザの動きに対し、それらの位置座標の変化を補間するようにすれば、Ｓ１６、Ｓ１８の撮影画像を解析して位置座標を得る処理は、Ｓ２０の仮想空間の構築、Ｓ２２、Ｓ２４の表示画像生成、更新処理より低いレートで行ってもよい。
【００９８】
以上の手順により、移動や組み立てによるブロックの変化、およびユーザの移動を反映するように変化する画像を表示し続けることができる。ユーザによって処理を終了させる入力がなされたら、全体の処理を終了する（Ｓ２６のＹ）。なお上記の説明では主に、ユーザの左右の移動に対する表示画像の変化を示したが、仮想的な視点を実際の視点に対応させて動かすことによる変化は、視点の上下方向の動きを含むいかなる方向の動きについても同様である。
【００９９】
例えばユーザの頭部の高さに応じて仮想空間に対する仮想的な視点の高さも変化させることにより、プレイフィールドに段差を設けたり複数階層のプレイフィールドとしたりしても、ユーザが見ている階層のプレイフィールド上のブロックを的確に表示させることができる。また入力装置１４を介し、仮想的な視点をブロックに近づけたり遠ざけたりするユーザ操作を受け付けることにより、実際にユーザが動いていなくても、ブロックを間近に見たり遠くから眺めたりした状態を表示上で作り出すことができる。上述のようにアイカメラを利用して、所定の領域を注視しているか否かを検出し、それに応じて、対象領域に対し仮想的な視点を近づけたり遠ざけたりしてもよい。
【０１００】
以上述べた本実施の形態によれば、ブロックを置くプレイフィールド、表示装置、ユーザの位置関係を撮影画像から特定し、それに基づき仮想空間を構築する。そして当該仮想空間に配置したオブジェクトを見る仮想的な視点を、実際のユーザの位置に基づき設定する。これにより、ユーザがブロックと表示画像を見る視点と連動するように表示画像が変化する。結果として、ブロックを含む実世界と表示画像内の仮想世界の見え方がユーザの動きに応じて連動することになり、臨場感のある多様な画像表現を実現できる。
【０１０１】
さらにブロックから送信された情報と撮影画像から得られる情報を統合することにより、実際のブロックの状態を精度よく特定できる。特にユーザやカメラの死角にある部分の状態をも認識し、表示画像に反映できるため、組み立てたブロックセットなどを動かすことなく、本来は見えない部分を見ることができる。また、特定したブロックの状態に対し、さらに個々のブロックや組み立て方の情報を統合することにより、実世界のブロックの状態やユーザの位置などに対応する形式で様々な情報表示を行える。
【０１０２】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１０３】
１  情報処理システム、  ３ａ  ブロック、  １０  情報処理装置、  １４  入力装置、  １６  表示装置、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  ５０  ブロック情報受信部、  ５２  撮影画像取得部、  ５４  入力情報取得部、  ５６  実空間解析部、  ５８  ブロック情報記憶部、  ６０  情報処理部、  ６２  空間生成情報記憶部、  ６４  表示画像生成部、  ６６  モデル情報記憶部、  １０２  ブロック、  １１０  電力供給機構、  １１２  記憶機構、  １１４  通信機構、  １１６  制御機構、  １１８  測定機構、  １２０  ブロックセット、  １４０ａ  第１ブロック、  １４２ａ  情報受信部、  １４４ａ  要素情報取得部、  １４６ａ  情報送信部。
【図３】
0006039594.tif 000002
【図４】
0006039594.tif 000003
【図７】
0006039594.tif 000004
【図８】
0006039594.tif 000005
【図９】
0006039594.tif 000006
【図１８】
0006039594.tif 000007
【図１】
0006039594.tif 000008
【図２】
0006039594.tif 000009
【図５】
0006039594.tif 000010
【図６】
0006039594.tif 000011
【図１０】
0006039594.tif 000012
【図１１】
0006039594.tif 000013
【図１２】
0006039594.tif 000014
【図１３】
0006039594.tif 000015
【図１４】
0006039594.tif 000016
【図１５】
0006039594.tif 000017
【図１６】
0006039594.tif 000018
【図１７】
0006039594.tif 000019