図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム1は、プレイフィールド20上に置かれた実物体120a、120b、プレイフィールド20上の空間を撮影する撮像装置12、所定の情報処理を行い実物体120a、120bの少なくともいずれかを動かす情報処理装置10、ユーザ操作を受け付ける入力装置14、周囲の音声を取得するマイクロフォン16、画像を表示する表示装置18、および音声を出力するスピーカー19を含む。なお入力装置14、マイクロフォン16、表示装置18、スピーカー19は、実施する態様によっては情報処理システム1に含めなくてもよい。
プレイフィールド20は、情報処理装置10が実物体120a、120bを認識し、その位置座標を特定するための基準となる領域を規定する平面である。プレイフィールド20はそのような平面領域を規定できれば材質や形状は限定されず、紙、板、布、机の天板、ゲーム盤などのいずれでもよい。あるいは表示装置18に含まれるプロジェクタが机上や床上に投影した画像などでもよい。
実物体120a、120bは、実空間に存在する物体であればその形状は限定されない。つまり図示するような単純な形状の物でもよいし、人形やミニカーなど現実世界にある物のミニチュアやその部品、ゲームの駒など、より複雑な形状の物でもよい。また実物体120a、120bのサイズ、材質、色、使用する個数なども限定されない。さらに、ユーザによって組み立てたり分解したりできる構造としてもよいし、完成物であってもよい。実物体120a、120bの少なくともいずれかは、情報処理装置10と通信を確立し、送信された制御信号によって駆動するアクチュエータを備える。
通信の確立は、Bluetooth(ブルートゥース)(登録商標)プロトコルやIEEE802.11等の無線インターフェースを用いた接続によって行ってもよいし、ケーブルを介してもよい。図示する例では、実物体120a、120bはそれぞれ、車輪122a、122bを備え、情報処理装置10からの制御信号によって車軸のモーターを回転させることにより自走する構成としている。ここで情報処理装置10は、例えば実物体120bを、入力装置14を介したユーザ操作に基づき移動させる一方、実物体120aを、実物体120bの位置や動きなどに応じて自らが決定した動きで移動させる。
このように本実施の形態では、情報処理装置10がいずれかの実物体(例えば実物体120a)を、プレイフィールド20上の状態に応じた所定の規則に従い動かすことを基本とする。なお以後の説明において、情報処理装置10が動きを決定する実物体を特に「情報処理装置10が制御する実物体」と呼び、ユーザが入力装置14を介して操作する実物体と区別する。情報処理装置10が制御する実物体以外の実物体(例えば実物体120b)は、ユーザが自由に置いたり動かしたりできる物であればよく、内部にアクチュエータを備えていなくてもよい。またアクチュエータを備えていても、その操作手段は入力装置14に限らず、専用のコントローラなどを用いて直接操作できるようにしてもよい。
さらにアクチュエータで駆動させる対象は車輪に限らない。例えば実物体にグリッパーやアームを取り付け、その可動部分を動かすなどでもよく、一般的なロボットや玩具などで制御対象となる機構のいずれを採用してもよい。またそのような機械的な動きに限らず、発光素子、ディスプレイ、スピーカー、振動子などを内蔵することにより、それらを作動させてもよい。同時に複数の機構を作動させてもよい。いずれにしろそれらの機構は情報処理装置10によって制御される。
撮像装置12は、CCD(Charge Coupled Device)またはCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を備えた一般的なデジタルビデオカメラであり、実物体120a、120bが置かれたプレイフィールド20上の空間を動画撮影する。または近赤外線等の非可視光を検出するカメラとしたり、それと一般的な可視光を検出するカメラとを組み合わせた構成としたりしてもよい。当該動画像のフレームデータは撮影とともに情報処理装置10へ順次送信され、プレイフィールド20が構成する平面における実物体120a、120bの位置座標の取得に用いられる。したがって撮像装置12は、好適にはプレイフィールド20を俯瞰する配置とする。
ただし実物体120a、120bの位置座標が判明すれば、撮像装置12の位置や角度は特に限定されない。例えば実物体120a、120bに所定サイズのマーカーを設け、その見かけ上のサイズで撮像装置12の撮像面からの距離が判明する場合、それを利用してカメラ座標系における位置座標を取得し、それをプレイフィールド20を水平面とするワールド座標系における位置座標に変換してもよい。あるいは撮像装置12を、既知の間隔を有する左右の視点から同一空間を撮影するステレオカメラで構成することで、撮像面からの実物体120a、120bの距離を取得してもよい。
ステレオカメラにより被写体の奥行き方向の位置を取得する技術は広く知られている。ステレオカメラに代えて視点移動カメラを用いてもよい。あるいは別途、近赤外線などの参照光を照射しその反射光を検出する装置を設け、TOF(Time of Flight)などの既存手法により実物体120a、120bの位置を特定してもよい。さらに、プレイフィールド20の上面をタッチパッドとし接触位置を検出することにより実物体120a、120bの位置を特定してもよい。TOFやタッチパッドを用いた場合は、撮影画像における各像の色情報などと統合することにより、実物体120a、120bを区別する。また一旦検出した実物体120a、120bについては、既存の視覚追跡技術を用いて追跡することにより、以後の位置座標取得を効率化できる。
情報処理装置10は、プレイフィールド20上の実物体、主に自らが制御する実物体120a以外の実物体の位置や動きを取得し、それに基づき自らが制御する実物体120aの動きを決定する。そして決定結果に従う制御信号を送信することで、実物体120aを動作させる。例えば情報処理装置10は、ゲーム装置やパーソナルコンピュータであってよく、必要なアプリケーションプログラムをロードすることで情報処理機能を実現してもよい。また情報処理装置10は、後述するようにネットワークを介し別の情報処理装置やサーバと通信を確立し、必要な情報を送受してもよい。
ここで実物体120a、120bの動きは、上述のように撮像装置12が撮影した動画像のデータを用いて、それらの位置座標の時間変化を追跡することにより取得する。なおユーザが入力装置14を介して実物体120bを動かしている場合は、当該実物体120bの初期位置を取得しておけば、以後は入力装置14に対するユーザの操作内容から位置の時間変化を特定できる。このように実物体120a、120bの動きは、撮影画像以外の手段で取得してもよいし、複数の手段で取得した情報を統合することによって精度を高めてもよい。
入力装置14は、処理の開始/終了や実物体120bの駆動などのユーザ操作を受け付け、その操作内容を表す信号を情報処理装置10へ入力する。入力装置14はゲームコントローラ、キーボード、マウス、ジョイスティック、タッチパッドなど、一般的な入力装置のいずれか、またはいずれかの組み合わせでよい。マイクロフォン16は、周囲の音を取得しそれを電気信号に変換して情報処理装置10へ入力する。情報処理装置10は、マイクロフォン16から取得した音声信号のうち主にユーザの音声を認識し、自らが制御する実物体120aの動きに反映させる。
表示装置18は情報処理装置10が生成した画像を表示する。図示する例では表示装置18をプロジェクタとし、プレイフィールド20上に画像を表示することを想定している。一方、表示装置18を一般的なテレビモニターのようなディスプレイとしてもよいし、プロジェクタとディスプレイの双方を構成に含めてもよい。あるいはプレイフィールド20をディスプレイとしてもよい。
スピーカー19は一般的なスピーカーのほか、ブザーなどの発音装置や、それらを組み合わせた物でもよく、情報処理装置10からの要求に従い所定の音や声を音響として出力する。情報処理装置10とその他の装置との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいは情報処理装置10、撮像装置12、入力装置14、マイクロフォン16、表示装置18、スピーカー19のうちいずれか2つ以上、または全てが組み合わされて一体的に装備されていてもよい。情報処理装置10にはさらに、スピーカーなどの外部装置を接続してもよい。
図2は情報処理装置10の内部回路構成を示している。情報処理装置10は、CPU(Central Processing Unit)22、GPU(Graphics Processing Unit)24、メインメモリ26を含む。これらは、バス30を介して相互に接続されている。バス30にはさらに入出力インターフェース28が接続されている。入出力インターフェース28には、USBやIEEE1394などの周辺機器インターフェースや、有線又は無線LANのネットワークインターフェースからなる通信部32、ハードディスクドライブや不揮発性メモリなどの記憶部34、表示装置18やスピーカー19などの出力装置へデータを出力する出力部36、撮像装置12、入力装置14、およびマイクロフォン16からデータを入力する入力部38、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部40が接続される。
CPU22は、記憶部34に記憶されているオペレーティングシステムを実行することにより情報処理装置10内部の構成要素における処理や信号伝送を制御する。CPU22はまた、リムーバブル記録媒体から読み出されてメインメモリ26にロードされた、あるいは通信部32を介してダウンロードされた各種プログラムを実行する。GPU24は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有する。GPU24はCPU22からの描画命令に従って描画処理を行い、適宜、表示装置18に出力する。メインメモリ26はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
通信部32は、アクチュエータを備えた実物体120a、120bと通信を確立し制御信号を送信する。実物体120aなどにおいて音声を出力させたり画像を表示させたりする態様においては、それらのデータも送信する。後述するように実物体120aなどにセンサを設ける態様においては、通信部32は当該センサによる計測値を実物体120aなどから受信してもよい。通信部32はさらに、必要に応じてネットワークと通信を確立し、外部のサーバや情報処理装置との間で必要なファイルやデータの送受を行ってよい。
図3は実物体120a、120bと情報処理装置10の構成を詳細に示している。図3において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、マイクロプロセッサ、その他のLSI、アクチュエータ、センサ等で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
同図において、情報処理装置10が制御する実物体を実物体120a、ユーザが入力装置14を介して操作する実物体を実物体120bとしている。ただし上述のように、プレイフィールド20上には、ユーザが直接操作する実物体や、単に置いたり手で動かしたりする実物体があってよい。またそのような実物体のみで構成する場合、実物体120bはなくてもよい。ユーザが手で動かしたり置いたりするのみの実物体は、平板なカードや、内部構造を持たない人形、ゲームの駒、ブロック、装飾品のような物でよい。この場合であっても、色、模様、形状を異ならせたり、2次元バーコードを印刷したり、といった外装上の変化をつけることにより、撮影画像からそれぞれの像を高精度に識別することができる。
実物体120a、120bはいずれも、情報処理装置10からの制御信号に従い動作する駆動部106a、106b、情報処理装置10から必要な制御信号やデータを受信する通信部108a、108bを含む。ただし実物体120aが受信する制御信号は情報処理装置10がその内容を決定したものであり、実物体120bが受信する制御信号は入力装置14を介したユーザ操作を反映させたものである。駆動部106a、106bは、情報処理装置10からの制御信号により駆動するアクチュエータを含む。図1に示したように、実物体120a、120bが車輪122a、122bによって自走する場合、アクチュエータによって車軸を回転させたり舵角を変化させたりする。
これにより、情報処理装置10からの制御信号に従った方向および速度で実物体120a、120bを走行させることができる。そのほか駆動部106a、106bは、上述のように、車輪以外の動きを発生させるアクチュエータや、発光素子、ディスプレイ、スピーカー、振動子などとそれを作動させる機構を含んでもよい。それらの機構も既存の技術を利用することによって、情報処理装置10からの制御信号により動作させる。
通信部108a、108bは、情報処理装置10から送信された制御信号を受信し、それぞれの駆動部106a、106bに通知する。通信部108a、108bは、自身の実物体120a、120bの個体識別情報を内部のメモリに保持する。そして情報処理装置10から送信された制御信号が自身の実物体120a、120bに宛てて送信されたものか否かを、制御信号とともに送信された個体識別情報に基づき判断する。
なお実物体120a、120bにはさらに、自身の状態を計測する、図示しないセンサを備えてもよい。上述のように撮影画像を用いて実物体120a、120bの位置座標を取得するのに加え、各実物体が自らの状態を計測することで、位置関係や実物体の形状の変化などをより正確に求めてもよい。この場合、通信部108a、108bは、センサによる計測値を、自らの個体識別情報とともに情報処理装置10に送信する。図1に示すように実物体120a、120bに車輪を122a、122b設けた場合、車輪122a、122bにロータリーエンコーダおよび舵角センサを設け、実際の移動量や移動方向を特定してもよい。
同様に、実物体120a、120bの絶対位置を取得する位置センサや、加速度センサ、ジャイロセンサ、地磁気センサなどのモーションセンサを設けてもよい。実物体120a、120bは情報処理装置10からの制御信号によって動くことを基本とするが、このようにして実際の計測値を取得すれば、誤差を修正するようにフィードバック制御ができる。実物体120a、120bに、ユーザによって屈伸可能な関節を設け、その角度を特定するポテンショメータを導入してもよい。これにより実物体120a、120bの形状がいかに変化してもそれを認識できるため、撮影画像における像の追跡を精度よく行える。ただし要求される位置検出精度や製造コストなどに鑑み、センサの要、不要を決定する。
情報処理装置10は、実物体120a、120bへ制御信号を送信する通信部50、実物体120a、120bの位置関係を含むプレイフィールド20上の状態を特定する状態特定部52、実物体の情報を格納する実物体情報記憶部54、実物体120a、120bの位置関係等に応じて情報処理を行う情報処理部62、当該位置関係とそれに応じてなすべき処理との対応を設定したシナリオ記憶部56、ユーザ操作または情報処理部62における処理の結果として制御信号を生成する実物体制御部60を含む。
状態特定部52は、撮像装置12から動画像の画像フレームを順次取得し、それを解析することによって実物体120a、120bの位置を所定の時間間隔で特定する。画像解析により対象物の像を検出したり追跡したりする技術としては様々な手法が広く知られており、本実施の形態ではそのいずれを採用してもよい。また上述のように、撮影画像中の像の情報と、ステレオ画像やTOFなどを用いた奥行き方向の位置情報とを統合し、3次元空間での位置を特定する技術も一般的な手法を利用することができる。
さらに上述のように実物体120a、120bにセンサを設ける場合、状態特定部52は実物体120a、120bから送信された計測値を用いて、動き、位置、形状、姿勢などを詳細に特定してもよい。この場合、通信部50は実物体120a、120bから送信された計測値を受信して状態特定部52に供給する。なお情報処理装置10が制御する実物体120aと、ユーザが操作する実物体120bとを撮影画像上で区別するために、実物体120a、120bには異なる特定色で発光するマーカーや2次元バーコードを設けてもよい。
色、形状、模様、サイズなど、それ以外の外観上の特徴により実物体120a、120bを区別してもよい。実物体情報記憶部54には、各実物体120a、120bの個体識別情報と、それらの外観上の特徴とを対応づけた情報を格納しておく。状態特定部52は当該情報を参照し、撮影画像から検出した像の外観上の特徴に対応する個体識別情報を特定することにより、各位置にある実物体120a、120bを区別する。実物体120a、120bの個体識別情報とその位置座標は、情報処理部62に逐次供給する。
情報処理部62は、実物体120a、120bの位置関係、入力装置14に対するユーザ操作、マイクロフォン16が取得した音声信号などに基づき、なすべき情報処理を実行する。例えばユーザが操作する実物体120bと情報処理装置10が制御する実物体120aとで競争するゲームを実現する場合、情報処理部62は情報処理装置10が制御する実物体120aの動きを決定するほか、得点の算出、勝敗の決定、表示画像の生成、出力音声の決定などを行いながらゲームを進捗させる。ゲームのプログラムや動きを決定づける規則、画像の生成に必要なデータなどは、シナリオ記憶部56に格納しておく。
なおマイクロフォン16が取得した音声信号を利用する場合、当該音声信号から所定のキーワードを検出するため、情報処理部62には一般的な手法による音声認識の機能を設ける。情報処理部62は、生成した表示画像のデータを表示装置18へ出力したり、発生すべき音声データを復号するなどしてスピーカー19へ出力したりする。表示装置18を、プレイフィールド20に画像を投影するプロジェクタとした場合、ゲームの進捗や実物体120a、120bの位置などに応じてプレイフィールド20上の画像を変化させることができる。当該画像に得点などの情報表示を含めてもよい。
実物体制御部60は、情報処理部62が決定した動きで実物体120aが動くように制御信号を生成する。また、入力装置14に対するユーザ操作の内容を解釈し、ユーザの操作対象である実物体120bへの制御信号を生成する。これらの制御信号は、情報処理部62から供給された各実物体120a、120bの個体識別情報と対応づける。通信部50は実物体120a、120bと通信を確立し、実物体制御部60が生成した制御信号を送信する。具体的に送信する信号は制御方式によって様々であり、ロボット工学の分野などで一般的に用いられる技術を適宜採用してよい。
図4は実物体120aの外観構成例を示している。実物体120bも同様でよい。この例の実物体120aは、図1で示したように直方体形状の本体の下部に車輪122aを備える。また上部には所定の色で発光するマーカー126を備える。情報処理装置10の状態特定部52は、撮影画像中、マーカー126の像を検出することにより、実物体120aの位置座標を取得する。すなわちマーカー126の中心129を実物体120aの追跡点とする。図示した例では、実物体120aの上面124aを構成する矩形の一つの辺に近接した位置にマーカー126を配置している。このようにマーカー126を実物体120aの中心からずらした配置とすることで、例えばマーカー126に近い側面を実物体の前と規定でき、前進や後退についての認識をユーザと共有できる。
マーカー126は例えば、赤外線発光ダイオードや白色発光ダイオードで実装する。また白色発光ダイオードの表面にカラーフィルターキャップを装着することにより、色を切り替えられるようにしてもよい。情報処理装置10が制御する実物体120aとユーザが操作する実物体120bとで発光色を異ならせることにより、撮影画像中の像の色でそれらを区別できる。この場合、ユーザ自身も両者の区別が可能になる。また1つの実物体120aにマーカーを複数設け発光色を異ならせることにより、実物体120aの向きを色によって定義してもよい。このように色で何らかの区別をする必要がある場合と、その必要がない場合とで、発光を赤外線などの非可視光とするか可視光とするかを切り替えられるようにしてもよい。そのためマーカー126はアップコンバージョン蛍光体などの波長変換素子を内蔵してもよい。
また実物体120aの下面124bに示すように、車輪122aにはそれぞれ車軸を回転させるモーター128を設ける。モーター128は、図3で示した駆動部106aに対応し、情報処理装置10から送信される制御信号により駆動して、要求された回転速度および方向に車輪122aを回転させる。車輪122aには、アクチュエータにより舵角を変化させる機構を設けてもよい。これにより実物体120aの移動方向を変化させたりその場で旋回させるなどの動きも発生させられる。また実物体120aに、車輪122aの回転をモーター128から開放させるスイッチを設けることにより、場合によって実物体120aをユーザが手で走らせられるようにしてもよい。
図4で示した実物体120aを最小単位として1つの実物体を組み立てられるようにしてもよい。図5は複数の実物体の結合例を下面図により示している。まず同図左側に示した実物体130aは、最小単位の実物体120aを前後に2つ接続した構成を有する。この場合、矢印に示すように実物体130aは長手方向に走行する。結合は例えば、2つの実物体120aをはめ込み可能な板、全体を覆うカバー、結束帯などにより実現する。各実物体120aに凹凸形状の接続箇所、面ファスナー、磁石などを設け、それにより接続してもよい。その他の例も同様である。
図5の右上に示した実物体130bは、最小単位の実物体120aを左右に2つ接続した構成を有する。この場合、矢印に示すように実物体130bは長手方向に垂直な方向に走行する。同図の右下に示した実物体130cは、最小単位の実物体120aが内側で三角形を形成するように互いに接続した構成を有する。この場合、矢印に示すように実物体130cは同じ場所で旋回することになる。複数の実物体120aを接続できるようにすることにより、別の実物体を上に乗せて運んだり牽引したりする態様であっても、その重さや大きさに応じた実物体を臨機応変に準備できる。またユーザの好みや遊びの目的などによって進行方向や動きに変化をつけることができる。
図6は実物体に設けるマーカーの数や位置の変形例を上面図により示している。まず同図左側に示した実物体120cは、2つのマーカー126a、126bを備えている。情報処理装置10の状態特定部52は、撮影画像中、当該マーカー126a、126bの像を検出することにより、それらを結ぶ線分の中点132の位置を実物体120cの追跡点として取得する。図4で示した例と同様、中点132を実物体120cの上面の中心からずらすことによりその前後を区別できる。また図示するように、実物体120c上にブーム134を設け、その両端にマーカー126a、126bを配置することにより、周囲の状態によらず撮像装置12の視野に入るようにその位置を調整可能としてもよい。
図の右側に示した実物体120dは、3つのマーカー126c、126d、126eを備えている。状態特定部52は撮影画像中、当該マーカー126c、126d、126eの像を検出することにより、それらを頂点とする三角形の重心136の位置を実物体120dの追跡点として取得する。この場合、実物体120dの前後でマーカーの数を異ならせることによりその前後を区別できる。
図7は実物体に設けるマーカーの別の例として、実物体の前後の区別にマーカーの発光を利用する場合を実物体の上面図により示している。実物体120eは図6の実物体120cと同様、ブーム134の両端にマーカー126f、126gを備える。ただしブーム134は、図示するような実物体120eの上面の中心など、任意の位置に配置してよい。またマーカー126f、126gの位置もユーザが自由に配置できるようにしてもよい。場合によってはブーム134を設けず、実物体120e本体にマーカー126f、126gを直接設置してもよい。いずれにしろマーカー126f、126gは、実物体120e上面の左右を結ぶ直線など、前後の方向を規定できる直線上に複数、配置する。
このような構成において、2つのマーカー126f、126gのどちらか一方のみを発光させることにより、実物体120eの左右を定義し、ひいては実物体120eの前後を明示する。例えば前進方向に向かって左のマーカー126fを点灯させ、右のマーカー126gを消灯する、という規則をあらかじめ設ける。同図矢印の方向を前進方向とすることがモーターの配置や回転方向から確定している場合、マーカーの左右も自ずと確定するため情報処理装置10はその情報に従い左側のマーカー126fを点灯させる。
前進方向が確定していない場合は、マーカー126f、126gの一方を点灯させた状態で車輪を正逆2方向に回転させ、点灯させたマーカーが左となる回転方向を撮影画像におけるマーカーの動きから特定し、前進の回転方向として決定する。情報書処理装置10の状態特定部52はそのように決定した情報を、実物体120eの個体識別情報に対応づけて実物体情報記憶部54に記録し、以後の実物体制御に用いる。ユーザは上記規則のみ認識しておけば情報処理装置10の制御との齟齬が生じない。
なお図7で示したように片方のマーカーを消灯させても、その形状や色などに基づき撮影画像から当該マーカーの像を検出すれば、追跡点は図6の実物体120cと同様、2つのマーカー126f、126gを結ぶ線分の中点132となる。マーカー126f、126gの左右を点灯/消灯で区別するほか、点灯/点滅としたり、可視光/非可視光の発光としたり、発光色を異ならせたりしてもよい。なお図6、図7で示したマーカーの配置や数は例示であり、実物体のサイズや形状等に応じて適宜決定してよい。また上述のようにマーカー以外の外観的特徴により実物体を認識できる場合は、マーカーを設けなくてもよい。
本実施の形態では、これまで述べたようなシンプルな形状の実物体であっても、様々な物に見立てることによって意図した世界を構築し、ごっこ遊びやゲームを実現できるようにする。すなわち構築する世界に応じて実物体の外観を変化させる必要はない。このような場合であっても、例えば一方の実物体のマーカーを赤く発光させ、他方の実物体のマーカーを白く発光させることで、前者を救急車、後者を普通車、などとする区別をユーザが直感的に把握できる。このとき赤い発光を点滅させるなどの演出を施せば、ユーザはさらに臨場感を味わうことができる。
また上述のとおりマーカーの色を異ならせることにより、情報処理装置10が制御する実物体とユーザが操作する実物体とをユーザ自身も区別できる。この場合、どちらの色の実物体が、ユーザが操作する対象であるかを、情報処理装置10が事前に明示してもよい。例えば情報処理装置10は、マーカーをそれぞれの色に点灯させたうえ、一方の実物体を少し動かして見せる。動かされた実物体を情報処理装置10が制御する実物体(あるいはユーザが操作する実物体)、などと規則づけておけば、ユーザはどの色の実物体を自分が操作するのかを知ることができ、遊びやゲームなどを円滑に開始できる。
次に、これまで述べた構成による情報処理装置10の基本的な動作について説明する。図8は情報処理装置10がプレイフィールド20上の状態に応じて実物体を制御する処理手順を示すフローチャートである。このフローチャートは、プレイフィールド20上に実物体120a、120bなどが置かれた状態で、ユーザが入力装置14などを介して処理の開始要求を入力したときなどに開始される。なおユーザが入力装置14を介して実物体120bを操作する場合、そのための処理は独立したタイミングでなされるため図示したフローチャートには含めていない。
まず情報処理装置10の状態特定部52は、撮像装置12に対し撮影開始を要求する(S10)。撮像装置12がそれに応じて動画像の撮影を開始することにより、所定のフレームレートで画像フレームが取得され情報処理装置10に送信される。ここで処理対象となる画像フレームを取得する時間ステップtの進捗をt=0、1、2、・・・と表記する。時間ステップtの周期は、撮像装置12における画像フレームの撮影周期と同じでもよいし、それより長くてもよい。すなわち動画像の全ての画像フレームを処理対象としてもよいし、所定数ごとに画像フレームを間引きながら処理を行ってもよい。
まず最初の時間ステップt=0の画像フレームを取得すると(S12、S14)、状態特定部52は、当該画像フレームを解析し、プレイフィールド20の平面における実物体120a、120bの位置座標などの状態情報を取得する(S16)。最も単純には、画像フレームから各実物体のマーカーの像を検出し、それに基づき適宜座標変換を行うなどしてプレイフィールド20上での位置座標を求める。ただし後述するように、実施する形態によってここで取得する情報は様々でよい。上述のように実物体に備えたセンサが計測した値、入力装置14を介したユーザ操作の内容、マイクロフォン16が取得した音声情報などをさらに利用してもよい。これらの情報は取得された時点で随時、後段の情報処理に反映させる。
次に情報処理部62は、シナリオ記憶部56に格納された規則に基づき、ゲーム等を進行させながら実物体120aの動きをその場の状態に応じて決定する(S18)。例えばユーザが操作する実物体120bを追いかけるように実物体120aを動かす場合、実物体120aから実物体120bへの方向ベクトルを計算し、その方向に基づき実物体120aの移動方向を決定する。さらに、時間ステップt=1以後の時間ステップでは、各時間ステップ間の位置の差をとることにより、各実物体の速度ベクトルや加速度ベクトルを求めてもよい。これらの情報を併用することで、たとえばユーザが操作する実物体120bの位置を予測して、制御対象の実物体120aを移動させる、といった、より高度な運動制御も可能となる。
移動方向のみならずその他の動きであっても、プレイフィールド20上の時間ステップごとの状況に対し、それが改善される方向の動きを逐一求めるようにすると、周囲の変化に臨機応変に対応する実物体を実現できる。また多数の実物体が存在するような複雑な系でも統計処理によって最善の方向性を逐一選択することにより、比較的容易に動きを決定できる。
上述のように情報処理部62は、実物体の移動方向のみならず、関節など実物体の可動部位の変化量や変化方向、発光素子の点灯開始、実物体内蔵のディスプレイに表示すべき画像、実物体内蔵のスピーカーから発生させる音声などを決定してよい。さらにプロジェクタなどの表示装置18に新たに表示させる画像や、スピーカー19から発生させる効果音などを決定してもよい。そして実物体制御部60は、決定結果に基づく制御信号を生成し、必要に応じて画像データや音声データも付加して通信部50から送信することで、実物体120aを制御する(S20)。このとき情報処理部62は適宜、表示装置18やスピーカー19へ、表示画像や音声のデータを出力してもよい。
ユーザから、入力装置14を介した処理の終了要求がなされない間は(S22のN)、次の時間ステップt=1に対しS14からS20の処理を繰り返す(S24、S14〜S20)。このように本実施の形態では、動画像の画像フレームの撮影周期など、微少時間の周期でその場の状況を認識し動きを決定するため、長い周期での変化を計算するより処理を単純化できるとともに状況変化に対し動きを詳細に対応させることができる。ユーザが処理の終了を要求した時点で全体の処理を終了させる(S22のY)。
なお実物体にディスプレイやスピーカーなどの視聴覚機器を設けることにより、個々の実物体の表現能力が増すため没入感が高まることが想定できる一方、製造コストや消費電力の増加、大型化、といったデメリットも生じる。そこでそのような構成の代わりとして情報処理装置10に接続したプロジェクタや投光器などにより画像や光を実物体に投影させたり、スピーカー19により動きと合った音声を発生させたりしてもよい。両者は同時に行ってもよいし、いずれか一方のみを行ってもよい。いずれの場合も、あたかも実物体が発光したり発声したりしているようにみせることができ、上記デメリットを抑えつつ可能な限りの表現を実現することが可能となる。
次にこれまで述べた構成、手法を用いて実現できる具体的な形態を例示する。以後で説明する形態は、およそ以下の8つに大別される。
(1)対戦・競争:ユーザと情報処理装置が敵/味方で争う
(2)協力・補助:ユーザと情報処理装置がチームとなる
(3)妨害:情報処理装置とユーザのどちらかが他方の邪魔をする
(4)教育:情報処理装置がユーザに教授する
(5)演技:情報処理装置がユーザを楽しませる
(6)記録・再生:ユーザが発生させた動きを情報処理装置が記録・再生する
(7)模倣:情報処理装置とユーザのどちらかが発生させた動きを他方が真似る
(8)活動:情報処理装置が何らかのきっかけで独立して作業する
図9は本実施の形態で実現できる態様のうち「対戦・競争」の実現例を示している。プレイフィールド20には、情報処理装置10が制御する実物体120aとユーザが操作する実物体120bが置かれている。プレイフィールド20にはそのほか、木140、家142a、142bなどのミニチュアが置かれている。これらは駆動機構を持たない実物体であり、ユーザが自由に置くことができる。またプレイフィールド20には川144、橋146、砂地148が表示されている。これらはプロジェクタによって投影してもよいし、紙などに描かれたものでもよい。後者の場合、情報処理装置10はプレイフィールド20上におけるそれらの領域の位置および範囲の情報を取得しておく。そのように印刷されたプレイフィールド20を用いる場合は、シナリオ記憶部56に当該情報を格納しておけばよい。ユーザがその場で描いた場合でも、撮影画像から検出することにより当該情報を取得できる。
このような環境において、ユーザは実物体120bを動かし、情報処理装置10が制御する実物体120aと対戦したり競争したりする。この場合のルールは様々考えられる。例えば木140など所定のゴールまでの速さを競争したり、直接ぶつかり合ったりしてもよい。その過程において、木140や家142a、142bなど、置かれた実物体にぶつかったら得点を下げるなどしてもよい。また実物体120a、120bに、図示しないレーザー照射手段などを設けて銃砲に見立て、相手の実物体に照準を合わせて砲撃できたら得点を与えるなどでもよい。このような対戦ゲームを実現する場合、実物体120a、120bを、例えば戦車などの形状としてもよい。またスピーカー19などから、実物体120a、120bの動きに合わせて戦車などの走行音を発生させるとより臨場感を与えられる。
このような対戦ゲームにおいて、プレイフィールド20上に表示されている川144や砂地148では、実物体120a、120bの動きが制限されるように情報処理装置10が制御する。例えばユーザが自分の実物体120bを、橋146のかかっていない川144の方向へ動かした場合、川144の縁で強制的に止まるようにする。すなわち入力装置14に対し川144の方向への移動操作がなされても、情報処理部62は川144の縁で速度が0になるように実物体120bを制御する。結果としてユーザは実物体120bを後退させるか方向転換させるなどして移動を再開させることになる。砂地148では例えば、移動速度を遅くしたり方向転換を遅くしたりする。この場合も情報処理部62は、入力装置14に対しユーザが要求した移動速度を所定の割合だけ減少させたり舵角変化の応答性を下げたりして実物体120bを制御する。
情報処理装置10が制御する実物体120aについても同様の制限が課されているように速度や方向を算出する。川144のような進入禁止領域をプレイフィールド20を囲む辺の外に設けることにより、実物体120a、120bがプレイフィールド20の外に出ないようにしてもよい。また動きに制限を課すばかりでなく、速度や方向転換が早くなる領域を設けてもよい。なお実物体120a、12bをそれぞれ複数、置くことによりチーム戦としてもよい。例えば複数のユーザがそれぞれ自分の実物体120bを持ち寄ってチームを結成し、情報処理装置10が制御する同じ数の実物体120aと対戦するようにしてもよい。
図10は、図9で示した形態を実現するためにシナリオ記憶部56に準備するデータ例を示している。プレイフィールド20をプロジェクタにより投影する画像とした場合、シナリオ記憶部56には投影対象の画像110のデータを準備する。図9で示した例では、画像110には川144、橋146、砂地148が描かれる。情報処理部62は対戦開始時にシナリオ記憶部56から画像110のデータを読み出し、表示装置18であるプロジェクタに出力して投影させる。画像110の変形規則もシナリオ記憶部56に格納しておき、投影する画像を時間変化させてもよい。例えば時間経過に応じて川144の水があふれたり、実物体120bが渡るタイミングで橋146が崩落したりする画像を表示することにより、実物体と画像とを融合させ、よりスリルのある対戦を実現できる。
また画像110を投影するか描画済みのプレイフィールド20を用いるかによらず、上述のように川144や砂地148の領域を取得しプレイフィールド20に対応する平面にマッピングしたデータ112を準備する。当該マッピングデータには、各領域における動きの制限量を設定する。上述の例では、橋146以外の川144の領域で速度を0と設定するため「V=0」と設定されている。また砂地148の領域で速度を80%に制限するとし「V=80%」と設定されている。
同図においてデータ112には、各時間ステップで取得される実物体の位置を示す点線領域を重ねて表示している。このデータは状態特定部52が撮影画像から検出した像の位置を、プレイフィールド20の平面(図のxy平面)における位置座標に換算しマッピングしたものである。上述したように、外観的特徴に基づき各実物体の個体識別情報が得られるため、同図では各実物体の領域近傍に、木140の識別情報「#T0」、「#T1」、家142a、142bの識別情報「#H0」、「#H1」、実物体120a、120bの識別情報「#C0」、「#C1」も示している。
状態特定部52は時間ステップごとに、各実物体の個体識別情報とその位置に係る情報を作成し情報処理部62に供給する。ここで実物体120a、120bの位置(識別情報「#C0」、「#C1」に対応する領域)は、ユーザ操作や情報処理装置10による制御により変化することになる。情報処理部62は、それらが速度制限を課した領域に入るか否かを監視し、入ったら設定された量で速度を制限する。また情報処理装置10が制御する実物体120aの位置(識別情報「#C0」)と、ユーザが操作する実物体120bの位置(識別情報「C1」)とを比較し、砲撃しやすい位置に移動させるなど実物体120aのその時点での最適な移動方向を決定し制御する。以後に述べる形態においても、位置情報に係るデータの取り扱いは同様である。
図11は本実施の形態で実現できる態様のうち「協力・補助」の実現例を示している。プレイフィールド20には環状の道路150および横断歩道156を表示する。そして情報処理装置10が制御する実物体120aとユーザが操作する実物体120bを置く。プレイフィールド20にはそのほか、木152a、152b、信号158などのミニチュアと人形154a、154bを置く。木152a、152b、および人形154a、154bは駆動機構を持たない実物体であり、ユーザが自由に置いたり手で移動させたりできる。信号158は青、黄色、赤の発光ダイオードを備え、ユーザが入力装置14を介して、あるいは情報処理装置10が、発光色を切り替えられるように構成する。いずれの場合も、実際の制御は情報処理装置10が行うため、当然、情報処理装置10は発光色の切り替えを認識できる。
このような環境において実物体120a、120bは道路150を反時計回りに走行する。ユーザは自分が操作する実物体120bを、情報処理装置10が制御する実物体120aより先に走行させ、情報処理装置10が制御する実物体120aの走行の邪魔になる物を道路150から排除することで、実物体120aが速やかに走行できるように「協力」する。図示する例では木152bが倒れ道路150を塞いでいるため、ユーザは実物体120bによって木152bを押すなどして道路150の外に出す。情報処理装置10が制御する実物体120aは、実物体120bの所まで到達しても、木152bが排除されるまではそこで停止させる。
すなわち木152bの排除に要する時間が短いほど、実物体120aは早く道路150を一周できることになる。図示する例では情報処理装置10が制御する実物体120aとユーザが操作する実物体120bが一組のみ存在するが、複数のレーンを設けて複数の組が走行できるようにし、複数のユーザによる対抗戦を行ってもよい。このような態様では、情報処理装置10が制御する実物体120aを救急車、ユーザが操作する実物体120bを自家用車に見立てることにより、救急車を早く走行させるために協力する市民、といった状況を演出できる。各実物体をそれらの車の形状としてもよい。また各実物体の動きに合わせて自動車の走行音やブレーキ音などをスピーカー19などから発生させてもよい。
そのような対抗戦において、相手のチームの実物体120aが通れないように、自分が操作する実物体120bで邪魔するようにし、上述の「妨害」の態様を実現してもよい。この場合、情報処理装置10は、邪魔をしてくる実物体120bから遠ざかりかつ後退量の少ない方向を決定して実物体120aを動かすことにより、妨害を避けながら先を急ぐような動きを実現できる。
あるいはさらにもう一つ、情報処理装置10が制御するか、別のユーザが操作する第3の実物体を準備し、情報処理装置10が制御する実物体120aが当該第3の実物体に突進していくのをユーザが操作する実物体120bが妨害するゲームとしてもよい。この場合、第3の実物体を救急車、情報処理装置10が制御する実物体120aを戦車、ユーザが操作する実物体120bを自家用車などとすると、戦車で攻撃されそうな救急車を自家用車で守る、といった状況を演出できる。あるいは逆に、ユーザが操作する実物体120bが第3の実物体に連結しようとするのを情報処理装置10が制御する実物体120aが妨害するゲームとしてもよい。
また同じプレイフィールド20を用いて、子供に交通ルールを学ばせる「教育」の態様も実現できる。この場合、例えば子供は人形154a、154bを手で動かす。信号158が赤のうちは、情報処理装置10が制御する実物体120aは道路150を走行し続ける。そして信号158が青になったときに横断歩道156の手前で停止することにより、子供が人形154bなどを動かし横断歩道156を渡れるようにする。信号158が赤のうちに渡ろうとしたり、横断歩道のない場所で道路を横断しようとした場合には、実物体120aまたはスピーカー19から、その直前で急停止したりブレーキ音を発生させたりして危険な行為であることを認識させる。
このように情報処理装置10が制御する実物体120aが反応する対象は、同様の構成を有する実物体120bでなく人形など手で持って動かせる物であってもよい。特に幼児のように入力装置14による操作が困難なユーザにはこのような態様が特に有効である。上述の「協力」の態様において、実物体120bの代わりに手を用いて木152bを排除するようにしてもよい。逆に「教育」の態様において、人形154a、154bの代わりに実物体120bをユーザが操作し、より複雑な道路上を走行させながら情報処理装置10が制御する実物体120aとのインタラクションを発生させることにより、自動車の交通法規を学ぶようにしてもよい。
また同じプレイフィールド20において、情報処理装置10が制御する実物体120aを道端にいる人形154a、154bの前で停止させる規則としてもよい。ユーザが、停止した実物体120aに人形を乗り込ませた状態で、実物体120aを出発させ、別途置かれた家のミニチュアの前で再び停止させる。これによりタクシーのごっこ遊びを実現できる。バス停のミニチュアの前で実物体120aを停止させる規則とし、人形を乗り降りさせることによりバスのごっこ遊びもできる。
図12は、本実施の形態で実現できる態様のうち「演技」の実現例を示している。プレイフィールド20には情報処理装置10が制御する実物体120aが複数個置かれ、統一された動きでマスゲームをするのを、ユーザが鑑賞する。この態様ではユーザが操作する実物体とのその場でのインタラクションはなくてもよいが、例えばユーザがプレイフィールド20上に実物体120aをランダムに置いても、その位置を撮影画像から取得することにより、設定されたフォーメーションに戻りマスゲームが開始されるようにできる。マスゲームの最中にユーザが手で実物体120aの邪魔をしたりしても同様に、規定された位置に戻ってマスゲームを続行することもできる。
この場合、各実物体120aの位置座標の時間変化を設定したデータをシナリオ記憶部56に格納しておく。これにより初期のフォーメーションや途中での位置が規定されるため、それから逸脱している実物体120aを規定された位置に戻すことができる。戻る過程において他の実物体120aの動きの妨げとならないよう、情報処理部62は位置座標の設定を参照しながら各時間ステップで最適な移動方向を決定していく。
マスゲーム中、情報処理装置10は、プロジェクタや図示しない照明機器を用いてスポットライトを当てるなど光の動きにより演出を加えたり、実物体120a自体、あるいはスピーカー19から音楽を流したりしてもよい。また、置かれた実物体120aの形状やマーカーの色の組み合わせによって、マスゲームの内容や曲が切り替わるようにしてもよい。さらに、ユーザの行動に応じて何らかの変化が生じるようにしてもよい。例えば、マスゲームが終了したときにユーザがした拍手や声援の音が大きいと、アンコールとして再度マスゲームが開始されるようにしてもよい。この場合、マイクロフォン16によって取得した音声信号の大きさがしきい値を超えたとき、情報処理部62がアンコールの開始を決定する。
さらにユーザの指揮に合わせてマスゲームが進行したり、リズム、テンポ、曲調が切り替わったりするようにしてもよい。例えばユーザが入力装置14の所定のボタンを所望の拍子で押下すると、その拍子に合わせた動きで実物体120aが動くようにする。ユーザがカウントをとる音声をマイクロフォン16で取得してもよい。あるいはユーザが実際に手で指揮をしたり、指揮棒を模したマーカーを振ったりする様子を撮像装置12で撮影し、その拍子に合わせてもよい。
なおこの例における複数の実物体120aのうち1つを、ユーザが操作する実物体、あるいはユーザが手で動かす実物体としてもよい。このとき情報処理装置10は、当該実物体に合わせて動くように他の実物体120aを制御する。ユーザが動かす実物体と全く同じ動きでその他の実物体120aが動くようにしてもよいし、ユーザが動かす実物体に、その他の実物体120aが一列になってついていくような動きをしてもよい。これらは上述の「模倣」の形態に対応する。
あるいは、ユーザが動かす実物体が常に中心になるように他の実物体が周りを囲んだり整列したりして、ユーザが動かす実物体が主役になるような動きをしてもよい。この場合、ユーザが動かす実物体との距離や位置関係、その他の実物体120a同士の距離や位置関係、およびそれらの時間変化をあらかじめ設定してシナリオ記憶部56に格納しておく。そして制御対象の全ての実物体120aについて、時間ステップごとに次の移動方向を算出すれば、ユーザが動かす実物体に合わせるような動きを実現できる。
ユーザが操作する実物体を含めたこれらの態様は、その場でユーザが楽しむのみでもよいし、各実物体の位置の時間変化を記録しておき、後にユーザが要求したタイミングで再現できるようにして、上述の「記録・再生」を実現してもよい。再現時には、元はユーザが操作していた実物体の動きも、情報処理装置10が制御する実物体120aによって再現する。これにより、好みの動きでマスゲームや行進を作り上げていく楽しさを提供することができる。
また、情報処理装置10が制御する複数の実物体120aの中にユーザが操作する実物体を混ぜ、お手本通りにマスゲームを遂行できるかに挑戦するゲームとしてもよい。この場合、情報処理装置10はスピーカー19から音楽を流すとともに、表示装置18に、お手本となる動きを表した動画を表示させる。ユーザは初期のフォーメーションのいずれかに自分が操作する実物体を配置し、お手本を見ながらその通りになるように操作する。情報処理部62は、それ以外の実物体を制御するとともに、撮影画像に基づき、ユーザが操作する実物体がお手本からずれた事象を検出する。そしてずれた回数に応じて減点していくことで最終的な得点を計算し、マスゲームの終了時などに表示装置18に表示させる。
これまで示したようにユーザが実物体120bを操作する場合において、情報処理装置10は、その操作をアシストするようにしてもよい。具体的には、実物体120bの実際の動きが、何らかの事情により、入力装置14を介して要求された動きと異なっていた場合、入力装置14への操作内容を反映させた制御信号に微調整を加えることにより、実際の動きを要求に近づける。例えば実物体120bに荷重がかかり過ぎている場合、ユーザの操作が直進であっても蛇行してしまうことが考えられる。このような場合、情報処理部62は、蛇行を抑える方向に舵角を調整することにより、実物体120bが実際に直進できるようにする。
具体的には、撮影画像における実物体の位置の変化やセンサによる計測値に基づく実際の動きと、入力装置14から入力されたユーザの操作内容とを比較することにより、要求と実際の差を検出する。そして差が小さくなるように制御信号を調整する。この形態は上述の「補助」に対応する。なおアシスト対象は実物体の走行に係るものに限らず、グリッパーやアームの動きなどでも同様である。またこのような調整は、その他のいかなる形態を実施しているときでも随時行える。
これまで示した例は、主に実物体の走行を利用して実現できる態様であったが、実物体にさらに機能を追加することで態様を多様化させることができる。図13は実物体に物をつかむ機能を追加したときに実現される態様の例を示している。プレイフィールド20には、情報処理装置10が制御する実物体120aと、ユーザが操作する実物体120b、および複数のブロック162が置かれている。ブロック162は内部に機構を持たない合成樹脂などの塊でよい。そして各実物体120a、120bは、ブロック162を掴むためのグリッパー160a、160bを備える。
例えばユーザは、入力装置14を介して実物体120bを操作し、1つのブロック162に近づけたうえグリッパー160を開閉させて掴ませる。そしてプレイフィールド20上に表示された自分の陣地164bに、掴んだブロック162を運び込む。情報処理装置10も同様に、実物体120aを制御して、別の陣地164aにブロック162を運び込むように動かす。そしてより多くのブロック162を自分の陣地に運び込んだ方を勝ちとする。これにより、上述の「対戦」や「妨害」の態様を実現できる。
なおグリッパー160a、160bは、開閉することによりブロック162を左右から挟み込むが、さらにその根元部分を上下方向に動かせるようにしてブロック162を持ち上げられるようにしてもよい。関節角を制御可能なアームの先端にグリッパーを設けることにより、高い位置にブロック162を持ち上げたりブロック162を裏返したりするなど、より複雑な作業が行えるようにしてもよい。グリッパーの代わりに、ブロック162と床の間にツメを差し込み持ち上げるフォークリフトの機構を設けてもよい。あるいは実物体を荷台のついたクレーン車の形態とすることで、ブロック162を荷台に載せて運べるようにしてもよい。これらの実物体の形態に合わせ、ブロック162の形状も適宜最適化し、運びやすくする。
図14は、実物体に物をつかむ機能を追加したときに実現される態様の別の例を示している。この例は上述の「協力・補助」の形態を実現している。プレイフィールド20には、情報処理装置10が制御する、グリッパーを有する実物体120aと、様々な色を有する複数のブロック170が置かれている。ユーザ8はプレイフィールド20に設けられた作業領域172でブロック170を組み立てる。図示するように立体的に組み上げていってもよいし、平面状に並べるようにしてもよい。前者の場合、積み木のように単に乗せていくのでもよいし、ブロック170を相互に接続可能な構造として組み立てられるようにしてもよい。
いずれにしろユーザ8は、組み立て中、次に必要なブロックの色を声で指定する。図では「RED!(赤!)」と指定している。すると実物体120aは、プレイフィールド20上で作業領域172以外の領域にあるブロック170のうち、指定された色のブロックを探しだし、ユーザの近くに運ぶようにする。作業領域172を固定とすれば、ユーザ8はその近傍にいることが推定できる。情報処理部62は、マイクロフォン16が取得した音声信号に基づき指定された色を認識し、その色のブロック170を実物体120aに掴ませて、推定位置まで運ぶように制御する。
撮像装置12の視野内にユーザ8がいるように規則づけておくことによりユーザ8の位置を検出してもよい。この場合、作業領域172を明に定めずとも、検出したユーザ8の位置からより遠くに置かれたブロック170から運ぶなどすれば、組み立て中のブロックを運ぶ対象とせずにすむ。また声によるブロックの指定は色に限らず、大きさ、形状などのいかなる属性でもよくそれらの組み合わせでもよい。この形態では、ユーザは自分の好きなようにブロックを組み立て、その過程でランダムに選択されるブロックを実物体120aが運ぶことにより作業を効率化できる。組み立てには手を使用するため、声によるブロックの指定を実現することにより、指定のために却って作業効率が落ちるといったことがない。
一方、あらかじめ準備された完成形のモデルから選択したものを組み立てるようにしてもよい。この場合ユーザは、紙面や表示装置に表示されたモデルから組み立てたい物を選択し、入力装置14を用いて指定する。情報処理装置10のシナリオ記憶部56には、組み立て順とそれに用いるブロックの識別情報とをモデルごとに格納しておく。これにより、ユーザがブロックを指定することなく、情報処理装置10による判断で、次に必要なブロックを実物体120aが選択し運んでくる態様を実現できる。このとき、運ばれたブロックをどのように接続するか、に係る情報などを、表示装置18に表示させたりプレイフィールド20上に投影させたりしてもよい。
実物体120aは複数のブロック170を、色、形状、大きさなど所定の基準で分別するようにしてもよい。この場合、情報処理部62は、まずプレイフィールド20上にあるブロック170の種類の数、例えば色の数を撮影画像に基づき特定する。そして当該数分の領域をプレイフィールド20上に設定する。そして実物体120aに掴ませたブロック170を、その色などの属性によって対応する領域に運ばせる制御を繰り返すことにより、種類ごとにブロック170のまとまりを形成する。これにより、多量のブロック170がある場合は特に、所望のブロック170が格段に見つけやすくなる。分別作業は、図14で示したようにユーザ8がブロック170を組み立て中に並行して行ってもよいし、組み立て中に限らず、例えば後述するごっこ遊びの最中に行ってもよい。さらに、散乱したブロック170を属性によらず一つの場所にまとめさせることで、実物体120aにブロックを片付けさせてもよい。
またユーザ8の作業領域172に加え、実物体120aのための作業領域を設け、実物体120aも並行してブロック170を組み立てるようにしてもよい。例えばユーザが選択した同一のモデルを、ユーザと実物体120aが別個に組み立てていく。実物体120aが組み立てている様子をお手本にしてユーザ8も組み立てていくようにすれば、組み立て手順を示しているのと同等となる。あるいは別途、完成形を表示装置18に表示させ、同時に組み立て始めることで完成までの早さを競うようにしてもよい。1つの作業領域で協力して1つの物を組み立ててもよい。このように実物体120aが組み立て作業を行う場合、平面状に並べる場合はその位置にブロック170を置くのみでよいが、立体的に組み立てる場合は、実物体120aに上述のアームやクレーンを設けることによりブロック170を高い位置まで持ち上げられるようにする。
ただし単に積み木のように乗せるのでなく何らかの接続機構により結合させながら組み立てる場合は、接続に要する力、およびその反作用を考慮する必要がある。例えば一般的な接続手法としてブロックの凹部分に凸部分をはめ込む手法を採用した場合、実物体120aのアームには多大な力が必要となる。また反作用により実物体120aの安定が保てない可能性がある。そこでブロック自体を情報処理装置10の制御対象として、接続状態を情報処理装置10の制御により実現してもよい。図15は、実物体がブロックを組み立てる態様におけるブロックの接続手法の例を説明するための図である。同図は、ブロック170aに設けた円柱状の凸部分174に、ブロック170bに設けた円筒状の凹部分176をはめ込むことによりブロックを接続する過程を横から見た状態である。
まずブロックが未接続の状態(a)では、ブロック170aの凸部分174の直径r1と比較し、ブロック170bの凹部分176の直径r2が大きい状態とする。そして状態(b)のようにブロック170bの凹部分176がブロック170aの凸部分174にはめ込まれた状態を検出したら、情報処理部62は、状態(c)のように、ブロック170bの凹部分176の内部機構により凸部分174が締めつけられるようにする。これにより、はめ込み作業において実物体120aが要する力は、ブロック170bを持ち上げブロック170aの上に置くのと同等でよくなるとともに、内部機構で接続を強固にすることにより、組み立てた物を傾けても崩壊しないようにできる。
ここで凹部分176の内部は、例えばネジの回転などにより内壁の少なくとも一部が狭まるようなクランプ構造とする。そして情報処理部62は、制御対象の実物体120aが、ブロック170bをブロック170aの上に乗せたら、当該ネジを回転させるアクチュエータを動作させる制御信号をブロック170bに送信してネジを締めさせることにより、ブロック170aの凸部分174を挟み込んだ状態とする。状態(c)から結合を外す場合は逆に、ネジを緩めさせることにより状態(b)へと移行させればよい。なおブロックの接続手法はこれに限らず、接続部分に空気の吸引機構を設け、情報処理装置10からの制御により接続面に真空を形成することで接続してもよい。あるいは面ファスナーなどの接着面により接続し、外す際は情報処理装置10からの制御によりイジェクトピンを突出させて引きはがすようにしてもよい。
さらに接続時の反作用により実物体120a本体が安定を失わないように、実物体120aには2つのグリッパーアームを設けてもよい。これにより、接続するブロック170aと170bの双方を保持して接続すれば反作用は生じにくい。あるいはプレイフィールド20と、それに接するブロック170aとを接続できるようにし、ブロック170bを接続する際に接続先のブロック170aが固定されているようにすれば、実物体120aが安定を失いにくくなる。
一方、図14で示したような環境でボイスコマンドを利用する態様は、ブロックを組み立てるばかりでなく、ごっこ遊びにも利用できる。例えばブロック170を色に応じてバナナ、リンゴ、メロンなどの青果に見立てる。そしてユーザ8が「バナナをください。」と言ったら、実物体120aが黄色いブロック170をユーザ8の近傍に運ぶ。このとき同時に実物体120aまたはスピーカー19から「はい、どうぞ」といった音声を発生させることにより、青果店で買い物をしているような状況を演出できる。
この場合、シナリオ記憶部56にはブロック170の色と「バナナ」、「リンゴ」、「メロン」といったキーワードとを対応づけて格納しておく。そして情報処理部62は、マイクロフォン16が取得した音声信号からキーワードを検出したら、それに対応する色のブロック170を運ぶように実物体120aを制御する。ブロック170を実際の青果などを模した形としてもよい。ブロックを青果、肉、魚など大まかな分類に対応づけ、青果店、肉屋、魚屋、など異なる店で買い物をしているように演出してもよい。このごっこ遊びの開始時には、上述のように実物体120aが色に応じてブロックを分別することにより、プレイフィールド20上に各店の領域を形成しておいてもよい。またユーザ8が金銭に見立てたブロックをプレイフィールド20に置くことで、実物体120aがそれを持ち去るようにしてさらに買い物らしくしてもよい。
ユーザ8が差し出したブロックを洗濯物に見立て、「クリーニング屋さん、これを持って行って。」といった声に反応して、実物体120aが当該ブロックを持ち去るようにしてもよい。この場合、「これを持って行って。」といったキーワードと、ユーザ8の近傍に置かれたブロックを掴み、プレイフィールド20上の所定の領域にまとめて置く、という動きの規則を対応づけ、シナリオ記憶部56に格納しておく。ブロックを動物やキャラクタなどに見立てたり、そのような形状のフィギュアをブロック170の代わりに用いたりしてもよい。これらの態様はごっこ遊びに実物体が「協力」するものであるが、幼児が買い物の仕方を学ぶという意味では「教育」の目的でも利用できる。
図16は実物体に物をつかむ機能を追加したときに実現される態様のさらに別の例を示している。この例は上述の「対戦」の形態を実現しており、プレイフィールド20をボードゲームの盤とする。プレイフィールド20には、情報処理装置10が制御する、グリッパーを有する実物体120aと、ボードゲームに用いる駒180、182が置かれている。駒180、182は内部に機構を持たない合成樹脂などの塊でよい。また駒180、182の形状や盤のマス目などは図示するものに限らず、ゲームによって適宜決定してよい。ここで行うゲームはチェス、将棋、リバーシなど一般的なものでよい。
実物体120aは自分の駒180を、グリッパーを用いて動かし、ユーザ8は自分の駒182を手で動かす。情報処理部62は、ユーザが動かす駒182の位置を含めた戦況に応じて、実物体120aが動かすべき駒180やその移動先を決定する。このような作戦自体は、従来のコンピュータゲームにおけるプログラムと同様の処理でよい。実物体120aが対戦相手となる代わりに、2人のユーザが対戦している状況で、実物体120aが補助の役割を果たしてもよい。例えばチェスや将棋でどちらかのユーザの1手により相手の駒が取れた場合、その駒を当該ユーザの方へ運び込む。リバーシの場合は駒の表裏を反転させる。いずれの場合もシナリオ記憶部56には、各ゲームのルール、特に各手によるその他の駒の変化の規則を格納しておく。この態様は、ボードゲームに限らず、カードゲームや双六などでも同様に実現できる。
さらに、駒180、182をキャラクタのフィギュアとし、相手のフィギュアに体当たりさせるなどして攻撃する対戦ゲームを実現してもよい。この場合、実物体120aは自分のフィギュアを掴んだり押したりしてユーザ8のフィギュアにぶつけたり、ぶつけられるのを回避したりする。あるいは、ユーザ側にもグリッパーを有する実物体を置き、ユーザが操作することにより対抗する。さらに情報処理装置10が制御する第3の実物体を登場させ、フィギュアが持つ武器を、武器の置き場所から持ってこさせるようにしてもよい。このときユーザは、図14で示したのと同様に、声によって武器を指定できるようにしてもよい。
図17は実物体にペンを保持する機能を追加したときに実現される態様の例を示している。プレイフィールド20には情報処理装置10が制御する実物体120aと、ユーザが操作する実物体120bが置かれている。各実物体120a、120bは、ペンを下向きに保持することのできる保持機構190a、190bを備えている。保持機構190a、190bは、情報処理装置10からの制御信号により、ペン先をプレイフィールド20に接触させたり離したりできるようにペンの高さを変更可能に構成される。そしてペン先を接触させた状態で実物体120a、120bが移動することにより、プレイフィールド20上に、移動に応じた線画が作成される。
例えばユーザが操作する実物体120bが描く線画に応じて、情報処理装置10が制御する実物体120aが、それを補うように線画を描くことにより、ユーザと情報処理装置10の共同作業により1つの絵を完成させる。このときユーザ独自の線画に対し所定の規則で情報処理装置10が装飾を施していく態様としてもよいし、見本となる絵の完成形を表示装置18に表示させ、双方がそれを目指して描いていくようにしてもよい。前者の場合、ユーザの線画に対する装飾の仕方に関する規則をシナリオ記憶部56に格納しておく。後者の場合、絵の完成形をシナリオ記憶部56に格納したおき、各時間ステップにおける描画の途中経過と比較することにより、不足部分を情報処理装置10の制御によって実物体120aに描かせる。
プレイフィールド20は交換が可能な紙としたり、線画を消して描き直すことのできる表面加工を施した板としたりする。上記はペンを用いた「協力・補助」の形態であったが、情報処理装置10が制御する実物体120aのみが線画を描くようにして「活動」の形態を実現してもよい。この場合、例えばユーザは声や入力装置14を介した操作により描画してほしい物を指定する。情報処理部62は、指定された物に対応づけられた絵をシナリオ記憶部56から読み出し、その通りに絵を描くことによりユーザとのインタラクションを実現する。あるいはユーザは、実物体120aが描画した絵に点数をつけたり絵を修正したりしてもよい。このときユーザは点数や修正を、手に持ったペンでプレイフィールド20に直接書き込んでよい。
情報処理装置10は、その点数や修正箇所を撮影画像から取得し学習する。例えばしきい値以下の悪い点数がつけられた絵はユーザの好みでないとして2度と描かない。ユーザが修正した絵は、再度その絵を描く際、修正が再現されるようにする。そのため情報処理部62は、シナリオ記憶部56に格納しておいた絵の完成形のデータに、ユーザがつけた点数や修正後の絵のデータを対応づける。なおこの態様は、実物体120a、120bに実際にペンを保持させる代わりに、プロジェクタを用いて、実物体120a、120bが通過した経路に線が描かれるような画像をプレイフィールド20上に投影することによっても実現できる。これにより、紙を交換したり線を消したりする必要がなくなるとともに、出来上がった絵を電子的に保存することが容易にできる。
図18は、実物体とユーザの体とでインタラクションを発生させる態様の例を示している。プレイフィールド20には、情報処理装置10が制御する実物体120aが置かれている。そして当該実物体120aは、プレイフィールド20の縁の4辺のうち3辺で跳ね返るように自走する。ユーザは残りの1辺を自分の手196で守る。つまり実物体120aがピンボールの玉のような動きをするのに対し、それを手196で打ち返すことにより「対戦・競争」の形態を実現する。
情報処理部62は、プレイフィールド20に所定角度の傾斜がついていると仮定したときの玉の動きや跳ね返りを物理計算し、実物体120aをそのように移動させる。一方、状態特定部52は、手196の像を撮影画像から検出し、既存の手法で追跡しておく。これにより情報処理部62は、手の動きによって玉が跳ね返る様子も実物体120aで再現できる。ユーザが実際に実物体120aを打ち返さずとも、実物体120aが辺を越える前に手196が実物体120aに追いついていれば打ち返しの成功を判定し、反対側に戻るように実物体120aを制御する。追いつかなければ実物体120aはプレイフィールド20の外に出てユーザの負けとする。なおプレイフィールド20の内部をブロックで囲み、当該ブロックで跳ね返るように実物体120aを動かしてもよい。
さらにその内部にも、跳ね返りポイントとしてブロックを置くようにしてもよい。ユーザが自由な位置や形状にブロックを置いても、撮影画像によって各ブロックの位置座標が判明するため、簡単な物理計算で実物体120aの速度や移動方向を時間ステップごとに決定することができる。ブロックの色などに応じて材質を仮定しておけば、速度の計算に反発係数の変化を反映させることもできる。跳ね返る際、スピーカー19などから跳ね返り音を発生させてもよい。
実物体120aと手196のインタラクションの別の例として、手196が実物体120aを追いかける「競争」の態様を実現してもよい。この場合、実物体120aを複数個置き、手196の動きに合わせて一斉に逃げ回るようにしてもよい。情報処理部62は、各時間ステップにおける手の位置情報に基づき、手から遠ざかるように各実物体120aの移動方向を決定する。このときなるべく方向が分散するように、乱数を発生させるなどして移動方向を決定すると、捕まえづらくなりゲーム性がより高まる。なおユーザは、実物体120aを実際に掴むのでなく、プレイフィールド20の所定の領域内に追い込むことで捕まえた状態としてもよい。実物体120aを羊、ネズミ、魚などの生物の形状としたり、スピーカー19から鳴き声などを発生させたりすることにより、より臨場感を与えられる。
これまで述べた例では、実物体の動きはアクチュエータの駆動によっていた。さらに重力など自然に発生する力により動く実物体と組み合わせて遊びを多様化させることもできる。図19は、玉の転がりを実物体の動きに含めた「協力」や「演技」の態様の例を示している。この例ではルーブゴールドバーグマシン(Rube Goldberg machine)のように、玉200の転がりに呼応するように他の物や仕掛けが動く装置を想定している。プレイフィールド20には、情報処理装置10が制御する実物体120a、ユーザが操作する実物体120bがいくつか置かれている。またユーザにより、玉200が転がるおよそのコースがブロック202で形成されている。
情報処理装置10が制御する実物体としてさらに、実物体120m、120n、120pを置く。実物体120mは四角柱の本体と滑り台とで構成される。四角柱は下部と上部に穴204、206を備えるとともに、エレベータのように内部の空洞を台が昇降する機構を備える。台を昇降させるアクチュエータは情報処理装置10からの制御信号により駆動させる。また実物体120n、120pは、情報処理装置10からの制御信号により全体を発光させたり効果音を発生させたりする機構を備える。なお上述のとおり、プロジェクタからの光の投影により実物体120n、120pが発光させているように見せたり、効果音をスピーカー19から発生させたりしてもよい。このような構成において、情報処理装置10が制御する実物体120aは、グリッパーにより運んだ玉200を、実物体120mの下部の穴204に入れる。
すると情報処理装置10の制御により、実物体120mの四角柱の内部で玉200が乗せられた台が上昇し、当該台が傾くことにより、上部の穴206から玉200が外へ出る。その結果、玉200は滑り台を転がり実物体120nに衝突する。情報処理装置10は玉200の衝突を撮影画像に基づき検出すると、実物体120nを発光させたり音声を発生させたりして反応させる。実物体120nから跳ね返り転がって来た玉200を、ユーザが実物体120bを操作し跳ね返したり押したりして所望の方向へ導く。そのようにして転がってきた玉200を、次は情報処理装置10が制御する実物体120aが、跳ね返したり押したりして実物体120pの開口部へ入れ、ゴールとする。
このとき情報処理装置10は、撮影画像に基づき玉200の位置を追跡し、実物体120pの方向へ跳ね返るような位置に実物体120aを動かしたり、実物体120aにより玉200を押したりする。また開口部に玉200が入ったことも撮影画像などから検出し、実物体120pを発光させたり音声を発生させたりしてゴールの瞬間を演出する。このように本実施の形態では、撮影画像に基づき場の変化を検出するため、制御対象外の玉などの動きに対応させて、実物体が備える様々な機能を作動させることができる。シナリオ記憶部56には、上述したような玉200の動きと、それに応じた実物体の動きに係る規則を格納しておく。
図示したコースは比較的単純な構成であったが、玉200の衝突によって並べた平板が次々に倒れるドミノ倒しの部分を作ったり、縮めたバネをアクチュエータによって開放することにより玉200を跳ばしたり、といった、より複雑な構成を加えてもよい。また玉200の転がる力を他の物に伝えることにより、動く主体が途中で切り替わるようにしてもよい。実物体120m、120n、120pのような基本的な実物体を様々に組み合わせることにより、自然の力による動きと駆動系による動きとを融合させたユニークな装置を、ユーザの発想に応じて作成することができる。
図9、11、16などで例示した対戦や競争の形態を、複数のユーザ間でネットワークを介して実現してもよい。図20はネットワークを利用して複数のユーザが1つのゲームに参加する態様を説明するための図である。同図の例では3つの場所で、情報処理システム1a、1b、1cがそれぞれ同様に構築されている。各システムの情報処理装置10a、10b、10cは、ネットワーク212を介してサーバ210に接続する。情報処理システム1aのプレイフィールドには、そこにいるユーザが操作する実物体のほか、情報処理システム1b、1cのユーザがネットワーク212を介して動かす実物体が置かれている。
その他の情報処理システム1b、1cにおいても同様に、自らのユーザが操作する実物体と、その他の情報処理システムのユーザがネットワーク212を介して操作する実物体がプレイフィールドに置かれる。そのため図示する例では、全ての情報処理システム1a、1b、1cのプレイフィールドに、3つの実物体が置かれている。ゲーム開始前に、参加ユーザの情報処理システムと実物体との対応づけをサーバ210が行い、各情報処理装置10a、10b、10cに通知しておく。そしてサーバ210は、情報処理システム1a、1b、1cの各ユーザが入力装置を介して自分の実物体を操作した際、その情報を他の情報処理システムに通知する。
各情報処理装置10a、10b、10cは、自らのユーザによる入力装置14を介した操作に従い、対応する実物体を動かすとともに、サーバ210から通知された他のユーザの操作情報に従い、それぞれに対応する実物体を動かす。結果として全ての情報処理システム1a、1b、1cで、各ユーザに対応する実物体が同じように動くことになる。さらに実物体を増やし、サーバ210あるいは情報処理装置10a、10b、10cの少なくともいずれかが動きを決定してもよい。このようにして、例えば図9で示したようなプレイフィールドで対戦ゲームを実施する。
上述したように実物体を戦車としたり砲撃により得点を与えたりすれば、離れた場所にいるユーザが箱庭の世界で実際に対戦する状況を実現できる。ここで実物体の実際の動きは各情報処理装置10a、10b、10cの制御によるため、様々な調整を行うことで、ゲームをより面白くすることができる。例えばユーザが過去に対戦した回数や戦績をサーバ210に記録しておき、ゲーム開始時に各情報処理装置10a、10b、10cに通知しておく。情報処理装置10a、10b、10cは、当該情報に応じて実物体の動きに調整を加える。
例えば、あるユーザの対戦回数が少なかったり戦績がよくないことをしきい値との比較などにより判定したら、当該ユーザにハンデを与え、他ユーザの実物体をより高速に移動したり1度の砲撃による得点を他ユーザより高くする。ボードゲームでは最初の駒の数に差をつけたりする。習熟度などを複数段階に分けてもよい。このようにすることで、年齢や習熟度によらず対等に戦うことができるため、相手を選ぶことなくゲームを楽しむことができる。また場合によって、同じ習熟度のユーザのみでハンデなく戦うことも選択できる。
以上述べた本実施の形態によれば、プレイフィールドを撮影した画像を用いて、プレイフィールド上の実物体の位置や動きを検出する。そしてあらかじめ設定された規則に従い、実物体のうちいずれかを情報処理装置が制御して動かす。これにより、物体が様々な反応をする多様な空間を実世界において作り上げることができる。このとき微小時間間隔の時間ステップごとに実物体の動きを決定していくことにより、比較的単純な計算で、その他の実物体の動きに臨機応変に反応しているように見せることができる。
またユーザが入力装置を介して操作する実物体や、手で置いたり動かしたりする実物体を導入し、情報処理装置が制御する実物体の動きに影響を与えるようにする。これにより、コンピュータゲームのような遊びや装置との共同作業を、実物体を用いて実現できるとともに、入力装置を使い慣れていない幼児などでも容易に遊んだり利用したりすることができる。声を取得しそれに実物体を反応させることによっても、同様の効果が得られる。
ユーザが操作する実物体も、情報処理装置を介して動かすことにより、プレイフィールド上の場所によって移動速度に制限を設けたり、ユーザによってハンデを与えたりする調整が可能となる。結果として、コンピュータゲームでは容易であった各種調整が実世界で可能になり、よりルールを複雑化したり多機能化させたりすることができる。また同じプレイフィールドを利用した同じゲームであっても、その難易度を容易に変えることができる。また撮影画像に基づき実物体の動きを決定するため、プレイフィールドに表された画像や出力音声、駆動系を持たない物や人体の動きと、情報処理装置が制御する実物体とのインタラクションも可能となる。当該画像をプロジェクタにより投影するようにすれば、実物体と画像を連動させ、ひいては構築する世界観を変化させることも容易にできる。
さらにネットワークを介して複数のユーザのシステムを接続すれば、遠隔地にいるユーザと実物体を用いて遊ぶ、という状況を実現できる。この場合も、ローカルにある情報処理装置が実物体を制御するため、動作の制限やユーザによるハンデといった調整が可能になる。また参加メンバーとして、ユーザ以外に情報処理装置を含めることもできる。例えば複数ユーザの連合軍と情報処理装置の軍とで多数の実物体を用いて対戦する、といった比較的規模の大きい態様も実現できる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。