以下、本発明の実施形態について図面を参照して説明する。なお、以下に説明する実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本発明の必須の構成要素であるとは限らない。
<構成>
図1は、本発明の第一実施形態に係る、ブロックオブジェクトを推奨する方法を提供するシステムを示すブロック構成図である。本システム1は、ユーザ端末200から取得したブロックパーツの画像データ及び重さデータに基づいて、ブロックパーツ及び個数を決定し、組み立て可能なオブジェクトモデルを推奨するサーバ端末100と、ブロックオブジェクトを組み立てる各ユーザに関連付けられた、ユーザ端末200A、200Bと、ユーザ端末の各々と連携し、ブロックパーツの画像データ及び重さデータを生成するセンサ装置300A、300Bと、で構成される。以下、説明の便宜のため、ユーザ端末200A、200Bを総称して、ユーザ端末200として説明し、センサ装置300A、300Bを総称して、センサ装置300として説明する。
ここで、複数のブロックパーツで構成されるブロックオブジェクトの例として、本実施形態において、動物オブジェクトを例として説明するが、他に、人、ロボット、乗り物及び建物等が挙げられ、一つの例に限定されない。
サーバ端末100とユーザ端末200は各々、ネットワークNWを介して接続される。ネットワークNWは、インターネット、イントラネット、無線LAN(Local Area Network)やWAN(Wide Area Network)等により構成される。
サーバ端末100は、例えば、ワークステーションやパーソナルコンピュータのような汎用コンピュータとしてもよいし、或いはクラウド・コンピューティングによって論理的に実現されてもよい。本実施形態においては、説明の便宜上サーバ端末として1台を例示しているが、これに限定されず、複数台であってもよい。
ユーザ端末200は、例えば、パーソナルコンピュータやタブレット端末等の情報処理装置であるが、スマートフォンや携帯電話、PDA等により構成しても良い。
本実施形態では、システム1は、サーバ端末100及びユーザ端末200を有し、ユーザがユーザ端末200を利用して、サーバ端末100に対する操作を行う構成として説明するが、サーバ端末100がスタンドアローンで構成され、サーバ端末自身に、各ユーザが直接操作を行う機能を備えても良い。
また、センサ装置300は、ユーザ端末200とBluetooth(登録商標)等の近距離無線通信により接続し、ペアリングされる。
図2は、図1のサーバ端末100の機能ブロック構成図である。サーバ端末100は、通信部110と、記憶部120と、制御部130とを備える。
通信部110は、ネットワークNWを介してユーザ端末200と通信を行うための通信インターフェースであり、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)等の通信規約により通信が行われる。
記憶部120は、各種制御処理や制御部130内の各機能を実行するためのプログラム、入力データ等を記憶するものであり、RAM(Random Access Memory)、ROM(Read Only Memory)等から構成される。また、記憶部120は、オブジェクトモデルに関連する情報等を格納する、オブジェクトモデル情報格納部121、及びオブジェクトモデルを基に生成されたブロックパーツ情報等を格納する、ブロックパーツ情報格納部122を有する。なお、各種データを格納したデータベース(図示せず)が記憶部120またはサーバ端末100外に構築されていてもよい。
制御部130は、記憶部120に記憶されているプログラムを実行することにより、サーバ端末100の全体の動作を制御するものであり、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等から構成される。制御部130の機能として、ユーザ端末200からの指示等の情報を受け付ける情報受付部131、オブジェクトモデルに関連する各種情報を参照し、処理する、オブジェクトモデル情報処理部132、ブロックパーツに関連する各種情報を参照し、処理するブロックパーツ情報処理部133、オブジェクトモデルやブロックパーツに関連する情報をユーザ端末に出力させるよう送信する処理を行う出力処理部134、ユーザ端末か200から受信したブロックパーツに関連する画像データを解析する、画像分析部135、及びユーザ端末200から受信したブロックパーツに関連する重さデータを解析する、重さ解析部136を有する。この情報受付部131、オブジェクトモデル情報処理部132、ブロックパーツ情報処理部133、出力処理部134、画像解析部135及び重さ分析部136は、記憶部120に記憶されているプログラムにより起動されてコンピュータ(電子計算機)であるサーバ端末100により実行される。
情報受付部131は、サーバ端末100が提供し、ユーザ端末200において、ウェブブラウザまたはアプリケーションを介して表示される画面等のユーザインターフェースを介して、ユーザが、(テキストを入力したり、アイコンを押下する等して)所定の要求を行ったとき、ユーザ端末200から情報を受け付け、または、センサ装置300で生成された、ブロックパーツの画像データ及び重さデータを、ユーザ端末200及び通信部110を介して受付ける。
オブジェクトモデル処理部132は、オブジェクトモデルに関連する情報をオブジェクトモデル情報格納部121に格納したり、格納されたオブジェクトモデル情報を参照する処理を行う。
ブロックパーツ情報処理部133は、ブロックパーツに関連する情報をブロックパーツ情報格納部122に格納したり、格納されたブロックパーツ情報を参照する処理を行う。
出力処理部134は、ユーザ端末200にオブジェクトモデルに関連する情報及びブロックパーツに関連する情報等を表示させるため、ユーザ端末200に対し必要な情報を送信する処理を行う。この際、出力処理部134は、記憶部120に格納された画像及びテキストデータを素材として、所定のレイアウト規則に基づいて、各種画像及びテキストをユーザインターフェースの所定の領域に配置することで、ユーザ端末200のインターフェースに表示されるために必要な画面情報を生成することができる。この画面情報生成処理は、GPU(Graphics Processing Unit)によって実行することもできる。
図3は、図1のユーザ端末200を示す機能ブロック構成図である。ユーザ端末200は、通信部210と、表示操作部220と、記憶部230と、制御部240とを備える。
通信部210は、ネットワークNWを介してサーバ端末100と通信を行うための通信インターフェースであり、例えばTCP/IP等の通信規約により通信が行われる。また、通信部210は、近距離無線通信等を介してセンサ装置300と通信を行うための通信インターフェースを備えることもできる。
表示操作部220は、ユーザが指示を入力し、制御部240からの入力データに応じてテキスト、画像等を表示するために用いられるユーザインターフェースであり、ユーザ端末200がパーソナルコンピュータで構成されている場合はディスプレイとキーボードやマウスにより構成され、ユーザ端末200がスマートフォンまたはタブレット端末で構成されている場合はタッチパネル等から構成される。この表示操作部220は、記憶部230に記憶されている制御プログラムにより起動されてコンピュータ(電子計算機)であるユーザ端末200により実行される。
記憶部230は、各種制御処理や制御部240内の各機能を実行するためのプログラム、入力データ等を記憶するものであり、RAMやROM等から構成される。また、記憶部230は、サーバ端末100との通信内容を一時的に記憶している。
制御部240は、記憶部230に記憶されているプログラムを実行することにより、ユーザ端末200の全体の動作を制御するものであり、CPUやGPU等から構成される。
なお、サーバ端末100に表示操作部の機能を備える構成としても良く、この場合、ユーザ端末200を備えない構成としても良い。
図4は、図1のセンサ装置300を示す機能ブロック構成図である。センサ装置300は、通信部310と、重さセンサ320と、カメラ330と、制御部340とを備える。
通信部210は、ネットワークNWを介してサーバ端末100と通信を行うための通信インターフェースであり、例えばTCP/IP等の通信規約により通信が行われる。また、通信部210は、近距離無線通信等を介してユーザ端末200と通信を行うための通信インターフェースを備えることもできる。
重さセンサ220は、ユーザがセンサ装置300に備えられる(図示しない)ブロックパーツ収納部に収納されたブロックパーツの重さを測定し、重さデータを生成する。
カメラ330は、上記ブロックパーツに収納されたブロックパーツを撮像し、画像データを生成する。
制御部340は、(図示しない)記憶部に記憶されているプログラムを実行することにより、センサ装置300の全体の動作を制御するものであり、CPUやGPU等から構成される。
図5は、サーバ100に格納されるオブジェクトモデル情報の一例を示す図である。
図5に示すオブジェクトモデル情報1000は、サーバ端末100に関連するサービス運営者またはユーザ端末200に関連するユーザが生成したオブジェクトモデルに関連する情報等を格納する。図4において、説明の便宜上、一オブジェクトモデル(オブジェクトID「10001」で識別されるユーザ)の例を示すが、複数のオブジェクトモデルの情報を格納することができる。オブジェクトモデルに関連する各種データとして、オブジェクトモデルの3Dモデルデータ、オブジェクトモデルの断面データ、また、オブジェクトモデルを組み立てるために必要な、一または複数種のブロックパーツ及び個数に関連するデータ、断面の層(レイヤー)毎に配置されるブロックパーツに関連する設計図情報等の情報を含むことができる。ここで、3Dモデルデータは、2Dモデルデータを所定の処理により3Dモデルに変換されたものとして格納することもできる。
図6は、サーバ100に格納されるブロックパーツ情報の一例を示す図である。
図6に示すブロックパーツ情報2000は、ブロックパーツの形状、サイズ、色及び重さに関連する情報等を格納する。図6において、説明の便宜上、一ブロックパーツ(ID「20001」で識別されるブロックパーツ)の例を示すが、複数のブロックパーツに関連する情報を格納することができる。ブロックパーツに関連する各種データとして、例えば、ブロックオブジェクトを組み立てる部品に相当するブロックパーツに関連する(ブロックパーツの形状、サイズ、色及重さ等からなる)データを含むことができる。ここで、複数種のブロックパーツの各々は固有の色及び重さと関連づけられることができるが、これに限らない。
図7は、本発明の第一実施形態に係る、ブロックオブジェクトの推奨方法を示すフローチャートの一例である。
ここで、本システム1を利用するために、ユーザは、ユーザ端末200とセンサ装置300とを近距離無線通信等によりペアリングを行い、ユーザの手持ちのブロックパーツを種類毎にセンサ装置300の(図示しない)ブロックパーツ収納部に収納する。本実施形態においては、ブロックパーツの種類毎に色分けされているので、ユーザは、一または複数種のブロックパーツを色毎にブロックパーツを分類し、分類したブロックパーツ毎にブロックパーツ収納部に収納する。
ユーザがブロックパーツを収納すると、センサ装置300に備えられた各種センサ(例えば、重さセンサ320、カメラ330)により、ブロックパーツの重さが計測され、また、ブロックパーツが撮像される。後述のように、計測されたブロックパーツの重さは重さデータとして、また、撮像されたブロックパーツは画像データとして、ユーザ端末200に送信される。
また、ユーザは、ユーザ端末200のウェブブラウザまたは(アプリケーションをインストールする場合は)アプリケーション等を利用してサーバ端末100にアクセスする。ウェブサイトまたはアプリケーション等を介してユーザインターフェース上に所定の画面が表示され、図7に示すステップS101へ進む。
まず、ステップS101の処理として、サーバ端末100の制御部130の情報受付部131は、通信部110を介して、ユーザ端末200から、ブロックパーツに関連する画像データを受信する。ここで、センサ装置300がネットワーク等を介してサーバ端末100と接続される場合は、情報受付部131は、センサ装置300から直接画像データを受信することもできる。
続いて、ステップS102の処理として、情報受付部131は、通信部110を介して、ユーザ端末200から、ブロックパーツに関連する重さデータを受信する。ここで、センサ装置300がネットワーク等を介してサーバ端末100と接続される場合は、情報受付部131は、センサ装置300から直接重さデータを受信することもできる。
なお、ステップS101及びS102は順序を問わない。また、ユーザが複数種のブロックパーツの各々をセンサ装置300のブロックパーツに収納し、重さの計測及び撮像が行われる度に、各々の画像データ及び重さデータがサーバ端末100に送信され、サーバ端末100は、複数種のブロックパーツの画像データ及び重さデータを取得する。ここで、センサ装置300またはユーザ装置200にブロックパーツの画像データ及び重さデータを蓄積することもでき、その場合は、これらのデータがバッチでサーバ端末100に送信されることとなる。
続いて、ステップS103の処理として、サーバ端末100の制御部130の画像分析部135は、受信された画像データを分析する。具体的に、画像分析部135は、ブロックパーツ処理部133と連携して、事前に記憶部120に格納されたブロックパーツ情報(ブロックパーツの形状、色等)を基に、既知の機械学習による画像解析技術を用いて、画像データから撮像されたブロックパーツの特徴量を特定し、記憶されたブロックパーツの特徴量と比較することでブロックパーツの種類を判定する。
続いて、ステップS104の処理として、サーバ端末100の制御部130の重さ分析部136は、受信された重さデータを分析する。具体的に、重さ分析部136は、ブロックパーツ処理部133と連携して、事前に記憶部120に格納されたブロックパーツ情報(ブロックパーツの重さ等)を基に、既知の機械学習による重さ解析技術を用いて、重さデータから特定のブロックパーツの数を判定する。なお、ステップS103及びS104は順序を問わない。
続いて、ステップS105の処理として、サーバ端末100の制御部130の画像分析部135は、受信された画像分析結果を基に、特定のブロックパーツを決定する。
続いて、ステップS106の処理として、サーバ端末100の制御部130の重さ分析部136は、受信された重さ分析結果を基に、上記決定されたブロックパーツの数を決定する。なお、ステップS105及びS106は順序を問わない。
このように、ステップS101乃至S106の処理を行うことで、サーバ端末100の画像分析部135及び重さ分析部136は、ユーザが所有する一または複数種のブロックパーツの種類及びその個数を決定することができる。
次に、ステップS107の処理として、サーバ端末100の制御部130のオブジェクトモデル処理部132は、決定された、ユーザが所有するブロックパーツの種類及び個数に基づき、オブジェクトモデル情報1000を参照し、組み立て可能なオブジェクトモデル(本例では、動物キャラクター)を決定する。ここで、上述のように、オブジェクトモデル情報1000として、オブジェクトモデルを組み立てるために必要な、一または複数種のブロックパーツ及び個数に関連するデータが対応付けられて記憶されているので、オブジェクトモデル処理部132は、決定されたブロックパーツの種類及び個数に基づいて組み立て可能なオブジェクトモデルを判定することができる。ここで、オブジェクトモデルの判定に際しては、ユーザが所有するブロックパーツ種類及び個数が、オブジェクトモデルの組み立てに必要最低限なブロックパーツの種類及び個数を満たしていればよい。また、ユーザが所有するブロックパーツ種類及び個数が、オブジェクトモデルの組み立てに必要最低限なブロックパーツの種類及び個数を満たしていない場合、例えば、ブロックオブジェクトを組み立てるために、所定のブロックパーツの種類が足りないか、あるいは、所定のブロックパーツの種類は満たしているが、個数が足りない場合、オブジェクトモデル処理部132は、所定のブロックパーツの種類あるいは個数を満たすことで、特定のオブジェクトモデル(動物キャラクター)が組み立て可能である旨決定することもできる。
サーバ端末100の制御部130の出力処理部134は、決定したオブジェクトモデル(動物キャラクター)に関連する情報を、ユーザに推奨するため、ユーザ端末200に送信し、ユーザ端末200は、受信した情報を表示させることができる。
例えば、図8に示すように、サーバ端末100は、ユーザが所有しているブロックパーツを種類別及びその個数に関連する情報を、ユーザ端末200に送信することができ、また、これらのブロックパーツによって組み立てることが可能な、一または複数のオブジェクトモデル(動物キャラクター)の情報を送信することができる。ここで、ユーザ端末200に表示された、ブロックパーツの種類及び個数に関連する情報が、手持ちのブロックパーツの種類及び個数と相違がある場合に、ユーザは、入力処理により、ユーザ端末200に表示されるユーザインターフェイス上で、種類及び/または個数の変更を行うことができる。更新されたブロックパーツの種類及び/または個数に関連する情報は、ユーザ端末200からサーバ端末100に送信され、サーバ端末100は、受信した更新情報を基に、組み立て可能なオブジェクトモデルを再度決定し、更新されたオブジェクトモデルに関連する情報をユーザ端末200に送信することができる。また、サーバ端末100は、ユーザ端末200に対し、組み立て可能なオブジェクトモデルのほか、そのオブジェクトモデルを組み立てるための設計図情報を送信することもできる。
以上のように、本実施形態によれば、ユーザが所有するブロックパーツに関連する情報を、ユーザは手間なくサーバ端末100に送信することができ、また、サーバ端末100は受信した情報を基に、ユーザが組み立て可能なオブジェクトモデルを決定し、ユーザに対し推奨することができるので、ユーザは、どのオブジェクトモデルが組み立て可能かを容易に理解することができる。
以上、発明に係る実施形態について説明したが、これらはその他の様々な形態で実施することが可能であり、種々の省略、置換および変更を行なって実施することが出来る。これらの実施形態および変形例ならびに省略、置換および変更を行なったものは、特許請求の範囲の技術的範囲とその均等の範囲に含まれる。