(57)【要約】  ユーザが組み立て可能なブロックツール１２０は、複数種類のブロック１０２ａ、１０２ｂ、１０２ｄ、１０２ｈによって構成され、静止画像または動画像を撮影するカメラ１２２によって撮影される。四角柱型ブロック１０２ａのマーカー１０８の３次元空間における位置座標を画像認識により求める。そのほか、各ブロックの連結位置およびブロックの種類、四角柱型ブロック１０２ａまたは１０２ｂの傾きベクトルｍ１、四角柱型ブロック１２０ｂを構成する２つのブロックの角度θ、各ブロックの長さＬ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５を取得することにより、ブロックツール１２０の形状、姿勢、位置を導出し、それに対応づけられた情報処理を行う。
2014010004.tif 000002
【特許請求の範囲】
【請求項１】
互いに連結可能な複数のブロックからなる入力装置であって、
前記複数のブロックのうち少なくともいずれかは、
３次元空間における位置を取得するための機構を備えた位置取得部と、
他のブロックが連結している位置を取得する連結箇所特定部と、
内蔵されたセンサの計測値を取得するセンサ計測値取得部と、
傾きを取得する傾き特定部と、
当該入力装置からの信号を入力値として、前記入力装置の位置、姿勢、および形状に対応する情報処理を行う情報処理装置へ、内部で取得した情報を送信する情報送信部と、
の少なくともいずれかを備えたことを特徴とする入力装置。
【請求項２】
前記複数のブロックは、連結箇所を介して他のブロックと信号を送受信するブロック間通信部をさらに備え、
前記情報送信部を備えたブロックは、直接的または間接的に連結している他のブロックから送信された、各ブロックの内部で取得した情報を集約して前記情報処理装置へ送信することを特徴とする請求項１に記載の入力装置。
【請求項３】
前記複数のブロックは、前記ブロック間通信部を備えないブロックをさらに含み、当該ブロック間通信部を備えないブロックを介して連結された、前記ブロック間通信部を備えるブロックは、前記情報送信部を備えた異なるブロックへ、内部で取得した情報を直接的または間接的に送信することを特徴とする請求項２に記載の入力装置。
【請求項４】
前記複数のブロックは、前記ブロック間通信部においてブロック間の通信を確立するための接続端子同士の接続により連結されることを特徴とする請求項２または３に記載の入力装置。
【請求項５】
前記複数のブロックは、当該ブロックのサイズを特定するための識別番号を記憶するメモリを備えたことを特徴とする請求項１から４のいずれかに記載の入力装置。
【請求項６】
前記複数のブロックのいずれかは、前記内蔵されたセンサとして、曲げ角を発生させる機構と当該曲げ角の角度を取得する角度取得部を備えることを特徴とする請求項１から５のいずれかに記載の入力装置。
【請求項７】
互いに連結可能な複数のブロックからなる入力装置と、当該入力装置からの入力信号に基づき情報処理を行う情報処理装置と、を備えた情報処理システムであって、
前記入力装置における前記複数のブロックのうち少なくともいずれかは、
３次元空間における位置を取得するための機構を備えた位置取得部と、
他のブロックが連結している位置を取得する連結箇所特定部と、
内蔵されたセンサの計測値を取得するセンサ計測値取得部と、
傾きを取得する傾き特定部と、
前記情報処理装置へ、内部で取得した情報を送信する情報送信部と、
の少なくともいずれかを備え、
前記情報処理装置は、
前記入力装置から送信された情報に基づき、前記入力装置の３次元空間における位置、姿勢、および形状を算出する構造解析部と、
前記構造解析部が算出した結果に対応する情報処理を行う情報処理部と、
を備えたことを特徴とする情報処理システム。
【請求項８】
前記情報処理部は、前記構造解析部が解析した結果が、あらかじめ登録された条件を満たすとき、前記入力装置の３次元空間における位置に対応する表示画面内の位置に、前記条件に対応づけられたオブジェクトを描画することを特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記情報処理部は、前記構造解析部が解析した結果が、前記条件から、あらかじめ登録された別の条件へ変化したとき、描画するオブジェクトを、変化後の条件に対応づけられたオブジェクトに変えることを特徴とする請求項８に記載の情報処理システム。
【請求項１０】
前記情報処理部は、前記入力装置を含む視野で実空間を撮影するカメラから取得した画像上の、前記入力装置に対応する位置に、前記入力装置の動きに合わせて動くオブジェクトを描画することを特徴とする請求項７から９のいずれかに記載の情報処理システム。
【請求項１１】
前記情報処理部は、ユーザからの登録指示入力に従い、前記入力装置の３次元空間における位置、姿勢、および形状に対応して表示させたオブジェクトの状態を逐次、記憶装置に記憶させ、
再生指示に従い、前記記憶装置に記憶させた順で前記オブジェクトの状態を再現してアニメーション表示することを特徴とする請求項７に記載の情報処理システム。
【請求項１２】
前記情報処理部は、ユーザからの登録指示入力に従い、前記入力装置の３次元空間における位置、姿勢、および形状に対応して表示させたオブジェクトの画像を、記憶装置に記憶させ、次に登録指示入力がなされた際、前記入力装置の前回の記憶時からの差分に対し新たに対応づけられたオブジェクトを、前回記憶させたオブジェクトの画像に追加することにより、前記記憶装置が記憶するオブジェクトの画像を更新することを特徴とする請求項７に記載の情報処理システム。
【請求項１３】
個別に準備されたブロックを連結してなる入力装置から、ブロックの連結箇所、連結されているブロックの種類、ブロックに内蔵されたセンサの計測値、いずれかのブロックの傾きに係る情報を受信するとともに、いずれかのブロックの３次元空間における位置を取得するブロック情報受信部と、
前記ブロック情報受信部が取得した情報に基づき、前記入力装置の３次元空間における位置、姿勢、および形状を算出する構造解析部と、
前記構造解析部が算出した結果に対応する情報処理を行う情報処理部と、
を備えたことを特徴とする情報処理装置。
【請求項１４】
情報処理装置が、
個別に準備されたブロックを連結してなる入力装置から、ブロックの連結箇所、連結されているブロックの種類、いずれかのブロックに内蔵されたセンサの計測値、いずれかのブロックの傾き、に係る情報を受信するステップと、
いずれかのブロックの３次元空間における位置を取得するステップと、
前記受信するステップで受信した情報および前記取得するステップで取得した情報に基づき、前記入力装置の３次元空間における位置、姿勢、および形状を算出するステップと、
算出した結果に対応する情報処理を行うステップと、
情報処理の結果を表示装置に表示するステップと、
を含むことを特徴とする情報処理方法。
【請求項１５】
個別に準備されたブロックを連結してなる入力装置から、ブロックの連結箇所、連結されているブロックの種類、いずれかのブロックに内蔵されたセンサの計測値、いずれかのブロックの傾き、に係る情報を受信する機能と、
いずれかのブロックの３次元空間における位置を取得する機能と、
前記受信する機能が受信した情報および前記取得する機能が取得した情報に基づき、前記入力装置の３次元空間における位置、姿勢、および形状を算出する機能と、
算出した結果に対応する情報処理を行う機能と、
情報処理の結果を表示装置に出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１６】
個別に準備されたブロックを連結してなる入力装置から、ブロックの連結箇所、連結されているブロックの種類、いずれかのブロックに内蔵されたセンサの計測値、いずれかのブロックの傾きに係る情報を受信する機能と、
いずれかのブロックの３次元空間における位置、姿勢、および形状を取得する機能と、
前記受信する機能が受信した情報および前記取得する機能が取得した情報に基づき、前記入力装置の３次元空間における位置と形状を算出する機能と、
算出した結果に対応する情報処理を行う機能と、
情報処理の結果を表示装置に出力する機能と、
をコンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実空間における物体を利用した情報処理技術に関する。
【背景技術】
【０００２】
従来より、実空間における人や物などの物体に係るパラメータを何らかの手段により計測し、それを入力値としてコンピュータに取り込み解析したり、画像として表示する技術が様々な分野で利用されている。コンピュータゲームの分野においては、ユーザ自身やユーザが把持するマーカーの動きを取得し、それに応じて表示画面内の仮想世界におけるキャラクタを動作させるといったことにより、直感的かつ容易な操作が実現されている（例えば特許文献１参照）。このように実空間における物体の動きや形状変化を画面表示に反映させる技術は、ゲームのみならず玩具や学習用教材などへの応用が見込まれている（例えば非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＷＯ  ２００７／０５０８８５  Ａ２公報
【非特許文献】
【０００４】
【非特許文献１】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
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように物体に対する操作を入力値として情報処理を行う態様において、臨場感を演出し直感的な操作を可能とするには、知覚されたアフォーダンスを与えることが重要であり、例えば車のハンドル型、拳銃型など本物に近い形状で同様の動作が可能な装置を提供することが考えられるが、用途が限定的となる。装置の形状を可変とすると用途は広がるが、それに応じて形状変化や動きを計測するための工夫が必要となる。【０００６】
例えば非特許文献１に開示の技術では、部品の結合部に赤外ＬＥＤとそれを受光するフォトセンサを内蔵させることにより、部品の回転角を計測し、形状を特定している。この場合、計測できる回転角が限定的となるため形状の可変範囲も限定的となる。また全ての部品に素子を備える必要があるため製造コストが高くなる。このように、入力手段として提供する装置の形態に柔軟性をもたせるほど、それを計測するための機構が複雑化し、結果として製造コストや処理コストが増大する傾向にある。【０００７】
本発明はこのような課題に鑑みてなされたものであり、その目的は、様々な用途に適用可能な入力手段を安価に提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様は入力装置に関する。この入力装置は、互いに連結可能な複数のブロックからなる入力装置であって、複数のブロックのうち少なくともいずれかは、３次元空間における位置を取得するための機構を備えた位置取得部と、他のブロックが連結している位置を取得する連結箇所特定部と、内蔵されたセンサの計測値を取得するセンサ計測値取得部と、傾きを取得する傾き特定部と、当該入力装置からの信号を入力値として、前記入力装置の位置、姿勢および形状に対応する情報処理を行う情報処理装置へ、内部で取得した情報を送信する情報送信部と、の少なくともいずれかを備えたことを特徴とする。【０００９】
ここで「内蔵されたセンサ」は、角度センサや圧力センサなどブロック自身の変化を読み取るためにブロックに内蔵されたセンサであり、センサが計測する物理量は特に限定されない。【００１０】
本発明の別の態様は情報処理システムに関する。この情報処理システムは、互いに連結可能な複数のブロックからなる入力装置と、当該入力装置からの入力信号に基づき情報処理を行う情報処理装置と、を備えた情報処理システムであって、入力装置における複数のブロックのうち少なくともいずれかは、３次元空間における位置を取得するための機構を備えた位置取得部と、他のブロックが連結している位置を取得する連結箇所特定部と、内蔵されたセンサの計測値を取得するセンサ計測値取得部と、傾きを取得する傾き特定部と、情報処理装置へ、内部で取得した情報を送信する情報送信部と、の少なくともいずれかを備え、情報処理装置は、入力装置から送信された情報に基づき、入力装置の３次元空間における位置、姿勢、形状を算出する構造解析部と、構造解析部が算出した結果に対応する情報処理を行う情報処理部と、を備えたことを特徴とする。【００１１】
本発明のさらに別の態様は情報処理装置に関する。この情報処理装置は、個別に準備されたブロックを連結してなる入力装置から、ブロックの連結箇所、連結されているブロックの種類、ブロックに内蔵されたセンサの計測値、いずれかのブロックの傾きに係る情報を受信するとともに、いずれかのブロックの３次元空間における位置を取得するブロック情報受信部と、ブロック情報受信部が取得した情報に基づき、入力装置の３次元空間における位置、姿勢、形状を算出する構造解析部と、構造解析部が算出した結果に対応する情報処理を行う情報処理部と、を備えたことを特徴とする。【００１２】
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が、個別に準備されたブロックを連結してなる入力装置から、ブロックの連結箇所、連結されているブロックの種類、いずれかのブロックの傾きに係る情報を受信するステップと、いずれかのブロックの３次元空間における位置を取得するステップと、受信するステップで受信した情報および取得するステップで取得した情報に基づき、入力装置の３次元空間における位置と形状を算出するステップと、算出した結果に対応する情報処理を行うステップと、情報処理の結果を表示装置に表示するステップと、を含むことを特徴とする。【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によると、様々な用途に利用できる入力手段を安価に実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態におけるブロックツールの外観例を示す図である。
【図２】本実施の形態において組み立てたブロックツールの例を示す図である。
【図３】本実施の形態において導出されるブロックツールの中心軸を模式的に示す図である。
【図４】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図５】本実施の形態でブロックツールに含まれる各ブロックの内部構成例を模式的に示す図である。
【図６】本実施の形態におけるブロックツールと情報処理装置の構成を詳細に示す図である。
【図７】本実施の形態のブロックツールにおける情報伝達経路と伝達される情報の例を模式的に示す図である。
【図８】本実施の形態における情報処理装置のブロック情報記憶部に格納するデータの構造例を示す図である。
【図９】本実施の形態において、ブロックツールの組み立てや動きによって情報処理を実施する処理手順を示すフローチャートである。
【図１０】本実施の形態における、ブロックツールと表示画面の変遷例を示す図である。
【図１１】本実施の形態における、ブロックツールと表示画面の変遷の別の例を示す図である。
【図１２】本実施の形態において、ブロックツールによってオブジェクトの形状や動きを作成していく処理手順を示すフローチャートである。
【図１３】本実施の形態において、オブジェクトの状態を登録する際のブロックツールと、それを利用して表示される画面の変遷例を示す図である。
【図１４】本実施の形態において、２つのブロックでオブジェクトを作成するときのブロックツールと、登録時の表示画面の変遷例を示す図である。
【発明を実施するための形態】
【００１６】
本実施の形態では、複数のブロックを組み立てたり変形させたりし、その形状および位置を情報処理の入力値として利用する。すなわちこのようなブロックを、情報処理装置に対する入力装置と位置づけることができる。ここで情報処理装置が行う処理は特に限定されないが、好適な態様を後に例示する。以後、このようなブロックのまとまり、またはそれを組み立てた物を総称して「ブロックツール」と呼ぶ。
【００１７】
図１は本実施の形態におけるブロックツールの外観例を示している。ブロックツールは合成樹脂などで形成され、内部に素子やセンサなどを必要に応じて搭載可能に構成する。図示するようにブロックツールは四角柱型ブロック１０２ａ、１０２ｂ、１０２ｃ、立方体型ブロック１０２ｄ、円柱型ブロック１０２ｆ、球型ブロック１０２ｅなど、様々な形状を有することができる。なおブロックの形状は例示されるものに限られず、そのサイズも様々でよい。また必ずしも複数の形状を含めなくてもよい。
【００１８】
各ブロックには所定のサイズおよび形状を有する凸部１０４、凹部１０６が設けられ、凹部１０６に凸部１０４を差し込むことによりブロック同士を所望の位置で連結可能に構成される。ブロックツールにはさらに、連結するブロックの間隔を調整するため、両端を異なるブロックの凹部１０６に差し込み可能なジョイント用ブロック１０２ｇ、１０２ｈを含めてもよい。またジョイント用ブロックが回転するなどして接続するブロック間の位置・姿勢関係を変化させることも可能である。
【００１９】
凸部１０４および凹部１０６は、ブロック間の信号伝送を可能とする端子の役割も有する。そのため先端にはそれぞれ、ブロック内部に設けるバスなどの規格に応じた構造のコネクタを備える。一般的に普及している各種コネクタを採用したり、専用の特殊コネクタを設けたりすることにより、信号伝送とブロック同士の物理的な連結を同時に達成することができる。なお信号伝送の経路を別途用意するとともに、連結箇所を別途特定できれば、ブロック同士の結合は面ファスナーや磁石などでもよい。ここで別途用意する信号伝送の経路は、無線通信の機構でもよい。
【００２０】
ブロックツールのうち少なくともあるブロック（図１の場合、四角柱型ブロック１０２ａ）には、マーカー１０８を設ける。マーカー１０８は、後述するカメラで撮影した画像における位置および大きさから、３次元空間での位置を特定するためのものである。したがってマッチング処理などによって撮影画像から検出できる大きさ、形状、色を有して形成される。例えば、光透過性を有する球形樹脂の内部に発光ダイオードや電球など一般的な発光体を備えた球体や、２次元コードなどでもよい。複数のブロックにマーカー１０８を設ける場合は、ブロックごとにその色を変えてもよい。
【００２１】
またブロックツールのうち少なくともあるブロック（図１の場合、四角柱型ブロック１０２ｂ）は、２つのブロックと、それらを屈伸可能にする屈伸軸１１０と、ブロック同士がなす角度を検出するポテンショメータによって構成する。なお屈伸させる機構は、図示するように一方のブロックを貫通する屈伸軸１１０の両端に他方のブロックの突起を接合する形態のほか、ヒンジや屈伸可能な金属などによって２つのブロックを結合させた形態などでもよく、特に限定されるものではない。ブロック同士の角度は連続的に変化可能としてもよいし、複数段階に変化可能としてもよい。また軸の向きは図示するものに限らない。１つのブロックに複数の軸を設けてもよい。
【００２２】
構成要素であるブロックの角度は、好適には手を離しても維持されるような構造とする。なおブロック同士の角度はポテンショメータ以外の角度センサで計測してもよい。例えばブロック内部に他のブロックとの相対角を測定するセンサを搭載しておけば、ブロック同士は必ずしも接続されていなくてもよい。また後述するように１つのブロックを屈伸可能、回転可能に構成し、その屈伸角、回転角を計測してもよい。
【００２３】
さらに、ブロックツールのうち少なくともあるブロックの内部には、加速度センサ、ジャイロセンサ、地磁気センサなどのモーションセンサのうちの１つまたは複数の組み合わせを搭載する。センサを搭載するブロック、および搭載するセンサの種類や組み合わせは、ブロックツールを用いて実現する情報処理によって決定する。または様々なバリエーションのなかからユーザが組み立て時に選択する。
【００２４】
図２は図１で示したようなブロックを用いてユーザが組み立てたブロックツールの例を示している。組み立て後のブロックツール１２０は、図１で示した四角柱型ブロック１０２ａ、１０２ｂ、立方体型ブロック１０２ｄ、およびジョイント用ブロック１０２ｈによって構成される。上述のようにブロックツール１２０は、静止画像または動画像を撮影するカメラ１２２によって撮影される。
【００２５】
撮影された画像において、四角柱型ブロック１０２ａのマーカー１０８の像を検出する。上述のようにマーカー１０８を既知の色、輝度、大きさを有する発光体とすると、撮影されたフレーム画像を、対応する条件で探索することにより、マーカーの像を容易に検出できる。それ以外のマーカを採用する場合も、パターンマッチングや特徴点抽出など、一般的な画像認識技術を適用できる。ブロックツール１２０を動かし、それを動画像として撮影する場合は、既存のトラッキング技術を適用することにより効率的な検出が行える。
【００２６】
なおマーカー１０８を赤外線などの不可視光線を発光する装置としてもよい。この場合、カメラ１２２に代えて不可視光線を検出する装置を導入し、マーカー１０８の位置を検出する。同様に、深度センサ、超音波センサ、音センサなどを利用してもよい。マーカー１０８をブロックツールに含めることにより、実世界の３次元空間におけるマーカー１０８の位置座標（ｘ１，ｙ１，ｚ１）を求めることができる。あるいは、カメラ１２２をステレオカメラとして、ブロックツールの奥行き情報をステレオマッチングにより求めてもよい。ブロックツール１２０を置く台の上面にタッチパネルを設け、それにより置かれた位置を検出してもよい。これらの絶対位置検出手法のいずれか２つ以上を組み合わせて最終的な位置座標を算出してもよい。
【００２７】
このようにして絶対位置を算出すると同時に、ブロックに備えたモーションセンサ、ポテンショメータによって必要なパラメータを検出することにより、ブロックツール１２０の位置、姿勢、および形状を効率的に算出する。例えば図２のブロックツール１２０の場合、（１）各ブロックの連結位置およびブロックの種類、（２）四角柱型ブロック１０２ａまたは１０２ｂの傾きベクトルｍ１、（３）四角柱型ブロック１０２ｂを構成する２つのブロックの角度θ、（４）各ブロックの長さＬ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５、および、上述の絶対位置によって、各ブロックの位置座標、向き、ひいてはブロックツール１２０の中心軸の形状および位置、姿勢を導出できる。
【００２８】
上記（１）および（４）はブロック間の信号伝送により判明し、上記（３）はポテンショメータにより計測できるとすると、上記（２）を計測するために、四角柱型ブロック１０２ａまたは１０２ｂにモーションセンサが内蔵してあれば必要十分となる。あるいは内蔵されたブロックを四角柱型ブロック１０２ａまたは１０２ｂとして選択すればよい。図３はそのようにして導出した、ブロックツール１２０の中心軸を模式的に示している。図示するように中心軸１２４は、３次元空間においてその位置、姿勢および形状が同定される。当該３次元空間はカメラ１２２のカメラ座標系でもよいし、それを所望の座標系に変換したものでもよい。
【００２９】
本実施の形態では、このようにして求めた中心軸１２４、あるいは各ブロックの位置や向きを入力値として様々な情報処理を行う。例えば中心軸１２４を骨組みとしてオブジェクトを描画した画像を表示する。またはその形状の変化によりオブジェクトモデルを変更したり、形状変化をコマンドと解釈し、それに対応づけた情報処理を行う。なお上記の例はブロックツールの中心軸１２４のみを入力値とする場合であったが、連結したブロックの大きさによってオブジェクトを変化させる場合は、図２で示したブロックの太さを考慮し、太さを含めたブロックツールの形状を求めてもよい。
【００３０】
図４は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム２は、ブロックツール１２０、ブロックツール１２０を撮像するカメラ１２２のほか、ブロックツール１２０の形状、姿勢および位置を入力値とし、それに応じて所定の情報処理を行う情報処理装置１０、情報処理装置が処理した結果得られた画像データを出力する表示装置１６を含む。情報処理装置１０は、たとえばゲーム装置やパーソナルコンピュータであってよく、必要なアプリケーションプログラムをロードすることで情報処理機能を実現してもよい。表示装置１６は液晶ディスプレイ、プラズマディスプレイ、有機ＥＬディスプレイなど一般的なディスプレイでよい。またそれらのディスプレイとスピーカを備えたテレビであってもよい。
【００３１】
情報処理装置１０と、カメラ１２２あるいは表示装置１６との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいはカメラ１２２、情報処理装置１０、表示装置１６のうちいずれか２つ、または全てが組み合わされて一体的に装備されていてもよい。また、カメラ１２２は必ずしも表示装置１６の上に搭載されていなくてもよい。ブロックツール１２０は情報処理装置１０で処理される内容によっては複数でもよい。ブロックツール１２０と情報処理装置１０は、Bluetooth（ブルートゥース）（登録商標）プロトコルやIEEE802.11プロトコルなどを用いて無線接続を確立する。あるいはブロックツール１２０の一つのブロックと情報処理装置１０をケーブルを介して接続してもよい。
【００３２】
図５はブロックツールに含まれる各ブロックの内部構成例を模式的に示している。上述のとおりブロックの内部構成に様々なバリエーションを持たせることにより、用途に応じた使い分けが可能になる。また情報処理の入力値を同定するのに必要と想定されるセンサを複数のブロックに分散させて装備することにより、過度なセンサ搭載を避けることができ、製造コストを抑えることができる。
【００３３】
図５の例では、ブロック１２６ａは、バッテリー１２８ａ、通信機構１３０ａ、メモリ１３２ａ、位置センサ１３４、モーションセンサ１３６ａを備える。ここで通信機構１３０ａは、他のブロックからの信号を接続端子を介して受信する有線通信機構のほか、情報処理装置１０との無線通信を行う機構も含むものとする。メモリ１３２ａは、ブロック１２６ａの識別番号を保持する。当該識別番号は情報処理装置１０においてブロック１２６ａのサイズ、凹部、凸部の位置などの情報と対応づけられるものであり、同じ種類のブロックには同じ識別番号を付与してよい。あるいは組み立てられたブロックツール内での信号伝送のルーティングなどに利用できるようにブロックごとに一意に定めてもよい。
【００３４】
位置センサ１３４はブロック１２６ａの絶対位置を取得するためのセンサであり、画像認識用のマーカーもこれに含まれる。ただしマーカーの場合は上述のとおり外部に設置したカメラとの組み合わせによって絶対位置を検出する。モーションセンサ１３６ａは上述のとおり、加速度センサ、ジャイロセンサ、地磁気センサのいずれか、またはいずか２つ以上の組み合わせとする。
【００３５】
ブロック１２６ｂは、バッテリー１２８ｂ、通信機構１３０ｂ、メモリ１３２ｂ、モーションセンサ１３６ｂを備える。各機構はブロック１２６ａについて上述したのと同様でよいが、通信機構１３０ｂは、他のブロックからの信号を受信する有線通信機構のみで構成してもよい。このようなブロックは、情報処理装置１０との通信が可能なブロック１２６ａと組み合わせて使用する。その他のブロックの通信機構も同様である。
【００３６】
ブロック１２６ｃは、通信機構１３０ｃ、メモリ１３２ｃ、角度センサ１３８を備える。角度センサ１３８は、ブロックに内蔵されたセンサの１例であり、図１の四角柱型ブロック１０２ｂに備えたポテンショメータに代表される、ブロック１２６ｃ自体の曲げ角を検出するセンサである。ブロック１２６ｃはバッテリーを備えていないため、バッテリーを搭載した他のブロック１２６ａ、１２６ｂと組み合わせて使用する。ブロックとしてはそのほか、ブロック１２６ｄのように通信機構１３０ｄ、メモリ１３２ｄのみを備えたもの、ブロック１２６ｅのようにセンサ等の機構を備えないもの、等を準備する。
【００３７】
なお図５のブロックはあくまで例示であり、各種センサやその他の機構をいかに組み合わせてもよい。また図示したセンサのほか、曲げセンサ、圧力センサなど実用化されているいかなるセンサを内蔵してもよい。このような様々な内部構成を有するブロックを、図１で示したような様々な形状で準備する。同じ種類のブロックを複数準備してもよい。あるいは全てのブロックの形状およびサイズを統一してもよいし、内部構成を統一してもよい。形状や内部構成にバリエーションをもたせ、各種ブロックを個別に購入できるようにすると、個々のユーザの用途に合わせて最低限の費用で臨機応変に好みのブロックツールを組み立てることができる。基本的な組み立てが可能なブロックのセットをまず提供し、後から買い足せるようにしてもよい。
【００３８】
図６はブロックツール１２０と情報処理装置１０の構成を詳細に示している。図６において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。また既述したように、ブロックツール１２０の各ブロックは通信機構、メモリ、各種センサによって構成されている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３９】
ブロックツール１２０は上述のとおり、個々のブロックをユーザが組み立てることによって形成される。図６ではそれぞれのブロックを第１ブロック１４０ａ、第２ブロック１４０ｂ、第３ブロック１４０ｃ、・・・などとしている。ここで第１ブロック１４０ａは情報処理装置１０との通信機構を有するブロックである。情報の錯綜を防ぐため、ブロックツール１２０を構成するブロックのうち、情報処理装置１０との通信を確立するブロックは、基本的には１つのみとする。そのため第１ブロック１４０ａにハブの役割を与える。そして、当該第１ブロック１４０ａから接続関係の遠いブロックから情報を伝達し、第１ブロック１４０ａにブロックツール１２０全体の情報を集約させる。
【００４０】
以下、ブロックの連結において第１ブロック１４０ａに相対的に近いブロックを「上位」、遠いブロックを「下位」とする。第１ブロック１４０ａとなるブロックはあらかじめ１つに定めておいてもよいし、情報処理装置１０との通信機構を有するブロックに図示しないスイッチなどを設け、ユーザがオンにしたブロックを第１ブロック１４０ａとしてもよい。または組み立て段階において情報処理装置１０と最初に通信を確立したブロックを第１ブロック１４０ａとしてもよい。
【００４１】
このようにして決定した第１ブロック１４０ａに、ユーザが別のブロックを連結すると、当該ブロックは第２ブロック１４０ｂとなる。第２ブロック１４０ｂにさらに別のブロックを連結すると、当該ブロックは第３ブロック１４０ｃとなる。なお同図では３つのブロックのみを示しているが、上述のとおり連結するブロックの数は限定されず、１つ、あるいは４つ以上でも、構成および動作は同様に考えることができる。
【００４２】
第１ブロック１４０ａ、第２ブロック１４０ｂ、第３ブロック１４０ｃはそれぞれ、情報受信部１４２ａ、１４２ｂ、１４２ｃ、要素情報取得部１４４ａ、１４４ｂ、１４４ｃ、情報送信部１４６ａ、１４６ｂ、１４６ｃを備える。情報受信部１４２ａ、１４２ｂ、１４２ｃは、直接接続された下位のブロックから送信された情報を受信する。ここで受信する情報は、当該ブロックより下位に接続されているブロックの識別番号、連結箇所の識別番号、内蔵するセンサによる計測結果を含む。複数のブロックが連結されている場合は、最下位のブロックからブロックを通過するごとに情報が重畳される。
【００４３】
要素情報取得部１４４ａ、１４４ｂ、１４４ｃは、当該ブロックが内蔵しているセンサおよび他のブロックを接続する箇所に設けた端子を含み、センサの計測結果、および下位のブロックが接続している箇所に係る情報を取得する。情報送信部１４６ａ、１４６ｂ、１４６ｃは、情報受信部１４２ａ、１４２ｂ、１４２ｃが受信した、それより下位のブロックの識別番号、連結箇所の識別番号、内蔵するセンサによる計測結果を含む情報に、当該ブロックの要素情報取得部１４４ａ、１４４ｂ、１４４ｃが取得した情報を追加し、直接接続された上位のブロックに信号として送信する。ただし第１ブロック１４０ａの情報送信部１４６ａは、当該情報を情報処理装置１０に送信する。なお情報送信部１４６ａはさらに、処理の開始、終了の要求信号、通信の確立に必要な各種信号を情報処理装置１０から受信するなど情報処理装置１０とのインターフェースとして機能する。
【００４４】
情報処理装置１０は、ブロックツール１２０およびカメラ１２２から、信号および画像データをそれぞれ受信するブロック情報受信部２０、受信した情報に基づきブロックツール１２０の形状および位置を特定する構造解析部２２、ブロックツール１２０の形状および位置、あるいはユーザからの指示に応じて所定の情報処理を行う情報処理部３０、情報処理の結果、表示すべき画像を生成し表示装置１６に出力する表示処理部３２を含む。情報処理装置１０はさらに、各ブロックの識別番号とその形状等を対応づけたブロック情報記憶部２４、ブロックツール１２０の形状と表示すべきオブジェクトモデルに係る情報とを対応づけた登録形状記憶部２６、ブロックツール１２０の形状、姿勢、位置、動きとなすべき処理内容とを対応づけた処理内容記憶部２８を含む。
【００４５】
ブロック情報受信部２０は、ブロックツール１２０の第１ブロック１４０ａが集約した、連結されているブロックの識別番号、その連結箇所、内蔵されたセンサによる計測結果に係る情報を含む信号を受信する。またカメラ１２２から、ブロックツール１２０を撮影した画像のデータを取得する。ブロックツール１２０からの信号とカメラ１２２からの画像データは即時入力されるため、時間的な対応がとれているものとするが、必要な時間分解能によっては同期化処理などを行ってもよい。
【００４６】
構造解析部２２は、ブロック情報受信部２０が取得した情報に基づきブロック情報記憶部２４を参照して、ブロックツール１２０の位置、姿勢、および形状を特定する。このためブロック情報記憶部２４にはあらかじめ、全てのブロックの識別番号と、形状、サイズ、および連結箇所情報とを対応づけたテーブルを格納しておく。連結箇所情報は、他のブロックを連結可能な箇所の位置に係る情報とその識別番号とを対応づけた情報である。
【００４７】
構造解析部２２は、ブロックツール１２０を構成する全ブロックの識別番号から図２のＬ１〜Ｌ５の情報を導出する。さらに実際の連結箇所の識別番号、および角度センサの情報からブロック同士のなす角度、連結位置を特定する。さらにモーションセンサの情報から図２のベクトルｍ１を、カメラ１２２からの画像データに基づきマーカの位置座標（図２の（ｘ１，ｙ１，ｚ１））を導出する。そして図３の中心軸１２４のように、３次元空間におけるブロックツール１２０の位置、姿勢、および形状を特定する。
【００４８】
情報処理部３０は、ブロックツール１２０の形状および位置、姿勢に応じてなすべき処理を実行する。例えばブロックツール１２０が所定の形状に組み立てられたら、それに対応するオブジェクトモデルを表示する。そしてブロックツール１２０の動きに合わせて、表示されたオブジェクトが動くようにする。あるいは特定の動きをコマンドと解釈してゲームを進捗させたり表示内容を変化させたりする。そのため登録形状記憶部２６にはあらかじめ、ブロックツール１２０の形状と表示すべきオブジェクトモデルの画像データとを対応づけて格納しておく。あるいは処理内容記憶部２８には、動き、すなわち形状の時間変化となすべき処理を対応づけて格納しておく。
【００４９】
本実施の形態ではブロックツールの絶対位置、姿勢も認識できるため、オブジェクトモデルを適用したりコマンドを発生させたりする条件を、ブロックツールの形状のみならずブロックツールの位置、姿勢との組み合わせで設定してもよい。このようにすると、例えば同じ形状のブロックツールでも、所定の位置、姿勢にあるときにのみオブジェクトモデルを変化させたり所定の処理を開始させたりすることができる。
【００５０】
あるいは、ブロックツール１２０の形状をユーザが登録するようにしてもよい。この場合、情報処理部３０は、構造解析部２２が取得したブロックツール１２０の形状情報を、ユーザからの登録指示がなされたタイミングで識別情報とともに登録形状記憶部２６に格納する。同様に、処理内容記憶部２８にも、ブロックツール１２０の形状に対しユーザが与えた時間変化と、ユーザが選択したなすべき処理とを対応づけて格納してもよい。なお本実施の形態におけるブロックツール１２０は、任意に変形可能な入力装置としての位置づけを有するため、マウスなど既存の入力装置の代替品として利用することも可能であり、ひいては情報処理部３０が行える処理内容の範囲は限定されない。このような場合も、登録対象として、ブロックツールの形状と位置、姿勢を組み合わせてもよい。
【００５１】
表示処理部３２は、情報処理部３０が行った処理の結果として画像データを作成し、表示装置１６に表示させる。ブロックツール１２０の動きに合わせて動くオブジェクトを表示させる例では、表示装置１６の出力フレームレートで、ブロックツール１２０の中心軸の各時刻の形状に対応させてオブジェクトモデルを描画し、表示装置１６にビデオ信号として出力する。描画処理自体は一般的なコンピュータグラフィックス技術を適用できる。
【００５２】
図７はブロックツール１２０における情報伝達経路と伝達される情報の例を模式的に示している。情報伝達経路１５０において内部に数字の書かれた円はそれぞれがブロックを表しており、円間の直線はブロックが連結されている状態を表している。また円内の数字は各ブロックの識別番号とする。識別番号「１」のブロックは図６の第１ブロック１４０ａに対応し、情報処理装置１０と通信を確立する。さらに図７における識別番号「２」、「３」のブロックは識別番号１のブロックに直列に接続されていることから、図６における第２ブロック１４０ｂ、第３ブロック１４０ｃにそれぞれ対応すると捉えることができる。
【００５３】
一方、１つのブロックに複数のブロックが連結することも考えられる。図７の例では識別番号「１」のブロックに識別番号「２」のブロック、「５」のブロックが接続されている。識別番号「２」のブロックには上述のとおり、識別番号「３」のブロック、「４」のブロックがこの順で直列に接続されている。識別番号「５」のブロックには、識別番号「６」のブロックと「７」のブロックが並列に接続されている。この例ではさらに、識別番号「６」のブロックに、識別番号を持たないブロックが接続され、そのブロックに識別番号「８」のブロックが接続されている。ここで識別番号を持たないブロックとは、図５のブロック１２６ｅのように、内部に機構をもたないブロックに対応する。
【００５４】
上述のとおり情報伝達は基本的に、下位のブロックから上位のブロックへ伝達される。図７では、伝達される情報の内容を、伝達方向を示す矢印とともに表している。例えば識別番号「３」のブロックから「２」のブロックへ伝達される情報は、［３：Ｊ２（４）］と示されている。これは「自らの識別番号：ブロックに設けられた接続箇所の識別番号（そこに接続しているブロックの識別番号）」なるフォーマットで構成される信号であり、識別番号「３」の接続箇所のうち識別番号「Ｊ２」の箇所に識別番号「４」のブロックが接続されていることを表している。ただし同図をもって情報のフォーマットや内容を限定するものではない。
【００５５】
ブロックの上位にあたる方向がどちらにあるかは、ハブの役割を有するブロックが、ブロックの連結によって構成されるネットワークを探索することにより、順位づけを行うなどして決定できる。このような手順は、一般的な情報処理システムを構成するデバイスツリーにおけるネットワーキング技術を適用できる。
【００５６】
図７において識別番号「４」のブロックは、それが属する接続系列において最下位にあるため、１つ上位の識別番号「３」のブロックへ情報を送信する。識別番号「４」のブロックには他のブロックが接続されておらず接続箇所が一意に求まるとすると、またセンサが内蔵されていないとすると、送信される情報は自らの識別番号「４」のみとなるため、伝達内容を「［４：−]」と表している。「−」はセンサの計測結果や接続されているブロックがないことを示している。
【００５７】
識別番号「３」のブロックは、識別番号「４」からの信号を受信すると、それを受信した端子の番号などを接続箇所の識別番号として対応づけ、さらに自らの識別番号「３」も対応づけて、１つ上位の識別番号「２」のブロックに送信する。この信号の伝達内容は上述のとおり［３：Ｊ２（４）］となる。識別番号「２」のブロックも同様に、自らの識別番号、接続箇所の識別番号（図の例では「Ｊ５」）、接続しているブロックの識別番号「３」を対応づけた信号、すなわち［２：Ｊ５（３）］を生成する。また識別番号「２」のブロックがセンサを内蔵しているとすると、その計測結果を表す信号と自らの識別番号を対応づけた信号も生成する。同図の例では計測結果を「result」と表しているが、実際には具体的な数値がセンサの種類に応じて代入される。
【００５８】
識別番号「２」のブロックは、このようにして生成したデータと、下位のブロックから伝達されたデータ、すなわち［３：Ｊ２（４）］を、１つ上位の識別番号「１」のブロックに送信する。ただしこれらの信号は常に同時に送信する必要はなく、一旦送信した信号の内容に変更があったときにその情報のみを送信するなどでもよい。一方、識別番号「５」のブロックに接続された、識別番号「６」と「７」のブロックがセンサを内蔵しておらず接続箇所が一意に求まるとすると、これらのブロックからは、識別番号「４」のブロックと同様、［６：−]、［７：−]の信号がそれぞれ識別番号「５」のブロックに送信される。識別番号「６」のブロックには、さらに別のブロックが接続されているが、当該ブロックは識別番号や通信機構をもたず、そこからの情報は得られないものとしている。
【００５９】
識別番号「５」のブロックは、自らの識別番号に、接続箇所の識別番号および接続されているブロックの識別番号を対応付けた信号を生成し、１つ上位の識別番号「１」のブロックに送信する。図示するように複数のブロックが接続されている場合、それらをまとめて［５：Ｊ３（６），Ｊ８（７）］などとする。ここで「Ｊ３」、「Ｊ８」はかっこ内の識別番号のブロックが接続されている接続箇所の識別番号である。
【００６０】
このようにして識別番号「１」のブロックに、ブロックツール１２０全体の情報が集約される。識別番号「１」のブロックも他のブロックと同様、自らの識別番号に接続箇所の識別番号、それに接続されているブロックの識別番号を対応づけた信号を生成する。そして下位のブロックから送信された信号とともに情報処理装置１０へ送信する。これにより情報処理装置１０は、ブロックツール１２０を構成するブロックの識別番号、各ブロックの接続関係、センサを内蔵するブロックにおける計測結果を逐次取得することができる。
【００６１】
このように、ハブの役割を有するブロックを１つに定め、情報を集約させて情報処理装置１０へ送信するようにすると、情報の錯綜や無駄な通信処理を防止することができる。一方、場合によっては複数のブロックから情報処理装置１０へ通信するようにしてもよい。例えば図７の例では、識別番号「８」のブロックは、通信機構をもたないブロックを介して識別番号「６」のブロックに連結している。
【００６２】
この場合、識別番号「８」のブロックは、自らのデータを情報処理装置１０へ直接送信してもよい。例えば当該ブロックが位置センサを内蔵する場合、自らの識別番号とその計測結果を直接、情報処理装置１０へ送信することにより、情報処理装置１０は、識別番号「６」のブロックより先に連結しているブロックが存在することを把握でき、さらに当該ブロックの形状、およびおよその接続状況を推測することができる。カメラ１２２との連携により位置情報を取得する場合も同様である。識別番号「８」のブロックに内蔵されるセンサの数が増えるほど、その情報の確度が向上する。このような構成により通信機構をもたないブロックを連結可能にすると、コストを増大させることなく形状のバリエーションを増やすことができる。また複数の位置情報を取得できるブロックを組み合わせることで、カメラから位置情報に用いるマーカーが隠れた場合にも隠れていない別のブロックマーカーを利用することで信頼性の高い情報を得ることができる。
【００６３】
なお識別番号「８」のブロックが、情報処理装置１０との通信機構をもたないブロックであった場合は、情報処理装置１０との通信機構を備えるブロックが直接的または間接的に連結されるのを待機する。そしてそのようなブロックが連結されたら、それに向かう方向を「上位」として、必要な信号を送信すれば、上述したのと同様、当該ブロックに集約された情報が、識別番号「１」とは別の経路で情報処理装置１０へ送信される。
【００６４】
図８は情報処理装置１０のブロック情報記憶部２４に格納するデータの構造例を示している。ブロック情報テーブル１６０は、識別番号欄１６２、形状欄１６４、サイズ欄１６６、接続箇所欄１６８を含む。識別番号欄１６２には、ブロックツールを構成するブロックに付与する識別番号を記載する。形状欄１６４には、各ブロックの形状の種類、すなわち「四角柱」、「立方体」など、図１で例示したようなブロックの型を記載する。サイズ欄１６６には各ブロックの横幅、奥行き、縦の長さを記載する。
【００６５】
接続箇所欄１６８には、各ブロックに設けられた接続箇所を、その識別番号と対応づけて記載する。図８の例では、「接続箇所の識別番号（面の番号，当該面内でのｘ座標，ｙ座標）」なるフォーマットで記載されている。面の番号は、ブロックの各面に対しあらかじめ一意に決定しておく。例えば識別番号「１」のブロックは、横幅４ｃｍ、奥行き４ｃｍ、縦の長さ８ｃｍの四角柱型ブロックである。そして識別番号が「Ｊ１」の接続箇所は、第１面の座標（２，２）の位置にある。識別番号が「Ｊ２」の接続箇所は、第２面の座標（１，２）の位置にある。ただしここで示したフォーマットに限定する主旨ではない。
【００６６】
このような情報テーブルを情報処理装置１０で保持しておくことにより、ブロックツール１２０から送信された信号に基づき、図２で表記したパラメータが判明することになる。結果として、ブロックツール１２０の形状および位置、姿勢を図３で示したように算出することができる。
【００６７】
次にこれまで述べた構成によって実現できる情報処理システムの動作を説明する。図９は、ブロックツールの組み立てや動きによって情報処理を実施する処理手順を示すフローチャートである。同図は一例として、ブロックツールの形状に応じたオブジェクトモデルが、ブロックツールの動きに応じて動くように表示するための処理を示している。このフローチャートはユーザが、情報処理装置１０、およびブロックツール１２０のブロックのうちバッテリーを備えるいずれかのブロックの電源を入れ、情報処理装置１０においてアプリケーションを選択するなど処理開始の指示を入力したときに開始される。なお情報処理装置１０は、そのような処理開始、終了、および後段の処理に必要な指示を入力するためのユーザインターフェースとして、一般的な入力装置を含むものとする。
【００６８】
まず情報処理装置１０においては、情報処理部３０、表示処理部３２の協働により、所定の初期画像を表示装置１６に表示する（Ｓ１０）。一方、ブロックツール１２０では、連結されたブロック、連結箇所、ブロックに内蔵されたセンサによる計測結果、などの要素情報の収集が開始される（Ｓ１２）。この処理は、図７で説明したような情報取得、集約処理に対応する。そして集約した情報は、ハブの役割を有する１つのブロックから情報処理装置１０へ信号として送信される（Ｓ１４）。
【００６９】
ただしブロックが組み立てられていない状態では、例えば情報処理装置１０との通信が可能で電源が入れられた全てのブロックから情報処理装置１０へ、それぞれ信号を送信してもよい。そのようなブロックが直接的あるいは間接的に接続されたタイミングで、そのどちらかを、その結合体のハブとして決定する。要素情報の収集および情報処理装置１０への送信は以後、定常的に行う。あるいはブロックの着脱がなされたときやセンサによる計測結果が変化したときに随時行う（Ｓ１６のＹ、Ｓ１４）。
【００７０】
情報処理装置１０においてブロック情報受信部２０が送信された情報を受信すると、構造解析部２２は、当該情報に基づき、ブロックツール１２０の３次元空間での位置、姿勢、および形状を算出する（Ｓ１８）。後段の処理内容によっては、構成する各ブロックのサイズから、ブロックツール１２０の太さなども導出する。ここで情報処理部３０は、そのときのブロックツール１２０の形状が登録されているか否かを登録形状記憶部２６を参照して確認する（Ｓ２０）。
【００７１】
登録されている場合は（Ｓ２０のＹ）、それに対応づけられたオブジェクトモデルのデータを登録形状記憶部２６から読み出し、適用する（Ｓ２２）。そしてＳ１８で算出した、ブロックツール１２０の位置、姿勢、および形状と対応する位置および向き、姿勢で当該オブジェクトモデルを描画して表示を更新する（Ｓ２４、Ｓ２６）。ブロックツール１２０の形状が登録形状に当てはまらなければ（Ｓ２０のＮ）、例えばカメラ１２２が撮影したブロックツール１２０をそのまま表示させるなどして表示を更新する（Ｓ２６）。または図３で示したような、ブロックツール１２０の中心軸の図形を表示してもよい。あるいは該当する形状が登録されておりオブジェクトを適用できる場合以外は、初期画像のままとしてもよい。
【００７２】
ブロックツール１２０では、要素情報に変化があったときなどに情報処理装置１０へその旨を通知し（Ｓ１６のＹ、Ｓ１４）、変化がなければ情報収集を行いつつ、送信の処理を待機する（Ｓ１６のＮ、Ｓ３２のＮ）。ユーザがブロックの電源を切るなど処理を終了させる入力を検知したら全処理を終了する（Ｓ３２のＹ）。情報処理装置１０ではユーザが処理を終了させる入力を行うまで、ブロックツール１２０からの情報に基づき表示を適宜更新していき（Ｓ３０のＮ、Ｓ１８〜Ｓ２６）、処理を終了させる指示入力がなされたら処理を終了する（Ｓ３０のＹ）。なおブロックツール１２０は、情報処理装置１０からの処理終了の通知を受けて、自らの処理を終了してもよい。
【００７３】
図１０はブロックツールと表示画面の変遷例を示している。図の左側の列は実際のブロックツールの状態を表しており、右側の列は各状態において表示装置１６に表示される画面例を示している。まず第１状態のブロックツール２２０ａは、上下２つの四角柱のブロックが直角をなす、Ｌ字型のブロックツール２個からなっている。それぞれのブロックツールにおいて上下のブロックがなす角度は可変であり、当該角度は角度センサによって計測されるものとする。
【００７４】
このＬ字型の形状が登録形状記憶部２６に登録されていないとすると、そのときの表示画面２２２ａには、当該ブロックツール２２０ａを撮影した画像がそのまま表示される。ゲームなどにおいて背景を仮想世界としたい場合は、この時点ではブロックツール２２０ａに対応する物体を何ら表示しなくてもよい。あるいは２つのブロックツールが認識されていることを示す２つのマークなどを簡易的に表示してもよい。
【００７５】
次に第２状態のブロックツール２２０ｂでは、第１状態のブロックツール２２０ａにおける２つのブロックツールを連結し、アーチ状の１つの結合体となっている。この形状が、登録形状記憶部２６においてコウモリのオブジェクトモデルと対応づけて登録されていたとすると、アーチ状のブロックツール２２０ｂが組み立てられた時点で、画面内にコウモリのオブジェクト２２４が出現する（表示画面２２２ｂ）。描画位置は、ブロックツール２２０ｂの位置として算出された位置座標を反映させる。例えばカメラ１２２のカメラ座標系における３次元空間をスクリーン座標に投影する場合、元から当該カメラ座標系でブロックツールの位置座標を算出するか、座標変換をしてカメラ座標系での位置座標を算出する。
【００７６】
さらに第３状態のブロックツール２２０ｃでは、第２状態のブロックツール２２０ｂ全体に傾きを与え、さらに上下のブロックがなす角度を大きくするように下部のブロックを開いている。これはユーザが下部のブロックを両手で把持した状態でブロックツールを動かしていることを想定している（手の図示は省略している）。すると表示画面２２２ｂで出現したコウモリのオブジェクトが、ブロックツール２２０ｃの状態に対応するように傾き、羽を広げた状態のコウモリ２２６となる（表示画面２２２ｃ）。
【００７７】
なお図４に示すようにカメラ１２２をユーザに対峙させるように設置している場合、画像を左右反転させる鏡面処理を施すことにより、表示画面２２２ｃのような画像を表示できる。鏡面処理は、カメラ１２２の位置や表示したい内容などによって実施するか否かを決定する。表示画面２２２ｃのような画面を、ブロックツールの動きに合わせてリアルタイムで表示することにより、コウモリが飛んだり仮想世界の物体にとまったり、といった表示を、ブロックツールの操作により直感的かつ容易に実現できる。
【００７８】
あるいは画面内の背景を、カメラ１２２が撮影した実世界とすると、実世界に仮想的なオブジェクトを組み入れたＡＲ（拡張現実）も実現できる。このときカメラ１２２をユーザ自身にとりつけることにより、ブロックを組み立て、オブジェクトに変化する様をユーザの目線で表示することもできる。ＡＲをブロックを用いて実現した場合、ブロックという実物が仮想オブジェクトを形成するため、当該仮想オブジェクトと現実世界の物とのインタラクションを表示画像内で表現できる。例えば机の本をブロックで押し倒すと、画面内の仮想オブジェクトが同様のアクションをし、それによって実際の机の本が倒れる様も表示できる。
【００７９】
図１１はブロックツールと表示画面の変遷の別の例を示している。図の表し方は図１０と同じである。まず第１状態のブロックツール２２８ａは、上下２つの四角柱のブロックが直角をなす、Ｌ字型のブロックツール１個からなっている。上下のブロックがなす角度は可変であり、当該角度は角度センサによって計測されるものとする。このＬ字型の形状が登録形状記憶部２６において拳銃のオブジェクトモデルと対応づけて登録されていたとすると、表示画面２３０ａに示すように、画面内には拳銃２６０が表示される。
【００８０】
図１０の場合と同様、ユーザはブロックツール２２８ａの下部のブロックを把持して動かすことにより、表示画面２３０ａにおける拳銃２６０の向きや位置を変化させることができる。表示画面２３０ａ内には拳銃２６０のみが現れているが、ユーザの体の動きに合わせて画面内のキャラクタを動作させる技術と組み合わせることにより、当該キャラクタが拳銃２６０を武器に敵と戦うゲームなどを実現できる。
【００８１】
第２状態のブロックツール２２８ｂは、第１状態のブロックツール２２８ａにおける上部のブロックに、下方に伸びるようにさらに別の四角柱のブロックを連結している。この形状が、第１状態のブロックツール２２８ａの形状とは別に、機関銃のオブジェクトモデルと対応づけて登録されていたとすると、当該ブロックが連結された時点で、画面内のオブジェクトは拳銃２６０から機関銃２６２に変化する（表示画面２３０ｂ）。反対に当該ブロックを取り外して第１状態のブロックツール２２８ａに戻せば、画面内のオブジェクトも機関銃２６２から拳銃２６０に戻る（表示画面２３０ａ）。
【００８２】
第３状態のブロックツール２２８ｃは、第１状態のブロックツール２２８ａで直角をなしていた上下２つのブロックの曲げ角を解消し真っ直ぐな棒状にしている。この形状が、第１状態のブロックツール２２８ａの形状とは別に、剣のオブジェクトモデルと対応づけて登録されていたとすると、曲げ角が解消された時点で、画面内のオブジェクトは拳銃２６０から剣２６４に変化する（表示画面２３０ｃ）。
【００８３】
このような構成によれば、同じコンテンツであってもブロックツールの形状によってユーザが操作できる画面内のオブジェクトモデルにバリエーションをもたせることができる。またブロックツールの形状を可変にする、という特性を利用し、ブロックツールの登録形状と、それに対応づけるオブジェクトモデルの形状を近づけると、より臨場感が感じられ直感的に操作が可能になる。さらに、ブロックを足していくことにより、より威力のある武器や魅力的なキャラクタを仮想世界に出現させることができる、という態様とすることにより、ブロックの収集や組み立て自体にも娯楽性をもたせることができる。
【００８４】
同図ではブロックの着脱や形状変化により、オブジェクトモデルそのものを変化させる例を示したが、オブジェクトモデル自体はそのままでその動作や処理内容を変化させるようにしてもよい。例えば第１状態のブロックツール２２８ａから第２状態のブロックツール２２８ｂへ変化したとき、オブジェクトモデルは拳銃のままで、拳銃の威力を増加させたり敵に当たりやすくしたりしてもよい。この場合、情報処理装置１０の処理内容記憶部２８に、オブジェクトの形状と、オブジェクトモデルの動作や処理内容を変化させるために呼び出すべきプログラムとを対応づけて登録しておく。
【００８５】
これまで述べた例は主に、ブロックツールの形状や動きに反応して、あらかじめ対応づけられたオブジェクトがリアルタイムで変化したり動いたりする態様であった。一方、ブロックツールを利用して、オブジェクトの形状や動きをユーザが登録していく態様も考えられる。図１２は、ブロックツールによってオブジェクトの形状や動きを作成していく処理手順を示すフローチャートである。同フローチャートの開始における状態やブロックツール１２０における処理手順は図９で示したのと同様である。以後、図９の処理手順と異なる部分に主眼を置き説明する。
【００８６】
まず情報処理装置１０において初期画像を表示する（Ｓ４０）。ここで表示する画面は、例えばカメラ１２２が撮影したブロックツールのリアルタイム画像などとする。一方、ブロックツール１２０では要素情報の収集を開始し、集約した情報を情報処理装置１０へ送信する（Ｓ４４、Ｓ４６）。その間、情報処理装置１０の情報処理部３０は、登録したいオブジェクトモデルの選択をユーザから受け付ける（Ｓ４２）。例えば表示装置１６に、候補となるオブジェクトモデルの画像リストを表示し、そこからユーザが選択できるようにする。
【００８７】
このとき、選択したモデルの画像をドラッグアンドドロップ操作により、対応づけたいブロックツールのリアルタイム画像上に移動させることにより、モデルの画像とブロックツールを対応づける。ブロックツール１２０がすでに人型等に組み立てられている場合は、画像リストから好みのキャラクタの画像を選択して対応づける。顔、服装などを個別に選択できるようにしてもよい。
【００８８】
そして情報処理装置１０において、ブロックツール１２０から送信された情報を受信すると、構造解析部２２は、当該情報に基づき、ブロックツール１２０の３次元空間での位置、姿勢、および形状を算出する（Ｓ５０）。すると情報処理部３０は、ユーザがＳ４２において選択したオブジェクトモデルを適用したうえ、ブロックツール１２０の位置、姿勢、および形状を反映したオブジェクトを描画し、表示を更新する（Ｓ５２）。なおＳ４２においてオブジェクトモデルの選択を受け付ける前に、一旦、ブロックツール１２０の位置、姿勢、および形状の算出結果を、図３で示した中心軸などの図形で表示してもよい。そしてＳ４２の処理においてユーザは、当該図形に対し、選択したオブジェクトモデルの画像を当てはめていくようにしてもよい。
【００８９】
ユーザがブロックツール１２０の形状、位置、向きを様々に変化させると、その情報はブロックツール１２０から情報処理装置１０へ逐次送信される（Ｓ４８のＹ、Ｓ４６）。その結果、情報処理装置１０で表示したオブジェクトもそれを反映するように位置や姿勢が変化する（Ｓ５４のＮ、Ｓ５０、Ｓ５２）。そしてユーザが情報処理装置１０に対し登録指示を入力すると（Ｓ５４のＹ）、情報処理部３０は、その時点で表示されているオブジェクトの状態を登録形状記憶部２６に記憶させる（Ｓ５６）。
【００９０】
例えば登録順を表す識別番号とともに、オブジェクトモデルの識別番号、姿勢や位置を対応づけて登録する。あるいはその元となっているブロックツール１２０の形状や位置で記憶してもよい。Ｓ５０からＳ５６の処理を出力フレームに対応させて繰り返すことにより、登録された順でオブジェクトが動くアニメーションを含むコンテンツを作成できる。あるいはオブジェクトの状態と、別途用意したコマンドリストから選択されたコマンドとを対応づけて処理内容記憶部２８に登録すれば、ブロックツールの状態によって所定の情報処理が開始されるコンテンツを作成できる。
【００９１】
ユーザが処理を終了させる入力を行うまで、ブロックツール１２０からの情報に基づき表示更新、登録を繰り返し（Ｓ５８のＮ、Ｓ５０〜Ｓ５６）、処理を終了させる指示入力がなされたら処理を終了する（Ｓ５８のＹ）。ブロックツール１２０では、要素情報に変化がなければ情報収集を行いつつ送信の処理を待機し（Ｓ４８のＮ、Ｓ６０のＮ）、ユーザがブロックの電源を切るなど処理を終了させる入力を検知したら全処理を終了する（Ｓ６０のＹ）。
【００９２】
図１３は、後に利用するためにオブジェクトの状態を登録する際のブロックツールと、それを利用して表示される画面の変遷例を示している。まず第１状態のブロックツール２４０ａは、人型に組まれた複数のブロックで構成されている。ユーザはこのようにブロックを組んだあと、それをカメラ１２２の視野内の所望の位置に置く。一方、オブジェクトモデルとして人の画像を選択する。すると表示装置１６には、人の姿のオブジェクトが表示される。
【００９３】
本実施の形態ではブロックツールの３次元空間での位置も認識できるため、カメラの視野と表示画面を一致させれば、カメラから見たブロックツールの見かけと同様に、オブジェクトが表示画面に現れる。登録時には登録対象のオブジェクトのみを表示するため、この段階で表示装置１６に表示されるのは、同図の表示画面２４２ａのうち、人のオブジェクト２４４ａのみである。ここでユーザが情報処理装置１０に対し、登録を指示する入力を行うと、登録形状記憶部２６には、オブジェクトモデルの画像、３次元空間でのオブジェクトの位置、姿勢、向きが記憶される。
【００９４】
続いてユーザがブロックツールをカメラ１２２に近づけつつ登録指示を繰り返すと、画面内のオブジェクトが近づいてくる様が記録される。第２状態のブロックツール２４０ｂは、そのようにして徐々にブロックツールをカメラ１２２に近づけていったあと、オブジェクトの右足にあたるブロックを上げた状態としている。このとき表示装置１６に表示されるのは、同図の表示画面２４２ｂのうち、右足を上げた人のオブジェクト２４４ｂのみである。ここでユーザが登録指示の入力を行うと、当該オブジェクトの状態が記憶される。
【００９５】
このようにして記憶しておいたオブジェクトの位置や姿勢は、後にアニメーション表示などに利用することができる。例えば別途作成したボールのアニメーションと組み合わせ、表示画面２４２ａから表示画面２４２ｂに至るように、遠くから走ってきた人がボールを蹴り上げる様子を表現できる。あるいは仮想世界を表すゲームなどにおいて所定の指示入力がユーザからなされたときに、登録しておいたデータを読み出すことにより、位置や動きを再現させることができる。例えば敵と戦う場面においてユーザ自身が考えた技を試してみることもできる。
【００９６】
図１３の例は画面内のオブジェクトを、ユーザが登録した通りに動かす態様であったが、ブロックツール自体をロボットとして動かすことも同様にできる。この場合、ブロックツールには、角度が可変な関節部分にアクチュエータを設けるとともに、情報処理装置１０からの無線通信によりアクチュエータ制御を行えるようにする。そしてブロックツールの連続した複数の状態を、図１３と同様に順次登録しておく。再生時には、登録された順に、ブロックツールの状態を再現するようにアクチュエータを制御すれば、所望の動きを実物で再現させることができる。例えば、ブロックツール同士を赤外線などを利用して認識させ、挨拶させたり考案した技で戦わせて遊ぶロボット遊びなどへの応用が考えられる。
【００９７】
このようにユーザ自身がブロックツールの状態を登録する態様を応用すると、少ないブロックで多様なオブジェクトの作成が可能となる。図１４は２つのブロックでオブジェクトを作成するときのブロックツールと、登録時の表示画面の変遷例を示している。まず第１状態のブロックツール２５０ａは、２つの四角柱のブロックを縦方向に連結している。当該２つのブロックのうち、下部のブロックは、あらかじめ基準ブロック２５６として設定しておく。第１状態のブロックツール２５０ａに対し、情報処理装置１０の構造解析部２２は、２つのブロックの接続状況および位置を認識する。
【００９８】
ユーザは表示装置１６に表示された２つのブロックのうち、基準ブロックに茎のモデルを、上部のブロック２５８に１枚の花びらのモデルを対応づける。すると表示装置１６には表示画面２５２ａに示すように、各ブロックに対応する位置に茎２５７と花びら２５４ａが表示される。ここで一旦、登録指示を入力する。このとき情報処理部３０は、基準ブロック２５６のみの状態に対応づけて、茎に花びらが１枚ついたオブジェクトモデル（第１状態モデルと呼ぶ）を登録形状記憶部２６に記憶させる。さらに基準ブロック２５６が当該オブジェクトモデルの茎部分であることも記憶させておく。
【００９９】
次に第２状態のブロックツール２５０ｂは、上部のブロック２５８が外され基準ブロック２５６の上端左側に接続し直されている。このとき構造解析部２２は、基準ブロック２５６の別の箇所に上部のブロック２５８が接続されていることを認識する。そして第１状態モデルを読み出し、茎に対応づけられている基準ブロック以外のブロック、すなわち接続位置が変化した上部のブロック２５８へのオブジェクトモデルの対応づけをユーザに促す。
【０１００】
ユーザが１枚の花びらのモデルを対応づけると、第１状態モデルに加え、新たに対応づけられた上部のブロック２５８の位置にさらに花びら２５４ｂがついたオブジェクトモデルが表示される（表示画面２５２ｂ）。この状態で登録指示が入力されたら、前に記憶されていた第１状態モデルを上書きし、茎に花びらが２枚ついたオブジェクトモデル（第２状態モデルと呼ぶ）を記憶する。
【０１０１】
次に第３状態のブロックツール２５０ｃは、上部のブロック２５８が再び外され基準ブロック２５６の上端右側に接続し直されている。この場合も第２状態のブロックツール２５０ｂと同様、接続し直された上部のブロック２５８へさらに花びらのオブジェクトモデルを対応づけると、第２状態モデルに加え、新たに対応づけられた上部のブロック２５８の位置にさらに花びら２５４ｃがついたオブジェクトモデルが表示される（表示画面２５２ｃ）。この状態で登録指示が入力されたら、前に記憶されていた第２状態モデルを上書きし、茎に花びらが３枚ついたオブジェクトモデルを記憶する。
【０１０２】
同様の処理を繰り返すと、用いるブロックの数が少なくても、複雑なオブジェクトモデルをユーザの好みの形状で生成することができる。この態様において各段階の登録処理は、基準ブロックが表すオブジェクトの部分と、他のブロックが表すオブジェクトの部分との向きや位置の相対関係を１つ１つ規定していることにほかならない。結果として、ブロックを外しても、基本ブロックが表す部分とその他の部分との相対関係が固定される。例えば図１４の場合、茎に対する３枚の花びらの位置は定まっている。結果として、それを利用した表示を行う際、基準ブロックの動きに合わせて完成したオブジェクトモデルを動かすこともできる。
【０１０３】
なお図１４の例では基準ブロック２５６の位置や向きに変化がなかったが、構造解析部２２は基準ブロック２５６を認識しているため、それを動かして他のブロックツールを接続し直しても同様に登録ができる。例えば右手を使って右方向から他のブロックツールを接続するのが好適であれば、基準ブロック２５６を回転させながら、他のブロックツールを常に同じ方向から接続していっても、上述と同様に接続箇所を変化させることができる。
【０１０４】
上記の原理を拡張すれば、隣り合うオブジェクトの向きや位置の相対関係の連鎖によって、完成したオブジェクト全体の形状を規定できるため、基本ブロックを１つに定める必要はなくなる。結果的に、比較的大きな規模の家や街などのデザインも、少ないブロックで容易に可能となる。オブジェクトの形状を徐々に足していくのみならず、ブロックツールの形状、向き、位置の時間変化を記録して徐々に足し合わせていけば、複数の動きを組み合わせて１つの動きを完成させることもできる。
【０１０５】
上述の態様は画面内のオブジェクトモデルを生成する例であったが、そのようにしてデザインしたモデルを３次元プリンタの入力値とすると、複雑なモデルであっても、その実物を容易に作成することができる。
【０１０６】
以上述べた本実施の形態によれば、様々な形状や大きさを有するブロックを情報処理の入力装置として利用する。このとき３次元空間での位置を検出するためのマーカを備えたブロック、モーションセンサを備えたブロック、角度センサを備えたブロックなどを準備することにより、組み立て後の結合体の３次元空間での位置、姿勢、および形状を同定することができる。このような構成とすると、個々のブロックの形状や連結手段などに対する制限が少なくなり、ユーザが意図する結合体を、情報処理装置に認識可能な状態で容易に作成することができる。また幾何的な見地から結合体の形状を算出するため、内部に何ら機構をもたないブロックも接続可能となり、ブロックのバリエーションを増やせるとともに製造コストを抑えることができる。
【０１０７】
さらに３次元空間での位置を認識できるため、オブジェクトのモデリングのみならず位置についても規定でき、ゲームやアニメーションなどにおけるキャラクタの移動を含めた動きを容易にデザインできる。また複数のブロックの相対的な位置関係を含め、ブロックの状態に対してオブジェクトモデルを登録しておくと、その状態となったときに画面内にオブジェクトが出現し、ブロックの動きに合わせて動く、といった娯楽性を提供できる。さらにブロックの状態とオブジェクトモデルの対応づけに係る情報を蓄積して登録していくことにより、少ないブロックで複雑なオブジェクトモデルを生成したり動かしたりすることができる。
【０１０８】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１０９】
２  情報処理システム、  １０  情報処理装置、  １６  表示装置、  ２０  ブロック情報受信部、  ２２  構造解析部、  ２４  ブロック情報記憶部、  ２６  登録形状記憶部、  ２８  処理内容記憶部、  ３０  情報処理部、  ３２  表示処理部、  １０２ａ  四角柱型ブロック、  １２２  カメラ、  １２０  ブロックツール、  １２８ａ  バッテリー、  １３０ａ  通信機構、  １３２ａ  メモリ、  １３４  位置センサ、  １３６ａ  モーションセンサ、  １３８  角度センサ、  １４２ａ  情報受信部、  １４４ａ  要素情報取得部、  １４６ａ  情報送信部。
【産業上の利用可能性】
【０１１０】
以上のように本発明はコンピュータ、ゲーム装置、コンテンツ表示端末、コンテンツ作成装置などの情報処理装置に利用可能である。
【図１】
2014010004.tif 000003
【図２】
2014010004.tif 000004
【図３】
2014010004.tif 000005
【図４】
2014010004.tif 000006
【図５】
2014010004.tif 000007
【図６】
2014010004.tif 000008
【図７】
2014010004.tif 000009
【図８】
2014010004.tif 000010
【図９】
2014010004.tif 000011
【図１０】
2014010004.tif 000012
【図１１】
2014010004.tif 000013
【図１２】
2014010004.tif 000014
【図１３】
2014010004.tif 000015
【図１４】
2014010004.tif 000016
【国際調査報告】
2014010004.tif 000017
2014010004.tif 000018